trackswap 0.2.2 → 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -4
- package/dist/FIT/encoder.d.ts +0 -1
- package/dist/FIT/health.d.ts +4 -5
- package/dist/index.cjs +5 -5
- package/dist/index.js +29 -29
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var cn=Object.create;var be=Object.defineProperty;var bn=Object.getOwnPropertyDescriptor;var In=Object.getOwnPropertyNames;var yn=Object.getPrototypeOf,hn=Object.prototype.hasOwnProperty;var V=(l,e)=>()=>(l&&(e=l(l=0)),e);var pt=(l,e)=>{for(var s in e)be(l,s,{get:e[s],enumerable:!0})},mt=(l,e,s,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of In(e))!hn.call(l,n)&&n!==s&&be(l,n,{get:()=>e[n],enumerable:!(t=bn(e,n))||t.enumerable});return l};var J=(l,e,s)=>(s=l!=null?cn(yn(l)):{},mt(e||!l||!l.__esModule?be(s,"default",{value:l,enumerable:!0}):s,l)),Rn=l=>mt(be({},"__esModule",{value:!0}),l);var Ce,Ms,Q,Ee=V(()=>{Ce=[0,52225,55297,5120,61441,15360,10240,58369,40961,27648,30720,46081,20480,39937,34817,17408],Ms=class l{#t=0;constructor(){}get crc(){return this.#t}#e(e){let s=Ce[this.#t&15];return this.#t=this.#t>>4&4095,this.#t=this.#t^s^Ce[e&15],s=Ce[this.#t&15],this.#t=this.#t>>4&4095,this.#t=this.#t^s^Ce[e>>4&15],this.#t}addBytes(e,s,t){for(let n=s;n<t;n++)this.#t=this.#e(e[n]);return this.#t}static calculateCRC(e,s,t){return new l().addBytes(e,s,t)}},Q=Ms});var Gs,Ps,yt,ht=V(()=>{Gs=class{#t=0;#e=0;constructor(e){this.#t=e,this.#e=e}accumulate(e,s){let t=(1<<s)-1;return this.#t+=e-this.#e&t,this.#e=e,this.#t}},Ps=class{#t={};createAccumulatedField(e,s,t){let n=new Gs(t);return this.#t[e]==null&&(this.#t[e]={}),this.#t[e][s]=n,n}accumulate(e,s,t,n){let a=this.#t[e]?.[s];return a==null&&(a=this.createAccumulatedField(e,s,t)),a.accumulate(t,n)}},yt=Ps});var C,Vn,Kn,Rt,kn,Nn,Xn,Yn,zn,Jn,gt,$n,Lt,Ct,Et,Qn,St,jn,Ot,r,q=V(()=>{C={ENUM:0,SINT8:1,UINT8:2,SINT16:3,UINT16:4,SINT32:5,UINT32:6,STRING:7,FLOAT32:8,FLOAT64:9,UINT8Z:10,UINT16Z:11,UINT32Z:12,BYTE:13,SINT64:14,UINT64:15,UINT64Z:16},Vn=31,Kn={0:{size:1,type:C.ENUM,baseTypeEndianFlag:0,invalid:255},1:{size:1,type:C.SINT8,baseTypeEndianFlag:0,invalid:127},2:{size:1,type:C.UINT8,baseTypeEndianFlag:0,invalid:255},3:{size:2,type:C.SINT16,baseTypeEndianFlag:128,invalid:32767},4:{size:2,type:C.UINT16,baseTypeEndianFlag:128,invalid:65535},5:{size:4,type:C.SINT32,baseTypeEndianFlag:128,invalid:2147483647},6:{size:4,type:C.UINT32,baseTypeEndianFlag:128,invalid:4294967295},7:{size:1,type:C.STRING,baseTypeEndianFlag:0,invalid:0},8:{size:4,type:C.FLOAT32,baseTypeEndianFlag:128,invalid:4294967295},9:{size:8,type:C.FLOAT64,baseTypeEndianFlag:128,invalid:18446744073709552e3},10:{size:1,type:C.UINT8Z,baseTypeEndianFlag:0,invalid:0},11:{size:2,type:C.UINT16Z,baseTypeEndianFlag:128,invalid:0},12:{size:4,type:C.UINT32Z,baseTypeEndianFlag:128,invalid:0},13:{size:1,type:C.BYTE,baseTypeEndianFlag:0,invalid:255},14:{size:8,type:C.SINT64,baseTypeEndianFlag:128,invalid:9223372036854776e3},15:{size:8,type:C.UINT64,baseTypeEndianFlag:128,invalid:18446744073709552e3},16:{size:8,type:C.UINT64Z,baseTypeEndianFlag:128,invalid:0}},Rt=["sint8","uint8","sint16","uint16","sint32","uint32","float32","float64","uint8z","uint16z","uint32z","byte","sint64","uint64","uint64z"],kn=new Set(Rt),Nn={enum:"number",sint8:"number",uint8:"number",sint16:"number",uint16:"number",sint32:"number",uint32:"number",string:"string",float32:"number",float64:"number",uint8z:"number",uint16z:"number",uint32z:"number",byte:"number",sint64:"bigint",uint64:"bigint",uint64z:"bigint"},Xn=["sint64","uint64","uint64z"],Yn=["float32","float64"],zn={enum:C.UINT8,sint8:C.SINT8,uint8:C.UINT8,sint16:C.SINT16,uint16:C.UINT16,sint32:C.SINT32,uint32:C.UINT32,string:C.STRING,float32:C.FLOAT32,float64:C.FLOAT64,uint8z:C.UINT8Z,uint16z:C.UINT16Z,uint32z:C.UINT32Z,byte:C.BYTE,sint64:C.SINT64,uint64:C.UINT64,uint64z:C.UINT64Z},Jn={[C.ENUM]:"enum",[C.SINT8]:"sint8",[C.UINT8]:"uint8",[C.SINT16]:"sint16",[C.UINT16]:"uint16",[C.SINT32]:"sint32",[C.UINT32]:"uint32",[C.STRING]:"string",[C.FLOAT32]:"float32",[C.FLOAT64]:"float64",[C.UINT8Z]:"uint8z",[C.UINT16Z]:"uint16z",[C.UINT32Z]:"uint32z",[C.BYTE]:"byte",[C.SINT64]:"sint64",[C.UINT64]:"uint64",[C.UINT64Z]:"uint64z"},gt=l=>l==null,$n=l=>typeof l=="object",Lt=l=>typeof l=="boolean",Ct=l=>typeof l=="object"&&l instanceof Date,Et=l=>typeof l=="string",Qn=l=>typeof l=="bigint",St=l=>{if(typeof l=="number")return!isNaN(l)&&isFinite(l);if(typeof l=="bigint")return!0;let e=parseFloat(l);return!isNaN(e)&&isFinite(e)},jn=l=>!Ot(l),Ot=l=>!(gt(l)||!St(l)&&!Ct(l)&&!Et(l)&&!Lt(l)),r={BaseType:C,BaseTypeMask:Vn,BaseTypeDefinitions:Kn,NumericFieldTypes:Rt,NumericFieldTypesSet:kn,BigIntFieldTypes:Xn,FloatingPointFieldTypes:Yn,FieldTypeToBaseType:zn,BaseTypeToFieldType:Jn,FieldTypeToJsType:Nn,isNullOrUndefined:gt,isObject:$n,isBoolean:Lt,isDate:Ct,isString:Et,isBigInt:Qn,isNumeric:St,isNumberStringDateOrBoolean:Ot,isNotNumberStringDateOrBoolean:jn,MAX_FIELD_SIZE:255,FIELD_DEFAULT_SCALE:1,FIELD_DEFAULT_OFFSET:0,MESG_DEFINITION_MASK:64,LOCAL_MESG_NUM_MASK:15,ARCH_LITTLE_ENDIAN:0,DEV_DATA_MASK:32,NULL_TERMINATOR:"\0"}});var Ws,Ft,Dt=V(()=>{q();Ws=class{#t=null;#e=null;#s=0;#l=0;#n=!1;#a=0;#o=0;#i=0;constructor(e,s=r.BaseType.UINT8){this.#t=Array.isArray(e)?e:[e];let t=r.BaseTypeDefinitions[s].size;this.#l=t*8,this.#n=this.#l>32,this.reset()}get bitsAvailable(){return this.#i}get hasBitsAvailable(){return this.#i>0}reset(){this.#e=null,this.#s=0,this.#i=this.#l*this.#t.length,this.#a=0,this.#o=0}readBit(){this.hasBitsAvailable||this.#p(),this.#e===null&&(this.#e=this.#t,this.#s=this.#t.length-this.#i/this.#l,this.#f()),this.#o>=this.#l&&this.#f();let e;return this.#n?(e=Number(this.#a&1n),this.#a>>=1n):(e=this.#a&1,this.#a>>=1),this.#o++,this.#i--,e}readBits(e){if(e===this.#l&&this.#e===null){this.hasBitsAvailable||this.#p();let t=this.#t.length-this.#i/this.#l,n=this.#t[t];return this.#i-=e,this.#n?Number(BigInt.asUintN(e,n)):e<32?(n&(1<<e)-1)>>>0:n>>>0}if(e<=32){let t=0;for(let n=0;n<e;n++)t|=this.readBit()<<n;return t>>>0}let s=0n;for(let t=0,n=0n;t<e;t++,n++)s|=BigInt(this.readBit())<<n;return Number(s)}#f(){this.#s>=this.#e.length&&this.#p(),this.#a=this.#e[this.#s++],this.#o=0}get array(){return this.#e}#p(e=""){throw Error("FIT Runtime Error no bits available.")}},Ft=Ws});var Vs,Zn,qn,x,re=V(()=>{q();Vs=6310656e5,Zn=l=>new Date((l??0)*1e3+Vs),qn=l=>(l.getTime()-Vs)/1e3,x={FIT_EPOCH_MS:Vs,convertDateTimeToDate:Zn,convertDateToDateTime:qn,FitBaseType:r.BaseType,BaseTypeToFieldType:r.BaseTypeToFieldType,FieldTypeToBaseType:r.FieldTypeToBaseType}});var xn,Ht,wt,de,vt,Ut=V(()=>{re();xn=(l,e)=>{if(l==null||e==null||l.length==0||e.length==0)return;let s=Ht(l),t=0,n=null;for(let a=0;a<e.length;++a){let i=e[a],o=0,u=0,m=wt(i.timestamp);n==null&&(n=m),n===m&&(n--,t=t>=1?t-1:0);let T=!0;for(;T&&t<s.length;){let A=s[t];if(A.timestamp>n&&A.timestamp<=m)o+=A.heartRate,u++;else if(A.timestamp>m){if(T=!1,u>0){let R=Math.round(o/u);i.heartRate=R}o=0,u=0,n=m;break}t++}}},Ht=l=>{if(l==null||l.length==0)return[];let a=0,i=null,o=[];return l.forEach(u=>{u==null&&de("HR mesg must not be null");let m=Array.isArray(u.eventTimestamp)?u.eventTimestamp:[u.eventTimestamp],T=Array.isArray(u.filteredBpm)?u.filteredBpm:[u.filteredBpm];u.timestamp!=null&&(i=wt(u.timestamp),u.fractionalTimestamp!=null&&(i+=u.fractionalTimestamp),m.length==1?a=m[0]:de("anchor HR mesg must have 1 event_timestamp")),i==null||a==null?de("no anchor timestamp received in a HR mesg before delta HR mesgs"):m.length!=T.length&&de("HR mesg with mismatching event timestamp and filtered bpm");for(let A=0;A<m.length;A++){let R=m[A];R<a&&(a-R>4194304?R+=4194304:de("anchor event_timestamp is greater than subsequent event_timestamp. This does not allow for correct delta calculation."));let I={timestamp:i,heartRate:T[A]};if(I.timestamp+=R-a,o.length>0){let h=o[o.length-1],M=Math.abs(I.timestamp-h.timestamp)*1e3,D=1;for(;M>250&&D<=20;){let c={timestamp:h.timestamp,heartRate:h.heartRate};c.timestamp+=.25*D,o.push(c),M-=250,D++}}o.push(I)}}),o},wt=l=>l instanceof Date?(l.getTime()-x.FIT_EPOCH_MS)/1e3:l,de=(l="")=>{throw Error(`FIT Runtime Error ${l}`.trimEnd())},vt={mergeHeartRates:xn,expandHeartRates:Ht}});var ea,G,oe=V(()=>{ea={version:{major:21,minor:212,patch:0,type:"Release"},CommonFields:{PartIndex:250,Timestamp:253,MessageIndex:254},messages:{0:{num:0,name:"fileId",messagesKey:"fileIdMesgs",fields:{0:{num:0,name:"type",type:"file",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"manufacturer",type:"manufacturer",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"product",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"faveroProduct",type:"faveroProduct",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"manufacturer",value:263}]},{name:"garminProduct",type:"garminProduct",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"manufacturer",value:1},{name:"manufacturer",value:15},{name:"manufacturer",value:13},{name:"manufacturer",value:89}]}]},3:{num:3,name:"serialNumber",type:"uint32z",baseType:"uint32z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"timeCreated",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"number",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"productName",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},49:{num:49,name:"fileCreator",messagesKey:"fileCreatorMesgs",fields:{0:{num:0,name:"softwareVersion",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"hardwareVersion",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},162:{num:162,name:"timestampCorrelation",messagesKey:"timestampCorrelationMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"fractionalTimestamp",type:"uint16",baseType:"uint16",array:!1,scale:32768,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"systemTimestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"fractionalSystemTimestamp",type:"uint16",baseType:"uint16",array:!1,scale:32768,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"localTimestamp",type:"localDateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"systemTimestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},35:{num:35,name:"software",messagesKey:"softwareMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"version",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"partNumber",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},106:{num:106,name:"slaveDevice",messagesKey:"slaveDeviceMesgs",fields:{0:{num:0,name:"manufacturer",type:"manufacturer",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"product",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"faveroProduct",type:"faveroProduct",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"manufacturer",value:263}]},{name:"garminProduct",type:"garminProduct",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"manufacturer",value:1},{name:"manufacturer",value:15},{name:"manufacturer",value:13},{name:"manufacturer",value:89}]}]}}},1:{num:1,name:"capabilities",messagesKey:"capabilitiesMesgs",fields:{0:{num:0,name:"languages",type:"uint8z",baseType:"uint8z",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"sports",type:"sportBits0",baseType:"uint8z",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},21:{num:21,name:"workoutsSupported",type:"workoutCapabilities",baseType:"uint32z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},23:{num:23,name:"connectivitySupported",type:"connectivityCapabilities",baseType:"uint32z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},37:{num:37,name:"fileCapabilities",messagesKey:"fileCapabilitiesMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"type",type:"file",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"flags",type:"fileFlags",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"directory",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"maxCount",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"maxSize",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"bytes",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},38:{num:38,name:"mesgCapabilities",messagesKey:"mesgCapabilitiesMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"file",type:"file",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"mesgNum",type:"mesgNum",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"countType",type:"mesgCount",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"count",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"numPerFile",type:"uint16",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"countType",value:0}]},{name:"maxPerFile",type:"uint16",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"countType",value:1}]},{name:"maxPerFileType",type:"uint16",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"countType",value:2}]}]}}},39:{num:39,name:"fieldCapabilities",messagesKey:"fieldCapabilitiesMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"file",type:"file",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"mesgNum",type:"mesgNum",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"fieldNum",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"count",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},2:{num:2,name:"deviceSettings",messagesKey:"deviceSettingsMesgs",fields:{0:{num:0,name:"activeTimeZone",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"utcOffset",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"timeOffset",type:"uint32",baseType:"uint32",array:!0,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"timeMode",type:"timeMode",baseType:"enum",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"timeZoneOffset",type:"sint8",baseType:"sint8",array:!0,scale:4,offset:0,units:"hr",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"backlightMode",type:"backlightMode",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},36:{num:36,name:"activityTrackerEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},39:{num:39,name:"clockTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},40:{num:40,name:"pagesEnabled",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},46:{num:46,name:"moveAlertEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},47:{num:47,name:"dateMode",type:"dateMode",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},55:{num:55,name:"displayOrientation",type:"displayOrientation",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},56:{num:56,name:"mountingSide",type:"side",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},57:{num:57,name:"defaultPage",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},58:{num:58,name:"autosyncMinSteps",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"steps",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},59:{num:59,name:"autosyncMinTime",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"minutes",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},80:{num:80,name:"lactateThresholdAutodetectEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},86:{num:86,name:"bleAutoUploadEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},89:{num:89,name:"autoSyncFrequency",type:"autoSyncFrequency",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},90:{num:90,name:"autoActivityDetect",type:"autoActivityDetect",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},94:{num:94,name:"numberOfScreens",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},95:{num:95,name:"smartNotificationDisplayOrientation",type:"displayOrientation",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},134:{num:134,name:"tapInterface",type:"switch",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},174:{num:174,name:"tapSensitivity",type:"tapSensitivity",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},3:{num:3,name:"userProfile",messagesKey:"userProfileMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"friendlyName",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"gender",type:"gender",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"age",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"years",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"height",type:"uint8",baseType:"uint8",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"weight",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"kg",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"language",type:"language",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"elevSetting",type:"displayMeasure",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"weightSetting",type:"displayMeasure",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"restingHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"defaultMaxRunningHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"defaultMaxBikingHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"defaultMaxHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"hrSetting",type:"displayHeart",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"speedSetting",type:"displayMeasure",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},14:{num:14,name:"distSetting",type:"displayMeasure",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},16:{num:16,name:"powerSetting",type:"displayPower",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},17:{num:17,name:"activityClass",type:"activityClass",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},18:{num:18,name:"positionSetting",type:"displayPosition",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},21:{num:21,name:"temperatureSetting",type:"displayMeasure",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},22:{num:22,name:"localId",type:"userLocalId",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},23:{num:23,name:"globalId",type:"byte",baseType:"byte",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},28:{num:28,name:"wakeTime",type:"localtimeIntoDay",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},29:{num:29,name:"sleepTime",type:"localtimeIntoDay",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},30:{num:30,name:"heightSetting",type:"displayMeasure",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},31:{num:31,name:"userRunningStepLength",type:"uint16",baseType:"uint16",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},32:{num:32,name:"userWalkingStepLength",type:"uint16",baseType:"uint16",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},47:{num:47,name:"depthSetting",type:"displayMeasure",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},49:{num:49,name:"diveCount",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},4:{num:4,name:"hrmProfile",messagesKey:"hrmProfileMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"enabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"hrmAntId",type:"uint16z",baseType:"uint16z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"logHrv",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"hrmAntIdTransType",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},5:{num:5,name:"sdmProfile",messagesKey:"sdmProfileMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"enabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"sdmAntId",type:"uint16z",baseType:"uint16z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"sdmCalFactor",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"odometer",type:"uint32",baseType:"uint32",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"speedSource",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"sdmAntIdTransType",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"odometerRollover",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},6:{num:6,name:"bikeProfile",messagesKey:"bikeProfileMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"name",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"sport",type:"sport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"subSport",type:"subSport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"odometer",type:"uint32",baseType:"uint32",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"bikeSpdAntId",type:"uint16z",baseType:"uint16z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"bikeCadAntId",type:"uint16z",baseType:"uint16z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"bikeSpdcadAntId",type:"uint16z",baseType:"uint16z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"bikePowerAntId",type:"uint16z",baseType:"uint16z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"customWheelsize",type:"uint16",baseType:"uint16",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"autoWheelsize",type:"uint16",baseType:"uint16",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"bikeWeight",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"kg",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"powerCalFactor",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"autoWheelCal",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"autoPowerZero",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},14:{num:14,name:"id",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},15:{num:15,name:"spdEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},16:{num:16,name:"cadEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},17:{num:17,name:"spdcadEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},18:{num:18,name:"powerEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},19:{num:19,name:"crankLength",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:-110,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},20:{num:20,name:"enabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},21:{num:21,name:"bikeSpdAntIdTransType",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},22:{num:22,name:"bikeCadAntIdTransType",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},23:{num:23,name:"bikeSpdcadAntIdTransType",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},24:{num:24,name:"bikePowerAntIdTransType",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},37:{num:37,name:"odometerRollover",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},38:{num:38,name:"frontGearNum",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},39:{num:39,name:"frontGear",type:"uint8z",baseType:"uint8z",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},40:{num:40,name:"rearGearNum",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},41:{num:41,name:"rearGear",type:"uint8z",baseType:"uint8z",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},44:{num:44,name:"shimanoDi2Enabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},127:{num:127,name:"connectivity",messagesKey:"connectivityMesgs",fields:{0:{num:0,name:"bluetoothEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"bluetoothLeEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"antEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"name",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"liveTrackingEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"weatherConditionsEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"weatherAlertsEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"autoActivityUploadEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"courseDownloadEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"workoutDownloadEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"gpsEphemerisDownloadEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"incidentDetectionEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"grouptrackEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},159:{num:159,name:"watchfaceSettings",messagesKey:"watchfaceSettingsMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"mode",type:"watchfaceMode",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"layout",type:"byte",baseType:"byte",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"digitalLayout",type:"digitalWatchfaceLayout",baseType:"enum",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"mode",value:0}]},{name:"analogLayout",type:"analogWatchfaceLayout",baseType:"enum",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"mode",value:1}]}]}}},188:{num:188,name:"ohrSettings",messagesKey:"ohrSettingsMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"enabled",type:"switch",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},216:{num:216,name:"timeInZone",messagesKey:"timeInZoneMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"referenceMesg",type:"mesgNum",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"referenceIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"timeInHrZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"timeInSpeedZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"timeInCadenceZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"timeInPowerZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"hrZoneHighBoundary",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"speedZoneHighBoundary",type:"uint16",baseType:"uint16",array:!0,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"cadenceZoneHighBondary",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"powerZoneHighBoundary",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"hrCalcType",type:"hrZoneCalc",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"maxHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"restingHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"thresholdHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},14:{num:14,name:"pwrCalcType",type:"pwrZoneCalc",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},15:{num:15,name:"functionalThresholdPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},7:{num:7,name:"zonesTarget",messagesKey:"zonesTargetMesgs",fields:{1:{num:1,name:"maxHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"thresholdHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"functionalThresholdPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"hrCalcType",type:"hrZoneCalc",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"pwrCalcType",type:"pwrZoneCalc",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},12:{num:12,name:"sport",messagesKey:"sportMesgs",fields:{0:{num:0,name:"sport",type:"sport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"subSport",type:"subSport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"name",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},8:{num:8,name:"hrZone",messagesKey:"hrZoneMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"highBpm",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"name",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},53:{num:53,name:"speedZone",messagesKey:"speedZoneMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"highValue",type:"uint16",baseType:"uint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"name",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},131:{num:131,name:"cadenceZone",messagesKey:"cadenceZoneMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"highValue",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"name",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},9:{num:9,name:"powerZone",messagesKey:"powerZoneMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"highValue",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"name",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},10:{num:10,name:"metZone",messagesKey:"metZoneMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"highBpm",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"calories",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"kcal / min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"fatCalories",type:"uint8",baseType:"uint8",array:!1,scale:10,offset:0,units:"kcal / min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},13:{num:13,name:"trainingSettings",messagesKey:"trainingSettingsMesgs",fields:{31:{num:31,name:"targetDistance",type:"uint32",baseType:"uint32",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},32:{num:32,name:"targetSpeed",type:"uint16",baseType:"uint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},33:{num:33,name:"targetTime",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},153:{num:153,name:"preciseTargetSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e6,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},258:{num:258,name:"diveSettings",messagesKey:"diveSettingsMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"name",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"model",type:"tissueModelType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"gfLow",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"gfHigh",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"waterType",type:"waterType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"waterDensity",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"kg/m^3",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"po2Warn",type:"uint8",baseType:"uint8",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"po2Critical",type:"uint8",baseType:"uint8",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"po2Deco",type:"uint8",baseType:"uint8",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"safetyStopEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"bottomDepth",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"bottomTime",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"apneaCountdownEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"apneaCountdownTime",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},14:{num:14,name:"backlightMode",type:"diveBacklightMode",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},15:{num:15,name:"backlightBrightness",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},16:{num:16,name:"backlightTimeout",type:"backlightTimeout",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},17:{num:17,name:"repeatDiveInterval",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},18:{num:18,name:"safetyStopTime",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},19:{num:19,name:"heartRateSourceType",type:"sourceType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},20:{num:20,name:"heartRateSource",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"heartRateAntplusDeviceType",type:"antplusDeviceType",baseType:"uint8",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"heartRateSourceType",value:1}]},{name:"heartRateLocalDeviceType",type:"localDeviceType",baseType:"uint8",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"heartRateSourceType",value:5}]}]},21:{num:21,name:"travelGas",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},22:{num:22,name:"ccrLowSetpointSwitchMode",type:"ccrSetpointSwitchMode",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},23:{num:23,name:"ccrLowSetpoint",type:"uint8",baseType:"uint8",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},24:{num:24,name:"ccrLowSetpointDepth",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},25:{num:25,name:"ccrHighSetpointSwitchMode",type:"ccrSetpointSwitchMode",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},26:{num:26,name:"ccrHighSetpoint",type:"uint8",baseType:"uint8",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},27:{num:27,name:"ccrHighSetpointDepth",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},29:{num:29,name:"gasConsumptionDisplay",type:"gasConsumptionRateType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},30:{num:30,name:"upKeyEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},35:{num:35,name:"diveSounds",type:"tone",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},36:{num:36,name:"lastStopMultiple",type:"uint8",baseType:"uint8",array:!1,scale:10,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},37:{num:37,name:"noFlyTimeMode",type:"noFlyTimeMode",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},262:{num:262,name:"diveAlarm",messagesKey:"diveAlarmMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"depth",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"time",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"enabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"alarmType",type:"diveAlarmType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"sound",type:"tone",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"diveTypes",type:"subSport",baseType:"enum",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"id",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"popupEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"triggerOnDescent",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"triggerOnAscent",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"repeating",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"speed",type:"sint32",baseType:"sint32",array:!1,scale:1e3,offset:0,units:"mps",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},393:{num:393,name:"diveApneaAlarm",messagesKey:"diveApneaAlarmMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"depth",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"time",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"enabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"alarmType",type:"diveAlarmType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"sound",type:"tone",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"diveTypes",type:"subSport",baseType:"enum",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"id",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"popupEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"triggerOnDescent",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"triggerOnAscent",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"repeating",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"speed",type:"sint32",baseType:"sint32",array:!1,scale:1e3,offset:0,units:"mps",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},259:{num:259,name:"diveGas",messagesKey:"diveGasMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"heliumContent",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"oxygenContent",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"status",type:"diveGasStatus",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"mode",type:"diveGasMode",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},15:{num:15,name:"goal",messagesKey:"goalMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"sport",type:"sport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"subSport",type:"subSport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"startDate",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"endDate",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"type",type:"goal",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"value",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"repeat",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"targetValue",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"recurrence",type:"goalRecurrence",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"recurrenceValue",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"enabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"source",type:"goalSource",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},34:{num:34,name:"activity",messagesKey:"activityMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"totalTimerTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"numSessions",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"type",type:"activity",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"event",type:"event",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"eventType",type:"eventType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"localTimestamp",type:"localDateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"eventGroup",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},18:{num:18,name:"session",messagesKey:"sessionMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"event",type:"event",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"eventType",type:"eventType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"startTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"startPositionLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"startPositionLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"sport",type:"sport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"subSport",type:"subSport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"totalElapsedTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"totalTimerTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"totalDistance",type:"uint32",baseType:"uint32",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"totalCycles",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"cycles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"totalReps",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"reps",bits:[],components:[],hasComponents:!1,map:[{name:"subSport",value:20},{name:"sport",value:62}]},{name:"totalStrides",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"strides",bits:[],components:[],hasComponents:!1,map:[{name:"sport",value:1},{name:"sport",value:11}]},{name:"totalStrokes",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"strokes",bits:[],components:[],hasComponents:!1,map:[{name:"sport",value:2},{name:"sport",value:5},{name:"sport",value:15},{name:"sport",value:37}]},{name:"totalPushes",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"pushes",bits:[],components:[],hasComponents:!1,map:[{name:"sport",value:66},{name:"sport",value:65}]}]},11:{num:11,name:"totalCalories",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"kcal",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"totalFatCalories",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"kcal",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},14:{num:14,name:"avgSpeed",type:"uint16",baseType:"uint16",array:!1,scale:[1e3],offset:[0],units:["m/s"],bits:[16],components:["124"],isAccumulated:!1,hasComponents:!0,subFields:[]},15:{num:15,name:"maxSpeed",type:"uint16",baseType:"uint16",array:!1,scale:[1e3],offset:[0],units:["m/s"],bits:[16],components:["125"],isAccumulated:!1,hasComponents:!0,subFields:[]},16:{num:16,name:"avgHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},17:{num:17,name:"maxHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},18:{num:18,name:"avgCadence",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"avgRunningCadence",type:"uint8",baseType:"uint8",scale:1,offset:0,units:"strides/min",bits:[],components:[],hasComponents:!1,map:[{name:"sport",value:1}]}]},19:{num:19,name:"maxCadence",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"maxRunningCadence",type:"uint8",baseType:"uint8",scale:1,offset:0,units:"strides/min",bits:[],components:[],hasComponents:!1,map:[{name:"sport",value:1}]}]},20:{num:20,name:"avgPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},21:{num:21,name:"maxPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},22:{num:22,name:"totalAscent",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},23:{num:23,name:"totalDescent",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},24:{num:24,name:"totalTrainingEffect",type:"uint8",baseType:"uint8",array:!1,scale:10,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},25:{num:25,name:"firstLapIndex",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},26:{num:26,name:"numLaps",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},27:{num:27,name:"eventGroup",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},28:{num:28,name:"trigger",type:"sessionTrigger",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},29:{num:29,name:"necLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},30:{num:30,name:"necLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},31:{num:31,name:"swcLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},32:{num:32,name:"swcLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},33:{num:33,name:"numLengths",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"lengths",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},34:{num:34,name:"normalizedPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},35:{num:35,name:"trainingStressScore",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"tss",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},36:{num:36,name:"intensityFactor",type:"uint16",baseType:"uint16",array:!1,scale:1e3,offset:0,units:"if",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},37:{num:37,name:"leftRightBalance",type:"leftRightBalance100",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},38:{num:38,name:"endPositionLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},39:{num:39,name:"endPositionLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},41:{num:41,name:"avgStrokeCount",type:"uint32",baseType:"uint32",array:!1,scale:10,offset:0,units:"strokes/lap",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},42:{num:42,name:"avgStrokeDistance",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},43:{num:43,name:"swimStroke",type:"swimStroke",baseType:"enum",array:!1,scale:1,offset:0,units:"swim_stroke",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},44:{num:44,name:"poolLength",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},45:{num:45,name:"thresholdPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},46:{num:46,name:"poolLengthUnit",type:"displayMeasure",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},47:{num:47,name:"numActiveLengths",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"lengths",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},48:{num:48,name:"totalWork",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"J",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},49:{num:49,name:"avgAltitude",type:"uint16",baseType:"uint16",array:!1,scale:[5],offset:[500],units:["m"],bits:[16],components:["126"],isAccumulated:!1,hasComponents:!0,subFields:[]},50:{num:50,name:"maxAltitude",type:"uint16",baseType:"uint16",array:!1,scale:[5],offset:[500],units:["m"],bits:[16],components:["128"],isAccumulated:!1,hasComponents:!0,subFields:[]},51:{num:51,name:"gpsAccuracy",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},52:{num:52,name:"avgGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},53:{num:53,name:"avgPosGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},54:{num:54,name:"avgNegGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},55:{num:55,name:"maxPosGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},56:{num:56,name:"maxNegGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},57:{num:57,name:"avgTemperature",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},58:{num:58,name:"maxTemperature",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},59:{num:59,name:"totalMovingTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},60:{num:60,name:"avgPosVerticalSpeed",type:"sint16",baseType:"sint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},61:{num:61,name:"avgNegVerticalSpeed",type:"sint16",baseType:"sint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},62:{num:62,name:"maxPosVerticalSpeed",type:"sint16",baseType:"sint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},63:{num:63,name:"maxNegVerticalSpeed",type:"sint16",baseType:"sint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},64:{num:64,name:"minHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},65:{num:65,name:"timeInHrZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},66:{num:66,name:"timeInSpeedZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},67:{num:67,name:"timeInCadenceZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},68:{num:68,name:"timeInPowerZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},69:{num:69,name:"avgLapTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},70:{num:70,name:"bestLapIndex",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},71:{num:71,name:"minAltitude",type:"uint16",baseType:"uint16",array:!1,scale:[5],offset:[500],units:["m"],bits:[16],components:["127"],isAccumulated:!1,hasComponents:!0,subFields:[]},78:{num:78,name:"activeTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},82:{num:82,name:"playerScore",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},83:{num:83,name:"opponentScore",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},84:{num:84,name:"opponentName",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},85:{num:85,name:"strokeCount",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},86:{num:86,name:"zoneCount",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},87:{num:87,name:"maxBallSpeed",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},88:{num:88,name:"avgBallSpeed",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},89:{num:89,name:"avgVerticalOscillation",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},90:{num:90,name:"avgStanceTimePercent",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},91:{num:91,name:"avgStanceTime",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},92:{num:92,name:"avgFractionalCadence",type:"uint8",baseType:"uint8",array:!1,scale:128,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},93:{num:93,name:"maxFractionalCadence",type:"uint8",baseType:"uint8",array:!1,scale:128,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},94:{num:94,name:"totalFractionalCycles",type:"uint8",baseType:"uint8",array:!1,scale:128,offset:0,units:"cycles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},95:{num:95,name:"avgTotalHemoglobinConc",type:"uint16",baseType:"uint16",array:!0,scale:100,offset:0,units:"g/dL",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},96:{num:96,name:"minTotalHemoglobinConc",type:"uint16",baseType:"uint16",array:!0,scale:100,offset:0,units:"g/dL",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},97:{num:97,name:"maxTotalHemoglobinConc",type:"uint16",baseType:"uint16",array:!0,scale:100,offset:0,units:"g/dL",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},98:{num:98,name:"avgSaturatedHemoglobinPercent",type:"uint16",baseType:"uint16",array:!0,scale:10,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},99:{num:99,name:"minSaturatedHemoglobinPercent",type:"uint16",baseType:"uint16",array:!0,scale:10,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},100:{num:100,name:"maxSaturatedHemoglobinPercent",type:"uint16",baseType:"uint16",array:!0,scale:10,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},101:{num:101,name:"avgLeftTorqueEffectiveness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},102:{num:102,name:"avgRightTorqueEffectiveness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},103:{num:103,name:"avgLeftPedalSmoothness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},104:{num:104,name:"avgRightPedalSmoothness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},105:{num:105,name:"avgCombinedPedalSmoothness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},110:{num:110,name:"sportProfileName",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},111:{num:111,name:"sportIndex",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},112:{num:112,name:"timeStanding",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},113:{num:113,name:"standCount",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},114:{num:114,name:"avgLeftPco",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},115:{num:115,name:"avgRightPco",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},116:{num:116,name:"avgLeftPowerPhase",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},117:{num:117,name:"avgLeftPowerPhasePeak",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},118:{num:118,name:"avgRightPowerPhase",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},119:{num:119,name:"avgRightPowerPhasePeak",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},120:{num:120,name:"avgPowerPosition",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},121:{num:121,name:"maxPowerPosition",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},122:{num:122,name:"avgCadencePosition",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},123:{num:123,name:"maxCadencePosition",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},124:{num:124,name:"enhancedAvgSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},125:{num:125,name:"enhancedMaxSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},126:{num:126,name:"enhancedAvgAltitude",type:"uint32",baseType:"uint32",array:!1,scale:5,offset:500,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},127:{num:127,name:"enhancedMinAltitude",type:"uint32",baseType:"uint32",array:!1,scale:5,offset:500,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},128:{num:128,name:"enhancedMaxAltitude",type:"uint32",baseType:"uint32",array:!1,scale:5,offset:500,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},129:{num:129,name:"avgLevMotorPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},130:{num:130,name:"maxLevMotorPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},131:{num:131,name:"levBatteryConsumption",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},132:{num:132,name:"avgVerticalRatio",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},133:{num:133,name:"avgStanceTimeBalance",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},134:{num:134,name:"avgStepLength",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},137:{num:137,name:"totalAnaerobicTrainingEffect",type:"uint8",baseType:"uint8",array:!1,scale:10,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},139:{num:139,name:"avgVam",type:"uint16",baseType:"uint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},140:{num:140,name:"avgDepth",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},141:{num:141,name:"maxDepth",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},142:{num:142,name:"surfaceInterval",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},143:{num:143,name:"startCns",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},144:{num:144,name:"endCns",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},145:{num:145,name:"startN2",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},146:{num:146,name:"endN2",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},147:{num:147,name:"avgRespirationRate",type:"uint8",baseType:"uint8",array:!1,scale:[1],offset:[0],units:[""],bits:[8],components:["169"],isAccumulated:!1,hasComponents:!0,subFields:[]},148:{num:148,name:"maxRespirationRate",type:"uint8",baseType:"uint8",array:!1,scale:[1],offset:[0],units:[""],bits:[8],components:["170"],isAccumulated:!1,hasComponents:!0,subFields:[]},149:{num:149,name:"minRespirationRate",type:"uint8",baseType:"uint8",array:!1,scale:[1],offset:[0],units:[""],bits:[8],components:["180"],isAccumulated:!1,hasComponents:!0,subFields:[]},150:{num:150,name:"minTemperature",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},155:{num:155,name:"o2Toxicity",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"OTUs",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},156:{num:156,name:"diveNumber",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},168:{num:168,name:"trainingLoadPeak",type:"sint32",baseType:"sint32",array:!1,scale:65536,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},169:{num:169,name:"enhancedAvgRespirationRate",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"Breaths/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},170:{num:170,name:"enhancedMaxRespirationRate",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"Breaths/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},180:{num:180,name:"enhancedMinRespirationRate",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},181:{num:181,name:"totalGrit",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"kGrit",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},182:{num:182,name:"totalFlow",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"Flow",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},183:{num:183,name:"jumpCount",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},186:{num:186,name:"avgGrit",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"kGrit",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},187:{num:187,name:"avgFlow",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"Flow",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},192:{num:192,name:"workoutFeel",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},193:{num:193,name:"workoutRpe",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},194:{num:194,name:"avgSpo2",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},195:{num:195,name:"avgStress",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},196:{num:196,name:"metabolicCalories",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"kcal",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},197:{num:197,name:"sdrrHrv",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"mS",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},198:{num:198,name:"rmssdHrv",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"mS",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},199:{num:199,name:"totalFractionalAscent",type:"uint8",baseType:"uint8",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},200:{num:200,name:"totalFractionalDescent",type:"uint8",baseType:"uint8",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},208:{num:208,name:"avgCoreTemperature",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},209:{num:209,name:"minCoreTemperature",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},210:{num:210,name:"maxCoreTemperature",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},19:{num:19,name:"lap",messagesKey:"lapMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"event",type:"event",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"eventType",type:"eventType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"startTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"startPositionLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"startPositionLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"endPositionLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"endPositionLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"totalElapsedTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"totalTimerTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"totalDistance",type:"uint32",baseType:"uint32",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"totalCycles",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"cycles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"totalStrides",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"strides",bits:[],components:[],hasComponents:!1,map:[{name:"sport",value:1},{name:"sport",value:11}]},{name:"totalStrokes",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"strokes",bits:[],components:[],hasComponents:!1,map:[{name:"sport",value:2},{name:"sport",value:5},{name:"sport",value:15},{name:"sport",value:37}]}]},11:{num:11,name:"totalCalories",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"kcal",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"totalFatCalories",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"kcal",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"avgSpeed",type:"uint16",baseType:"uint16",array:!1,scale:[1e3],offset:[0],units:["m/s"],bits:[16],components:["110"],isAccumulated:!1,hasComponents:!0,subFields:[]},14:{num:14,name:"maxSpeed",type:"uint16",baseType:"uint16",array:!1,scale:[1e3],offset:[0],units:["m/s"],bits:[16],components:["111"],isAccumulated:!1,hasComponents:!0,subFields:[]},15:{num:15,name:"avgHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},16:{num:16,name:"maxHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},17:{num:17,name:"avgCadence",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"avgRunningCadence",type:"uint8",baseType:"uint8",scale:1,offset:0,units:"strides/min",bits:[],components:[],hasComponents:!1,map:[{name:"sport",value:1}]}]},18:{num:18,name:"maxCadence",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"maxRunningCadence",type:"uint8",baseType:"uint8",scale:1,offset:0,units:"strides/min",bits:[],components:[],hasComponents:!1,map:[{name:"sport",value:1}]}]},19:{num:19,name:"avgPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},20:{num:20,name:"maxPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},21:{num:21,name:"totalAscent",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},22:{num:22,name:"totalDescent",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},23:{num:23,name:"intensity",type:"intensity",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},24:{num:24,name:"lapTrigger",type:"lapTrigger",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},25:{num:25,name:"sport",type:"sport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},26:{num:26,name:"eventGroup",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},32:{num:32,name:"numLengths",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"lengths",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},33:{num:33,name:"normalizedPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},34:{num:34,name:"leftRightBalance",type:"leftRightBalance100",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},35:{num:35,name:"firstLengthIndex",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},37:{num:37,name:"avgStrokeDistance",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},38:{num:38,name:"swimStroke",type:"swimStroke",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},39:{num:39,name:"subSport",type:"subSport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},40:{num:40,name:"numActiveLengths",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"lengths",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},41:{num:41,name:"totalWork",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"J",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},42:{num:42,name:"avgAltitude",type:"uint16",baseType:"uint16",array:!1,scale:[5],offset:[500],units:["m"],bits:[16],components:["112"],isAccumulated:!1,hasComponents:!0,subFields:[]},43:{num:43,name:"maxAltitude",type:"uint16",baseType:"uint16",array:!1,scale:[5],offset:[500],units:["m"],bits:[16],components:["114"],isAccumulated:!1,hasComponents:!0,subFields:[]},44:{num:44,name:"gpsAccuracy",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},45:{num:45,name:"avgGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},46:{num:46,name:"avgPosGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},47:{num:47,name:"avgNegGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},48:{num:48,name:"maxPosGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},49:{num:49,name:"maxNegGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},50:{num:50,name:"avgTemperature",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},51:{num:51,name:"maxTemperature",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},52:{num:52,name:"totalMovingTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},53:{num:53,name:"avgPosVerticalSpeed",type:"sint16",baseType:"sint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},54:{num:54,name:"avgNegVerticalSpeed",type:"sint16",baseType:"sint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},55:{num:55,name:"maxPosVerticalSpeed",type:"sint16",baseType:"sint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},56:{num:56,name:"maxNegVerticalSpeed",type:"sint16",baseType:"sint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},57:{num:57,name:"timeInHrZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},58:{num:58,name:"timeInSpeedZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},59:{num:59,name:"timeInCadenceZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},60:{num:60,name:"timeInPowerZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},61:{num:61,name:"repetitionNum",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},62:{num:62,name:"minAltitude",type:"uint16",baseType:"uint16",array:!1,scale:[5],offset:[500],units:["m"],bits:[16],components:["113"],isAccumulated:!1,hasComponents:!0,subFields:[]},63:{num:63,name:"minHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},70:{num:70,name:"activeTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},71:{num:71,name:"wktStepIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},74:{num:74,name:"opponentScore",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},75:{num:75,name:"strokeCount",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},76:{num:76,name:"zoneCount",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},77:{num:77,name:"avgVerticalOscillation",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},78:{num:78,name:"avgStanceTimePercent",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},79:{num:79,name:"avgStanceTime",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},80:{num:80,name:"avgFractionalCadence",type:"uint8",baseType:"uint8",array:!1,scale:128,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},81:{num:81,name:"maxFractionalCadence",type:"uint8",baseType:"uint8",array:!1,scale:128,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},82:{num:82,name:"totalFractionalCycles",type:"uint8",baseType:"uint8",array:!1,scale:128,offset:0,units:"cycles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},83:{num:83,name:"playerScore",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},84:{num:84,name:"avgTotalHemoglobinConc",type:"uint16",baseType:"uint16",array:!0,scale:100,offset:0,units:"g/dL",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},85:{num:85,name:"minTotalHemoglobinConc",type:"uint16",baseType:"uint16",array:!0,scale:100,offset:0,units:"g/dL",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},86:{num:86,name:"maxTotalHemoglobinConc",type:"uint16",baseType:"uint16",array:!0,scale:100,offset:0,units:"g/dL",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},87:{num:87,name:"avgSaturatedHemoglobinPercent",type:"uint16",baseType:"uint16",array:!0,scale:10,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},88:{num:88,name:"minSaturatedHemoglobinPercent",type:"uint16",baseType:"uint16",array:!0,scale:10,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},89:{num:89,name:"maxSaturatedHemoglobinPercent",type:"uint16",baseType:"uint16",array:!0,scale:10,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},91:{num:91,name:"avgLeftTorqueEffectiveness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},92:{num:92,name:"avgRightTorqueEffectiveness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},93:{num:93,name:"avgLeftPedalSmoothness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},94:{num:94,name:"avgRightPedalSmoothness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},95:{num:95,name:"avgCombinedPedalSmoothness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},98:{num:98,name:"timeStanding",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},99:{num:99,name:"standCount",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},100:{num:100,name:"avgLeftPco",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},101:{num:101,name:"avgRightPco",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},102:{num:102,name:"avgLeftPowerPhase",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},103:{num:103,name:"avgLeftPowerPhasePeak",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},104:{num:104,name:"avgRightPowerPhase",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},105:{num:105,name:"avgRightPowerPhasePeak",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},106:{num:106,name:"avgPowerPosition",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},107:{num:107,name:"maxPowerPosition",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},108:{num:108,name:"avgCadencePosition",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},109:{num:109,name:"maxCadencePosition",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},110:{num:110,name:"enhancedAvgSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},111:{num:111,name:"enhancedMaxSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},112:{num:112,name:"enhancedAvgAltitude",type:"uint32",baseType:"uint32",array:!1,scale:5,offset:500,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},113:{num:113,name:"enhancedMinAltitude",type:"uint32",baseType:"uint32",array:!1,scale:5,offset:500,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},114:{num:114,name:"enhancedMaxAltitude",type:"uint32",baseType:"uint32",array:!1,scale:5,offset:500,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},115:{num:115,name:"avgLevMotorPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},116:{num:116,name:"maxLevMotorPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},117:{num:117,name:"levBatteryConsumption",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},118:{num:118,name:"avgVerticalRatio",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},119:{num:119,name:"avgStanceTimeBalance",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},120:{num:120,name:"avgStepLength",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},121:{num:121,name:"avgVam",type:"uint16",baseType:"uint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},122:{num:122,name:"avgDepth",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},123:{num:123,name:"maxDepth",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},124:{num:124,name:"minTemperature",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},136:{num:136,name:"enhancedAvgRespirationRate",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"Breaths/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},137:{num:137,name:"enhancedMaxRespirationRate",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"Breaths/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},147:{num:147,name:"avgRespirationRate",type:"uint8",baseType:"uint8",array:!1,scale:[1],offset:[0],units:[""],bits:[8],components:["136"],isAccumulated:!1,hasComponents:!0,subFields:[]},148:{num:148,name:"maxRespirationRate",type:"uint8",baseType:"uint8",array:!1,scale:[1],offset:[0],units:[""],bits:[8],components:["137"],isAccumulated:!1,hasComponents:!0,subFields:[]},149:{num:149,name:"totalGrit",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"kGrit",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},150:{num:150,name:"totalFlow",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"Flow",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},151:{num:151,name:"jumpCount",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},153:{num:153,name:"avgGrit",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"kGrit",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},154:{num:154,name:"avgFlow",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"Flow",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},156:{num:156,name:"totalFractionalAscent",type:"uint8",baseType:"uint8",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},157:{num:157,name:"totalFractionalDescent",type:"uint8",baseType:"uint8",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},158:{num:158,name:"avgCoreTemperature",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},159:{num:159,name:"minCoreTemperature",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},160:{num:160,name:"maxCoreTemperature",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},101:{num:101,name:"length",messagesKey:"lengthMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"event",type:"event",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"eventType",type:"eventType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"startTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"totalElapsedTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"totalTimerTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"totalStrokes",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"strokes",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"avgSpeed",type:"uint16",baseType:"uint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"swimStroke",type:"swimStroke",baseType:"enum",array:!1,scale:1,offset:0,units:"swim_stroke",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"avgSwimmingCadence",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"strokes/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"eventGroup",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"totalCalories",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"kcal",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"lengthType",type:"lengthType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},18:{num:18,name:"playerScore",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},19:{num:19,name:"opponentScore",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},20:{num:20,name:"strokeCount",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},21:{num:21,name:"zoneCount",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},22:{num:22,name:"enhancedAvgRespirationRate",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"Breaths/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},23:{num:23,name:"enhancedMaxRespirationRate",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"Breaths/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},24:{num:24,name:"avgRespirationRate",type:"uint8",baseType:"uint8",array:!1,scale:[1],offset:[0],units:[""],bits:[8],components:["22"],isAccumulated:!1,hasComponents:!0,subFields:[]},25:{num:25,name:"maxRespirationRate",type:"uint8",baseType:"uint8",array:!1,scale:[1],offset:[0],units:[""],bits:[8],components:["23"],isAccumulated:!1,hasComponents:!0,subFields:[]}}},20:{num:20,name:"record",messagesKey:"recordMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"positionLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"positionLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"altitude",type:"uint16",baseType:"uint16",array:!1,scale:[5],offset:[500],units:["m"],bits:[16],components:["78"],isAccumulated:!1,hasComponents:!0,subFields:[]},3:{num:3,name:"heartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"cadence",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"distance",type:"uint32",baseType:"uint32",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!0,hasComponents:!1,subFields:[]},6:{num:6,name:"speed",type:"uint16",baseType:"uint16",array:!1,scale:[1e3],offset:[0],units:["m/s"],bits:[16],components:["73"],isAccumulated:!1,hasComponents:!0,subFields:[]},7:{num:7,name:"power",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"compressedSpeedDistance",type:"byte",baseType:"byte",array:!0,scale:[100,16],offset:[0,0],units:["m/s","m"],bits:[12,12],components:["6","5"],isAccumulated:!1,hasComponents:!0,subFields:[]},9:{num:9,name:"grade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"resistance",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"timeFromCourse",type:"sint32",baseType:"sint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"cycleLength",type:"uint8",baseType:"uint8",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"temperature",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},17:{num:17,name:"speed1s",type:"uint8",baseType:"uint8",array:!0,scale:16,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},18:{num:18,name:"cycles",type:"uint8",baseType:"uint8",array:!1,scale:[1],offset:[0],units:["cycles"],bits:[8],components:["19"],isAccumulated:!1,hasComponents:!0,subFields:[]},19:{num:19,name:"totalCycles",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"cycles",bits:[],components:[],isAccumulated:!0,hasComponents:!1,subFields:[]},28:{num:28,name:"compressedAccumulatedPower",type:"uint16",baseType:"uint16",array:!1,scale:[1],offset:[0],units:["watts"],bits:[16],components:["29"],isAccumulated:!1,hasComponents:!0,subFields:[]},29:{num:29,name:"accumulatedPower",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!0,hasComponents:!1,subFields:[]},30:{num:30,name:"leftRightBalance",type:"leftRightBalance",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},31:{num:31,name:"gpsAccuracy",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},32:{num:32,name:"verticalSpeed",type:"sint16",baseType:"sint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},33:{num:33,name:"calories",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"kcal",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},39:{num:39,name:"verticalOscillation",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},40:{num:40,name:"stanceTimePercent",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},41:{num:41,name:"stanceTime",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},42:{num:42,name:"activityType",type:"activityType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},43:{num:43,name:"leftTorqueEffectiveness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},44:{num:44,name:"rightTorqueEffectiveness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},45:{num:45,name:"leftPedalSmoothness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},46:{num:46,name:"rightPedalSmoothness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},47:{num:47,name:"combinedPedalSmoothness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},48:{num:48,name:"time128",type:"uint8",baseType:"uint8",array:!1,scale:128,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},49:{num:49,name:"strokeType",type:"strokeType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},50:{num:50,name:"zone",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},51:{num:51,name:"ballSpeed",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},52:{num:52,name:"cadence256",type:"uint16",baseType:"uint16",array:!1,scale:256,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},53:{num:53,name:"fractionalCadence",type:"uint8",baseType:"uint8",array:!1,scale:128,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},54:{num:54,name:"totalHemoglobinConc",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"g/dL",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},55:{num:55,name:"totalHemoglobinConcMin",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"g/dL",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},56:{num:56,name:"totalHemoglobinConcMax",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"g/dL",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},57:{num:57,name:"saturatedHemoglobinPercent",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},58:{num:58,name:"saturatedHemoglobinPercentMin",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},59:{num:59,name:"saturatedHemoglobinPercentMax",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},62:{num:62,name:"deviceIndex",type:"deviceIndex",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},67:{num:67,name:"leftPco",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},68:{num:68,name:"rightPco",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},69:{num:69,name:"leftPowerPhase",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},70:{num:70,name:"leftPowerPhasePeak",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},71:{num:71,name:"rightPowerPhase",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},72:{num:72,name:"rightPowerPhasePeak",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},73:{num:73,name:"enhancedSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},78:{num:78,name:"enhancedAltitude",type:"uint32",baseType:"uint32",array:!1,scale:5,offset:500,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},81:{num:81,name:"batterySoc",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},82:{num:82,name:"motorPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},83:{num:83,name:"verticalRatio",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},84:{num:84,name:"stanceTimeBalance",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},85:{num:85,name:"stepLength",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},87:{num:87,name:"cycleLength16",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},91:{num:91,name:"absolutePressure",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"Pa",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},92:{num:92,name:"depth",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},93:{num:93,name:"nextStopDepth",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},94:{num:94,name:"nextStopTime",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},95:{num:95,name:"timeToSurface",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},96:{num:96,name:"ndlTime",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},97:{num:97,name:"cnsLoad",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},98:{num:98,name:"n2Load",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},99:{num:99,name:"respirationRate",type:"uint8",baseType:"uint8",array:!1,scale:[1],offset:[0],units:["s"],bits:[8],components:["108"],isAccumulated:!1,hasComponents:!0,subFields:[]},108:{num:108,name:"enhancedRespirationRate",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"Breaths/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},114:{num:114,name:"grit",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},115:{num:115,name:"flow",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},116:{num:116,name:"currentStress",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},117:{num:117,name:"ebikeTravelRange",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"km",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},118:{num:118,name:"ebikeBatteryLevel",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},119:{num:119,name:"ebikeAssistMode",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"depends on sensor",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},120:{num:120,name:"ebikeAssistLevelPercent",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},123:{num:123,name:"airTimeRemaining",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},124:{num:124,name:"pressureSac",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"bar/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},125:{num:125,name:"volumeSac",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"L/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},126:{num:126,name:"rmv",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"L/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},127:{num:127,name:"ascentRate",type:"sint32",baseType:"sint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},129:{num:129,name:"po2",type:"uint8",baseType:"uint8",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},139:{num:139,name:"coreTemperature",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},21:{num:21,name:"event",messagesKey:"eventMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"event",type:"event",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"eventType",type:"eventType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"data16",type:"uint16",baseType:"uint16",array:!1,scale:[1],offset:[0],units:[""],bits:[16],components:["3"],isAccumulated:!1,hasComponents:!0,subFields:[]},3:{num:3,name:"data",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"timerTrigger",type:"timerTrigger",baseType:"enum",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:0}]},{name:"coursePointIndex",type:"messageIndex",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:10}]},{name:"batteryLevel",type:"uint16",baseType:"uint16",scale:1e3,offset:0,units:"V",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:11}]},{name:"virtualPartnerSpeed",type:"uint16",baseType:"uint16",scale:1e3,offset:0,units:"m/s",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:12}]},{name:"hrHighAlert",type:"uint8",baseType:"uint8",scale:1,offset:0,units:"bpm",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:13}]},{name:"hrLowAlert",type:"uint8",baseType:"uint8",scale:1,offset:0,units:"bpm",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:14}]},{name:"speedHighAlert",type:"uint32",baseType:"uint32",scale:1e3,offset:0,units:"m/s",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:15}]},{name:"speedLowAlert",type:"uint32",baseType:"uint32",scale:1e3,offset:0,units:"m/s",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:16}]},{name:"cadHighAlert",type:"uint16",baseType:"uint16",scale:1,offset:0,units:"rpm",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:17}]},{name:"cadLowAlert",type:"uint16",baseType:"uint16",scale:1,offset:0,units:"rpm",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:18}]},{name:"powerHighAlert",type:"uint16",baseType:"uint16",scale:1,offset:0,units:"watts",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:19}]},{name:"powerLowAlert",type:"uint16",baseType:"uint16",scale:1,offset:0,units:"watts",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:20}]},{name:"timeDurationAlert",type:"uint32",baseType:"uint32",scale:1e3,offset:0,units:"s",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:23}]},{name:"distanceDurationAlert",type:"uint32",baseType:"uint32",scale:100,offset:0,units:"m",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:24}]},{name:"calorieDurationAlert",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"calories",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:25}]},{name:"fitnessEquipmentState",type:"fitnessEquipmentState",baseType:"enum",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:27}]},{name:"sportPoint",type:"uint32",baseType:"uint32",scale:[1,1],offset:[0,0],units:["",""],bits:[16,16],components:["7","8"],hasComponents:!0,map:[{name:"event",value:33}]},{name:"gearChangeData",type:"uint32",baseType:"uint32",scale:[1,1,1,1],offset:[0,0,0,0],units:["","","",""],bits:[8,8,8,8],components:["11","12","9","10"],hasComponents:!0,map:[{name:"event",value:42},{name:"event",value:43}]},{name:"riderPosition",type:"riderPositionType",baseType:"enum",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:44}]},{name:"commTimeout",type:"commTimeoutType",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:47}]},{name:"diveAlert",type:"diveAlert",baseType:"enum",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:56}]},{name:"autoActivityDetectDuration",type:"uint16",baseType:"uint16",scale:1,offset:0,units:"min",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:54}]},{name:"radarThreatAlert",type:"uint32",baseType:"uint32",scale:[1,1,10,10],offset:[0,0,0,0],units:["","","",""],bits:[8,8,8,8],components:["21","22","23","24"],hasComponents:!0,map:[{name:"event",value:75}]}]},4:{num:4,name:"eventGroup",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"score",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"opponentScore",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"frontGearNum",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"frontGear",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"rearGearNum",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"rearGear",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"deviceIndex",type:"deviceIndex",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},14:{num:14,name:"activityType",type:"activityType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},15:{num:15,name:"startTimestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"autoActivityDetectStartTimestamp",type:"dateTime",baseType:"uint32",scale:1,offset:0,units:"s",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:54}]}]},21:{num:21,name:"radarThreatLevelMax",type:"radarThreatLevelType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},22:{num:22,name:"radarThreatCount",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},23:{num:23,name:"radarThreatAvgApproachSpeed",type:"uint8",baseType:"uint8",array:!1,scale:10,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},24:{num:24,name:"radarThreatMaxApproachSpeed",type:"uint8",baseType:"uint8",array:!1,scale:10,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},23:{num:23,name:"deviceInfo",messagesKey:"deviceInfoMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"deviceIndex",type:"deviceIndex",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"deviceType",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"bleDeviceType",type:"bleDeviceType",baseType:"uint8",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"sourceType",value:3}]},{name:"antplusDeviceType",type:"antplusDeviceType",baseType:"uint8",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"sourceType",value:1}]},{name:"antDeviceType",type:"uint8",baseType:"uint8",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"sourceType",value:0}]},{name:"localDeviceType",type:"localDeviceType",baseType:"uint8",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"sourceType",value:5}]}]},2:{num:2,name:"manufacturer",type:"manufacturer",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"serialNumber",type:"uint32z",baseType:"uint32z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"product",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"faveroProduct",type:"faveroProduct",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"manufacturer",value:263}]},{name:"garminProduct",type:"garminProduct",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"manufacturer",value:1},{name:"manufacturer",value:15},{name:"manufacturer",value:13},{name:"manufacturer",value:89}]}]},5:{num:5,name:"softwareVersion",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"hardwareVersion",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"cumOperatingTime",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"batteryVoltage",type:"uint16",baseType:"uint16",array:!1,scale:256,offset:0,units:"V",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"batteryStatus",type:"batteryStatus",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},18:{num:18,name:"sensorPosition",type:"bodyLocation",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},19:{num:19,name:"descriptor",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},20:{num:20,name:"antTransmissionType",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},21:{num:21,name:"antDeviceNumber",type:"uint16z",baseType:"uint16z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},22:{num:22,name:"antNetwork",type:"antNetwork",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},25:{num:25,name:"sourceType",type:"sourceType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},27:{num:27,name:"productName",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},32:{num:32,name:"batteryLevel",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},375:{num:375,name:"deviceAuxBatteryInfo",messagesKey:"deviceAuxBatteryInfoMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"deviceIndex",type:"deviceIndex",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"batteryVoltage",type:"uint16",baseType:"uint16",array:!1,scale:256,offset:0,units:"V",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"batteryStatus",type:"batteryStatus",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"batteryIdentifier",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},72:{num:72,name:"trainingFile",messagesKey:"trainingFileMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"type",type:"file",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"manufacturer",type:"manufacturer",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"product",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"faveroProduct",type:"faveroProduct",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"manufacturer",value:263}]},{name:"garminProduct",type:"garminProduct",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"manufacturer",value:1},{name:"manufacturer",value:15},{name:"manufacturer",value:13},{name:"manufacturer",value:89}]}]},3:{num:3,name:"serialNumber",type:"uint32z",baseType:"uint32z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"timeCreated",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},128:{num:128,name:"weatherConditions",messagesKey:"weatherConditionsMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"weatherReport",type:"weatherReport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"temperature",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"condition",type:"weatherStatus",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"windDirection",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"windSpeed",type:"uint16",baseType:"uint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"precipitationProbability",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"temperatureFeelsLike",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"relativeHumidity",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"location",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"observedAtTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"observedLocationLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"observedLocationLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"dayOfWeek",type:"dayOfWeek",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"highTemperature",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},14:{num:14,name:"lowTemperature",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},129:{num:129,name:"weatherAlert",messagesKey:"weatherAlertMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"reportId",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"issueTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"expireTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"severity",type:"weatherSeverity",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"type",type:"weatherSevereType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},160:{num:160,name:"gpsMetadata",messagesKey:"gpsMetadataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"positionLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"positionLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"enhancedAltitude",type:"uint32",baseType:"uint32",array:!1,scale:5,offset:500,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"enhancedSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"heading",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"utcTimestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"velocity",type:"sint16",baseType:"sint16",array:!0,scale:100,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},161:{num:161,name:"cameraEvent",messagesKey:"cameraEventMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"cameraEventType",type:"cameraEventType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"cameraFileUuid",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"cameraOrientation",type:"cameraOrientationType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},164:{num:164,name:"gyroscopeData",messagesKey:"gyroscopeDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"sampleTimeOffset",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"gyroX",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"gyroY",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"gyroZ",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"calibratedGyroX",type:"float32",baseType:"float32",array:!0,scale:1,offset:0,units:"deg/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"calibratedGyroY",type:"float32",baseType:"float32",array:!0,scale:1,offset:0,units:"deg/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"calibratedGyroZ",type:"float32",baseType:"float32",array:!0,scale:1,offset:0,units:"deg/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},165:{num:165,name:"accelerometerData",messagesKey:"accelerometerDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"sampleTimeOffset",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"accelX",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"accelY",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"accelZ",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"calibratedAccelX",type:"float32",baseType:"float32",array:!0,scale:1,offset:0,units:"g",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"calibratedAccelY",type:"float32",baseType:"float32",array:!0,scale:1,offset:0,units:"g",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"calibratedAccelZ",type:"float32",baseType:"float32",array:!0,scale:1,offset:0,units:"g",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"compressedCalibratedAccelX",type:"sint16",baseType:"sint16",array:!0,scale:1,offset:0,units:"mG",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"compressedCalibratedAccelY",type:"sint16",baseType:"sint16",array:!0,scale:1,offset:0,units:"mG",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"compressedCalibratedAccelZ",type:"sint16",baseType:"sint16",array:!0,scale:1,offset:0,units:"mG",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},208:{num:208,name:"magnetometerData",messagesKey:"magnetometerDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"sampleTimeOffset",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"magX",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"magY",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"magZ",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"calibratedMagX",type:"float32",baseType:"float32",array:!0,scale:1,offset:0,units:"G",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"calibratedMagY",type:"float32",baseType:"float32",array:!0,scale:1,offset:0,units:"G",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"calibratedMagZ",type:"float32",baseType:"float32",array:!0,scale:1,offset:0,units:"G",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},209:{num:209,name:"barometerData",messagesKey:"barometerDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"sampleTimeOffset",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"baroPres",type:"uint32",baseType:"uint32",array:!0,scale:1,offset:0,units:"Pa",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},167:{num:167,name:"threeDSensorCalibration",messagesKey:"threeDSensorCalibrationMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"sensorType",type:"sensorType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"calibrationFactor",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"accelCalFactor",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"g",bits:[],components:[],hasComponents:!1,map:[{name:"sensorType",value:0}]},{name:"gyroCalFactor",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"deg/s",bits:[],components:[],hasComponents:!1,map:[{name:"sensorType",value:1}]}]},2:{num:2,name:"calibrationDivisor",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"levelShift",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"offsetCal",type:"sint32",baseType:"sint32",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"orientationMatrix",type:"sint32",baseType:"sint32",array:!0,scale:65535,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},210:{num:210,name:"oneDSensorCalibration",messagesKey:"oneDSensorCalibrationMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"sensorType",type:"sensorType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"calibrationFactor",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"baroCalFactor",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"Pa",bits:[],components:[],hasComponents:!1,map:[{name:"sensorType",value:3}]}]},2:{num:2,name:"calibrationDivisor",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"levelShift",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"offsetCal",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},169:{num:169,name:"videoFrame",messagesKey:"videoFrameMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"frameNumber",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},174:{num:174,name:"obdiiData",messagesKey:"obdiiDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"timeOffset",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"pid",type:"byte",baseType:"byte",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"rawData",type:"byte",baseType:"byte",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"pidDataSize",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"systemTime",type:"uint32",baseType:"uint32",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"startTimestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"startTimestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},177:{num:177,name:"nmeaSentence",messagesKey:"nmeaSentenceMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"sentence",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},178:{num:178,name:"aviationAttitude",messagesKey:"aviationAttitudeMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"systemTime",type:"uint32",baseType:"uint32",array:!0,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"pitch",type:"sint16",baseType:"sint16",array:!0,scale:10430.38,offset:0,units:"radians",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"roll",type:"sint16",baseType:"sint16",array:!0,scale:10430.38,offset:0,units:"radians",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"accelLateral",type:"sint16",baseType:"sint16",array:!0,scale:100,offset:0,units:"m/s^2",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"accelNormal",type:"sint16",baseType:"sint16",array:!0,scale:100,offset:0,units:"m/s^2",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"turnRate",type:"sint16",baseType:"sint16",array:!0,scale:1024,offset:0,units:"radians/second",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"stage",type:"attitudeStage",baseType:"enum",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"attitudeStageComplete",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"track",type:"uint16",baseType:"uint16",array:!0,scale:10430.38,offset:0,units:"radians",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"validity",type:"attitudeValidity",baseType:"uint16",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},184:{num:184,name:"video",messagesKey:"videoMesgs",fields:{0:{num:0,name:"url",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"hostingProvider",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"duration",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},185:{num:185,name:"videoTitle",messagesKey:"videoTitleMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"messageCount",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"text",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},186:{num:186,name:"videoDescription",messagesKey:"videoDescriptionMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"messageCount",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"text",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},187:{num:187,name:"videoClip",messagesKey:"videoClipMesgs",fields:{0:{num:0,name:"clipNumber",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"startTimestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"startTimestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"endTimestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"endTimestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"clipStart",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"clipEnd",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},225:{num:225,name:"set",messagesKey:"setMesgs",fields:{254:{num:254,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"duration",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"repetitions",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"weight",type:"uint16",baseType:"uint16",array:!1,scale:16,offset:0,units:"kg",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"setType",type:"setType",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"startTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"category",type:"exerciseCategory",baseType:"uint16",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"categorySubtype",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"weightDisplayUnit",type:"fitBaseUnit",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"wktStepIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},285:{num:285,name:"jump",messagesKey:"jumpMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"distance",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"height",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"rotations",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"hangTime",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"score",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"positionLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"positionLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"speed",type:"uint16",baseType:"uint16",array:!1,scale:[1e3],offset:[0],units:["m/s"],bits:[16],components:["8"],isAccumulated:!1,hasComponents:!0,subFields:[]},8:{num:8,name:"enhancedSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},312:{num:312,name:"split",messagesKey:"splitMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"splitType",type:"splitType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"totalElapsedTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"totalTimerTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"totalDistance",type:"uint32",baseType:"uint32",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"avgSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"startTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"totalAscent",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},14:{num:14,name:"totalDescent",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},21:{num:21,name:"startPositionLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},22:{num:22,name:"startPositionLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},23:{num:23,name:"endPositionLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},24:{num:24,name:"endPositionLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},25:{num:25,name:"maxSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},26:{num:26,name:"avgVertSpeed",type:"sint32",baseType:"sint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},27:{num:27,name:"endTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},28:{num:28,name:"totalCalories",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"kcal",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},74:{num:74,name:"startElevation",type:"uint32",baseType:"uint32",array:!1,scale:5,offset:500,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},78:{num:78,name:"activeTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},110:{num:110,name:"totalMovingTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},313:{num:313,name:"splitSummary",messagesKey:"splitSummaryMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"splitType",type:"splitType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"numSplits",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"totalTimerTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"totalDistance",type:"uint32",baseType:"uint32",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"avgSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"maxSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"totalAscent",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"totalDescent",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"avgHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"maxHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"avgVertSpeed",type:"sint32",baseType:"sint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"totalCalories",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"kcal",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},65:{num:65,name:"activeTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},77:{num:77,name:"totalMovingTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},317:{num:317,name:"climbPro",messagesKey:"climbProMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"positionLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"positionLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"climbProEvent",type:"climbProEvent",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"climbNumber",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"climbCategory",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"currentDist",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},206:{num:206,name:"fieldDescription",messagesKey:"fieldDescriptionMesgs",fields:{0:{num:0,name:"developerDataIndex",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"fieldDefinitionNumber",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"fitBaseTypeId",type:"fitBaseType",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"fieldName",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"array",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"components",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"scale",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"offset",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"units",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"bits",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"accumulate",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"fitBaseUnitId",type:"fitBaseUnit",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},14:{num:14,name:"nativeMesgNum",type:"mesgNum",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},15:{num:15,name:"nativeFieldNum",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},207:{num:207,name:"developerDataId",messagesKey:"developerDataIdMesgs",fields:{0:{num:0,name:"developerId",type:"byte",baseType:"byte",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"applicationId",type:"byte",baseType:"byte",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"manufacturerId",type:"manufacturer",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"developerDataIndex",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"applicationVersion",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},31:{num:31,name:"course",messagesKey:"courseMesgs",fields:{4:{num:4,name:"sport",type:"sport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"name",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"capabilities",type:"courseCapabilities",baseType:"uint32z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"subSport",type:"subSport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},32:{num:32,name:"coursePoint",messagesKey:"coursePointMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"positionLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"positionLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"distance",type:"uint32",baseType:"uint32",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"type",type:"coursePoint",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"name",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"favorite",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},148:{num:148,name:"segmentId",messagesKey:"segmentIdMesgs",fields:{0:{num:0,name:"name",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"uuid",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"sport",type:"sport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"enabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"userProfilePrimaryKey",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"deviceId",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"defaultRaceLeader",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"deleteStatus",type:"segmentDeleteStatus",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"selectionType",type:"segmentSelectionType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},149:{num:149,name:"segmentLeaderboardEntry",messagesKey:"segmentLeaderboardEntryMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"name",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"type",type:"segmentLeaderboardType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"groupPrimaryKey",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"activityId",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"segmentTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"activityIdString",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},150:{num:150,name:"segmentPoint",messagesKey:"segmentPointMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"positionLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"positionLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"distance",type:"uint32",baseType:"uint32",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"altitude",type:"uint16",baseType:"uint16",array:!1,scale:[5],offset:[500],units:["m"],bits:[16],components:["6"],isAccumulated:!1,hasComponents:!0,subFields:[]},5:{num:5,name:"leaderTime",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"enhancedAltitude",type:"uint32",baseType:"uint32",array:!1,scale:5,offset:500,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},142:{num:142,name:"segmentLap",messagesKey:"segmentLapMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"event",type:"event",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"eventType",type:"eventType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"startTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"startPositionLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"startPositionLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"endPositionLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"endPositionLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"totalElapsedTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"totalTimerTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"totalDistance",type:"uint32",baseType:"uint32",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"totalCycles",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"cycles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"totalStrokes",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"strokes",bits:[],components:[],hasComponents:!1,map:[{name:"sport",value:2}]}]},11:{num:11,name:"totalCalories",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"kcal",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"totalFatCalories",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"kcal",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"avgSpeed",type:"uint16",baseType:"uint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},14:{num:14,name:"maxSpeed",type:"uint16",baseType:"uint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},15:{num:15,name:"avgHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},16:{num:16,name:"maxHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},17:{num:17,name:"avgCadence",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},18:{num:18,name:"maxCadence",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},19:{num:19,name:"avgPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},20:{num:20,name:"maxPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},21:{num:21,name:"totalAscent",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},22:{num:22,name:"totalDescent",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},23:{num:23,name:"sport",type:"sport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},24:{num:24,name:"eventGroup",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},25:{num:25,name:"necLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},26:{num:26,name:"necLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},27:{num:27,name:"swcLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},28:{num:28,name:"swcLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},29:{num:29,name:"name",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},30:{num:30,name:"normalizedPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},31:{num:31,name:"leftRightBalance",type:"leftRightBalance100",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},32:{num:32,name:"subSport",type:"subSport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},33:{num:33,name:"totalWork",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"J",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},34:{num:34,name:"avgAltitude",type:"uint16",baseType:"uint16",array:!1,scale:[5],offset:[500],units:["m"],bits:[16],components:["91"],isAccumulated:!1,hasComponents:!0,subFields:[]},35:{num:35,name:"maxAltitude",type:"uint16",baseType:"uint16",array:!1,scale:[5],offset:[500],units:["m"],bits:[16],components:["92"],isAccumulated:!1,hasComponents:!0,subFields:[]},36:{num:36,name:"gpsAccuracy",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},37:{num:37,name:"avgGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},38:{num:38,name:"avgPosGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},39:{num:39,name:"avgNegGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},40:{num:40,name:"maxPosGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},41:{num:41,name:"maxNegGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},42:{num:42,name:"avgTemperature",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},43:{num:43,name:"maxTemperature",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},44:{num:44,name:"totalMovingTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},45:{num:45,name:"avgPosVerticalSpeed",type:"sint16",baseType:"sint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},46:{num:46,name:"avgNegVerticalSpeed",type:"sint16",baseType:"sint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},47:{num:47,name:"maxPosVerticalSpeed",type:"sint16",baseType:"sint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},48:{num:48,name:"maxNegVerticalSpeed",type:"sint16",baseType:"sint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},49:{num:49,name:"timeInHrZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},50:{num:50,name:"timeInSpeedZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},51:{num:51,name:"timeInCadenceZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},52:{num:52,name:"timeInPowerZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},53:{num:53,name:"repetitionNum",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},54:{num:54,name:"minAltitude",type:"uint16",baseType:"uint16",array:!1,scale:[5],offset:[500],units:["m"],bits:[16],components:["93"],isAccumulated:!1,hasComponents:!0,subFields:[]},55:{num:55,name:"minHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},56:{num:56,name:"activeTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},57:{num:57,name:"wktStepIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},58:{num:58,name:"sportEvent",type:"sportEvent",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},59:{num:59,name:"avgLeftTorqueEffectiveness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},60:{num:60,name:"avgRightTorqueEffectiveness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},61:{num:61,name:"avgLeftPedalSmoothness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},62:{num:62,name:"avgRightPedalSmoothness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},63:{num:63,name:"avgCombinedPedalSmoothness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},64:{num:64,name:"status",type:"segmentLapStatus",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},65:{num:65,name:"uuid",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},66:{num:66,name:"avgFractionalCadence",type:"uint8",baseType:"uint8",array:!1,scale:128,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},67:{num:67,name:"maxFractionalCadence",type:"uint8",baseType:"uint8",array:!1,scale:128,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},68:{num:68,name:"totalFractionalCycles",type:"uint8",baseType:"uint8",array:!1,scale:128,offset:0,units:"cycles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},69:{num:69,name:"frontGearShiftCount",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},70:{num:70,name:"rearGearShiftCount",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},71:{num:71,name:"timeStanding",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},72:{num:72,name:"standCount",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},73:{num:73,name:"avgLeftPco",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},74:{num:74,name:"avgRightPco",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},75:{num:75,name:"avgLeftPowerPhase",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},76:{num:76,name:"avgLeftPowerPhasePeak",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},77:{num:77,name:"avgRightPowerPhase",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},78:{num:78,name:"avgRightPowerPhasePeak",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},79:{num:79,name:"avgPowerPosition",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},80:{num:80,name:"maxPowerPosition",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},81:{num:81,name:"avgCadencePosition",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},82:{num:82,name:"maxCadencePosition",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},83:{num:83,name:"manufacturer",type:"manufacturer",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},84:{num:84,name:"totalGrit",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"kGrit",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},85:{num:85,name:"totalFlow",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"Flow",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},86:{num:86,name:"avgGrit",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"kGrit",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},87:{num:87,name:"avgFlow",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"Flow",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},89:{num:89,name:"totalFractionalAscent",type:"uint8",baseType:"uint8",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},90:{num:90,name:"totalFractionalDescent",type:"uint8",baseType:"uint8",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},91:{num:91,name:"enhancedAvgAltitude",type:"uint32",baseType:"uint32",array:!1,scale:5,offset:500,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},92:{num:92,name:"enhancedMaxAltitude",type:"uint32",baseType:"uint32",array:!1,scale:5,offset:500,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},93:{num:93,name:"enhancedMinAltitude",type:"uint32",baseType:"uint32",array:!1,scale:5,offset:500,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},151:{num:151,name:"segmentFile",messagesKey:"segmentFileMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"fileUuid",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"enabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"userProfilePrimaryKey",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"leaderType",type:"segmentLeaderboardType",baseType:"enum",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"leaderGroupPrimaryKey",type:"uint32",baseType:"uint32",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"leaderActivityId",type:"uint32",baseType:"uint32",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"leaderActivityIdString",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"defaultRaceLeader",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},26:{num:26,name:"workout",messagesKey:"workoutMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"sport",type:"sport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"capabilities",type:"workoutCapabilities",baseType:"uint32z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"numValidSteps",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"wktName",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"subSport",type:"subSport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},14:{num:14,name:"poolLength",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},15:{num:15,name:"poolLengthUnit",type:"displayMeasure",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},17:{num:17,name:"wktDescription",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},158:{num:158,name:"workoutSession",messagesKey:"workoutSessionMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"sport",type:"sport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"subSport",type:"subSport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"numValidSteps",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"firstStepIndex",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"poolLength",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"poolLengthUnit",type:"displayMeasure",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},27:{num:27,name:"workoutStep",messagesKey:"workoutStepMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"wktStepName",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"durationType",type:"wktStepDuration",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"durationValue",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"durationTime",type:"uint32",baseType:"uint32",scale:1e3,offset:0,units:"s",bits:[],components:[],hasComponents:!1,map:[{name:"durationType",value:0},{name:"durationType",value:28}]},{name:"durationDistance",type:"uint32",baseType:"uint32",scale:100,offset:0,units:"m",bits:[],components:[],hasComponents:!1,map:[{name:"durationType",value:1}]},{name:"durationHr",type:"workoutHr",baseType:"uint32",scale:1,offset:0,units:"% or bpm",bits:[],components:[],hasComponents:!1,map:[{name:"durationType",value:2},{name:"durationType",value:3}]},{name:"durationCalories",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"calories",bits:[],components:[],hasComponents:!1,map:[{name:"durationType",value:4}]},{name:"durationStep",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"durationType",value:6},{name:"durationType",value:7},{name:"durationType",value:8},{name:"durationType",value:9},{name:"durationType",value:10},{name:"durationType",value:11},{name:"durationType",value:12},{name:"durationType",value:13}]},{name:"durationPower",type:"workoutPower",baseType:"uint32",scale:1,offset:0,units:"% or watts",bits:[],components:[],hasComponents:!1,map:[{name:"durationType",value:14},{name:"durationType",value:15}]},{name:"durationReps",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"durationType",value:29}]}]},3:{num:3,name:"targetType",type:"wktStepTarget",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"targetValue",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"targetSpeedZone",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"targetType",value:0}]},{name:"targetHrZone",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"targetType",value:1}]},{name:"targetCadenceZone",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"targetType",value:3}]},{name:"targetPowerZone",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"targetType",value:4}]},{name:"repeatSteps",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"durationType",value:6}]},{name:"repeatTime",type:"uint32",baseType:"uint32",scale:1e3,offset:0,units:"s",bits:[],components:[],hasComponents:!1,map:[{name:"durationType",value:7}]},{name:"repeatDistance",type:"uint32",baseType:"uint32",scale:100,offset:0,units:"m",bits:[],components:[],hasComponents:!1,map:[{name:"durationType",value:8}]},{name:"repeatCalories",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"calories",bits:[],components:[],hasComponents:!1,map:[{name:"durationType",value:9}]},{name:"repeatHr",type:"workoutHr",baseType:"uint32",scale:1,offset:0,units:"% or bpm",bits:[],components:[],hasComponents:!1,map:[{name:"durationType",value:10},{name:"durationType",value:11}]},{name:"repeatPower",type:"workoutPower",baseType:"uint32",scale:1,offset:0,units:"% or watts",bits:[],components:[],hasComponents:!1,map:[{name:"durationType",value:12},{name:"durationType",value:13}]},{name:"targetStrokeType",type:"swimStroke",baseType:"enum",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"targetType",value:11}]}]},5:{num:5,name:"customTargetValueLow",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"customTargetSpeedLow",type:"uint32",baseType:"uint32",scale:1e3,offset:0,units:"m/s",bits:[],components:[],hasComponents:!1,map:[{name:"targetType",value:0}]},{name:"customTargetHeartRateLow",type:"workoutHr",baseType:"uint32",scale:1,offset:0,units:"% or bpm",bits:[],components:[],hasComponents:!1,map:[{name:"targetType",value:1}]},{name:"customTargetCadenceLow",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"rpm",bits:[],components:[],hasComponents:!1,map:[{name:"targetType",value:3}]},{name:"customTargetPowerLow",type:"workoutPower",baseType:"uint32",scale:1,offset:0,units:"% or watts",bits:[],components:[],hasComponents:!1,map:[{name:"targetType",value:4}]}]},6:{num:6,name:"customTargetValueHigh",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"customTargetSpeedHigh",type:"uint32",baseType:"uint32",scale:1e3,offset:0,units:"m/s",bits:[],components:[],hasComponents:!1,map:[{name:"targetType",value:0}]},{name:"customTargetHeartRateHigh",type:"workoutHr",baseType:"uint32",scale:1,offset:0,units:"% or bpm",bits:[],components:[],hasComponents:!1,map:[{name:"targetType",value:1}]},{name:"customTargetCadenceHigh",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"rpm",bits:[],components:[],hasComponents:!1,map:[{name:"targetType",value:3}]},{name:"customTargetPowerHigh",type:"workoutPower",baseType:"uint32",scale:1,offset:0,units:"% or watts",bits:[],components:[],hasComponents:!1,map:[{name:"targetType",value:4}]}]},7:{num:7,name:"intensity",type:"intensity",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"notes",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"equipment",type:"workoutEquipment",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"exerciseCategory",type:"exerciseCategory",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"exerciseName",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"exerciseWeight",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"kg",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"weightDisplayUnit",type:"fitBaseUnit",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},19:{num:19,name:"secondaryTargetType",type:"wktStepTarget",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},20:{num:20,name:"secondaryTargetValue",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"secondaryTargetSpeedZone",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"secondaryTargetType",value:0}]},{name:"secondaryTargetHrZone",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"secondaryTargetType",value:1}]},{name:"secondaryTargetCadenceZone",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"secondaryTargetType",value:3}]},{name:"secondaryTargetPowerZone",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"secondaryTargetType",value:4}]},{name:"secondaryTargetStrokeType",type:"swimStroke",baseType:"enum",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"secondaryTargetType",value:11}]}]},21:{num:21,name:"secondaryCustomTargetValueLow",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"secondaryCustomTargetSpeedLow",type:"uint32",baseType:"uint32",scale:1e3,offset:0,units:"m/s",bits:[],components:[],hasComponents:!1,map:[{name:"secondaryTargetType",value:0}]},{name:"secondaryCustomTargetHeartRateLow",type:"workoutHr",baseType:"uint32",scale:1,offset:0,units:"% or bpm",bits:[],components:[],hasComponents:!1,map:[{name:"secondaryTargetType",value:1}]},{name:"secondaryCustomTargetCadenceLow",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"rpm",bits:[],components:[],hasComponents:!1,map:[{name:"secondaryTargetType",value:3}]},{name:"secondaryCustomTargetPowerLow",type:"workoutPower",baseType:"uint32",scale:1,offset:0,units:"% or watts",bits:[],components:[],hasComponents:!1,map:[{name:"secondaryTargetType",value:4}]}]},22:{num:22,name:"secondaryCustomTargetValueHigh",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"secondaryCustomTargetSpeedHigh",type:"uint32",baseType:"uint32",scale:1e3,offset:0,units:"m/s",bits:[],components:[],hasComponents:!1,map:[{name:"secondaryTargetType",value:0}]},{name:"secondaryCustomTargetHeartRateHigh",type:"workoutHr",baseType:"uint32",scale:1,offset:0,units:"% or bpm",bits:[],components:[],hasComponents:!1,map:[{name:"secondaryTargetType",value:1}]},{name:"secondaryCustomTargetCadenceHigh",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"rpm",bits:[],components:[],hasComponents:!1,map:[{name:"secondaryTargetType",value:3}]},{name:"secondaryCustomTargetPowerHigh",type:"workoutPower",baseType:"uint32",scale:1,offset:0,units:"% or watts",bits:[],components:[],hasComponents:!1,map:[{name:"secondaryTargetType",value:4}]}]}}},264:{num:264,name:"exerciseTitle",messagesKey:"exerciseTitleMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"exerciseCategory",type:"exerciseCategory",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"exerciseName",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"wktStepName",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},28:{num:28,name:"schedule",messagesKey:"scheduleMesgs",fields:{0:{num:0,name:"manufacturer",type:"manufacturer",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"product",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"faveroProduct",type:"faveroProduct",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"manufacturer",value:263}]},{name:"garminProduct",type:"garminProduct",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"manufacturer",value:1},{name:"manufacturer",value:15},{name:"manufacturer",value:13},{name:"manufacturer",value:89}]}]},2:{num:2,name:"serialNumber",type:"uint32z",baseType:"uint32z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"timeCreated",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"completed",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"type",type:"schedule",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"scheduledTime",type:"localDateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},33:{num:33,name:"totals",messagesKey:"totalsMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timerTime",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"distance",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"calories",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"kcal",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"sport",type:"sport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"elapsedTime",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"sessions",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"activeTime",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"sportIndex",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},30:{num:30,name:"weightScale",messagesKey:"weightScaleMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"weight",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"kg",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"percentFat",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"percentHydration",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"visceralFatMass",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"kg",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"boneMass",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"kg",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"muscleMass",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"kg",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"basalMet",type:"uint16",baseType:"uint16",array:!1,scale:4,offset:0,units:"kcal/day",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"physiqueRating",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"activeMet",type:"uint16",baseType:"uint16",array:!1,scale:4,offset:0,units:"kcal/day",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"metabolicAge",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"years",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"visceralFatRating",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"userProfileIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"bmi",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"kg/m^2",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},51:{num:51,name:"bloodPressure",messagesKey:"bloodPressureMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"systolicPressure",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"mmHg",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"diastolicPressure",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"mmHg",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"meanArterialPressure",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"mmHg",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"map3SampleMean",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"mmHg",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"mapMorningValues",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"mmHg",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"mapEveningValues",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"mmHg",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"heartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"heartRateType",type:"hrType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"status",type:"bpStatus",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"userProfileIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},103:{num:103,name:"monitoringInfo",messagesKey:"monitoringInfoMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"localTimestamp",type:"localDateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"activityType",type:"activityType",baseType:"enum",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"cyclesToDistance",type:"uint16",baseType:"uint16",array:!0,scale:5e3,offset:0,units:"m/cycle",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"cyclesToCalories",type:"uint16",baseType:"uint16",array:!0,scale:5e3,offset:0,units:"kcal/cycle",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"restingMetabolicRate",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"kcal / day",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},55:{num:55,name:"monitoring",messagesKey:"monitoringMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"deviceIndex",type:"deviceIndex",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"calories",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"kcal",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"distance",type:"uint32",baseType:"uint32",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"cycles",type:"uint32",baseType:"uint32",array:!1,scale:2,offset:0,units:"cycles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"steps",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"steps",bits:[],components:[],hasComponents:!1,map:[{name:"activityType",value:6},{name:"activityType",value:1}]},{name:"strokes",type:"uint32",baseType:"uint32",scale:2,offset:0,units:"strokes",bits:[],components:[],hasComponents:!1,map:[{name:"activityType",value:2},{name:"activityType",value:5}]}]},4:{num:4,name:"activeTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"activityType",type:"activityType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"activitySubtype",type:"activitySubtype",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"activityLevel",type:"activityLevel",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"distance16",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"100 * m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"cycles16",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"2 * cycles (steps)",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"activeTime16",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"localTimestamp",type:"localDateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"temperature",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},14:{num:14,name:"temperatureMin",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},15:{num:15,name:"temperatureMax",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},16:{num:16,name:"activityTime",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"minutes",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},19:{num:19,name:"activeCalories",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"kcal",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},24:{num:24,name:"currentActivityTypeIntensity",type:"byte",baseType:"byte",array:!1,scale:[1,1],offset:[0,0],units:["",""],bits:[5,3],components:["5","28"],isAccumulated:!1,hasComponents:!0,subFields:[]},25:{num:25,name:"timestampMin8",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},26:{num:26,name:"timestamp16",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},27:{num:27,name:"heartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},28:{num:28,name:"intensity",type:"uint8",baseType:"uint8",array:!1,scale:10,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},29:{num:29,name:"durationMin",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},30:{num:30,name:"duration",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},31:{num:31,name:"ascent",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},32:{num:32,name:"descent",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},33:{num:33,name:"moderateActivityMinutes",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"minutes",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},34:{num:34,name:"vigorousActivityMinutes",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"minutes",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},41:{num:41,name:"pushes",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},211:{num:211,name:"monitoringHrData",messagesKey:"monitoringHrDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"restingHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"currentDayRestingHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},269:{num:269,name:"spo2Data",messagesKey:"spo2DataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"readingSpo2",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"readingConfidence",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"mode",type:"spo2MeasurementType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},132:{num:132,name:"hr",messagesKey:"hrMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"fractionalTimestamp",type:"uint16",baseType:"uint16",array:!1,scale:32768,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"time256",type:"uint8",baseType:"uint8",array:!1,scale:[256],offset:[0],units:["s"],bits:[8],components:["0"],isAccumulated:!1,hasComponents:!0,subFields:[]},6:{num:6,name:"filteredBpm",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"eventTimestamp",type:"uint32",baseType:"uint32",array:!0,scale:1024,offset:0,units:"s",bits:[],components:[],isAccumulated:!0,hasComponents:!1,subFields:[]},10:{num:10,name:"eventTimestamp12",type:"byte",baseType:"byte",array:!0,scale:[1024,1024,1024,1024,1024,1024,1024,1024,1024,1024],offset:[0,0,0,0,0,0,0,0,0,0],units:["s","","","","","","","","",""],bits:[12,12,12,12,12,12,12,12,12,12],components:["9","9","9","9","9","9","9","9","9","9"],isAccumulated:!1,hasComponents:!0,subFields:[]}}},227:{num:227,name:"stressLevel",messagesKey:"stressLevelMesgs",fields:{0:{num:0,name:"stressLevelValue",type:"sint16",baseType:"sint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"stressLevelTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},229:{num:229,name:"maxMetData",messagesKey:"maxMetDataMesgs",fields:{0:{num:0,name:"updateTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"vo2Max",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"mL/kg/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"sport",type:"sport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"subSport",type:"subSport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"maxMetCategory",type:"maxMetCategory",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"calibratedData",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"hrSource",type:"maxMetHeartRateSource",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"speedSource",type:"maxMetSpeedSource",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},314:{num:314,name:"hsaBodyBatteryData",messagesKey:"hsaBodyBatteryDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"processingInterval",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"level",type:"sint8",baseType:"sint8",array:!0,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"charged",type:"sint16",baseType:"sint16",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"uncharged",type:"sint16",baseType:"sint16",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},315:{num:315,name:"hsaEvent",messagesKey:"hsaEventMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"eventId",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},302:{num:302,name:"hsaAccelerometerData",messagesKey:"hsaAccelerometerDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"samplingInterval",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"accelX",type:"sint16",baseType:"sint16",array:!0,scale:1.024,offset:0,units:"mG",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"accelY",type:"sint16",baseType:"sint16",array:!0,scale:1.024,offset:0,units:"mG",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"accelZ",type:"sint16",baseType:"sint16",array:!0,scale:1.024,offset:0,units:"mG",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"timestamp32k",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},376:{num:376,name:"hsaGyroscopeData",messagesKey:"hsaGyroscopeDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"samplingInterval",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"1/32768 s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"gyroX",type:"sint16",baseType:"sint16",array:!0,scale:28.57143,offset:0,units:"deg/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"gyroY",type:"sint16",baseType:"sint16",array:!0,scale:28.57143,offset:0,units:"deg/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"gyroZ",type:"sint16",baseType:"sint16",array:!0,scale:28.57143,offset:0,units:"deg/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"timestamp32k",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"1/32768 s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},304:{num:304,name:"hsaStepData",messagesKey:"hsaStepDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"processingInterval",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"steps",type:"uint32",baseType:"uint32",array:!0,scale:1,offset:0,units:"steps",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},305:{num:305,name:"hsaSpo2Data",messagesKey:"hsaSpo2DataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"processingInterval",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"readingSpo2",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"confidence",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},306:{num:306,name:"hsaStressData",messagesKey:"hsaStressDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"processingInterval",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"stressLevel",type:"sint8",baseType:"sint8",array:!0,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},307:{num:307,name:"hsaRespirationData",messagesKey:"hsaRespirationDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"processingInterval",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"respirationRate",type:"sint16",baseType:"sint16",array:!0,scale:100,offset:0,units:"breaths/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},308:{num:308,name:"hsaHeartRateData",messagesKey:"hsaHeartRateDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"processingInterval",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"status",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"heartRate",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},389:{num:389,name:"hsaConfigurationData",messagesKey:"hsaConfigurationDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"data",type:"byte",baseType:"byte",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"dataSize",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},409:{num:409,name:"hsaWristTemperatureData",messagesKey:"hsaWristTemperatureDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"processingInterval",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"value",type:"uint16",baseType:"uint16",array:!0,scale:1e3,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},145:{num:145,name:"memoGlob",messagesKey:"memoGlobMesgs",fields:{250:{num:250,name:"partIndex",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"memo",type:"byte",baseType:"byte",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"mesgNum",type:"mesgNum",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"parentIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"fieldNum",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"data",type:"uint8z",baseType:"uint8z",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},275:{num:275,name:"sleepLevel",messagesKey:"sleepLevelMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"sleepLevel",type:"sleepLevel",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},82:{num:82,name:"antChannelId",messagesKey:"antChannelIdMesgs",fields:{0:{num:0,name:"channelNumber",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"deviceType",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"deviceNumber",type:"uint16z",baseType:"uint16z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"transmissionType",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"deviceIndex",type:"deviceIndex",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},80:{num:80,name:"antRx",messagesKey:"antRxMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"fractionalTimestamp",type:"uint16",baseType:"uint16",array:!1,scale:32768,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"mesgId",type:"byte",baseType:"byte",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"mesgData",type:"byte",baseType:"byte",array:!0,scale:[1,1,1,1,1,1,1,1,1],offset:[0,0,0,0,0,0,0,0,0],units:["","","","","","","","",""],bits:[8,8,8,8,8,8,8,8,8],components:["3","4","4","4","4","4","4","4","4"],isAccumulated:!1,hasComponents:!0,subFields:[]},3:{num:3,name:"channelNumber",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"data",type:"byte",baseType:"byte",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},81:{num:81,name:"antTx",messagesKey:"antTxMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"fractionalTimestamp",type:"uint16",baseType:"uint16",array:!1,scale:32768,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"mesgId",type:"byte",baseType:"byte",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"mesgData",type:"byte",baseType:"byte",array:!0,scale:[1,1,1,1,1,1,1,1,1],offset:[0,0,0,0,0,0,0,0,0],units:["","","","","","","","",""],bits:[8,8,8,8,8,8,8,8,8],components:["3","4","4","4","4","4","4","4","4"],isAccumulated:!1,hasComponents:!0,subFields:[]},3:{num:3,name:"channelNumber",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"data",type:"byte",baseType:"byte",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},200:{num:200,name:"exdScreenConfiguration",messagesKey:"exdScreenConfigurationMesgs",fields:{0:{num:0,name:"screenIndex",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"fieldCount",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"layout",type:"exdLayout",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"screenEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},201:{num:201,name:"exdDataFieldConfiguration",messagesKey:"exdDataFieldConfigurationMesgs",fields:{0:{num:0,name:"screenIndex",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"conceptField",type:"byte",baseType:"byte",array:!1,scale:[1,1],offset:[0,0],units:["",""],bits:[4,4],components:["2","3"],isAccumulated:!1,hasComponents:!0,subFields:[]},2:{num:2,name:"fieldId",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"conceptCount",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"displayType",type:"exdDisplayType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"title",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},202:{num:202,name:"exdDataConceptConfiguration",messagesKey:"exdDataConceptConfigurationMesgs",fields:{0:{num:0,name:"screenIndex",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"conceptField",type:"byte",baseType:"byte",array:!1,scale:[1,1],offset:[0,0],units:["",""],bits:[4,4],components:["2","3"],isAccumulated:!1,hasComponents:!0,subFields:[]},2:{num:2,name:"fieldId",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"conceptIndex",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"dataPage",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"conceptKey",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"scaling",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"dataUnits",type:"exdDataUnits",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"qualifier",type:"exdQualifiers",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"descriptor",type:"exdDescriptors",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"isSigned",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},268:{num:268,name:"diveSummary",messagesKey:"diveSummaryMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"referenceMesg",type:"mesgNum",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"referenceIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"avgDepth",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"maxDepth",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"surfaceInterval",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"startCns",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"endCns",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"startN2",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"endN2",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"o2Toxicity",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"OTUs",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"diveNumber",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"bottomTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"avgPressureSac",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"bar/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"avgVolumeSac",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"L/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},14:{num:14,name:"avgRmv",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"L/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},15:{num:15,name:"descentTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},16:{num:16,name:"ascentTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},17:{num:17,name:"avgAscentRate",type:"sint32",baseType:"sint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},22:{num:22,name:"avgDescentRate",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},23:{num:23,name:"maxAscentRate",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},24:{num:24,name:"maxDescentRate",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},25:{num:25,name:"hangTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},289:{num:289,name:"aadAccelFeatures",messagesKey:"aadAccelFeaturesMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"time",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"energyTotal",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"zeroCrossCnt",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"instance",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"timeAboveThreshold",type:"uint16",baseType:"uint16",array:!1,scale:25,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},78:{num:78,name:"hrv",messagesKey:"hrvMesgs",fields:{0:{num:0,name:"time",type:"uint16",baseType:"uint16",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},290:{num:290,name:"beatIntervals",messagesKey:"beatIntervalsMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"time",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},370:{num:370,name:"hrvStatusSummary",messagesKey:"hrvStatusSummaryMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"weeklyAverage",type:"uint16",baseType:"uint16",array:!1,scale:128,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"lastNightAverage",type:"uint16",baseType:"uint16",array:!1,scale:128,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"lastNight5MinHigh",type:"uint16",baseType:"uint16",array:!1,scale:128,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"baselineLowUpper",type:"uint16",baseType:"uint16",array:!1,scale:128,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"baselineBalancedLower",type:"uint16",baseType:"uint16",array:!1,scale:128,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"baselineBalancedUpper",type:"uint16",baseType:"uint16",array:!1,scale:128,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"status",type:"hrvStatus",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},371:{num:371,name:"hrvValue",messagesKey:"hrvValueMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"value",type:"uint16",baseType:"uint16",array:!1,scale:128,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},372:{num:372,name:"rawBbi",messagesKey:"rawBbiMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"data",type:"uint16",baseType:"uint16",array:!0,scale:[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],offset:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],units:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],bits:[14,1,1,14,1,1,14,1,1,14,1,1,14,1,1,14,1,1,14,1,1,14,1,1,14,1,1,14,1,1,14,1,1,14,1,1,14,1,1,14,1,1,14,1,1],components:["2","3","4","2","3","4","2","3","4","2","3","4","2","3","4","2","3","4","2","3","4","2","3","4","2","3","4","2","3","4","2","3","4","2","3","4","2","3","4","2","3","4","2","3","4"],isAccumulated:!1,hasComponents:!0,subFields:[]},2:{num:2,name:"time",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"quality",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"gap",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},297:{num:297,name:"respirationRate",messagesKey:"respirationRateMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"respirationRate",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"breaths/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},387:{num:387,name:"chronoShotSession",messagesKey:"chronoShotSessionMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"minSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"maxSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"avgSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"shotCount",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"projectileType",type:"projectileType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"grainWeight",type:"uint32",baseType:"uint32",array:!1,scale:10,offset:0,units:"gr",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"standardDeviation",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},388:{num:388,name:"chronoShotData",messagesKey:"chronoShotDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"shotSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"shotNum",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},319:{num:319,name:"tankUpdate",messagesKey:"tankUpdateMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"sensor",type:"antChannelId",baseType:"uint32z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"pressure",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"bar",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},323:{num:323,name:"tankSummary",messagesKey:"tankSummaryMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"sensor",type:"antChannelId",baseType:"uint32z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"startPressure",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"bar",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"endPressure",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"bar",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"volumeUsed",type:"uint32",baseType:"uint32",array:!1,scale:100,offset:0,units:"L",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},346:{num:346,name:"sleepAssessment",messagesKey:"sleepAssessmentMesgs",fields:{0:{num:0,name:"combinedAwakeScore",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"awakeTimeScore",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"awakeningsCountScore",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"deepSleepScore",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"sleepDurationScore",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"lightSleepScore",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"overallSleepScore",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"sleepQualityScore",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"sleepRecoveryScore",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"remSleepScore",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"sleepRestlessnessScore",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"awakeningsCount",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},14:{num:14,name:"interruptionsScore",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},15:{num:15,name:"averageStressDuringSleep",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},470:{num:470,name:"sleepDisruptionSeverityPeriod",messagesKey:"sleepDisruptionSeverityPeriodMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"severity",type:"sleepDisruptionSeverity",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},471:{num:471,name:"sleepDisruptionOvernightSeverity",messagesKey:"sleepDisruptionOvernightSeverityMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"severity",type:"sleepDisruptionSeverity",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},412:{num:412,name:"napEvent",messagesKey:"napEventMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"startTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"seconds",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"startTimezoneOffset",type:"sint16",baseType:"sint16",array:!1,scale:1,offset:0,units:"minutes",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"endTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"seconds",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"endTimezoneOffset",type:"sint16",baseType:"sint16",array:!1,scale:1,offset:0,units:"minutes",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"feedback",type:"napPeriodFeedback",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"isDeleted",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"source",type:"napSource",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"updateTimestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},398:{num:398,name:"skinTempOvernight",messagesKey:"skinTempOvernightMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"localTimestamp",type:"localDateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"averageDeviation",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"average7DayDeviation",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"nightlyValue",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},105:{num:105,name:"pad",messagesKey:"padMesgs",fields:{}}},types:{file:{1:"device",2:"settings",3:"sport",4:"activity",5:"workout",6:"course",7:"schedules",9:"weight",10:"totals",11:"goals",14:"bloodPressure",15:"monitoringA",20:"activitySummary",28:"monitoringDaily",32:"monitoringB",34:"segment",35:"segmentList",40:"exdConfiguration",247:"mfgRangeMin",254:"mfgRangeMax"},mesgNum:{0:"fileId",1:"capabilities",2:"deviceSettings",3:"userProfile",4:"hrmProfile",5:"sdmProfile",6:"bikeProfile",7:"zonesTarget",8:"hrZone",9:"powerZone",10:"metZone",12:"sport",13:"trainingSettings",15:"goal",18:"session",19:"lap",20:"record",21:"event",23:"deviceInfo",26:"workout",27:"workoutStep",28:"schedule",30:"weightScale",31:"course",32:"coursePoint",33:"totals",34:"activity",35:"software",37:"fileCapabilities",38:"mesgCapabilities",39:"fieldCapabilities",49:"fileCreator",51:"bloodPressure",53:"speedZone",55:"monitoring",72:"trainingFile",78:"hrv",80:"antRx",81:"antTx",82:"antChannelId",101:"length",103:"monitoringInfo",105:"pad",106:"slaveDevice",127:"connectivity",128:"weatherConditions",129:"weatherAlert",131:"cadenceZone",132:"hr",142:"segmentLap",145:"memoGlob",148:"segmentId",149:"segmentLeaderboardEntry",150:"segmentPoint",151:"segmentFile",158:"workoutSession",159:"watchfaceSettings",160:"gpsMetadata",161:"cameraEvent",162:"timestampCorrelation",164:"gyroscopeData",165:"accelerometerData",167:"threeDSensorCalibration",169:"videoFrame",174:"obdiiData",177:"nmeaSentence",178:"aviationAttitude",184:"video",185:"videoTitle",186:"videoDescription",187:"videoClip",188:"ohrSettings",200:"exdScreenConfiguration",201:"exdDataFieldConfiguration",202:"exdDataConceptConfiguration",206:"fieldDescription",207:"developerDataId",208:"magnetometerData",209:"barometerData",210:"oneDSensorCalibration",211:"monitoringHrData",216:"timeInZone",225:"set",227:"stressLevel",229:"maxMetData",258:"diveSettings",259:"diveGas",262:"diveAlarm",264:"exerciseTitle",268:"diveSummary",269:"spo2Data",275:"sleepLevel",285:"jump",289:"aadAccelFeatures",290:"beatIntervals",297:"respirationRate",302:"hsaAccelerometerData",304:"hsaStepData",305:"hsaSpo2Data",306:"hsaStressData",307:"hsaRespirationData",308:"hsaHeartRateData",312:"split",313:"splitSummary",314:"hsaBodyBatteryData",315:"hsaEvent",317:"climbPro",319:"tankUpdate",323:"tankSummary",346:"sleepAssessment",370:"hrvStatusSummary",371:"hrvValue",372:"rawBbi",375:"deviceAuxBatteryInfo",376:"hsaGyroscopeData",387:"chronoShotSession",388:"chronoShotData",389:"hsaConfigurationData",393:"diveApneaAlarm",398:"skinTempOvernight",409:"hsaWristTemperatureData",412:"napEvent",470:"sleepDisruptionSeverityPeriod",471:"sleepDisruptionOvernightSeverity",65280:"mfgRangeMin",65534:"mfgRangeMax"},checksum:{0:"clear",1:"ok"},fileFlags:{2:"read",4:"write",8:"erase"},mesgCount:{0:"numPerFile",1:"maxPerFile",2:"maxPerFileType"},dateTime:{268435456:"min"},localDateTime:{268435456:"min"},messageIndex:{32768:"selected",28672:"reserved",4095:"mask"},deviceIndex:{0:"creator"},gender:{0:"female",1:"male"},language:{0:"english",1:"french",2:"italian",3:"german",4:"spanish",5:"croatian",6:"czech",7:"danish",8:"dutch",9:"finnish",10:"greek",11:"hungarian",12:"norwegian",13:"polish",14:"portuguese",15:"slovakian",16:"slovenian",17:"swedish",18:"russian",19:"turkish",20:"latvian",21:"ukrainian",22:"arabic",23:"farsi",24:"bulgarian",25:"romanian",26:"chinese",27:"japanese",28:"korean",29:"taiwanese",30:"thai",31:"hebrew",32:"brazilianPortuguese",33:"indonesian",34:"malaysian",35:"vietnamese",36:"burmese",37:"mongolian",254:"custom"},languageBits0:{1:"english",2:"french",4:"italian",8:"german",16:"spanish",32:"croatian",64:"czech",128:"danish"},languageBits1:{1:"dutch",2:"finnish",4:"greek",8:"hungarian",16:"norwegian",32:"polish",64:"portuguese",128:"slovakian"},languageBits2:{1:"slovenian",2:"swedish",4:"russian",8:"turkish",16:"latvian",32:"ukrainian",64:"arabic",128:"farsi"},languageBits3:{1:"bulgarian",2:"romanian",4:"chinese",8:"japanese",16:"korean",32:"taiwanese",64:"thai",128:"hebrew"},languageBits4:{1:"brazilianPortuguese",2:"indonesian",4:"malaysian",8:"vietnamese",16:"burmese",32:"mongolian"},timeZone:{0:"almaty",1:"bangkok",2:"bombay",3:"brasilia",4:"cairo",5:"capeVerdeIs",6:"darwin",7:"eniwetok",8:"fiji",9:"hongKong",10:"islamabad",11:"kabul",12:"magadan",13:"midAtlantic",14:"moscow",15:"muscat",16:"newfoundland",17:"samoa",18:"sydney",19:"tehran",20:"tokyo",21:"usAlaska",22:"usAtlantic",23:"usCentral",24:"usEastern",25:"usHawaii",26:"usMountain",27:"usPacific",28:"other",29:"auckland",30:"kathmandu",31:"europeWesternWet",32:"europeCentralCet",33:"europeEasternEet",34:"jakarta",35:"perth",36:"adelaide",37:"brisbane",38:"tasmania",39:"iceland",40:"amsterdam",41:"athens",42:"barcelona",43:"berlin",44:"brussels",45:"budapest",46:"copenhagen",47:"dublin",48:"helsinki",49:"lisbon",50:"london",51:"madrid",52:"munich",53:"oslo",54:"paris",55:"prague",56:"reykjavik",57:"rome",58:"stockholm",59:"vienna",60:"warsaw",61:"zurich",62:"quebec",63:"ontario",64:"manitoba",65:"saskatchewan",66:"alberta",67:"britishColumbia",68:"boise",69:"boston",70:"chicago",71:"dallas",72:"denver",73:"kansasCity",74:"lasVegas",75:"losAngeles",76:"miami",77:"minneapolis",78:"newYork",79:"newOrleans",80:"phoenix",81:"santaFe",82:"seattle",83:"washingtonDc",84:"usArizona",85:"chita",86:"ekaterinburg",87:"irkutsk",88:"kaliningrad",89:"krasnoyarsk",90:"novosibirsk",91:"petropavlovskKamchatskiy",92:"samara",93:"vladivostok",94:"mexicoCentral",95:"mexicoMountain",96:"mexicoPacific",97:"capeTown",98:"winkhoek",99:"lagos",100:"riyahd",101:"venezuela",102:"australiaLh",103:"santiago",253:"manual",254:"automatic"},displayMeasure:{0:"metric",1:"statute",2:"nautical"},displayHeart:{0:"bpm",1:"max",2:"reserve"},displayPower:{0:"watts",1:"percentFtp"},displayPosition:{0:"degree",1:"degreeMinute",2:"degreeMinuteSecond",3:"austrianGrid",4:"britishGrid",5:"dutchGrid",6:"hungarianGrid",7:"finnishGrid",8:"germanGrid",9:"icelandicGrid",10:"indonesianEquatorial",11:"indonesianIrian",12:"indonesianSouthern",13:"indiaZone0",14:"indiaZoneIA",15:"indiaZoneIB",16:"indiaZoneIIA",17:"indiaZoneIIB",18:"indiaZoneIIIA",19:"indiaZoneIIIB",20:"indiaZoneIVA",21:"indiaZoneIVB",22:"irishTransverse",23:"irishGrid",24:"loran",25:"maidenheadGrid",26:"mgrsGrid",27:"newZealandGrid",28:"newZealandTransverse",29:"qatarGrid",30:"modifiedSwedishGrid",31:"swedishGrid",32:"southAfricanGrid",33:"swissGrid",34:"taiwanGrid",35:"unitedStatesGrid",36:"utmUpsGrid",37:"westMalayan",38:"borneoRso",39:"estonianGrid",40:"latvianGrid",41:"swedishRef99Grid"},switch:{0:"off",1:"on",2:"auto"},sport:{0:"generic",1:"running",2:"cycling",3:"transition",4:"fitnessEquipment",5:"swimming",6:"basketball",7:"soccer",8:"tennis",9:"americanFootball",10:"training",11:"walking",12:"crossCountrySkiing",13:"alpineSkiing",14:"snowboarding",15:"rowing",16:"mountaineering",17:"hiking",18:"multisport",19:"paddling",20:"flying",21:"eBiking",22:"motorcycling",23:"boating",24:"driving",25:"golf",26:"hangGliding",27:"horsebackRiding",28:"hunting",29:"fishing",30:"inlineSkating",31:"rockClimbing",32:"sailing",33:"iceSkating",34:"skyDiving",35:"snowshoeing",36:"snowmobiling",37:"standUpPaddleboarding",38:"surfing",39:"wakeboarding",40:"waterSkiing",41:"kayaking",42:"rafting",43:"windsurfing",44:"kitesurfing",45:"tactical",46:"jumpmaster",47:"boxing",48:"floorClimbing",49:"baseball",53:"diving",56:"shooting",58:"winterSport",59:"grinding",62:"hiit",63:"videoGaming",64:"racket",65:"wheelchairPushWalk",66:"wheelchairPushRun",67:"meditation",68:"paraSport",69:"discGolf",70:"teamSport",71:"cricket",72:"rugby",73:"hockey",74:"lacrosse",75:"volleyball",76:"waterTubing",77:"wakesurfing",78:"waterSport",79:"archery",80:"mixedMartialArts",81:"motorSports",82:"snorkeling",83:"dance",84:"jumpRope",85:"poolApnea",86:"mobility",87:"geocaching",88:"canoeing",254:"all"},sportBits0:{1:"generic",2:"running",4:"cycling",8:"transition",16:"fitnessEquipment",32:"swimming",64:"basketball",128:"soccer"},sportBits1:{1:"tennis",2:"americanFootball",4:"training",8:"walking",16:"crossCountrySkiing",32:"alpineSkiing",64:"snowboarding",128:"rowing"},sportBits2:{1:"mountaineering",2:"hiking",4:"multisport",8:"paddling",16:"flying",32:"eBiking",64:"motorcycling",128:"boating"},sportBits3:{1:"driving",2:"golf",4:"hangGliding",8:"horsebackRiding",16:"hunting",32:"fishing",64:"inlineSkating",128:"rockClimbing"},sportBits4:{1:"sailing",2:"iceSkating",4:"skyDiving",8:"snowshoeing",16:"snowmobiling",32:"standUpPaddleboarding",64:"surfing",128:"wakeboarding"},sportBits5:{1:"waterSkiing",2:"kayaking",4:"rafting",8:"windsurfing",16:"kitesurfing",32:"tactical",64:"jumpmaster",128:"boxing"},sportBits6:{1:"floorClimbing"},subSport:{0:"generic",1:"treadmill",2:"street",3:"trail",4:"track",5:"spin",6:"indoorCycling",7:"road",8:"mountain",9:"downhill",10:"recumbent",11:"cyclocross",12:"handCycling",13:"trackCycling",14:"indoorRowing",15:"elliptical",16:"stairClimbing",17:"lapSwimming",18:"openWater",19:"flexibilityTraining",20:"strengthTraining",21:"warmUp",22:"match",23:"exercise",24:"challenge",25:"indoorSkiing",26:"cardioTraining",27:"indoorWalking",28:"eBikeFitness",29:"bmx",30:"casualWalking",31:"speedWalking",32:"bikeToRunTransition",33:"runToBikeTransition",34:"swimToBikeTransition",35:"atv",36:"motocross",37:"backcountry",38:"resort",39:"rcDrone",40:"wingsuit",41:"whitewater",42:"skateSkiing",43:"yoga",44:"pilates",45:"indoorRunning",46:"gravelCycling",47:"eBikeMountain",48:"commuting",49:"mixedSurface",50:"navigate",51:"trackMe",52:"map",53:"singleGasDiving",54:"multiGasDiving",55:"gaugeDiving",56:"apneaDiving",57:"apneaHunting",58:"virtualActivity",59:"obstacle",62:"breathing",63:"ccrDiving",65:"sailRace",66:"expedition",67:"ultra",68:"indoorClimbing",69:"bouldering",70:"hiit",71:"indoorGrinding",72:"huntingWithDogs",73:"amrap",74:"emom",75:"tabata",77:"esport",78:"triathlon",79:"duathlon",80:"brick",81:"swimRun",82:"adventureRace",83:"truckerWorkout",84:"pickleball",85:"padel",86:"indoorWheelchairWalk",87:"indoorWheelchairRun",88:"indoorHandCycling",90:"field",91:"ice",92:"ultimate",93:"platform",94:"squash",95:"badminton",96:"racquetball",97:"tableTennis",98:"overland",99:"trollingMotor",110:"flyCanopy",111:"flyParaglide",112:"flyParamotor",113:"flyPressurized",114:"flyNavigate",115:"flyTimer",116:"flyAltimeter",117:"flyWx",118:"flyVfr",119:"flyIfr",121:"dynamicApnea",123:"enduro",124:"rucking",125:"rally",126:"poolTriathlon",127:"eBikeEnduro",254:"all"},sportEvent:{0:"uncategorized",1:"geocaching",2:"fitness",3:"recreation",4:"race",5:"specialEvent",6:"training",7:"transportation",8:"touring"},activity:{0:"manual",1:"autoMultiSport"},intensity:{0:"active",1:"rest",2:"warmup",3:"cooldown",4:"recovery",5:"interval",6:"other"},sessionTrigger:{0:"activityEnd",1:"manual",2:"autoMultiSport",3:"fitnessEquipment"},autolapTrigger:{0:"time",1:"distance",2:"positionStart",3:"positionLap",4:"positionWaypoint",5:"positionMarked",6:"off",13:"autoSelect"},lapTrigger:{0:"manual",1:"time",2:"distance",3:"positionStart",4:"positionLap",5:"positionWaypoint",6:"positionMarked",7:"sessionEnd",8:"fitnessEquipment"},timeMode:{0:"hour12",1:"hour24",2:"military",3:"hour12WithSeconds",4:"hour24WithSeconds",5:"utc"},backlightMode:{0:"off",1:"manual",2:"keyAndMessages",3:"autoBrightness",4:"smartNotifications",5:"keyAndMessagesNight",6:"keyAndMessagesAndSmartNotifications"},dateMode:{0:"dayMonth",1:"monthDay"},backlightTimeout:{0:"infinite"},event:{0:"timer",3:"workout",4:"workoutStep",5:"powerDown",6:"powerUp",7:"offCourse",8:"session",9:"lap",10:"coursePoint",11:"battery",12:"virtualPartnerPace",13:"hrHighAlert",14:"hrLowAlert",15:"speedHighAlert",16:"speedLowAlert",17:"cadHighAlert",18:"cadLowAlert",19:"powerHighAlert",20:"powerLowAlert",21:"recoveryHr",22:"batteryLow",23:"timeDurationAlert",24:"distanceDurationAlert",25:"calorieDurationAlert",26:"activity",27:"fitnessEquipment",28:"length",32:"userMarker",33:"sportPoint",36:"calibration",42:"frontGearChange",43:"rearGearChange",44:"riderPositionChange",45:"elevHighAlert",46:"elevLowAlert",47:"commTimeout",54:"autoActivityDetect",56:"diveAlert",57:"diveGasSwitched",71:"tankPressureReserve",72:"tankPressureCritical",73:"tankLost",75:"radarThreatAlert",76:"tankBatteryLow",81:"tankPodConnected",82:"tankPodDisconnected"},eventType:{0:"start",1:"stop",2:"consecutiveDepreciated",3:"marker",4:"stopAll",5:"beginDepreciated",6:"endDepreciated",7:"endAllDepreciated",8:"stopDisable",9:"stopDisableAll"},timerTrigger:{0:"manual",1:"auto",2:"fitnessEquipment"},fitnessEquipmentState:{0:"ready",1:"inUse",2:"paused",3:"unknown"},tone:{0:"off",1:"tone",2:"vibrate",3:"toneAndVibrate"},autoscroll:{0:"none",1:"slow",2:"medium",3:"fast"},activityClass:{127:"level",100:"levelMax",128:"athlete"},hrZoneCalc:{0:"custom",1:"percentMaxHr",2:"percentHrr",3:"percentLthr"},pwrZoneCalc:{0:"custom",1:"percentFtp"},wktStepDuration:{0:"time",1:"distance",2:"hrLessThan",3:"hrGreaterThan",4:"calories",5:"open",6:"repeatUntilStepsCmplt",7:"repeatUntilTime",8:"repeatUntilDistance",9:"repeatUntilCalories",10:"repeatUntilHrLessThan",11:"repeatUntilHrGreaterThan",12:"repeatUntilPowerLessThan",13:"repeatUntilPowerGreaterThan",14:"powerLessThan",15:"powerGreaterThan",16:"trainingPeaksTss",17:"repeatUntilPowerLastLapLessThan",18:"repeatUntilMaxPowerLastLapLessThan",19:"power3sLessThan",20:"power10sLessThan",21:"power30sLessThan",22:"power3sGreaterThan",23:"power10sGreaterThan",24:"power30sGreaterThan",25:"powerLapLessThan",26:"powerLapGreaterThan",27:"repeatUntilTrainingPeaksTss",28:"repetitionTime",29:"reps",31:"timeOnly"},wktStepTarget:{0:"speed",1:"heartRate",2:"open",3:"cadence",4:"power",5:"grade",6:"resistance",7:"power3s",8:"power10s",9:"power30s",10:"powerLap",11:"swimStroke",12:"speedLap",13:"heartRateLap"},goal:{0:"time",1:"distance",2:"calories",3:"frequency",4:"steps",5:"ascent",6:"activeMinutes"},goalRecurrence:{0:"off",1:"daily",2:"weekly",3:"monthly",4:"yearly",5:"custom"},goalSource:{0:"auto",1:"community",2:"user"},schedule:{0:"workout",1:"course"},coursePoint:{0:"generic",1:"summit",2:"valley",3:"water",4:"food",5:"danger",6:"left",7:"right",8:"straight",9:"firstAid",10:"fourthCategory",11:"thirdCategory",12:"secondCategory",13:"firstCategory",14:"horsCategory",15:"sprint",16:"leftFork",17:"rightFork",18:"middleFork",19:"slightLeft",20:"sharpLeft",21:"slightRight",22:"sharpRight",23:"uTurn",24:"segmentStart",25:"segmentEnd",27:"campsite",28:"aidStation",29:"restArea",30:"generalDistance",31:"service",32:"energyGel",33:"sportsDrink",34:"mileMarker",35:"checkpoint",36:"shelter",37:"meetingSpot",38:"overlook",39:"toilet",40:"shower",41:"gear",42:"sharpCurve",43:"steepIncline",44:"tunnel",45:"bridge",46:"obstacle",47:"crossing",48:"store",49:"transition",50:"navaid",51:"transport",52:"alert",53:"info"},manufacturer:{1:"garmin",2:"garminFr405Antfs",3:"zephyr",4:"dayton",5:"idt",6:"srm",7:"quarq",8:"ibike",9:"saris",10:"sparkHk",11:"tanita",12:"echowell",13:"dynastreamOem",14:"nautilus",15:"dynastream",16:"timex",17:"metrigear",18:"xelic",19:"beurer",20:"cardiosport",21:"aAndD",22:"hmm",23:"suunto",24:"thitaElektronik",25:"gpulse",26:"cleanMobile",27:"pedalBrain",28:"peaksware",29:"saxonar",30:"lemondFitness",31:"dexcom",32:"wahooFitness",33:"octaneFitness",34:"archinoetics",35:"theHurtBox",36:"citizenSystems",37:"magellan",38:"osynce",39:"holux",40:"concept2",41:"shimano",42:"oneGiantLeap",43:"aceSensor",44:"brimBrothers",45:"xplova",46:"perceptionDigital",47:"bf1systems",48:"pioneer",49:"spantec",50:"metalogics",51:"4iiiis",52:"seikoEpson",53:"seikoEpsonOem",54:"iforPowell",55:"maxwellGuider",56:"starTrac",57:"breakaway",58:"alatechTechnologyLtd",59:"mioTechnologyEurope",60:"rotor",61:"geonaute",62:"idBike",63:"specialized",64:"wtek",65:"physicalEnterprises",66:"northPoleEngineering",67:"bkool",68:"cateye",69:"stagesCycling",70:"sigmasport",71:"tomtom",72:"peripedal",73:"wattbike",76:"moxy",77:"ciclosport",78:"powerbahn",79:"acornProjectsAps",80:"lifebeam",81:"bontrager",82:"wellgo",83:"scosche",84:"magura",85:"woodway",86:"elite",87:"nielsenKellerman",88:"dkCity",89:"tacx",90:"directionTechnology",91:"magtonic",92:"1partcarbon",93:"insideRideTechnologies",94:"soundOfMotion",95:"stryd",96:"icg",97:"miPulse",98:"bsxAthletics",99:"look",100:"campagnoloSrl",101:"bodyBikeSmart",102:"praxisworks",103:"limitsTechnology",104:"topactionTechnology",105:"cosinuss",106:"fitcare",107:"magene",108:"giantManufacturingCo",109:"tigrasport",110:"salutron",111:"technogym",112:"brytonSensors",113:"latitudeLimited",114:"soaringTechnology",115:"igpsport",116:"thinkrider",117:"gopherSport",118:"waterrower",119:"orangetheory",120:"inpeak",121:"kinetic",122:"johnsonHealthTech",123:"polarElectro",124:"seesense",125:"nciTechnology",126:"iqsquare",127:"leomo",128:"ifitCom",129:"corosByte",130:"versaDesign",131:"chileaf",132:"cycplus",133:"gravaaByte",134:"sigeyi",135:"coospo",136:"geoid",137:"bosch",138:"kyto",139:"kineticSports",140:"decathlonByte",141:"tqSystems",142:"tagHeuer",143:"keiserFitness",144:"zwiftByte",145:"porscheEp",146:"blackbird",147:"meilanByte",148:"ezon",149:"laisi",150:"myzone",151:"abawo",152:"bafang",153:"luhongTechnology",255:"development",257:"healthandlife",258:"lezyne",259:"scribeLabs",260:"zwift",261:"watteam",262:"recon",263:"faveroElectronics",264:"dynovelo",265:"strava",266:"precor",267:"bryton",268:"sram",269:"navman",270:"cobi",271:"spivi",272:"mioMagellan",273:"evesports",274:"sensitivusGauge",275:"podoon",276:"lifeTimeFitness",277:"falcoEMotors",278:"minoura",279:"cycliq",280:"luxottica",281:"trainerRoad",282:"theSufferfest",283:"fullspeedahead",284:"virtualtraining",285:"feedbacksports",286:"omata",287:"vdo",288:"magneticdays",289:"hammerhead",290:"kineticByKurt",291:"shapelog",292:"dabuziduo",293:"jetblack",294:"coros",295:"virtugo",296:"velosense",297:"cycligentinc",298:"trailforks",299:"mahleEbikemotion",300:"nurvv",301:"microprogram",302:"zone5cloud",303:"greenteg",304:"yamahaMotors",305:"whoop",306:"gravaa",307:"onelap",308:"monarkExercise",309:"form",310:"decathlon",311:"syncros",312:"heatup",313:"cannondale",314:"trueFitness",315:"rGTCycling",316:"vasa",317:"raceRepublic",318:"fazua",319:"orekaTraining",320:"lsec",321:"lululemonStudio",322:"shanyue",323:"spinningMda",324:"hilldating",325:"aeroSensor",326:"nike",327:"magicshine",328:"ictrainer",329:"absoluteCycling",330:"eoSwimbetter",331:"mywhoosh",332:"ravemen",333:"tektroRacingProducts",334:"daradInnovationCorporation",335:"cycloptim",337:"runna",339:"zepp",340:"peloton",341:"carv",342:"tissot",345:"realVelo",346:"wetech",347:"jespr",348:"huawei",349:"gotoes",350:"cadenceApp",351:"unaWatch",5759:"actigraphcorp"},garminProduct:{1:"hrm1",2:"axh01",3:"axb01",4:"axb02",5:"hrm2ss",6:"dsiAlf02",7:"hrm3ss",8:"hrmRunSingleByteProductId",9:"bsm",10:"bcm",11:"axs01",12:"hrmTriSingleByteProductId",13:"hrm4RunSingleByteProductId",14:"fr225SingleByteProductId",15:"gen3BsmSingleByteProductId",16:"gen3BcmSingleByteProductId",22:"hrmFitSingleByteProductId",255:"oHR",473:"fr301China",474:"fr301Japan",475:"fr301Korea",494:"fr301Taiwan",717:"fr405",782:"fr50",987:"fr405Japan",988:"fr60",1011:"dsiAlf01",1018:"fr310xt",1036:"edge500",1124:"fr110",1169:"edge800",1199:"edge500Taiwan",1213:"edge500Japan",1253:"chirp",1274:"fr110Japan",1325:"edge200",1328:"fr910xt",1333:"edge800Taiwan",1334:"edge800Japan",1341:"alf04",1345:"fr610",1360:"fr210Japan",1380:"vectorSs",1381:"vectorCp",1386:"edge800China",1387:"edge500China",1405:"approachG10",1410:"fr610Japan",1422:"edge500Korea",1436:"fr70",1446:"fr310xt4t",1461:"amx",1482:"fr10",1497:"edge800Korea",1499:"swim",1537:"fr910xtChina",1551:"fenix",1555:"edge200Taiwan",1561:"edge510",1567:"edge810",1570:"tempe",1600:"fr910xtJapan",1623:"fr620",1632:"fr220",1664:"fr910xtKorea",1688:"fr10Japan",1721:"edge810Japan",1735:"virbElite",1736:"edgeTouring",1742:"edge510Japan",1743:"hrmTri",1752:"hrmRun",1765:"fr920xt",1821:"edge510Asia",1822:"edge810China",1823:"edge810Taiwan",1836:"edge1000",1837:"vivoFit",1853:"virbRemote",1885:"vivoKi",1903:"fr15",1907:"vivoActive",1918:"edge510Korea",1928:"fr620Japan",1929:"fr620China",1930:"fr220Japan",1931:"fr220China",1936:"approachS6",1956:"vivoSmart",1967:"fenix2",1988:"epix",2050:"fenix3",2052:"edge1000Taiwan",2053:"edge1000Japan",2061:"fr15Japan",2067:"edge520",2070:"edge1000China",2072:"fr620Russia",2073:"fr220Russia",2079:"vectorS",2100:"edge1000Korea",2130:"fr920xtTaiwan",2131:"fr920xtChina",2132:"fr920xtJapan",2134:"virbx",2135:"vivoSmartApac",2140:"etrexTouch",2147:"edge25",2148:"fr25",2150:"vivoFit2",2153:"fr225",2156:"fr630",2157:"fr230",2158:"fr735xt",2160:"vivoActiveApac",2161:"vector2",2162:"vector2s",2172:"virbxe",2173:"fr620Taiwan",2174:"fr220Taiwan",2175:"truswing",2187:"d2airvenu",2188:"fenix3China",2189:"fenix3Twn",2192:"variaHeadlight",2193:"variaTaillightOld",2204:"edgeExplore1000",2219:"fr225Asia",2225:"variaRadarTaillight",2226:"variaRadarDisplay",2238:"edge20",2260:"edge520Asia",2261:"edge520Japan",2262:"d2Bravo",2266:"approachS20",2271:"vivoSmart2",2274:"edge1000Thai",2276:"variaRemote",2288:"edge25Asia",2289:"edge25Jpn",2290:"edge20Asia",2292:"approachX40",2293:"fenix3Japan",2294:"vivoSmartEmea",2310:"fr630Asia",2311:"fr630Jpn",2313:"fr230Jpn",2327:"hrm4Run",2332:"epixJapan",2337:"vivoActiveHr",2347:"vivoSmartGpsHr",2348:"vivoSmartHr",2361:"vivoSmartHrAsia",2362:"vivoSmartGpsHrAsia",2368:"vivoMove",2379:"variaTaillight",2396:"fr235Asia",2397:"fr235Japan",2398:"variaVision",2406:"vivoFit3",2407:"fenix3Korea",2408:"fenix3Sea",2413:"fenix3Hr",2417:"virbUltra30",2429:"indexSmartScale",2431:"fr235",2432:"fenix3Chronos",2441:"oregon7xx",2444:"rino7xx",2457:"epixKorea",2473:"fenix3HrChn",2474:"fenix3HrTwn",2475:"fenix3HrJpn",2476:"fenix3HrSea",2477:"fenix3HrKor",2496:"nautix",2497:"vivoActiveHrApac",2503:"fr35",2512:"oregon7xxWw",2530:"edge820",2531:"edgeExplore820",2533:"fr735xtApac",2534:"fr735xtJapan",2544:"fenix5s",2547:"d2BravoTitanium",2567:"variaUt800",2593:"runningDynamicsPod",2599:"edge820China",2600:"edge820Japan",2604:"fenix5x",2606:"vivoFitJr",2622:"vivoSmart3",2623:"vivoSport",2628:"edge820Taiwan",2629:"edge820Korea",2630:"edge820Sea",2650:"fr35Hebrew",2656:"approachS60",2667:"fr35Apac",2668:"fr35Japan",2675:"fenix3ChronosAsia",2687:"virb360",2691:"fr935",2697:"fenix5",2700:"vivoactive3",2733:"fr235ChinaNfc",2769:"foretrex601_701",2772:"vivoMoveHr",2713:"edge1030",2727:"fr35Sea",2787:"vector3",2796:"fenix5Asia",2797:"fenix5sAsia",2798:"fenix5xAsia",2806:"approachZ80",2814:"fr35Korea",2819:"d2charlie",2831:"vivoSmart3Apac",2832:"vivoSportApac",2833:"fr935Asia",2859:"descent",2878:"vivoFit4",2886:"fr645",2888:"fr645m",2891:"fr30",2900:"fenix5sPlus",2909:"edge130",2924:"edge1030Asia",2927:"vivosmart4",2945:"vivoMoveHrAsia",2962:"approachX10",2977:"fr30Asia",2988:"vivoactive3mW",3003:"fr645Asia",3004:"fr645mAsia",3011:"edgeExplore",3028:"gpsmap66",3049:"approachS10",3066:"vivoactive3mL",3076:"fr245",3077:"fr245Music",3085:"approachG80",3092:"edge130Asia",3095:"edge1030Bontrager",3110:"fenix5Plus",3111:"fenix5xPlus",3112:"edge520Plus",3113:"fr945",3121:"edge530",3122:"edge830",3126:"instinctEsports",3134:"fenix5sPlusApac",3135:"fenix5xPlusApac",3142:"edge520PlusApac",3143:"descentT1",3144:"fr235lAsia",3145:"fr245Asia",3163:"vivoActive3mApac",3192:"gen3Bsm",3193:"gen3Bcm",3218:"vivoSmart4Asia",3224:"vivoactive4Small",3225:"vivoactive4Large",3226:"venu",3246:"marqDriver",3247:"marqAviator",3248:"marqCaptain",3249:"marqCommander",3250:"marqExpedition",3251:"marqAthlete",3258:"descentMk2",3282:"fr45",3284:"gpsmap66i",3287:"fenix6SSport",3288:"fenix6S",3289:"fenix6Sport",3290:"fenix6",3291:"fenix6x",3299:"hrmDual",3300:"hrmPro",3308:"vivoMove3Premium",3314:"approachS40",3321:"fr245mAsia",3349:"edge530Apac",3350:"edge830Apac",3378:"vivoMove3",3387:"vivoActive4SmallAsia",3388:"vivoActive4LargeAsia",3389:"vivoActive4OledAsia",3405:"swim2",3420:"marqDriverAsia",3421:"marqAviatorAsia",3422:"vivoMove3Asia",3441:"fr945Asia",3446:"vivoActive3tChn",3448:"marqCaptainAsia",3449:"marqCommanderAsia",3450:"marqExpeditionAsia",3451:"marqAthleteAsia",3461:"indexSmartScale2",3466:"instinctSolar",3469:"fr45Asia",3473:"vivoactive3Daimler",3498:"legacyRey",3499:"legacyDarthVader",3500:"legacyCaptainMarvel",3501:"legacyFirstAvenger",3512:"fenix6sSportAsia",3513:"fenix6sAsia",3514:"fenix6SportAsia",3515:"fenix6Asia",3516:"fenix6xAsia",3535:"legacyCaptainMarvelAsia",3536:"legacyFirstAvengerAsia",3537:"legacyReyAsia",3538:"legacyDarthVaderAsia",3542:"descentMk2s",3558:"edge130Plus",3570:"edge1030Plus",3578:"rally200",3589:"fr745",3596:"venusqMusic",3599:"venusqMusicV2",3600:"venusq",3615:"lily",3624:"marqAdventurer",3638:"enduro",3639:"swim2Apac",3648:"marqAdventurerAsia",3652:"fr945Lte",3702:"descentMk2Asia",3703:"venu2",3704:"venu2s",3737:"venuDaimlerAsia",3739:"marqGolfer",3740:"venuDaimler",3794:"fr745Asia",3808:"variaRct715",3809:"lilyAsia",3812:"edge1030PlusAsia",3813:"edge130PlusAsia",3823:"approachS12",3872:"enduroAsia",3837:"venusqAsia",3843:"edge1040",3850:"marqGolferAsia",3851:"venu2Plus",3865:"gnss",3869:"fr55",3888:"instinct2",3889:"instinct2s",3905:"fenix7s",3906:"fenix7",3907:"fenix7x",3908:"fenix7sApac",3909:"fenix7Apac",3910:"fenix7xApac",3927:"approachG12",3930:"descentMk2sAsia",3934:"approachS42",3943:"epixGen2",3944:"epixGen2Apac",3949:"venu2sAsia",3950:"venu2Asia",3978:"fr945LteAsia",3982:"vivoMoveSport",3983:"vivomoveTrend",3986:"approachS12Asia",3990:"fr255Music",3991:"fr255SmallMusic",3992:"fr255",3993:"fr255Small",4001:"approachG12Asia",4002:"approachS42Asia",4005:"descentG1",4017:"venu2PlusAsia",4024:"fr955",4033:"fr55Asia",4061:"edge540",4062:"edge840",4063:"vivosmart5",4071:"instinct2Asia",4105:"marqGen2",4115:"venusq2",4116:"venusq2music",4124:"marqGen2Aviator",4125:"d2AirX10",4130:"hrmProPlus",4132:"descentG1Asia",4135:"tactix7",4155:"instinctCrossover",4169:"edgeExplore2",4222:"descentMk3",4223:"descentMk3i",4233:"approachS70",4257:"fr265Large",4258:"fr265Small",4260:"venu3",4261:"venu3s",4265:"tacxNeoSmart",4266:"tacxNeo2Smart",4267:"tacxNeo2TSmart",4268:"tacxNeoSmartBike",4269:"tacxSatoriSmart",4270:"tacxFlowSmart",4271:"tacxVortexSmart",4272:"tacxBushidoSmart",4273:"tacxGeniusSmart",4274:"tacxFluxFluxSSmart",4275:"tacxFlux2Smart",4276:"tacxMagnum",4305:"edge1040Asia",4312:"epixGen2Pro42",4313:"epixGen2Pro47",4314:"epixGen2Pro51",4315:"fr965",4341:"enduro2",4374:"fenix7sProSolar",4375:"fenix7ProSolar",4376:"fenix7xProSolar",4380:"lily2",4394:"instinct2x",4426:"vivoactive5",4432:"fr165",4433:"fr165Music",4440:"edge1050",4442:"descentT2",4446:"hrmFit",4472:"marqGen2Commander",4477:"lilyAthlete",4525:"rallyX10",4532:"fenix8Solar",4533:"fenix8SolarLarge",4534:"fenix8Small",4536:"fenix8",4556:"d2Mach1Pro",4575:"enduro3",4583:"instinctE40mm",4584:"instinctE45mm",4585:"instinct3Solar45mm",4586:"instinct3Amoled45mm",4587:"instinct3Amoled50mm",4588:"descentG2",4595:"fenix7ProSolarNoWifi",4603:"venuX1",4606:"hrm200",4625:"vivoactive6",4631:"fenix8Pro",4633:"edge550",4634:"edge850",4643:"venu4",4644:"venu4s",4647:"approachS44",4655:"edgeMtb",4656:"approachS50",4666:"fenixE",4745:"bounce2",4759:"instinct3Solar50mm",4775:"tactix8Amoled",4776:"tactix8Solar",4814:"fr170Music",4815:"fr170",4825:"approachJ1",4879:"d2Mach2",4916:"fr702026",4678:"instinctCrossoverAmoled",4944:"d2AirX15",5019:"cirqaSmartBand",5056:"d2Mach2Pro",10007:"sdm4",10014:"edgeRemote",20533:"tacxTrainingAppWin",20534:"tacxTrainingAppMac",20565:"tacxTrainingAppMacCatalyst",20119:"trainingCenter",30045:"tacxTrainingAppAndroid",30046:"tacxTrainingAppIos",30047:"tacxTrainingAppLegacy",65531:"connectiqSimulator",65532:"androidAntplusPlugin",65534:"connect"},antplusDeviceType:{1:"antfs",11:"bikePower",12:"environmentSensorLegacy",15:"multiSportSpeedDistance",16:"control",17:"fitnessEquipment",18:"bloodPressure",19:"geocacheNode",20:"lightElectricVehicle",25:"envSensor",26:"racquet",27:"controlHub",31:"muscleOxygen",34:"shifting",35:"bikeLightMain",36:"bikeLightShared",38:"exd",40:"bikeRadar",46:"bikeAero",119:"weightScale",120:"heartRate",121:"bikeSpeedCadence",122:"bikeCadence",123:"bikeSpeed",124:"strideSpeedDistance"},antNetwork:{0:"public",1:"antplus",2:"antfs",3:"private"},workoutCapabilities:{1:"interval",2:"custom",4:"fitnessEquipment",8:"firstbeat",16:"newLeaf",32:"tcx",128:"speed",256:"heartRate",512:"distance",1024:"cadence",2048:"power",4096:"grade",8192:"resistance",16384:"protected"},batteryStatus:{1:"new",2:"good",3:"ok",4:"low",5:"critical",6:"charging",7:"unknown"},hrType:{0:"normal",1:"irregular"},courseCapabilities:{1:"processed",2:"valid",4:"time",8:"distance",16:"position",32:"heartRate",64:"power",128:"cadence",256:"training",512:"navigation",1024:"bikeway",4096:"aviation"},weight:{65534:"calculating"},workoutHr:{100:"bpmOffset"},workoutPower:{1e3:"wattsOffset"},bpStatus:{0:"noError",1:"errorIncompleteData",2:"errorNoMeasurement",3:"errorDataOutOfRange",4:"errorIrregularHeartRate"},userLocalId:{0:"localMin",15:"localMax",16:"stationaryMin",255:"stationaryMax",256:"portableMin",65534:"portableMax"},swimStroke:{0:"freestyle",1:"backstroke",2:"breaststroke",3:"butterfly",4:"drill",5:"mixed",6:"im",7:"imByRound",8:"rimo"},activityType:{0:"generic",1:"running",2:"cycling",3:"transition",4:"fitnessEquipment",5:"swimming",6:"walking",8:"sedentary",13:"wheelchairPushing",254:"all"},activitySubtype:{0:"generic",1:"treadmill",2:"street",3:"trail",4:"track",5:"spin",6:"indoorCycling",7:"road",8:"mountain",9:"downhill",10:"recumbent",11:"cyclocross",12:"handCycling",13:"trackCycling",14:"indoorRowing",15:"elliptical",16:"stairClimbing",17:"lapSwimming",18:"openWater",254:"all"},activityLevel:{0:"low",1:"medium",2:"high"},side:{0:"right",1:"left"},leftRightBalance:{127:"mask",128:"right"},leftRightBalance100:{16383:"mask",32768:"right"},lengthType:{0:"idle",1:"active"},dayOfWeek:{0:"sunday",1:"monday",2:"tuesday",3:"wednesday",4:"thursday",5:"friday",6:"saturday"},connectivityCapabilities:{1:"bluetooth",2:"bluetoothLe",4:"ant",8:"activityUpload",16:"courseDownload",32:"workoutDownload",64:"liveTrack",128:"weatherConditions",256:"weatherAlerts",512:"gpsEphemerisDownload",1024:"explicitArchive",2048:"setupIncomplete",4096:"continueSyncAfterSoftwareUpdate",8192:"connectIqAppDownload",16384:"golfCourseDownload",32768:"deviceInitiatesSync",65536:"connectIqWatchAppDownload",131072:"connectIqWidgetDownload",262144:"connectIqWatchFaceDownload",524288:"connectIqDataFieldDownload",1048576:"connectIqAppManagment",2097152:"swingSensor",4194304:"swingSensorRemote",8388608:"incidentDetection",16777216:"audioPrompts",33554432:"wifiVerification",67108864:"trueUp",134217728:"findMyWatch",268435456:"remoteManualSync",536870912:"liveTrackAutoStart",1073741824:"liveTrackMessaging",2147483648:"instantInput"},weatherReport:{0:"current",1:"forecast",1:"hourlyForecast",2:"dailyForecast"},weatherStatus:{0:"clear",1:"partlyCloudy",2:"mostlyCloudy",3:"rain",4:"snow",5:"windy",6:"thunderstorms",7:"wintryMix",8:"fog",11:"hazy",12:"hail",13:"scatteredShowers",14:"scatteredThunderstorms",15:"unknownPrecipitation",16:"lightRain",17:"heavyRain",18:"lightSnow",19:"heavySnow",20:"lightRainSnow",21:"heavyRainSnow",22:"cloudy"},weatherSeverity:{0:"unknown",1:"warning",2:"watch",3:"advisory",4:"statement"},weatherSevereType:{0:"unspecified",1:"tornado",2:"tsunami",3:"hurricane",4:"extremeWind",5:"typhoon",6:"inlandHurricane",7:"hurricaneForceWind",8:"waterspout",9:"severeThunderstorm",10:"wreckhouseWinds",11:"lesSuetesWind",12:"avalanche",13:"flashFlood",14:"tropicalStorm",15:"inlandTropicalStorm",16:"blizzard",17:"iceStorm",18:"freezingRain",19:"debrisFlow",20:"flashFreeze",21:"dustStorm",22:"highWind",23:"winterStorm",24:"heavyFreezingSpray",25:"extremeCold",26:"windChill",27:"coldWave",28:"heavySnowAlert",29:"lakeEffectBlowingSnow",30:"snowSquall",31:"lakeEffectSnow",32:"winterWeather",33:"sleet",34:"snowfall",35:"snowAndBlowingSnow",36:"blowingSnow",37:"snowAlert",38:"arcticOutflow",39:"freezingDrizzle",40:"storm",41:"stormSurge",42:"rainfall",43:"arealFlood",44:"coastalFlood",45:"lakeshoreFlood",46:"excessiveHeat",47:"heat",48:"weather",49:"highHeatAndHumidity",50:"humidexAndHealth",51:"humidex",52:"gale",53:"freezingSpray",54:"specialMarine",55:"squall",56:"strongWind",57:"lakeWind",58:"marineWeather",59:"wind",60:"smallCraftHazardousSeas",61:"hazardousSeas",62:"smallCraft",63:"smallCraftWinds",64:"smallCraftRoughBar",65:"highWaterLevel",66:"ashfall",67:"freezingFog",68:"denseFog",69:"denseSmoke",70:"blowingDust",71:"hardFreeze",72:"freeze",73:"frost",74:"fireWeather",75:"flood",76:"ripTide",77:"highSurf",78:"smog",79:"airQuality",80:"briskWind",81:"airStagnation",82:"lowWater",83:"hydrological",84:"specialWeather"},timeIntoDay:{},localtimeIntoDay:{},strokeType:{0:"noEvent",1:"other",2:"serve",3:"forehand",4:"backhand",5:"smash"},bodyLocation:{0:"leftLeg",1:"leftCalf",2:"leftShin",3:"leftHamstring",4:"leftQuad",5:"leftGlute",6:"rightLeg",7:"rightCalf",8:"rightShin",9:"rightHamstring",10:"rightQuad",11:"rightGlute",12:"torsoBack",13:"leftLowerBack",14:"leftUpperBack",15:"rightLowerBack",16:"rightUpperBack",17:"torsoFront",18:"leftAbdomen",19:"leftChest",20:"rightAbdomen",21:"rightChest",22:"leftArm",23:"leftShoulder",24:"leftBicep",25:"leftTricep",26:"leftBrachioradialis",27:"leftForearmExtensors",28:"rightArm",29:"rightShoulder",30:"rightBicep",31:"rightTricep",32:"rightBrachioradialis",33:"rightForearmExtensors",34:"neck",35:"throat",36:"waistMidBack",37:"waistFront",38:"waistLeft",39:"waistRight"},segmentLapStatus:{0:"end",1:"fail"},segmentLeaderboardType:{0:"overall",1:"personalBest",2:"connections",3:"group",4:"challenger",5:"kom",6:"qom",7:"pr",8:"goal",9:"carrot",10:"clubLeader",11:"rival",12:"last",13:"recentBest",14:"courseRecord"},segmentDeleteStatus:{0:"doNotDelete",1:"deleteOne",2:"deleteAll"},segmentSelectionType:{0:"starred",1:"suggested"},sourceType:{0:"ant",1:"antplus",2:"bluetooth",3:"bluetoothLowEnergy",4:"wifi",5:"local"},localDeviceType:{0:"gps",1:"glonass",2:"gpsGlonass",3:"accelerometer",4:"barometer",5:"temperature",10:"whr",12:"sensorHub"},bleDeviceType:{0:"connectedGps",1:"heartRate",2:"bikePower",3:"bikeSpeedCadence",4:"bikeSpeed",5:"bikeCadence",6:"footpod",7:"bikeTrainer"},antChannelId:{4026531840:"antExtendedDeviceNumberUpperNibble",251658240:"antTransmissionTypeLowerNibble",16711680:"antDeviceType",65535:"antDeviceNumber"},displayOrientation:{0:"auto",1:"portrait",2:"landscape",3:"portraitFlipped",4:"landscapeFlipped"},workoutEquipment:{0:"none",1:"swimFins",2:"swimKickboard",3:"swimPaddles",4:"swimPullBuoy",5:"swimSnorkel"},watchfaceMode:{0:"digital",1:"analog",2:"connectIq",3:"disabled"},digitalWatchfaceLayout:{0:"traditional",1:"modern",2:"bold"},analogWatchfaceLayout:{0:"minimal",1:"traditional",2:"modern"},riderPositionType:{0:"seated",1:"standing",2:"transitionToSeated",3:"transitionToStanding"},powerPhaseType:{0:"powerPhaseStartAngle",1:"powerPhaseEndAngle",2:"powerPhaseArcLength",3:"powerPhaseCenter"},cameraEventType:{0:"videoStart",1:"videoSplit",2:"videoEnd",3:"photoTaken",4:"videoSecondStreamStart",5:"videoSecondStreamSplit",6:"videoSecondStreamEnd",7:"videoSplitStart",8:"videoSecondStreamSplitStart",11:"videoPause",12:"videoSecondStreamPause",13:"videoResume",14:"videoSecondStreamResume"},sensorType:{0:"accelerometer",1:"gyroscope",2:"compass",3:"barometer"},bikeLightNetworkConfigType:{0:"auto",4:"individual",5:"highVisibility",6:"trail"},commTimeoutType:{0:"wildcardPairingTimeout",1:"pairingTimeout",2:"connectionLost",3:"connectionTimeout"},cameraOrientationType:{0:"cameraOrientation0",1:"cameraOrientation90",2:"cameraOrientation180",3:"cameraOrientation270"},attitudeStage:{0:"failed",1:"aligning",2:"degraded",3:"valid"},attitudeValidity:{1:"trackAngleHeadingValid",2:"pitchValid",4:"rollValid",8:"lateralBodyAccelValid",16:"normalBodyAccelValid",32:"turnRateValid",64:"hwFail",128:"magInvalid",256:"noGps",512:"gpsInvalid",1024:"solutionCoasting",2048:"trueTrackAngle",4096:"magneticHeading"},autoSyncFrequency:{0:"never",1:"occasionally",2:"frequent",3:"onceADay",4:"remote"},exdLayout:{0:"fullScreen",1:"halfVertical",2:"halfHorizontal",3:"halfVerticalRightSplit",4:"halfHorizontalBottomSplit",5:"fullQuarterSplit",6:"halfVerticalLeftSplit",7:"halfHorizontalTopSplit",8:"dynamic"},exdDisplayType:{0:"numerical",1:"simple",2:"graph",3:"bar",4:"circleGraph",5:"virtualPartner",6:"balance",7:"stringList",8:"string",9:"simpleDynamicIcon",10:"gauge"},exdDataUnits:{0:"noUnits",1:"laps",2:"milesPerHour",3:"kilometersPerHour",4:"feetPerHour",5:"metersPerHour",6:"degreesCelsius",7:"degreesFarenheit",8:"zone",9:"gear",10:"rpm",11:"bpm",12:"degrees",13:"millimeters",14:"meters",15:"kilometers",16:"feet",17:"yards",18:"kilofeet",19:"miles",20:"time",21:"enumTurnType",22:"percent",23:"watts",24:"wattsPerKilogram",25:"enumBatteryStatus",26:"enumBikeLightBeamAngleMode",27:"enumBikeLightBatteryStatus",28:"enumBikeLightNetworkConfigType",29:"lights",30:"seconds",31:"minutes",32:"hours",33:"calories",34:"kilojoules",35:"milliseconds",36:"secondPerMile",37:"secondPerKilometer",38:"centimeter",39:"enumCoursePoint",40:"bradians",41:"enumSport",42:"inchesHg",43:"mmHg",44:"mbars",45:"hectoPascals",46:"feetPerMin",47:"metersPerMin",48:"metersPerSec",49:"eightCardinal"},exdQualifiers:{0:"noQualifier",1:"instantaneous",2:"average",3:"lap",4:"maximum",5:"maximumAverage",6:"maximumLap",7:"lastLap",8:"averageLap",9:"toDestination",10:"toGo",11:"toNext",12:"nextCoursePoint",13:"total",14:"threeSecondAverage",15:"tenSecondAverage",16:"thirtySecondAverage",17:"percentMaximum",18:"percentMaximumAverage",19:"lapPercentMaximum",20:"elapsed",21:"sunrise",22:"sunset",23:"comparedToVirtualPartner",24:"maximum24h",25:"minimum24h",26:"minimum",27:"first",28:"second",29:"third",30:"shifter",31:"lastSport",32:"moving",33:"stopped",34:"estimatedTotal",242:"zone9",243:"zone8",244:"zone7",245:"zone6",246:"zone5",247:"zone4",248:"zone3",249:"zone2",250:"zone1"},exdDescriptors:{0:"bikeLightBatteryStatus",1:"beamAngleStatus",2:"bateryLevel",3:"lightNetworkMode",4:"numberLightsConnected",5:"cadence",6:"distance",7:"estimatedTimeOfArrival",8:"heading",9:"time",10:"batteryLevel",11:"trainerResistance",12:"trainerTargetPower",13:"timeSeated",14:"timeStanding",15:"elevation",16:"grade",17:"ascent",18:"descent",19:"verticalSpeed",20:"di2BatteryLevel",21:"frontGear",22:"rearGear",23:"gearRatio",24:"heartRate",25:"heartRateZone",26:"timeInHeartRateZone",27:"heartRateReserve",28:"calories",29:"gpsAccuracy",30:"gpsSignalStrength",31:"temperature",32:"timeOfDay",33:"balance",34:"pedalSmoothness",35:"power",36:"functionalThresholdPower",37:"intensityFactor",38:"work",39:"powerRatio",40:"normalizedPower",41:"trainingStressScore",42:"timeOnZone",43:"speed",44:"laps",45:"reps",46:"workoutStep",47:"courseDistance",48:"navigationDistance",49:"courseEstimatedTimeOfArrival",50:"navigationEstimatedTimeOfArrival",51:"courseTime",52:"navigationTime",53:"courseHeading",54:"navigationHeading",55:"powerZone",56:"torqueEffectiveness",57:"timerTime",58:"powerWeightRatio",59:"leftPlatformCenterOffset",60:"rightPlatformCenterOffset",61:"leftPowerPhaseStartAngle",62:"rightPowerPhaseStartAngle",63:"leftPowerPhaseFinishAngle",64:"rightPowerPhaseFinishAngle",65:"gears",66:"pace",67:"trainingEffect",68:"verticalOscillation",69:"verticalRatio",70:"groundContactTime",71:"leftGroundContactTimeBalance",72:"rightGroundContactTimeBalance",73:"strideLength",74:"runningCadence",75:"performanceCondition",76:"courseType",77:"timeInPowerZone",78:"navigationTurn",79:"courseLocation",80:"navigationLocation",81:"compass",82:"gearCombo",83:"muscleOxygen",84:"icon",85:"compassHeading",86:"gpsHeading",87:"gpsElevation",88:"anaerobicTrainingEffect",89:"course",90:"offCourse",91:"glideRatio",92:"verticalDistance",93:"vmg",94:"ambientPressure",95:"pressure",96:"vam"},autoActivityDetect:{0:"none",1:"running",2:"cycling",4:"swimming",8:"walking",32:"elliptical",1024:"sedentary"},supportedExdScreenLayouts:{1:"fullScreen",2:"halfVertical",4:"halfHorizontal",8:"halfVerticalRightSplit",16:"halfHorizontalBottomSplit",32:"fullQuarterSplit",64:"halfVerticalLeftSplit",128:"halfHorizontalTopSplit"},fitBaseType:{0:"enum",1:"sint8",2:"uint8",131:"sint16",132:"uint16",133:"sint32",134:"uint32",7:"string",136:"float32",137:"float64",10:"uint8z",139:"uint16z",140:"uint32z",13:"byte",142:"sint64",143:"uint64",144:"uint64z"},turnType:{0:"arrivingIdx",1:"arrivingLeftIdx",2:"arrivingRightIdx",3:"arrivingViaIdx",4:"arrivingViaLeftIdx",5:"arrivingViaRightIdx",6:"bearKeepLeftIdx",7:"bearKeepRightIdx",8:"continueIdx",9:"exitLeftIdx",10:"exitRightIdx",11:"ferryIdx",12:"roundabout45Idx",13:"roundabout90Idx",14:"roundabout135Idx",15:"roundabout180Idx",16:"roundabout225Idx",17:"roundabout270Idx",18:"roundabout315Idx",19:"roundabout360Idx",20:"roundaboutNeg45Idx",21:"roundaboutNeg90Idx",22:"roundaboutNeg135Idx",23:"roundaboutNeg180Idx",24:"roundaboutNeg225Idx",25:"roundaboutNeg270Idx",26:"roundaboutNeg315Idx",27:"roundaboutNeg360Idx",28:"roundaboutGenericIdx",29:"roundaboutNegGenericIdx",30:"sharpTurnLeftIdx",31:"sharpTurnRightIdx",32:"turnLeftIdx",33:"turnRightIdx",34:"uturnLeftIdx",35:"uturnRightIdx",36:"iconInvIdx",37:"iconIdxCnt"},bikeLightBeamAngleMode:{0:"manual",1:"auto"},fitBaseUnit:{0:"other",1:"kilogram",2:"pound"},setType:{0:"rest",1:"active"},maxMetCategory:{0:"generic",1:"cycling"},exerciseCategory:{0:"benchPress",1:"calfRaise",2:"cardio",3:"carry",4:"chop",5:"core",6:"crunch",7:"curl",8:"deadlift",9:"flye",10:"hipRaise",11:"hipStability",12:"hipSwing",13:"hyperextension",14:"lateralRaise",15:"legCurl",16:"legRaise",17:"lunge",18:"olympicLift",19:"plank",20:"plyo",21:"pullUp",22:"pushUp",23:"row",24:"shoulderPress",25:"shoulderStability",26:"shrug",27:"sitUp",28:"squat",29:"totalBody",30:"tricepsExtension",31:"warmUp",32:"run",33:"bike",34:"cardioSensors",35:"move",36:"pose",37:"bandedExercises",38:"battleRope",39:"elliptical",40:"floorClimb",41:"indoorBike",42:"indoorRow",43:"ladder",44:"sandbag",45:"sled",46:"sledgeHammer",47:"stairStepper",49:"suspension",50:"tire",52:"runIndoor",53:"bikeOutdoor",65534:"unknown"},benchPressExerciseName:{0:"alternatingDumbbellChestPressOnSwissBall",1:"barbellBenchPress",2:"barbellBoardBenchPress",3:"barbellFloorPress",4:"closeGripBarbellBenchPress",5:"declineDumbbellBenchPress",6:"dumbbellBenchPress",7:"dumbbellFloorPress",8:"inclineBarbellBenchPress",9:"inclineDumbbellBenchPress",10:"inclineSmithMachineBenchPress",11:"isometricBarbellBenchPress",12:"kettlebellChestPress",13:"neutralGripDumbbellBenchPress",14:"neutralGripDumbbellInclineBenchPress",15:"oneArmFloorPress",16:"weightedOneArmFloorPress",17:"partialLockout",18:"reverseGripBarbellBenchPress",19:"reverseGripInclineBenchPress",20:"singleArmCableChestPress",21:"singleArmDumbbellBenchPress",22:"smithMachineBenchPress",23:"swissBallDumbbellChestPress",24:"tripleStopBarbellBenchPress",25:"wideGripBarbellBenchPress",26:"alternatingDumbbellChestPress"},calfRaiseExerciseName:{0:"3WayCalfRaise",1:"3WayWeightedCalfRaise",2:"3WaySingleLegCalfRaise",3:"3WayWeightedSingleLegCalfRaise",4:"donkeyCalfRaise",5:"weightedDonkeyCalfRaise",6:"seatedCalfRaise",7:"weightedSeatedCalfRaise",8:"seatedDumbbellToeRaise",9:"singleLegBentKneeCalfRaise",10:"weightedSingleLegBentKneeCalfRaise",11:"singleLegDeclinePushUp",12:"singleLegDonkeyCalfRaise",13:"weightedSingleLegDonkeyCalfRaise",14:"singleLegHipRaiseWithKneeHold",15:"singleLegStandingCalfRaise",16:"singleLegStandingDumbbellCalfRaise",17:"standingBarbellCalfRaise",18:"standingCalfRaise",19:"weightedStandingCalfRaise",20:"standingDumbbellCalfRaise"},cardioExerciseName:{0:"bobAndWeaveCircle",1:"weightedBobAndWeaveCircle",2:"cardioCoreCrawl",3:"weightedCardioCoreCrawl",4:"doubleUnder",5:"weightedDoubleUnder",6:"jumpRope",7:"weightedJumpRope",8:"jumpRopeCrossover",9:"weightedJumpRopeCrossover",10:"jumpRopeJog",11:"weightedJumpRopeJog",12:"jumpingJacks",13:"weightedJumpingJacks",14:"skiMoguls",15:"weightedSkiMoguls",16:"splitJacks",17:"weightedSplitJacks",18:"squatJacks",19:"weightedSquatJacks",20:"tripleUnder",21:"weightedTripleUnder",22:"elliptical",23:"spinning",24:"polePaddleForwardWheelchair",25:"polePaddleBackwardWheelchair",26:"poleHandcycleForwardWheelchair",27:"poleHandcycleBackwardWheelchair",28:"poleRainbowWheelchair",29:"doublePunchForwardWheelchair",30:"doublePunchDownWheelchair",31:"doublePunchSidewaysWheelchair",32:"doublePunchUpWheelchair",33:"sitSkiWheelchair",34:"sittingJacksWheelchair",35:"punchForwardWheelchair",36:"punchDownWheelchair",37:"punchSidewaysWheelchair",38:"punchUpWheelchair",39:"punchBagWheelchair",40:"poleDdFfUuWheelchair",41:"butterflyArmsWheelchair",42:"punch"},carryExerciseName:{0:"barHolds",1:"farmersWalk",2:"farmersWalkOnToes",3:"hexDumbbellHold",4:"overheadCarry",5:"dumbbellWaiterCarry",6:"farmersCarryWalkLunge",7:"farmersCarry",8:"farmersCarryOnToes"},chopExerciseName:{0:"cablePullThrough",1:"cableRotationalLift",2:"cableWoodchop",3:"crossChopToKnee",4:"weightedCrossChopToKnee",5:"dumbbellChop",6:"halfKneelingRotation",7:"weightedHalfKneelingRotation",8:"halfKneelingRotationalChop",9:"halfKneelingRotationalReverseChop",10:"halfKneelingStabilityChop",11:"halfKneelingStabilityReverseChop",12:"kneelingRotationalChop",13:"kneelingRotationalReverseChop",14:"kneelingStabilityChop",15:"kneelingWoodchopper",16:"medicineBallWoodChops",17:"powerSquatChops",18:"weightedPowerSquatChops",19:"standingRotationalChop",20:"standingSplitRotationalChop",21:"standingSplitRotationalReverseChop",22:"standingStabilityReverseChop"},coreExerciseName:{0:"absJabs",1:"weightedAbsJabs",2:"alternatingPlateReach",3:"barbellRollout",4:"weightedBarbellRollout",5:"bodyBarObliqueTwist",6:"cableCorePress",7:"cableSideBend",8:"sideBend",9:"weightedSideBend",10:"crescentCircle",11:"weightedCrescentCircle",12:"cyclingRussianTwist",13:"weightedCyclingRussianTwist",14:"elevatedFeetRussianTwist",15:"weightedElevatedFeetRussianTwist",16:"halfTurkishGetUp",17:"kettlebellWindmill",18:"kneelingAbWheel",19:"weightedKneelingAbWheel",20:"modifiedFrontLever",21:"openKneeTucks",22:"weightedOpenKneeTucks",23:"sideAbsLegLift",24:"weightedSideAbsLegLift",25:"swissBallJackknife",26:"weightedSwissBallJackknife",27:"swissBallPike",28:"weightedSwissBallPike",29:"swissBallRollout",30:"weightedSwissBallRollout",31:"triangleHipPress",32:"weightedTriangleHipPress",33:"trxSuspendedJackknife",34:"weightedTrxSuspendedJackknife",35:"uBoat",36:"weightedUBoat",37:"windmillSwitches",38:"weightedWindmillSwitches",39:"alternatingSlideOut",40:"weightedAlternatingSlideOut",41:"ghdBackExtensions",42:"weightedGhdBackExtensions",43:"overheadWalk",44:"inchworm",45:"weightedModifiedFrontLever",46:"russianTwist",47:"abdominalLegRotations",48:"armAndLegExtensionOnKnees",49:"bicycle",50:"bicepCurlWithLegExtension",51:"catCow",52:"corkscrew",53:"crissCross",54:"crissCrossWithBall",55:"doubleLegStretch",56:"kneeFolds",57:"lowerLift",58:"neckPull",59:"pelvicClocks",60:"rollOver",61:"rollUp",62:"rolling",63:"rowing1",64:"rowing2",65:"scissors",66:"singleLegCircles",67:"singleLegStretch",68:"snakeTwist1And2",69:"swan",70:"swimming",71:"teaser",72:"theHundred",73:"bicepCurlWithLegExtensionWithWeights",75:"hangingLSit",77:"lowerLiftWithWeights",79:"ringLSit",80:"rowing1WithWeights",81:"rowing2WithWeights",82:"scissorsWithWeights",83:"singleLegStretchWithWeights",84:"toesToElbows",85:"weightedCrissCross",86:"weightedDoubleLegStretch",87:"weightedTheHundred",88:"lSit",89:"turkishGetUp",90:"weightedRingLSit",91:"weightedHangingLSit",92:"weightedLSit",93:"sideBendLowWheelchair",94:"sideBendMidWheelchair",95:"sideBendHighWheelchair",96:"seatedSideBend"},crunchExerciseName:{0:"bicycleCrunch",1:"cableCrunch",2:"circularArmCrunch",3:"crossedArmsCrunch",4:"weightedCrossedArmsCrunch",5:"crossLegReverseCrunch",6:"weightedCrossLegReverseCrunch",7:"crunchChop",8:"weightedCrunchChop",9:"doubleCrunch",10:"weightedDoubleCrunch",11:"elbowToKneeCrunch",12:"weightedElbowToKneeCrunch",13:"flutterKicks",14:"weightedFlutterKicks",15:"foamRollerReverseCrunchOnBench",16:"weightedFoamRollerReverseCrunchOnBench",17:"foamRollerReverseCrunchWithDumbbell",18:"foamRollerReverseCrunchWithMedicineBall",19:"frogPress",20:"hangingKneeRaiseObliqueCrunch",21:"weightedHangingKneeRaiseObliqueCrunch",22:"hipCrossover",23:"weightedHipCrossover",24:"hollowRock",25:"weightedHollowRock",26:"inclineReverseCrunch",27:"weightedInclineReverseCrunch",28:"kneelingCableCrunch",29:"kneelingCrossCrunch",30:"weightedKneelingCrossCrunch",31:"kneelingObliqueCableCrunch",32:"kneesToElbow",33:"legExtensions",34:"weightedLegExtensions",35:"legLevers",36:"mcgillCurlUp",37:"weightedMcgillCurlUp",38:"modifiedPilatesRollUpWithBall",39:"weightedModifiedPilatesRollUpWithBall",40:"pilatesCrunch",41:"weightedPilatesCrunch",42:"pilatesRollUpWithBall",43:"weightedPilatesRollUpWithBall",44:"raisedLegsCrunch",45:"weightedRaisedLegsCrunch",46:"reverseCrunch",47:"weightedReverseCrunch",48:"reverseCrunchOnABench",49:"weightedReverseCrunchOnABench",50:"reverseCurlAndLift",51:"weightedReverseCurlAndLift",52:"rotationalLift",53:"weightedRotationalLift",54:"seatedAlternatingReverseCrunch",55:"weightedSeatedAlternatingReverseCrunch",56:"seatedLegU",57:"weightedSeatedLegU",58:"sideToSideCrunchAndWeave",59:"weightedSideToSideCrunchAndWeave",60:"singleLegReverseCrunch",61:"weightedSingleLegReverseCrunch",62:"skaterCrunchCross",63:"weightedSkaterCrunchCross",64:"standingCableCrunch",65:"standingSideCrunch",66:"stepClimb",67:"weightedStepClimb",68:"swissBallCrunch",69:"swissBallReverseCrunch",70:"weightedSwissBallReverseCrunch",71:"swissBallRussianTwist",72:"weightedSwissBallRussianTwist",73:"swissBallSideCrunch",74:"weightedSwissBallSideCrunch",75:"thoracicCrunchesOnFoamRoller",76:"weightedThoracicCrunchesOnFoamRoller",77:"tricepsCrunch",78:"weightedBicycleCrunch",79:"weightedCrunch",80:"weightedSwissBallCrunch",81:"toesToBar",82:"weightedToesToBar",83:"crunch",84:"straightLegCrunchWithBall",86:"legClimbCrunch"},curlExerciseName:{0:"alternatingDumbbellBicepsCurl",1:"alternatingDumbbellBicepsCurlOnSwissBall",2:"alternatingInclineDumbbellBicepsCurl",3:"barbellBicepsCurl",4:"barbellReverseWristCurl",5:"barbellWristCurl",6:"behindTheBackBarbellReverseWristCurl",7:"behindTheBackOneArmCableCurl",8:"cableBicepsCurl",9:"cableHammerCurl",10:"cheatingBarbellBicepsCurl",11:"closeGripEzBarBicepsCurl",12:"crossBodyDumbbellHammerCurl",13:"deadHangBicepsCurl",14:"declineHammerCurl",15:"dumbbellBicepsCurlWithStaticHold",16:"dumbbellHammerCurl",17:"dumbbellReverseWristCurl",18:"dumbbellWristCurl",19:"ezBarPreacherCurl",20:"forwardBendBicepsCurl",21:"hammerCurlToPress",22:"inclineDumbbellBicepsCurl",23:"inclineOffsetThumbDumbbellCurl",24:"kettlebellBicepsCurl",25:"lyingConcentrationCableCurl",26:"oneArmPreacherCurl",27:"platePinchCurl",28:"preacherCurlWithCable",29:"reverseEzBarCurl",30:"reverseGripWristCurl",31:"reverseGripBarbellBicepsCurl",32:"seatedAlternatingDumbbellBicepsCurl",33:"seatedDumbbellBicepsCurl",34:"seatedReverseDumbbellCurl",35:"splitStanceOffsetPinkyDumbbellCurl",36:"standingAlternatingDumbbellCurls",37:"standingDumbbellBicepsCurl",38:"standingEzBarBicepsCurl",39:"staticCurl",40:"swissBallDumbbellOverheadTricepsExtension",41:"swissBallEzBarPreacherCurl",42:"twistingStandingDumbbellBicepsCurl",43:"wideGripEzBarBicepsCurl",44:"oneArmConcentrationCurl",45:"standingZottmanBicepsCurl",46:"dumbbellBicepsCurl",47:"dragCurlWheelchair",48:"dumbbellBicepsCurlWheelchair",49:"bottleCurl",50:"seatedBottleCurl"},deadliftExerciseName:{0:"barbellDeadlift",1:"barbellStraightLegDeadlift",2:"dumbbellDeadlift",3:"dumbbellSingleLegDeadliftToRow",4:"dumbbellStraightLegDeadlift",5:"kettlebellFloorToShelf",6:"oneArmOneLegDeadlift",7:"rackPull",8:"rotationalDumbbellStraightLegDeadlift",9:"singleArmDeadlift",10:"singleLegBarbellDeadlift",11:"singleLegBarbellStraightLegDeadlift",12:"singleLegDeadliftWithBarbell",13:"singleLegRdlCircuit",14:"singleLegRomanianDeadliftWithDumbbell",15:"sumoDeadlift",16:"sumoDeadliftHighPull",17:"trapBarDeadlift",18:"wideGripBarbellDeadlift",20:"kettlebellDeadlift",21:"kettlebellSumoDeadlift",23:"romanianDeadlift",24:"singleLegRomanianDeadliftCircuit",25:"straightLegDeadlift"},flyeExerciseName:{0:"cableCrossover",1:"declineDumbbellFlye",2:"dumbbellFlye",3:"inclineDumbbellFlye",4:"kettlebellFlye",5:"kneelingRearFlye",6:"singleArmStandingCableReverseFlye",7:"swissBallDumbbellFlye",8:"armRotations",9:"hugATree",10:"faceDownInclineReverseFlye",11:"inclineReverseFlye",12:"rearDeltFlyWheelchair"},hipRaiseExerciseName:{0:"barbellHipThrustOnFloor",1:"barbellHipThrustWithBench",2:"bentKneeSwissBallReverseHipRaise",3:"weightedBentKneeSwissBallReverseHipRaise",4:"bridgeWithLegExtension",5:"weightedBridgeWithLegExtension",6:"clamBridge",7:"frontKickTabletop",8:"weightedFrontKickTabletop",9:"hipExtensionAndCross",10:"weightedHipExtensionAndCross",11:"hipRaise",12:"weightedHipRaise",13:"hipRaiseWithFeetOnSwissBall",14:"weightedHipRaiseWithFeetOnSwissBall",15:"hipRaiseWithHeadOnBosuBall",16:"weightedHipRaiseWithHeadOnBosuBall",17:"hipRaiseWithHeadOnSwissBall",18:"weightedHipRaiseWithHeadOnSwissBall",19:"hipRaiseWithKneeSqueeze",20:"weightedHipRaiseWithKneeSqueeze",21:"inclineRearLegExtension",22:"weightedInclineRearLegExtension",23:"kettlebellSwing",24:"marchingHipRaise",25:"weightedMarchingHipRaise",26:"marchingHipRaiseWithFeetOnASwissBall",27:"weightedMarchingHipRaiseWithFeetOnASwissBall",28:"reverseHipRaise",29:"weightedReverseHipRaise",30:"singleLegHipRaise",31:"weightedSingleLegHipRaise",32:"singleLegHipRaiseWithFootOnBench",33:"weightedSingleLegHipRaiseWithFootOnBench",34:"singleLegHipRaiseWithFootOnBosuBall",35:"weightedSingleLegHipRaiseWithFootOnBosuBall",36:"singleLegHipRaiseWithFootOnFoamRoller",37:"weightedSingleLegHipRaiseWithFootOnFoamRoller",38:"singleLegHipRaiseWithFootOnMedicineBall",39:"weightedSingleLegHipRaiseWithFootOnMedicineBall",40:"singleLegHipRaiseWithHeadOnBosuBall",41:"weightedSingleLegHipRaiseWithHeadOnBosuBall",42:"weightedClamBridge",43:"singleLegSwissBallHipRaiseAndLegCurl",44:"clams",45:"innerThighCircles",46:"innerThighSideLift",47:"legCircles",48:"legLift",49:"legLiftInExternalRotation"},hipStabilityExerciseName:{0:"bandSideLyingLegRaise",1:"deadBug",2:"weightedDeadBug",3:"externalHipRaise",4:"weightedExternalHipRaise",5:"fireHydrantKicks",6:"weightedFireHydrantKicks",7:"hipCircles",8:"weightedHipCircles",9:"innerThighLift",10:"weightedInnerThighLift",11:"lateralWalksWithBandAtAnkles",12:"pretzelSideKick",13:"weightedPretzelSideKick",14:"proneHipInternalRotation",15:"weightedProneHipInternalRotation",16:"quadruped",17:"quadrupedHipExtension",18:"weightedQuadrupedHipExtension",19:"quadrupedWithLegLift",20:"weightedQuadrupedWithLegLift",21:"sideLyingLegRaise",22:"weightedSideLyingLegRaise",23:"slidingHipAdduction",24:"weightedSlidingHipAdduction",25:"standingAdduction",26:"weightedStandingAdduction",27:"standingCableHipAbduction",28:"standingHipAbduction",29:"weightedStandingHipAbduction",30:"standingRearLegRaise",31:"weightedStandingRearLegRaise",32:"supineHipInternalRotation",33:"weightedSupineHipInternalRotation",34:"lyingAbductionStretch"},hipSwingExerciseName:{0:"singleArmKettlebellSwing",1:"singleArmDumbbellSwing",2:"stepOutSwing",3:"oneArmSwing"},hyperextensionExerciseName:{0:"backExtensionWithOppositeArmAndLegReach",1:"weightedBackExtensionWithOppositeArmAndLegReach",2:"baseRotations",3:"weightedBaseRotations",4:"bentKneeReverseHyperextension",5:"weightedBentKneeReverseHyperextension",6:"hollowHoldAndRoll",7:"weightedHollowHoldAndRoll",8:"kicks",9:"weightedKicks",10:"kneeRaises",11:"weightedKneeRaises",12:"kneelingSuperman",13:"weightedKneelingSuperman",14:"latPullDownWithRow",15:"medicineBallDeadliftToReach",16:"oneArmOneLegRow",17:"oneArmRowWithBand",18:"overheadLungeWithMedicineBall",19:"plankKneeTucks",20:"weightedPlankKneeTucks",21:"sideStep",22:"weightedSideStep",23:"singleLegBackExtension",24:"weightedSingleLegBackExtension",25:"spineExtension",26:"weightedSpineExtension",27:"staticBackExtension",28:"weightedStaticBackExtension",29:"supermanFromFloor",30:"weightedSupermanFromFloor",31:"swissBallBackExtension",32:"weightedSwissBallBackExtension",33:"swissBallHyperextension",34:"weightedSwissBallHyperextension",35:"swissBallOppositeArmAndLegLift",36:"weightedSwissBallOppositeArmAndLegLift",37:"supermanOnSwissBall",38:"cobra",39:"supineFloorBarre"},lateralRaiseExerciseName:{0:"45DegreeCableExternalRotation",1:"alternatingLateralRaiseWithStaticHold",2:"barMuscleUp",3:"bentOverLateralRaise",4:"cableDiagonalRaise",5:"cableFrontRaise",6:"calorieRow",7:"comboShoulderRaise",8:"dumbbellDiagonalRaise",9:"dumbbellVRaise",10:"frontRaise",11:"leaningDumbbellLateralRaise",12:"lyingDumbbellRaise",13:"muscleUp",14:"oneArmCableLateralRaise",15:"overhandGripRearLateralRaise",16:"plateRaises",17:"ringDip",18:"weightedRingDip",19:"ringMuscleUp",20:"weightedRingMuscleUp",21:"ropeClimb",22:"weightedRopeClimb",23:"scaption",24:"seatedLateralRaise",25:"seatedRearLateralRaise",26:"sideLyingLateralRaise",27:"standingLift",28:"suspendedRow",29:"underhandGripRearLateralRaise",30:"wallSlide",31:"weightedWallSlide",32:"armCircles",33:"shavingTheHead",34:"dumbbellLateralRaise",36:"ringDipKipping",37:"wallWalk",38:"dumbbellFrontRaiseWheelchair",39:"dumbbellLateralRaiseWheelchair",40:"poleDoubleArmOverheadAndForwardWheelchair",41:"poleStraightArmOverheadWheelchair"},legCurlExerciseName:{0:"legCurl",1:"weightedLegCurl",2:"goodMorning",3:"seatedBarbellGoodMorning",4:"singleLegBarbellGoodMorning",5:"singleLegSlidingLegCurl",6:"slidingLegCurl",7:"splitBarbellGoodMorning",8:"splitStanceExtension",9:"staggeredStanceGoodMorning",10:"swissBallHipRaiseAndLegCurl",11:"zercherGoodMorning",12:"bandGoodMorning",13:"barGoodMorning"},legRaiseExerciseName:{0:"hangingKneeRaise",1:"hangingLegRaise",2:"weightedHangingLegRaise",3:"hangingSingleLegRaise",4:"weightedHangingSingleLegRaise",5:"kettlebellLegRaises",6:"legLoweringDrill",7:"weightedLegLoweringDrill",8:"lyingStraightLegRaise",9:"weightedLyingStraightLegRaise",10:"medicineBallLegDrops",11:"quadrupedLegRaise",12:"weightedQuadrupedLegRaise",13:"reverseLegRaise",14:"weightedReverseLegRaise",15:"reverseLegRaiseOnSwissBall",16:"weightedReverseLegRaiseOnSwissBall",17:"singleLegLoweringDrill",18:"weightedSingleLegLoweringDrill",19:"weightedHangingKneeRaise",20:"lateralStepover",21:"weightedLateralStepover"},lungeExerciseName:{0:"overheadLunge",1:"lungeMatrix",2:"weightedLungeMatrix",3:"alternatingBarbellForwardLunge",4:"alternatingDumbbellLungeWithReach",5:"backFootElevatedDumbbellSplitSquat",6:"barbellBoxLunge",7:"barbellBulgarianSplitSquat",8:"barbellCrossoverLunge",9:"barbellFrontSplitSquat",10:"barbellLunge",11:"barbellReverseLunge",12:"barbellSideLunge",13:"barbellSplitSquat",14:"coreControlRearLunge",15:"diagonalLunge",16:"dropLunge",17:"dumbbellBoxLunge",18:"dumbbellBulgarianSplitSquat",19:"dumbbellCrossoverLunge",20:"dumbbellDiagonalLunge",21:"dumbbellLunge",22:"dumbbellLungeAndRotation",23:"dumbbellOverheadBulgarianSplitSquat",24:"dumbbellReverseLungeToHighKneeAndPress",25:"dumbbellSideLunge",26:"elevatedFrontFootBarbellSplitSquat",27:"frontFootElevatedDumbbellSplitSquat",28:"gunslingerLunge",29:"lawnmowerLunge",30:"lowLungeWithIsometricAdduction",31:"lowSideToSideLunge",32:"lunge",33:"weightedLunge",34:"lungeWithArmReach",35:"lungeWithDiagonalReach",36:"lungeWithSideBend",37:"offsetDumbbellLunge",38:"offsetDumbbellReverseLunge",39:"overheadBulgarianSplitSquat",40:"overheadDumbbellReverseLunge",41:"overheadDumbbellSplitSquat",42:"overheadLungeWithRotation",43:"reverseBarbellBoxLunge",44:"reverseBoxLunge",45:"reverseDumbbellBoxLunge",46:"reverseDumbbellCrossoverLunge",47:"reverseDumbbellDiagonalLunge",48:"reverseLungeWithReachBack",49:"weightedReverseLungeWithReachBack",50:"reverseLungeWithTwistAndOverheadReach",51:"weightedReverseLungeWithTwistAndOverheadReach",52:"reverseSlidingBoxLunge",53:"weightedReverseSlidingBoxLunge",54:"reverseSlidingLunge",55:"weightedReverseSlidingLunge",56:"runnersLungeToBalance",57:"weightedRunnersLungeToBalance",58:"shiftingSideLunge",59:"sideAndCrossoverLunge",60:"weightedSideAndCrossoverLunge",61:"sideLunge",62:"weightedSideLunge",63:"sideLungeAndPress",64:"sideLungeJumpOff",65:"sideLungeSweep",66:"weightedSideLungeSweep",67:"sideLungeToCrossoverTap",68:"weightedSideLungeToCrossoverTap",69:"sideToSideLungeChops",70:"weightedSideToSideLungeChops",71:"siffJumpLunge",72:"weightedSiffJumpLunge",73:"singleArmReverseLungeAndPress",74:"slidingLateralLunge",75:"weightedSlidingLateralLunge",76:"walkingBarbellLunge",77:"walkingDumbbellLunge",78:"walkingLunge",79:"weightedWalkingLunge",80:"wideGripOverheadBarbellSplitSquat",81:"alternatingDumbbellLunge",82:"dumbbellReverseLunge",83:"overheadDumbbellLunge",84:"scissorPowerSwitch",85:"dumbbellOverheadWalkingLunge",86:"curtsyLunge",87:"weightedCurtsyLunge",88:"weightedShiftingSideLunge",89:"weightedSideLungeAndPress",90:"weightedSideLungeJumpOff"},olympicLiftExerciseName:{0:"barbellHangPowerClean",1:"barbellHangSquatClean",2:"barbellPowerClean",3:"barbellPowerSnatch",4:"barbellSquatClean",5:"cleanAndJerk",6:"barbellHangPowerSnatch",7:"barbellHangPull",8:"barbellHighPull",9:"barbellSnatch",10:"barbellSplitJerk",11:"clean",12:"dumbbellClean",13:"dumbbellHangPull",14:"oneHandDumbbellSplitSnatch",15:"pushJerk",16:"singleArmDumbbellSnatch",17:"singleArmHangSnatch",18:"singleArmKettlebellSnatch",19:"splitJerk",20:"squatCleanAndJerk",21:"dumbbellHangSnatch",22:"dumbbellPowerCleanAndJerk",23:"dumbbellPowerCleanAndPushPress",24:"dumbbellPowerCleanAndStrictPress",25:"dumbbellSnatch",26:"medicineBallClean",27:"cleanAndPress",28:"snatch"},plankExerciseName:{0:"45DegreePlank",1:"weighted45DegreePlank",2:"90DegreeStaticHold",3:"weighted90DegreeStaticHold",4:"bearCrawl",5:"weightedBearCrawl",6:"crossBodyMountainClimber",7:"weightedCrossBodyMountainClimber",8:"elbowPlankPikeJacks",9:"weightedElbowPlankPikeJacks",10:"elevatedFeetPlank",11:"weightedElevatedFeetPlank",12:"elevatorAbs",13:"weightedElevatorAbs",14:"extendedPlank",15:"weightedExtendedPlank",16:"fullPlankPasseTwist",17:"weightedFullPlankPasseTwist",18:"inchingElbowPlank",19:"weightedInchingElbowPlank",20:"inchwormToSidePlank",21:"weightedInchwormToSidePlank",22:"kneelingPlank",23:"weightedKneelingPlank",24:"kneelingSidePlankWithLegLift",25:"weightedKneelingSidePlankWithLegLift",26:"lateralRoll",27:"weightedLateralRoll",28:"lyingReversePlank",29:"weightedLyingReversePlank",30:"medicineBallMountainClimber",31:"weightedMedicineBallMountainClimber",32:"modifiedMountainClimberAndExtension",33:"weightedModifiedMountainClimberAndExtension",34:"mountainClimber",35:"weightedMountainClimber",36:"mountainClimberOnSlidingDiscs",37:"weightedMountainClimberOnSlidingDiscs",38:"mountainClimberWithFeetOnBosuBall",39:"weightedMountainClimberWithFeetOnBosuBall",40:"mountainClimberWithHandsOnBench",41:"mountainClimberWithHandsOnSwissBall",42:"weightedMountainClimberWithHandsOnSwissBall",43:"plank",44:"plankJacksWithFeetOnSlidingDiscs",45:"weightedPlankJacksWithFeetOnSlidingDiscs",46:"plankKneeTwist",47:"weightedPlankKneeTwist",48:"plankPikeJumps",49:"weightedPlankPikeJumps",50:"plankPikes",51:"weightedPlankPikes",52:"plankToStandUp",53:"weightedPlankToStandUp",54:"plankWithArmRaise",55:"weightedPlankWithArmRaise",56:"plankWithKneeToElbow",57:"weightedPlankWithKneeToElbow",58:"plankWithObliqueCrunch",59:"weightedPlankWithObliqueCrunch",60:"plyometricSidePlank",61:"weightedPlyometricSidePlank",62:"rollingSidePlank",63:"weightedRollingSidePlank",64:"sideKickPlank",65:"weightedSideKickPlank",66:"sidePlank",67:"weightedSidePlank",68:"sidePlankAndRow",69:"weightedSidePlankAndRow",70:"sidePlankLift",71:"weightedSidePlankLift",72:"sidePlankWithElbowOnBosuBall",73:"weightedSidePlankWithElbowOnBosuBall",74:"sidePlankWithFeetOnBench",75:"weightedSidePlankWithFeetOnBench",76:"sidePlankWithKneeCircle",77:"weightedSidePlankWithKneeCircle",78:"sidePlankWithKneeTuck",79:"weightedSidePlankWithKneeTuck",80:"sidePlankWithLegLift",81:"weightedSidePlankWithLegLift",82:"sidePlankWithReachUnder",83:"weightedSidePlankWithReachUnder",84:"singleLegElevatedFeetPlank",85:"weightedSingleLegElevatedFeetPlank",86:"singleLegFlexAndExtend",87:"weightedSingleLegFlexAndExtend",88:"singleLegSidePlank",89:"weightedSingleLegSidePlank",90:"spidermanPlank",91:"weightedSpidermanPlank",92:"straightArmPlank",93:"weightedStraightArmPlank",94:"straightArmPlankWithShoulderTouch",95:"weightedStraightArmPlankWithShoulderTouch",96:"swissBallPlank",97:"weightedSwissBallPlank",98:"swissBallPlankLegLift",99:"weightedSwissBallPlankLegLift",100:"swissBallPlankLegLiftAndHold",101:"swissBallPlankWithFeetOnBench",102:"weightedSwissBallPlankWithFeetOnBench",103:"swissBallProneJackknife",104:"weightedSwissBallProneJackknife",105:"swissBallSidePlank",106:"weightedSwissBallSidePlank",107:"threeWayPlank",108:"weightedThreeWayPlank",109:"towelPlankAndKneeIn",110:"weightedTowelPlankAndKneeIn",111:"tStabilization",112:"weightedTStabilization",113:"turkishGetUpToSidePlank",114:"weightedTurkishGetUpToSidePlank",115:"twoPointPlank",116:"weightedTwoPointPlank",117:"weightedPlank",118:"wideStancePlankWithDiagonalArmLift",119:"weightedWideStancePlankWithDiagonalArmLift",120:"wideStancePlankWithDiagonalLegLift",121:"weightedWideStancePlankWithDiagonalLegLift",122:"wideStancePlankWithLegLift",123:"weightedWideStancePlankWithLegLift",124:"wideStancePlankWithOppositeArmAndLegLift",125:"weightedMountainClimberWithHandsOnBench",126:"weightedSwissBallPlankLegLiftAndHold",127:"weightedWideStancePlankWithOppositeArmAndLegLift",128:"plankWithFeetOnSwissBall",129:"sidePlankToPlankWithReachUnder",130:"bridgeWithGluteLowerLift",131:"bridgeOneLegBridge",132:"plankWithArmVariations",133:"plankWithLegLift",134:"reversePlankWithLegPull",135:"ringPlankSprawls"},plyoExerciseName:{0:"alternatingJumpLunge",1:"weightedAlternatingJumpLunge",2:"barbellJumpSquat",3:"bodyWeightJumpSquat",4:"weightedJumpSquat",5:"crossKneeStrike",6:"weightedCrossKneeStrike",7:"depthJump",8:"weightedDepthJump",9:"dumbbellJumpSquat",10:"dumbbellSplitJump",11:"frontKneeStrike",12:"weightedFrontKneeStrike",13:"highBoxJump",14:"weightedHighBoxJump",15:"isometricExplosiveBodyWeightJumpSquat",16:"weightedIsometricExplosiveJumpSquat",17:"lateralLeapAndHop",18:"weightedLateralLeapAndHop",19:"lateralPlyoSquats",20:"weightedLateralPlyoSquats",21:"lateralSlide",22:"weightedLateralSlide",23:"medicineBallOverheadThrows",24:"medicineBallSideThrow",25:"medicineBallSlam",26:"sideToSideMedicineBallThrows",27:"sideToSideShuffleJump",28:"weightedSideToSideShuffleJump",29:"squatJumpOntoBox",30:"weightedSquatJumpOntoBox",31:"squatJumpsInAndOut",32:"weightedSquatJumpsInAndOut",33:"boxJump",34:"boxJumpOvers",35:"boxJumpOversOverTheBox",36:"starJumpSquats",37:"jumpSquat"},pullUpExerciseName:{0:"bandedPullUps",1:"30DegreeLatPulldown",2:"bandAssistedChinUp",3:"closeGripChinUp",4:"weightedCloseGripChinUp",5:"closeGripLatPulldown",6:"crossoverChinUp",7:"weightedCrossoverChinUp",8:"ezBarPullover",9:"hangingHurdle",10:"weightedHangingHurdle",11:"kneelingLatPulldown",12:"kneelingUnderhandGripLatPulldown",13:"latPulldown",14:"mixedGripChinUp",15:"weightedMixedGripChinUp",16:"mixedGripPullUp",17:"weightedMixedGripPullUp",18:"reverseGripPulldown",19:"standingCablePullover",20:"straightArmPulldown",21:"swissBallEzBarPullover",22:"towelPullUp",23:"weightedTowelPullUp",24:"weightedPullUp",25:"wideGripLatPulldown",26:"wideGripPullUp",27:"weightedWideGripPullUp",28:"burpeePullUp",29:"weightedBurpeePullUp",30:"jumpingPullUps",31:"weightedJumpingPullUps",32:"kippingPullUp",33:"weightedKippingPullUp",34:"lPullUp",35:"weightedLPullUp",36:"suspendedChinUp",37:"weightedSuspendedChinUp",38:"pullUp",39:"chinUp",40:"neutralGripChinUp",41:"weightedChinUp",42:"bandAssistedPullUp",43:"neutralGripPullUp",44:"weightedNeutralGripChinUp",45:"weightedNeutralGripPullUp"},pushUpExerciseName:{0:"chestPressWithBand",1:"alternatingStaggeredPushUp",2:"weightedAlternatingStaggeredPushUp",3:"alternatingHandsMedicineBallPushUp",4:"weightedAlternatingHandsMedicineBallPushUp",5:"bosuBallPushUp",6:"weightedBosuBallPushUp",7:"clappingPushUp",8:"weightedClappingPushUp",9:"closeGripMedicineBallPushUp",10:"weightedCloseGripMedicineBallPushUp",11:"closeHandsPushUp",12:"weightedCloseHandsPushUp",13:"declinePushUp",14:"weightedDeclinePushUp",15:"diamondPushUp",16:"weightedDiamondPushUp",17:"explosiveCrossoverPushUp",18:"weightedExplosiveCrossoverPushUp",19:"explosivePushUp",20:"weightedExplosivePushUp",21:"feetElevatedSideToSidePushUp",22:"weightedFeetElevatedSideToSidePushUp",23:"handReleasePushUp",24:"weightedHandReleasePushUp",25:"handstandPushUp",26:"weightedHandstandPushUp",27:"inclinePushUp",28:"weightedInclinePushUp",29:"isometricExplosivePushUp",30:"weightedIsometricExplosivePushUp",31:"judoPushUp",32:"weightedJudoPushUp",33:"kneelingPushUp",34:"weightedKneelingPushUp",35:"medicineBallChestPass",36:"medicineBallPushUp",37:"weightedMedicineBallPushUp",38:"oneArmPushUp",39:"weightedOneArmPushUp",40:"weightedPushUp",41:"pushUpAndRow",42:"weightedPushUpAndRow",43:"pushUpPlus",44:"weightedPushUpPlus",45:"pushUpWithFeetOnSwissBall",46:"weightedPushUpWithFeetOnSwissBall",47:"pushUpWithOneHandOnMedicineBall",48:"weightedPushUpWithOneHandOnMedicineBall",49:"shoulderPushUp",50:"weightedShoulderPushUp",51:"singleArmMedicineBallPushUp",52:"weightedSingleArmMedicineBallPushUp",53:"spidermanPushUp",54:"weightedSpidermanPushUp",55:"stackedFeetPushUp",56:"weightedStackedFeetPushUp",57:"staggeredHandsPushUp",58:"weightedStaggeredHandsPushUp",59:"suspendedPushUp",60:"weightedSuspendedPushUp",61:"swissBallPushUp",62:"weightedSwissBallPushUp",63:"swissBallPushUpPlus",64:"weightedSwissBallPushUpPlus",65:"tPushUp",66:"weightedTPushUp",67:"tripleStopPushUp",68:"weightedTripleStopPushUp",69:"wideHandsPushUp",70:"weightedWideHandsPushUp",71:"paralletteHandstandPushUp",72:"weightedParalletteHandstandPushUp",73:"ringHandstandPushUp",74:"weightedRingHandstandPushUp",75:"ringPushUp",76:"weightedRingPushUp",77:"pushUp",78:"pilatesPushup",79:"dynamicPushUp",80:"kippingHandstandPushUp",81:"shoulderTappingPushUp",82:"bicepsPushUp",83:"hinduPushUp",84:"pikePushUp",85:"wideGripPushUp",86:"weightedBicepsPushUp",87:"weightedHinduPushUp",88:"weightedPikePushUp",89:"kippingParalletteHandstandPushUp",90:"wallPushUp"},rowExerciseName:{0:"barbellStraightLegDeadliftToRow",1:"cableRowStanding",2:"dumbbellRow",3:"elevatedFeetInvertedRow",4:"weightedElevatedFeetInvertedRow",5:"facePull",6:"facePullWithExternalRotation",7:"invertedRowWithFeetOnSwissBall",8:"weightedInvertedRowWithFeetOnSwissBall",9:"kettlebellRow",10:"modifiedInvertedRow",11:"weightedModifiedInvertedRow",12:"neutralGripAlternatingDumbbellRow",13:"oneArmBentOverRow",14:"oneLeggedDumbbellRow",15:"renegadeRow",16:"reverseGripBarbellRow",17:"ropeHandleCableRow",18:"seatedCableRow",19:"seatedDumbbellRow",20:"singleArmCableRow",21:"singleArmCableRowAndRotation",22:"singleArmInvertedRow",23:"weightedSingleArmInvertedRow",24:"singleArmNeutralGripDumbbellRow",25:"singleArmNeutralGripDumbbellRowAndRotation",26:"suspendedInvertedRow",27:"weightedSuspendedInvertedRow",28:"tBarRow",29:"towelGripInvertedRow",30:"weightedTowelGripInvertedRow",31:"underhandGripCableRow",32:"vGripCableRow",33:"wideGripSeatedCableRow",34:"alternatingDumbbellRow",35:"invertedRow",36:"row",37:"weightedRow",38:"indoorRow",39:"bandedFacePulls",40:"chestSupportedDumbbellRow",41:"declineRingRow",42:"elevatedRingRow",43:"rdlBentOverRowWithBarbellDumbbell",44:"ringRow",45:"barbellRow",46:"bentOverRowWithBarbell",47:"bentOverRowWithDumbell",48:"seatedUnderhandGripCableRow",49:"trxInvertedRow",50:"weightedInvertedRow",51:"weightedTrxInvertedRow",52:"dumbbellRowWheelchair"},shoulderPressExerciseName:{0:"alternatingDumbbellShoulderPress",1:"arnoldPress",2:"barbellFrontSquatToPushPress",3:"barbellPushPress",4:"barbellShoulderPress",5:"deadCurlPress",6:"dumbbellAlternatingShoulderPressAndTwist",7:"dumbbellHammerCurlToLungeToPress",8:"dumbbellPushPress",9:"floorInvertedShoulderPress",10:"weightedFloorInvertedShoulderPress",11:"invertedShoulderPress",12:"weightedInvertedShoulderPress",13:"oneArmPushPress",14:"overheadBarbellPress",15:"overheadDumbbellPress",16:"seatedBarbellShoulderPress",17:"seatedDumbbellShoulderPress",18:"singleArmDumbbellShoulderPress",19:"singleArmStepUpAndPress",20:"smithMachineOverheadPress",21:"splitStanceHammerCurlToPress",22:"swissBallDumbbellShoulderPress",23:"weightPlateFrontRaise",24:"dumbbellShoulderPress",25:"militaryPress",27:"strictPress",28:"dumbbellFrontRaise",29:"dumbbellCurlToOverheadPressWheelchair",30:"arnoldPressWheelchair",31:"overheadDumbbellPressWheelchair"},shoulderStabilityExerciseName:{0:"90DegreeCableExternalRotation",1:"bandExternalRotation",2:"bandInternalRotation",3:"bentArmLateralRaiseAndExternalRotation",4:"cableExternalRotation",5:"dumbbellFacePullWithExternalRotation",6:"floorIRaise",7:"weightedFloorIRaise",8:"floorTRaise",9:"weightedFloorTRaise",10:"floorYRaise",11:"weightedFloorYRaise",12:"inclineIRaise",13:"weightedInclineIRaise",14:"inclineLRaise",15:"weightedInclineLRaise",16:"inclineTRaise",17:"weightedInclineTRaise",18:"inclineWRaise",19:"weightedInclineWRaise",20:"inclineYRaise",21:"weightedInclineYRaise",22:"lyingExternalRotation",23:"seatedDumbbellExternalRotation",24:"standingLRaise",25:"swissBallIRaise",26:"weightedSwissBallIRaise",27:"swissBallTRaise",28:"weightedSwissBallTRaise",29:"swissBallWRaise",30:"weightedSwissBallWRaise",31:"swissBallYRaise",32:"weightedSwissBallYRaise",33:"cableInternalRotation",34:"lyingInternalRotation",35:"seatedDumbbellInternalRotation"},shrugExerciseName:{0:"barbellJumpShrug",1:"barbellShrug",2:"barbellUprightRow",3:"behindTheBackSmithMachineShrug",4:"dumbbellJumpShrug",5:"dumbbellShrug",6:"dumbbellUprightRow",7:"inclineDumbbellShrug",8:"overheadBarbellShrug",9:"overheadDumbbellShrug",10:"scaptionAndShrug",11:"scapularRetraction",12:"serratusChairShrug",13:"weightedSerratusChairShrug",14:"serratusShrug",15:"weightedSerratusShrug",16:"wideGripJumpShrug",17:"wideGripBarbellShrug",18:"behindTheBackShrug",19:"dumbbellShrugWheelchair",20:"shrugWheelchair",21:"shrugArmDownWheelchair",22:"shrugArmMidWheelchair",23:"shrugArmUpWheelchair",24:"uprightRow"},sitUpExerciseName:{0:"alternatingSitUp",1:"weightedAlternatingSitUp",2:"bentKneeVUp",3:"weightedBentKneeVUp",4:"butterflySitUp",5:"weightedButterflySitup",6:"crossPunchRollUp",7:"weightedCrossPunchRollUp",8:"crossedArmsSitUp",9:"weightedCrossedArmsSitUp",10:"getUpSitUp",11:"weightedGetUpSitUp",12:"hoveringSitUp",13:"weightedHoveringSitUp",14:"kettlebellSitUp",15:"medicineBallAlternatingVUp",16:"medicineBallSitUp",17:"medicineBallVUp",18:"modifiedSitUp",19:"negativeSitUp",20:"oneArmFullSitUp",21:"recliningCircle",22:"weightedRecliningCircle",23:"reverseCurlUp",24:"weightedReverseCurlUp",25:"singleLegSwissBallJackknife",26:"weightedSingleLegSwissBallJackknife",27:"theTeaser",28:"theTeaserWeighted",29:"threePartRollDown",30:"weightedThreePartRollDown",31:"vUp",32:"weightedVUp",33:"weightedRussianTwistOnSwissBall",34:"weightedSitUp",35:"xAbs",36:"weightedXAbs",37:"sitUp",38:"ghdSitUps",39:"sitUpTurkishGetUp",40:"russianTwistOnSwissBall"},squatExerciseName:{0:"legPress",1:"backSquatWithBodyBar",2:"backSquats",3:"weightedBackSquats",4:"balancingSquat",5:"weightedBalancingSquat",6:"barbellBackSquat",7:"barbellBoxSquat",8:"barbellFrontSquat",9:"barbellHackSquat",10:"barbellHangSquatSnatch",11:"barbellLateralStepUp",12:"barbellQuarterSquat",13:"barbellSiffSquat",14:"barbellSquatSnatch",15:"barbellSquatWithHeelsRaised",16:"barbellStepover",17:"barbellStepUp",18:"benchSquatWithRotationalChop",19:"weightedBenchSquatWithRotationalChop",20:"bodyWeightWallSquat",21:"weightedWallSquat",22:"boxStepSquat",23:"weightedBoxStepSquat",24:"bracedSquat",25:"crossedArmBarbellFrontSquat",26:"crossoverDumbbellStepUp",27:"dumbbellFrontSquat",28:"dumbbellSplitSquat",29:"dumbbellSquat",30:"dumbbellSquatClean",31:"dumbbellStepover",32:"dumbbellStepUp",33:"elevatedSingleLegSquat",34:"weightedElevatedSingleLegSquat",35:"figureFourSquats",36:"weightedFigureFourSquats",37:"gobletSquat",38:"kettlebellSquat",39:"kettlebellSwingOverhead",40:"kettlebellSwingWithFlipToSquat",41:"lateralDumbbellStepUp",42:"oneLeggedSquat",43:"overheadDumbbellSquat",44:"overheadSquat",45:"partialSingleLegSquat",46:"weightedPartialSingleLegSquat",47:"pistolSquat",48:"weightedPistolSquat",49:"plieSlides",50:"weightedPlieSlides",51:"plieSquat",52:"weightedPlieSquat",53:"prisonerSquat",54:"weightedPrisonerSquat",55:"singleLegBenchGetUp",56:"weightedSingleLegBenchGetUp",57:"singleLegBenchSquat",58:"weightedSingleLegBenchSquat",59:"singleLegSquatOnSwissBall",60:"weightedSingleLegSquatOnSwissBall",61:"squat",62:"weightedSquat",63:"squatsWithBand",64:"staggeredSquat",65:"weightedStaggeredSquat",66:"stepUp",67:"weightedStepUp",68:"suitcaseSquats",69:"sumoSquat",70:"sumoSquatSlideIn",71:"weightedSumoSquatSlideIn",72:"sumoSquatToHighPull",73:"sumoSquatToStand",74:"weightedSumoSquatToStand",75:"sumoSquatWithRotation",76:"weightedSumoSquatWithRotation",77:"swissBallBodyWeightWallSquat",78:"weightedSwissBallWallSquat",79:"thrusters",80:"unevenSquat",81:"weightedUnevenSquat",82:"waistSlimmingSquat",83:"wallBall",84:"wideStanceBarbellSquat",85:"wideStanceGobletSquat",86:"zercherSquat",87:"kbsOverhead",88:"squatAndSideKick",89:"squatJumpsInNOut",90:"pilatesPlieSquatsParallelTurnedOutFlatAndHeels",91:"releveStraightLegAndKneeBentWithOneLegVariation",92:"alternatingBoxDumbbellStepUps",93:"dumbbellOverheadSquatSingleArm",94:"dumbbellSquatSnatch",95:"medicineBallSquat",97:"wallBallSquatAndPress",98:"squatAmericanSwing",100:"airSquat",101:"dumbbellThrusters",102:"overheadBarbellSquat"},totalBodyExerciseName:{0:"burpee",1:"weightedBurpee",2:"burpeeBoxJump",3:"weightedBurpeeBoxJump",4:"highPullBurpee",5:"manMakers",6:"oneArmBurpee",7:"squatThrusts",8:"weightedSquatThrusts",9:"squatPlankPushUp",10:"weightedSquatPlankPushUp",11:"standingTRotationBalance",12:"weightedStandingTRotationBalance",13:"barbellBurpee",15:"burpeeBoxJumpOverYesLiterallyJumpingOverTheBox",16:"burpeeBoxJumpStepUpOver",17:"lateralBarbellBurpee",18:"totalBodyBurpeeOverBar",19:"burpeeBoxJumpOver",20:"burpeeWheelchair"},moveExerciseName:{0:"archAndCurl",1:"armCirclesWithBallBandAndWeight",2:"armStretch",3:"backMassage",4:"bellyBreathing",5:"bridgeWithBall",6:"diamondLegCrunch",7:"diamondLegLift",8:"eightPointShoulderOpener",9:"footRolling",10:"footwork",11:"footworkOnDisc",12:"forwardFold",13:"frogWithBand",14:"halfRollUp",15:"hamstringCurl",16:"hamstringStretch",17:"hipStretch",18:"hugATreeWithBallBandAndWeight",19:"kneeCircles",20:"kneeFoldsOnDisc",21:"lateralFlexion",22:"legStretchWithBand",23:"legStretchWithLegCircles",24:"lowerLiftOnDisc",25:"lungeSquat",26:"lungesWithKneeLift",27:"mermaidStretch",28:"neutralPelvicPosition",29:"pelvicClocksOnDisc",30:"pilatesPlieSquatsParallelTurnedOutFlatAndHeelsWithChair",31:"piriformisStretch",32:"plankKneeCrosses",33:"plankKneePulls",34:"plankUpDowns",35:"prayerMudra",36:"psoasLungeStretch",37:"ribcageBreathing",38:"rollDown",39:"rollUpWithWeightAndBand",40:"saw",41:"scapularStabilization",42:"scissorsOnDisc",43:"seatedHipStretchup",44:"seatedTwist",45:"shavingTheHeadWithBallBandAndWeight",46:"spinalTwist",47:"spinalTwistStretch",48:"spineStretchForward",49:"squatOpenArmTwistPose",50:"squatsWithBall",51:"standAndHang",52:"standingSideStretch",53:"standingSingleLegForwardBendWithItBandOpener",54:"straightLegCrunchWithLegLift",55:"straightLegCrunchWithLegLiftWithBall",56:"straightLegCrunchWithLegsCrossed",57:"straightLegCrunchWithLegsCrossedWithBall",58:"straightLegDiagonalCrunch",59:"straightLegDiagonalCrunchWithBall",60:"tailboneCurl",61:"throatLock",62:"tickTockSideRoll",63:"twist",64:"vLegCrunches",65:"vSit",66:"forwardFoldWheelchair",67:"forwardFoldPlusWheelchair",68:"armCirclesLowForwardWheelchair",69:"armCirclesMidForwardWheelchair",70:"armCirclesHighForwardWheelchair",71:"armCirclesLowBackwardWheelchair",72:"armCirclesMidBackwardWheelchair",73:"armCirclesHighBackwardWheelchair",74:"coreTwistsWheelchair",75:"armRaiseWheelchair",76:"chestExpandWheelchair",77:"armExtendWheelchair",78:"forwardBendWheelchair",79:"toeTouchWheelchair",80:"extendedToeTouchWheelchair",81:"seatedArmCircles",82:"trunkRotations",83:"seatedTrunkRotations",84:"toeTouch"},poseExerciseName:{0:"allFours",1:"ankleToKnee",2:"babyCobra",3:"boat",4:"boundAngle",5:"boundSeatedSingleLegForwardBend",6:"bow",7:"bowedHalfMoon",8:"bridge",9:"cat",10:"chair",11:"childs",12:"corpse",13:"cowFace",14:"cow",15:"devotionalWarrior",16:"dolphinPlank",17:"dolphin",18:"downDogKneeToNose",19:"downDogSplit",20:"downDogSplitOpenHipBentKnee",21:"downwardFacingDog",22:"eagle",23:"easySeated",24:"extendedPuppy",25:"extendedSideAngle",26:"fish",27:"fourLimbedStaff",28:"fullSplit",29:"gate",30:"halfChairHalfAnkleToKnee",31:"halfMoon",32:"headToKnee",33:"heron",34:"heros",35:"highLunge",36:"kneesChestChin",37:"lizard",38:"locust",39:"lowLunge",40:"lowLungeTwist",41:"lowLungeWithKneeDown",42:"mermaid",43:"mountain",44:"oneLeggedDownwardFacingPoseOpenHipBentKnee",45:"oneLeggedPigeon",46:"peacefulWarrior",47:"plank",48:"plow",49:"reclinedHandToFoot",50:"revolvedHalfMoon",51:"revolvedHeadToKnee",52:"revolvedTriangle",53:"runnersLunge",54:"seatedEasySideBend",55:"seatedEasyTwist",56:"seatedLongLegForwardBend",57:"seatedWideLegForwardBend",58:"shoulderStand",59:"sideBoat",60:"sidePlank",61:"sphinx",62:"squatOpenArmTwist",63:"squatPalmPress",64:"staff",65:"standingArmsUp",66:"standingForwardBendHalfwayUp",67:"standingForwardBend",68:"standingSideOpener",69:"standingSingleLegForwardBend",70:"standingSplit",71:"standingWideLegForwardBend",72:"standingWideLegForwardBendWithTwist",73:"supineSpinalTwist",74:"tableTop",75:"threadTheNeedle",76:"thunderbolt",77:"thunderboltPoseBothSidesArmStretch",78:"tree",79:"triangle",80:"upDog",81:"upwardFacingPlank",82:"warriorOne",83:"warriorThree",84:"warriorTwo",85:"wheel",86:"wideSideLunge",87:"deepBreathingWheelchair",88:"deepBreathingLowWheelchair",89:"deepBreathingMidWheelchair",90:"deepBreathingHighWheelchair",91:"prayerWheelchair",92:"overheadPrayerWheelchair",93:"cactusWheelchair",94:"breathingPunchesWheelchair",95:"breathingPunchesExtendedWheelchair",96:"breathingPunchesOverheadWheelchair",97:"breathingPunchesOverheadAndDownWheelchair",98:"breathingPunchesSideWheelchair",99:"breathingPunchesExtendedSideWheelchair",100:"breathingPunchesOverheadSideWheelchair",101:"breathingPunchesOverheadAndDownSideWheelchair",102:"leftHandBackWheelchair",103:"triangleWheelchair",104:"threadTheNeedleWheelchair",105:"neckFlexionAndExtensionWheelchair",106:"neckLateralFlexionWheelchair",107:"spineFlexionAndExtensionWheelchair",108:"spineRotationWheelchair",109:"spineLateralFlexionWheelchair",110:"alternativeSkiingWheelchair",111:"reachForwardWheelchair",112:"warriorWheelchair",113:"reverseWarriorWheelchair",114:"downwardFacingDogToCobra",115:"seatedCatCow"},tricepsExtensionExerciseName:{0:"benchDip",1:"weightedBenchDip",2:"bodyWeightDip",3:"cableKickback",4:"cableLyingTricepsExtension",5:"cableOverheadTricepsExtension",6:"dumbbellKickback",7:"dumbbellLyingTricepsExtension",8:"ezBarOverheadTricepsExtension",9:"inclineDip",10:"weightedInclineDip",11:"inclineEzBarLyingTricepsExtension",12:"lyingDumbbellPulloverToExtension",13:"lyingEzBarTricepsExtension",14:"lyingTricepsExtensionToCloseGripBenchPress",15:"overheadDumbbellTricepsExtension",16:"recliningTricepsPress",17:"reverseGripPressdown",18:"reverseGripTricepsPressdown",19:"ropePressdown",20:"seatedBarbellOverheadTricepsExtension",21:"seatedDumbbellOverheadTricepsExtension",22:"seatedEzBarOverheadTricepsExtension",23:"seatedSingleArmOverheadDumbbellExtension",24:"singleArmDumbbellOverheadTricepsExtension",25:"singleDumbbellSeatedOverheadTricepsExtension",26:"singleLegBenchDipAndKick",27:"weightedSingleLegBenchDipAndKick",28:"singleLegDip",29:"weightedSingleLegDip",30:"staticLyingTricepsExtension",31:"suspendedDip",32:"weightedSuspendedDip",33:"swissBallDumbbellLyingTricepsExtension",34:"swissBallEzBarLyingTricepsExtension",35:"swissBallEzBarOverheadTricepsExtension",36:"tabletopDip",37:"weightedTabletopDip",38:"tricepsExtensionOnFloor",39:"tricepsPressdown",40:"weightedDip",41:"alternatingDumbbellLyingTricepsExtension",42:"tricepsPress",43:"dumbbellKickbackWheelchair",44:"overheadDumbbellTricepsExtensionWheelchair"},warmUpExerciseName:{0:"quadrupedRocking",1:"neckTilts",2:"ankleCircles",3:"ankleDorsiflexionWithBand",4:"ankleInternalRotation",5:"armCircles",6:"bentOverReachToSky",7:"catCamel",8:"elbowToFootLunge",9:"forwardAndBackwardLegSwings",10:"groiners",11:"invertedHamstringStretch",12:"lateralDuckUnder",13:"neckRotations",14:"oppositeArmAndLegBalance",15:"reachRollAndLift",16:"scorpion",17:"shoulderCircles",18:"sideToSideLegSwings",19:"sleeperStretch",20:"slideOut",21:"swissBallHipCrossover",22:"swissBallReachRollAndLift",23:"swissBallWindshieldWipers",24:"thoracicRotation",25:"walkingHighKicks",26:"walkingHighKnees",27:"walkingKneeHugs",28:"walkingLegCradles",29:"walkout",30:"walkoutFromPushUpPosition",31:"bicepsStretch",32:"glutesStretch",33:"standingHamstringStretch",34:"stretch90_90",35:"stretchAbs",36:"stretchButterfly",37:"stretchCalf",38:"stretchCatCow",39:"stretchChildsPose",40:"stretchCobra",41:"stretchForearms",42:"stretchForwardGlutes",43:"stretchFrontSplit",44:"stretchHamstring",45:"stretchHipFlexorAndQuad",46:"stretchLat",47:"stretchLevatorScapulae",48:"stretchLungeWithSpinalTwist",49:"stretchLungingHipFlexor",50:"stretchLyingAbduction",51:"stretchLyingItBand",52:"stretchLyingKneeToChest",53:"stretchLyingPiriformis",54:"stretchLyingSpinalTwist",55:"stretchNeck",56:"stretchObliques",57:"stretchOverUnderShoulder",58:"stretchPectoral",59:"stretchPigeonPose",60:"stretchPiriformis",61:"stretchQuad",62:"stretchScorpion",63:"stretchShoulder",64:"stretchSide",65:"stretchSideLunge",66:"stretchSideSplit",67:"stretchStandingItBand",68:"stretchStraddle",69:"stretchTriceps",70:"stretchWallChestAndShoulder",71:"neckRotationsWheelchair",72:"halfKneelingArmRotation",73:"threeWayAnkleMobilization",74:"ninetyNinetyHipSwitch",75:"activeFrog",76:"shoulderSweeps",77:"ankleLunges",78:"backRollFoamRoller",79:"bearCrawl",80:"latissimusDorsiFoamRoll",81:"reverseTHipOpener",82:"shoulderRolls",83:"chestOpeners",84:"tricepsStretch",85:"upperBackStretch",86:"hipCircles",87:"ankleStretch",88:"marchingInPlace",89:"tricepsStretchWheelchair",90:"upperBackStretchWheelchair"},runExerciseName:{0:"run",1:"walk",2:"jog",3:"sprint",4:"runOrWalk",5:"speedWalk",6:"warmUp"},bikeExerciseName:{0:"bike",1:"ride",2:"sprint"},bandedExercisesExerciseName:{1:"abTwist",2:"backExtension",3:"bicycleCrunch",4:"calfRaises",5:"chestPress",6:"clamShells",7:"curl",8:"deadbug",9:"deadlift",10:"donkeyKick",11:"externalRotation",12:"externalRotationAt90DegreeAbduction",13:"facePull",14:"fireHydrant",15:"fly",16:"frontRaise",17:"gluteBridge",18:"hamstringCurls",19:"highPlankLegLifts",20:"hipExtension",21:"internalRotation",22:"jumpingJack",23:"kneelingCrunch",24:"lateralBandWalks",25:"lateralRaise",26:"latpull",27:"legAbduction",28:"legAdduction",29:"legExtension",30:"lunge",31:"plank",32:"pullApart",33:"pushUps",34:"reverseCrunch",35:"row",36:"shoulderAbduction",37:"shoulderExtension",38:"shoulderExternalRotation",39:"shoulderFlexionTo90Degrees",40:"sidePlankLegLifts",41:"sideRaise",42:"squat",43:"squatToPress",44:"tricepExtension",45:"tricepKickback",46:"uprightRow",47:"wallCrawlWithExternalRotation",49:"lateralRaiseWheelchair",50:"tricepsExtensionWheelchair",51:"chestFlyInclineWheelchair",52:"chestFlyDeclineWheelchair",53:"pullDownWheelchair",54:"straightArmPullDownWheelchair",55:"curlWheelchair",56:"overheadCurlWheelchair",57:"facePullWheelchair",58:"aroundTheWorldWheelchair",59:"pullApartWheelchair",60:"sideCurlWheelchair",61:"overheadPressWheelchair"},battleRopeExerciseName:{0:"alternatingFigureEight",1:"alternatingJumpWave",2:"alternatingKneelingToStandingWave",3:"alternatingLungeWave",4:"alternatingSquatWave",5:"alternatingWave",6:"alternatingWaveWithLateralShuffle",7:"clapWave",8:"doubleArmFigureEight",9:"doubleArmSideToSideSnake",10:"doubleArmSideWave",11:"doubleArmSlam",12:"doubleArmWave",13:"grapplerToss",14:"hipToss",15:"inAndOutWave",16:"insideCircle",17:"jumpingJacks",18:"outsideCircle",19:"rainbow",20:"sidePlankWave",21:"sidewinder",22:"sittingRussianTwist",23:"snakeWave",24:"splitJack",25:"stageCoach",26:"ultimateWarrior",27:"upperCuts"},ellipticalExerciseName:{0:"elliptical"},floorClimbExerciseName:{0:"floorClimb"},indoorBikeExerciseName:{0:"airBike",1:"assaultBike",3:"stationaryBike"},indoorRowExerciseName:{0:"rowingMachine"},ladderExerciseName:{0:"agility",1:"speed"},sandbagExerciseName:{0:"aroundTheWorld",1:"backSquat",2:"bearCrawlPullThrough",3:"bearHugSquat",4:"clean",5:"cleanAndPress",6:"curl",7:"frontCarry",8:"frontSquat",9:"lunge",10:"overheadPress",11:"plankPullThrough",12:"rotationalLunge",13:"row",14:"russianTwist",15:"shouldering",16:"shoveling",17:"sideLunge",18:"sprint",19:"zercherSquat"},sledExerciseName:{0:"backwardDrag",1:"chestPress",2:"forwardDrag",3:"lowPush",4:"push",5:"row"},sledgeHammerExerciseName:{0:"lateralSwing",1:"hammerSlam"},stairStepperExerciseName:{0:"stairStepper"},suspensionExerciseName:{0:"chestFly",1:"chestPress",2:"crunch",3:"curl",4:"dip",5:"facePull",6:"gluteBridge",7:"hamstringCurl",8:"hipDrop",9:"invertedRow",10:"kneeDriveJump",11:"kneeToChest",12:"latPullover",13:"lunge",14:"mountainClimber",15:"pendulum",16:"pike",17:"plank",18:"powerPull",19:"pullUp",20:"pushUp",21:"reverseMountainClimber",22:"reversePlank",23:"rollout",24:"row",25:"sideLunge",26:"sidePlank",27:"singleLegDeadlift",28:"singleLegSquat",29:"sitUp",30:"split",31:"squat",32:"squatJump",33:"tricepPress",34:"yFly"},tireExerciseName:{0:"flip"},bikeOutdoorExerciseName:{0:"bike"},runIndoorExerciseName:{0:"indoorTrackRun",1:"treadmill"},waterType:{0:"fresh",1:"salt",2:"en13319",3:"custom"},tissueModelType:{0:"zhl16c"},diveGasStatus:{0:"disabled",1:"enabled",2:"backupOnly"},diveAlert:{0:"ndlReached",1:"gasSwitchPrompted",2:"nearSurface",3:"approachingNdl",4:"po2Warn",5:"po2CritHigh",6:"po2CritLow",7:"timeAlert",8:"depthAlert",9:"decoCeilingBroken",10:"decoComplete",11:"safetyStopBroken",12:"safetyStopComplete",13:"cnsWarning",14:"cnsCritical",15:"otuWarning",16:"otuCritical",17:"ascentCritical",18:"alertDismissedByKey",19:"alertDismissedByTimeout",20:"batteryLow",21:"batteryCritical",22:"safetyStopStarted",23:"approachingFirstDecoStop",24:"setpointSwitchAutoLow",25:"setpointSwitchAutoHigh",26:"setpointSwitchManualLow",27:"setpointSwitchManualHigh",28:"autoSetpointSwitchIgnored",29:"switchedToOpenCircuit",30:"switchedToClosedCircuit",32:"tankBatteryLow",33:"po2CcrDilLow",34:"decoStopCleared",35:"apneaNeutralBuoyancy",36:"apneaTargetDepth",37:"apneaSurface",38:"apneaHighSpeed",39:"apneaLowSpeed"},diveAlarmType:{0:"depth",1:"time",2:"speed"},diveBacklightMode:{0:"atDepth",1:"alwaysOn"},sleepLevel:{0:"unmeasurable",1:"awake",2:"light",3:"deep",4:"rem"},spo2MeasurementType:{0:"offWrist",1:"spotCheck",2:"continuousCheck",3:"periodic"},ccrSetpointSwitchMode:{0:"manual",1:"automatic"},diveGasMode:{0:"openCircuit",1:"closedCircuitDiluent"},projectileType:{0:"arrow",1:"rifleCartridge",2:"pistolCartridge",3:"shotshell",4:"airRiflePellet",5:"other"},faveroProduct:{10:"assiomaUno",12:"assiomaDuo"},splitType:{1:"ascentSplit",2:"descentSplit",3:"intervalActive",4:"intervalRest",5:"intervalWarmup",6:"intervalCooldown",7:"intervalRecovery",8:"intervalOther",9:"climbActive",10:"climbRest",11:"surfActive",12:"runActive",13:"runRest",14:"workoutRound",17:"rwdRun",18:"rwdWalk",21:"windsurfActive",22:"rwdStand",23:"transition",28:"skiLiftSplit",29:"skiRunSplit"},climbProEvent:{0:"approach",1:"start",2:"complete"},gasConsumptionRateType:{0:"pressureSac",1:"volumeSac",2:"rmv"},tapSensitivity:{0:"high",1:"medium",2:"low"},radarThreatLevelType:{0:"threatUnknown",1:"threatNone",2:"threatApproaching",3:"threatApproachingFast"},sleepDisruptionSeverity:{0:"none",1:"low",2:"medium",3:"high"},napPeriodFeedback:{0:"none",1:"multipleNapsDuringDay",2:"jetlagIdealTimingIdealDuration",3:"jetlagIdealTimingLongDuration",4:"jetlagLateTimingIdealDuration",5:"jetlagLateTimingLongDuration",6:"idealTimingIdealDurationLowNeed",7:"idealTimingIdealDurationHighNeed",8:"idealTimingLongDurationLowNeed",9:"idealTimingLongDurationHighNeed",10:"lateTimingIdealDurationLowNeed",11:"lateTimingIdealDurationHighNeed",12:"lateTimingLongDurationLowNeed",13:"lateTimingLongDurationHighNeed",14:"idealDurationLowNeed",15:"idealDurationHighNeed",16:"longDurationLowNeed",17:"longDurationHighNeed"},napSource:{0:"automatic",1:"manualDevice",2:"manualGc"},maxMetSpeedSource:{0:"onboardGps",1:"connectedGps",2:"cadence"},maxMetHeartRateSource:{0:"whr",1:"hrm"},hrvStatus:{0:"none",1:"poor",2:"low",3:"unbalanced",4:"balanced"},noFlyTimeMode:{0:"standard",1:"flat24Hours"}},MesgNum:{FILE_ID:0,FILE_CREATOR:49,TIMESTAMP_CORRELATION:162,SOFTWARE:35,SLAVE_DEVICE:106,CAPABILITIES:1,FILE_CAPABILITIES:37,MESG_CAPABILITIES:38,FIELD_CAPABILITIES:39,DEVICE_SETTINGS:2,USER_PROFILE:3,HRM_PROFILE:4,SDM_PROFILE:5,BIKE_PROFILE:6,CONNECTIVITY:127,WATCHFACE_SETTINGS:159,OHR_SETTINGS:188,TIME_IN_ZONE:216,ZONES_TARGET:7,SPORT:12,HR_ZONE:8,SPEED_ZONE:53,CADENCE_ZONE:131,POWER_ZONE:9,MET_ZONE:10,TRAINING_SETTINGS:13,DIVE_SETTINGS:258,DIVE_ALARM:262,DIVE_APNEA_ALARM:393,DIVE_GAS:259,GOAL:15,ACTIVITY:34,SESSION:18,LAP:19,LENGTH:101,RECORD:20,EVENT:21,DEVICE_INFO:23,DEVICE_AUX_BATTERY_INFO:375,TRAINING_FILE:72,WEATHER_CONDITIONS:128,WEATHER_ALERT:129,GPS_METADATA:160,CAMERA_EVENT:161,GYROSCOPE_DATA:164,ACCELEROMETER_DATA:165,MAGNETOMETER_DATA:208,BAROMETER_DATA:209,THREE_D_SENSOR_CALIBRATION:167,ONE_D_SENSOR_CALIBRATION:210,VIDEO_FRAME:169,OBDII_DATA:174,NMEA_SENTENCE:177,AVIATION_ATTITUDE:178,VIDEO:184,VIDEO_TITLE:185,VIDEO_DESCRIPTION:186,VIDEO_CLIP:187,SET:225,JUMP:285,SPLIT:312,SPLIT_SUMMARY:313,CLIMB_PRO:317,FIELD_DESCRIPTION:206,DEVELOPER_DATA_ID:207,COURSE:31,COURSE_POINT:32,SEGMENT_ID:148,SEGMENT_LEADERBOARD_ENTRY:149,SEGMENT_POINT:150,SEGMENT_LAP:142,SEGMENT_FILE:151,WORKOUT:26,WORKOUT_SESSION:158,WORKOUT_STEP:27,EXERCISE_TITLE:264,SCHEDULE:28,TOTALS:33,WEIGHT_SCALE:30,BLOOD_PRESSURE:51,MONITORING_INFO:103,MONITORING:55,MONITORING_HR_DATA:211,SPO2_DATA:269,HR:132,STRESS_LEVEL:227,MAX_MET_DATA:229,HSA_BODY_BATTERY_DATA:314,HSA_EVENT:315,HSA_ACCELEROMETER_DATA:302,HSA_GYROSCOPE_DATA:376,HSA_STEP_DATA:304,HSA_SPO2_DATA:305,HSA_STRESS_DATA:306,HSA_RESPIRATION_DATA:307,HSA_HEART_RATE_DATA:308,HSA_CONFIGURATION_DATA:389,HSA_WRIST_TEMPERATURE_DATA:409,MEMO_GLOB:145,SLEEP_LEVEL:275,ANT_CHANNEL_ID:82,ANT_RX:80,ANT_TX:81,EXD_SCREEN_CONFIGURATION:200,EXD_DATA_FIELD_CONFIGURATION:201,EXD_DATA_CONCEPT_CONFIGURATION:202,DIVE_SUMMARY:268,AAD_ACCEL_FEATURES:289,HRV:78,BEAT_INTERVALS:290,HRV_STATUS_SUMMARY:370,HRV_VALUE:371,RAW_BBI:372,RESPIRATION_RATE:297,CHRONO_SHOT_SESSION:387,CHRONO_SHOT_DATA:388,TANK_UPDATE:319,TANK_SUMMARY:323,SLEEP_ASSESSMENT:346,SLEEP_DISRUPTION_SEVERITY_PERIOD:470,SLEEP_DISRUPTION_OVERNIGHT_SEVERITY:471,NAP_EVENT:412,SKIN_TEMP_OVERNIGHT:398,PAD:105}},G=ea});var sa,Bt,Mt,Gt=V(()=>{oe();sa=l=>{if((l?.memoGlobMesgs?.length??0)==0)return;let e=l.memoGlobMesgs,s=Object.groupBy(e,({mesgNum:t,parentIndex:n,fieldNum:a})=>JSON.stringify({mesgNum:t,parentIndex:n,fieldNum:a}));Object.entries(s).forEach(([t,n])=>{let{mesgNum:a,parentIndex:i,fieldNum:o}=JSON.parse(t);n.sort((R,I)=>R.partIndex-I.partIndex);let u=Object.values(G.messages).find(R=>R.name==a||R.num==a),m=l[u?.messagesKey??a]?.[i];if(m==null)return;let T=u?.fields?.[o]?.name??o,A=n.reduce((R,I)=>R.concat(I.data),[]);m[T]=Bt(A)})},Bt=l=>{let e=new TextDecoder("utf-8"),s=new Uint8Array(l);return e.decode(s)},Mt={decodeMemoGlobs:sa,decodeMemoGlobBytesToUtf8:Bt}});var ta,na,Pt,aa,ee,Ks=V(()=>{ta=(l,{legacyArrayMode:e=!1,isArray:s=!1}={})=>Pt(l)?null:e?l.length===1?l[0]:l:s?l:l[0],na=l=>{if(l==null)return;let e=l.split("\0");for(;e[e.length-1]==="";)if(e.pop(),e.length===0)return"";return e.length===1?e[0]:e},Pt=l=>l.every(e=>e==null),aa=(l,e)=>Array.isArray(l)?l.every(s=>s===e):l===e,ee={sanitizeValues:ta,trimStringTrailingNulls:na,onlyNullValues:Pt,onlyInvalidValues:aa}});var ks,Wt,Ns=V(()=>{q();Ks();ks=class l{#t=0;#e=null;#s=null;#l=new TextDecoder("utf-8",{fatal:!1,ignoreBOM:!0});#n=null;#a=!1;static fromByteArray(e){let s=new Uint8Array(e);return this.fromArrayBuffer(s.buffer)}static fromBuffer(e){let s=e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength);return this.fromArrayBuffer(s)}static fromArrayBuffer(e){return new l(e)}constructor(e){this.#t=0,this.#e=e,this.#s=new DataView(e)}get length(){return this.#e.byteLength}get bytesRead(){return this.#t}get position(){return this.#t}get crcCalculator(){return this.#n}set crcCalculator(e){this.#n=e}get legacyArrayMode(){return this.#a}set legacyArrayMode(e){this.#a=e}reset(){this.seek(0)}seek(e){this.#t=e}slice(e,s){return this.#e.slice(e,s)}peekByte(){return this.#s.getUint8(this.#t)}readByte(){return this.readUInt8()}readBytes(e){if(this.#t+e>this.#e.byteLength)throw Error(`FIT Runtime Error end of stream at byte ${this.#t}`);let s=new Uint8Array(this.#e,this.#t,e);return this.#t+=e,this.#n?.addBytes(s,0,e),s}readUInt8(e){return this.readValue(r.BaseType.UINT8,1,{convertInvalidToNull:!1,...e})}readInt8(e){return this.readValue(r.BaseType.SINT8,1,{convertInvalidToNull:!1,...e})}readUInt16(e){return this.readValue(r.BaseType.UINT16,2,{convertInvalidToNull:!1,...e})}readInt16(e){return this.readValue(r.BaseType.SINT16,2,{convertInvalidToNull:!1,...e})}readUInt32(e){return this.readValue(r.BaseType.UINT32,4,{convertInvalidToNull:!1,...e})}readInt32(e){return this.readValue(r.BaseType.SINT32,4,{convertInvalidToNull:!1,...e})}readUInt64(e){return this.readValue(r.BaseType.UINT64,8,{convertInvalidToNull:!1,...e})}readInt64(e){return this.readValue(r.BaseType.SINT64,8,{convertInvalidToNull:!1,...e})}readFloat32(e){return this.readValue(r.BaseType.FLOAT32,4,{convertInvalidToNull:!1,...e})}readFloat64(e){return this.readValue(r.BaseType.FLOAT64,8,{convertInvalidToNull:!1,...e})}readString(e,s={}){return this.readValue(r.BaseType.STRING,e,s)}asUint8Array(){return new Uint8Array(this.#e)}readValue(e,s,{littleEndian:t=!0,convertInvalidToNull:n=!0,isArray:a=!1}={}){let i=r.BaseTypeDefinitions[e],o=i.size,u=i.invalid,m=this.#t,T=this.readBytes(s);if(s%o!==0)return n?null:u;if(e===r.BaseType.STRING){let h=this.#l.decode(T).replace(/\uFFFD/g,"").split(r.NULL_TERMINATOR);for(;h[h.length-1]==="";)h.pop();return h.length===0?null:this.#a?h.length===1?h[0]:h:h[0]}let A=s/o;if(A===1){let I=this.#o(e,m,t);return n&&I===u?null:!this.#a&&!a?I:ee.sanitizeValues([I],{legacyArrayMode:this.#a,isArray:a})}let R=[];for(let I=0;I<A;I++)R.push(this.#o(e,m+I*o,t));if(n){if(ee.onlyInvalidValues(R,u))return null;e!==r.BaseType.BYTE&&(R=R.map(I=>I===u?null:I))}return ee.sanitizeValues(R,{legacyArrayMode:this.#a,isArray:a})}#o(e,s,t){switch(e){case r.BaseType.BYTE:case r.BaseType.ENUM:case r.BaseType.UINT8:case r.BaseType.UINT8Z:return this.#s.getUint8(s);case r.BaseType.SINT8:return this.#s.getInt8(s);case r.BaseType.UINT16:case r.BaseType.UINT16Z:return this.#s.getUint16(s,t);case r.BaseType.SINT16:return this.#s.getInt16(s,t);case r.BaseType.UINT32:case r.BaseType.UINT32Z:return this.#s.getUint32(s,t);case r.BaseType.SINT32:return this.#s.getInt32(s,t);case r.BaseType.UINT64:case r.BaseType.UINT64Z:return this.#s.getBigUint64(s,t);case r.BaseType.SINT64:return this.#s.getBigInt64(s,t);case r.BaseType.FLOAT32:return this.#s.getFloat32(s,t);case r.BaseType.FLOAT64:return this.#s.getFloat64(s,t);default:throw new Error(`Unsupported FIT base type: ${e}`)}}},Wt=ks});var Vt,Xs,Kt,ia,kt,Se,la,Ys,oa,$,zs,Nt,Xt=V(()=>{ht();Dt();Ee();q();Ut();Gt();oe();Ns();re();Ks();Vt=128,Xs=64,Kt=32,ia=0,kt=15,Se=14,la=12,Ys=2,oa=2199,$=Object.freeze({NORMAL:"normal",SKIP_HEADER:"skipHeader",DATA_ONLY:"dataOnly"}),zs=class l{#t=[];#e={};#s=null;#l=new yt;#n={};#a=null;#o=[];#i=[];#f=$.NORMAL;#p=null;#_=null;#m=null;#A=!0;#u=!0;#r=!0;#c=!0;#h=!0;#b=!1;#I=!0;#R=!1;#T=!1;constructor(e){if(e==null)throw Error("FIT Runtime Error stream parameter is null or undefined");this.#s=e}static isFIT(e){try{let s=e.peekByte();if([Se,la].includes(s)!=!0||e.length<s+Ys||l.#y(e,{resetPosition:!0}).dataType!==".FIT")return!1}catch{return!1}return!0}isFIT(){return l.isFIT(this.#s)}checkIntegrity(){try{if(!this.isFIT())return!1;let e=l.#y(this.#s,{resetPosition:!0});if(this.#s.length<e.headerSize+e.dataSize+Ys)return!1;let s=this.#s.asUint8Array();if(e.headerSize===Se&&e.headerCRC!==0&&e.headerCRC!=Q.calculateCRC(s,0,12)||(s[e.headerSize+e.dataSize+1]<<8)+s[e.headerSize+e.dataSize]!=Q.calculateCRC(s,0,e.headerSize+e.dataSize))return!1}catch{return!1}return!0}read({mesgListener:e=null,mesgDefinitionListener:s=null,fieldDescriptionListener:t=null,expandSubFields:n=!0,expandComponents:a=!0,applyScaleAndOffset:i=!0,convertTypesToStrings:o=!0,convertDateTimesToDates:u=!0,includeUnknownData:m=!1,mergeHeartRates:T=!0,decodeMemoGlobs:A=!1,skipHeader:R=!1,dataOnly:I=!1,legacyArrayMode:h=!1}={}){this.#p=e,this.#_=s,this.#m=t,this.#A=n,this.#u=a,this.#r=i,this.#c=o,this.#h=u,this.#b=m,this.#I=T,this.#R=A,this.#T=h,this.#t=[],this.#e={},this.#n={},this.#a=null;let M=[];try{for(this.#T,this.#I&&(!this.#r||!this.#u)&&this.#d("mergeHeartRates requires applyScaleAndOffset and expandComponents to be enabled"),I&&R&&this.#d("dataOnly and skipHeader cannot both be enabled"),this.#f=R?$.SKIP_HEADER:I?$.DATA_ONLY:$.NORMAL,this.#s.legacyArrayMode=this.#T;this.#s.position<this.#s.length;)this.#E();this.#I&&vt.mergeHeartRates(this.#n.hrMesgs,this.#n.recordMesgs),this.#R&&Mt.decodeMemoGlobs(this.#n)}catch(D){M.push(D)}finally{return{messages:this.#n,profileVersion:this.#a,errors:M}}}#E(){let e=this.#s.position;this.#f===$.NORMAL&&!this.isFIT()&&this.#d("input is not a FIT file"),this.#s.crcCalculator=new Q;let{headerSize:s,dataSize:t,profileVersion:n}=l.#y(this.#s,{decodeMode:this.#f});for(this.#a??=n;this.#s.position<e+s+t;)this.#S();let a=this.#s.crcCalculator.crc,i=this.#s.readUInt16();this.#f===$.NORMAL&&i!==a&&this.#d("CRC error")}#S(){let e=this.#s.peekByte();if((e&Vt)===Vt)return this.#D();if((e&Xs)===ia)return this.#F();if((e&Xs)===Xs)return this.#O()}#O(){let e=this.#s.readByte(),s={};s.recordHeader=e,s.localMesgNum=e&kt,s.reserved=this.#s.readByte(),s.architecture=this.#s.readByte(),s.endianness=s.architecture===0,s.globalMessageNumber=this.#s.readUInt16({littleEndian:s.endianness}),s.numFields=this.#s.readByte(),s.fieldDefinitions=[],s.developerFieldDefinitions=[],s.messageSize=0,s.developerDataSize=0;for(let n=0;n<s.numFields;n++){let a={fieldDefinitionNumber:this.#s.readByte(),size:this.#s.readByte(),baseType:this.#s.readByte()&r.BaseTypeMask};a.baseType in r.BaseTypeDefinitions||this.#d(),a.invalidValue=r.BaseTypeDefinitions[a.baseType].invalid,a.baseTypeSize=r.BaseTypeDefinitions[a.baseType].size,s.fieldDefinitions.push(a),s.messageSize+=a.size}if((e&Kt)===Kt){let n=this.#s.readByte();for(let a=0;a<n;a++){let i={fieldDefinitionNumber:this.#s.readByte(),size:this.#s.readByte(),developerDataIndex:this.#s.readByte()};s.developerFieldDefinitions.push(i),s.developerDataSize+=i.size}}this.#_?.({...s});let t=G.messages[s.globalMessageNumber];t==null&&this.#b&&(t={name:s.globalMessageNumber.toString(),messagesKey:s.globalMessageNumber.toString(),num:s.globalMessageNumber,fields:{}}),this.#t[s.localMesgNum]={...s,...t},t&&!this.#n.hasOwnProperty(t.messagesKey)&&(this.#n[t.messagesKey]=[])}#F(){let s=this.#s.readByte()&kt,t=this.#t[s];t==null&&this.#d();let n=t.fields??{},a=t.num,i={};this.#o=[],this.#i=[],t.fieldDefinitions.forEach(u=>{let m=n[u.fieldDefinitionNumber],{fieldName:T,rawFieldValue:A}=this.#H(t,u,m);T!=null&&(m!=null||this.#b)&&(i[T]={rawFieldValue:A,fieldDefinitionNumber:u.fieldDefinitionNumber},m?.subFields?.length>0&&this.#o.push(T),m?.hasComponents&&this.#i.push(T),m?.isAccumulated&&this.#k(t,i,m,A))});let o={};if(t.developerFieldDefinitions.forEach(u=>{let m=this.#B(u);if(m==null){this.#s.readBytes(u.size);return}u.baseType=m.fitBaseTypeId,u.invalidValue=r.BaseTypeDefinitions[u.baseType].invalid,u.baseTypeSize=r.BaseTypeDefinitions[u.baseType].size;let T=this.#w(t,u,m);T!=null&&(o[m.key]=T)}),a===G.MesgNum.DEVELOPER_DATA_ID)this.#v(i);else if(a===G.MesgNum.FIELD_DESCRIPTION){let u=Object.keys(this.#e).reduce((m,T)=>m+this.#e[T].fields.length,0);i.key={fieldValue:u,rawFieldValue:u},this.#U(i)}else this.#M(a,i),this.#P(a,i,n);if(this.#W(i,t),t.name!=null&&(Object.keys(i).forEach(u=>{i[u]=i[u].fieldValue}),Object.keys(o).length>0&&(i.developerFields=o),this.#n[t.messagesKey].push(i),this.#p?.(t.globalMessageNumber,i),a===G.MesgNum.FIELD_DESCRIPTION&&this.#m!=null)){let u=this.#n.developerDataIdMesgs?.find(m=>m.developerDataIndex===i.developerDataIndex)??{};this.#m(i.key,{...u},{...i})}}#D(){this.#d("compressed timestamp messages are not currently supported")}#H(e,s,t){let n=this.#g(e,s,t);return n==null?{}:{fieldName:t?.name??~~s.fieldDefinitionNumber,rawFieldValue:n}}#g(e,s,t){return this.#s.readValue(s.baseType,s.size,{littleEndian:e.endianness,isArray:t?.array??s.size>s.baseTypeSize})}#w(e,s,t){this.#s.legacyArrayMode=!0;let n=this.#g(e,s,t);return this.#s.legacyArrayMode=this.#T,n}#v(e){e==null||e.developerDataIndex.rawFieldValue==null||e.developerDataIndex.rawFieldValue===255||(this.#e[e.developerDataIndex.rawFieldValue]={developerDataIndex:e.developerDataIndex?.rawFieldValue,developerId:e.developerId?.rawFieldValue??null,applicationId:e.applicationId?.rawFieldValue??null,manufacturerId:e.manufacturerId?.rawFieldValue??null,applicationVersion:e.applicationVersion?.rawFieldValue??null,fields:[]})}#U(e){e==null||e.developerDataIndex.rawFieldValue==null||e.developerDataIndex.rawFieldValue===255||this.#e[e.developerDataIndex.rawFieldValue]!=null&&this.#e[e.developerDataIndex.rawFieldValue].fields.push({developerDataIndex:e.developerDataIndex?.rawFieldValue,fieldDefinitionNumber:e.fieldDefinitionNumber?.rawFieldValue,fitBaseTypeId:e.fitBaseTypeId?.rawFieldValue&r.BaseTypeMask,fieldName:e.fieldName?.rawFieldValue??null,array:e.array?.rawFieldValue??null,components:e.components?.rawFieldValue??null,scale:e.scale?.rawFieldValue??null,offset:e.offset?.rawFieldValue??null,units:e.units?.rawFieldValue??null,bits:e.bits?.rawFieldValue??null,accumulate:e.accumulate?.rawFieldValue??null,refFieldName:e.refFieldName?.rawFieldValue??null,refFieldValue:e.refFieldValue?.rawFieldValue??null,fitBaseUnitId:e.fitBaseUnitId?.rawFieldValue??null,nativeMesgNum:e.nativeMesgNum?.rawFieldValue??null,nativeFieldNum:e.nativeFieldNum?.rawFieldValue??null,key:e.key.rawFieldValue})}#B(e){try{return this.#e[e.developerDataIndex]?.fields?.find(s=>s.fieldDefinitionNumber==e.fieldDefinitionNumber)??null}catch{return null}}#M(e,s){!this.#A||this.#o.length==0||this.#o.forEach(t=>{let n=G.messages[e].fields[s[t].fieldDefinitionNumber];this.#G(s,n)})}#G(e,s){for(let t=0;t<s.subFields.length;t++){let n=s.subFields[t];for(let a=0;a<n.map.length;a++){let i=n.map[a],o=e[i.name];if(o!=null&&o.rawFieldValue===i.value){let u=e[s.name],m=Array.isArray(u.rawFieldValue)?[...u.rawFieldValue]:u.rawFieldValue;e[n.name]={...u,rawFieldValue:m,isSubField:!0},n.hasComponents&&this.#i.push(n.name);break}}}}#P(e,s,t){if(!this.#u||this.#i.length==0)return;let n={};for(;this.#i.length>0;){let a=this.#i.shift(),{rawFieldValue:i,fieldDefinitionNumber:o,isSubField:u}=s[a]??n[a],m=G.messages[e].fields[o];m=u?this.#C(m,a):m;let T=r.FieldTypeToBaseType[m.type];if(m.hasComponents===!1||T==null||ee.onlyInvalidValues(i,r.BaseTypeDefinitions[T].invalid))continue;let A=new Ft(i,T);for(let R=0;R<m.components.length&&!(A.bitsAvailable<m.bits[R]);R++){let I=t[m.components[R]];if(n[I.name]==null){let D=r.FieldTypeToBaseType[I.type],c=D!=null?r.BaseTypeDefinitions[D].invalid:255;n[I.name]={fieldValue:[],rawFieldValue:[],fieldDefinitionNumber:I.num,isExpandedField:!0,isArray:I?.array??!1,invalidValue:c}}let h=A.readBits(m.bits[R]);I.isAccumulated&&(h=this.#l.accumulate(e,I.num,h,m.bits[R])),h=h/m.scale[R]-m.offset[R];let M=(h+I.offset)*I.scale;if(n[I.name].rawFieldValue.push(M),M===n[I.name].invalidValue?n[I.name].fieldValue.push(null):(this.#c&&(h=this.#L(n,I,h)),n[I.name].fieldValue.push(h)),I.hasComponents&&this.#i.push(I.name),!A.hasBitsAvailable)break}}Object.keys(n).forEach(a=>{let i=n[a];n[a].fieldValue=ee.sanitizeValues(i.fieldValue,{legacyArrayMode:this.#T,isArray:i.isArray}),n[a].rawFieldValue=ee.sanitizeValues(i.rawFieldValue,{legacyArrayMode:this.#T,isArray:i.isArray}),s[a]=n[a]})}#W(e,s){let t=s?.fields??{};for(let n in e){let{rawFieldValue:a,fieldDefinitionNumber:i,isExpandedField:o,isSubField:u}=e[n],m=t[i];if(m=u?this.#C(m,n):m,!o){let T=this.#V(s,m,a);e[n].fieldValue=T}}}#V(e,s,t){let n=t;return s==null?n=t:r.NumericFieldTypesSet.has(s?.type??-1)?n=this.#K(e,s,t):s.type==="string"?n=t:s.type==="dateTime"&&this.#h?n=x.convertDateTimeToDate(t):this.#c?n=this.#L(e,s,t):n=t,n}#K(e,s,t){if(!this.#r||r.NumericFieldTypesSet.has(s?.type??-1)===!1||[G.MesgNum.DEVELOPER_DATA_ID,G.MesgNum.FIELD_DESCRIPTION].includes(e.globalMessageNumber)||t==null||Array.isArray(s?.scale??1)&&s.scale.length>1)return t;let n=Array.isArray(s?.scale??r.FIELD_DEFAULT_SCALE)?s?.scale[0]:s?.scale??r.FIELD_DEFAULT_SCALE,a=Array.isArray(s?.offset??r.FIELD_DEFAULT_OFFSET)?s?.offset[0]:s?.offset??r.FIELD_DEFAULT_OFFSET;try{return Array.isArray(t)?t.map(i=>i==null?i:i/n-a):t/n-a}catch{return t}}#k(e,s,t,n){(Array.isArray(n)?n:[n]).forEach(i=>{Object.values(s).forEach(o=>{(e.fields[o.fieldDefinitionNumber].components??[]).forEach((m,T)=>{let A=e.fields[m];A?.num==t.num&&A?.isAccumulated&&(i=(i/t.scale-t.offset+o.offset[T])*o.scale[T])})}),this.#l.createAccumulatedField(e.num,t.num,i)})}#L(e,s,t){if([G.MesgNum.DEVELOPER_DATA_ID,G.MesgNum.FIELD_DESCRIPTION].includes(e.globalMessageNumber)||r.NumericFieldTypesSet.has(s?.type??-1))return t;try{let n=G.types[s?.type??-1];return Array.isArray(t)?t.map(a=>a==null?a:n?.[a]??a):n?.[t]??t}catch{return t}}#C(e,s){let t=e.subFields.find(n=>n.name===s);return t??{}}static#y(e,{resetPosition:s=!1,decodeMode:t=$.NORMAL}){let n=e.position;if(t!==$.NORMAL){t===$.SKIP_HEADER&&e.seek(Se);let i=t===$.SKIP_HEADER?Se:0,o=e.length-i-Ys;return{headerSize:i,dataSize:o}}let a={headerSize:e.readByte(),protocolVersion:e.readByte(),profileVersion:this.#N(e.readUInt16()),dataSize:e.readUInt32(),dataType:e.readString(4),headerCRC:null};return a.headerSize===14&&(a.headerCRC=e.readUInt16()),s&&e.seek(n),a}#d(e=""){throw Error(`FIT Runtime Error at byte ${this.#s.position} ${e}`.trimEnd())}static#N=e=>{let s=e>oa?1e3:100;return{major:Math.floor(e/s),minor:e%s}}},Nt=zs});var ua,Js,Yt,zt=V(()=>{q();oe();ua=new TextEncoder,Js=class{globalMessageNumber;localMesgNum;fieldDefinitions=[];developerFieldDefinitions=[];constructor(e,s,{fieldDescriptions:t=null}={}){try{if(s==null)throw new Error("mesg is missing or null");if(e==null)throw new Error("mesgNum is missing or null");let n=G.messages[e];if(n==null)throw new Error(`mesgNum: ${e} could not be found in the Profile`);if(this.globalMessageNumber=e,this.localMesgNum=0,Object.keys(s).forEach(a=>{if(s[a]==null)return;let i=Object.entries(n.fields).find(([,A])=>A.name===a);if(i==null)return;let o=r.FieldTypeToBaseType[i[1].baseType],u=r.BaseTypeDefinitions[o],m=i[1].components.length>1?r.FIELD_DEFAULT_SCALE:i[1].scale,T=i[1].components.length>1?r.FIELD_DEFAULT_OFFSET:i[1].offset;m=Array.isArray(m)?m[0]:m??r.FIELD_DEFAULT_SCALE,T=Array.isArray(T)?T[0]:T??r.FIELD_DEFAULT_OFFSET,this.fieldDefinitions.push({name:a,num:i[1].num,size:this.#t(s[a],u),baseType:o,baseTypeEndianFlag:u.baseTypeEndianFlag,type:i[1].type,scale:m,offset:T,components:i[1].components})}),Object.keys(s.developerFields??{})?.sort()?.forEach(a=>{let{developerDataIdMesg:i,fieldDescriptionMesg:o}=this.#e(t,a),u=r.BaseTypeDefinitions[o.fitBaseTypeId&r.BaseTypeMask];this.developerFieldDefinitions.push({key:a,baseType:o.fitBaseTypeId&r.BaseTypeMask,fieldDefinitionNumber:o.fieldDefinitionNumber,size:this.#t(s.developerFields[a],u),developerDataIndex:i.developerDataIndex,type:r.BaseTypeToFieldType[u.type],scale:1,offset:0,components:[]})}),this.fieldDefinitions.length===0)throw new Error("No valid fields were found in the message");if(this.fieldDefinitions.some(a=>a.size>r.MAX_FIELD_SIZE))throw new Error(`Some field sizes are greater than ${r.MAX_FIELD_SIZE}`,{cause:this.fieldDefinitions});this.developerFieldDefinitions.forEach(a=>{if(a.size>r.MAX_FIELD_SIZE)throw new Error(`Developer field size for key '${a.key}' is greater than ${r.MAX_FIELD_SIZE}`,{cause:a})})}catch(n){throw new Error("Could not construct MesgDefinition from Message",{cause:{cause:{message:n.message,cause:n.cause}}})}}write(e){let s=r.MESG_DEFINITION_MASK|this.localMesgNum&r.LOCAL_MESG_NUM_MASK;this.developerFieldDefinitions.length>0&&(s|=r.DEV_DATA_MASK),e.writeUInt8(s),e.writeUInt8(0),e.writeUInt8(r.ARCH_LITTLE_ENDIAN),e.writeUInt16(this.globalMessageNumber),e.writeUInt8(this.fieldDefinitions.length),this.fieldDefinitions.forEach(t=>{e.writeUInt8(t.num),e.writeUInt8(t.size),e.writeUInt8(t.baseType|t.baseTypeEndianFlag)}),this.developerFieldDefinitions.length>0&&(e.writeUInt8(this.developerFieldDefinitions.length),this.developerFieldDefinitions.forEach(t=>{e.writeUInt8(t.fieldDefinitionNumber),e.writeUInt8(t.size),e.writeUInt8(t.developerDataIndex)}))}equals(e){if(this.globalMessageNumber!==e.globalMessageNumber||this.fieldDefinitions.length!==e.fieldDefinitions.length||this.developerFieldDefinitions.length!==e.developerFieldDefinitions.length)return!1;for(let s=0;s<this.fieldDefinitions.length;s++){let t=this.fieldDefinitions[s];if(e.fieldDefinitions.find(n=>t.num===n.num&&t.size===n.size&&t.baseType===n.baseType)==null)return!1}for(let s=0;s<this.developerFieldDefinitions.length;s++){let t=this.developerFieldDefinitions[s];if(e.developerFieldDefinitions.find(n=>t.fieldDefinitionNumber===n.fieldDefinitionNumber&&t.size===n.size&&t.developerDataIndex===n.developerDataIndex)==null)return!1}return!0}#t(e,s){let t=Array.isArray(e)?e:[e];return s.type===r.BaseType.STRING?t.reduce((a,i)=>a+ua.encode(i).length+1,0):s.size*t.length}#e(e,s){try{if(e==null)throw new Error("no developer data field descriptions provided",{cause:{fieldDescriptions:e}});let{developerDataIdMesg:t,fieldDescriptionMesg:n}=e?.[s]??{};if(t==null||n==null)throw new Error(`could not find a developer field description for key ${s}`);let a=[];if(n.fitBaseTypeId==null&&a.push(`fieldDescriptionMesg fitBaseTypeId is ${n.fitBaseTypeId}`),n.fieldDefinitionNumber==null&&a.push(`fieldDescriptionMesg fieldDefinitionNumber is ${n.fieldDefinitionNumber}`),n.developerDataIndex==null&&a.push(`fieldDescriptionMesg developerDataIndex is ${n.developerDataIndex}`),t.developerDataIndex==null&&a.push(`developerDataIdMesg developerDataIndex is ${t.developerDataIndex}`),t.developerDataIndex!==n.developerDataIndex&&a.push(`developerDataIndex values do not match in fieldDescription ${t.developerDataIndex} != ${n.developerDataIndex}`),a.length>0)throw new Error("missing or invalid values in the fieldDescription,",{cause:{developerDataIdMesg:t,fieldDescriptionMesg:n,cause:a}});return{key:s,developerDataIdMesg:t,fieldDescriptionMesg:n}}catch(t){throw new Error(`invalid field description for key ${s}`,{cause:{key:s,cause:{message:t.message,cause:t.cause}}})}}},Yt=Js});var $t,fa,Jt,pa,$s,Qt,jt=V(()=>{q();$t=1048576,fa=$t*500,Jt=$t/2,pa=fa,$s=class{#t=null;#e=null;#s=0;#l=0;#n=null;#a=new TextEncoder;constructor({initialByteLength:e=Jt,maxByteLength:s=pa,resizeByBytes:t=Jt}={}){this.#t=new ArrayBuffer(e,{maxByteLength:s}),this.#e=new DataView(this.#t),this.#l=t,this.#n={[r.BaseType.ENUM]:{setValue:this.#e.setUint8.bind(this.#e),size:1,mask:255},[r.BaseType.UINT8]:{setValue:this.#e.setUint8.bind(this.#e),size:1,mask:255},[r.BaseType.UINT16]:{setValue:this.#e.setUint16.bind(this.#e),size:2,mask:65535},[r.BaseType.UINT32]:{setValue:this.#e.setUint32.bind(this.#e),size:4,mask:4294967295},[r.BaseType.UINT64]:{setValue:this.#e.setBigUint64.bind(this.#e),size:8,mask:0xFFFFFFFFFFFFFFFFn},[r.BaseType.SINT8]:{setValue:this.#e.setInt8.bind(this.#e),size:1,mask:255},[r.BaseType.SINT16]:{setValue:this.#e.setInt16.bind(this.#e),size:2,mask:65535},[r.BaseType.SINT32]:{setValue:this.#e.setInt32.bind(this.#e),size:4,mask:4294967295},[r.BaseType.SINT64]:{setValue:this.#e.setBigInt64.bind(this.#e),size:8,mask:0xFFFFFFFFFFFFFFFFn},[r.BaseType.FLOAT32]:{setValue:this.#e.setFloat32.bind(this.#e),size:4},[r.BaseType.FLOAT64]:{setValue:this.#e.setFloat64.bind(this.#e),size:8},[r.BaseType.UINT8Z]:{setValue:this.#e.setUint8.bind(this.#e),size:1,mask:255},[r.BaseType.UINT16Z]:{setValue:this.#e.setUint16.bind(this.#e),size:2,mask:65535},[r.BaseType.UINT32Z]:{setValue:this.#e.setUint32.bind(this.#e),size:4,mask:4294967295},[r.BaseType.UINT64Z]:{setValue:this.#e.setBigUint64.bind(this.#e),size:8,mask:0xFFFFFFFFFFFFFFFFn},[r.BaseType.BYTE]:{setValue:this.#e.setUint8.bind(this.#e),size:1,mask:255}}}get length(){return this.#s}get uint8Array(){return new Uint8Array(this.#t.slice(0,this.#s))}writeUInt8(e){return this.write(e,r.BaseType.UINT8)}writeUInt16(e){return this.write(e,r.BaseType.UINT16)}writeUInt32(e){return this.write(e,r.BaseType.UINT32)}writeUInt64(e){return this.write(e,r.BaseType.UINT64)}writeSInt8(e){return this.write(e,r.BaseType.SINT8)}writeSInt16(e){return this.write(e,r.BaseType.SINT16)}writeSInt32(e){return this.write(e,r.BaseType.SINT32)}writeSInt64(e){return this.write(e,r.BaseType.SINT64)}writeFloat32(e){return this.write(e,r.BaseType.FLOAT32)}writeFloat64(e){return this.write(e,r.BaseType.FLOAT64)}writeUInt8z(e){return this.write(e,r.BaseType.UINT8Z)}writeUInt16z(e){return this.write(e,r.BaseType.UINT16Z)}writeUInt32z(e){return this.write(e,r.BaseType.UINT32Z)}writeUInt64z(e){return this.write(e,r.BaseType.UINT64Z)}writeByte(e){return this.write(e,r.BaseType.BYTE)}writeString(e){e=Array.isArray(e)?e.join(r.NULL_TERMINATOR):e;let s=this.#a.encode(e);return this.#f(s.byteLength),new Uint8Array(this.#t,this.#s,s.byteLength).set(s),this.#s+=s.byteLength,this.writeUInt8(r.NULL_TERMINATOR),this}write(e,s){if(s===r.BaseType.STRING)return this.writeString(e);this.#o(s,e)}set(e,s=0){return this.#f(e.byteLength+s),new Uint8Array(this.#t).set(e,s),this.#s=Math.max(this.#s,e.byteLength+s),this}[Symbol.iterator](){let e=0,s=this.#s,t=this.#e;return{next(){return e<s?{value:t.getUint8(e++),done:!1}:{done:!0}}}}#o(e,s){(Array.isArray(s)?s:[s]).forEach(n=>this.#i(e,n))}#i(e,s){let t=this.#n[e];this.#f(t.size);let n=t.mask==null?s:s&t.mask;return t.setValue(this.#s,n,!0),this.#s+=t.size,this}#f(e=1){if(this.#t.byteLength-this.#s>=e)return;let s=this.#t.byteLength+Math.max(this.#l,e);if(s>this.#t.maxByteLength)throw new Error("Can not resize OutputStream. Set a larger initial size.");this.#t.resize(s)}},Qt=$s});var Oe,ma,Qs,Fe,Zt=V(()=>{Ee();q();zt();jt();oe();re();Oe=14,ma=12,Qs=class{constructor({fieldDescriptions:e=null}={}){this.#r={};for(let[s,{developerDataIdMesg:t,fieldDescriptionMesg:n}]of Object.entries(e??{}))this.addDeveloperField(s,t,n);this.#t()}close(){return this.#e(),this.#s(),this.#u.uint8Array}writeMesg(e){return this.onMesg(e.mesgNum,e)}onMesg(e,s){try{let t=this.#i(e,s);this.#p(t),this.#u.writeUInt8(t.localMesgNum),t.fieldDefinitions.forEach(n=>{let a=this.#l(s[n.name],n),i=r.BaseTypeDefinitions[n.baseType];this.#u.write(a,i.type)}),t.developerFieldDefinitions.forEach(n=>{let a=this.#l(s.developerFields[n.key],n),i=r.BaseTypeDefinitions[n.baseType];this.#u.write(a,i.type)})}catch(t){throw new Error("Could not write Message",{cause:{mesg:s,cause:{message:t.message,cause:t.cause}}})}return this}addDeveloperField(e,s,t){if(s.developerDataIndex==null||t.developerDataIndex==null)throw new Error("addDeveloperField() - one or more developerDataIndex values are null.",{cause:{key:e,developerDataIdMesg:s,fieldDescriptionMesg:t}});if(s.developerDataIndex!==t.developerDataIndex)throw new Error("addDeveloperField() - developerDataIndex values do not match.",{cause:{key:e,developerDataIdMesg:s,fieldDescriptionMesg:t}});return this.#r[e]={developerDataIdMesg:s,fieldDescriptionMesg:t},this}#t(){Array(Oe).fill(0).forEach(e=>{this.#u.writeUInt8(e)})}#e(){let e=new ArrayBuffer(Oe),s=new DataView(e);s.setUint8(0,Oe),s.setUint8(1,2),s.setUint16(2,G.version.major*1e3+G.version.minor,!0),s.setUint32(4,this.#u.length-Oe,!0),s.setUint8(8,46),s.setUint8(9,70),s.setUint8(10,73),s.setUint8(11,84);let t=Q.calculateCRC(new Uint8Array(e),0,ma);s.setUint16(12,t,!0),this.#u.set(new Uint8Array(e))}#s(){let e=Q.calculateCRC(this.#u.uint8Array,0,this.#u.length);this.#u.writeUInt16(e)}#l(e,s){return(Array.isArray(e)?e:[e]).map(n=>this.#n(n,s))}#n(e,s){try{if(r.isNotNumberStringDateOrBoolean(e))return r.BaseTypeDefinitions[s.baseType].invalid;if(r.NumericFieldTypes.includes(s.type)){if(!r.isNumeric(e))throw new Error;r.isString(e)&&(e=r.BigIntFieldTypes.includes(s.type)?BigInt(e):Number(e));let a=s.scale!=r.FIELD_DEFAULT_SCALE||s.offset!=r.FIELD_DEFAULT_OFFSET;if(!a&&!this.#a(e,s.type))throw new Error;if(a){let i=this.#o(e,s.scale,s.offset),o=r.FloatingPointFieldTypes.includes(s.type)||r.isBigInt(i)?i:Math.round(i);return r.BigIntFieldTypes.includes(s.type)?BigInt(o):Number(o)}return e}if(s.type==="dateTime"){if(r.isDate(e))return x.convertDateToDateTime(e);if(!r.isNumeric(e))throw new Error;return e}if(s.type==="string"){if(!r.isString(e))throw new Error;return e}if(r.isNumeric(e))return e;let t=G.types[s.type],[n]=Object.entries(t).find(([,a])=>a===e);return n}catch{throw new Error(`Could not convert "${e}" to "${s.type}"`,{cause:{value:e,fieldDefinition:s}})}}#a=(e,s)=>{let t=r.FieldTypeToJsType[s];return typeof e===t};#o(e,s,t){return r.isBigInt(e)?(e+BigInt(t))*BigInt(s):(e+t)*s}#i=(e,s)=>{let t=new Yt(e,s,{fieldDescriptions:this.#r});return t.localMesgNum=this.#f(t),t};#f=e=>{let s=this.#m.findIndex(t=>t?.equals(e)??!1);return(s!==-1?s:this.#A++)&r.LOCAL_MESG_NUM_MASK};#p=e=>{let s=e.localMesgNum;return(this.#m[s]==null||!this.#m[s].equals(e))&&this.#_(e),s};#_(e){return e.write(this.#u),this.#m[e.localMesgNum]=e,this}#m=Array(16).fill(null);#A=0;#u=new Qt;#r=null},Fe=Qs});var qt={};pt(qt,{CrcCalculator:()=>Q,Decoder:()=>Nt,Encoder:()=>Fe,Profile:()=>G,Stream:()=>Wt,Utils:()=>x});var js=V(()=>{Ee();Xt();Zt();oe();Ns();re()});var Ba={};pt(Ba,{FIT_SEMICIRCLE_INVALID_SINT32:()=>it,TRACKSWAP_HEALTH_PARSER_VERSION:()=>me,TrackSwap:()=>ce,TrackSwapError:()=>k,buildHealthDocumentFromMessages:()=>Bs,default:()=>ce,detectFITKinds:()=>Us,normalizeFitSemicircleToDegrees:()=>Y,semicirclesToDegrees:()=>at});module.exports=Rn(Ba);var k=class extends Error{constructor(e,s,t={}){super(s),this.name="TrackSwapError",this.code=e,this.format=t.format,this.cause=t.cause}};function Ie(l,e,s,t){if(l instanceof k)return l;let n=l instanceof Error?l.message:String(l);return new k(e,`${s}: ${n}`,{format:t,cause:l})}var j=class{constructor(){this.version="1.0.0";this.priority=100}async initialize(e){e.metadata.set(`plugin:${this.name}:initialized`,!0)}async destroy(e){e.metadata.delete(`plugin:${this.name}:initialized`)}async validate(e){return!0}};var me="trackswap-0.2.2-health-ir-v1",Hs=new Set(["timestampCorrelationMesgs","monitoringInfoMesgs","monitoringMesgs","monitoringHrDataMesgs","stressLevelMesgs","respirationRateMesgs","spo2DataMesgs","hrvStatusSummaryMesgs","hrvValueMesgs","sleepLevelMesgs","sleepAssessmentMesgs","napEventMesgs","hsaStepDataMesgs","hsaSpo2DataMesgs","hsaStressDataMesgs","hsaRespirationDataMesgs","hsaHeartRateDataMesgs","hsaBodyBatteryDataMesgs","hsaWristTemperatureDataMesgs","skinTempOvernightMesgs","sleepDisruptionSeverityPeriodMesgs","sleepDisruptionOvernightSeverityMesgs"]),gn=new Set([...Hs].filter(l=>l!=="timestampCorrelationMesgs")),Ln=new Set(["fileIdMesgs","fileCreatorMesgs","deviceInfoMesgs","deviceSettingsMesgs","softwareMesgs","ohrSettingsMesgs","eventMesgs","activityMesgs","sessionMesgs","lapMesgs","recordMesgs","lengthMesgs","courseMesgs","coursePointMesgs","workoutMesgs","workoutStepMesgs","trainingFileMesgs"]),Cn=[{field:"steps",metric:"steps",unit:"count",rolloverModulus:2**32,rolloverBits:32},{field:"distance",metric:"distance_m",unit:"m",rolloverModulus:2**32/100,rolloverBits:32},{field:"activeTime",metric:"active_time_s",unit:"s",rolloverModulus:2**32/1e3,rolloverBits:32},{field:"activeCalories",metric:"active_energy_kcal",unit:"kcal",rolloverModulus:2**16,rolloverBits:16},{field:"calories",metric:"total_energy_kcal",unit:"kcal",rolloverModulus:2**16,rolloverBits:16}],En=[{field:"ascent",metric:"ascent_m",unit:"m",intervalStrategy:"previous_timestamp"},{field:"descent",metric:"descent_m",unit:"m",intervalStrategy:"previous_timestamp"},{field:"moderateActivityMinutes",metric:"moderate_activity_time_s",unit:"s",multiplier:60,intervalStrategy:"value_duration"},{field:"vigorousActivityMinutes",metric:"vigorous_activity_time_s",unit:"s",multiplier:60,intervalStrategy:"value_duration"}],ws=631065600,ye=2**16,rt=18*60*60,Sn=new Set([65519,65518]),On=5;function U(l){return l&&typeof l=="object"?l:{}}function F(l){if(typeof l=="number")return Number.isFinite(l)?l:void 0;if(typeof l!="string"||l.trim()==="")return;let e=Number(l);return Number.isFinite(e)?e:void 0}function B(l){if(l instanceof Date&&Number.isFinite(l.valueOf()))return l;if(typeof l!="string"&&typeof l!="number"||typeof l=="string"&&l.trim()==="")return;let e=new Date(l);return Number.isFinite(e.valueOf())?e:void 0}function Fs(l){return Tt(l)?.toISOString().replace(/Z$/,"")}function Tt(l){if(l instanceof Date&&Number.isFinite(l.valueOf()))return l;if(typeof l=="string"&&!/^\s*[-+]?\d+(?:\.\d+)?\s*$/.test(l))return B(l);let e=F(l);if(!(e===void 0||e<0))return new Date((e+ws)*1e3)}function H(l,e,s){return{messageName:l,messageIndex:e,fieldName:s}}function Ds(l,e){return Object.fromEntries(e.map(s=>[s,l[s]]).filter(([,s])=>typeof s=="number"?Number.isFinite(s):["string","boolean"].includes(typeof s)))}function _t(l){return Object.fromEntries(Object.entries(l).filter(([,e])=>Array.isArray(e)&&e.length>0).map(([e,s])=>[e,s?.length??0]))}function Us(l){let e=[];return((l.activityMesgs?.length??0)>0||(l.sessionMesgs?.length??0)>0)&&e.push("activity"),[...gn].some(s=>(l[s]?.length??0)>0)&&e.push("health"),((l.workoutMesgs?.length??0)>0||(l.workoutStepMesgs?.length??0)>0)&&e.push("workout"),(l.courseMesgs?.length??0)>0&&e.push("course"),e.length===0&&((l.deviceInfoMesgs?.length??0)>0||(l.fileIdMesgs?.length??0)>0)&&e.push("device"),e.length>0?e:["unknown"]}function Fn(l){let e=String(l??"").trim().toLowerCase().replace(/[_\s-]+/g,"");return e.includes("awake")?"awake":e.includes("deep")?"deep":e.includes("light")?"light":e.includes("rem")?"rem":e.includes("unmeasurable")?"unmeasurable":e.includes("sleep")?"sleeping":`vendor:${e||"unknown"}`}function Dn(l,e=0){return new Date(l.valueOf()+e*1e3).toISOString().slice(0,10)}function dt(l,e,s=0){return Dn(new Date(Math.max(l.valueOf(),e.valueOf()-1)),s)}function vs(l){let e=F(l);return e===void 0?void 0:e*60}function Hn(l,e){let s=[],t=(i,o,u,m,T)=>{let A=B(u.timestamp),R=Tt(u.localTimestamp);if(!A||!R)return;let I=Math.round((R.valueOf()-A.valueOf())/1e3),h=H(i,o,"localTimestamp");if(Math.abs(I)>rt){e(h);return}s.push({at:A,offsetSeconds:I,priority:m,strategy:T,source:h})};(l.timestampCorrelationMesgs??[]).forEach((i,o)=>{t("timestampCorrelationMesgs",o,U(i),3,"timestamp_correlation")});for(let i of["monitoringInfoMesgs","monitoringMesgs","skinTempOvernightMesgs"])(l[i]??[]).forEach((o,u)=>{t(i,u,U(o),1,"inferred")});(l.napEventMesgs??[]).forEach((i,o)=>{let u=U(i);for(let[m,T]of[["startTime","startTimezoneOffset"],["endTime","endTimezoneOffset"]]){let A=B(u[m]),R=vs(u[T]);if(!A||R===void 0)continue;let I=H("napEventMesgs",o,T);if(Math.abs(R)>rt){e(I);continue}s.push({at:A,offsetSeconds:R,priority:2,strategy:"explicit_offset",source:I})}}),s.sort((i,o)=>i.at.valueOf()-o.at.valueOf()||o.priority-i.priority);let n=s.filter((i,o)=>o===0||i.at.valueOf()!==s[o-1].at.valueOf()).map(({at:i,offsetSeconds:o})=>({at:i,offsetSeconds:o})),a=s.find(({strategy:i})=>i==="timestamp_correlation")?.strategy??s.find(({strategy:i})=>i==="explicit_offset")?.strategy??s.find(({strategy:i})=>i==="inferred")?.strategy??"unknown";return{offsets:n,strategy:a}}function wn(l,e){let s=F(l);if(!e||!Number.isInteger(s)||s<0||s>=ye)return;let t=Math.floor(e.valueOf()/1e3)-ws,n=Math.floor(t/ye)*ye+s;return n<t&&(n+=ye),new Date((n+ws)*1e3)}function vn(l){let e,s,t,n,a,i;return(l.monitoringMesgs??[]).map(o=>{let u=U(o),T=B(u.timestamp)??wn(u.timestamp16,e);T&&(e=T),T&&(!s||T>s)&&(t=s,s=T);let A=t;u.activityType!==void 0&&(n=u.activityType),u.deviceIndex!==void 0&&(i=u.deviceIndex);let R=u.intensity??u.activityLevel;return R!==void 0&&(a=R),{message:u,timestamp:T,intervalStartTime:A,deviceIndex:i,activityType:n,intensity:a}})}function Z(l,e){let s;for(let t of l){if(t.at>e)break;s=t.offsetSeconds}return s??l[0]?.offsetSeconds}function he(l,e){if(e!==void 0)return new Date(l.valueOf()+e*1e3).toISOString().replace(/Z$/,"")}function Un(l,e,s,t){return e>=l?{value:e-l}:l>=s*.75&&l<s&&e>=0&&e<=s*.25?{value:s-l+e,rolloverBits:t}:null}function At(l){return l>=1&&l<=100?"valid":l===-1?"off_wrist":l===-2?"motion":l===-3?"not_enough_data":l===-4?"recovering":l===-5?"unidentified":l===-16?"gap":l===0||l>100?"invalid":"unknown"}function Bn(l){return l>=0&&l<=100?"valid":At(l)}function Mn(l){return l===255?"invalid":l===254?"motion":l===253?"off_wrist":l===252?"not_enough_data":l===2.4?"gap":l>=1&&l<=100?"valid":"invalid"}function ne(l,e,s){return new Date(l.valueOf()+e*s*1e3)}function Gn(l){let e=new Map,s={};l.warnings.forEach(t=>{s[t.code]=(s[t.code]??0)+1;let n=e.get(t.code)??[];n.length<On&&(n.push(t),e.set(t.code,n))}),l.warningCounts=s,l.warnings=[...e.values()].flat()}function Pn(l){return l===-1?"off_wrist":l===-2?"motion":l===-3?"invalid":l>0&&l<=100?"valid":"invalid"}function Bs(l,e={},s={}){let t=_t(l),n=Object.fromEntries(Object.entries(t).filter(([c])=>Hs.has(c))),a=Object.fromEntries(Object.entries(t).filter(([c])=>!Hs.has(c)&&!Ln.has(c))),i={sdkProfileVersion:s.sdkProfileVersion,parserVersion:me,messageCounts:t,recognizedMessageCounts:n,unknownMessageCounts:a,invalidValueCounts:{},warningCounts:{},warnings:[]};e.includeUnknownMessages&&(i.unknownMessages=Object.fromEntries(Object.keys(a).map(c=>[c,l[c]??[]])));let o=[],u=[],m=[],T=[],A=[],R=Hn(l,c=>{i.warnings.push({code:"GARMIN_HEALTH_INVALID_TIMEZONE_OFFSET",message:"Ignored an implausible FIT timezone offset",source:c})}),{offsets:I}=R,h=c=>{let y=c.offsetSeconds??Z(I,c.timestamp);if(c.offsetSeconds=y,c.localTimestamp??=he(c.timestamp,y),o.push(c),A.push(c.timestamp),c.status!=="valid"){let _=`${c.metric}:${c.status}`;i.invalidValueCounts[_]=(i.invalidValueCounts[_]??0)+1}},M=new Map;vn(l).forEach(({message:c,timestamp:y,intervalStartTime:_,deviceIndex:b,activityType:d,intensity:g},E)=>{if(!y){i.warnings.push({code:"GARMIN_HEALTH_NO_TIMESTAMP",message:"Monitoring message has no valid timestamp",source:H("monitoringMesgs",E)});return}A.push(y);let S=F(c.heartRate);if(S!==void 0){let L=S>0?"valid":"gap";h({metric:"heart_rate_bpm",timestamp:y,localTimestamp:Fs(c.localTimestamp),value:L==="valid"?S:void 0,unit:"bpm",status:L,aggregation:"instant",source:H("monitoringMesgs",E,"heartRate"),attributes:L==="valid"?void 0:{rawValue:S}})}let O=F(c.temperature);O!==void 0&&h({metric:"temperature_c",timestamp:y,localTimestamp:Fs(c.localTimestamp),value:O,unit:"degC",status:"valid",aggregation:"mean",source:H("monitoringMesgs",E,"temperature")});for(let L of Cn){let w=F(c[L.field]);if(w===void 0)continue;let W=[b??"device",d??"activity",L.field].join(":"),v=M.get(W);if(v&&y>v.timestamp){let K=Un(v.value,w,L.rolloverModulus,L.rolloverBits);if(K){K.rolloverBits&&i.warnings.push({code:"GARMIN_HEALTH_ACCUMULATOR_ROLLOVER",message:`${L.field} accumulator rolled over at ${K.rolloverBits} bits`,source:H("monitoringMesgs",E,L.field)});let pe=Z(I,v.timestamp);u.push({metric:L.metric,startTime:v.timestamp,endTime:y,localStartTime:he(v.timestamp,pe),offsetSeconds:pe,value:K.value,unit:L.unit,status:"valid",activityType:d===void 0?void 0:String(d),intensity:g===void 0?void 0:String(g),source:H("monitoringMesgs",E,L.field),attributes:e.health?.retainCumulativeValues===!1?void 0:{rawCumulativeValue:w}})}else i.warnings.push({code:"GARMIN_HEALTH_ACCUMULATOR_RESET",message:`${L.field} accumulator decreased; a new accumulation window was started`,source:H("monitoringMesgs",E,L.field)})}M.set(W,{timestamp:y,value:w})}for(let L of En){let w=F(c[L.field]);if(w===void 0||w<0)continue;let W=w*(L.multiplier??1),v=L.intervalStrategy==="value_duration"?new Date(y.valueOf()-W*1e3):_;if(!v||v>=y)continue;let K=Z(I,v);A.push(v),u.push({metric:L.metric,startTime:v,endTime:y,localStartTime:he(v,K),offsetSeconds:K,value:W,unit:L.unit,status:"valid",activityType:d===void 0?void 0:String(d),intensity:g===void 0?void 0:String(g),source:H("monitoringMesgs",E,L.field)})}}),(l.monitoringHrDataMesgs??[]).forEach((c,y)=>{let _=U(c),b=B(_.timestamp);if(!b)return;[{field:"currentDayRestingHeartRate",metric:"resting_heart_rate_bpm"},{field:"restingHeartRate",metric:"resting_heart_rate_7_day_bpm"}].forEach(({field:g,metric:E})=>{let S=F(_[g]);if(S===void 0)return;let O=S>0?"valid":"invalid";h({metric:E,timestamp:b,value:O==="valid"?S:void 0,unit:"bpm",status:O,aggregation:"latest",source:H("monitoringHrDataMesgs",y,g),attributes:O==="valid"?void 0:{rawValue:S}})})}),(l.stressLevelMesgs??[]).forEach((c,y)=>{let _=U(c),b=B(_.stressLevelTime),d=F(_.stressLevelValue);if(!b||d===void 0)return;let g=At(d);h({metric:"stress_level",timestamp:b,value:g==="valid"?d:void 0,unit:"score",status:g,aggregation:"instant",source:H("stressLevelMesgs",y,"stressLevelValue"),attributes:g==="valid"?void 0:{rawValue:d}})}),(l.respirationRateMesgs??[]).forEach((c,y)=>{let _=U(c),b=B(_.timestamp),d=F(_.respirationRate);if(!b||d===void 0)return;let g=Pn(d);h({metric:"respiration_rate_bpm",timestamp:b,value:g==="valid"?d:void 0,unit:"breaths/min",status:g,aggregation:"instant",source:H("respirationRateMesgs",y,"respirationRate"),attributes:g==="valid"?void 0:{rawValue:d}})}),(l.spo2DataMesgs??[]).forEach((c,y)=>{let _=U(c),b=B(_.timestamp),d=F(_.readingSpo2);if(!b||d===void 0)return;let g=F(_.readingConfidence),E=d<=0||d>100?"invalid":g!==void 0&&g<=0?"low_confidence":"valid";h({metric:"spo2_percent",timestamp:b,value:E==="invalid"?void 0:d,unit:"percent",status:E,quality:g,aggregation:"instant",source:H("spo2DataMesgs",y,"readingSpo2"),attributes:{measurementMode:_.mode===void 0?null:String(_.mode),...E==="invalid"?{rawValue:d}:{}}})}),(l.hrvValueMesgs??[]).forEach((c,y)=>{let _=U(c),b=B(_.timestamp),d=F(_.value);if(!b||d===void 0)return;let g=d>0?"valid":"invalid";h({metric:"hrv_rmssd_ms",timestamp:b,value:g==="valid"?d:void 0,unit:"ms",status:g,aggregation:"mean",source:H("hrvValueMesgs",y,"value"),attributes:{windowSeconds:300,...g==="valid"?{}:{rawValue:d}}})}),(l.hrvStatusSummaryMesgs??[]).forEach((c,y)=>{let _=U(c),b=B(_.timestamp);m.push({summaryType:"hrv_status",externalId:`fit:hrv-status:${b?.toISOString()??y}`,startTime:b,metrics:Ds(_,["weeklyAverage","lastNightAverage","lastNight5MinHigh","baselineLowUpper","baselineBalancedLower","baselineBalancedUpper","status"]),source:H("hrvStatusSummaryMesgs",y)}),b&&A.push(b)}),(l.monitoringInfoMesgs??[]).forEach((c,y)=>{let _=U(c),b=B(_.timestamp);m.push({summaryType:"device",externalId:`fit:monitoring-info:${b?.toISOString()??y}`,startTime:b,offsetSeconds:b?Z(I,b):void 0,metrics:Ds(_,["restingMetabolicRate","activityType","cyclesToDistance","cyclesToCalories"]),source:H("monitoringInfoMesgs",y)}),b&&A.push(b)}),(l.skinTempOvernightMesgs??[]).forEach((c,y)=>{let _=U(c),b=B(_.timestamp);if(!b)return;[{field:"averageDeviation",metric:"skin_temperature_deviation_c"},{field:"average7DayDeviation",metric:"skin_temperature_7_day_deviation_c"},{field:"nightlyValue",metric:"skin_temperature_nightly_c"}].forEach(({field:g,metric:E})=>{let S=F(_[g]);S!==void 0&&h({metric:E,timestamp:b,localTimestamp:Fs(_.localTimestamp),value:S,unit:"degC",status:"valid",aggregation:"mean",source:H("skinTempOvernightMesgs",y,g)})})});let D=(l.sleepLevelMesgs??[]).map((c,y)=>({message:U(c),messageIndex:y,timestamp:B(U(c).timestamp)})).filter(c=>c.timestamp!==void 0).sort((c,y)=>c.timestamp.valueOf()-y.timestamp.valueOf());if(D.length>=2){let c=U(l.sleepAssessmentMesgs?.[0]),y=[];for(let g=0;g<D.length-1;g+=1){let E=D[g],S=D[g+1];if(S.timestamp<=E.timestamp)continue;let O={segmentType:Fn(E.message.sleepLevel),startTime:E.timestamp,endTime:S.timestamp,status:"valid",source:H("sleepLevelMesgs",E.messageIndex,"sleepLevel")},L=y.at(-1);L&&L.segmentType===O.segmentType&&L.endTime.valueOf()===O.startTime.valueOf()?L.endTime=O.endTime:y.push(O)}let _=D[0].timestamp,b=D.at(-1).timestamp;A.push(_,b);let d=Z(I,b);T.push({sessionType:"sleep",externalId:`fit:sleep:${_.toISOString()}:${b.toISOString()}`,startTime:_,endTime:b,startOffsetSeconds:Z(I,_),endOffsetSeconds:d,calendarDate:dt(_,b,d),segments:y,metrics:Ds(c,["combinedAwakeScore","awakeTimeScore","awakeningsCountScore","deepSleepScore","sleepDurationScore","lightSleepScore","overallSleepScore","sleepQualityScore","sleepRecoveryScore","remSleepScore","sleepRestlessnessScore","awakeningsCount","interruptionsScore","averageStressDuringSleep"]),source:H("sleepLevelMesgs",D[0].messageIndex),attributes:{calendarDateStrategy:d===void 0?"sleep_end_utc_fallback_date":"sleep_end_local_date"}})}else D.length>0&&i.warnings.push({code:"GARMIN_HEALTH_SLEEP_BOUNDARY_INCOMPLETE",message:"Sleep level data does not contain enough boundaries",source:H("sleepLevelMesgs",D[0].messageIndex)});for(let c of["sleepDisruptionSeverityPeriodMesgs","sleepDisruptionOvernightSeverityMesgs"])(l[c]??[]).forEach((y,_)=>{let b=U(y),d=B(b.timestamp);!d||b.severity===void 0||(A.push(d),m.push({summaryType:"sleep",externalId:`fit:${c}:${b.messageIndex??_}:${d.toISOString()}`,startTime:d,offsetSeconds:Z(I,d),metrics:{severity:String(b.severity)},source:H(c,_,"severity")}))});return(l.napEventMesgs??[]).forEach((c,y)=>{let _=U(c),b=B(_.startTime),d=B(_.endTime),g=_.isDeleted===!0;if(!b||!d||d<b||!g&&d.valueOf()===b.valueOf())return;let E=vs(_.startTimezoneOffset),S=vs(_.endTimezoneOffset);A.push(b,d),T.push({sessionType:"nap",externalId:`fit:nap:${_.messageIndex??y}:${b.toISOString()}`,startTime:b,endTime:d,startOffsetSeconds:E,endOffsetSeconds:S,calendarDate:dt(b,d,S??E),deleted:g,segments:[],metrics:{},source:H("napEventMesgs",y),attributes:{source:_.source===void 0?null:String(_.source),feedback:_.feedback===void 0?null:String(_.feedback),updateTimestamp:B(_.updateTimestamp)?.toISOString()??null}})}),(l.hsaStepDataMesgs??[]).forEach((c,y)=>{let _=U(c),b=B(_.timestamp),d=F(_.processingInterval),g=Array.isArray(_.steps)?_.steps:[];!b||!d||d<=0||Sn.has(d)||g.forEach((E,S)=>{let O=F(E);if(O===void 0||O<0)return;let L=ne(b,d,S),w=new Date(L.valueOf()+d*1e3),W=Z(I,L);A.push(L,w),u.push({metric:"steps",startTime:L,endTime:w,localStartTime:he(L,W),offsetSeconds:W,value:O,unit:"count",status:"valid",source:H("hsaStepDataMesgs",y,"steps"),attributes:{sequenceIndex:S,intervalSeconds:d}})})}),(l.hsaSpo2DataMesgs??[]).forEach((c,y)=>{let _=U(c),b=B(_.timestamp),d=F(_.processingInterval),g=Array.isArray(_.readingSpo2)?_.readingSpo2:[],E=Array.isArray(_.confidence)?_.confidence:[];!b||!d||d<=0||g.forEach((S,O)=>{let L=F(S);if(L===void 0)return;let w=F(E[O]),W=L<70||L>100||L===240?"invalid":w!==void 0&&w<=0?"low_confidence":"valid";h({metric:"spo2_percent",timestamp:ne(b,d,O),value:W==="invalid"?void 0:L,unit:"percent",status:W,quality:w,aggregation:"instant",source:H("hsaSpo2DataMesgs",y,"readingSpo2"),attributes:{sequenceIndex:O,intervalSeconds:d,...W==="invalid"?{rawValue:L}:{}}})})}),(l.hsaStressDataMesgs??[]).forEach((c,y)=>{let _=U(c),b=B(_.timestamp),d=F(_.processingInterval),g=Array.isArray(_.stressLevel)?_.stressLevel:[];!b||!d||d<=0||g.forEach((E,S)=>{let O=F(E);if(O===void 0)return;let L=Bn(O);h({metric:"stress_level",timestamp:ne(b,d,S),value:L==="valid"?O:void 0,unit:"score",status:L,aggregation:"instant",source:H("hsaStressDataMesgs",y,"stressLevel"),attributes:{sequenceIndex:S,intervalSeconds:d,...L==="valid"?{}:{rawValue:O}}})})}),(l.hsaRespirationDataMesgs??[]).forEach((c,y)=>{let _=U(c),b=B(_.timestamp),d=F(_.processingInterval),g=Array.isArray(_.respirationRate)?_.respirationRate:[];!b||!d||d<=0||g.forEach((E,S)=>{let O=F(E);if(O===void 0)return;let L=Mn(O);h({metric:"respiration_rate_bpm",timestamp:ne(b,d,S),value:L==="valid"?O:void 0,unit:"breaths/min",status:L,aggregation:"instant",source:H("hsaRespirationDataMesgs",y,"respirationRate"),attributes:{sequenceIndex:S,intervalSeconds:d,...L==="valid"?{}:{rawValue:O}}})})}),(l.hsaHeartRateDataMesgs??[]).forEach((c,y)=>{let _=U(c),b=B(_.timestamp),d=F(_.processingInterval),g=Array.isArray(_.heartRate)?_.heartRate:[],E=F(_.status);!b||!d||d<=0||g.forEach((S,O)=>{let L=F(S);if(L===void 0)return;let w=L===0?"gap":E===1?"valid":E===0?"low_confidence":"unknown";h({metric:"heart_rate_bpm",timestamp:ne(b,d,O),value:w==="gap"?void 0:L,unit:"bpm",status:w,aggregation:"instant",source:H("hsaHeartRateDataMesgs",y,"heartRate"),attributes:{sequenceIndex:O,intervalSeconds:d,measurementStatus:E??null,...w==="gap"?{rawValue:L}:{}}})})}),(l.hsaWristTemperatureDataMesgs??[]).forEach((c,y)=>{let _=U(c),b=B(_.timestamp),d=F(_.processingInterval),g=Array.isArray(_.value)?_.value:[];!b||!d||d<=0||g.forEach((E,S)=>{let O=F(E);O!==void 0&&h({metric:"wrist_temperature_c",timestamp:ne(b,d,S),value:O,unit:"degC",status:"valid",aggregation:"instant",source:H("hsaWristTemperatureDataMesgs",y,"value"),attributes:{sequenceIndex:S,intervalSeconds:d}})})}),(l.hsaBodyBatteryDataMesgs??[]).forEach((c,y)=>{let _=U(c),b=B(_.timestamp),d=F(_.processingInterval)??0;if(!b||d<=0)return;[{field:"level",metric:"body_battery_level",unit:"score"},{field:"charged",metric:"body_battery_charged",unit:"score"},{field:"uncharged",metric:"body_battery_drained",unit:"score"}].forEach(({field:E,metric:S,unit:O})=>{(Array.isArray(_[E])?_[E]:[]).forEach((w,W)=>{let v=F(w);if(v===void 0)return;let K=E==="level"&&v===-16?"gap":E==="level"&&(v<0||v>100)?"invalid":"valid";h({metric:S,timestamp:ne(b,d,W),value:K==="valid"?v:void 0,unit:O,status:K,aggregation:"instant",source:H("hsaBodyBatteryDataMesgs",y,E),attributes:{sequenceIndex:W,intervalSeconds:d,...K==="valid"?{}:{rawValue:v}}})})})}),o.sort((c,y)=>c.timestamp.valueOf()-y.timestamp.valueOf()),u.sort((c,y)=>c.startTime.valueOf()-y.startTime.valueOf()),T.sort((c,y)=>c.startTime.valueOf()-y.startTime.valueOf()),A.sort((c,y)=>c.valueOf()-y.valueOf()),Gn(i),{schemaVersion:"1",observedStart:A[0],observedEnd:A.at(-1),timezone:{strategy:R.strategy,offsets:I},points:o,intervals:e.health?.reconstructIntervals===!1?[]:u,summaries:m,sessions:T,diagnostics:i}}var Re=class extends j{constructor(){super(...arguments);this.name="HealthStructurePlugin";this.priority=20}structureData(s,t){let n=t.userData?.fitDocumentOptions??{},a=Us(s);return{healthDocument:a.includes("health")?Bs(s,n,{sdkProfileVersion:t.metadata.get("fit-sdk-profile-version")}):void 0,fitDocumentMetadata:{detectedKinds:a,messageCounts:_t(s)}}}};var ge=(p=>(p[p.GENERIC=0]="GENERIC",p[p.RUNNING=1]="RUNNING",p[p.CYCLING=2]="CYCLING",p[p.TRANSITION=3]="TRANSITION",p[p.FITNESS_EQUIPMENT=4]="FITNESS_EQUIPMENT",p[p.SWIMMING=5]="SWIMMING",p[p.BASKETBALL=6]="BASKETBALL",p[p.SOCCER=7]="SOCCER",p[p.TENNIS=8]="TENNIS",p[p.AMERICAN_FOOTBALL=9]="AMERICAN_FOOTBALL",p[p.TRAINING=10]="TRAINING",p[p.WALKING=11]="WALKING",p[p.CROSS_COUNTRY_SKIING=12]="CROSS_COUNTRY_SKIING",p[p.ALPINE_SKIING=13]="ALPINE_SKIING",p[p.SNOWBOARDING=14]="SNOWBOARDING",p[p.ROWING=15]="ROWING",p[p.MOUNTAINEERING=16]="MOUNTAINEERING",p[p.HIKING=17]="HIKING",p[p.MULTISPORT=18]="MULTISPORT",p[p.PADDLING=19]="PADDLING",p[p.FLYING=20]="FLYING",p[p.E_BIKING=21]="E_BIKING",p[p.MOTORCYCLING=22]="MOTORCYCLING",p[p.BOATING=23]="BOATING",p[p.DRIVING=24]="DRIVING",p[p.GOLF=25]="GOLF",p[p.HANG_GLIDING=26]="HANG_GLIDING",p[p.HORSEBACK_RIDING=27]="HORSEBACK_RIDING",p[p.HUNTING=28]="HUNTING",p[p.FISHING=29]="FISHING",p[p.INLINE_SKATING=30]="INLINE_SKATING",p[p.ROCK_CLIMBING=31]="ROCK_CLIMBING",p[p.SAILING=32]="SAILING",p[p.ICE_SKATING=33]="ICE_SKATING",p[p.SKY_DIVING=34]="SKY_DIVING",p[p.SNOWSHOEING=35]="SNOWSHOEING",p[p.SNOWMOBILING=36]="SNOWMOBILING",p[p.STAND_UP_PADDLEBOARDING=37]="STAND_UP_PADDLEBOARDING",p[p.SURFING=38]="SURFING",p[p.WAKEBOARDING=39]="WAKEBOARDING",p[p.WATER_SKIING=40]="WATER_SKIING",p[p.KAYAKING=41]="KAYAKING",p[p.RAFTING=42]="RAFTING",p[p.WINDSURFING=43]="WINDSURFING",p[p.KITESURFING=44]="KITESURFING",p[p.TACTICAL=45]="TACTICAL",p[p.JUMPMASTER=46]="JUMPMASTER",p[p.BOXING=47]="BOXING",p[p.FLOOR_CLIMBING=48]="FLOOR_CLIMBING",p[p.BASEBALL=49]="BASEBALL",p[p.DIVING=53]="DIVING",p[p.HIIT=62]="HIIT",p[p.RACKET=64]="RACKET",p[p.WHEELCHAIR_PUSH_WALK=65]="WHEELCHAIR_PUSH_WALK",p[p.WHEELCHAIR_PUSH_RUN=66]="WHEELCHAIR_PUSH_RUN",p[p.MEDITATION=67]="MEDITATION",p[p.DISC_GOLF=69]="DISC_GOLF",p[p.CRICKET=71]="CRICKET",p[p.RUGBY=72]="RUGBY",p[p.HOCKEY=73]="HOCKEY",p[p.LACROSSE=74]="LACROSSE",p[p.VOLLEYBALL=75]="VOLLEYBALL",p[p.WATER_TUBING=76]="WATER_TUBING",p[p.WAKESURFING=77]="WAKESURFING",p[p.MIXED_MARTIAL_ARTS=80]="MIXED_MARTIAL_ARTS",p[p.SNORKELING=82]="SNORKELING",p[p.DANCE=83]="DANCE",p[p.JUMP_ROPE=84]="JUMP_ROPE",p[p.ALL=254]="ALL",p))(ge||{});var Le=(f=>(f[f.GENERIC=0]="GENERIC",f[f.TREADMILL=1]="TREADMILL",f[f.STREET=2]="STREET",f[f.TRAIL=3]="TRAIL",f[f.TRACK=4]="TRACK",f[f.SPIN=5]="SPIN",f[f.INDOOR_CYCLING=6]="INDOOR_CYCLING",f[f.ROAD=7]="ROAD",f[f.MOUNTAIN=8]="MOUNTAIN",f[f.DOWNHILL=9]="DOWNHILL",f[f.RECUMBENT=10]="RECUMBENT",f[f.CYCLOCROSS=11]="CYCLOCROSS",f[f.HAND_CYCLING=12]="HAND_CYCLING",f[f.TRACK_CYCLING=13]="TRACK_CYCLING",f[f.INDOOR_ROWING=14]="INDOOR_ROWING",f[f.ELLIPTICAL=15]="ELLIPTICAL",f[f.STAIR_CLIMBING=16]="STAIR_CLIMBING",f[f.LAP_SWIMMING=17]="LAP_SWIMMING",f[f.OPEN_WATER=18]="OPEN_WATER",f[f.FLEXIBILITY_TRAINING=19]="FLEXIBILITY_TRAINING",f[f.STRENGTH_TRAINING=20]="STRENGTH_TRAINING",f[f.WARM_UP=21]="WARM_UP",f[f.MATCH=22]="MATCH",f[f.EXERCISE=23]="EXERCISE",f[f.CHALLENGE=24]="CHALLENGE",f[f.INDOOR_SKIING=25]="INDOOR_SKIING",f[f.CARDIO_TRAINING=26]="CARDIO_TRAINING",f[f.INDOOR_WALKING=27]="INDOOR_WALKING",f[f.E_BIKE_FITNESS=28]="E_BIKE_FITNESS",f[f.BMX=29]="BMX",f[f.CASUAL_WALKING=30]="CASUAL_WALKING",f[f.SPEED_WALKING=31]="SPEED_WALKING",f[f.BIKE_TO_RUN_TRANSITION=32]="BIKE_TO_RUN_TRANSITION",f[f.RUN_TO_BIKE_TRANSITION=33]="RUN_TO_BIKE_TRANSITION",f[f.SWIM_TO_BIKE_TRANSITION=34]="SWIM_TO_BIKE_TRANSITION",f[f.ATV=35]="ATV",f[f.MOTOCROSS=36]="MOTOCROSS",f[f.BACKCOUNTRY=37]="BACKCOUNTRY",f[f.RESORT=38]="RESORT",f[f.RC_DRONE=39]="RC_DRONE",f[f.WINGSUIT=40]="WINGSUIT",f[f.WHITEWATER=41]="WHITEWATER",f[f.SKATE_SKIING=42]="SKATE_SKIING",f[f.YOGA=43]="YOGA",f[f.PILATES=44]="PILATES",f[f.INDOOR_RUNNING=45]="INDOOR_RUNNING",f[f.GRAVEL_CYCLING=46]="GRAVEL_CYCLING",f[f.E_BIKE_MOUNTAIN=47]="E_BIKE_MOUNTAIN",f[f.COMMUTING=48]="COMMUTING",f[f.MIXED_SURFACE=49]="MIXED_SURFACE",f[f.NAVIGATE=50]="NAVIGATE",f[f.TRACK_ME=51]="TRACK_ME",f[f.MAP=52]="MAP",f[f.SINGLE_GAS_DIVING=53]="SINGLE_GAS_DIVING",f[f.MULTI_GAS_DIVING=54]="MULTI_GAS_DIVING",f[f.GAUGE_DIVING=55]="GAUGE_DIVING",f[f.APNEA_DIVING=56]="APNEA_DIVING",f[f.APNEA_HUNTING=57]="APNEA_HUNTING",f[f.VIRTUAL_ACTIVITY=58]="VIRTUAL_ACTIVITY",f[f.OBSTACLE=59]="OBSTACLE",f[f.BREATHING=62]="BREATHING",f[f.SAIL_RACE=65]="SAIL_RACE",f[f.ULTRA=67]="ULTRA",f[f.INDOOR_CLIMBING=68]="INDOOR_CLIMBING",f[f.BOULDERING=69]="BOULDERING",f[f.HIIT=70]="HIIT",f[f.AMRAP=73]="AMRAP",f[f.EMOM=74]="EMOM",f[f.TABATA=75]="TABATA",f[f.PICKLEBALL=84]="PICKLEBALL",f[f.PADEL=85]="PADEL",f[f.INDOOR_WHEELCHAIR_WALK=86]="INDOOR_WHEELCHAIR_WALK",f[f.INDOOR_WHEELCHAIR_RUN=87]="INDOOR_WHEELCHAIR_RUN",f[f.INDOOR_HAND_CYCLING=88]="INDOOR_HAND_CYCLING",f[f.SQUASH=94]="SQUASH",f[f.BADMINTON=95]="BADMINTON",f[f.RACQUETBALL=96]="RACQUETBALL",f[f.TABLE_TENNIS=97]="TABLE_TENNIS",f[f.FLY_CANOPY=110]="FLY_CANOPY",f[f.FLY_PARAGLIDE=111]="FLY_PARAGLIDE",f[f.FLY_PARAMOTOR=112]="FLY_PARAMOTOR",f[f.FLY_PRESSURIZED=113]="FLY_PRESSURIZED",f[f.FLY_NAVIGATE=114]="FLY_NAVIGATE",f[f.FLY_TIMER=115]="FLY_TIMER",f[f.FLY_ALTIMETER=116]="FLY_ALTIMETER",f[f.FLY_WX=117]="FLY_WX",f[f.FLY_VFR=118]="FLY_VFR",f[f.FLY_IFR=119]="FLY_IFR",f[f.ALL=254]="ALL",f))(Le||{});function ct(l,e){if(!e)return;let s=e.replace(/([a-z0-9])([A-Z])/g,"$1_$2").replace(/[^a-zA-Z0-9]+/g,"_").replace(/^_+|_+$/g,"").toUpperCase();for(let t of Object.keys(l)){if(!Number.isNaN(Number(t))||t.toUpperCase()!==s)continue;let n=l[t];return typeof n=="number"?n:void 0}}function Wn(l){let e=l.metadata?.fileName?.trim();if(e)return e;let s=l.metadata?.originType;return s?`${s.toLowerCase()}-course`:"course"}function bt(l){let e=l.activities?.[0],t=[...(l.activities?.flatMap(n=>n.laps??[])??[]).flatMap(n=>n.records??[]),...l.routes?.flatMap(n=>n.records??[])??[],...l.points??[]].filter(n=>n.timestamp!=null&&n.positionLat!=null&&n.positionLong!=null).sort((n,a)=>new Date(n.timestamp).getTime()-new Date(a.timestamp).getTime()).map(n=>({timestamp:n.timestamp,latitude:n.positionLat,longitude:n.positionLong,distance:n.distance,altitude:n.enhancedAltitude??n.altitude,speed:n.enhancedSpeed??n.speed}));if(t.length===0)throw new Error("Cannot build a FIT course without timestamped coordinates");return{name:Wn(l),sport:ct(ge,e?.sport)??2,subSport:ct(Le,e?.subSport)??0,records:t,timeCreated:t[0].timestamp}}function It(){return process.env.TRACKSWAP_FIT_DEBUG==="1"||process.env.TRACKSWAP_DEBUG==="1"}function P(...l){It()}function le(...l){It()}var De=class{constructor(){this.stage="parse"}async process(e){let s=Date.now();if(!e.rawData)throw new Error("FIT data cannot be empty");try{let t=await this.parseWithFitSDK(e.rawData,e);return e.rawMessages=t,P("\u{1F389} FIT parsing raw messages:",t),e.performance.parseTime=Date.now()-s,P(`\u{1F527} FIT parsing completed, contains message types: ${Object.keys(t).join(", ")}`),e}catch(t){throw new Error(`FIT parsing failed: ${t.message}`)}}async parseWithFitSDK(e,s){let{Decoder:t,Profile:n,Stream:a}=await Promise.resolve().then(()=>(js(),qt)),i=[n.version?.major,n.version?.minor,n.version?.patch].filter(A=>A!==void 0);i.length>0&&s.metadata.set("fit-sdk-profile-version",i.join("."));let o=a.fromBuffer(e);if(!t.isFIT(o))throw new Error("Not a valid FIT file");let u=new t(o),{messages:m,errors:T}=u.read();return T&&T.length>0&&le("FIT parsing warnings:",T),m}};function ra(l){let e={...l};return e.position_lat!=null&&e.positionLat==null&&(e.positionLat=e.position_lat),e.position_long!=null&&e.positionLong==null&&(e.positionLong=e.position_long),e}var He=class{constructor(e){this.getConverters=e;this.stage="extract"}async process(e){let s=Date.now();if(!e.rawMessages)throw new Error("Raw messages cannot be empty");let t={};for(let[n,a]of Object.entries(e.rawMessages)){if(!Array.isArray(a)||a.length===0){t[n]=a;continue}let i=this.getConverters(n);if(i.length===0)t[n]=n==="recordMesgs"?a.map(o=>ra(o)):a,P(`\u{1F4CB} Message type "${n}" has no converter, using raw data`);else{let o=i[0];try{let u=o.convertMessages(a,e);t[n]=u,P(`\u2705 Message type "${n}" using converter ${o.name}`)}catch(u){e.errors.push(u),t[n]=a,le(`FIT converter "${o.name}" failed for ${n}; raw messages were retained`,u)}}}return e.rawMessages=t,e.performance.extractTime=Date.now()-s,e}},we=class{constructor(e){this.getStructurePlugins=e;this.stage="structure"}async process(e){let s=Date.now();if(!e.rawMessages)throw new Error("Message data cannot be empty");let t={},n=this.getStructurePlugins();for(let a of n)try{let i=a.structureData(e.rawMessages,e);t={...t,...i},P(`\u{1F527} Structure plugin ${a.name} processing completed`)}catch(i){throw e.errors.push(i),new Error(`FIT structure plugin "${a.name}" failed: ${i.message}`)}return e.result=t,e.performance.structureTime=Date.now()-s,e}},ve=class{constructor(){this.stage="complete"}async process(e){e.performance.endTime=Date.now();let s=e.performance.endTime-e.performance.startTime;return e.metadata.set("performance",{totalTime:s,parseTime:e.performance.parseTime,extractTime:e.performance.extractTime,structureTime:e.performance.structureTime}),e.stats&&(e.stats.endTime=Date.now(),e.rawMessages&&(e.stats.processedTokens=this.countTotalMessages(e.rawMessages))),P(`\u2705 FIT processing completed, total time: ${s}ms`),e}countTotalMessages(e){let s=0;return Object.values(e).forEach(t=>{Array.isArray(t)&&(s+=t.length)}),s}};var N=J(require("dayjs"),1);var Ue=class extends j{constructor(){super(...arguments);this.name="SessionStructurePlugin";this.priority=10}structureData(s,t){let{sessionMesgs:n,lapMesgs:a,recordMesgs:i,lengthMesgs:o}=s;if(!n?.length)return le("No structured session found, data structure is incomplete"),{};let u=n.map(A=>{let R=(0,N.default)(A.startTime).valueOf(),I=R+(A.totalElapsedTime??0)*1e3,h=(0,N.default)(A.timestamp).valueOf(),M=Math.max(Number.isFinite(I)?I:Number.NEGATIVE_INFINITY,Number.isFinite(h)?h:Number.NEGATIVE_INFINITY),D=A.firstLapIndex,c=A.numLaps,y=typeof D=="number"&&typeof c=="number"?(a??[]).filter(d=>{let g=d.messageIndex;return typeof g=="number"&&g>=D&&g<D+c}):[],_=(y.length>0?y:(a??[]).filter(d=>{let g=(0,N.default)(d.startTime).valueOf();return Number.isFinite(g)&&g>=R&&g<=M+2e3})).sort((d,g)=>(0,N.default)(d.startTime).valueOf()-(0,N.default)(g.startTime).valueOf()),b=_.map((d,g)=>{let E=(0,N.default)(d.startTime).valueOf(),S=(0,N.default)(_[g+1]?.startTime).valueOf(),O=E+(d.totalElapsedTime??0)*1e3,L=Number.isFinite(S)&&S>E,w=L?S:Math.max(O,M),W=i?.filter(Os=>{let ie=(0,N.default)(Os.timestamp).valueOf();return ie>=E&&(L?ie<w:ie<=w)})||[],v=d.firstLengthIndex??void 0,K=d.numLengths??void 0,pe=[];if(v!==void 0&&K!==void 0){let Os=v+K;pe=o?.filter(ie=>ie.messageIndex>=v&&ie.messageIndex<Os)||[]}return{...d,recordMesgs:W,lengthMesgs:pe,messageIndex:d.messageIndex!==void 0?d.messageIndex:0}});return{...A,lapMesgs:b,messageIndex:A.messageIndex!==void 0?A.messageIndex:0}}),m=new Set;for(let A of u)for(let R of A.lapMesgs??[])for(let I of R.recordMesgs??[])I?.timestamp!=null&&m.add((0,N.default)(I.timestamp).valueOf());let T=0;for(let A of i??[]){if(A?.timestamp==null)continue;let R=(0,N.default)(A.timestamp).valueOf();m.has(R)||T++}return T>0&&(t.metadata.set("fit-unassigned-record-count",T),le(`SessionStructurePlugin: ${T} record(s) did not fall into any lap time window`)),{sessionMesgs:u}}},Be=class extends j{constructor(){super(...arguments);this.name="CourseStructurePlugin";this.priority=10}structureData(s,t){let{courseMesgs:n,lapMesgs:a,recordMesgs:i}=s;if(!n?.length)return{};let o=2e3;return{courseMesgs:n.map(m=>{let T=a?.map(A=>{let R=(0,N.default)(A.startTime).valueOf(),I=(0,N.default)(A.timestamp).valueOf(),h=i?.filter(M=>{let D=(0,N.default)(M.timestamp).valueOf();return D>=R-o&&D<=I+o})||[];return{...A,recordMesgs:h}})||[];return{...m,lapMesgs:T}})}}},Me=class extends j{constructor(){super(...arguments);this.name="FileHeaderPlugin";this.priority=1}structureData(s,t){let{fileIdMesgs:n,fileCreatorMesgs:a,deviceInfoMesgs:i}=s;if(n?.length&&n[0]){let o=n[0];t.fileHeader={type:o.type,manufacturer:o.manufacturer,product:o.product}}return{fileIdMesgs:n,fileCreatorMesgs:a,deviceInfoMesgs:i}}};var Ge=class{constructor(){this.converterPlugins=new Map;this.registeredPlugins=new Set;this.structurePlugins=[];this.middlewarePlugins=[];this.processors=[];this.initialized=!1;this.defaultPluginsRegistered=!1;this.initializePipeline()}initializePipeline(){this.processors=[new De,new He(e=>this.getConverters(e)),new we(()=>this.structurePlugins),new ve],P("\u{1F527} FIT core pipeline processors initialized (fixed and not modifiable)")}async registerDefaultPlugins(){if(this.defaultPluginsRegistered)return;let e=[new Me,new Ue,new Be,new Re];for(let s of e)this.addStructurePlugin(s),this.registeredPlugins.add(s.name);this.defaultPluginsRegistered=!0,P("\u2705 Default FIT structure plugins auto-registered (FileHeader, Session, Course, etc.)")}addConverterForMessageType(e,s){this.converterPlugins.has(e)||this.converterPlugins.set(e,[]);let t=this.converterPlugins.get(e);t.push(s),t.sort((n,a)=>(n.priority||100)-(a.priority||100))}addStructurePlugin(e){this.structurePlugins.push(e),this.structurePlugins.sort((s,t)=>(s.priority||100)-(t.priority||100))}async registerMessageConverter(e){if(this.registeredPlugins.has(e.name))throw new Error(`Message converter plugin ${e.name} already exists`);e.supportedMessageTypes.forEach(t=>{this.addConverterForMessageType(t,e)}),this.registeredPlugins.add(e.name);let s=e.priority!==void 0?` (priority: ${e.priority})`:"";P(`\u{1F4E6} Registered FIT message converter: ${e.name}${s}, supported message types: ${e.supportedMessageTypes.join(", ")}`),e.supportedMessageTypes.forEach(t=>{let a=(this.converterPlugins.get(t)||[]).map(i=>`${i.name}(${i.priority||100})`);P(` \u{1F4CB} Message type "${t}" converter priority: ${a.join(" > ")}`)})}async registerStructurePlugin(e){if(this.registeredPlugins.has(e.name))throw new Error(`Structure plugin ${e.name} already exists`);this.addStructurePlugin(e),this.registeredPlugins.add(e.name);let s=e.priority!==void 0?` (priority: ${e.priority})`:"";P(`\u{1F3D7}\uFE0F Registered FIT structure plugin: ${e.name}${s}`)}async registerMiddleware(e){let s=this.middlewarePlugins.findIndex(n=>n.name===e.name);s!==-1?(this.middlewarePlugins[s]=e,P(`\u{1F504} Updated FIT middleware: ${e.name}`)):(this.middlewarePlugins.push(e),this.middlewarePlugins.sort((n,a)=>(n.priority||100)-(a.priority||100)),P(`\u{1F50C} Registered FIT middleware: ${e.name}`));let t=[];e.onParse&&t.push("onParse"),e.onExtractMessages&&t.push("onExtractMessages"),e.onStructure&&t.push("onStructure"),e.onComplete&&t.push("onComplete"),e.onError&&t.push("onError"),t.length>0&&P(` \u{1F3A3} Supported hooks: ${t.join(", ")}`)}getConverter(e){let s=this.converterPlugins.get(e);return s&&s.length>0?s[0]:void 0}getConverters(e){return this.converterPlugins.get(e)||[]}unregisterPlugin(e){if(!this.registeredPlugins.has(e))return!1;for(let[n,a]of this.converterPlugins){let i=a.findIndex(o=>o.name===e);i!==-1&&(a.splice(i,1),a.length===0&&this.converterPlugins.delete(n))}let s=this.structurePlugins.findIndex(n=>n.name===e);s!==-1&&this.structurePlugins.splice(s,1);let t=this.middlewarePlugins.findIndex(n=>n.name===e);return t!==-1&&this.middlewarePlugins.splice(t,1),this.registeredPlugins.delete(e),P(`\u{1F5D1}\uFE0F Removed FIT plugin: ${e}`),!0}async initialize(){if(this.initialized)return;await this.registerDefaultPlugins();let e=this.createContext(),s=[...new Map([...Array.from(this.converterPlugins.values()).flat(),...this.structurePlugins,...this.middlewarePlugins].map(t=>[t.name,t])).values()];for(let t of s)await t.initialize?.(e);this.initialized=!0}async destroy(){if(!this.initialized)return;let e=this.createContext(),s=[...new Map([...Array.from(this.converterPlugins.values()).flat(),...this.structurePlugins,...this.middlewarePlugins].map(t=>[t.name,t])).values()];for(let t of s)await t.destroy?.(e);this.initialized=!1}createContext(){return{metadata:new Map,errors:[],warnings:[],stats:{startTime:Date.now(),processedTokens:0,convertedElements:0},performance:{startTime:Date.now()}}}async executeMiddlewareHook(e,s,t){let n=s;for(let a of this.middlewarePlugins){let i=a[e];if(i)try{n=await i.call(a,n,t)||n}catch(o){t.errors.push(o),await a.onError?.(o,t)}}return n}async parseByBuffer(e,s={}){await this.initialize();let t=this.createContext();t.rawData=e,t.userData=s.userData,t.metadata.set("decoder",this);try{for(let n of this.processors)try{switch(n.stage==="parse"&&t.rawData&&(t.rawData=await this.executeMiddlewareHook("onParse",t.rawData,t)),t=await n.process(t),n.stage){case"parse":break;case"extract":t.rawMessages&&(t.rawMessages=await this.executeMiddlewareHook("onExtractMessages",t.rawMessages,t));break;case"structure":t.result&&(t.result=await this.executeMiddlewareHook("onStructure",t.result,t));break;case"complete":t.result&&(t.result=await this.executeMiddlewareHook("onComplete",t.result,t));break}}catch(a){t.errors.push(a);for(let i of this.middlewarePlugins)await i.onError?.(a,t);throw new Error(`FIT pipeline stage "${n.stage}" failed: ${a.message}`)}return P("\u{1F389} FIT parsing completed",t.result),t.result}catch(n){throw n}}};var da={file:{course:6,device:1,settings:2,sport:3,activity:4,workout:5,schedules:7,weight:9,totals:10,goals:11,blood_pressure:14,monitoring_a:15,activity_summary:20,monitoring_daily:28,monitoring_b:32,segment_list:35,exd_configuration:40,invalid:0},sport:{generic:0,running:1,cycling:2,transition:3,fitness_equipment:4,swimming:5,basketball:6,soccer:7,tennis:8,american_football:9,training:10,walking:11,cross_country_skiing:12,alpine_skiing:13,snowboarding:14,rowing:15,mountaineering:16,hiking:17,multisport:18,paddling:19,invalid:254},event:{timer:0,workout:3,workout_step:4,power_down:5,power_up:6,off_course:7,session:8,lap:9,course_point:10,battery:11,virtual_partner_pace:12,hr_high_alert:13,hr_low_alert:14,speed_high_alert:15,speed_low_alert:16,cad_high_alert:17,cad_low_alert:18,power_high_alert:19,power_low_alert:20,recovery_hr:21,battery_low:22,time_duration_alert:23,distance_duration_alert:24,calorie_duration_alert:25,activity:26,fitness_equipment:27,length:28,user_marker:32,sport_point:33,calibration:36,front_gear_change:42,rear_gear_change:43,rider_position_change:44,elev_high_alert:45,elev_low_alert:46,comm_timeout:47,invalid:255},event_type:{start:0,stop:1,consecutive_depreciated:2,marker:3,stop_all:4,begin_depreciated:5,end_depreciated:6,end_all_depreciated:7,stop_disable:8,stop_disable_all:9,invalid:255},course_point:{generic:0,summit:1,valley:2,water:3,food:4,danger:5,left:6,right:7,straight:8,first_aid:9,fourth_category:10,third_category:11,second_category:12,first_category:13,hors_category:14,sprint:15,left_fork:16,right_fork:17,middle_fork:18,slight_left:19,sharp_left:20,slight_right:21,sharp_right:22,u_turn:23,segment_start:24,segment_end:25,invalid:255}},ae=l=>{let e=da[l];return{size:1,baseType:0,mapValue:s=>typeof s=="string"?e[s]??255:s,setValue:function(s,t){this.setUint8(s,t)}}},Zs={enum_file:ae("file"),enum_activity:ae("sport"),enum_sport:ae("sport"),enum_sub_sport:ae("sport"),enum_event:ae("event"),enum_event_type:ae("event_type"),enum_course_point:ae("course_point"),uint8:{size:1,baseType:2,setValue:DataView.prototype.setUint8},sint8:{size:1,baseType:1,setValue:DataView.prototype.setInt8},uint16:{size:2,baseType:132,setValue:DataView.prototype.setUint16},sint16:{size:2,baseType:131,setValue:DataView.prototype.setInt16},uint32:{size:4,baseType:134,setValue:DataView.prototype.setUint32},sint32:{size:4,baseType:133,setValue:DataView.prototype.setInt32},string:{size:0,baseType:7,mapValue:l=>Array.from(en(l)),setValue:_a},distance:{size:4,baseType:134,setValue:DataView.prototype.setUint32,mapValue:l=>Math.round(l*1e3)},speed:{size:2,baseType:132,setValue:DataView.prototype.setUint16,mapValue:l=>Math.round(l*100)},altitude:{size:2,baseType:132,setValue:DataView.prototype.setUint16,mapValue:l=>Math.round((l+500)*5)},seconds:{size:4,baseType:134,setValue:DataView.prototype.setUint32,mapValue:l=>Math.round(l*1e3)},date_time:{size:4,baseType:134,setValue:DataView.prototype.setUint32,mapValue:l=>{let e;return l instanceof Date?(e=Math.floor(l.getTime()/1e3),e-631065600):typeof l=="string"?(e=Math.floor(new Date(l).getTime()/1e3),e-631065600):l<631065600?Math.floor(l):(l>9999999999?e=Math.floor(l/1e3):e=Math.floor(l),e-631065600)}},semicircles:{size:4,baseType:133,setValue:DataView.prototype.setInt32,mapValue:l=>Math.round(l/180*2147483648)}};function xt(l){return Array.from(en(l)).length+1}function*en(l){for(let e of Ta(l))e<128?yield e:e<2048?(yield 192|e>>6,yield 128|e&63):e<65536?(yield 224|e>>12,yield 128|e>>6&63,yield 128|e&63):(yield 240|e>>18,yield 128|e>>12&63,yield 128|e>>6&63,yield 128|e&63);yield 0}function*Ta(l){for(let e=0;e<l.length;){let s=l.codePointAt(e);if(s===void 0)break;yield s,e+=s>65535?2:1}}function _a(l,e){for(let s=0;s<e.length;s++)this.setUint8(l+s,e[s])}var ca={file_id:{mesgNum:0,fieldDefns:[{name:"type",number:0,type:"enum_file"},{name:"time_created",number:4,type:"date_time"}]},session:{mesgNum:18,fieldDefns:[{name:"timestamp",number:253,type:"date_time"},{name:"start_time",number:2,type:"date_time"},{name:"total_elapsed_time",number:7,type:"seconds"},{name:"total_timer_time",number:8,type:"seconds"},{name:"start_position_lat",number:3,type:"semicircles"},{name:"start_position_long",number:4,type:"semicircles"},{name:"total_distance",number:9,type:"distance"},{name:"total_ascent",number:21,type:"uint16"},{name:"total_descent",number:22,type:"uint16"},{name:"sport",number:5,type:"enum_sport"},{name:"sub_sport",number:6,type:"enum_sub_sport"},{name:"first_lap_index",number:11,type:"uint16"},{name:"num_laps",number:26,type:"uint16"}]},lap:{mesgNum:19,fieldDefns:[{name:"timestamp",number:253,type:"date_time"},{name:"start_time",number:2,type:"date_time"},{name:"start_position_lat",number:3,type:"semicircles"},{name:"start_position_long",number:4,type:"semicircles"},{name:"end_position_lat",number:5,type:"semicircles"},{name:"end_position_long",number:6,type:"semicircles"},{name:"total_elapsed_time",number:7,type:"seconds"},{name:"total_timer_time",number:8,type:"seconds"},{name:"total_distance",number:9,type:"distance"},{name:"total_ascent",number:21,type:"uint16"},{name:"total_descent",number:22,type:"uint16"}]},record:{mesgNum:20,fieldDefns:[{name:"timestamp",number:253,type:"date_time"},{name:"position_lat",number:0,type:"semicircles"},{name:"position_long",number:1,type:"semicircles"},{name:"altitude",number:2,type:"altitude"},{name:"distance",number:5,type:"distance"},{name:"heart_rate",number:3,type:"uint8"},{name:"cadence",number:4,type:"uint8"},{name:"speed",number:6,type:"speed"},{name:"power",number:7,type:"uint16"}]},event:{mesgNum:21,fieldDefns:[{name:"timestamp",number:253,type:"date_time"},{name:"event",number:0,type:"enum_event"},{name:"event_type",number:1,type:"enum_event_type"},{name:"event_group",number:4,type:"uint8"}]},course:{mesgNum:31,fieldDefns:[{name:"name",number:5,type:"string"},{name:"sport",number:4,type:"enum_sport"},{name:"sub_sport",number:7,type:"enum_sub_sport"}]},activity:{mesgNum:34,fieldDefns:[{name:"timestamp",number:253,type:"date_time"},{name:"total_timer_time",number:0,type:"seconds"},{name:"num_sessions",number:1,type:"uint16"},{name:"type",number:2,type:"enum_activity"},{name:"event",number:3,type:"enum_event"},{name:"event_type",number:4,type:"enum_event_type"},{name:"local_timestamp",number:5,type:"date_time"},{name:"event_group",number:6,type:"uint8"}]},course_point:{mesgNum:32,fieldDefns:[{name:"timestamp",number:1,type:"date_time"},{name:"position_lat",number:2,type:"semicircles"},{name:"position_long",number:3,type:"semicircles"},{name:"distance",number:4,type:"distance"},{name:"type",number:5,type:"enum_course_point"}]}},ba=(l,e)=>l.map(s=>({...s,value:e[s.name]})).filter(({value:s})=>s!==void 0),Pe=class l{static check(e,s,t,n){if(s===void 0)throw new Error(`Message '${e}' not known`);if(t===void 0)throw new Error(`Message '${e}' has no field definitions`);let a=t.map(o=>o.name),i=Object.keys(n).filter(o=>!a.includes(o));if(i.length)throw new Error(`Message '${e}' has no field definitions named '${i}'`)}constructor(e,s,t){let n=ca[s];if(!n)throw new Error(`Unknown message type: ${s}`);let{mesgNum:a,fieldDefns:i}=n;l.check(s,a,i,t),this.localNum=e,this.mesgNum=a,this.fields=ba(i,t)}get mesgDefn(){let e=this.fields.map(({number:s,type:t,value:n})=>{let a=Zs[t];if(!a)throw new Error(`Unknown type: ${t}`);let{size:i,baseType:o}=a;return t==="string"?{number:s,size:xt(n),baseType:o}:{number:s,size:i,baseType:o}});return{localNum:this.localNum,mesgNum:this.mesgNum,fieldDefns:e}}isSameDefn(e){let s=(o,u)=>o.number===u.number&&o.size===u.size&&o.baseType===u.baseType,t=(o,u)=>o.length===u.length&&o.every((m,T)=>s(m,u[T])),{localNum:n,mesgNum:a,fieldDefns:i}=this.mesgDefn;return a===e.mesgNum&&n===e.localNum&&t(i,e.fieldDefns)}get defnRecord(){let{localNum:e,mesgNum:s,fieldDefns:t}=this.mesgDefn,n=6+3*t.length,a=new DataView(new ArrayBuffer(n));a.setUint8(0,64|e),a.setUint8(2,1),a.setUint16(3,s),a.setUint8(5,t.length);let i=6;for(let o of t)a.setUint8(i++,o.number),a.setUint8(i++,o.size),a.setUint8(i++,o.baseType);return a.buffer}get dataRecord(){let{fieldDefns:e}=this.mesgDefn,s=1+e.reduce((a,{size:i})=>a+i,0),t=new DataView(new ArrayBuffer(s));t.setUint8(0,this.localNum);let n=1;for(let{number:a,type:i,value:o}of this.fields){let u=Zs[i];if(!u)throw new Error(`Unknown type: ${i}`);let{size:m,setValue:T}=u,A;"mapValue"in u?A=u.mapValue(o):A=o,T&&T.call(t,n,A),n+=m}return t.buffer}};var Ia=[0,52225,55297,5120,61441,15360,10240,58369,40961,27648,30720,46081,20480,39937,34817,17408],sn=(l,e)=>(l>>>4^Ia[l&15^e])&65535,ya=(l,e,s)=>sn(sn(l,e),s),ha=(l,e)=>ya(l,e&15,e>>>4);function qs(l,e=0){let s=e,t=l instanceof ArrayBuffer?new Uint8Array(l):l;for(let n=0;n<t.length;n++)s=ha(s,t[n]);return s}var nn=J(require("dayjs"),1),tn=14,Ra=16,ga=2078,La=776358228,We=class{constructor(e={}){this.localNum={};this.mesgDefn=[];this.messages=[];this.options={compact:e.compact??!0,defaultActivity:e.defaultActivity??"cycling",defaultSubActivity:e.defaultSubActivity??"generic"}}async encode(e){return this.reset(),this.buildFITContent(e,"activity"),Buffer.from(await this.blob.arrayBuffer())}async encodeCourse(e){return this.reset(),this.buildFITContent(e,"course"),Buffer.from(await this.blob.arrayBuffer())}async encodeToBlob(e,s="activity"){return this.reset(),this.buildFITContent(e,s),this.blob}reset(){this.localNum={},this.mesgDefn=[],this.messages=[]}buildFITContent(e,s){this.buildFileId(e,s),s==="course"?this.buildCourseContent(e):this.buildActivityContent(e)}buildActivityContent(e){let s=e.sessionMesgs||[];if(s.length===0)throw new Error("Activity file must contain at least one Session");let t=0,n=[],a=[];for(let i of s){if(i.lapMesgs&&this.buildEventsFromLaps(i.lapMesgs,n),i.lapMesgs)for(let o of i.lapMesgs)o.recordMesgs&&this.buildRecords(o.recordMesgs);i.lapMesgs&&this.buildLaps(i.lapMesgs),this.buildSession(i),t++,this.buildActivityFromSession(i,a)}n.forEach(i=>this.buildEvent(i)),a.forEach(i=>this.buildActivity(i))}buildCourseContent(e){let s=e.sessionMesgs||[];if(s.length===0)throw new Error("Course file must contain track data");let t=s[0];if(this.buildCourse({name:"course",sport:this.options.defaultActivity}),t.lapMesgs){let n=[];for(let o of t.lapMesgs)o.recordMesgs&&n.push(...o.recordMesgs);n.sort((o,u)=>o.timestamp&&u.timestamp?new Date(o.timestamp).getTime()-new Date(u.timestamp).getTime():(o.distance||0)-(u.distance||0));let a=n[0],i=n[n.length-1];if(t.startTime&&this.buildEvent({timestamp:t.startTime,event:"timer",eventType:"start",eventGroup:0}),n.forEach(o=>this.buildRecord(o)),i.timestamp&&this.buildEvent({timestamp:i.timestamp,event:"timer",eventType:"stop_all",eventGroup:0}),t.lapMesgs)for(let o=0;o<t.lapMesgs.length;o++)this.buildLap(t.lapMesgs[o])}}buildFileId(e,s){let t=e.fileIdMesgs?.[0]||{};this.writeMesg("file_id",{type:s,time_created:t.timeCreated?this.parseTimestamp(t.timeCreated):Date.now(),manufacturer:t.manufacturer,product:t.product,serial_number:t.serialNumber})}buildSession(e){this.writeMesg("session",{timestamp:e.timestamp?e.timestamp:void 0,start_time:e.startTime?e.startTime:void 0,total_elapsed_time:e.totalElapsedTime,total_timer_time:e.totalTimerTime,start_position_lat:e.startPositionLat!=null&&Number.isFinite(e.startPositionLat)?this.convertToSemicircles(e.startPositionLat):void 0,start_position_long:e.startPositionLong!=null&&Number.isFinite(e.startPositionLong)?this.convertToSemicircles(e.startPositionLong):void 0,total_distance:e.totalDistance,total_ascent:e.totalAscent,total_descent:e.totalDescent,sport:e.sport||this.options.defaultActivity,sub_sport:e.subSport||this.options.defaultSubActivity,first_lap_index:e.firstLapIndex||0,num_laps:e.numLaps||e.lapMesgs?.length||1})}buildLaps(e){e.forEach(s=>this.buildLap(s))}buildLap(e){this.writeMesg("lap",{timestamp:e?.timestamp?e.timestamp:void 0,start_time:e?.startTime?e.startTime:void 0,start_position_lat:e?.startPositionLat!=null&&Number.isFinite(e.startPositionLat)?this.convertToSemicircles(e.startPositionLat):void 0,start_position_long:e?.startPositionLong!=null&&Number.isFinite(e.startPositionLong)?this.convertToSemicircles(e.startPositionLong):void 0,end_position_lat:e?.endPositionLat!=null&&Number.isFinite(e.endPositionLat)?this.convertToSemicircles(e.endPositionLat):void 0,end_position_long:e?.endPositionLong!=null&&Number.isFinite(e.endPositionLong)?this.convertToSemicircles(e.endPositionLong):void 0,total_elapsed_time:e?.totalElapsedTime,total_timer_time:e?.totalTimerTime,total_distance:e?.totalDistance,total_ascent:e?.totalAscent,total_descent:e?.totalDescent})}buildRecords(e){e.forEach(s=>this.buildRecord(s))}buildRecord(e){this.writeMesg("record",{timestamp:e.timestamp,position_lat:e?.positionLat!=null&&Number.isFinite(e.positionLat)?this.convertToSemicircles(e.positionLat):void 0,position_long:e?.positionLong!=null&&Number.isFinite(e.positionLong)?this.convertToSemicircles(e.positionLong):void 0,altitude:e?.altitude,enhancedAltitude:e?.enhancedAltitude,distance:e?.distance,heart_rate:e?.heartRate,cadence:e?.cadence,speed:e?.speed,enhancedSpeed:e?.enhancedSpeed,power:e?.power})}buildEvent(e){this.writeMesg("event",{timestamp:e.timestamp?e.timestamp:void 0,event:e.event,event_type:e.eventType,event_group:e.eventGroup})}buildActivity(e){this.writeMesg("activity",{timestamp:e.timestamp?e.timestamp:void 0,total_timer_time:e.totalTimerTime,num_sessions:e.numSessions,type:e.type,event:e.event,event_type:e.eventType,local_timestamp:e.localTimestamp?this.parseTimestamp(e.localTimestamp):void 0,event_group:e.eventGroup})}buildCourse(e){this.writeMesg("course",{name:e.name,sport:e.sport})}buildEventsFromLaps(e,s){e.forEach((t,n)=>{t.startTime&&s.push({timestamp:t.startTime,event:"timer",eventType:"start",eventGroup:n}),t.timestamp&&s.push({timestamp:t.timestamp,event:"timer",eventType:n===e.length-1?"stop_all":"stop",eventGroup:n})})}buildActivityFromSession(e,s){s.push({timestamp:e.timestamp,totalTimerTime:e.totalTimerTime,numSessions:1,type:e.sport||this.options.defaultActivity,event:"activity",eventType:"stop",eventGroup:0})}parseTimestamp(e){return typeof e=="number"?e:(0,nn.default)(e).valueOf()}convertToSemicircles(e){if(e!=null&&Number.isFinite(e))return Math.round(e*2**31/180)}validateRequiredFields(e){if(!e.sessionMesgs||e.sessionMesgs.length===0)throw new Error("FIT file must contain at least one Session")}writeMesg(e,s){let t=Object.fromEntries(Object.entries(s).filter(([o,u])=>u!==void 0));if(Object.keys(t).length===0)return;let n=this.localNum[e];n===void 0&&(n=this.localNum[e]=Object.keys(this.localNum).length);let a=new Pe(n,e,t),i=this.mesgDefn[n];(!i||!a.isSameDefn(i))&&(this.messages.push(a.defnRecord),this.mesgDefn[n]=a.mesgDefn),this.messages.push(a.dataRecord)}get blob(){let e=[this.header,...this.messages,this.trailer];return new Blob(e,{type:"application/octet-stream"})}get dataLen(){return this.messages.reduce((e,s)=>e+s.byteLength,0)}get dataCrc(){return this.messages.reduce((e,s)=>qs(s,e),0)}get header(){let e=new DataView(new ArrayBuffer(tn));return e.setUint8(0,tn),e.setUint8(1,Ra),e.setUint16(2,ga,!0),e.setUint32(4,this.dataLen,!0),e.setUint32(8,La),e.setUint16(12,qs(e.buffer.slice(0,12)),!0),e.buffer}get trailer(){let e=new DataView(new ArrayBuffer(2));return e.setUint16(0,this.dataCrc,!0),e.buffer}async encoder(e){return this.encode(e)}};js();var Ca="development",Ea=1,Sa=1;function Oa(l,e){if(!Number.isFinite(l))throw new Error(`${e} must be a finite number.`)}function Ve(l,e){return Oa(l,e),Math.abs(l)<=180?Math.round(l*2147483648/180):Math.round(l)}function Fa(l){if(!l.name||l.name.trim().length===0)throw new Error("Course name is required.");if(!Array.isArray(l.records)||l.records.length===0)throw new Error("Course must contain at least one record point.");let e=l.records.map((t,n)=>{if(t==null)throw new Error(`Course record #${n+1} is missing.`);if(t.timestamp==null)throw new Error(`Course record #${n+1} is missing timestamp.`);return{...t,positionLat:Ve(t.latitude,`records[${n}].latitude`),positionLong:Ve(t.longitude,`records[${n}].longitude`)}}),s=(l.coursePoints??[]).map((t,n)=>{if(t==null)throw new Error(`Course point #${n+1} is missing.`);if(t.timestamp==null)throw new Error(`Course point #${n+1} is missing timestamp.`);return{...t,type:t.type??0,positionLat:Ve(t.latitude,`coursePoints[${n}].latitude`),positionLong:Ve(t.longitude,`coursePoints[${n}].longitude`)}});return{...l,sport:l.sport??2,subSport:l.subSport??0,records:e,coursePoints:s,manufacturer:l.manufacturer??Ca,product:l.product??Ea,serialNumber:l.serialNumber??Sa,timeCreated:l.timeCreated??e[0].timestamp}}function Da(l){let e=Fa(l),s=e.records[0],t=e.records[e.records.length-1],n=s.timestamp,a=t.timestamp,i=[{mesgNum:0,data:{type:6,manufacturer:e.manufacturer,product:e.product,serialNumber:e.serialNumber,timeCreated:e.timeCreated}},{mesgNum:31,data:{name:e.name,sport:e.sport,subSport:e.subSport}},{mesgNum:19,data:{startTime:n,timestamp:a,startPositionLat:s.positionLat,startPositionLong:s.positionLong,endPositionLat:t.positionLat,endPositionLong:t.positionLong,totalDistance:t.distance}},{mesgNum:21,data:{timestamp:n,event:0,eventType:0}}];return e.records.forEach(o=>{i.push({mesgNum:20,data:{timestamp:o.timestamp,positionLat:o.positionLat,positionLong:o.positionLong,distance:o.distance,altitude:o.altitude,speed:o.speed}})}),e.coursePoints.forEach((o,u)=>{i.push({mesgNum:32,data:{messageIndex:u,timestamp:o.timestamp,positionLat:o.positionLat,positionLong:o.positionLong,distance:o.distance,type:o.type,name:o.name,favorite:o.favorite}})}),i.push({mesgNum:21,data:{timestamp:a,event:0,eventType:4}}),i}function an(l){let e=new Fe;return Da(l).forEach(t=>{e.onMesg(t.mesgNum,t.data)}),e.close()}var se=class{constructor(){this.version="1.0.0";this.priority=100}supports(e){return this.supportedTags.includes(e)}async initialize(e){e.metadata.set(`plugin:${this.name}:initialized`,!0)}async destroy(e){e.metadata.delete(`plugin:${this.name}:initialized`)}async validate(e){return!0}parseFloat(e){if(!(typeof e>"u"))return typeof e=="number"?e:typeof e=="string"&&parseFloat(e)||0}parseInt(e){return typeof e=="number"?Math.floor(e):typeof e=="string"&&parseInt(e,10)||0}parseString(e){return String(e||"")}parseBoolean(e){return typeof e=="boolean"?e:typeof e=="string"?e.toLowerCase()==="true":!1}parseDate(e){if(!e)return;let s=new Date(e);return isNaN(s.getTime())?void 0:s}hasRequiredAttributes(e,s){return s.every(t=>e.attributes?.[t])}extractAttributes(e,s,t){e.attributes&&Object.entries(e.attributes).forEach(([n,a])=>{let i=t[n];i&&(s[i]=String(a??""))})}processChildren(e,s,t){e.children?.forEach(n=>{let a=t[n.tag];a&&a(n,s)})}getChildValue(e,s){let t=e.children?.find(n=>n.tag===s);return t?.value?String(t.value):void 0}getChildByTag(e,s){return e.children?.find(t=>t.tag===s)}getChildrenByTag(e,s){return e.children?.filter(t=>t.tag===s)||[]}convertExtensions(e){let s={};return e.children?.forEach(t=>{s[t.tag]=this.convertExtensionContent(t)}),s}convertExtensionContent(e){if(e.children?.length){let s={};return e.children.forEach(t=>{s[t.tag]=this.convertExtensionContent(t)}),s}else return e.value}};var X=class extends se{parseCoordinate(e){let s=this.parseFloat(e);return s===0?void 0:s}parseGPXTime(e){if(!e)return;let s=new Date(e);return isNaN(s.getTime())?void 0:s}extractNumericAttributes(e,s,t){e.attributes&&Object.entries(e.attributes).forEach(([n,a])=>{let i=t[n];i&&i in s&&typeof a<"u"&&(s[i]=this.parseFloat(a))})}};var Ke=class extends X{constructor(){super(...arguments);this.name="wpt-converter";this.supportedTags=["wpt","trkpt","rtept"];this.version="1.0.0"}convert(s,t){if(!this.hasRequiredAttributes(s,["lat","lon"])){t.warnings.push(`${this.name}: point without latitude or longitude was ignored`);return}let n={lat:this.parseFloat(s.attributes?.lat),lon:this.parseFloat(s.attributes?.lon)};return this.processChildren(s,n,{ele:(a,i)=>i.ele=this.parseFloat(a.value),time:(a,i)=>i.time=new Date(this.parseString(a.value)),speed:(a,i)=>i.speed=this.parseFloat(a.value),power:(a,i)=>i.power=this.parseFloat(a.value),cadence:(a,i)=>i.cadence=this.parseFloat(a.value),heartRate:(a,i)=>i.heartRate=this.parseFloat(a.value),course:(a,i)=>i.course=this.parseFloat(a.value),name:(a,i)=>i.name=this.parseString(a.value),cmt:(a,i)=>i.cmt=this.parseString(a.value),desc:(a,i)=>i.desc=this.parseString(a.value),src:(a,i)=>i.src=this.parseString(a.value),sym:(a,i)=>i.sym=this.parseString(a.value),type:(a,i)=>i.type=this.parseString(a.value),fix:(a,i)=>i.fix=this.parseString(a.value),sat:(a,i)=>i.sat=this.parseFloat(a.value),hdop:(a,i)=>i.hdop=this.parseFloat(a.value),vdop:(a,i)=>i.vdop=this.parseFloat(a.value),pdop:(a,i)=>i.pdop=this.parseFloat(a.value),ageofdgpsdata:(a,i)=>i.ageofdgpsdata=this.parseFloat(a.value),geoidheight:(a,i)=>i.geoidheight=this.parseFloat(a.value),magvar:(a,i)=>i.magvar=this.parseFloat(a.value),dgpsid:(a,i)=>i.dgpsid=this.parseFloat(a.value),extensions:(a,i)=>{let u=t.metadata.get("decoder")?.getConverter("extensions");if(u){let m=u.convert(a,t);m&&(this.mapExtensionsToPoint(m,i),i.extensions=m)}},link:(a,i)=>{i.link||(i.link=[]);let u=t.metadata.get("decoder")?.getConverter("link")?.convert(a,t);u&&i.link&&i.link.push(u)}}),n}mapExtensionsToPoint(s,t){Object.entries(s).forEach(([n,a])=>{if(a!==void 0&&(typeof a=="string"||typeof a=="number")){let i=o=>(Array.isArray(o)?o:[o]).some(m=>{let T=n.toLowerCase(),A=m.toLowerCase();return T===A||T.endsWith(`:${A}`)});i("speed")?t.speed=this.parseFloat(a):i("hr")?t.heartRate=this.parseFloat(a):i(["cad","cadence"])?t.cadence=this.parseFloat(a):i(["PowerInWatts","power"])&&(t.power=this.parseFloat(a))}})}},ke=class extends X{constructor(){super(...arguments);this.name="rte-converter";this.supportedTags=["rte"]}convert(s,t){let n={rtept:[]};return this.processChildren(s,n,{name:(a,i)=>i.name=this.parseString(a.value),cmt:(a,i)=>i.cmt=this.parseString(a.value),desc:(a,i)=>i.desc=this.parseString(a.value),src:(a,i)=>i.src=this.parseString(a.value),number:(a,i)=>i.number=this.parseFloat(a.value),type:(a,i)=>i.type=this.parseString(a.value),rtept:(a,i)=>{let u=t.metadata.get("decoder")?.getConverter("wpt")?.convert(a,t);u&&i.rtept&&i.rtept.push(u)},extensions:(a,i)=>{let u=t.metadata.get("decoder")?.getConverter("extensions");u&&(i.extensions=u.convert(a,t))},link:(a,i)=>{i.link||(i.link=[]);let u=t.metadata.get("decoder")?.getConverter("link")?.convert(a,t);u&&i.link&&i.link.push(u)}}),n}},Ne=class extends X{constructor(){super(...arguments);this.name="trk-converter";this.supportedTags=["trk"]}convert(s,t){let n={trkseg:[]};return this.processChildren(s,n,{name:(a,i)=>i.name=this.parseString(a.value),cmt:(a,i)=>i.cmt=this.parseString(a.value),desc:(a,i)=>i.desc=this.parseString(a.value),src:(a,i)=>i.src=this.parseString(a.value),number:(a,i)=>i.number=this.parseFloat(a.value),type:(a,i)=>i.type=this.parseString(a.value),trkseg:(a,i)=>{let u=t.metadata.get("decoder")?.getConverter("trkseg")?.convert(a,t);u&&i.trkseg&&i.trkseg.push(u)},extensions:(a,i)=>{let u=t.metadata.get("decoder")?.getConverter("extensions");u&&(i.extensions=u.convert(a,t))},link:(a,i)=>{i.link||(i.link=[]);let u=t.metadata.get("decoder")?.getConverter("link")?.convert(a,t);u&&i.link&&i.link.push(u)}}),n}},Xe=class extends X{constructor(){super(...arguments);this.name="trkseg-converter";this.supportedTags=["trkseg"]}convert(s,t){let n={trkpt:[]};return this.processChildren(s,n,{trkpt:(a,i)=>{let u=t.metadata.get("decoder")?.getConverter("wpt")?.convert(a,t);u&&i.trkpt&&i.trkpt.push(u)},extensions:(a,i)=>{let u=t.metadata.get("decoder")?.getConverter("extensions");u&&(i.extensions=u.convert(a,t))}}),n}},Ye=class extends X{constructor(){super(...arguments);this.name="link-converter";this.supportedTags=["link"]}convert(s,t){let n={};return s.attributes?.href&&(n.href=s.attributes.href),this.processChildren(s,n,{text:(a,i)=>i.text=this.parseString(a.value),type:(a,i)=>i.type=this.parseString(a.value)}),n}},ze=class extends X{constructor(){super(...arguments);this.name="metadata-converter";this.supportedTags=["metadata"]}convert(s,t){let n={};return this.processChildren(s,n,{name:(a,i)=>i.name=this.parseString(a.value),desc:(a,i)=>i.desc=this.parseString(a.value),keywords:(a,i)=>i.keywords=this.parseString(a.value),time:(a,i)=>i.time=new Date(this.parseString(a.value)),author:(a,i)=>{let o=t.metadata.get("decoder");i.author=o?.getConverter("author")?.convert(a,t)},copyright:(a,i)=>{let o=t.metadata.get("decoder");i.copyright=o?.getConverter("copyright")?.convert(a,t)},bounds:(a,i)=>{let o=t.metadata.get("decoder");i.bounds=o?.getConverter("bounds")?.convert(a,t)},extensions:(a,i)=>{let u=t.metadata.get("decoder")?.getConverter("extensions");u&&(i.extensions=u.convert(a,t))},link:(a,i)=>{i.link||(i.link=[]);let u=t.metadata.get("decoder")?.getConverter("link")?.convert(a,t);u&&i.link&&i.link.push(u)}}),n}},Je=class extends X{constructor(){super(...arguments);this.name="person-converter";this.supportedTags=["author"]}convert(s,t){let n={};return s.value&&!s.children?.length?(n.name=this.parseString(s.value),n):(this.processChildren(s,n,{name:(a,i)=>i.name=this.parseString(a.value),email:(a,i)=>{let o=t.metadata.get("decoder");i.email=o?.getConverter("email")?.convert(a,t)},link:(a,i)=>{let o=t.metadata.get("decoder");i.link=o?.getConverter("link")?.convert(a,t)}}),n)}},$e=class extends X{constructor(){super(...arguments);this.name="email-converter";this.supportedTags=["email"]}convert(s,t){return{id:s.attributes?.id,domain:s.attributes?.domain}}},Qe=class extends X{constructor(){super(...arguments);this.name="copyright-converter";this.supportedTags=["copyright"]}convert(s,t){let n={};return s.attributes?.author&&(n.author=s.attributes.author),this.processChildren(s,n,{year:(a,i)=>i.year=this.parseString(a.value),license:(a,i)=>i.license=this.parseString(a.value)}),n}},je=class extends X{constructor(){super(...arguments);this.name="bounds-converter";this.supportedTags=["bounds"]}convert(s,t){let n={};return this.extractAttributes(s,n,{minlat:"minlat",minlon:"minlon",maxlat:"maxlat",maxlon:"maxlon"}),n}},Ze=class extends X{constructor(){super(...arguments);this.name="extensions-converter";this.supportedTags=["extensions"]}convert(s,t){let n={};return s.children?.forEach(a=>{this.flattenExtensionElement(a,n)}),n}flattenExtensionElement(s,t){if(!s.children?.length&&s.value!==void 0){t[s.tag]=this.parseExtensionValue(s.value);return}s.children?.length&&s.children.forEach(n=>{this.flattenExtensionElement(n,t)})}parseExtensionValue(s){if(s===void 0)return;let t=String(s),n=parseFloat(t);return!isNaN(n)&&isFinite(n)?n:t}};var on=require("htmlparser2");var qe=class{constructor(){this.stage="tokenize"}async process(e){let s=Date.now();if(!e.xmlContent)throw new Error("XML content cannot be empty");let t=[],n=new on.Parser({onopentag(a,i){t.push({type:"open",tag:a,attributes:i})},ontext(a){let i=a.replace(/\n/g,"").trim();i&&t.push({type:"text",tag:"text",value:i})},onclosetag(a){t.push({type:"close",tag:a})}},{xmlMode:!0});return n.write(e.xmlContent),n.end(),e.tokens=t,e.performance.tokenizeTime=Date.now()-s,e}},xe=class{constructor(){this.stage="ast_generate"}async process(e){let s=Date.now();if(!e.tokens)throw new Error("Tokens cannot be empty");let t=[],n,a=null;for(let i of e.tokens)if(i.type==="open"){let o={tag:i.tag,attributes:i.attributes||{},children:[]};n?a&&a.children?.push(o):n=o,t.push(o),a=o}else i.type==="text"&&a?a.value=i.value:i.type==="close"&&(t.pop(),a=t[t.length-1]||null);return e.ast=n,e.performance.astTime=Date.now()-s,e}},es=class{constructor(e){this.getConverter=e;this.stage="convert"}async process(e){let s=Date.now();if(!e.ast)throw new Error("AST cannot be empty");if(e.ast.tag!=="gpx")throw new Error(`Not a valid GPX document: expected <gpx>, received <${e.ast.tag}>`);let t={};return e.ast.attributes&&Object.entries(e.ast.attributes).forEach(([n,a])=>{n.startsWith("xmlns:")?t[n]=a.replace(/'/g,"'"):n==="xsi:schemaLocation"?t[n]=a.replace(/'/g,"'"):t[n]=a}),e.ast.children?.forEach(n=>{let a=this.getConverter(n.tag);if(!a){e.warnings.push(`Unsupported GPX element "${n.tag}" was ignored`);return}try{let i=a.convert(n,e);i&&this.assignResult(t,n.tag,i)}catch(i){throw e.errors.push(i),new Error(`GPX converter "${a.name}" failed for ${n.tag}: ${i.message}`)}}),e.result=t,e.performance.convertTime=Date.now()-s,e}assignResult(e,s,t){switch(s){case"metadata":e.metadata=t;break;case"wpt":e.wpt||(e.wpt=[]),e.wpt.push(t);break;case"rte":e.rte||(e.rte=[]),e.rte.push(t);break;case"trk":e.trk||(e.trk=[]),e.trk.push(t);break;case"extensions":e.extensions=t;break}}},ss=class{constructor(){this.stage="complete"}async process(e){e.performance.endTime=Date.now();let s=e.performance.endTime-e.performance.startTime;return e.metadata.set("performance",{totalTime:s,tokenizeTime:e.performance.tokenizeTime,astTime:e.performance.astTime,convertTime:e.performance.convertTime}),e}};var ts=class{constructor(){this.converterPlugins=new Map;this.registeredPlugins=new Set;this.middlewarePlugins=[];this.processors=[];this.initialized=!1;this.defaultConvertersRegistered=!1;this.initializePipeline()}initializePipeline(){this.processors=[new qe,new xe,new es(e=>this.getConverter(e)),new ss]}async registerDefaultConverters(){if(this.defaultConvertersRegistered)return;let e=[new Ke,new ke,new Ne,new Xe,new Ye,new ze,new Je,new $e,new Qe,new je,new Ze];for(let s of e)s.supportedTags?.forEach(t=>{this.addConverterForTag(t,s)}),this.registeredPlugins.add(s.name);this.defaultConvertersRegistered=!0}addConverterForTag(e,s){this.converterPlugins.has(e)||this.converterPlugins.set(e,[]);let t=this.converterPlugins.get(e);t.push(s),t.sort((n,a)=>(n.priority||100)-(a.priority||100))}async registerConverter(e){if(this.registeredPlugins.has(e.name))throw new Error(`Converter plugin ${e.name} already exists`);e.supportedTags?.forEach(s=>{this.addConverterForTag(s,e)}),this.registeredPlugins.add(e.name)}async registerMiddleware(e){let s=this.middlewarePlugins.findIndex(t=>t.name===e.name);s!==-1?this.middlewarePlugins[s]=e:this.middlewarePlugins.push(e)}getConverter(e){let s=this.converterPlugins.get(e);return s&&s.length>0?s[0]:void 0}getAllConverters(e){return this.converterPlugins.get(e)||[]}unregisterConverter(e){let s;for(let[t,n]of this.converterPlugins){let a=n.findIndex(i=>i.name===e);a!==-1&&(s=n[a],n.splice(a,1),n.length===0&&this.converterPlugins.delete(t))}s&&this.registeredPlugins.delete(e)}unregisterMiddleware(e){let s=this.middlewarePlugins.findIndex(t=>t.name===e);s!==-1&&this.middlewarePlugins.splice(s,1)}listConverters(){return Array.from(this.converterPlugins.keys())}listConverterPlugins(){return Array.from(this.registeredPlugins)}listMiddlewares(){return this.middlewarePlugins.map(e=>e.name)}listProcessors(){return this.processors.map(e=>e.constructor.name)}getConverterDetails(e){let s={};if(e){let t=this.converterPlugins.get(e);t&&(s[e]=t.map(n=>({name:n.name,priority:n.priority||100})))}else for(let[t,n]of this.converterPlugins)s[t]=n.map(a=>({name:a.name,priority:a.priority||100}));return s}getMiddlewareDetails(){return this.middlewarePlugins.map(e=>{let s=[];return e.onTokenize&&s.push("onTokenize"),e.onAstGenerate&&s.push("onAstGenerate"),e.onConvert&&s.push("onConvert"),e.onComplete&&s.push("onComplete"),e.onError&&s.push("onError"),{name:e.name,hooks:s}})}async initialize(){if(this.initialized)return;await this.registerDefaultConverters();let e=this.createContext(),s=[...new Map([...Array.from(this.converterPlugins.values()).flat(),...this.middlewarePlugins].map(t=>[t.name,t])).values()];for(let t of s)await t.initialize?.(e);this.initialized=!0}async destroy(){if(!this.initialized)return;let e=this.createContext(),s=[...new Map([...Array.from(this.converterPlugins.values()).flat(),...this.middlewarePlugins].map(t=>[t.name,t])).values()];for(let t of s)await t.destroy?.(e);this.initialized=!1}createContext(){return{metadata:new Map,errors:[],warnings:[],stats:{startTime:Date.now(),processedTokens:0,convertedElements:0},performance:{startTime:Date.now()}}}async executeMiddlewareHook(e,s,t){let n=s;for(let a of this.middlewarePlugins){let i=a[e];if(i)try{n=await i.call(a,n,t)||n}catch(o){t.errors.push(o),await a.onError?.(o,t)}}return n}async parserByBuffer(e){await this.initialize();let s=this.createContext();s.rawData=e,s.xmlContent=e.toString("utf-8"),s.metadata.set("decoder",this);for(let t of this.processors)try{switch(s=await t.process(s),t.stage){case"tokenize":s.tokens&&(s.tokens=await this.executeMiddlewareHook("onTokenize",s.tokens,s));break;case"ast_generate":s.ast&&(s.ast=await this.executeMiddlewareHook("onAstGenerate",s.ast,s));break;case"convert":s.result&&(s.result=await this.executeMiddlewareHook("onConvert",s.result,s));break;case"complete":s.result&&(s.result=await this.executeMiddlewareHook("onComplete",s.result,s));break}}catch(n){s.errors.push(n);for(let a of this.middlewarePlugins)await a.onError?.(n,s);throw new Error(`GPX pipeline stage "${t.stage}" failed: ${n.message}`)}return s.result}convertExtensions(e){let s={},{attributes:t,tag:n,value:a}=e;if(t&&Object.entries(t).forEach(([i,o])=>{s[i]=o}),e?.children?.length)e.children?.forEach(i=>{s[i.tag]=this.convertExtensions(i)});else if(a!==void 0)return a;return s}};var st=J(require("dayjs"),1),un=J(require("dayjs/plugin/utc.js"),1);var xs={temperature:"atemp",wtemp:"wtemp",heartRate:"hr",cadence:"cad"};var et={temperature:"Temperature",Depth:"Depth"};st.default.extend(un.default);var ns=class{constructor(e={}){this.formatElevation=e=>{let s=parseFloat(e);return isNaN(s)?e:this.roundTo(s,2).toString()};this.compact=e.compact??!0}async encode(e){let s=this.buildGPXXML(e);return Buffer.from(s,"utf-8")}encodeToString(e){return this.buildGPXXML(e)}buildGPXXML(e){let s=this.buildXMLHeader(e),t=this.buildGPXContent(e),a=`${s}${t}
|
|
1
|
+
"use strict";var pn=Object.create;var _e=Object.defineProperty;var mn=Object.getOwnPropertyDescriptor;var dn=Object.getOwnPropertyNames;var rn=Object.getPrototypeOf,Tn=Object.prototype.hasOwnProperty;var v=(l,e)=>()=>(l&&(e=l(l=0)),e);var lt=(l,e)=>{for(var s in e)_e(l,s,{get:e[s],enumerable:!0})},ot=(l,e,s,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of dn(e))!Tn.call(l,n)&&n!==s&&_e(l,n,{get:()=>e[n],enumerable:!(t=mn(e,n))||t.enumerable});return l};var k=(l,e,s)=>(s=l!=null?pn(rn(l)):{},ot(e||!l||!l.__esModule?_e(s,"default",{value:l,enumerable:!0}):s,l)),_n=l=>ot(_e({},"__esModule",{value:!0}),l);var ye,Ds,X,he=v(()=>{ye=[0,52225,55297,5120,61441,15360,10240,58369,40961,27648,30720,46081,20480,39937,34817,17408],Ds=class l{#s=0;constructor(){}get crc(){return this.#s}#e(e){let s=ye[this.#s&15];return this.#s=this.#s>>4&4095,this.#s=this.#s^s^ye[e&15],s=ye[this.#s&15],this.#s=this.#s>>4&4095,this.#s=this.#s^s^ye[e>>4&15],this.#s}addBytes(e,s,t){for(let n=s;n<t;n++)this.#s=this.#e(e[n]);return this.#s}static calculateCRC(e,s,t){return new l().addBytes(e,s,t)}},X=Ds});var Hs,ws,Tt,_t=v(()=>{Hs=class{#s=0;#e=0;constructor(e){this.#s=e,this.#e=e}accumulate(e,s){let t=(1<<s)-1;return this.#s+=e-this.#e&t,this.#e=e,this.#s}},ws=class{#s={};createAccumulatedField(e,s,t){let n=new Hs(t);return this.#s[e]==null&&(this.#s[e]={}),this.#s[e][s]=n,n}accumulate(e,s,t,n){let a=this.#s[e]?.[s];return a==null&&(a=this.createAccumulatedField(e,s,t)),a.accumulate(t,n)}},Tt=ws});var y,gn,Cn,En,Sn,On,Fn,Dn,Hn,At,wn,ct,bt,It,vn,yt,Un,ht,d,$=v(()=>{y={ENUM:0,SINT8:1,UINT8:2,SINT16:3,UINT16:4,SINT32:5,UINT32:6,STRING:7,FLOAT32:8,FLOAT64:9,UINT8Z:10,UINT16Z:11,UINT32Z:12,BYTE:13,SINT64:14,UINT64:15,UINT64Z:16},gn=31,Cn={0:{size:1,type:y.ENUM,baseTypeEndianFlag:0,invalid:255},1:{size:1,type:y.SINT8,baseTypeEndianFlag:0,invalid:127},2:{size:1,type:y.UINT8,baseTypeEndianFlag:0,invalid:255},3:{size:2,type:y.SINT16,baseTypeEndianFlag:128,invalid:32767},4:{size:2,type:y.UINT16,baseTypeEndianFlag:128,invalid:65535},5:{size:4,type:y.SINT32,baseTypeEndianFlag:128,invalid:2147483647},6:{size:4,type:y.UINT32,baseTypeEndianFlag:128,invalid:4294967295},7:{size:1,type:y.STRING,baseTypeEndianFlag:0,invalid:0},8:{size:4,type:y.FLOAT32,baseTypeEndianFlag:128,invalid:4294967295},9:{size:8,type:y.FLOAT64,baseTypeEndianFlag:128,invalid:18446744073709552e3},10:{size:1,type:y.UINT8Z,baseTypeEndianFlag:0,invalid:0},11:{size:2,type:y.UINT16Z,baseTypeEndianFlag:128,invalid:0},12:{size:4,type:y.UINT32Z,baseTypeEndianFlag:128,invalid:0},13:{size:1,type:y.BYTE,baseTypeEndianFlag:0,invalid:255},14:{size:8,type:y.SINT64,baseTypeEndianFlag:128,invalid:9223372036854776e3},15:{size:8,type:y.UINT64,baseTypeEndianFlag:128,invalid:18446744073709552e3},16:{size:8,type:y.UINT64Z,baseTypeEndianFlag:128,invalid:0}},En=["sint8","uint8","sint16","uint16","sint32","uint32","float32","float64","uint8z","uint16z","uint32z","byte","sint64","uint64","uint64z"],Sn={enum:"number",sint8:"number",uint8:"number",sint16:"number",uint16:"number",sint32:"number",uint32:"number",string:"string",float32:"number",float64:"number",uint8z:"number",uint16z:"number",uint32z:"number",byte:"number",sint64:"bigint",uint64:"bigint",uint64z:"bigint"},On=["sint64","uint64","uint64z"],Fn=["float32","float64"],Dn={enum:y.UINT8,sint8:y.SINT8,uint8:y.UINT8,sint16:y.SINT16,uint16:y.UINT16,sint32:y.SINT32,uint32:y.UINT32,string:y.STRING,float32:y.FLOAT32,float64:y.FLOAT64,uint8z:y.UINT8Z,uint16z:y.UINT16Z,uint32z:y.UINT32Z,byte:y.BYTE,sint64:y.SINT64,uint64:y.UINT64,uint64z:y.UINT64Z},Hn={[y.ENUM]:"enum",[y.SINT8]:"sint8",[y.UINT8]:"uint8",[y.SINT16]:"sint16",[y.UINT16]:"uint16",[y.SINT32]:"sint32",[y.UINT32]:"uint32",[y.STRING]:"string",[y.FLOAT32]:"float32",[y.FLOAT64]:"float64",[y.UINT8Z]:"uint8z",[y.UINT16Z]:"uint16z",[y.UINT32Z]:"uint32z",[y.BYTE]:"byte",[y.SINT64]:"sint64",[y.UINT64]:"uint64",[y.UINT64Z]:"uint64z"},At=l=>l==null,wn=l=>typeof l=="object",ct=l=>typeof l=="boolean",bt=l=>typeof l=="object"&&l instanceof Date,It=l=>typeof l=="string",vn=l=>typeof l=="bigint",yt=l=>{if(typeof l=="number")return!isNaN(l)&&isFinite(l);if(typeof l=="bigint")return!0;let e=parseFloat(l);return!isNaN(e)&&isFinite(e)},Un=l=>!ht(l),ht=l=>!(At(l)||!yt(l)&&!bt(l)&&!It(l)&&!ct(l)),d={BaseType:y,BaseTypeMask:gn,BaseTypeDefinitions:Cn,NumericFieldTypes:En,BigIntFieldTypes:On,FloatingPointFieldTypes:Fn,FieldTypeToBaseType:Dn,BaseTypeToFieldType:Hn,FieldTypeToJsType:Sn,isNullOrUndefined:At,isObject:wn,isBoolean:ct,isDate:bt,isString:It,isBigInt:vn,isNumeric:yt,isNumberStringDateOrBoolean:ht,isNotNumberStringDateOrBoolean:Un,MAX_FIELD_SIZE:255,FIELD_DEFAULT_SCALE:1,FIELD_DEFAULT_OFFSET:0,MESG_DEFINITION_MASK:64,LOCAL_MESG_NUM_MASK:15,ARCH_LITTLE_ENDIAN:0,DEV_DATA_MASK:32,NULL_TERMINATOR:"\0"}});var vs,Rt,Lt=v(()=>{$();vs=class{#s=null;#e=0;#t=0;#a=0;#n=0;#o=0;constructor(e,s=d.BaseType.UINT8){this.#s=Array.isArray(e)?e:[e];let t=d.BaseTypeDefinitions[s].size;this.#t=t*8,this.reset()}get bitsAvailable(){return this.#o}get hasBitsAvailable(){return this.#o>0}reset(){this.#e=0,this.#o=this.#t*this.#s.length,this.#u()}readBit(){this.hasBitsAvailable||this.#l(),this.#n>=this.#t&&this.#u();let e=this.#a&1;return this.#a=this.#a>>1,this.#n++,this.#o--,e}readBits(e){let s=0n;for(let t=0n;t<e;t++)s|=BigInt(this.readBit())<<t;return Number(s)}#u(){this.#e>=this.#s.length&&this.#l(),this.#a=this.#s[this.#e++],this.#n=0}#l(e=""){throw Error("FIT Runtime Error no bits available.")}},Rt=vs});var Us,Bn,Gn,Q,ue=v(()=>{$();Us=6310656e5,Bn=l=>new Date((l??0)*1e3+Us),Gn=l=>(l.getTime()-Us)/1e3,Q={FIT_EPOCH_MS:Us,convertDateTimeToDate:Bn,convertDateToDateTime:Gn,FitBaseType:d.BaseType,BaseTypeToFieldType:d.BaseTypeToFieldType,FieldTypeToBaseType:d.FieldTypeToBaseType}});var Mn,gt,Ct,fe,Et,St=v(()=>{ue();Mn=(l,e)=>{if(l==null||e==null||l.length==0||e.length==0)return;let s=gt(l),t=0,n=null;for(let a=0;a<e.length;++a){let i=e[a],o=0,u=0,p=Ct(i.timestamp);n==null&&(n=p),n===p&&(n--,t=t>=1?t-1:0);let T=!0;for(;T&&t<s.length;){let r=s[t];if(r.timestamp>n&&r.timestamp<=p)o+=r.heartRate,u++;else if(r.timestamp>p){if(T=!1,u>0){let c=Math.round(o/u);i.heartRate=c}o=0,u=0,n=p;break}t++}}},gt=l=>{if(l==null||l.length==0)return[];let a=0,i=null,o=[];return l.forEach(u=>{u==null&&fe("HR mesg must not be null");let p=Array.isArray(u.eventTimestamp)?u.eventTimestamp:[u.eventTimestamp],T=Array.isArray(u.filteredBpm)?u.filteredBpm:[u.filteredBpm];u.timestamp!=null&&(i=Ct(u.timestamp),u.fractionalTimestamp!=null&&(i+=u.fractionalTimestamp),p.length==1?a=p[0]:fe("anchor HR mesg must have 1 event_timestamp")),i==null||a==null?fe("no anchor timestamp received in a HR mesg before delta HR mesgs"):p.length!=T.length&&fe("HR mesg with mismatching event timestamp and filtered bpm");for(let r=0;r<p.length;r++){let c=p[r];c<a&&(a-c>4194304?c+=4194304:fe("anchor event_timestamp is greater than subsequent event_timestamp. This does not allow for correct delta calculation."));let h={timestamp:i,heartRate:T[r]};if(h.timestamp+=c-a,o.length>0){let C=o[o.length-1],E=Math.abs(h.timestamp-C.timestamp)*1e3,_=1;for(;E>250&&_<=20;){let b={timestamp:C.timestamp,heartRate:C.heartRate};b.timestamp+=.25*_,o.push(b),E-=250,_++}}o.push(h)}}),o},Ct=l=>l instanceof Date?(l.getTime()-Q.FIT_EPOCH_MS)/1e3:l,fe=(l="")=>{throw Error(`FIT Runtime Error ${l}`.trimEnd())},Et={mergeHeartRates:Mn,expandHeartRates:gt}});var Pn,O,ne=v(()=>{Pn={version:{major:21,minor:202,patch:0,type:"Release"},CommonFields:{PartIndex:250,Timestamp:253,MessageIndex:254},messages:{0:{num:0,name:"fileId",messagesKey:"fileIdMesgs",fields:{0:{num:0,name:"type",type:"file",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"manufacturer",type:"manufacturer",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"product",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"faveroProduct",type:"faveroProduct",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"manufacturer",value:263}]},{name:"garminProduct",type:"garminProduct",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"manufacturer",value:1},{name:"manufacturer",value:15},{name:"manufacturer",value:13},{name:"manufacturer",value:89}]}]},3:{num:3,name:"serialNumber",type:"uint32z",baseType:"uint32z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"timeCreated",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"number",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"productName",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},49:{num:49,name:"fileCreator",messagesKey:"fileCreatorMesgs",fields:{0:{num:0,name:"softwareVersion",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"hardwareVersion",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},162:{num:162,name:"timestampCorrelation",messagesKey:"timestampCorrelationMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"fractionalTimestamp",type:"uint16",baseType:"uint16",array:!1,scale:32768,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"systemTimestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"fractionalSystemTimestamp",type:"uint16",baseType:"uint16",array:!1,scale:32768,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"localTimestamp",type:"localDateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"systemTimestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},35:{num:35,name:"software",messagesKey:"softwareMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"version",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"partNumber",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},106:{num:106,name:"slaveDevice",messagesKey:"slaveDeviceMesgs",fields:{0:{num:0,name:"manufacturer",type:"manufacturer",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"product",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"faveroProduct",type:"faveroProduct",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"manufacturer",value:263}]},{name:"garminProduct",type:"garminProduct",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"manufacturer",value:1},{name:"manufacturer",value:15},{name:"manufacturer",value:13},{name:"manufacturer",value:89}]}]}}},1:{num:1,name:"capabilities",messagesKey:"capabilitiesMesgs",fields:{0:{num:0,name:"languages",type:"uint8z",baseType:"uint8z",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"sports",type:"sportBits0",baseType:"uint8z",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},21:{num:21,name:"workoutsSupported",type:"workoutCapabilities",baseType:"uint32z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},23:{num:23,name:"connectivitySupported",type:"connectivityCapabilities",baseType:"uint32z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},37:{num:37,name:"fileCapabilities",messagesKey:"fileCapabilitiesMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"type",type:"file",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"flags",type:"fileFlags",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"directory",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"maxCount",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"maxSize",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"bytes",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},38:{num:38,name:"mesgCapabilities",messagesKey:"mesgCapabilitiesMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"file",type:"file",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"mesgNum",type:"mesgNum",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"countType",type:"mesgCount",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"count",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"numPerFile",type:"uint16",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"countType",value:0}]},{name:"maxPerFile",type:"uint16",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"countType",value:1}]},{name:"maxPerFileType",type:"uint16",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"countType",value:2}]}]}}},39:{num:39,name:"fieldCapabilities",messagesKey:"fieldCapabilitiesMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"file",type:"file",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"mesgNum",type:"mesgNum",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"fieldNum",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"count",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},2:{num:2,name:"deviceSettings",messagesKey:"deviceSettingsMesgs",fields:{0:{num:0,name:"activeTimeZone",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"utcOffset",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"timeOffset",type:"uint32",baseType:"uint32",array:!0,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"timeMode",type:"timeMode",baseType:"enum",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"timeZoneOffset",type:"sint8",baseType:"sint8",array:!0,scale:4,offset:0,units:"hr",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"backlightMode",type:"backlightMode",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},36:{num:36,name:"activityTrackerEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},39:{num:39,name:"clockTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},40:{num:40,name:"pagesEnabled",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},46:{num:46,name:"moveAlertEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},47:{num:47,name:"dateMode",type:"dateMode",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},55:{num:55,name:"displayOrientation",type:"displayOrientation",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},56:{num:56,name:"mountingSide",type:"side",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},57:{num:57,name:"defaultPage",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},58:{num:58,name:"autosyncMinSteps",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"steps",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},59:{num:59,name:"autosyncMinTime",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"minutes",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},80:{num:80,name:"lactateThresholdAutodetectEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},86:{num:86,name:"bleAutoUploadEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},89:{num:89,name:"autoSyncFrequency",type:"autoSyncFrequency",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},90:{num:90,name:"autoActivityDetect",type:"autoActivityDetect",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},94:{num:94,name:"numberOfScreens",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},95:{num:95,name:"smartNotificationDisplayOrientation",type:"displayOrientation",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},134:{num:134,name:"tapInterface",type:"switch",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},174:{num:174,name:"tapSensitivity",type:"tapSensitivity",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},3:{num:3,name:"userProfile",messagesKey:"userProfileMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"friendlyName",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"gender",type:"gender",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"age",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"years",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"height",type:"uint8",baseType:"uint8",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"weight",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"kg",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"language",type:"language",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"elevSetting",type:"displayMeasure",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"weightSetting",type:"displayMeasure",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"restingHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"defaultMaxRunningHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"defaultMaxBikingHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"defaultMaxHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"hrSetting",type:"displayHeart",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"speedSetting",type:"displayMeasure",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},14:{num:14,name:"distSetting",type:"displayMeasure",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},16:{num:16,name:"powerSetting",type:"displayPower",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},17:{num:17,name:"activityClass",type:"activityClass",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},18:{num:18,name:"positionSetting",type:"displayPosition",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},21:{num:21,name:"temperatureSetting",type:"displayMeasure",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},22:{num:22,name:"localId",type:"userLocalId",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},23:{num:23,name:"globalId",type:"byte",baseType:"byte",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},28:{num:28,name:"wakeTime",type:"localtimeIntoDay",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},29:{num:29,name:"sleepTime",type:"localtimeIntoDay",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},30:{num:30,name:"heightSetting",type:"displayMeasure",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},31:{num:31,name:"userRunningStepLength",type:"uint16",baseType:"uint16",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},32:{num:32,name:"userWalkingStepLength",type:"uint16",baseType:"uint16",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},47:{num:47,name:"depthSetting",type:"displayMeasure",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},49:{num:49,name:"diveCount",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},4:{num:4,name:"hrmProfile",messagesKey:"hrmProfileMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"enabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"hrmAntId",type:"uint16z",baseType:"uint16z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"logHrv",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"hrmAntIdTransType",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},5:{num:5,name:"sdmProfile",messagesKey:"sdmProfileMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"enabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"sdmAntId",type:"uint16z",baseType:"uint16z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"sdmCalFactor",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"odometer",type:"uint32",baseType:"uint32",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"speedSource",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"sdmAntIdTransType",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"odometerRollover",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},6:{num:6,name:"bikeProfile",messagesKey:"bikeProfileMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"name",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"sport",type:"sport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"subSport",type:"subSport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"odometer",type:"uint32",baseType:"uint32",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"bikeSpdAntId",type:"uint16z",baseType:"uint16z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"bikeCadAntId",type:"uint16z",baseType:"uint16z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"bikeSpdcadAntId",type:"uint16z",baseType:"uint16z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"bikePowerAntId",type:"uint16z",baseType:"uint16z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"customWheelsize",type:"uint16",baseType:"uint16",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"autoWheelsize",type:"uint16",baseType:"uint16",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"bikeWeight",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"kg",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"powerCalFactor",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"autoWheelCal",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"autoPowerZero",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},14:{num:14,name:"id",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},15:{num:15,name:"spdEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},16:{num:16,name:"cadEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},17:{num:17,name:"spdcadEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},18:{num:18,name:"powerEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},19:{num:19,name:"crankLength",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:-110,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},20:{num:20,name:"enabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},21:{num:21,name:"bikeSpdAntIdTransType",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},22:{num:22,name:"bikeCadAntIdTransType",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},23:{num:23,name:"bikeSpdcadAntIdTransType",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},24:{num:24,name:"bikePowerAntIdTransType",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},37:{num:37,name:"odometerRollover",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},38:{num:38,name:"frontGearNum",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},39:{num:39,name:"frontGear",type:"uint8z",baseType:"uint8z",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},40:{num:40,name:"rearGearNum",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},41:{num:41,name:"rearGear",type:"uint8z",baseType:"uint8z",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},44:{num:44,name:"shimanoDi2Enabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},127:{num:127,name:"connectivity",messagesKey:"connectivityMesgs",fields:{0:{num:0,name:"bluetoothEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"bluetoothLeEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"antEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"name",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"liveTrackingEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"weatherConditionsEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"weatherAlertsEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"autoActivityUploadEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"courseDownloadEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"workoutDownloadEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"gpsEphemerisDownloadEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"incidentDetectionEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"grouptrackEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},159:{num:159,name:"watchfaceSettings",messagesKey:"watchfaceSettingsMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"mode",type:"watchfaceMode",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"layout",type:"byte",baseType:"byte",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"digitalLayout",type:"digitalWatchfaceLayout",baseType:"enum",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"mode",value:0}]},{name:"analogLayout",type:"analogWatchfaceLayout",baseType:"enum",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"mode",value:1}]}]}}},188:{num:188,name:"ohrSettings",messagesKey:"ohrSettingsMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"enabled",type:"switch",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},216:{num:216,name:"timeInZone",messagesKey:"timeInZoneMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"referenceMesg",type:"mesgNum",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"referenceIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"timeInHrZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"timeInSpeedZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"timeInCadenceZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"timeInPowerZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"hrZoneHighBoundary",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"speedZoneHighBoundary",type:"uint16",baseType:"uint16",array:!0,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"cadenceZoneHighBondary",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"powerZoneHighBoundary",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"hrCalcType",type:"hrZoneCalc",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"maxHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"restingHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"thresholdHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},14:{num:14,name:"pwrCalcType",type:"pwrZoneCalc",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},15:{num:15,name:"functionalThresholdPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},7:{num:7,name:"zonesTarget",messagesKey:"zonesTargetMesgs",fields:{1:{num:1,name:"maxHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"thresholdHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"functionalThresholdPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"hrCalcType",type:"hrZoneCalc",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"pwrCalcType",type:"pwrZoneCalc",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},12:{num:12,name:"sport",messagesKey:"sportMesgs",fields:{0:{num:0,name:"sport",type:"sport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"subSport",type:"subSport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"name",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},8:{num:8,name:"hrZone",messagesKey:"hrZoneMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"highBpm",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"name",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},53:{num:53,name:"speedZone",messagesKey:"speedZoneMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"highValue",type:"uint16",baseType:"uint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"name",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},131:{num:131,name:"cadenceZone",messagesKey:"cadenceZoneMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"highValue",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"name",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},9:{num:9,name:"powerZone",messagesKey:"powerZoneMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"highValue",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"name",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},10:{num:10,name:"metZone",messagesKey:"metZoneMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"highBpm",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"calories",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"kcal / min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"fatCalories",type:"uint8",baseType:"uint8",array:!1,scale:10,offset:0,units:"kcal / min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},13:{num:13,name:"trainingSettings",messagesKey:"trainingSettingsMesgs",fields:{31:{num:31,name:"targetDistance",type:"uint32",baseType:"uint32",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},32:{num:32,name:"targetSpeed",type:"uint16",baseType:"uint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},33:{num:33,name:"targetTime",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},153:{num:153,name:"preciseTargetSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e6,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},258:{num:258,name:"diveSettings",messagesKey:"diveSettingsMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"name",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"model",type:"tissueModelType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"gfLow",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"gfHigh",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"waterType",type:"waterType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"waterDensity",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"kg/m^3",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"po2Warn",type:"uint8",baseType:"uint8",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"po2Critical",type:"uint8",baseType:"uint8",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"po2Deco",type:"uint8",baseType:"uint8",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"safetyStopEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"bottomDepth",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"bottomTime",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"apneaCountdownEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"apneaCountdownTime",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},14:{num:14,name:"backlightMode",type:"diveBacklightMode",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},15:{num:15,name:"backlightBrightness",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},16:{num:16,name:"backlightTimeout",type:"backlightTimeout",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},17:{num:17,name:"repeatDiveInterval",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},18:{num:18,name:"safetyStopTime",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},19:{num:19,name:"heartRateSourceType",type:"sourceType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},20:{num:20,name:"heartRateSource",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"heartRateAntplusDeviceType",type:"antplusDeviceType",baseType:"uint8",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"heartRateSourceType",value:1}]},{name:"heartRateLocalDeviceType",type:"localDeviceType",baseType:"uint8",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"heartRateSourceType",value:5}]}]},21:{num:21,name:"travelGas",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},22:{num:22,name:"ccrLowSetpointSwitchMode",type:"ccrSetpointSwitchMode",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},23:{num:23,name:"ccrLowSetpoint",type:"uint8",baseType:"uint8",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},24:{num:24,name:"ccrLowSetpointDepth",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},25:{num:25,name:"ccrHighSetpointSwitchMode",type:"ccrSetpointSwitchMode",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},26:{num:26,name:"ccrHighSetpoint",type:"uint8",baseType:"uint8",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},27:{num:27,name:"ccrHighSetpointDepth",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},29:{num:29,name:"gasConsumptionDisplay",type:"gasConsumptionRateType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},30:{num:30,name:"upKeyEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},35:{num:35,name:"diveSounds",type:"tone",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},36:{num:36,name:"lastStopMultiple",type:"uint8",baseType:"uint8",array:!1,scale:10,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},37:{num:37,name:"noFlyTimeMode",type:"noFlyTimeMode",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},262:{num:262,name:"diveAlarm",messagesKey:"diveAlarmMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"depth",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"time",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"enabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"alarmType",type:"diveAlarmType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"sound",type:"tone",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"diveTypes",type:"subSport",baseType:"enum",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"id",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"popupEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"triggerOnDescent",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"triggerOnAscent",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"repeating",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"speed",type:"sint32",baseType:"sint32",array:!1,scale:1e3,offset:0,units:"mps",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},393:{num:393,name:"diveApneaAlarm",messagesKey:"diveApneaAlarmMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"depth",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"time",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"enabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"alarmType",type:"diveAlarmType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"sound",type:"tone",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"diveTypes",type:"subSport",baseType:"enum",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"id",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"popupEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"triggerOnDescent",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"triggerOnAscent",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"repeating",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"speed",type:"sint32",baseType:"sint32",array:!1,scale:1e3,offset:0,units:"mps",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},259:{num:259,name:"diveGas",messagesKey:"diveGasMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"heliumContent",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"oxygenContent",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"status",type:"diveGasStatus",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"mode",type:"diveGasMode",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},15:{num:15,name:"goal",messagesKey:"goalMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"sport",type:"sport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"subSport",type:"subSport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"startDate",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"endDate",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"type",type:"goal",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"value",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"repeat",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"targetValue",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"recurrence",type:"goalRecurrence",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"recurrenceValue",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"enabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"source",type:"goalSource",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},34:{num:34,name:"activity",messagesKey:"activityMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"totalTimerTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"numSessions",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"type",type:"activity",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"event",type:"event",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"eventType",type:"eventType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"localTimestamp",type:"localDateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"eventGroup",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},18:{num:18,name:"session",messagesKey:"sessionMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"event",type:"event",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"eventType",type:"eventType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"startTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"startPositionLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"startPositionLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"sport",type:"sport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"subSport",type:"subSport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"totalElapsedTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"totalTimerTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"totalDistance",type:"uint32",baseType:"uint32",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"totalCycles",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"cycles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"totalStrides",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"strides",bits:[],components:[],hasComponents:!1,map:[{name:"sport",value:1},{name:"sport",value:11}]},{name:"totalStrokes",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"strokes",bits:[],components:[],hasComponents:!1,map:[{name:"sport",value:2},{name:"sport",value:5},{name:"sport",value:15},{name:"sport",value:37}]}]},11:{num:11,name:"totalCalories",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"kcal",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"totalFatCalories",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"kcal",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},14:{num:14,name:"avgSpeed",type:"uint16",baseType:"uint16",array:!1,scale:[1e3],offset:[0],units:["m/s"],bits:[16],components:["124"],isAccumulated:!1,hasComponents:!0,subFields:[]},15:{num:15,name:"maxSpeed",type:"uint16",baseType:"uint16",array:!1,scale:[1e3],offset:[0],units:["m/s"],bits:[16],components:["125"],isAccumulated:!1,hasComponents:!0,subFields:[]},16:{num:16,name:"avgHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},17:{num:17,name:"maxHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},18:{num:18,name:"avgCadence",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"avgRunningCadence",type:"uint8",baseType:"uint8",scale:1,offset:0,units:"strides/min",bits:[],components:[],hasComponents:!1,map:[{name:"sport",value:1}]}]},19:{num:19,name:"maxCadence",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"maxRunningCadence",type:"uint8",baseType:"uint8",scale:1,offset:0,units:"strides/min",bits:[],components:[],hasComponents:!1,map:[{name:"sport",value:1}]}]},20:{num:20,name:"avgPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},21:{num:21,name:"maxPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},22:{num:22,name:"totalAscent",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},23:{num:23,name:"totalDescent",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},24:{num:24,name:"totalTrainingEffect",type:"uint8",baseType:"uint8",array:!1,scale:10,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},25:{num:25,name:"firstLapIndex",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},26:{num:26,name:"numLaps",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},27:{num:27,name:"eventGroup",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},28:{num:28,name:"trigger",type:"sessionTrigger",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},29:{num:29,name:"necLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},30:{num:30,name:"necLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},31:{num:31,name:"swcLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},32:{num:32,name:"swcLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},33:{num:33,name:"numLengths",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"lengths",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},34:{num:34,name:"normalizedPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},35:{num:35,name:"trainingStressScore",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"tss",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},36:{num:36,name:"intensityFactor",type:"uint16",baseType:"uint16",array:!1,scale:1e3,offset:0,units:"if",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},37:{num:37,name:"leftRightBalance",type:"leftRightBalance100",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},38:{num:38,name:"endPositionLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},39:{num:39,name:"endPositionLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},41:{num:41,name:"avgStrokeCount",type:"uint32",baseType:"uint32",array:!1,scale:10,offset:0,units:"strokes/lap",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},42:{num:42,name:"avgStrokeDistance",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},43:{num:43,name:"swimStroke",type:"swimStroke",baseType:"enum",array:!1,scale:1,offset:0,units:"swim_stroke",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},44:{num:44,name:"poolLength",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},45:{num:45,name:"thresholdPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},46:{num:46,name:"poolLengthUnit",type:"displayMeasure",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},47:{num:47,name:"numActiveLengths",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"lengths",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},48:{num:48,name:"totalWork",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"J",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},49:{num:49,name:"avgAltitude",type:"uint16",baseType:"uint16",array:!1,scale:[5],offset:[500],units:["m"],bits:[16],components:["126"],isAccumulated:!1,hasComponents:!0,subFields:[]},50:{num:50,name:"maxAltitude",type:"uint16",baseType:"uint16",array:!1,scale:[5],offset:[500],units:["m"],bits:[16],components:["128"],isAccumulated:!1,hasComponents:!0,subFields:[]},51:{num:51,name:"gpsAccuracy",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},52:{num:52,name:"avgGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},53:{num:53,name:"avgPosGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},54:{num:54,name:"avgNegGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},55:{num:55,name:"maxPosGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},56:{num:56,name:"maxNegGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},57:{num:57,name:"avgTemperature",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},58:{num:58,name:"maxTemperature",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},59:{num:59,name:"totalMovingTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},60:{num:60,name:"avgPosVerticalSpeed",type:"sint16",baseType:"sint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},61:{num:61,name:"avgNegVerticalSpeed",type:"sint16",baseType:"sint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},62:{num:62,name:"maxPosVerticalSpeed",type:"sint16",baseType:"sint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},63:{num:63,name:"maxNegVerticalSpeed",type:"sint16",baseType:"sint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},64:{num:64,name:"minHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},65:{num:65,name:"timeInHrZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},66:{num:66,name:"timeInSpeedZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},67:{num:67,name:"timeInCadenceZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},68:{num:68,name:"timeInPowerZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},69:{num:69,name:"avgLapTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},70:{num:70,name:"bestLapIndex",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},71:{num:71,name:"minAltitude",type:"uint16",baseType:"uint16",array:!1,scale:[5],offset:[500],units:["m"],bits:[16],components:["127"],isAccumulated:!1,hasComponents:!0,subFields:[]},78:{num:78,name:"activeTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},82:{num:82,name:"playerScore",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},83:{num:83,name:"opponentScore",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},84:{num:84,name:"opponentName",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},85:{num:85,name:"strokeCount",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},86:{num:86,name:"zoneCount",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},87:{num:87,name:"maxBallSpeed",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},88:{num:88,name:"avgBallSpeed",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},89:{num:89,name:"avgVerticalOscillation",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},90:{num:90,name:"avgStanceTimePercent",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},91:{num:91,name:"avgStanceTime",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},92:{num:92,name:"avgFractionalCadence",type:"uint8",baseType:"uint8",array:!1,scale:128,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},93:{num:93,name:"maxFractionalCadence",type:"uint8",baseType:"uint8",array:!1,scale:128,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},94:{num:94,name:"totalFractionalCycles",type:"uint8",baseType:"uint8",array:!1,scale:128,offset:0,units:"cycles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},95:{num:95,name:"avgTotalHemoglobinConc",type:"uint16",baseType:"uint16",array:!0,scale:100,offset:0,units:"g/dL",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},96:{num:96,name:"minTotalHemoglobinConc",type:"uint16",baseType:"uint16",array:!0,scale:100,offset:0,units:"g/dL",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},97:{num:97,name:"maxTotalHemoglobinConc",type:"uint16",baseType:"uint16",array:!0,scale:100,offset:0,units:"g/dL",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},98:{num:98,name:"avgSaturatedHemoglobinPercent",type:"uint16",baseType:"uint16",array:!0,scale:10,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},99:{num:99,name:"minSaturatedHemoglobinPercent",type:"uint16",baseType:"uint16",array:!0,scale:10,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},100:{num:100,name:"maxSaturatedHemoglobinPercent",type:"uint16",baseType:"uint16",array:!0,scale:10,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},101:{num:101,name:"avgLeftTorqueEffectiveness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},102:{num:102,name:"avgRightTorqueEffectiveness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},103:{num:103,name:"avgLeftPedalSmoothness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},104:{num:104,name:"avgRightPedalSmoothness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},105:{num:105,name:"avgCombinedPedalSmoothness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},110:{num:110,name:"sportProfileName",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},111:{num:111,name:"sportIndex",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},112:{num:112,name:"timeStanding",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},113:{num:113,name:"standCount",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},114:{num:114,name:"avgLeftPco",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},115:{num:115,name:"avgRightPco",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},116:{num:116,name:"avgLeftPowerPhase",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},117:{num:117,name:"avgLeftPowerPhasePeak",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},118:{num:118,name:"avgRightPowerPhase",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},119:{num:119,name:"avgRightPowerPhasePeak",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},120:{num:120,name:"avgPowerPosition",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},121:{num:121,name:"maxPowerPosition",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},122:{num:122,name:"avgCadencePosition",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},123:{num:123,name:"maxCadencePosition",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},124:{num:124,name:"enhancedAvgSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},125:{num:125,name:"enhancedMaxSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},126:{num:126,name:"enhancedAvgAltitude",type:"uint32",baseType:"uint32",array:!1,scale:5,offset:500,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},127:{num:127,name:"enhancedMinAltitude",type:"uint32",baseType:"uint32",array:!1,scale:5,offset:500,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},128:{num:128,name:"enhancedMaxAltitude",type:"uint32",baseType:"uint32",array:!1,scale:5,offset:500,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},129:{num:129,name:"avgLevMotorPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},130:{num:130,name:"maxLevMotorPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},131:{num:131,name:"levBatteryConsumption",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},132:{num:132,name:"avgVerticalRatio",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},133:{num:133,name:"avgStanceTimeBalance",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},134:{num:134,name:"avgStepLength",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},137:{num:137,name:"totalAnaerobicTrainingEffect",type:"uint8",baseType:"uint8",array:!1,scale:10,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},139:{num:139,name:"avgVam",type:"uint16",baseType:"uint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},140:{num:140,name:"avgDepth",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},141:{num:141,name:"maxDepth",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},142:{num:142,name:"surfaceInterval",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},143:{num:143,name:"startCns",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},144:{num:144,name:"endCns",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},145:{num:145,name:"startN2",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},146:{num:146,name:"endN2",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},147:{num:147,name:"avgRespirationRate",type:"uint8",baseType:"uint8",array:!1,scale:[1],offset:[0],units:[""],bits:[8],components:["169"],isAccumulated:!1,hasComponents:!0,subFields:[]},148:{num:148,name:"maxRespirationRate",type:"uint8",baseType:"uint8",array:!1,scale:[1],offset:[0],units:[""],bits:[8],components:["170"],isAccumulated:!1,hasComponents:!0,subFields:[]},149:{num:149,name:"minRespirationRate",type:"uint8",baseType:"uint8",array:!1,scale:[1],offset:[0],units:[""],bits:[8],components:["180"],isAccumulated:!1,hasComponents:!0,subFields:[]},150:{num:150,name:"minTemperature",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},155:{num:155,name:"o2Toxicity",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"OTUs",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},156:{num:156,name:"diveNumber",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},168:{num:168,name:"trainingLoadPeak",type:"sint32",baseType:"sint32",array:!1,scale:65536,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},169:{num:169,name:"enhancedAvgRespirationRate",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"Breaths/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},170:{num:170,name:"enhancedMaxRespirationRate",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"Breaths/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},180:{num:180,name:"enhancedMinRespirationRate",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},181:{num:181,name:"totalGrit",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"kGrit",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},182:{num:182,name:"totalFlow",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"Flow",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},183:{num:183,name:"jumpCount",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},186:{num:186,name:"avgGrit",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"kGrit",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},187:{num:187,name:"avgFlow",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"Flow",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},192:{num:192,name:"workoutFeel",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},193:{num:193,name:"workoutRpe",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},194:{num:194,name:"avgSpo2",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},195:{num:195,name:"avgStress",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},196:{num:196,name:"metabolicCalories",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"kcal",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},197:{num:197,name:"sdrrHrv",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"mS",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},198:{num:198,name:"rmssdHrv",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"mS",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},199:{num:199,name:"totalFractionalAscent",type:"uint8",baseType:"uint8",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},200:{num:200,name:"totalFractionalDescent",type:"uint8",baseType:"uint8",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},208:{num:208,name:"avgCoreTemperature",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},209:{num:209,name:"minCoreTemperature",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},210:{num:210,name:"maxCoreTemperature",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},19:{num:19,name:"lap",messagesKey:"lapMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"event",type:"event",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"eventType",type:"eventType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"startTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"startPositionLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"startPositionLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"endPositionLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"endPositionLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"totalElapsedTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"totalTimerTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"totalDistance",type:"uint32",baseType:"uint32",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"totalCycles",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"cycles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"totalStrides",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"strides",bits:[],components:[],hasComponents:!1,map:[{name:"sport",value:1},{name:"sport",value:11}]},{name:"totalStrokes",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"strokes",bits:[],components:[],hasComponents:!1,map:[{name:"sport",value:2},{name:"sport",value:5},{name:"sport",value:15},{name:"sport",value:37}]}]},11:{num:11,name:"totalCalories",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"kcal",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"totalFatCalories",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"kcal",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"avgSpeed",type:"uint16",baseType:"uint16",array:!1,scale:[1e3],offset:[0],units:["m/s"],bits:[16],components:["110"],isAccumulated:!1,hasComponents:!0,subFields:[]},14:{num:14,name:"maxSpeed",type:"uint16",baseType:"uint16",array:!1,scale:[1e3],offset:[0],units:["m/s"],bits:[16],components:["111"],isAccumulated:!1,hasComponents:!0,subFields:[]},15:{num:15,name:"avgHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},16:{num:16,name:"maxHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},17:{num:17,name:"avgCadence",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"avgRunningCadence",type:"uint8",baseType:"uint8",scale:1,offset:0,units:"strides/min",bits:[],components:[],hasComponents:!1,map:[{name:"sport",value:1}]}]},18:{num:18,name:"maxCadence",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"maxRunningCadence",type:"uint8",baseType:"uint8",scale:1,offset:0,units:"strides/min",bits:[],components:[],hasComponents:!1,map:[{name:"sport",value:1}]}]},19:{num:19,name:"avgPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},20:{num:20,name:"maxPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},21:{num:21,name:"totalAscent",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},22:{num:22,name:"totalDescent",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},23:{num:23,name:"intensity",type:"intensity",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},24:{num:24,name:"lapTrigger",type:"lapTrigger",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},25:{num:25,name:"sport",type:"sport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},26:{num:26,name:"eventGroup",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},32:{num:32,name:"numLengths",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"lengths",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},33:{num:33,name:"normalizedPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},34:{num:34,name:"leftRightBalance",type:"leftRightBalance100",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},35:{num:35,name:"firstLengthIndex",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},37:{num:37,name:"avgStrokeDistance",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},38:{num:38,name:"swimStroke",type:"swimStroke",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},39:{num:39,name:"subSport",type:"subSport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},40:{num:40,name:"numActiveLengths",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"lengths",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},41:{num:41,name:"totalWork",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"J",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},42:{num:42,name:"avgAltitude",type:"uint16",baseType:"uint16",array:!1,scale:[5],offset:[500],units:["m"],bits:[16],components:["112"],isAccumulated:!1,hasComponents:!0,subFields:[]},43:{num:43,name:"maxAltitude",type:"uint16",baseType:"uint16",array:!1,scale:[5],offset:[500],units:["m"],bits:[16],components:["114"],isAccumulated:!1,hasComponents:!0,subFields:[]},44:{num:44,name:"gpsAccuracy",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},45:{num:45,name:"avgGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},46:{num:46,name:"avgPosGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},47:{num:47,name:"avgNegGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},48:{num:48,name:"maxPosGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},49:{num:49,name:"maxNegGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},50:{num:50,name:"avgTemperature",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},51:{num:51,name:"maxTemperature",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},52:{num:52,name:"totalMovingTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},53:{num:53,name:"avgPosVerticalSpeed",type:"sint16",baseType:"sint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},54:{num:54,name:"avgNegVerticalSpeed",type:"sint16",baseType:"sint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},55:{num:55,name:"maxPosVerticalSpeed",type:"sint16",baseType:"sint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},56:{num:56,name:"maxNegVerticalSpeed",type:"sint16",baseType:"sint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},57:{num:57,name:"timeInHrZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},58:{num:58,name:"timeInSpeedZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},59:{num:59,name:"timeInCadenceZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},60:{num:60,name:"timeInPowerZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},61:{num:61,name:"repetitionNum",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},62:{num:62,name:"minAltitude",type:"uint16",baseType:"uint16",array:!1,scale:[5],offset:[500],units:["m"],bits:[16],components:["113"],isAccumulated:!1,hasComponents:!0,subFields:[]},63:{num:63,name:"minHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},70:{num:70,name:"activeTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},71:{num:71,name:"wktStepIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},74:{num:74,name:"opponentScore",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},75:{num:75,name:"strokeCount",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},76:{num:76,name:"zoneCount",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},77:{num:77,name:"avgVerticalOscillation",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},78:{num:78,name:"avgStanceTimePercent",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},79:{num:79,name:"avgStanceTime",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},80:{num:80,name:"avgFractionalCadence",type:"uint8",baseType:"uint8",array:!1,scale:128,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},81:{num:81,name:"maxFractionalCadence",type:"uint8",baseType:"uint8",array:!1,scale:128,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},82:{num:82,name:"totalFractionalCycles",type:"uint8",baseType:"uint8",array:!1,scale:128,offset:0,units:"cycles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},83:{num:83,name:"playerScore",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},84:{num:84,name:"avgTotalHemoglobinConc",type:"uint16",baseType:"uint16",array:!0,scale:100,offset:0,units:"g/dL",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},85:{num:85,name:"minTotalHemoglobinConc",type:"uint16",baseType:"uint16",array:!0,scale:100,offset:0,units:"g/dL",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},86:{num:86,name:"maxTotalHemoglobinConc",type:"uint16",baseType:"uint16",array:!0,scale:100,offset:0,units:"g/dL",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},87:{num:87,name:"avgSaturatedHemoglobinPercent",type:"uint16",baseType:"uint16",array:!0,scale:10,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},88:{num:88,name:"minSaturatedHemoglobinPercent",type:"uint16",baseType:"uint16",array:!0,scale:10,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},89:{num:89,name:"maxSaturatedHemoglobinPercent",type:"uint16",baseType:"uint16",array:!0,scale:10,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},91:{num:91,name:"avgLeftTorqueEffectiveness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},92:{num:92,name:"avgRightTorqueEffectiveness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},93:{num:93,name:"avgLeftPedalSmoothness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},94:{num:94,name:"avgRightPedalSmoothness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},95:{num:95,name:"avgCombinedPedalSmoothness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},98:{num:98,name:"timeStanding",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},99:{num:99,name:"standCount",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},100:{num:100,name:"avgLeftPco",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},101:{num:101,name:"avgRightPco",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},102:{num:102,name:"avgLeftPowerPhase",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},103:{num:103,name:"avgLeftPowerPhasePeak",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},104:{num:104,name:"avgRightPowerPhase",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},105:{num:105,name:"avgRightPowerPhasePeak",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},106:{num:106,name:"avgPowerPosition",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},107:{num:107,name:"maxPowerPosition",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},108:{num:108,name:"avgCadencePosition",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},109:{num:109,name:"maxCadencePosition",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},110:{num:110,name:"enhancedAvgSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},111:{num:111,name:"enhancedMaxSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},112:{num:112,name:"enhancedAvgAltitude",type:"uint32",baseType:"uint32",array:!1,scale:5,offset:500,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},113:{num:113,name:"enhancedMinAltitude",type:"uint32",baseType:"uint32",array:!1,scale:5,offset:500,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},114:{num:114,name:"enhancedMaxAltitude",type:"uint32",baseType:"uint32",array:!1,scale:5,offset:500,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},115:{num:115,name:"avgLevMotorPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},116:{num:116,name:"maxLevMotorPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},117:{num:117,name:"levBatteryConsumption",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},118:{num:118,name:"avgVerticalRatio",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},119:{num:119,name:"avgStanceTimeBalance",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},120:{num:120,name:"avgStepLength",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},121:{num:121,name:"avgVam",type:"uint16",baseType:"uint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},122:{num:122,name:"avgDepth",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},123:{num:123,name:"maxDepth",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},124:{num:124,name:"minTemperature",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},136:{num:136,name:"enhancedAvgRespirationRate",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"Breaths/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},137:{num:137,name:"enhancedMaxRespirationRate",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"Breaths/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},147:{num:147,name:"avgRespirationRate",type:"uint8",baseType:"uint8",array:!1,scale:[1],offset:[0],units:[""],bits:[8],components:["136"],isAccumulated:!1,hasComponents:!0,subFields:[]},148:{num:148,name:"maxRespirationRate",type:"uint8",baseType:"uint8",array:!1,scale:[1],offset:[0],units:[""],bits:[8],components:["137"],isAccumulated:!1,hasComponents:!0,subFields:[]},149:{num:149,name:"totalGrit",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"kGrit",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},150:{num:150,name:"totalFlow",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"Flow",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},151:{num:151,name:"jumpCount",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},153:{num:153,name:"avgGrit",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"kGrit",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},154:{num:154,name:"avgFlow",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"Flow",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},156:{num:156,name:"totalFractionalAscent",type:"uint8",baseType:"uint8",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},157:{num:157,name:"totalFractionalDescent",type:"uint8",baseType:"uint8",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},158:{num:158,name:"avgCoreTemperature",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},159:{num:159,name:"minCoreTemperature",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},160:{num:160,name:"maxCoreTemperature",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},101:{num:101,name:"length",messagesKey:"lengthMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"event",type:"event",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"eventType",type:"eventType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"startTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"totalElapsedTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"totalTimerTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"totalStrokes",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"strokes",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"avgSpeed",type:"uint16",baseType:"uint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"swimStroke",type:"swimStroke",baseType:"enum",array:!1,scale:1,offset:0,units:"swim_stroke",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"avgSwimmingCadence",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"strokes/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"eventGroup",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"totalCalories",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"kcal",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"lengthType",type:"lengthType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},18:{num:18,name:"playerScore",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},19:{num:19,name:"opponentScore",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},20:{num:20,name:"strokeCount",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},21:{num:21,name:"zoneCount",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},22:{num:22,name:"enhancedAvgRespirationRate",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"Breaths/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},23:{num:23,name:"enhancedMaxRespirationRate",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"Breaths/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},24:{num:24,name:"avgRespirationRate",type:"uint8",baseType:"uint8",array:!1,scale:[1],offset:[0],units:[""],bits:[8],components:["22"],isAccumulated:!1,hasComponents:!0,subFields:[]},25:{num:25,name:"maxRespirationRate",type:"uint8",baseType:"uint8",array:!1,scale:[1],offset:[0],units:[""],bits:[8],components:["23"],isAccumulated:!1,hasComponents:!0,subFields:[]}}},20:{num:20,name:"record",messagesKey:"recordMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"positionLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"positionLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"altitude",type:"uint16",baseType:"uint16",array:!1,scale:[5],offset:[500],units:["m"],bits:[16],components:["78"],isAccumulated:!1,hasComponents:!0,subFields:[]},3:{num:3,name:"heartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"cadence",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"distance",type:"uint32",baseType:"uint32",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!0,hasComponents:!1,subFields:[]},6:{num:6,name:"speed",type:"uint16",baseType:"uint16",array:!1,scale:[1e3],offset:[0],units:["m/s"],bits:[16],components:["73"],isAccumulated:!1,hasComponents:!0,subFields:[]},7:{num:7,name:"power",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"compressedSpeedDistance",type:"byte",baseType:"byte",array:!0,scale:[100,16],offset:[0,0],units:["m/s","m"],bits:[12,12],components:["6","5"],isAccumulated:!1,hasComponents:!0,subFields:[]},9:{num:9,name:"grade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"resistance",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"timeFromCourse",type:"sint32",baseType:"sint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"cycleLength",type:"uint8",baseType:"uint8",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"temperature",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},17:{num:17,name:"speed1s",type:"uint8",baseType:"uint8",array:!0,scale:16,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},18:{num:18,name:"cycles",type:"uint8",baseType:"uint8",array:!1,scale:[1],offset:[0],units:["cycles"],bits:[8],components:["19"],isAccumulated:!1,hasComponents:!0,subFields:[]},19:{num:19,name:"totalCycles",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"cycles",bits:[],components:[],isAccumulated:!0,hasComponents:!1,subFields:[]},28:{num:28,name:"compressedAccumulatedPower",type:"uint16",baseType:"uint16",array:!1,scale:[1],offset:[0],units:["watts"],bits:[16],components:["29"],isAccumulated:!1,hasComponents:!0,subFields:[]},29:{num:29,name:"accumulatedPower",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!0,hasComponents:!1,subFields:[]},30:{num:30,name:"leftRightBalance",type:"leftRightBalance",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},31:{num:31,name:"gpsAccuracy",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},32:{num:32,name:"verticalSpeed",type:"sint16",baseType:"sint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},33:{num:33,name:"calories",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"kcal",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},39:{num:39,name:"verticalOscillation",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},40:{num:40,name:"stanceTimePercent",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},41:{num:41,name:"stanceTime",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},42:{num:42,name:"activityType",type:"activityType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},43:{num:43,name:"leftTorqueEffectiveness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},44:{num:44,name:"rightTorqueEffectiveness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},45:{num:45,name:"leftPedalSmoothness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},46:{num:46,name:"rightPedalSmoothness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},47:{num:47,name:"combinedPedalSmoothness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},48:{num:48,name:"time128",type:"uint8",baseType:"uint8",array:!1,scale:128,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},49:{num:49,name:"strokeType",type:"strokeType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},50:{num:50,name:"zone",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},51:{num:51,name:"ballSpeed",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},52:{num:52,name:"cadence256",type:"uint16",baseType:"uint16",array:!1,scale:256,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},53:{num:53,name:"fractionalCadence",type:"uint8",baseType:"uint8",array:!1,scale:128,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},54:{num:54,name:"totalHemoglobinConc",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"g/dL",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},55:{num:55,name:"totalHemoglobinConcMin",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"g/dL",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},56:{num:56,name:"totalHemoglobinConcMax",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"g/dL",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},57:{num:57,name:"saturatedHemoglobinPercent",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},58:{num:58,name:"saturatedHemoglobinPercentMin",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},59:{num:59,name:"saturatedHemoglobinPercentMax",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},62:{num:62,name:"deviceIndex",type:"deviceIndex",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},67:{num:67,name:"leftPco",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},68:{num:68,name:"rightPco",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},69:{num:69,name:"leftPowerPhase",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},70:{num:70,name:"leftPowerPhasePeak",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},71:{num:71,name:"rightPowerPhase",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},72:{num:72,name:"rightPowerPhasePeak",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},73:{num:73,name:"enhancedSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},78:{num:78,name:"enhancedAltitude",type:"uint32",baseType:"uint32",array:!1,scale:5,offset:500,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},81:{num:81,name:"batterySoc",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},82:{num:82,name:"motorPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},83:{num:83,name:"verticalRatio",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},84:{num:84,name:"stanceTimeBalance",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},85:{num:85,name:"stepLength",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},87:{num:87,name:"cycleLength16",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},91:{num:91,name:"absolutePressure",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"Pa",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},92:{num:92,name:"depth",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},93:{num:93,name:"nextStopDepth",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},94:{num:94,name:"nextStopTime",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},95:{num:95,name:"timeToSurface",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},96:{num:96,name:"ndlTime",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},97:{num:97,name:"cnsLoad",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},98:{num:98,name:"n2Load",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},99:{num:99,name:"respirationRate",type:"uint8",baseType:"uint8",array:!1,scale:[1],offset:[0],units:["s"],bits:[8],components:["108"],isAccumulated:!1,hasComponents:!0,subFields:[]},108:{num:108,name:"enhancedRespirationRate",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"Breaths/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},114:{num:114,name:"grit",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},115:{num:115,name:"flow",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},116:{num:116,name:"currentStress",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},117:{num:117,name:"ebikeTravelRange",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"km",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},118:{num:118,name:"ebikeBatteryLevel",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},119:{num:119,name:"ebikeAssistMode",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"depends on sensor",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},120:{num:120,name:"ebikeAssistLevelPercent",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},123:{num:123,name:"airTimeRemaining",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},124:{num:124,name:"pressureSac",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"bar/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},125:{num:125,name:"volumeSac",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"L/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},126:{num:126,name:"rmv",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"L/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},127:{num:127,name:"ascentRate",type:"sint32",baseType:"sint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},129:{num:129,name:"po2",type:"uint8",baseType:"uint8",array:!1,scale:100,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},139:{num:139,name:"coreTemperature",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},21:{num:21,name:"event",messagesKey:"eventMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"event",type:"event",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"eventType",type:"eventType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"data16",type:"uint16",baseType:"uint16",array:!1,scale:[1],offset:[0],units:[""],bits:[16],components:["3"],isAccumulated:!1,hasComponents:!0,subFields:[]},3:{num:3,name:"data",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"timerTrigger",type:"timerTrigger",baseType:"enum",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:0}]},{name:"coursePointIndex",type:"messageIndex",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:10}]},{name:"batteryLevel",type:"uint16",baseType:"uint16",scale:1e3,offset:0,units:"V",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:11}]},{name:"virtualPartnerSpeed",type:"uint16",baseType:"uint16",scale:1e3,offset:0,units:"m/s",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:12}]},{name:"hrHighAlert",type:"uint8",baseType:"uint8",scale:1,offset:0,units:"bpm",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:13}]},{name:"hrLowAlert",type:"uint8",baseType:"uint8",scale:1,offset:0,units:"bpm",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:14}]},{name:"speedHighAlert",type:"uint32",baseType:"uint32",scale:1e3,offset:0,units:"m/s",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:15}]},{name:"speedLowAlert",type:"uint32",baseType:"uint32",scale:1e3,offset:0,units:"m/s",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:16}]},{name:"cadHighAlert",type:"uint16",baseType:"uint16",scale:1,offset:0,units:"rpm",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:17}]},{name:"cadLowAlert",type:"uint16",baseType:"uint16",scale:1,offset:0,units:"rpm",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:18}]},{name:"powerHighAlert",type:"uint16",baseType:"uint16",scale:1,offset:0,units:"watts",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:19}]},{name:"powerLowAlert",type:"uint16",baseType:"uint16",scale:1,offset:0,units:"watts",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:20}]},{name:"timeDurationAlert",type:"uint32",baseType:"uint32",scale:1e3,offset:0,units:"s",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:23}]},{name:"distanceDurationAlert",type:"uint32",baseType:"uint32",scale:100,offset:0,units:"m",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:24}]},{name:"calorieDurationAlert",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"calories",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:25}]},{name:"fitnessEquipmentState",type:"fitnessEquipmentState",baseType:"enum",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:27}]},{name:"sportPoint",type:"uint32",baseType:"uint32",scale:[1,1],offset:[0,0],units:["",""],bits:[16,16],components:["7","8"],hasComponents:!0,map:[{name:"event",value:33}]},{name:"gearChangeData",type:"uint32",baseType:"uint32",scale:[1,1,1,1],offset:[0,0,0,0],units:["","","",""],bits:[8,8,8,8],components:["11","12","9","10"],hasComponents:!0,map:[{name:"event",value:42},{name:"event",value:43}]},{name:"riderPosition",type:"riderPositionType",baseType:"enum",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:44}]},{name:"commTimeout",type:"commTimeoutType",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:47}]},{name:"diveAlert",type:"diveAlert",baseType:"enum",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:56}]},{name:"autoActivityDetectDuration",type:"uint16",baseType:"uint16",scale:1,offset:0,units:"min",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:54}]},{name:"radarThreatAlert",type:"uint32",baseType:"uint32",scale:[1,1,10,10],offset:[0,0,0,0],units:["","","",""],bits:[8,8,8,8],components:["21","22","23","24"],hasComponents:!0,map:[{name:"event",value:75}]}]},4:{num:4,name:"eventGroup",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"score",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"opponentScore",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"frontGearNum",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"frontGear",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"rearGearNum",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"rearGear",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"deviceIndex",type:"deviceIndex",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},14:{num:14,name:"activityType",type:"activityType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},15:{num:15,name:"startTimestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"autoActivityDetectStartTimestamp",type:"dateTime",baseType:"uint32",scale:1,offset:0,units:"s",bits:[],components:[],hasComponents:!1,map:[{name:"event",value:54}]}]},21:{num:21,name:"radarThreatLevelMax",type:"radarThreatLevelType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},22:{num:22,name:"radarThreatCount",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},23:{num:23,name:"radarThreatAvgApproachSpeed",type:"uint8",baseType:"uint8",array:!1,scale:10,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},24:{num:24,name:"radarThreatMaxApproachSpeed",type:"uint8",baseType:"uint8",array:!1,scale:10,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},23:{num:23,name:"deviceInfo",messagesKey:"deviceInfoMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"deviceIndex",type:"deviceIndex",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"deviceType",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"bleDeviceType",type:"bleDeviceType",baseType:"uint8",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"sourceType",value:3}]},{name:"antplusDeviceType",type:"antplusDeviceType",baseType:"uint8",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"sourceType",value:1}]},{name:"antDeviceType",type:"uint8",baseType:"uint8",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"sourceType",value:0}]},{name:"localDeviceType",type:"localDeviceType",baseType:"uint8",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"sourceType",value:5}]}]},2:{num:2,name:"manufacturer",type:"manufacturer",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"serialNumber",type:"uint32z",baseType:"uint32z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"product",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"faveroProduct",type:"faveroProduct",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"manufacturer",value:263}]},{name:"garminProduct",type:"garminProduct",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"manufacturer",value:1},{name:"manufacturer",value:15},{name:"manufacturer",value:13},{name:"manufacturer",value:89}]}]},5:{num:5,name:"softwareVersion",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"hardwareVersion",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"cumOperatingTime",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"batteryVoltage",type:"uint16",baseType:"uint16",array:!1,scale:256,offset:0,units:"V",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"batteryStatus",type:"batteryStatus",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},18:{num:18,name:"sensorPosition",type:"bodyLocation",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},19:{num:19,name:"descriptor",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},20:{num:20,name:"antTransmissionType",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},21:{num:21,name:"antDeviceNumber",type:"uint16z",baseType:"uint16z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},22:{num:22,name:"antNetwork",type:"antNetwork",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},25:{num:25,name:"sourceType",type:"sourceType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},27:{num:27,name:"productName",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},32:{num:32,name:"batteryLevel",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},375:{num:375,name:"deviceAuxBatteryInfo",messagesKey:"deviceAuxBatteryInfoMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"deviceIndex",type:"deviceIndex",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"batteryVoltage",type:"uint16",baseType:"uint16",array:!1,scale:256,offset:0,units:"V",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"batteryStatus",type:"batteryStatus",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"batteryIdentifier",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},72:{num:72,name:"trainingFile",messagesKey:"trainingFileMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"type",type:"file",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"manufacturer",type:"manufacturer",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"product",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"faveroProduct",type:"faveroProduct",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"manufacturer",value:263}]},{name:"garminProduct",type:"garminProduct",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"manufacturer",value:1},{name:"manufacturer",value:15},{name:"manufacturer",value:13},{name:"manufacturer",value:89}]}]},3:{num:3,name:"serialNumber",type:"uint32z",baseType:"uint32z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"timeCreated",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},128:{num:128,name:"weatherConditions",messagesKey:"weatherConditionsMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"weatherReport",type:"weatherReport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"temperature",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"condition",type:"weatherStatus",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"windDirection",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"windSpeed",type:"uint16",baseType:"uint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"precipitationProbability",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"temperatureFeelsLike",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"relativeHumidity",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"location",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"observedAtTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"observedLocationLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"observedLocationLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"dayOfWeek",type:"dayOfWeek",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"highTemperature",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},14:{num:14,name:"lowTemperature",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},129:{num:129,name:"weatherAlert",messagesKey:"weatherAlertMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"reportId",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"issueTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"expireTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"severity",type:"weatherSeverity",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"type",type:"weatherSevereType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},160:{num:160,name:"gpsMetadata",messagesKey:"gpsMetadataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"positionLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"positionLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"enhancedAltitude",type:"uint32",baseType:"uint32",array:!1,scale:5,offset:500,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"enhancedSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"heading",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"utcTimestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"velocity",type:"sint16",baseType:"sint16",array:!0,scale:100,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},161:{num:161,name:"cameraEvent",messagesKey:"cameraEventMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"cameraEventType",type:"cameraEventType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"cameraFileUuid",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"cameraOrientation",type:"cameraOrientationType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},164:{num:164,name:"gyroscopeData",messagesKey:"gyroscopeDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"sampleTimeOffset",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"gyroX",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"gyroY",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"gyroZ",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"calibratedGyroX",type:"float32",baseType:"float32",array:!0,scale:1,offset:0,units:"deg/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"calibratedGyroY",type:"float32",baseType:"float32",array:!0,scale:1,offset:0,units:"deg/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"calibratedGyroZ",type:"float32",baseType:"float32",array:!0,scale:1,offset:0,units:"deg/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},165:{num:165,name:"accelerometerData",messagesKey:"accelerometerDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"sampleTimeOffset",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"accelX",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"accelY",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"accelZ",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"calibratedAccelX",type:"float32",baseType:"float32",array:!0,scale:1,offset:0,units:"g",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"calibratedAccelY",type:"float32",baseType:"float32",array:!0,scale:1,offset:0,units:"g",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"calibratedAccelZ",type:"float32",baseType:"float32",array:!0,scale:1,offset:0,units:"g",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"compressedCalibratedAccelX",type:"sint16",baseType:"sint16",array:!0,scale:1,offset:0,units:"mG",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"compressedCalibratedAccelY",type:"sint16",baseType:"sint16",array:!0,scale:1,offset:0,units:"mG",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"compressedCalibratedAccelZ",type:"sint16",baseType:"sint16",array:!0,scale:1,offset:0,units:"mG",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},208:{num:208,name:"magnetometerData",messagesKey:"magnetometerDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"sampleTimeOffset",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"magX",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"magY",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"magZ",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"calibratedMagX",type:"float32",baseType:"float32",array:!0,scale:1,offset:0,units:"G",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"calibratedMagY",type:"float32",baseType:"float32",array:!0,scale:1,offset:0,units:"G",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"calibratedMagZ",type:"float32",baseType:"float32",array:!0,scale:1,offset:0,units:"G",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},209:{num:209,name:"barometerData",messagesKey:"barometerDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"sampleTimeOffset",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"baroPres",type:"uint32",baseType:"uint32",array:!0,scale:1,offset:0,units:"Pa",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},167:{num:167,name:"threeDSensorCalibration",messagesKey:"threeDSensorCalibrationMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"sensorType",type:"sensorType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"calibrationFactor",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"accelCalFactor",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"g",bits:[],components:[],hasComponents:!1,map:[{name:"sensorType",value:0}]},{name:"gyroCalFactor",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"deg/s",bits:[],components:[],hasComponents:!1,map:[{name:"sensorType",value:1}]}]},2:{num:2,name:"calibrationDivisor",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"levelShift",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"offsetCal",type:"sint32",baseType:"sint32",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"orientationMatrix",type:"sint32",baseType:"sint32",array:!0,scale:65535,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},210:{num:210,name:"oneDSensorCalibration",messagesKey:"oneDSensorCalibrationMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"sensorType",type:"sensorType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"calibrationFactor",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"baroCalFactor",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"Pa",bits:[],components:[],hasComponents:!1,map:[{name:"sensorType",value:3}]}]},2:{num:2,name:"calibrationDivisor",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"counts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"levelShift",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"offsetCal",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},169:{num:169,name:"videoFrame",messagesKey:"videoFrameMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"frameNumber",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},174:{num:174,name:"obdiiData",messagesKey:"obdiiDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"timeOffset",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"pid",type:"byte",baseType:"byte",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"rawData",type:"byte",baseType:"byte",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"pidDataSize",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"systemTime",type:"uint32",baseType:"uint32",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"startTimestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"startTimestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},177:{num:177,name:"nmeaSentence",messagesKey:"nmeaSentenceMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"sentence",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},178:{num:178,name:"aviationAttitude",messagesKey:"aviationAttitudeMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"systemTime",type:"uint32",baseType:"uint32",array:!0,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"pitch",type:"sint16",baseType:"sint16",array:!0,scale:10430.38,offset:0,units:"radians",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"roll",type:"sint16",baseType:"sint16",array:!0,scale:10430.38,offset:0,units:"radians",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"accelLateral",type:"sint16",baseType:"sint16",array:!0,scale:100,offset:0,units:"m/s^2",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"accelNormal",type:"sint16",baseType:"sint16",array:!0,scale:100,offset:0,units:"m/s^2",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"turnRate",type:"sint16",baseType:"sint16",array:!0,scale:1024,offset:0,units:"radians/second",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"stage",type:"attitudeStage",baseType:"enum",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"attitudeStageComplete",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"track",type:"uint16",baseType:"uint16",array:!0,scale:10430.38,offset:0,units:"radians",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"validity",type:"attitudeValidity",baseType:"uint16",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},184:{num:184,name:"video",messagesKey:"videoMesgs",fields:{0:{num:0,name:"url",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"hostingProvider",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"duration",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},185:{num:185,name:"videoTitle",messagesKey:"videoTitleMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"messageCount",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"text",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},186:{num:186,name:"videoDescription",messagesKey:"videoDescriptionMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"messageCount",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"text",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},187:{num:187,name:"videoClip",messagesKey:"videoClipMesgs",fields:{0:{num:0,name:"clipNumber",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"startTimestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"startTimestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"endTimestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"endTimestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"clipStart",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"clipEnd",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},225:{num:225,name:"set",messagesKey:"setMesgs",fields:{254:{num:254,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"duration",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"repetitions",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"weight",type:"uint16",baseType:"uint16",array:!1,scale:16,offset:0,units:"kg",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"setType",type:"setType",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"startTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"category",type:"exerciseCategory",baseType:"uint16",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"categorySubtype",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"weightDisplayUnit",type:"fitBaseUnit",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"wktStepIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},285:{num:285,name:"jump",messagesKey:"jumpMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"distance",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"height",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"rotations",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"hangTime",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"score",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"positionLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"positionLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"speed",type:"uint16",baseType:"uint16",array:!1,scale:[1e3],offset:[0],units:["m/s"],bits:[16],components:["8"],isAccumulated:!1,hasComponents:!0,subFields:[]},8:{num:8,name:"enhancedSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},312:{num:312,name:"split",messagesKey:"splitMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"splitType",type:"splitType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"totalElapsedTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"totalTimerTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"totalDistance",type:"uint32",baseType:"uint32",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"avgSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"startTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"totalAscent",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},14:{num:14,name:"totalDescent",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},21:{num:21,name:"startPositionLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},22:{num:22,name:"startPositionLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},23:{num:23,name:"endPositionLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},24:{num:24,name:"endPositionLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},25:{num:25,name:"maxSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},26:{num:26,name:"avgVertSpeed",type:"sint32",baseType:"sint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},27:{num:27,name:"endTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},28:{num:28,name:"totalCalories",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"kcal",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},74:{num:74,name:"startElevation",type:"uint32",baseType:"uint32",array:!1,scale:5,offset:500,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},78:{num:78,name:"activeTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},110:{num:110,name:"totalMovingTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},313:{num:313,name:"splitSummary",messagesKey:"splitSummaryMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"splitType",type:"splitType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"numSplits",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"totalTimerTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"totalDistance",type:"uint32",baseType:"uint32",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"avgSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"maxSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"totalAscent",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"totalDescent",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"avgHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"maxHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"avgVertSpeed",type:"sint32",baseType:"sint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"totalCalories",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"kcal",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},65:{num:65,name:"activeTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},77:{num:77,name:"totalMovingTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},317:{num:317,name:"climbPro",messagesKey:"climbProMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"positionLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"positionLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"climbProEvent",type:"climbProEvent",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"climbNumber",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"climbCategory",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"currentDist",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},206:{num:206,name:"fieldDescription",messagesKey:"fieldDescriptionMesgs",fields:{0:{num:0,name:"developerDataIndex",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"fieldDefinitionNumber",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"fitBaseTypeId",type:"fitBaseType",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"fieldName",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"array",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"components",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"scale",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"offset",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"units",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"bits",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"accumulate",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"fitBaseUnitId",type:"fitBaseUnit",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},14:{num:14,name:"nativeMesgNum",type:"mesgNum",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},15:{num:15,name:"nativeFieldNum",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},207:{num:207,name:"developerDataId",messagesKey:"developerDataIdMesgs",fields:{0:{num:0,name:"developerId",type:"byte",baseType:"byte",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"applicationId",type:"byte",baseType:"byte",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"manufacturerId",type:"manufacturer",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"developerDataIndex",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"applicationVersion",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},31:{num:31,name:"course",messagesKey:"courseMesgs",fields:{4:{num:4,name:"sport",type:"sport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"name",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"capabilities",type:"courseCapabilities",baseType:"uint32z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"subSport",type:"subSport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},32:{num:32,name:"coursePoint",messagesKey:"coursePointMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"positionLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"positionLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"distance",type:"uint32",baseType:"uint32",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"type",type:"coursePoint",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"name",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"favorite",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},148:{num:148,name:"segmentId",messagesKey:"segmentIdMesgs",fields:{0:{num:0,name:"name",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"uuid",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"sport",type:"sport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"enabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"userProfilePrimaryKey",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"deviceId",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"defaultRaceLeader",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"deleteStatus",type:"segmentDeleteStatus",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"selectionType",type:"segmentSelectionType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},149:{num:149,name:"segmentLeaderboardEntry",messagesKey:"segmentLeaderboardEntryMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"name",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"type",type:"segmentLeaderboardType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"groupPrimaryKey",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"activityId",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"segmentTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"activityIdString",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},150:{num:150,name:"segmentPoint",messagesKey:"segmentPointMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"positionLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"positionLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"distance",type:"uint32",baseType:"uint32",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"altitude",type:"uint16",baseType:"uint16",array:!1,scale:[5],offset:[500],units:["m"],bits:[16],components:["6"],isAccumulated:!1,hasComponents:!0,subFields:[]},5:{num:5,name:"leaderTime",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"enhancedAltitude",type:"uint32",baseType:"uint32",array:!1,scale:5,offset:500,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},142:{num:142,name:"segmentLap",messagesKey:"segmentLapMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"event",type:"event",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"eventType",type:"eventType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"startTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"startPositionLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"startPositionLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"endPositionLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"endPositionLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"totalElapsedTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"totalTimerTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"totalDistance",type:"uint32",baseType:"uint32",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"totalCycles",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"cycles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"totalStrokes",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"strokes",bits:[],components:[],hasComponents:!1,map:[{name:"sport",value:2}]}]},11:{num:11,name:"totalCalories",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"kcal",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"totalFatCalories",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"kcal",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"avgSpeed",type:"uint16",baseType:"uint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},14:{num:14,name:"maxSpeed",type:"uint16",baseType:"uint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},15:{num:15,name:"avgHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},16:{num:16,name:"maxHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},17:{num:17,name:"avgCadence",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},18:{num:18,name:"maxCadence",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},19:{num:19,name:"avgPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},20:{num:20,name:"maxPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},21:{num:21,name:"totalAscent",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},22:{num:22,name:"totalDescent",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},23:{num:23,name:"sport",type:"sport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},24:{num:24,name:"eventGroup",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},25:{num:25,name:"necLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},26:{num:26,name:"necLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},27:{num:27,name:"swcLat",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},28:{num:28,name:"swcLong",type:"sint32",baseType:"sint32",array:!1,scale:1,offset:0,units:"semicircles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},29:{num:29,name:"name",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},30:{num:30,name:"normalizedPower",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},31:{num:31,name:"leftRightBalance",type:"leftRightBalance100",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},32:{num:32,name:"subSport",type:"subSport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},33:{num:33,name:"totalWork",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"J",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},34:{num:34,name:"avgAltitude",type:"uint16",baseType:"uint16",array:!1,scale:[5],offset:[500],units:["m"],bits:[16],components:["91"],isAccumulated:!1,hasComponents:!0,subFields:[]},35:{num:35,name:"maxAltitude",type:"uint16",baseType:"uint16",array:!1,scale:[5],offset:[500],units:["m"],bits:[16],components:["92"],isAccumulated:!1,hasComponents:!0,subFields:[]},36:{num:36,name:"gpsAccuracy",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},37:{num:37,name:"avgGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},38:{num:38,name:"avgPosGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},39:{num:39,name:"avgNegGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},40:{num:40,name:"maxPosGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},41:{num:41,name:"maxNegGrade",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},42:{num:42,name:"avgTemperature",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},43:{num:43,name:"maxTemperature",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},44:{num:44,name:"totalMovingTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},45:{num:45,name:"avgPosVerticalSpeed",type:"sint16",baseType:"sint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},46:{num:46,name:"avgNegVerticalSpeed",type:"sint16",baseType:"sint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},47:{num:47,name:"maxPosVerticalSpeed",type:"sint16",baseType:"sint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},48:{num:48,name:"maxNegVerticalSpeed",type:"sint16",baseType:"sint16",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},49:{num:49,name:"timeInHrZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},50:{num:50,name:"timeInSpeedZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},51:{num:51,name:"timeInCadenceZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},52:{num:52,name:"timeInPowerZone",type:"uint32",baseType:"uint32",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},53:{num:53,name:"repetitionNum",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},54:{num:54,name:"minAltitude",type:"uint16",baseType:"uint16",array:!1,scale:[5],offset:[500],units:["m"],bits:[16],components:["93"],isAccumulated:!1,hasComponents:!0,subFields:[]},55:{num:55,name:"minHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},56:{num:56,name:"activeTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},57:{num:57,name:"wktStepIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},58:{num:58,name:"sportEvent",type:"sportEvent",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},59:{num:59,name:"avgLeftTorqueEffectiveness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},60:{num:60,name:"avgRightTorqueEffectiveness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},61:{num:61,name:"avgLeftPedalSmoothness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},62:{num:62,name:"avgRightPedalSmoothness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},63:{num:63,name:"avgCombinedPedalSmoothness",type:"uint8",baseType:"uint8",array:!1,scale:2,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},64:{num:64,name:"status",type:"segmentLapStatus",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},65:{num:65,name:"uuid",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},66:{num:66,name:"avgFractionalCadence",type:"uint8",baseType:"uint8",array:!1,scale:128,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},67:{num:67,name:"maxFractionalCadence",type:"uint8",baseType:"uint8",array:!1,scale:128,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},68:{num:68,name:"totalFractionalCycles",type:"uint8",baseType:"uint8",array:!1,scale:128,offset:0,units:"cycles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},69:{num:69,name:"frontGearShiftCount",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},70:{num:70,name:"rearGearShiftCount",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},71:{num:71,name:"timeStanding",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},72:{num:72,name:"standCount",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},73:{num:73,name:"avgLeftPco",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},74:{num:74,name:"avgRightPco",type:"sint8",baseType:"sint8",array:!1,scale:1,offset:0,units:"mm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},75:{num:75,name:"avgLeftPowerPhase",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},76:{num:76,name:"avgLeftPowerPhasePeak",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},77:{num:77,name:"avgRightPowerPhase",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},78:{num:78,name:"avgRightPowerPhasePeak",type:"uint8",baseType:"uint8",array:!0,scale:.7111111,offset:0,units:"degrees",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},79:{num:79,name:"avgPowerPosition",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},80:{num:80,name:"maxPowerPosition",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"watts",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},81:{num:81,name:"avgCadencePosition",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},82:{num:82,name:"maxCadencePosition",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"rpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},83:{num:83,name:"manufacturer",type:"manufacturer",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},84:{num:84,name:"totalGrit",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"kGrit",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},85:{num:85,name:"totalFlow",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"Flow",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},86:{num:86,name:"avgGrit",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"kGrit",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},87:{num:87,name:"avgFlow",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"Flow",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},89:{num:89,name:"totalFractionalAscent",type:"uint8",baseType:"uint8",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},90:{num:90,name:"totalFractionalDescent",type:"uint8",baseType:"uint8",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},91:{num:91,name:"enhancedAvgAltitude",type:"uint32",baseType:"uint32",array:!1,scale:5,offset:500,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},92:{num:92,name:"enhancedMaxAltitude",type:"uint32",baseType:"uint32",array:!1,scale:5,offset:500,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},93:{num:93,name:"enhancedMinAltitude",type:"uint32",baseType:"uint32",array:!1,scale:5,offset:500,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},151:{num:151,name:"segmentFile",messagesKey:"segmentFileMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"fileUuid",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"enabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"userProfilePrimaryKey",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"leaderType",type:"segmentLeaderboardType",baseType:"enum",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"leaderGroupPrimaryKey",type:"uint32",baseType:"uint32",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"leaderActivityId",type:"uint32",baseType:"uint32",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"leaderActivityIdString",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"defaultRaceLeader",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},26:{num:26,name:"workout",messagesKey:"workoutMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"sport",type:"sport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"capabilities",type:"workoutCapabilities",baseType:"uint32z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"numValidSteps",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"wktName",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"subSport",type:"subSport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},14:{num:14,name:"poolLength",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},15:{num:15,name:"poolLengthUnit",type:"displayMeasure",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},17:{num:17,name:"wktDescription",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},158:{num:158,name:"workoutSession",messagesKey:"workoutSessionMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"sport",type:"sport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"subSport",type:"subSport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"numValidSteps",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"firstStepIndex",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"poolLength",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"poolLengthUnit",type:"displayMeasure",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},27:{num:27,name:"workoutStep",messagesKey:"workoutStepMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"wktStepName",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"durationType",type:"wktStepDuration",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"durationValue",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"durationTime",type:"uint32",baseType:"uint32",scale:1e3,offset:0,units:"s",bits:[],components:[],hasComponents:!1,map:[{name:"durationType",value:0},{name:"durationType",value:28}]},{name:"durationDistance",type:"uint32",baseType:"uint32",scale:100,offset:0,units:"m",bits:[],components:[],hasComponents:!1,map:[{name:"durationType",value:1}]},{name:"durationHr",type:"workoutHr",baseType:"uint32",scale:1,offset:0,units:"% or bpm",bits:[],components:[],hasComponents:!1,map:[{name:"durationType",value:2},{name:"durationType",value:3}]},{name:"durationCalories",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"calories",bits:[],components:[],hasComponents:!1,map:[{name:"durationType",value:4}]},{name:"durationStep",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"durationType",value:6},{name:"durationType",value:7},{name:"durationType",value:8},{name:"durationType",value:9},{name:"durationType",value:10},{name:"durationType",value:11},{name:"durationType",value:12},{name:"durationType",value:13}]},{name:"durationPower",type:"workoutPower",baseType:"uint32",scale:1,offset:0,units:"% or watts",bits:[],components:[],hasComponents:!1,map:[{name:"durationType",value:14},{name:"durationType",value:15}]},{name:"durationReps",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"durationType",value:29}]}]},3:{num:3,name:"targetType",type:"wktStepTarget",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"targetValue",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"targetSpeedZone",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"targetType",value:0}]},{name:"targetHrZone",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"targetType",value:1}]},{name:"targetCadenceZone",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"targetType",value:3}]},{name:"targetPowerZone",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"targetType",value:4}]},{name:"repeatSteps",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"durationType",value:6}]},{name:"repeatTime",type:"uint32",baseType:"uint32",scale:1e3,offset:0,units:"s",bits:[],components:[],hasComponents:!1,map:[{name:"durationType",value:7}]},{name:"repeatDistance",type:"uint32",baseType:"uint32",scale:100,offset:0,units:"m",bits:[],components:[],hasComponents:!1,map:[{name:"durationType",value:8}]},{name:"repeatCalories",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"calories",bits:[],components:[],hasComponents:!1,map:[{name:"durationType",value:9}]},{name:"repeatHr",type:"workoutHr",baseType:"uint32",scale:1,offset:0,units:"% or bpm",bits:[],components:[],hasComponents:!1,map:[{name:"durationType",value:10},{name:"durationType",value:11}]},{name:"repeatPower",type:"workoutPower",baseType:"uint32",scale:1,offset:0,units:"% or watts",bits:[],components:[],hasComponents:!1,map:[{name:"durationType",value:12},{name:"durationType",value:13}]},{name:"targetStrokeType",type:"swimStroke",baseType:"enum",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"targetType",value:11}]}]},5:{num:5,name:"customTargetValueLow",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"customTargetSpeedLow",type:"uint32",baseType:"uint32",scale:1e3,offset:0,units:"m/s",bits:[],components:[],hasComponents:!1,map:[{name:"targetType",value:0}]},{name:"customTargetHeartRateLow",type:"workoutHr",baseType:"uint32",scale:1,offset:0,units:"% or bpm",bits:[],components:[],hasComponents:!1,map:[{name:"targetType",value:1}]},{name:"customTargetCadenceLow",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"rpm",bits:[],components:[],hasComponents:!1,map:[{name:"targetType",value:3}]},{name:"customTargetPowerLow",type:"workoutPower",baseType:"uint32",scale:1,offset:0,units:"% or watts",bits:[],components:[],hasComponents:!1,map:[{name:"targetType",value:4}]}]},6:{num:6,name:"customTargetValueHigh",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"customTargetSpeedHigh",type:"uint32",baseType:"uint32",scale:1e3,offset:0,units:"m/s",bits:[],components:[],hasComponents:!1,map:[{name:"targetType",value:0}]},{name:"customTargetHeartRateHigh",type:"workoutHr",baseType:"uint32",scale:1,offset:0,units:"% or bpm",bits:[],components:[],hasComponents:!1,map:[{name:"targetType",value:1}]},{name:"customTargetCadenceHigh",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"rpm",bits:[],components:[],hasComponents:!1,map:[{name:"targetType",value:3}]},{name:"customTargetPowerHigh",type:"workoutPower",baseType:"uint32",scale:1,offset:0,units:"% or watts",bits:[],components:[],hasComponents:!1,map:[{name:"targetType",value:4}]}]},7:{num:7,name:"intensity",type:"intensity",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"notes",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"equipment",type:"workoutEquipment",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"exerciseCategory",type:"exerciseCategory",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"exerciseName",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"exerciseWeight",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"kg",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"weightDisplayUnit",type:"fitBaseUnit",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},19:{num:19,name:"secondaryTargetType",type:"wktStepTarget",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},20:{num:20,name:"secondaryTargetValue",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"secondaryTargetSpeedZone",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"secondaryTargetType",value:0}]},{name:"secondaryTargetHrZone",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"secondaryTargetType",value:1}]},{name:"secondaryTargetCadenceZone",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"secondaryTargetType",value:3}]},{name:"secondaryTargetPowerZone",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"secondaryTargetType",value:4}]},{name:"secondaryTargetStrokeType",type:"swimStroke",baseType:"enum",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"secondaryTargetType",value:11}]}]},21:{num:21,name:"secondaryCustomTargetValueLow",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"secondaryCustomTargetSpeedLow",type:"uint32",baseType:"uint32",scale:1e3,offset:0,units:"m/s",bits:[],components:[],hasComponents:!1,map:[{name:"secondaryTargetType",value:0}]},{name:"secondaryCustomTargetHeartRateLow",type:"workoutHr",baseType:"uint32",scale:1,offset:0,units:"% or bpm",bits:[],components:[],hasComponents:!1,map:[{name:"secondaryTargetType",value:1}]},{name:"secondaryCustomTargetCadenceLow",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"rpm",bits:[],components:[],hasComponents:!1,map:[{name:"secondaryTargetType",value:3}]},{name:"secondaryCustomTargetPowerLow",type:"workoutPower",baseType:"uint32",scale:1,offset:0,units:"% or watts",bits:[],components:[],hasComponents:!1,map:[{name:"secondaryTargetType",value:4}]}]},22:{num:22,name:"secondaryCustomTargetValueHigh",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"secondaryCustomTargetSpeedHigh",type:"uint32",baseType:"uint32",scale:1e3,offset:0,units:"m/s",bits:[],components:[],hasComponents:!1,map:[{name:"secondaryTargetType",value:0}]},{name:"secondaryCustomTargetHeartRateHigh",type:"workoutHr",baseType:"uint32",scale:1,offset:0,units:"% or bpm",bits:[],components:[],hasComponents:!1,map:[{name:"secondaryTargetType",value:1}]},{name:"secondaryCustomTargetCadenceHigh",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"rpm",bits:[],components:[],hasComponents:!1,map:[{name:"secondaryTargetType",value:3}]},{name:"secondaryCustomTargetPowerHigh",type:"workoutPower",baseType:"uint32",scale:1,offset:0,units:"% or watts",bits:[],components:[],hasComponents:!1,map:[{name:"secondaryTargetType",value:4}]}]}}},264:{num:264,name:"exerciseTitle",messagesKey:"exerciseTitleMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"exerciseCategory",type:"exerciseCategory",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"exerciseName",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"wktStepName",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},28:{num:28,name:"schedule",messagesKey:"scheduleMesgs",fields:{0:{num:0,name:"manufacturer",type:"manufacturer",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"product",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"faveroProduct",type:"faveroProduct",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"manufacturer",value:263}]},{name:"garminProduct",type:"garminProduct",baseType:"uint16",scale:1,offset:0,units:"",bits:[],components:[],hasComponents:!1,map:[{name:"manufacturer",value:1},{name:"manufacturer",value:15},{name:"manufacturer",value:13},{name:"manufacturer",value:89}]}]},2:{num:2,name:"serialNumber",type:"uint32z",baseType:"uint32z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"timeCreated",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"completed",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"type",type:"schedule",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"scheduledTime",type:"localDateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},33:{num:33,name:"totals",messagesKey:"totalsMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timerTime",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"distance",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"calories",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"kcal",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"sport",type:"sport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"elapsedTime",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"sessions",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"activeTime",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"sportIndex",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},30:{num:30,name:"weightScale",messagesKey:"weightScaleMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"weight",type:"weight",baseType:"uint16",array:!1,scale:100,offset:0,units:"kg",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"percentFat",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"percentHydration",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"%",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"visceralFatMass",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"kg",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"boneMass",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"kg",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"muscleMass",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"kg",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"basalMet",type:"uint16",baseType:"uint16",array:!1,scale:4,offset:0,units:"kcal/day",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"physiqueRating",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"activeMet",type:"uint16",baseType:"uint16",array:!1,scale:4,offset:0,units:"kcal/day",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"metabolicAge",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"years",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"visceralFatRating",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"userProfileIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"bmi",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"kg/m^2",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},51:{num:51,name:"bloodPressure",messagesKey:"bloodPressureMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"systolicPressure",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"mmHg",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"diastolicPressure",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"mmHg",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"meanArterialPressure",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"mmHg",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"map3SampleMean",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"mmHg",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"mapMorningValues",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"mmHg",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"mapEveningValues",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"mmHg",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"heartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"heartRateType",type:"hrType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"status",type:"bpStatus",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"userProfileIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},103:{num:103,name:"monitoringInfo",messagesKey:"monitoringInfoMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"localTimestamp",type:"localDateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"activityType",type:"activityType",baseType:"enum",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"cyclesToDistance",type:"uint16",baseType:"uint16",array:!0,scale:5e3,offset:0,units:"m/cycle",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"cyclesToCalories",type:"uint16",baseType:"uint16",array:!0,scale:5e3,offset:0,units:"kcal/cycle",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"restingMetabolicRate",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"kcal / day",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},55:{num:55,name:"monitoring",messagesKey:"monitoringMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"deviceIndex",type:"deviceIndex",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"calories",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"kcal",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"distance",type:"uint32",baseType:"uint32",array:!1,scale:100,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"cycles",type:"uint32",baseType:"uint32",array:!1,scale:2,offset:0,units:"cycles",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[{name:"steps",type:"uint32",baseType:"uint32",scale:1,offset:0,units:"steps",bits:[],components:[],hasComponents:!1,map:[{name:"activityType",value:6},{name:"activityType",value:1}]},{name:"strokes",type:"uint32",baseType:"uint32",scale:2,offset:0,units:"strokes",bits:[],components:[],hasComponents:!1,map:[{name:"activityType",value:2},{name:"activityType",value:5}]}]},4:{num:4,name:"activeTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"activityType",type:"activityType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"activitySubtype",type:"activitySubtype",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"activityLevel",type:"activityLevel",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"distance16",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"100 * m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"cycles16",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"2 * cycles (steps)",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"activeTime16",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"localTimestamp",type:"localDateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"temperature",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},14:{num:14,name:"temperatureMin",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},15:{num:15,name:"temperatureMax",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"C",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},16:{num:16,name:"activityTime",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"minutes",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},19:{num:19,name:"activeCalories",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"kcal",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},24:{num:24,name:"currentActivityTypeIntensity",type:"byte",baseType:"byte",array:!1,scale:[1,1],offset:[0,0],units:["",""],bits:[5,3],components:["5","28"],isAccumulated:!1,hasComponents:!0,subFields:[]},25:{num:25,name:"timestampMin8",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},26:{num:26,name:"timestamp16",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},27:{num:27,name:"heartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},28:{num:28,name:"intensity",type:"uint8",baseType:"uint8",array:!1,scale:10,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},29:{num:29,name:"durationMin",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},30:{num:30,name:"duration",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},31:{num:31,name:"ascent",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},32:{num:32,name:"descent",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},33:{num:33,name:"moderateActivityMinutes",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"minutes",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},34:{num:34,name:"vigorousActivityMinutes",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"minutes",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},211:{num:211,name:"monitoringHrData",messagesKey:"monitoringHrDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"restingHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"currentDayRestingHeartRate",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},269:{num:269,name:"spo2Data",messagesKey:"spo2DataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"readingSpo2",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"readingConfidence",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"mode",type:"spo2MeasurementType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},132:{num:132,name:"hr",messagesKey:"hrMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"fractionalTimestamp",type:"uint16",baseType:"uint16",array:!1,scale:32768,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"time256",type:"uint8",baseType:"uint8",array:!1,scale:[256],offset:[0],units:["s"],bits:[8],components:["0"],isAccumulated:!1,hasComponents:!0,subFields:[]},6:{num:6,name:"filteredBpm",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"eventTimestamp",type:"uint32",baseType:"uint32",array:!0,scale:1024,offset:0,units:"s",bits:[],components:[],isAccumulated:!0,hasComponents:!1,subFields:[]},10:{num:10,name:"eventTimestamp12",type:"byte",baseType:"byte",array:!0,scale:[1024,1024,1024,1024,1024,1024,1024,1024,1024,1024],offset:[0,0,0,0,0,0,0,0,0,0],units:["s","","","","","","","","",""],bits:[12,12,12,12,12,12,12,12,12,12],components:["9","9","9","9","9","9","9","9","9","9"],isAccumulated:!1,hasComponents:!0,subFields:[]}}},227:{num:227,name:"stressLevel",messagesKey:"stressLevelMesgs",fields:{0:{num:0,name:"stressLevelValue",type:"sint16",baseType:"sint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"stressLevelTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},229:{num:229,name:"maxMetData",messagesKey:"maxMetDataMesgs",fields:{0:{num:0,name:"updateTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"vo2Max",type:"uint16",baseType:"uint16",array:!1,scale:10,offset:0,units:"mL/kg/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"sport",type:"sport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"subSport",type:"subSport",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"maxMetCategory",type:"maxMetCategory",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"calibratedData",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"hrSource",type:"maxMetHeartRateSource",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"speedSource",type:"maxMetSpeedSource",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},314:{num:314,name:"hsaBodyBatteryData",messagesKey:"hsaBodyBatteryDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"processingInterval",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"level",type:"sint8",baseType:"sint8",array:!0,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"charged",type:"sint16",baseType:"sint16",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"uncharged",type:"sint16",baseType:"sint16",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},315:{num:315,name:"hsaEvent",messagesKey:"hsaEventMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"eventId",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},302:{num:302,name:"hsaAccelerometerData",messagesKey:"hsaAccelerometerDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"samplingInterval",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"accelX",type:"sint16",baseType:"sint16",array:!0,scale:1.024,offset:0,units:"mG",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"accelY",type:"sint16",baseType:"sint16",array:!0,scale:1.024,offset:0,units:"mG",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"accelZ",type:"sint16",baseType:"sint16",array:!0,scale:1.024,offset:0,units:"mG",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"timestamp32k",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},376:{num:376,name:"hsaGyroscopeData",messagesKey:"hsaGyroscopeDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"samplingInterval",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"1/32768 s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"gyroX",type:"sint16",baseType:"sint16",array:!0,scale:28.57143,offset:0,units:"deg/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"gyroY",type:"sint16",baseType:"sint16",array:!0,scale:28.57143,offset:0,units:"deg/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"gyroZ",type:"sint16",baseType:"sint16",array:!0,scale:28.57143,offset:0,units:"deg/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"timestamp32k",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"1/32768 s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},304:{num:304,name:"hsaStepData",messagesKey:"hsaStepDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"processingInterval",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"steps",type:"uint32",baseType:"uint32",array:!0,scale:1,offset:0,units:"steps",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},305:{num:305,name:"hsaSpo2Data",messagesKey:"hsaSpo2DataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"processingInterval",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"readingSpo2",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"confidence",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},306:{num:306,name:"hsaStressData",messagesKey:"hsaStressDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"processingInterval",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"stressLevel",type:"sint8",baseType:"sint8",array:!0,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},307:{num:307,name:"hsaRespirationData",messagesKey:"hsaRespirationDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"processingInterval",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"respirationRate",type:"sint16",baseType:"sint16",array:!0,scale:100,offset:0,units:"breaths/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},308:{num:308,name:"hsaHeartRateData",messagesKey:"hsaHeartRateDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"processingInterval",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"status",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"heartRate",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"bpm",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},389:{num:389,name:"hsaConfigurationData",messagesKey:"hsaConfigurationDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"data",type:"byte",baseType:"byte",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"dataSize",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},409:{num:409,name:"hsaWristTemperatureData",messagesKey:"hsaWristTemperatureDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"processingInterval",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"value",type:"uint16",baseType:"uint16",array:!0,scale:1e3,offset:0,units:"degC",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},145:{num:145,name:"memoGlob",messagesKey:"memoGlobMesgs",fields:{250:{num:250,name:"partIndex",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"memo",type:"byte",baseType:"byte",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"mesgNum",type:"mesgNum",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"parentIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"fieldNum",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"data",type:"uint8z",baseType:"uint8z",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},275:{num:275,name:"sleepLevel",messagesKey:"sleepLevelMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"sleepLevel",type:"sleepLevel",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},82:{num:82,name:"antChannelId",messagesKey:"antChannelIdMesgs",fields:{0:{num:0,name:"channelNumber",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"deviceType",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"deviceNumber",type:"uint16z",baseType:"uint16z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"transmissionType",type:"uint8z",baseType:"uint8z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"deviceIndex",type:"deviceIndex",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},80:{num:80,name:"antRx",messagesKey:"antRxMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"fractionalTimestamp",type:"uint16",baseType:"uint16",array:!1,scale:32768,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"mesgId",type:"byte",baseType:"byte",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"mesgData",type:"byte",baseType:"byte",array:!0,scale:[1,1,1,1,1,1,1,1,1],offset:[0,0,0,0,0,0,0,0,0],units:["","","","","","","","",""],bits:[8,8,8,8,8,8,8,8,8],components:["3","4","4","4","4","4","4","4","4"],isAccumulated:!1,hasComponents:!0,subFields:[]},3:{num:3,name:"channelNumber",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"data",type:"byte",baseType:"byte",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},81:{num:81,name:"antTx",messagesKey:"antTxMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"fractionalTimestamp",type:"uint16",baseType:"uint16",array:!1,scale:32768,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"mesgId",type:"byte",baseType:"byte",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"mesgData",type:"byte",baseType:"byte",array:!0,scale:[1,1,1,1,1,1,1,1,1],offset:[0,0,0,0,0,0,0,0,0],units:["","","","","","","","",""],bits:[8,8,8,8,8,8,8,8,8],components:["3","4","4","4","4","4","4","4","4"],isAccumulated:!1,hasComponents:!0,subFields:[]},3:{num:3,name:"channelNumber",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"data",type:"byte",baseType:"byte",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},200:{num:200,name:"exdScreenConfiguration",messagesKey:"exdScreenConfigurationMesgs",fields:{0:{num:0,name:"screenIndex",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"fieldCount",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"layout",type:"exdLayout",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"screenEnabled",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},201:{num:201,name:"exdDataFieldConfiguration",messagesKey:"exdDataFieldConfigurationMesgs",fields:{0:{num:0,name:"screenIndex",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"conceptField",type:"byte",baseType:"byte",array:!1,scale:[1,1],offset:[0,0],units:["",""],bits:[4,4],components:["2","3"],isAccumulated:!1,hasComponents:!0,subFields:[]},2:{num:2,name:"fieldId",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"conceptCount",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"displayType",type:"exdDisplayType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"title",type:"string",baseType:"string",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},202:{num:202,name:"exdDataConceptConfiguration",messagesKey:"exdDataConceptConfigurationMesgs",fields:{0:{num:0,name:"screenIndex",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"conceptField",type:"byte",baseType:"byte",array:!1,scale:[1,1],offset:[0,0],units:["",""],bits:[4,4],components:["2","3"],isAccumulated:!1,hasComponents:!0,subFields:[]},2:{num:2,name:"fieldId",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"conceptIndex",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"dataPage",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"conceptKey",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"scaling",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"dataUnits",type:"exdDataUnits",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"qualifier",type:"exdQualifiers",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"descriptor",type:"exdDescriptors",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"isSigned",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},268:{num:268,name:"diveSummary",messagesKey:"diveSummaryMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"referenceMesg",type:"mesgNum",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"referenceIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"avgDepth",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"maxDepth",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"surfaceInterval",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"startCns",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"endCns",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"startN2",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"endN2",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"percent",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"o2Toxicity",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"OTUs",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"diveNumber",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"bottomTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},12:{num:12,name:"avgPressureSac",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"bar/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},13:{num:13,name:"avgVolumeSac",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"L/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},14:{num:14,name:"avgRmv",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"L/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},15:{num:15,name:"descentTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},16:{num:16,name:"ascentTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},17:{num:17,name:"avgAscentRate",type:"sint32",baseType:"sint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},22:{num:22,name:"avgDescentRate",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},23:{num:23,name:"maxAscentRate",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},24:{num:24,name:"maxDescentRate",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},25:{num:25,name:"hangTime",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},289:{num:289,name:"aadAccelFeatures",messagesKey:"aadAccelFeaturesMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"time",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"energyTotal",type:"uint32",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"zeroCrossCnt",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"instance",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"timeAboveThreshold",type:"uint16",baseType:"uint16",array:!1,scale:25,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},78:{num:78,name:"hrv",messagesKey:"hrvMesgs",fields:{0:{num:0,name:"time",type:"uint16",baseType:"uint16",array:!0,scale:1e3,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},290:{num:290,name:"beatIntervals",messagesKey:"beatIntervalsMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"time",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},370:{num:370,name:"hrvStatusSummary",messagesKey:"hrvStatusSummaryMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"weeklyAverage",type:"uint16",baseType:"uint16",array:!1,scale:128,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"lastNightAverage",type:"uint16",baseType:"uint16",array:!1,scale:128,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"lastNight5MinHigh",type:"uint16",baseType:"uint16",array:!1,scale:128,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"baselineLowUpper",type:"uint16",baseType:"uint16",array:!1,scale:128,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"baselineBalancedLower",type:"uint16",baseType:"uint16",array:!1,scale:128,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"baselineBalancedUpper",type:"uint16",baseType:"uint16",array:!1,scale:128,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"status",type:"hrvStatus",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},371:{num:371,name:"hrvValue",messagesKey:"hrvValueMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"value",type:"uint16",baseType:"uint16",array:!1,scale:128,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},372:{num:372,name:"rawBbi",messagesKey:"rawBbiMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"timestampMs",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"data",type:"uint16",baseType:"uint16",array:!0,scale:[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],offset:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],units:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],bits:[14,1,1,14,1,1,14,1,1,14,1,1,14,1,1,14,1,1,14,1,1,14,1,1,14,1,1,14,1,1,14,1,1,14,1,1,14,1,1,14,1,1,14,1,1],components:["2","3","4","2","3","4","2","3","4","2","3","4","2","3","4","2","3","4","2","3","4","2","3","4","2","3","4","2","3","4","2","3","4","2","3","4","2","3","4","2","3","4","2","3","4"],isAccumulated:!1,hasComponents:!0,subFields:[]},2:{num:2,name:"time",type:"uint16",baseType:"uint16",array:!0,scale:1,offset:0,units:"ms",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"quality",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"gap",type:"uint8",baseType:"uint8",array:!0,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},297:{num:297,name:"respirationRate",messagesKey:"respirationRateMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"respirationRate",type:"sint16",baseType:"sint16",array:!1,scale:100,offset:0,units:"breaths/min",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},387:{num:387,name:"chronoShotSession",messagesKey:"chronoShotSessionMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"minSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"maxSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"avgSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"shotCount",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"projectileType",type:"projectileType",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"grainWeight",type:"uint32",baseType:"uint32",array:!1,scale:10,offset:0,units:"gr",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"standardDeviation",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},388:{num:388,name:"chronoShotData",messagesKey:"chronoShotDataMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"shotSpeed",type:"uint32",baseType:"uint32",array:!1,scale:1e3,offset:0,units:"m/s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"shotNum",type:"uint16",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},319:{num:319,name:"tankUpdate",messagesKey:"tankUpdateMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"sensor",type:"antChannelId",baseType:"uint32z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"pressure",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"bar",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},323:{num:323,name:"tankSummary",messagesKey:"tankSummaryMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"s",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"sensor",type:"antChannelId",baseType:"uint32z",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"startPressure",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"bar",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"endPressure",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"bar",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"volumeUsed",type:"uint32",baseType:"uint32",array:!1,scale:100,offset:0,units:"L",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},346:{num:346,name:"sleepAssessment",messagesKey:"sleepAssessmentMesgs",fields:{0:{num:0,name:"combinedAwakeScore",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"awakeTimeScore",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"awakeningsCountScore",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"deepSleepScore",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"sleepDurationScore",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"lightSleepScore",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"overallSleepScore",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"sleepQualityScore",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},8:{num:8,name:"sleepRecoveryScore",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},9:{num:9,name:"remSleepScore",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},10:{num:10,name:"sleepRestlessnessScore",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},11:{num:11,name:"awakeningsCount",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},14:{num:14,name:"interruptionsScore",type:"uint8",baseType:"uint8",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},15:{num:15,name:"averageStressDuringSleep",type:"uint16",baseType:"uint16",array:!1,scale:100,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},470:{num:470,name:"sleepDisruptionSeverityPeriod",messagesKey:"sleepDisruptionSeverityPeriodMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"severity",type:"sleepDisruptionSeverity",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},471:{num:471,name:"sleepDisruptionOvernightSeverity",messagesKey:"sleepDisruptionOvernightSeverityMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"severity",type:"sleepDisruptionSeverity",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},412:{num:412,name:"napEvent",messagesKey:"napEventMesgs",fields:{254:{num:254,name:"messageIndex",type:"messageIndex",baseType:"uint16",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"startTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"seconds",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"startTimezoneOffset",type:"sint16",baseType:"sint16",array:!1,scale:1,offset:0,units:"minutes",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"endTime",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"seconds",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},3:{num:3,name:"endTimezoneOffset",type:"sint16",baseType:"sint16",array:!1,scale:1,offset:0,units:"minutes",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"feedback",type:"napPeriodFeedback",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},5:{num:5,name:"isDeleted",type:"bool",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},6:{num:6,name:"source",type:"napSource",baseType:"enum",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},7:{num:7,name:"updateTimestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},398:{num:398,name:"skinTempOvernight",messagesKey:"skinTempOvernightMesgs",fields:{253:{num:253,name:"timestamp",type:"dateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},0:{num:0,name:"localTimestamp",type:"localDateTime",baseType:"uint32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},1:{num:1,name:"averageDeviation",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},2:{num:2,name:"average7DayDeviation",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]},4:{num:4,name:"nightlyValue",type:"float32",baseType:"float32",array:!1,scale:1,offset:0,units:"",bits:[],components:[],isAccumulated:!1,hasComponents:!1,subFields:[]}}},105:{num:105,name:"pad",messagesKey:"padMesgs",fields:{}}},types:{file:{1:"device",2:"settings",3:"sport",4:"activity",5:"workout",6:"course",7:"schedules",9:"weight",10:"totals",11:"goals",14:"bloodPressure",15:"monitoringA",20:"activitySummary",28:"monitoringDaily",32:"monitoringB",34:"segment",35:"segmentList",40:"exdConfiguration",247:"mfgRangeMin",254:"mfgRangeMax"},mesgNum:{0:"fileId",1:"capabilities",2:"deviceSettings",3:"userProfile",4:"hrmProfile",5:"sdmProfile",6:"bikeProfile",7:"zonesTarget",8:"hrZone",9:"powerZone",10:"metZone",12:"sport",13:"trainingSettings",15:"goal",18:"session",19:"lap",20:"record",21:"event",23:"deviceInfo",26:"workout",27:"workoutStep",28:"schedule",30:"weightScale",31:"course",32:"coursePoint",33:"totals",34:"activity",35:"software",37:"fileCapabilities",38:"mesgCapabilities",39:"fieldCapabilities",49:"fileCreator",51:"bloodPressure",53:"speedZone",55:"monitoring",72:"trainingFile",78:"hrv",80:"antRx",81:"antTx",82:"antChannelId",101:"length",103:"monitoringInfo",105:"pad",106:"slaveDevice",127:"connectivity",128:"weatherConditions",129:"weatherAlert",131:"cadenceZone",132:"hr",142:"segmentLap",145:"memoGlob",148:"segmentId",149:"segmentLeaderboardEntry",150:"segmentPoint",151:"segmentFile",158:"workoutSession",159:"watchfaceSettings",160:"gpsMetadata",161:"cameraEvent",162:"timestampCorrelation",164:"gyroscopeData",165:"accelerometerData",167:"threeDSensorCalibration",169:"videoFrame",174:"obdiiData",177:"nmeaSentence",178:"aviationAttitude",184:"video",185:"videoTitle",186:"videoDescription",187:"videoClip",188:"ohrSettings",200:"exdScreenConfiguration",201:"exdDataFieldConfiguration",202:"exdDataConceptConfiguration",206:"fieldDescription",207:"developerDataId",208:"magnetometerData",209:"barometerData",210:"oneDSensorCalibration",211:"monitoringHrData",216:"timeInZone",225:"set",227:"stressLevel",229:"maxMetData",258:"diveSettings",259:"diveGas",262:"diveAlarm",264:"exerciseTitle",268:"diveSummary",269:"spo2Data",275:"sleepLevel",285:"jump",289:"aadAccelFeatures",290:"beatIntervals",297:"respirationRate",302:"hsaAccelerometerData",304:"hsaStepData",305:"hsaSpo2Data",306:"hsaStressData",307:"hsaRespirationData",308:"hsaHeartRateData",312:"split",313:"splitSummary",314:"hsaBodyBatteryData",315:"hsaEvent",317:"climbPro",319:"tankUpdate",323:"tankSummary",346:"sleepAssessment",370:"hrvStatusSummary",371:"hrvValue",372:"rawBbi",375:"deviceAuxBatteryInfo",376:"hsaGyroscopeData",387:"chronoShotSession",388:"chronoShotData",389:"hsaConfigurationData",393:"diveApneaAlarm",398:"skinTempOvernight",409:"hsaWristTemperatureData",412:"napEvent",470:"sleepDisruptionSeverityPeriod",471:"sleepDisruptionOvernightSeverity",65280:"mfgRangeMin",65534:"mfgRangeMax"},checksum:{0:"clear",1:"ok"},fileFlags:{2:"read",4:"write",8:"erase"},mesgCount:{0:"numPerFile",1:"maxPerFile",2:"maxPerFileType"},dateTime:{268435456:"min"},localDateTime:{268435456:"min"},messageIndex:{32768:"selected",28672:"reserved",4095:"mask"},deviceIndex:{0:"creator"},gender:{0:"female",1:"male"},language:{0:"english",1:"french",2:"italian",3:"german",4:"spanish",5:"croatian",6:"czech",7:"danish",8:"dutch",9:"finnish",10:"greek",11:"hungarian",12:"norwegian",13:"polish",14:"portuguese",15:"slovakian",16:"slovenian",17:"swedish",18:"russian",19:"turkish",20:"latvian",21:"ukrainian",22:"arabic",23:"farsi",24:"bulgarian",25:"romanian",26:"chinese",27:"japanese",28:"korean",29:"taiwanese",30:"thai",31:"hebrew",32:"brazilianPortuguese",33:"indonesian",34:"malaysian",35:"vietnamese",36:"burmese",37:"mongolian",254:"custom"},languageBits0:{1:"english",2:"french",4:"italian",8:"german",16:"spanish",32:"croatian",64:"czech",128:"danish"},languageBits1:{1:"dutch",2:"finnish",4:"greek",8:"hungarian",16:"norwegian",32:"polish",64:"portuguese",128:"slovakian"},languageBits2:{1:"slovenian",2:"swedish",4:"russian",8:"turkish",16:"latvian",32:"ukrainian",64:"arabic",128:"farsi"},languageBits3:{1:"bulgarian",2:"romanian",4:"chinese",8:"japanese",16:"korean",32:"taiwanese",64:"thai",128:"hebrew"},languageBits4:{1:"brazilianPortuguese",2:"indonesian",4:"malaysian",8:"vietnamese",16:"burmese",32:"mongolian"},timeZone:{0:"almaty",1:"bangkok",2:"bombay",3:"brasilia",4:"cairo",5:"capeVerdeIs",6:"darwin",7:"eniwetok",8:"fiji",9:"hongKong",10:"islamabad",11:"kabul",12:"magadan",13:"midAtlantic",14:"moscow",15:"muscat",16:"newfoundland",17:"samoa",18:"sydney",19:"tehran",20:"tokyo",21:"usAlaska",22:"usAtlantic",23:"usCentral",24:"usEastern",25:"usHawaii",26:"usMountain",27:"usPacific",28:"other",29:"auckland",30:"kathmandu",31:"europeWesternWet",32:"europeCentralCet",33:"europeEasternEet",34:"jakarta",35:"perth",36:"adelaide",37:"brisbane",38:"tasmania",39:"iceland",40:"amsterdam",41:"athens",42:"barcelona",43:"berlin",44:"brussels",45:"budapest",46:"copenhagen",47:"dublin",48:"helsinki",49:"lisbon",50:"london",51:"madrid",52:"munich",53:"oslo",54:"paris",55:"prague",56:"reykjavik",57:"rome",58:"stockholm",59:"vienna",60:"warsaw",61:"zurich",62:"quebec",63:"ontario",64:"manitoba",65:"saskatchewan",66:"alberta",67:"britishColumbia",68:"boise",69:"boston",70:"chicago",71:"dallas",72:"denver",73:"kansasCity",74:"lasVegas",75:"losAngeles",76:"miami",77:"minneapolis",78:"newYork",79:"newOrleans",80:"phoenix",81:"santaFe",82:"seattle",83:"washingtonDc",84:"usArizona",85:"chita",86:"ekaterinburg",87:"irkutsk",88:"kaliningrad",89:"krasnoyarsk",90:"novosibirsk",91:"petropavlovskKamchatskiy",92:"samara",93:"vladivostok",94:"mexicoCentral",95:"mexicoMountain",96:"mexicoPacific",97:"capeTown",98:"winkhoek",99:"lagos",100:"riyahd",101:"venezuela",102:"australiaLh",103:"santiago",253:"manual",254:"automatic"},displayMeasure:{0:"metric",1:"statute",2:"nautical"},displayHeart:{0:"bpm",1:"max",2:"reserve"},displayPower:{0:"watts",1:"percentFtp"},displayPosition:{0:"degree",1:"degreeMinute",2:"degreeMinuteSecond",3:"austrianGrid",4:"britishGrid",5:"dutchGrid",6:"hungarianGrid",7:"finnishGrid",8:"germanGrid",9:"icelandicGrid",10:"indonesianEquatorial",11:"indonesianIrian",12:"indonesianSouthern",13:"indiaZone0",14:"indiaZoneIA",15:"indiaZoneIB",16:"indiaZoneIIA",17:"indiaZoneIIB",18:"indiaZoneIIIA",19:"indiaZoneIIIB",20:"indiaZoneIVA",21:"indiaZoneIVB",22:"irishTransverse",23:"irishGrid",24:"loran",25:"maidenheadGrid",26:"mgrsGrid",27:"newZealandGrid",28:"newZealandTransverse",29:"qatarGrid",30:"modifiedSwedishGrid",31:"swedishGrid",32:"southAfricanGrid",33:"swissGrid",34:"taiwanGrid",35:"unitedStatesGrid",36:"utmUpsGrid",37:"westMalayan",38:"borneoRso",39:"estonianGrid",40:"latvianGrid",41:"swedishRef99Grid"},switch:{0:"off",1:"on",2:"auto"},sport:{0:"generic",1:"running",2:"cycling",3:"transition",4:"fitnessEquipment",5:"swimming",6:"basketball",7:"soccer",8:"tennis",9:"americanFootball",10:"training",11:"walking",12:"crossCountrySkiing",13:"alpineSkiing",14:"snowboarding",15:"rowing",16:"mountaineering",17:"hiking",18:"multisport",19:"paddling",20:"flying",21:"eBiking",22:"motorcycling",23:"boating",24:"driving",25:"golf",26:"hangGliding",27:"horsebackRiding",28:"hunting",29:"fishing",30:"inlineSkating",31:"rockClimbing",32:"sailing",33:"iceSkating",34:"skyDiving",35:"snowshoeing",36:"snowmobiling",37:"standUpPaddleboarding",38:"surfing",39:"wakeboarding",40:"waterSkiing",41:"kayaking",42:"rafting",43:"windsurfing",44:"kitesurfing",45:"tactical",46:"jumpmaster",47:"boxing",48:"floorClimbing",49:"baseball",53:"diving",56:"shooting",58:"winterSport",59:"grinding",62:"hiit",63:"videoGaming",64:"racket",65:"wheelchairPushWalk",66:"wheelchairPushRun",67:"meditation",68:"paraSport",69:"discGolf",70:"teamSport",71:"cricket",72:"rugby",73:"hockey",74:"lacrosse",75:"volleyball",76:"waterTubing",77:"wakesurfing",78:"waterSport",79:"archery",80:"mixedMartialArts",81:"motorSports",82:"snorkeling",83:"dance",84:"jumpRope",85:"poolApnea",86:"mobility",87:"geocaching",88:"canoeing",254:"all"},sportBits0:{1:"generic",2:"running",4:"cycling",8:"transition",16:"fitnessEquipment",32:"swimming",64:"basketball",128:"soccer"},sportBits1:{1:"tennis",2:"americanFootball",4:"training",8:"walking",16:"crossCountrySkiing",32:"alpineSkiing",64:"snowboarding",128:"rowing"},sportBits2:{1:"mountaineering",2:"hiking",4:"multisport",8:"paddling",16:"flying",32:"eBiking",64:"motorcycling",128:"boating"},sportBits3:{1:"driving",2:"golf",4:"hangGliding",8:"horsebackRiding",16:"hunting",32:"fishing",64:"inlineSkating",128:"rockClimbing"},sportBits4:{1:"sailing",2:"iceSkating",4:"skyDiving",8:"snowshoeing",16:"snowmobiling",32:"standUpPaddleboarding",64:"surfing",128:"wakeboarding"},sportBits5:{1:"waterSkiing",2:"kayaking",4:"rafting",8:"windsurfing",16:"kitesurfing",32:"tactical",64:"jumpmaster",128:"boxing"},sportBits6:{1:"floorClimbing"},subSport:{0:"generic",1:"treadmill",2:"street",3:"trail",4:"track",5:"spin",6:"indoorCycling",7:"road",8:"mountain",9:"downhill",10:"recumbent",11:"cyclocross",12:"handCycling",13:"trackCycling",14:"indoorRowing",15:"elliptical",16:"stairClimbing",17:"lapSwimming",18:"openWater",19:"flexibilityTraining",20:"strengthTraining",21:"warmUp",22:"match",23:"exercise",24:"challenge",25:"indoorSkiing",26:"cardioTraining",27:"indoorWalking",28:"eBikeFitness",29:"bmx",30:"casualWalking",31:"speedWalking",32:"bikeToRunTransition",33:"runToBikeTransition",34:"swimToBikeTransition",35:"atv",36:"motocross",37:"backcountry",38:"resort",39:"rcDrone",40:"wingsuit",41:"whitewater",42:"skateSkiing",43:"yoga",44:"pilates",45:"indoorRunning",46:"gravelCycling",47:"eBikeMountain",48:"commuting",49:"mixedSurface",50:"navigate",51:"trackMe",52:"map",53:"singleGasDiving",54:"multiGasDiving",55:"gaugeDiving",56:"apneaDiving",57:"apneaHunting",58:"virtualActivity",59:"obstacle",62:"breathing",63:"ccrDiving",65:"sailRace",66:"expedition",67:"ultra",68:"indoorClimbing",69:"bouldering",70:"hiit",71:"indoorGrinding",72:"huntingWithDogs",73:"amrap",74:"emom",75:"tabata",77:"esport",78:"triathlon",79:"duathlon",80:"brick",81:"swimRun",82:"adventureRace",83:"truckerWorkout",84:"pickleball",85:"padel",86:"indoorWheelchairWalk",87:"indoorWheelchairRun",88:"indoorHandCycling",90:"field",91:"ice",92:"ultimate",93:"platform",94:"squash",95:"badminton",96:"racquetball",97:"tableTennis",98:"overland",99:"trollingMotor",110:"flyCanopy",111:"flyParaglide",112:"flyParamotor",113:"flyPressurized",114:"flyNavigate",115:"flyTimer",116:"flyAltimeter",117:"flyWx",118:"flyVfr",119:"flyIfr",121:"dynamicApnea",123:"enduro",124:"rucking",125:"rally",126:"poolTriathlon",127:"eBikeEnduro",254:"all"},sportEvent:{0:"uncategorized",1:"geocaching",2:"fitness",3:"recreation",4:"race",5:"specialEvent",6:"training",7:"transportation",8:"touring"},activity:{0:"manual",1:"autoMultiSport"},intensity:{0:"active",1:"rest",2:"warmup",3:"cooldown",4:"recovery",5:"interval",6:"other"},sessionTrigger:{0:"activityEnd",1:"manual",2:"autoMultiSport",3:"fitnessEquipment"},autolapTrigger:{0:"time",1:"distance",2:"positionStart",3:"positionLap",4:"positionWaypoint",5:"positionMarked",6:"off",13:"autoSelect"},lapTrigger:{0:"manual",1:"time",2:"distance",3:"positionStart",4:"positionLap",5:"positionWaypoint",6:"positionMarked",7:"sessionEnd",8:"fitnessEquipment"},timeMode:{0:"hour12",1:"hour24",2:"military",3:"hour12WithSeconds",4:"hour24WithSeconds",5:"utc"},backlightMode:{0:"off",1:"manual",2:"keyAndMessages",3:"autoBrightness",4:"smartNotifications",5:"keyAndMessagesNight",6:"keyAndMessagesAndSmartNotifications"},dateMode:{0:"dayMonth",1:"monthDay"},backlightTimeout:{0:"infinite"},event:{0:"timer",3:"workout",4:"workoutStep",5:"powerDown",6:"powerUp",7:"offCourse",8:"session",9:"lap",10:"coursePoint",11:"battery",12:"virtualPartnerPace",13:"hrHighAlert",14:"hrLowAlert",15:"speedHighAlert",16:"speedLowAlert",17:"cadHighAlert",18:"cadLowAlert",19:"powerHighAlert",20:"powerLowAlert",21:"recoveryHr",22:"batteryLow",23:"timeDurationAlert",24:"distanceDurationAlert",25:"calorieDurationAlert",26:"activity",27:"fitnessEquipment",28:"length",32:"userMarker",33:"sportPoint",36:"calibration",42:"frontGearChange",43:"rearGearChange",44:"riderPositionChange",45:"elevHighAlert",46:"elevLowAlert",47:"commTimeout",54:"autoActivityDetect",56:"diveAlert",57:"diveGasSwitched",71:"tankPressureReserve",72:"tankPressureCritical",73:"tankLost",75:"radarThreatAlert",76:"tankBatteryLow",81:"tankPodConnected",82:"tankPodDisconnected"},eventType:{0:"start",1:"stop",2:"consecutiveDepreciated",3:"marker",4:"stopAll",5:"beginDepreciated",6:"endDepreciated",7:"endAllDepreciated",8:"stopDisable",9:"stopDisableAll"},timerTrigger:{0:"manual",1:"auto",2:"fitnessEquipment"},fitnessEquipmentState:{0:"ready",1:"inUse",2:"paused",3:"unknown"},tone:{0:"off",1:"tone",2:"vibrate",3:"toneAndVibrate"},autoscroll:{0:"none",1:"slow",2:"medium",3:"fast"},activityClass:{127:"level",100:"levelMax",128:"athlete"},hrZoneCalc:{0:"custom",1:"percentMaxHr",2:"percentHrr",3:"percentLthr"},pwrZoneCalc:{0:"custom",1:"percentFtp"},wktStepDuration:{0:"time",1:"distance",2:"hrLessThan",3:"hrGreaterThan",4:"calories",5:"open",6:"repeatUntilStepsCmplt",7:"repeatUntilTime",8:"repeatUntilDistance",9:"repeatUntilCalories",10:"repeatUntilHrLessThan",11:"repeatUntilHrGreaterThan",12:"repeatUntilPowerLessThan",13:"repeatUntilPowerGreaterThan",14:"powerLessThan",15:"powerGreaterThan",16:"trainingPeaksTss",17:"repeatUntilPowerLastLapLessThan",18:"repeatUntilMaxPowerLastLapLessThan",19:"power3sLessThan",20:"power10sLessThan",21:"power30sLessThan",22:"power3sGreaterThan",23:"power10sGreaterThan",24:"power30sGreaterThan",25:"powerLapLessThan",26:"powerLapGreaterThan",27:"repeatUntilTrainingPeaksTss",28:"repetitionTime",29:"reps",31:"timeOnly"},wktStepTarget:{0:"speed",1:"heartRate",2:"open",3:"cadence",4:"power",5:"grade",6:"resistance",7:"power3s",8:"power10s",9:"power30s",10:"powerLap",11:"swimStroke",12:"speedLap",13:"heartRateLap"},goal:{0:"time",1:"distance",2:"calories",3:"frequency",4:"steps",5:"ascent",6:"activeMinutes"},goalRecurrence:{0:"off",1:"daily",2:"weekly",3:"monthly",4:"yearly",5:"custom"},goalSource:{0:"auto",1:"community",2:"user"},schedule:{0:"workout",1:"course"},coursePoint:{0:"generic",1:"summit",2:"valley",3:"water",4:"food",5:"danger",6:"left",7:"right",8:"straight",9:"firstAid",10:"fourthCategory",11:"thirdCategory",12:"secondCategory",13:"firstCategory",14:"horsCategory",15:"sprint",16:"leftFork",17:"rightFork",18:"middleFork",19:"slightLeft",20:"sharpLeft",21:"slightRight",22:"sharpRight",23:"uTurn",24:"segmentStart",25:"segmentEnd",27:"campsite",28:"aidStation",29:"restArea",30:"generalDistance",31:"service",32:"energyGel",33:"sportsDrink",34:"mileMarker",35:"checkpoint",36:"shelter",37:"meetingSpot",38:"overlook",39:"toilet",40:"shower",41:"gear",42:"sharpCurve",43:"steepIncline",44:"tunnel",45:"bridge",46:"obstacle",47:"crossing",48:"store",49:"transition",50:"navaid",51:"transport",52:"alert",53:"info"},manufacturer:{1:"garmin",2:"garminFr405Antfs",3:"zephyr",4:"dayton",5:"idt",6:"srm",7:"quarq",8:"ibike",9:"saris",10:"sparkHk",11:"tanita",12:"echowell",13:"dynastreamOem",14:"nautilus",15:"dynastream",16:"timex",17:"metrigear",18:"xelic",19:"beurer",20:"cardiosport",21:"aAndD",22:"hmm",23:"suunto",24:"thitaElektronik",25:"gpulse",26:"cleanMobile",27:"pedalBrain",28:"peaksware",29:"saxonar",30:"lemondFitness",31:"dexcom",32:"wahooFitness",33:"octaneFitness",34:"archinoetics",35:"theHurtBox",36:"citizenSystems",37:"magellan",38:"osynce",39:"holux",40:"concept2",41:"shimano",42:"oneGiantLeap",43:"aceSensor",44:"brimBrothers",45:"xplova",46:"perceptionDigital",47:"bf1systems",48:"pioneer",49:"spantec",50:"metalogics",51:"4iiiis",52:"seikoEpson",53:"seikoEpsonOem",54:"iforPowell",55:"maxwellGuider",56:"starTrac",57:"breakaway",58:"alatechTechnologyLtd",59:"mioTechnologyEurope",60:"rotor",61:"geonaute",62:"idBike",63:"specialized",64:"wtek",65:"physicalEnterprises",66:"northPoleEngineering",67:"bkool",68:"cateye",69:"stagesCycling",70:"sigmasport",71:"tomtom",72:"peripedal",73:"wattbike",76:"moxy",77:"ciclosport",78:"powerbahn",79:"acornProjectsAps",80:"lifebeam",81:"bontrager",82:"wellgo",83:"scosche",84:"magura",85:"woodway",86:"elite",87:"nielsenKellerman",88:"dkCity",89:"tacx",90:"directionTechnology",91:"magtonic",92:"1partcarbon",93:"insideRideTechnologies",94:"soundOfMotion",95:"stryd",96:"icg",97:"miPulse",98:"bsxAthletics",99:"look",100:"campagnoloSrl",101:"bodyBikeSmart",102:"praxisworks",103:"limitsTechnology",104:"topactionTechnology",105:"cosinuss",106:"fitcare",107:"magene",108:"giantManufacturingCo",109:"tigrasport",110:"salutron",111:"technogym",112:"brytonSensors",113:"latitudeLimited",114:"soaringTechnology",115:"igpsport",116:"thinkrider",117:"gopherSport",118:"waterrower",119:"orangetheory",120:"inpeak",121:"kinetic",122:"johnsonHealthTech",123:"polarElectro",124:"seesense",125:"nciTechnology",126:"iqsquare",127:"leomo",128:"ifitCom",129:"corosByte",130:"versaDesign",131:"chileaf",132:"cycplus",133:"gravaaByte",134:"sigeyi",135:"coospo",136:"geoid",137:"bosch",138:"kyto",139:"kineticSports",140:"decathlonByte",141:"tqSystems",142:"tagHeuer",143:"keiserFitness",144:"zwiftByte",145:"porscheEp",146:"blackbird",147:"meilanByte",148:"ezon",149:"laisi",150:"myzone",151:"abawo",152:"bafang",153:"luhongTechnology",255:"development",257:"healthandlife",258:"lezyne",259:"scribeLabs",260:"zwift",261:"watteam",262:"recon",263:"faveroElectronics",264:"dynovelo",265:"strava",266:"precor",267:"bryton",268:"sram",269:"navman",270:"cobi",271:"spivi",272:"mioMagellan",273:"evesports",274:"sensitivusGauge",275:"podoon",276:"lifeTimeFitness",277:"falcoEMotors",278:"minoura",279:"cycliq",280:"luxottica",281:"trainerRoad",282:"theSufferfest",283:"fullspeedahead",284:"virtualtraining",285:"feedbacksports",286:"omata",287:"vdo",288:"magneticdays",289:"hammerhead",290:"kineticByKurt",291:"shapelog",292:"dabuziduo",293:"jetblack",294:"coros",295:"virtugo",296:"velosense",297:"cycligentinc",298:"trailforks",299:"mahleEbikemotion",300:"nurvv",301:"microprogram",302:"zone5cloud",303:"greenteg",304:"yamahaMotors",305:"whoop",306:"gravaa",307:"onelap",308:"monarkExercise",309:"form",310:"decathlon",311:"syncros",312:"heatup",313:"cannondale",314:"trueFitness",315:"rGTCycling",316:"vasa",317:"raceRepublic",318:"fazua",319:"orekaTraining",320:"lsec",321:"lululemonStudio",322:"shanyue",323:"spinningMda",324:"hilldating",325:"aeroSensor",326:"nike",327:"magicshine",328:"ictrainer",329:"absoluteCycling",330:"eoSwimbetter",331:"mywhoosh",332:"ravemen",333:"tektroRacingProducts",334:"daradInnovationCorporation",335:"cycloptim",337:"runna",339:"zepp",340:"peloton",341:"carv",342:"tissot",345:"realVelo",346:"wetech",347:"jespr",348:"huawei",349:"gotoes",350:"cadenceApp",5759:"actigraphcorp"},garminProduct:{1:"hrm1",2:"axh01",3:"axb01",4:"axb02",5:"hrm2ss",6:"dsiAlf02",7:"hrm3ss",8:"hrmRunSingleByteProductId",9:"bsm",10:"bcm",11:"axs01",12:"hrmTriSingleByteProductId",13:"hrm4RunSingleByteProductId",14:"fr225SingleByteProductId",15:"gen3BsmSingleByteProductId",16:"gen3BcmSingleByteProductId",22:"hrmFitSingleByteProductId",255:"oHR",473:"fr301China",474:"fr301Japan",475:"fr301Korea",494:"fr301Taiwan",717:"fr405",782:"fr50",987:"fr405Japan",988:"fr60",1011:"dsiAlf01",1018:"fr310xt",1036:"edge500",1124:"fr110",1169:"edge800",1199:"edge500Taiwan",1213:"edge500Japan",1253:"chirp",1274:"fr110Japan",1325:"edge200",1328:"fr910xt",1333:"edge800Taiwan",1334:"edge800Japan",1341:"alf04",1345:"fr610",1360:"fr210Japan",1380:"vectorSs",1381:"vectorCp",1386:"edge800China",1387:"edge500China",1405:"approachG10",1410:"fr610Japan",1422:"edge500Korea",1436:"fr70",1446:"fr310xt4t",1461:"amx",1482:"fr10",1497:"edge800Korea",1499:"swim",1537:"fr910xtChina",1551:"fenix",1555:"edge200Taiwan",1561:"edge510",1567:"edge810",1570:"tempe",1600:"fr910xtJapan",1623:"fr620",1632:"fr220",1664:"fr910xtKorea",1688:"fr10Japan",1721:"edge810Japan",1735:"virbElite",1736:"edgeTouring",1742:"edge510Japan",1743:"hrmTri",1752:"hrmRun",1765:"fr920xt",1821:"edge510Asia",1822:"edge810China",1823:"edge810Taiwan",1836:"edge1000",1837:"vivoFit",1853:"virbRemote",1885:"vivoKi",1903:"fr15",1907:"vivoActive",1918:"edge510Korea",1928:"fr620Japan",1929:"fr620China",1930:"fr220Japan",1931:"fr220China",1936:"approachS6",1956:"vivoSmart",1967:"fenix2",1988:"epix",2050:"fenix3",2052:"edge1000Taiwan",2053:"edge1000Japan",2061:"fr15Japan",2067:"edge520",2070:"edge1000China",2072:"fr620Russia",2073:"fr220Russia",2079:"vectorS",2100:"edge1000Korea",2130:"fr920xtTaiwan",2131:"fr920xtChina",2132:"fr920xtJapan",2134:"virbx",2135:"vivoSmartApac",2140:"etrexTouch",2147:"edge25",2148:"fr25",2150:"vivoFit2",2153:"fr225",2156:"fr630",2157:"fr230",2158:"fr735xt",2160:"vivoActiveApac",2161:"vector2",2162:"vector2s",2172:"virbxe",2173:"fr620Taiwan",2174:"fr220Taiwan",2175:"truswing",2187:"d2airvenu",2188:"fenix3China",2189:"fenix3Twn",2192:"variaHeadlight",2193:"variaTaillightOld",2204:"edgeExplore1000",2219:"fr225Asia",2225:"variaRadarTaillight",2226:"variaRadarDisplay",2238:"edge20",2260:"edge520Asia",2261:"edge520Japan",2262:"d2Bravo",2266:"approachS20",2271:"vivoSmart2",2274:"edge1000Thai",2276:"variaRemote",2288:"edge25Asia",2289:"edge25Jpn",2290:"edge20Asia",2292:"approachX40",2293:"fenix3Japan",2294:"vivoSmartEmea",2310:"fr630Asia",2311:"fr630Jpn",2313:"fr230Jpn",2327:"hrm4Run",2332:"epixJapan",2337:"vivoActiveHr",2347:"vivoSmartGpsHr",2348:"vivoSmartHr",2361:"vivoSmartHrAsia",2362:"vivoSmartGpsHrAsia",2368:"vivoMove",2379:"variaTaillight",2396:"fr235Asia",2397:"fr235Japan",2398:"variaVision",2406:"vivoFit3",2407:"fenix3Korea",2408:"fenix3Sea",2413:"fenix3Hr",2417:"virbUltra30",2429:"indexSmartScale",2431:"fr235",2432:"fenix3Chronos",2441:"oregon7xx",2444:"rino7xx",2457:"epixKorea",2473:"fenix3HrChn",2474:"fenix3HrTwn",2475:"fenix3HrJpn",2476:"fenix3HrSea",2477:"fenix3HrKor",2496:"nautix",2497:"vivoActiveHrApac",2503:"fr35",2512:"oregon7xxWw",2530:"edge820",2531:"edgeExplore820",2533:"fr735xtApac",2534:"fr735xtJapan",2544:"fenix5s",2547:"d2BravoTitanium",2567:"variaUt800",2593:"runningDynamicsPod",2599:"edge820China",2600:"edge820Japan",2604:"fenix5x",2606:"vivoFitJr",2622:"vivoSmart3",2623:"vivoSport",2628:"edge820Taiwan",2629:"edge820Korea",2630:"edge820Sea",2650:"fr35Hebrew",2656:"approachS60",2667:"fr35Apac",2668:"fr35Japan",2675:"fenix3ChronosAsia",2687:"virb360",2691:"fr935",2697:"fenix5",2700:"vivoactive3",2733:"fr235ChinaNfc",2769:"foretrex601_701",2772:"vivoMoveHr",2713:"edge1030",2727:"fr35Sea",2787:"vector3",2796:"fenix5Asia",2797:"fenix5sAsia",2798:"fenix5xAsia",2806:"approachZ80",2814:"fr35Korea",2819:"d2charlie",2831:"vivoSmart3Apac",2832:"vivoSportApac",2833:"fr935Asia",2859:"descent",2878:"vivoFit4",2886:"fr645",2888:"fr645m",2891:"fr30",2900:"fenix5sPlus",2909:"edge130",2924:"edge1030Asia",2927:"vivosmart4",2945:"vivoMoveHrAsia",2962:"approachX10",2977:"fr30Asia",2988:"vivoactive3mW",3003:"fr645Asia",3004:"fr645mAsia",3011:"edgeExplore",3028:"gpsmap66",3049:"approachS10",3066:"vivoactive3mL",3076:"fr245",3077:"fr245Music",3085:"approachG80",3092:"edge130Asia",3095:"edge1030Bontrager",3110:"fenix5Plus",3111:"fenix5xPlus",3112:"edge520Plus",3113:"fr945",3121:"edge530",3122:"edge830",3126:"instinctEsports",3134:"fenix5sPlusApac",3135:"fenix5xPlusApac",3142:"edge520PlusApac",3143:"descentT1",3144:"fr235lAsia",3145:"fr245Asia",3163:"vivoActive3mApac",3192:"gen3Bsm",3193:"gen3Bcm",3218:"vivoSmart4Asia",3224:"vivoactive4Small",3225:"vivoactive4Large",3226:"venu",3246:"marqDriver",3247:"marqAviator",3248:"marqCaptain",3249:"marqCommander",3250:"marqExpedition",3251:"marqAthlete",3258:"descentMk2",3282:"fr45",3284:"gpsmap66i",3287:"fenix6SSport",3288:"fenix6S",3289:"fenix6Sport",3290:"fenix6",3291:"fenix6x",3299:"hrmDual",3300:"hrmPro",3308:"vivoMove3Premium",3314:"approachS40",3321:"fr245mAsia",3349:"edge530Apac",3350:"edge830Apac",3378:"vivoMove3",3387:"vivoActive4SmallAsia",3388:"vivoActive4LargeAsia",3389:"vivoActive4OledAsia",3405:"swim2",3420:"marqDriverAsia",3421:"marqAviatorAsia",3422:"vivoMove3Asia",3441:"fr945Asia",3446:"vivoActive3tChn",3448:"marqCaptainAsia",3449:"marqCommanderAsia",3450:"marqExpeditionAsia",3451:"marqAthleteAsia",3461:"indexSmartScale2",3466:"instinctSolar",3469:"fr45Asia",3473:"vivoactive3Daimler",3498:"legacyRey",3499:"legacyDarthVader",3500:"legacyCaptainMarvel",3501:"legacyFirstAvenger",3512:"fenix6sSportAsia",3513:"fenix6sAsia",3514:"fenix6SportAsia",3515:"fenix6Asia",3516:"fenix6xAsia",3535:"legacyCaptainMarvelAsia",3536:"legacyFirstAvengerAsia",3537:"legacyReyAsia",3538:"legacyDarthVaderAsia",3542:"descentMk2s",3558:"edge130Plus",3570:"edge1030Plus",3578:"rally200",3589:"fr745",3596:"venusqMusic",3599:"venusqMusicV2",3600:"venusq",3615:"lily",3624:"marqAdventurer",3638:"enduro",3639:"swim2Apac",3648:"marqAdventurerAsia",3652:"fr945Lte",3702:"descentMk2Asia",3703:"venu2",3704:"venu2s",3737:"venuDaimlerAsia",3739:"marqGolfer",3740:"venuDaimler",3794:"fr745Asia",3808:"variaRct715",3809:"lilyAsia",3812:"edge1030PlusAsia",3813:"edge130PlusAsia",3823:"approachS12",3872:"enduroAsia",3837:"venusqAsia",3843:"edge1040",3850:"marqGolferAsia",3851:"venu2Plus",3865:"gnss",3869:"fr55",3888:"instinct2",3889:"instinct2s",3905:"fenix7s",3906:"fenix7",3907:"fenix7x",3908:"fenix7sApac",3909:"fenix7Apac",3910:"fenix7xApac",3927:"approachG12",3930:"descentMk2sAsia",3934:"approachS42",3943:"epixGen2",3944:"epixGen2Apac",3949:"venu2sAsia",3950:"venu2Asia",3978:"fr945LteAsia",3982:"vivoMoveSport",3983:"vivomoveTrend",3986:"approachS12Asia",3990:"fr255Music",3991:"fr255SmallMusic",3992:"fr255",3993:"fr255Small",4001:"approachG12Asia",4002:"approachS42Asia",4005:"descentG1",4017:"venu2PlusAsia",4024:"fr955",4033:"fr55Asia",4061:"edge540",4062:"edge840",4063:"vivosmart5",4071:"instinct2Asia",4105:"marqGen2",4115:"venusq2",4116:"venusq2music",4124:"marqGen2Aviator",4125:"d2AirX10",4130:"hrmProPlus",4132:"descentG1Asia",4135:"tactix7",4155:"instinctCrossover",4169:"edgeExplore2",4222:"descentMk3",4223:"descentMk3i",4233:"approachS70",4257:"fr265Large",4258:"fr265Small",4260:"venu3",4261:"venu3s",4265:"tacxNeoSmart",4266:"tacxNeo2Smart",4267:"tacxNeo2TSmart",4268:"tacxNeoSmartBike",4269:"tacxSatoriSmart",4270:"tacxFlowSmart",4271:"tacxVortexSmart",4272:"tacxBushidoSmart",4273:"tacxGeniusSmart",4274:"tacxFluxFluxSSmart",4275:"tacxFlux2Smart",4276:"tacxMagnum",4305:"edge1040Asia",4312:"epixGen2Pro42",4313:"epixGen2Pro47",4314:"epixGen2Pro51",4315:"fr965",4341:"enduro2",4374:"fenix7sProSolar",4375:"fenix7ProSolar",4376:"fenix7xProSolar",4380:"lily2",4394:"instinct2x",4426:"vivoactive5",4432:"fr165",4433:"fr165Music",4440:"edge1050",4442:"descentT2",4446:"hrmFit",4472:"marqGen2Commander",4477:"lilyAthlete",4525:"rallyX10",4532:"fenix8Solar",4533:"fenix8SolarLarge",4534:"fenix8Small",4536:"fenix8",4556:"d2Mach1Pro",4575:"enduro3",4583:"instinctE40mm",4584:"instinctE45mm",4585:"instinct3Solar45mm",4586:"instinct3Amoled45mm",4587:"instinct3Amoled50mm",4588:"descentG2",4603:"venuX1",4606:"hrm200",4625:"vivoactive6",4631:"fenix8Pro",4633:"edge550",4634:"edge850",4643:"venu4",4644:"venu4s",4647:"approachS44",4655:"edgeMtb",4656:"approachS50",4666:"fenixE",4745:"bounce2",4759:"instinct3Solar50mm",4775:"tactix8Amoled",4776:"tactix8Solar",4825:"approachJ1",4879:"d2Mach2",4678:"instinctCrossoverAmoled",4944:"d2AirX15",10007:"sdm4",10014:"edgeRemote",20533:"tacxTrainingAppWin",20534:"tacxTrainingAppMac",20565:"tacxTrainingAppMacCatalyst",20119:"trainingCenter",30045:"tacxTrainingAppAndroid",30046:"tacxTrainingAppIos",30047:"tacxTrainingAppLegacy",65531:"connectiqSimulator",65532:"androidAntplusPlugin",65534:"connect"},antplusDeviceType:{1:"antfs",11:"bikePower",12:"environmentSensorLegacy",15:"multiSportSpeedDistance",16:"control",17:"fitnessEquipment",18:"bloodPressure",19:"geocacheNode",20:"lightElectricVehicle",25:"envSensor",26:"racquet",27:"controlHub",31:"muscleOxygen",34:"shifting",35:"bikeLightMain",36:"bikeLightShared",38:"exd",40:"bikeRadar",46:"bikeAero",119:"weightScale",120:"heartRate",121:"bikeSpeedCadence",122:"bikeCadence",123:"bikeSpeed",124:"strideSpeedDistance"},antNetwork:{0:"public",1:"antplus",2:"antfs",3:"private"},workoutCapabilities:{1:"interval",2:"custom",4:"fitnessEquipment",8:"firstbeat",16:"newLeaf",32:"tcx",128:"speed",256:"heartRate",512:"distance",1024:"cadence",2048:"power",4096:"grade",8192:"resistance",16384:"protected"},batteryStatus:{1:"new",2:"good",3:"ok",4:"low",5:"critical",6:"charging",7:"unknown"},hrType:{0:"normal",1:"irregular"},courseCapabilities:{1:"processed",2:"valid",4:"time",8:"distance",16:"position",32:"heartRate",64:"power",128:"cadence",256:"training",512:"navigation",1024:"bikeway",4096:"aviation"},weight:{65534:"calculating"},workoutHr:{100:"bpmOffset"},workoutPower:{1e3:"wattsOffset"},bpStatus:{0:"noError",1:"errorIncompleteData",2:"errorNoMeasurement",3:"errorDataOutOfRange",4:"errorIrregularHeartRate"},userLocalId:{0:"localMin",15:"localMax",16:"stationaryMin",255:"stationaryMax",256:"portableMin",65534:"portableMax"},swimStroke:{0:"freestyle",1:"backstroke",2:"breaststroke",3:"butterfly",4:"drill",5:"mixed",6:"im",7:"imByRound",8:"rimo"},activityType:{0:"generic",1:"running",2:"cycling",3:"transition",4:"fitnessEquipment",5:"swimming",6:"walking",8:"sedentary",254:"all"},activitySubtype:{0:"generic",1:"treadmill",2:"street",3:"trail",4:"track",5:"spin",6:"indoorCycling",7:"road",8:"mountain",9:"downhill",10:"recumbent",11:"cyclocross",12:"handCycling",13:"trackCycling",14:"indoorRowing",15:"elliptical",16:"stairClimbing",17:"lapSwimming",18:"openWater",254:"all"},activityLevel:{0:"low",1:"medium",2:"high"},side:{0:"right",1:"left"},leftRightBalance:{127:"mask",128:"right"},leftRightBalance100:{16383:"mask",32768:"right"},lengthType:{0:"idle",1:"active"},dayOfWeek:{0:"sunday",1:"monday",2:"tuesday",3:"wednesday",4:"thursday",5:"friday",6:"saturday"},connectivityCapabilities:{1:"bluetooth",2:"bluetoothLe",4:"ant",8:"activityUpload",16:"courseDownload",32:"workoutDownload",64:"liveTrack",128:"weatherConditions",256:"weatherAlerts",512:"gpsEphemerisDownload",1024:"explicitArchive",2048:"setupIncomplete",4096:"continueSyncAfterSoftwareUpdate",8192:"connectIqAppDownload",16384:"golfCourseDownload",32768:"deviceInitiatesSync",65536:"connectIqWatchAppDownload",131072:"connectIqWidgetDownload",262144:"connectIqWatchFaceDownload",524288:"connectIqDataFieldDownload",1048576:"connectIqAppManagment",2097152:"swingSensor",4194304:"swingSensorRemote",8388608:"incidentDetection",16777216:"audioPrompts",33554432:"wifiVerification",67108864:"trueUp",134217728:"findMyWatch",268435456:"remoteManualSync",536870912:"liveTrackAutoStart",1073741824:"liveTrackMessaging",2147483648:"instantInput"},weatherReport:{0:"current",1:"forecast",1:"hourlyForecast",2:"dailyForecast"},weatherStatus:{0:"clear",1:"partlyCloudy",2:"mostlyCloudy",3:"rain",4:"snow",5:"windy",6:"thunderstorms",7:"wintryMix",8:"fog",11:"hazy",12:"hail",13:"scatteredShowers",14:"scatteredThunderstorms",15:"unknownPrecipitation",16:"lightRain",17:"heavyRain",18:"lightSnow",19:"heavySnow",20:"lightRainSnow",21:"heavyRainSnow",22:"cloudy"},weatherSeverity:{0:"unknown",1:"warning",2:"watch",3:"advisory",4:"statement"},weatherSevereType:{0:"unspecified",1:"tornado",2:"tsunami",3:"hurricane",4:"extremeWind",5:"typhoon",6:"inlandHurricane",7:"hurricaneForceWind",8:"waterspout",9:"severeThunderstorm",10:"wreckhouseWinds",11:"lesSuetesWind",12:"avalanche",13:"flashFlood",14:"tropicalStorm",15:"inlandTropicalStorm",16:"blizzard",17:"iceStorm",18:"freezingRain",19:"debrisFlow",20:"flashFreeze",21:"dustStorm",22:"highWind",23:"winterStorm",24:"heavyFreezingSpray",25:"extremeCold",26:"windChill",27:"coldWave",28:"heavySnowAlert",29:"lakeEffectBlowingSnow",30:"snowSquall",31:"lakeEffectSnow",32:"winterWeather",33:"sleet",34:"snowfall",35:"snowAndBlowingSnow",36:"blowingSnow",37:"snowAlert",38:"arcticOutflow",39:"freezingDrizzle",40:"storm",41:"stormSurge",42:"rainfall",43:"arealFlood",44:"coastalFlood",45:"lakeshoreFlood",46:"excessiveHeat",47:"heat",48:"weather",49:"highHeatAndHumidity",50:"humidexAndHealth",51:"humidex",52:"gale",53:"freezingSpray",54:"specialMarine",55:"squall",56:"strongWind",57:"lakeWind",58:"marineWeather",59:"wind",60:"smallCraftHazardousSeas",61:"hazardousSeas",62:"smallCraft",63:"smallCraftWinds",64:"smallCraftRoughBar",65:"highWaterLevel",66:"ashfall",67:"freezingFog",68:"denseFog",69:"denseSmoke",70:"blowingDust",71:"hardFreeze",72:"freeze",73:"frost",74:"fireWeather",75:"flood",76:"ripTide",77:"highSurf",78:"smog",79:"airQuality",80:"briskWind",81:"airStagnation",82:"lowWater",83:"hydrological",84:"specialWeather"},timeIntoDay:{},localtimeIntoDay:{},strokeType:{0:"noEvent",1:"other",2:"serve",3:"forehand",4:"backhand",5:"smash"},bodyLocation:{0:"leftLeg",1:"leftCalf",2:"leftShin",3:"leftHamstring",4:"leftQuad",5:"leftGlute",6:"rightLeg",7:"rightCalf",8:"rightShin",9:"rightHamstring",10:"rightQuad",11:"rightGlute",12:"torsoBack",13:"leftLowerBack",14:"leftUpperBack",15:"rightLowerBack",16:"rightUpperBack",17:"torsoFront",18:"leftAbdomen",19:"leftChest",20:"rightAbdomen",21:"rightChest",22:"leftArm",23:"leftShoulder",24:"leftBicep",25:"leftTricep",26:"leftBrachioradialis",27:"leftForearmExtensors",28:"rightArm",29:"rightShoulder",30:"rightBicep",31:"rightTricep",32:"rightBrachioradialis",33:"rightForearmExtensors",34:"neck",35:"throat",36:"waistMidBack",37:"waistFront",38:"waistLeft",39:"waistRight"},segmentLapStatus:{0:"end",1:"fail"},segmentLeaderboardType:{0:"overall",1:"personalBest",2:"connections",3:"group",4:"challenger",5:"kom",6:"qom",7:"pr",8:"goal",9:"carrot",10:"clubLeader",11:"rival",12:"last",13:"recentBest",14:"courseRecord"},segmentDeleteStatus:{0:"doNotDelete",1:"deleteOne",2:"deleteAll"},segmentSelectionType:{0:"starred",1:"suggested"},sourceType:{0:"ant",1:"antplus",2:"bluetooth",3:"bluetoothLowEnergy",4:"wifi",5:"local"},localDeviceType:{0:"gps",1:"glonass",2:"gpsGlonass",3:"accelerometer",4:"barometer",5:"temperature",10:"whr",12:"sensorHub"},bleDeviceType:{0:"connectedGps",1:"heartRate",2:"bikePower",3:"bikeSpeedCadence",4:"bikeSpeed",5:"bikeCadence",6:"footpod",7:"bikeTrainer"},antChannelId:{4026531840:"antExtendedDeviceNumberUpperNibble",251658240:"antTransmissionTypeLowerNibble",16711680:"antDeviceType",65535:"antDeviceNumber"},displayOrientation:{0:"auto",1:"portrait",2:"landscape",3:"portraitFlipped",4:"landscapeFlipped"},workoutEquipment:{0:"none",1:"swimFins",2:"swimKickboard",3:"swimPaddles",4:"swimPullBuoy",5:"swimSnorkel"},watchfaceMode:{0:"digital",1:"analog",2:"connectIq",3:"disabled"},digitalWatchfaceLayout:{0:"traditional",1:"modern",2:"bold"},analogWatchfaceLayout:{0:"minimal",1:"traditional",2:"modern"},riderPositionType:{0:"seated",1:"standing",2:"transitionToSeated",3:"transitionToStanding"},powerPhaseType:{0:"powerPhaseStartAngle",1:"powerPhaseEndAngle",2:"powerPhaseArcLength",3:"powerPhaseCenter"},cameraEventType:{0:"videoStart",1:"videoSplit",2:"videoEnd",3:"photoTaken",4:"videoSecondStreamStart",5:"videoSecondStreamSplit",6:"videoSecondStreamEnd",7:"videoSplitStart",8:"videoSecondStreamSplitStart",11:"videoPause",12:"videoSecondStreamPause",13:"videoResume",14:"videoSecondStreamResume"},sensorType:{0:"accelerometer",1:"gyroscope",2:"compass",3:"barometer"},bikeLightNetworkConfigType:{0:"auto",4:"individual",5:"highVisibility",6:"trail"},commTimeoutType:{0:"wildcardPairingTimeout",1:"pairingTimeout",2:"connectionLost",3:"connectionTimeout"},cameraOrientationType:{0:"cameraOrientation0",1:"cameraOrientation90",2:"cameraOrientation180",3:"cameraOrientation270"},attitudeStage:{0:"failed",1:"aligning",2:"degraded",3:"valid"},attitudeValidity:{1:"trackAngleHeadingValid",2:"pitchValid",4:"rollValid",8:"lateralBodyAccelValid",16:"normalBodyAccelValid",32:"turnRateValid",64:"hwFail",128:"magInvalid",256:"noGps",512:"gpsInvalid",1024:"solutionCoasting",2048:"trueTrackAngle",4096:"magneticHeading"},autoSyncFrequency:{0:"never",1:"occasionally",2:"frequent",3:"onceADay",4:"remote"},exdLayout:{0:"fullScreen",1:"halfVertical",2:"halfHorizontal",3:"halfVerticalRightSplit",4:"halfHorizontalBottomSplit",5:"fullQuarterSplit",6:"halfVerticalLeftSplit",7:"halfHorizontalTopSplit",8:"dynamic"},exdDisplayType:{0:"numerical",1:"simple",2:"graph",3:"bar",4:"circleGraph",5:"virtualPartner",6:"balance",7:"stringList",8:"string",9:"simpleDynamicIcon",10:"gauge"},exdDataUnits:{0:"noUnits",1:"laps",2:"milesPerHour",3:"kilometersPerHour",4:"feetPerHour",5:"metersPerHour",6:"degreesCelsius",7:"degreesFarenheit",8:"zone",9:"gear",10:"rpm",11:"bpm",12:"degrees",13:"millimeters",14:"meters",15:"kilometers",16:"feet",17:"yards",18:"kilofeet",19:"miles",20:"time",21:"enumTurnType",22:"percent",23:"watts",24:"wattsPerKilogram",25:"enumBatteryStatus",26:"enumBikeLightBeamAngleMode",27:"enumBikeLightBatteryStatus",28:"enumBikeLightNetworkConfigType",29:"lights",30:"seconds",31:"minutes",32:"hours",33:"calories",34:"kilojoules",35:"milliseconds",36:"secondPerMile",37:"secondPerKilometer",38:"centimeter",39:"enumCoursePoint",40:"bradians",41:"enumSport",42:"inchesHg",43:"mmHg",44:"mbars",45:"hectoPascals",46:"feetPerMin",47:"metersPerMin",48:"metersPerSec",49:"eightCardinal"},exdQualifiers:{0:"noQualifier",1:"instantaneous",2:"average",3:"lap",4:"maximum",5:"maximumAverage",6:"maximumLap",7:"lastLap",8:"averageLap",9:"toDestination",10:"toGo",11:"toNext",12:"nextCoursePoint",13:"total",14:"threeSecondAverage",15:"tenSecondAverage",16:"thirtySecondAverage",17:"percentMaximum",18:"percentMaximumAverage",19:"lapPercentMaximum",20:"elapsed",21:"sunrise",22:"sunset",23:"comparedToVirtualPartner",24:"maximum24h",25:"minimum24h",26:"minimum",27:"first",28:"second",29:"third",30:"shifter",31:"lastSport",32:"moving",33:"stopped",34:"estimatedTotal",242:"zone9",243:"zone8",244:"zone7",245:"zone6",246:"zone5",247:"zone4",248:"zone3",249:"zone2",250:"zone1"},exdDescriptors:{0:"bikeLightBatteryStatus",1:"beamAngleStatus",2:"bateryLevel",3:"lightNetworkMode",4:"numberLightsConnected",5:"cadence",6:"distance",7:"estimatedTimeOfArrival",8:"heading",9:"time",10:"batteryLevel",11:"trainerResistance",12:"trainerTargetPower",13:"timeSeated",14:"timeStanding",15:"elevation",16:"grade",17:"ascent",18:"descent",19:"verticalSpeed",20:"di2BatteryLevel",21:"frontGear",22:"rearGear",23:"gearRatio",24:"heartRate",25:"heartRateZone",26:"timeInHeartRateZone",27:"heartRateReserve",28:"calories",29:"gpsAccuracy",30:"gpsSignalStrength",31:"temperature",32:"timeOfDay",33:"balance",34:"pedalSmoothness",35:"power",36:"functionalThresholdPower",37:"intensityFactor",38:"work",39:"powerRatio",40:"normalizedPower",41:"trainingStressScore",42:"timeOnZone",43:"speed",44:"laps",45:"reps",46:"workoutStep",47:"courseDistance",48:"navigationDistance",49:"courseEstimatedTimeOfArrival",50:"navigationEstimatedTimeOfArrival",51:"courseTime",52:"navigationTime",53:"courseHeading",54:"navigationHeading",55:"powerZone",56:"torqueEffectiveness",57:"timerTime",58:"powerWeightRatio",59:"leftPlatformCenterOffset",60:"rightPlatformCenterOffset",61:"leftPowerPhaseStartAngle",62:"rightPowerPhaseStartAngle",63:"leftPowerPhaseFinishAngle",64:"rightPowerPhaseFinishAngle",65:"gears",66:"pace",67:"trainingEffect",68:"verticalOscillation",69:"verticalRatio",70:"groundContactTime",71:"leftGroundContactTimeBalance",72:"rightGroundContactTimeBalance",73:"strideLength",74:"runningCadence",75:"performanceCondition",76:"courseType",77:"timeInPowerZone",78:"navigationTurn",79:"courseLocation",80:"navigationLocation",81:"compass",82:"gearCombo",83:"muscleOxygen",84:"icon",85:"compassHeading",86:"gpsHeading",87:"gpsElevation",88:"anaerobicTrainingEffect",89:"course",90:"offCourse",91:"glideRatio",92:"verticalDistance",93:"vmg",94:"ambientPressure",95:"pressure",96:"vam"},autoActivityDetect:{0:"none",1:"running",2:"cycling",4:"swimming",8:"walking",32:"elliptical",1024:"sedentary"},supportedExdScreenLayouts:{1:"fullScreen",2:"halfVertical",4:"halfHorizontal",8:"halfVerticalRightSplit",16:"halfHorizontalBottomSplit",32:"fullQuarterSplit",64:"halfVerticalLeftSplit",128:"halfHorizontalTopSplit"},fitBaseType:{0:"enum",1:"sint8",2:"uint8",131:"sint16",132:"uint16",133:"sint32",134:"uint32",7:"string",136:"float32",137:"float64",10:"uint8z",139:"uint16z",140:"uint32z",13:"byte",142:"sint64",143:"uint64",144:"uint64z"},turnType:{0:"arrivingIdx",1:"arrivingLeftIdx",2:"arrivingRightIdx",3:"arrivingViaIdx",4:"arrivingViaLeftIdx",5:"arrivingViaRightIdx",6:"bearKeepLeftIdx",7:"bearKeepRightIdx",8:"continueIdx",9:"exitLeftIdx",10:"exitRightIdx",11:"ferryIdx",12:"roundabout45Idx",13:"roundabout90Idx",14:"roundabout135Idx",15:"roundabout180Idx",16:"roundabout225Idx",17:"roundabout270Idx",18:"roundabout315Idx",19:"roundabout360Idx",20:"roundaboutNeg45Idx",21:"roundaboutNeg90Idx",22:"roundaboutNeg135Idx",23:"roundaboutNeg180Idx",24:"roundaboutNeg225Idx",25:"roundaboutNeg270Idx",26:"roundaboutNeg315Idx",27:"roundaboutNeg360Idx",28:"roundaboutGenericIdx",29:"roundaboutNegGenericIdx",30:"sharpTurnLeftIdx",31:"sharpTurnRightIdx",32:"turnLeftIdx",33:"turnRightIdx",34:"uturnLeftIdx",35:"uturnRightIdx",36:"iconInvIdx",37:"iconIdxCnt"},bikeLightBeamAngleMode:{0:"manual",1:"auto"},fitBaseUnit:{0:"other",1:"kilogram",2:"pound"},setType:{0:"rest",1:"active"},maxMetCategory:{0:"generic",1:"cycling"},exerciseCategory:{0:"benchPress",1:"calfRaise",2:"cardio",3:"carry",4:"chop",5:"core",6:"crunch",7:"curl",8:"deadlift",9:"flye",10:"hipRaise",11:"hipStability",12:"hipSwing",13:"hyperextension",14:"lateralRaise",15:"legCurl",16:"legRaise",17:"lunge",18:"olympicLift",19:"plank",20:"plyo",21:"pullUp",22:"pushUp",23:"row",24:"shoulderPress",25:"shoulderStability",26:"shrug",27:"sitUp",28:"squat",29:"totalBody",30:"tricepsExtension",31:"warmUp",32:"run",33:"bike",34:"cardioSensors",35:"move",36:"pose",37:"bandedExercises",38:"battleRope",39:"elliptical",40:"floorClimb",41:"indoorBike",42:"indoorRow",43:"ladder",44:"sandbag",45:"sled",46:"sledgeHammer",47:"stairStepper",49:"suspension",50:"tire",52:"runIndoor",53:"bikeOutdoor",65534:"unknown"},benchPressExerciseName:{0:"alternatingDumbbellChestPressOnSwissBall",1:"barbellBenchPress",2:"barbellBoardBenchPress",3:"barbellFloorPress",4:"closeGripBarbellBenchPress",5:"declineDumbbellBenchPress",6:"dumbbellBenchPress",7:"dumbbellFloorPress",8:"inclineBarbellBenchPress",9:"inclineDumbbellBenchPress",10:"inclineSmithMachineBenchPress",11:"isometricBarbellBenchPress",12:"kettlebellChestPress",13:"neutralGripDumbbellBenchPress",14:"neutralGripDumbbellInclineBenchPress",15:"oneArmFloorPress",16:"weightedOneArmFloorPress",17:"partialLockout",18:"reverseGripBarbellBenchPress",19:"reverseGripInclineBenchPress",20:"singleArmCableChestPress",21:"singleArmDumbbellBenchPress",22:"smithMachineBenchPress",23:"swissBallDumbbellChestPress",24:"tripleStopBarbellBenchPress",25:"wideGripBarbellBenchPress",26:"alternatingDumbbellChestPress"},calfRaiseExerciseName:{0:"3WayCalfRaise",1:"3WayWeightedCalfRaise",2:"3WaySingleLegCalfRaise",3:"3WayWeightedSingleLegCalfRaise",4:"donkeyCalfRaise",5:"weightedDonkeyCalfRaise",6:"seatedCalfRaise",7:"weightedSeatedCalfRaise",8:"seatedDumbbellToeRaise",9:"singleLegBentKneeCalfRaise",10:"weightedSingleLegBentKneeCalfRaise",11:"singleLegDeclinePushUp",12:"singleLegDonkeyCalfRaise",13:"weightedSingleLegDonkeyCalfRaise",14:"singleLegHipRaiseWithKneeHold",15:"singleLegStandingCalfRaise",16:"singleLegStandingDumbbellCalfRaise",17:"standingBarbellCalfRaise",18:"standingCalfRaise",19:"weightedStandingCalfRaise",20:"standingDumbbellCalfRaise"},cardioExerciseName:{0:"bobAndWeaveCircle",1:"weightedBobAndWeaveCircle",2:"cardioCoreCrawl",3:"weightedCardioCoreCrawl",4:"doubleUnder",5:"weightedDoubleUnder",6:"jumpRope",7:"weightedJumpRope",8:"jumpRopeCrossover",9:"weightedJumpRopeCrossover",10:"jumpRopeJog",11:"weightedJumpRopeJog",12:"jumpingJacks",13:"weightedJumpingJacks",14:"skiMoguls",15:"weightedSkiMoguls",16:"splitJacks",17:"weightedSplitJacks",18:"squatJacks",19:"weightedSquatJacks",20:"tripleUnder",21:"weightedTripleUnder",22:"elliptical",23:"spinning",24:"polePaddleForwardWheelchair",25:"polePaddleBackwardWheelchair",26:"poleHandcycleForwardWheelchair",27:"poleHandcycleBackwardWheelchair",28:"poleRainbowWheelchair",29:"doublePunchForwardWheelchair",30:"doublePunchDownWheelchair",31:"doublePunchSidewaysWheelchair",32:"doublePunchUpWheelchair",33:"sitSkiWheelchair",34:"sittingJacksWheelchair",35:"punchForwardWheelchair",36:"punchDownWheelchair",37:"punchSidewaysWheelchair",38:"punchUpWheelchair",39:"punchBagWheelchair",40:"poleDdFfUuWheelchair",41:"butterflyArmsWheelchair",42:"punch"},carryExerciseName:{0:"barHolds",1:"farmersWalk",2:"farmersWalkOnToes",3:"hexDumbbellHold",4:"overheadCarry",5:"dumbbellWaiterCarry",6:"farmersCarryWalkLunge",7:"farmersCarry",8:"farmersCarryOnToes"},chopExerciseName:{0:"cablePullThrough",1:"cableRotationalLift",2:"cableWoodchop",3:"crossChopToKnee",4:"weightedCrossChopToKnee",5:"dumbbellChop",6:"halfKneelingRotation",7:"weightedHalfKneelingRotation",8:"halfKneelingRotationalChop",9:"halfKneelingRotationalReverseChop",10:"halfKneelingStabilityChop",11:"halfKneelingStabilityReverseChop",12:"kneelingRotationalChop",13:"kneelingRotationalReverseChop",14:"kneelingStabilityChop",15:"kneelingWoodchopper",16:"medicineBallWoodChops",17:"powerSquatChops",18:"weightedPowerSquatChops",19:"standingRotationalChop",20:"standingSplitRotationalChop",21:"standingSplitRotationalReverseChop",22:"standingStabilityReverseChop"},coreExerciseName:{0:"absJabs",1:"weightedAbsJabs",2:"alternatingPlateReach",3:"barbellRollout",4:"weightedBarbellRollout",5:"bodyBarObliqueTwist",6:"cableCorePress",7:"cableSideBend",8:"sideBend",9:"weightedSideBend",10:"crescentCircle",11:"weightedCrescentCircle",12:"cyclingRussianTwist",13:"weightedCyclingRussianTwist",14:"elevatedFeetRussianTwist",15:"weightedElevatedFeetRussianTwist",16:"halfTurkishGetUp",17:"kettlebellWindmill",18:"kneelingAbWheel",19:"weightedKneelingAbWheel",20:"modifiedFrontLever",21:"openKneeTucks",22:"weightedOpenKneeTucks",23:"sideAbsLegLift",24:"weightedSideAbsLegLift",25:"swissBallJackknife",26:"weightedSwissBallJackknife",27:"swissBallPike",28:"weightedSwissBallPike",29:"swissBallRollout",30:"weightedSwissBallRollout",31:"triangleHipPress",32:"weightedTriangleHipPress",33:"trxSuspendedJackknife",34:"weightedTrxSuspendedJackknife",35:"uBoat",36:"weightedUBoat",37:"windmillSwitches",38:"weightedWindmillSwitches",39:"alternatingSlideOut",40:"weightedAlternatingSlideOut",41:"ghdBackExtensions",42:"weightedGhdBackExtensions",43:"overheadWalk",44:"inchworm",45:"weightedModifiedFrontLever",46:"russianTwist",47:"abdominalLegRotations",48:"armAndLegExtensionOnKnees",49:"bicycle",50:"bicepCurlWithLegExtension",51:"catCow",52:"corkscrew",53:"crissCross",54:"crissCrossWithBall",55:"doubleLegStretch",56:"kneeFolds",57:"lowerLift",58:"neckPull",59:"pelvicClocks",60:"rollOver",61:"rollUp",62:"rolling",63:"rowing1",64:"rowing2",65:"scissors",66:"singleLegCircles",67:"singleLegStretch",68:"snakeTwist1And2",69:"swan",70:"swimming",71:"teaser",72:"theHundred",73:"bicepCurlWithLegExtensionWithWeights",75:"hangingLSit",77:"lowerLiftWithWeights",79:"ringLSit",80:"rowing1WithWeights",81:"rowing2WithWeights",82:"scissorsWithWeights",83:"singleLegStretchWithWeights",84:"toesToElbows",85:"weightedCrissCross",86:"weightedDoubleLegStretch",87:"weightedTheHundred",88:"lSit",89:"turkishGetUp",90:"weightedRingLSit",91:"weightedHangingLSit",92:"weightedLSit",93:"sideBendLowWheelchair",94:"sideBendMidWheelchair",95:"sideBendHighWheelchair",96:"seatedSideBend"},crunchExerciseName:{0:"bicycleCrunch",1:"cableCrunch",2:"circularArmCrunch",3:"crossedArmsCrunch",4:"weightedCrossedArmsCrunch",5:"crossLegReverseCrunch",6:"weightedCrossLegReverseCrunch",7:"crunchChop",8:"weightedCrunchChop",9:"doubleCrunch",10:"weightedDoubleCrunch",11:"elbowToKneeCrunch",12:"weightedElbowToKneeCrunch",13:"flutterKicks",14:"weightedFlutterKicks",15:"foamRollerReverseCrunchOnBench",16:"weightedFoamRollerReverseCrunchOnBench",17:"foamRollerReverseCrunchWithDumbbell",18:"foamRollerReverseCrunchWithMedicineBall",19:"frogPress",20:"hangingKneeRaiseObliqueCrunch",21:"weightedHangingKneeRaiseObliqueCrunch",22:"hipCrossover",23:"weightedHipCrossover",24:"hollowRock",25:"weightedHollowRock",26:"inclineReverseCrunch",27:"weightedInclineReverseCrunch",28:"kneelingCableCrunch",29:"kneelingCrossCrunch",30:"weightedKneelingCrossCrunch",31:"kneelingObliqueCableCrunch",32:"kneesToElbow",33:"legExtensions",34:"weightedLegExtensions",35:"legLevers",36:"mcgillCurlUp",37:"weightedMcgillCurlUp",38:"modifiedPilatesRollUpWithBall",39:"weightedModifiedPilatesRollUpWithBall",40:"pilatesCrunch",41:"weightedPilatesCrunch",42:"pilatesRollUpWithBall",43:"weightedPilatesRollUpWithBall",44:"raisedLegsCrunch",45:"weightedRaisedLegsCrunch",46:"reverseCrunch",47:"weightedReverseCrunch",48:"reverseCrunchOnABench",49:"weightedReverseCrunchOnABench",50:"reverseCurlAndLift",51:"weightedReverseCurlAndLift",52:"rotationalLift",53:"weightedRotationalLift",54:"seatedAlternatingReverseCrunch",55:"weightedSeatedAlternatingReverseCrunch",56:"seatedLegU",57:"weightedSeatedLegU",58:"sideToSideCrunchAndWeave",59:"weightedSideToSideCrunchAndWeave",60:"singleLegReverseCrunch",61:"weightedSingleLegReverseCrunch",62:"skaterCrunchCross",63:"weightedSkaterCrunchCross",64:"standingCableCrunch",65:"standingSideCrunch",66:"stepClimb",67:"weightedStepClimb",68:"swissBallCrunch",69:"swissBallReverseCrunch",70:"weightedSwissBallReverseCrunch",71:"swissBallRussianTwist",72:"weightedSwissBallRussianTwist",73:"swissBallSideCrunch",74:"weightedSwissBallSideCrunch",75:"thoracicCrunchesOnFoamRoller",76:"weightedThoracicCrunchesOnFoamRoller",77:"tricepsCrunch",78:"weightedBicycleCrunch",79:"weightedCrunch",80:"weightedSwissBallCrunch",81:"toesToBar",82:"weightedToesToBar",83:"crunch",84:"straightLegCrunchWithBall",86:"legClimbCrunch"},curlExerciseName:{0:"alternatingDumbbellBicepsCurl",1:"alternatingDumbbellBicepsCurlOnSwissBall",2:"alternatingInclineDumbbellBicepsCurl",3:"barbellBicepsCurl",4:"barbellReverseWristCurl",5:"barbellWristCurl",6:"behindTheBackBarbellReverseWristCurl",7:"behindTheBackOneArmCableCurl",8:"cableBicepsCurl",9:"cableHammerCurl",10:"cheatingBarbellBicepsCurl",11:"closeGripEzBarBicepsCurl",12:"crossBodyDumbbellHammerCurl",13:"deadHangBicepsCurl",14:"declineHammerCurl",15:"dumbbellBicepsCurlWithStaticHold",16:"dumbbellHammerCurl",17:"dumbbellReverseWristCurl",18:"dumbbellWristCurl",19:"ezBarPreacherCurl",20:"forwardBendBicepsCurl",21:"hammerCurlToPress",22:"inclineDumbbellBicepsCurl",23:"inclineOffsetThumbDumbbellCurl",24:"kettlebellBicepsCurl",25:"lyingConcentrationCableCurl",26:"oneArmPreacherCurl",27:"platePinchCurl",28:"preacherCurlWithCable",29:"reverseEzBarCurl",30:"reverseGripWristCurl",31:"reverseGripBarbellBicepsCurl",32:"seatedAlternatingDumbbellBicepsCurl",33:"seatedDumbbellBicepsCurl",34:"seatedReverseDumbbellCurl",35:"splitStanceOffsetPinkyDumbbellCurl",36:"standingAlternatingDumbbellCurls",37:"standingDumbbellBicepsCurl",38:"standingEzBarBicepsCurl",39:"staticCurl",40:"swissBallDumbbellOverheadTricepsExtension",41:"swissBallEzBarPreacherCurl",42:"twistingStandingDumbbellBicepsCurl",43:"wideGripEzBarBicepsCurl",44:"oneArmConcentrationCurl",45:"standingZottmanBicepsCurl",46:"dumbbellBicepsCurl",47:"dragCurlWheelchair",48:"dumbbellBicepsCurlWheelchair",49:"bottleCurl",50:"seatedBottleCurl"},deadliftExerciseName:{0:"barbellDeadlift",1:"barbellStraightLegDeadlift",2:"dumbbellDeadlift",3:"dumbbellSingleLegDeadliftToRow",4:"dumbbellStraightLegDeadlift",5:"kettlebellFloorToShelf",6:"oneArmOneLegDeadlift",7:"rackPull",8:"rotationalDumbbellStraightLegDeadlift",9:"singleArmDeadlift",10:"singleLegBarbellDeadlift",11:"singleLegBarbellStraightLegDeadlift",12:"singleLegDeadliftWithBarbell",13:"singleLegRdlCircuit",14:"singleLegRomanianDeadliftWithDumbbell",15:"sumoDeadlift",16:"sumoDeadliftHighPull",17:"trapBarDeadlift",18:"wideGripBarbellDeadlift",20:"kettlebellDeadlift",21:"kettlebellSumoDeadlift",23:"romanianDeadlift",24:"singleLegRomanianDeadliftCircuit",25:"straightLegDeadlift"},flyeExerciseName:{0:"cableCrossover",1:"declineDumbbellFlye",2:"dumbbellFlye",3:"inclineDumbbellFlye",4:"kettlebellFlye",5:"kneelingRearFlye",6:"singleArmStandingCableReverseFlye",7:"swissBallDumbbellFlye",8:"armRotations",9:"hugATree",10:"faceDownInclineReverseFlye",11:"inclineReverseFlye",12:"rearDeltFlyWheelchair"},hipRaiseExerciseName:{0:"barbellHipThrustOnFloor",1:"barbellHipThrustWithBench",2:"bentKneeSwissBallReverseHipRaise",3:"weightedBentKneeSwissBallReverseHipRaise",4:"bridgeWithLegExtension",5:"weightedBridgeWithLegExtension",6:"clamBridge",7:"frontKickTabletop",8:"weightedFrontKickTabletop",9:"hipExtensionAndCross",10:"weightedHipExtensionAndCross",11:"hipRaise",12:"weightedHipRaise",13:"hipRaiseWithFeetOnSwissBall",14:"weightedHipRaiseWithFeetOnSwissBall",15:"hipRaiseWithHeadOnBosuBall",16:"weightedHipRaiseWithHeadOnBosuBall",17:"hipRaiseWithHeadOnSwissBall",18:"weightedHipRaiseWithHeadOnSwissBall",19:"hipRaiseWithKneeSqueeze",20:"weightedHipRaiseWithKneeSqueeze",21:"inclineRearLegExtension",22:"weightedInclineRearLegExtension",23:"kettlebellSwing",24:"marchingHipRaise",25:"weightedMarchingHipRaise",26:"marchingHipRaiseWithFeetOnASwissBall",27:"weightedMarchingHipRaiseWithFeetOnASwissBall",28:"reverseHipRaise",29:"weightedReverseHipRaise",30:"singleLegHipRaise",31:"weightedSingleLegHipRaise",32:"singleLegHipRaiseWithFootOnBench",33:"weightedSingleLegHipRaiseWithFootOnBench",34:"singleLegHipRaiseWithFootOnBosuBall",35:"weightedSingleLegHipRaiseWithFootOnBosuBall",36:"singleLegHipRaiseWithFootOnFoamRoller",37:"weightedSingleLegHipRaiseWithFootOnFoamRoller",38:"singleLegHipRaiseWithFootOnMedicineBall",39:"weightedSingleLegHipRaiseWithFootOnMedicineBall",40:"singleLegHipRaiseWithHeadOnBosuBall",41:"weightedSingleLegHipRaiseWithHeadOnBosuBall",42:"weightedClamBridge",43:"singleLegSwissBallHipRaiseAndLegCurl",44:"clams",45:"innerThighCircles",46:"innerThighSideLift",47:"legCircles",48:"legLift",49:"legLiftInExternalRotation"},hipStabilityExerciseName:{0:"bandSideLyingLegRaise",1:"deadBug",2:"weightedDeadBug",3:"externalHipRaise",4:"weightedExternalHipRaise",5:"fireHydrantKicks",6:"weightedFireHydrantKicks",7:"hipCircles",8:"weightedHipCircles",9:"innerThighLift",10:"weightedInnerThighLift",11:"lateralWalksWithBandAtAnkles",12:"pretzelSideKick",13:"weightedPretzelSideKick",14:"proneHipInternalRotation",15:"weightedProneHipInternalRotation",16:"quadruped",17:"quadrupedHipExtension",18:"weightedQuadrupedHipExtension",19:"quadrupedWithLegLift",20:"weightedQuadrupedWithLegLift",21:"sideLyingLegRaise",22:"weightedSideLyingLegRaise",23:"slidingHipAdduction",24:"weightedSlidingHipAdduction",25:"standingAdduction",26:"weightedStandingAdduction",27:"standingCableHipAbduction",28:"standingHipAbduction",29:"weightedStandingHipAbduction",30:"standingRearLegRaise",31:"weightedStandingRearLegRaise",32:"supineHipInternalRotation",33:"weightedSupineHipInternalRotation",34:"lyingAbductionStretch"},hipSwingExerciseName:{0:"singleArmKettlebellSwing",1:"singleArmDumbbellSwing",2:"stepOutSwing",3:"oneArmSwing"},hyperextensionExerciseName:{0:"backExtensionWithOppositeArmAndLegReach",1:"weightedBackExtensionWithOppositeArmAndLegReach",2:"baseRotations",3:"weightedBaseRotations",4:"bentKneeReverseHyperextension",5:"weightedBentKneeReverseHyperextension",6:"hollowHoldAndRoll",7:"weightedHollowHoldAndRoll",8:"kicks",9:"weightedKicks",10:"kneeRaises",11:"weightedKneeRaises",12:"kneelingSuperman",13:"weightedKneelingSuperman",14:"latPullDownWithRow",15:"medicineBallDeadliftToReach",16:"oneArmOneLegRow",17:"oneArmRowWithBand",18:"overheadLungeWithMedicineBall",19:"plankKneeTucks",20:"weightedPlankKneeTucks",21:"sideStep",22:"weightedSideStep",23:"singleLegBackExtension",24:"weightedSingleLegBackExtension",25:"spineExtension",26:"weightedSpineExtension",27:"staticBackExtension",28:"weightedStaticBackExtension",29:"supermanFromFloor",30:"weightedSupermanFromFloor",31:"swissBallBackExtension",32:"weightedSwissBallBackExtension",33:"swissBallHyperextension",34:"weightedSwissBallHyperextension",35:"swissBallOppositeArmAndLegLift",36:"weightedSwissBallOppositeArmAndLegLift",37:"supermanOnSwissBall",38:"cobra",39:"supineFloorBarre"},lateralRaiseExerciseName:{0:"45DegreeCableExternalRotation",1:"alternatingLateralRaiseWithStaticHold",2:"barMuscleUp",3:"bentOverLateralRaise",4:"cableDiagonalRaise",5:"cableFrontRaise",6:"calorieRow",7:"comboShoulderRaise",8:"dumbbellDiagonalRaise",9:"dumbbellVRaise",10:"frontRaise",11:"leaningDumbbellLateralRaise",12:"lyingDumbbellRaise",13:"muscleUp",14:"oneArmCableLateralRaise",15:"overhandGripRearLateralRaise",16:"plateRaises",17:"ringDip",18:"weightedRingDip",19:"ringMuscleUp",20:"weightedRingMuscleUp",21:"ropeClimb",22:"weightedRopeClimb",23:"scaption",24:"seatedLateralRaise",25:"seatedRearLateralRaise",26:"sideLyingLateralRaise",27:"standingLift",28:"suspendedRow",29:"underhandGripRearLateralRaise",30:"wallSlide",31:"weightedWallSlide",32:"armCircles",33:"shavingTheHead",34:"dumbbellLateralRaise",36:"ringDipKipping",37:"wallWalk",38:"dumbbellFrontRaiseWheelchair",39:"dumbbellLateralRaiseWheelchair",40:"poleDoubleArmOverheadAndForwardWheelchair",41:"poleStraightArmOverheadWheelchair"},legCurlExerciseName:{0:"legCurl",1:"weightedLegCurl",2:"goodMorning",3:"seatedBarbellGoodMorning",4:"singleLegBarbellGoodMorning",5:"singleLegSlidingLegCurl",6:"slidingLegCurl",7:"splitBarbellGoodMorning",8:"splitStanceExtension",9:"staggeredStanceGoodMorning",10:"swissBallHipRaiseAndLegCurl",11:"zercherGoodMorning",12:"bandGoodMorning",13:"barGoodMorning"},legRaiseExerciseName:{0:"hangingKneeRaise",1:"hangingLegRaise",2:"weightedHangingLegRaise",3:"hangingSingleLegRaise",4:"weightedHangingSingleLegRaise",5:"kettlebellLegRaises",6:"legLoweringDrill",7:"weightedLegLoweringDrill",8:"lyingStraightLegRaise",9:"weightedLyingStraightLegRaise",10:"medicineBallLegDrops",11:"quadrupedLegRaise",12:"weightedQuadrupedLegRaise",13:"reverseLegRaise",14:"weightedReverseLegRaise",15:"reverseLegRaiseOnSwissBall",16:"weightedReverseLegRaiseOnSwissBall",17:"singleLegLoweringDrill",18:"weightedSingleLegLoweringDrill",19:"weightedHangingKneeRaise",20:"lateralStepover",21:"weightedLateralStepover"},lungeExerciseName:{0:"overheadLunge",1:"lungeMatrix",2:"weightedLungeMatrix",3:"alternatingBarbellForwardLunge",4:"alternatingDumbbellLungeWithReach",5:"backFootElevatedDumbbellSplitSquat",6:"barbellBoxLunge",7:"barbellBulgarianSplitSquat",8:"barbellCrossoverLunge",9:"barbellFrontSplitSquat",10:"barbellLunge",11:"barbellReverseLunge",12:"barbellSideLunge",13:"barbellSplitSquat",14:"coreControlRearLunge",15:"diagonalLunge",16:"dropLunge",17:"dumbbellBoxLunge",18:"dumbbellBulgarianSplitSquat",19:"dumbbellCrossoverLunge",20:"dumbbellDiagonalLunge",21:"dumbbellLunge",22:"dumbbellLungeAndRotation",23:"dumbbellOverheadBulgarianSplitSquat",24:"dumbbellReverseLungeToHighKneeAndPress",25:"dumbbellSideLunge",26:"elevatedFrontFootBarbellSplitSquat",27:"frontFootElevatedDumbbellSplitSquat",28:"gunslingerLunge",29:"lawnmowerLunge",30:"lowLungeWithIsometricAdduction",31:"lowSideToSideLunge",32:"lunge",33:"weightedLunge",34:"lungeWithArmReach",35:"lungeWithDiagonalReach",36:"lungeWithSideBend",37:"offsetDumbbellLunge",38:"offsetDumbbellReverseLunge",39:"overheadBulgarianSplitSquat",40:"overheadDumbbellReverseLunge",41:"overheadDumbbellSplitSquat",42:"overheadLungeWithRotation",43:"reverseBarbellBoxLunge",44:"reverseBoxLunge",45:"reverseDumbbellBoxLunge",46:"reverseDumbbellCrossoverLunge",47:"reverseDumbbellDiagonalLunge",48:"reverseLungeWithReachBack",49:"weightedReverseLungeWithReachBack",50:"reverseLungeWithTwistAndOverheadReach",51:"weightedReverseLungeWithTwistAndOverheadReach",52:"reverseSlidingBoxLunge",53:"weightedReverseSlidingBoxLunge",54:"reverseSlidingLunge",55:"weightedReverseSlidingLunge",56:"runnersLungeToBalance",57:"weightedRunnersLungeToBalance",58:"shiftingSideLunge",59:"sideAndCrossoverLunge",60:"weightedSideAndCrossoverLunge",61:"sideLunge",62:"weightedSideLunge",63:"sideLungeAndPress",64:"sideLungeJumpOff",65:"sideLungeSweep",66:"weightedSideLungeSweep",67:"sideLungeToCrossoverTap",68:"weightedSideLungeToCrossoverTap",69:"sideToSideLungeChops",70:"weightedSideToSideLungeChops",71:"siffJumpLunge",72:"weightedSiffJumpLunge",73:"singleArmReverseLungeAndPress",74:"slidingLateralLunge",75:"weightedSlidingLateralLunge",76:"walkingBarbellLunge",77:"walkingDumbbellLunge",78:"walkingLunge",79:"weightedWalkingLunge",80:"wideGripOverheadBarbellSplitSquat",81:"alternatingDumbbellLunge",82:"dumbbellReverseLunge",83:"overheadDumbbellLunge",84:"scissorPowerSwitch",85:"dumbbellOverheadWalkingLunge",86:"curtsyLunge",87:"weightedCurtsyLunge",88:"weightedShiftingSideLunge",89:"weightedSideLungeAndPress",90:"weightedSideLungeJumpOff"},olympicLiftExerciseName:{0:"barbellHangPowerClean",1:"barbellHangSquatClean",2:"barbellPowerClean",3:"barbellPowerSnatch",4:"barbellSquatClean",5:"cleanAndJerk",6:"barbellHangPowerSnatch",7:"barbellHangPull",8:"barbellHighPull",9:"barbellSnatch",10:"barbellSplitJerk",11:"clean",12:"dumbbellClean",13:"dumbbellHangPull",14:"oneHandDumbbellSplitSnatch",15:"pushJerk",16:"singleArmDumbbellSnatch",17:"singleArmHangSnatch",18:"singleArmKettlebellSnatch",19:"splitJerk",20:"squatCleanAndJerk",21:"dumbbellHangSnatch",22:"dumbbellPowerCleanAndJerk",23:"dumbbellPowerCleanAndPushPress",24:"dumbbellPowerCleanAndStrictPress",25:"dumbbellSnatch",26:"medicineBallClean",27:"cleanAndPress",28:"snatch"},plankExerciseName:{0:"45DegreePlank",1:"weighted45DegreePlank",2:"90DegreeStaticHold",3:"weighted90DegreeStaticHold",4:"bearCrawl",5:"weightedBearCrawl",6:"crossBodyMountainClimber",7:"weightedCrossBodyMountainClimber",8:"elbowPlankPikeJacks",9:"weightedElbowPlankPikeJacks",10:"elevatedFeetPlank",11:"weightedElevatedFeetPlank",12:"elevatorAbs",13:"weightedElevatorAbs",14:"extendedPlank",15:"weightedExtendedPlank",16:"fullPlankPasseTwist",17:"weightedFullPlankPasseTwist",18:"inchingElbowPlank",19:"weightedInchingElbowPlank",20:"inchwormToSidePlank",21:"weightedInchwormToSidePlank",22:"kneelingPlank",23:"weightedKneelingPlank",24:"kneelingSidePlankWithLegLift",25:"weightedKneelingSidePlankWithLegLift",26:"lateralRoll",27:"weightedLateralRoll",28:"lyingReversePlank",29:"weightedLyingReversePlank",30:"medicineBallMountainClimber",31:"weightedMedicineBallMountainClimber",32:"modifiedMountainClimberAndExtension",33:"weightedModifiedMountainClimberAndExtension",34:"mountainClimber",35:"weightedMountainClimber",36:"mountainClimberOnSlidingDiscs",37:"weightedMountainClimberOnSlidingDiscs",38:"mountainClimberWithFeetOnBosuBall",39:"weightedMountainClimberWithFeetOnBosuBall",40:"mountainClimberWithHandsOnBench",41:"mountainClimberWithHandsOnSwissBall",42:"weightedMountainClimberWithHandsOnSwissBall",43:"plank",44:"plankJacksWithFeetOnSlidingDiscs",45:"weightedPlankJacksWithFeetOnSlidingDiscs",46:"plankKneeTwist",47:"weightedPlankKneeTwist",48:"plankPikeJumps",49:"weightedPlankPikeJumps",50:"plankPikes",51:"weightedPlankPikes",52:"plankToStandUp",53:"weightedPlankToStandUp",54:"plankWithArmRaise",55:"weightedPlankWithArmRaise",56:"plankWithKneeToElbow",57:"weightedPlankWithKneeToElbow",58:"plankWithObliqueCrunch",59:"weightedPlankWithObliqueCrunch",60:"plyometricSidePlank",61:"weightedPlyometricSidePlank",62:"rollingSidePlank",63:"weightedRollingSidePlank",64:"sideKickPlank",65:"weightedSideKickPlank",66:"sidePlank",67:"weightedSidePlank",68:"sidePlankAndRow",69:"weightedSidePlankAndRow",70:"sidePlankLift",71:"weightedSidePlankLift",72:"sidePlankWithElbowOnBosuBall",73:"weightedSidePlankWithElbowOnBosuBall",74:"sidePlankWithFeetOnBench",75:"weightedSidePlankWithFeetOnBench",76:"sidePlankWithKneeCircle",77:"weightedSidePlankWithKneeCircle",78:"sidePlankWithKneeTuck",79:"weightedSidePlankWithKneeTuck",80:"sidePlankWithLegLift",81:"weightedSidePlankWithLegLift",82:"sidePlankWithReachUnder",83:"weightedSidePlankWithReachUnder",84:"singleLegElevatedFeetPlank",85:"weightedSingleLegElevatedFeetPlank",86:"singleLegFlexAndExtend",87:"weightedSingleLegFlexAndExtend",88:"singleLegSidePlank",89:"weightedSingleLegSidePlank",90:"spidermanPlank",91:"weightedSpidermanPlank",92:"straightArmPlank",93:"weightedStraightArmPlank",94:"straightArmPlankWithShoulderTouch",95:"weightedStraightArmPlankWithShoulderTouch",96:"swissBallPlank",97:"weightedSwissBallPlank",98:"swissBallPlankLegLift",99:"weightedSwissBallPlankLegLift",100:"swissBallPlankLegLiftAndHold",101:"swissBallPlankWithFeetOnBench",102:"weightedSwissBallPlankWithFeetOnBench",103:"swissBallProneJackknife",104:"weightedSwissBallProneJackknife",105:"swissBallSidePlank",106:"weightedSwissBallSidePlank",107:"threeWayPlank",108:"weightedThreeWayPlank",109:"towelPlankAndKneeIn",110:"weightedTowelPlankAndKneeIn",111:"tStabilization",112:"weightedTStabilization",113:"turkishGetUpToSidePlank",114:"weightedTurkishGetUpToSidePlank",115:"twoPointPlank",116:"weightedTwoPointPlank",117:"weightedPlank",118:"wideStancePlankWithDiagonalArmLift",119:"weightedWideStancePlankWithDiagonalArmLift",120:"wideStancePlankWithDiagonalLegLift",121:"weightedWideStancePlankWithDiagonalLegLift",122:"wideStancePlankWithLegLift",123:"weightedWideStancePlankWithLegLift",124:"wideStancePlankWithOppositeArmAndLegLift",125:"weightedMountainClimberWithHandsOnBench",126:"weightedSwissBallPlankLegLiftAndHold",127:"weightedWideStancePlankWithOppositeArmAndLegLift",128:"plankWithFeetOnSwissBall",129:"sidePlankToPlankWithReachUnder",130:"bridgeWithGluteLowerLift",131:"bridgeOneLegBridge",132:"plankWithArmVariations",133:"plankWithLegLift",134:"reversePlankWithLegPull",135:"ringPlankSprawls"},plyoExerciseName:{0:"alternatingJumpLunge",1:"weightedAlternatingJumpLunge",2:"barbellJumpSquat",3:"bodyWeightJumpSquat",4:"weightedJumpSquat",5:"crossKneeStrike",6:"weightedCrossKneeStrike",7:"depthJump",8:"weightedDepthJump",9:"dumbbellJumpSquat",10:"dumbbellSplitJump",11:"frontKneeStrike",12:"weightedFrontKneeStrike",13:"highBoxJump",14:"weightedHighBoxJump",15:"isometricExplosiveBodyWeightJumpSquat",16:"weightedIsometricExplosiveJumpSquat",17:"lateralLeapAndHop",18:"weightedLateralLeapAndHop",19:"lateralPlyoSquats",20:"weightedLateralPlyoSquats",21:"lateralSlide",22:"weightedLateralSlide",23:"medicineBallOverheadThrows",24:"medicineBallSideThrow",25:"medicineBallSlam",26:"sideToSideMedicineBallThrows",27:"sideToSideShuffleJump",28:"weightedSideToSideShuffleJump",29:"squatJumpOntoBox",30:"weightedSquatJumpOntoBox",31:"squatJumpsInAndOut",32:"weightedSquatJumpsInAndOut",33:"boxJump",34:"boxJumpOvers",35:"boxJumpOversOverTheBox",36:"starJumpSquats",37:"jumpSquat"},pullUpExerciseName:{0:"bandedPullUps",1:"30DegreeLatPulldown",2:"bandAssistedChinUp",3:"closeGripChinUp",4:"weightedCloseGripChinUp",5:"closeGripLatPulldown",6:"crossoverChinUp",7:"weightedCrossoverChinUp",8:"ezBarPullover",9:"hangingHurdle",10:"weightedHangingHurdle",11:"kneelingLatPulldown",12:"kneelingUnderhandGripLatPulldown",13:"latPulldown",14:"mixedGripChinUp",15:"weightedMixedGripChinUp",16:"mixedGripPullUp",17:"weightedMixedGripPullUp",18:"reverseGripPulldown",19:"standingCablePullover",20:"straightArmPulldown",21:"swissBallEzBarPullover",22:"towelPullUp",23:"weightedTowelPullUp",24:"weightedPullUp",25:"wideGripLatPulldown",26:"wideGripPullUp",27:"weightedWideGripPullUp",28:"burpeePullUp",29:"weightedBurpeePullUp",30:"jumpingPullUps",31:"weightedJumpingPullUps",32:"kippingPullUp",33:"weightedKippingPullUp",34:"lPullUp",35:"weightedLPullUp",36:"suspendedChinUp",37:"weightedSuspendedChinUp",38:"pullUp",39:"chinUp",40:"neutralGripChinUp",41:"weightedChinUp",42:"bandAssistedPullUp",43:"neutralGripPullUp",44:"weightedNeutralGripChinUp",45:"weightedNeutralGripPullUp"},pushUpExerciseName:{0:"chestPressWithBand",1:"alternatingStaggeredPushUp",2:"weightedAlternatingStaggeredPushUp",3:"alternatingHandsMedicineBallPushUp",4:"weightedAlternatingHandsMedicineBallPushUp",5:"bosuBallPushUp",6:"weightedBosuBallPushUp",7:"clappingPushUp",8:"weightedClappingPushUp",9:"closeGripMedicineBallPushUp",10:"weightedCloseGripMedicineBallPushUp",11:"closeHandsPushUp",12:"weightedCloseHandsPushUp",13:"declinePushUp",14:"weightedDeclinePushUp",15:"diamondPushUp",16:"weightedDiamondPushUp",17:"explosiveCrossoverPushUp",18:"weightedExplosiveCrossoverPushUp",19:"explosivePushUp",20:"weightedExplosivePushUp",21:"feetElevatedSideToSidePushUp",22:"weightedFeetElevatedSideToSidePushUp",23:"handReleasePushUp",24:"weightedHandReleasePushUp",25:"handstandPushUp",26:"weightedHandstandPushUp",27:"inclinePushUp",28:"weightedInclinePushUp",29:"isometricExplosivePushUp",30:"weightedIsometricExplosivePushUp",31:"judoPushUp",32:"weightedJudoPushUp",33:"kneelingPushUp",34:"weightedKneelingPushUp",35:"medicineBallChestPass",36:"medicineBallPushUp",37:"weightedMedicineBallPushUp",38:"oneArmPushUp",39:"weightedOneArmPushUp",40:"weightedPushUp",41:"pushUpAndRow",42:"weightedPushUpAndRow",43:"pushUpPlus",44:"weightedPushUpPlus",45:"pushUpWithFeetOnSwissBall",46:"weightedPushUpWithFeetOnSwissBall",47:"pushUpWithOneHandOnMedicineBall",48:"weightedPushUpWithOneHandOnMedicineBall",49:"shoulderPushUp",50:"weightedShoulderPushUp",51:"singleArmMedicineBallPushUp",52:"weightedSingleArmMedicineBallPushUp",53:"spidermanPushUp",54:"weightedSpidermanPushUp",55:"stackedFeetPushUp",56:"weightedStackedFeetPushUp",57:"staggeredHandsPushUp",58:"weightedStaggeredHandsPushUp",59:"suspendedPushUp",60:"weightedSuspendedPushUp",61:"swissBallPushUp",62:"weightedSwissBallPushUp",63:"swissBallPushUpPlus",64:"weightedSwissBallPushUpPlus",65:"tPushUp",66:"weightedTPushUp",67:"tripleStopPushUp",68:"weightedTripleStopPushUp",69:"wideHandsPushUp",70:"weightedWideHandsPushUp",71:"paralletteHandstandPushUp",72:"weightedParalletteHandstandPushUp",73:"ringHandstandPushUp",74:"weightedRingHandstandPushUp",75:"ringPushUp",76:"weightedRingPushUp",77:"pushUp",78:"pilatesPushup",79:"dynamicPushUp",80:"kippingHandstandPushUp",81:"shoulderTappingPushUp",82:"bicepsPushUp",83:"hinduPushUp",84:"pikePushUp",85:"wideGripPushUp",86:"weightedBicepsPushUp",87:"weightedHinduPushUp",88:"weightedPikePushUp",89:"kippingParalletteHandstandPushUp",90:"wallPushUp"},rowExerciseName:{0:"barbellStraightLegDeadliftToRow",1:"cableRowStanding",2:"dumbbellRow",3:"elevatedFeetInvertedRow",4:"weightedElevatedFeetInvertedRow",5:"facePull",6:"facePullWithExternalRotation",7:"invertedRowWithFeetOnSwissBall",8:"weightedInvertedRowWithFeetOnSwissBall",9:"kettlebellRow",10:"modifiedInvertedRow",11:"weightedModifiedInvertedRow",12:"neutralGripAlternatingDumbbellRow",13:"oneArmBentOverRow",14:"oneLeggedDumbbellRow",15:"renegadeRow",16:"reverseGripBarbellRow",17:"ropeHandleCableRow",18:"seatedCableRow",19:"seatedDumbbellRow",20:"singleArmCableRow",21:"singleArmCableRowAndRotation",22:"singleArmInvertedRow",23:"weightedSingleArmInvertedRow",24:"singleArmNeutralGripDumbbellRow",25:"singleArmNeutralGripDumbbellRowAndRotation",26:"suspendedInvertedRow",27:"weightedSuspendedInvertedRow",28:"tBarRow",29:"towelGripInvertedRow",30:"weightedTowelGripInvertedRow",31:"underhandGripCableRow",32:"vGripCableRow",33:"wideGripSeatedCableRow",34:"alternatingDumbbellRow",35:"invertedRow",36:"row",37:"weightedRow",38:"indoorRow",39:"bandedFacePulls",40:"chestSupportedDumbbellRow",41:"declineRingRow",42:"elevatedRingRow",43:"rdlBentOverRowWithBarbellDumbbell",44:"ringRow",45:"barbellRow",46:"bentOverRowWithBarbell",47:"bentOverRowWithDumbell",48:"seatedUnderhandGripCableRow",49:"trxInvertedRow",50:"weightedInvertedRow",51:"weightedTrxInvertedRow",52:"dumbbellRowWheelchair"},shoulderPressExerciseName:{0:"alternatingDumbbellShoulderPress",1:"arnoldPress",2:"barbellFrontSquatToPushPress",3:"barbellPushPress",4:"barbellShoulderPress",5:"deadCurlPress",6:"dumbbellAlternatingShoulderPressAndTwist",7:"dumbbellHammerCurlToLungeToPress",8:"dumbbellPushPress",9:"floorInvertedShoulderPress",10:"weightedFloorInvertedShoulderPress",11:"invertedShoulderPress",12:"weightedInvertedShoulderPress",13:"oneArmPushPress",14:"overheadBarbellPress",15:"overheadDumbbellPress",16:"seatedBarbellShoulderPress",17:"seatedDumbbellShoulderPress",18:"singleArmDumbbellShoulderPress",19:"singleArmStepUpAndPress",20:"smithMachineOverheadPress",21:"splitStanceHammerCurlToPress",22:"swissBallDumbbellShoulderPress",23:"weightPlateFrontRaise",24:"dumbbellShoulderPress",25:"militaryPress",27:"strictPress",28:"dumbbellFrontRaise",29:"dumbbellCurlToOverheadPressWheelchair",30:"arnoldPressWheelchair",31:"overheadDumbbellPressWheelchair"},shoulderStabilityExerciseName:{0:"90DegreeCableExternalRotation",1:"bandExternalRotation",2:"bandInternalRotation",3:"bentArmLateralRaiseAndExternalRotation",4:"cableExternalRotation",5:"dumbbellFacePullWithExternalRotation",6:"floorIRaise",7:"weightedFloorIRaise",8:"floorTRaise",9:"weightedFloorTRaise",10:"floorYRaise",11:"weightedFloorYRaise",12:"inclineIRaise",13:"weightedInclineIRaise",14:"inclineLRaise",15:"weightedInclineLRaise",16:"inclineTRaise",17:"weightedInclineTRaise",18:"inclineWRaise",19:"weightedInclineWRaise",20:"inclineYRaise",21:"weightedInclineYRaise",22:"lyingExternalRotation",23:"seatedDumbbellExternalRotation",24:"standingLRaise",25:"swissBallIRaise",26:"weightedSwissBallIRaise",27:"swissBallTRaise",28:"weightedSwissBallTRaise",29:"swissBallWRaise",30:"weightedSwissBallWRaise",31:"swissBallYRaise",32:"weightedSwissBallYRaise",33:"cableInternalRotation",34:"lyingInternalRotation",35:"seatedDumbbellInternalRotation"},shrugExerciseName:{0:"barbellJumpShrug",1:"barbellShrug",2:"barbellUprightRow",3:"behindTheBackSmithMachineShrug",4:"dumbbellJumpShrug",5:"dumbbellShrug",6:"dumbbellUprightRow",7:"inclineDumbbellShrug",8:"overheadBarbellShrug",9:"overheadDumbbellShrug",10:"scaptionAndShrug",11:"scapularRetraction",12:"serratusChairShrug",13:"weightedSerratusChairShrug",14:"serratusShrug",15:"weightedSerratusShrug",16:"wideGripJumpShrug",17:"wideGripBarbellShrug",18:"behindTheBackShrug",19:"dumbbellShrugWheelchair",20:"shrugWheelchair",21:"shrugArmDownWheelchair",22:"shrugArmMidWheelchair",23:"shrugArmUpWheelchair",24:"uprightRow"},sitUpExerciseName:{0:"alternatingSitUp",1:"weightedAlternatingSitUp",2:"bentKneeVUp",3:"weightedBentKneeVUp",4:"butterflySitUp",5:"weightedButterflySitup",6:"crossPunchRollUp",7:"weightedCrossPunchRollUp",8:"crossedArmsSitUp",9:"weightedCrossedArmsSitUp",10:"getUpSitUp",11:"weightedGetUpSitUp",12:"hoveringSitUp",13:"weightedHoveringSitUp",14:"kettlebellSitUp",15:"medicineBallAlternatingVUp",16:"medicineBallSitUp",17:"medicineBallVUp",18:"modifiedSitUp",19:"negativeSitUp",20:"oneArmFullSitUp",21:"recliningCircle",22:"weightedRecliningCircle",23:"reverseCurlUp",24:"weightedReverseCurlUp",25:"singleLegSwissBallJackknife",26:"weightedSingleLegSwissBallJackknife",27:"theTeaser",28:"theTeaserWeighted",29:"threePartRollDown",30:"weightedThreePartRollDown",31:"vUp",32:"weightedVUp",33:"weightedRussianTwistOnSwissBall",34:"weightedSitUp",35:"xAbs",36:"weightedXAbs",37:"sitUp",38:"ghdSitUps",39:"sitUpTurkishGetUp",40:"russianTwistOnSwissBall"},squatExerciseName:{0:"legPress",1:"backSquatWithBodyBar",2:"backSquats",3:"weightedBackSquats",4:"balancingSquat",5:"weightedBalancingSquat",6:"barbellBackSquat",7:"barbellBoxSquat",8:"barbellFrontSquat",9:"barbellHackSquat",10:"barbellHangSquatSnatch",11:"barbellLateralStepUp",12:"barbellQuarterSquat",13:"barbellSiffSquat",14:"barbellSquatSnatch",15:"barbellSquatWithHeelsRaised",16:"barbellStepover",17:"barbellStepUp",18:"benchSquatWithRotationalChop",19:"weightedBenchSquatWithRotationalChop",20:"bodyWeightWallSquat",21:"weightedWallSquat",22:"boxStepSquat",23:"weightedBoxStepSquat",24:"bracedSquat",25:"crossedArmBarbellFrontSquat",26:"crossoverDumbbellStepUp",27:"dumbbellFrontSquat",28:"dumbbellSplitSquat",29:"dumbbellSquat",30:"dumbbellSquatClean",31:"dumbbellStepover",32:"dumbbellStepUp",33:"elevatedSingleLegSquat",34:"weightedElevatedSingleLegSquat",35:"figureFourSquats",36:"weightedFigureFourSquats",37:"gobletSquat",38:"kettlebellSquat",39:"kettlebellSwingOverhead",40:"kettlebellSwingWithFlipToSquat",41:"lateralDumbbellStepUp",42:"oneLeggedSquat",43:"overheadDumbbellSquat",44:"overheadSquat",45:"partialSingleLegSquat",46:"weightedPartialSingleLegSquat",47:"pistolSquat",48:"weightedPistolSquat",49:"plieSlides",50:"weightedPlieSlides",51:"plieSquat",52:"weightedPlieSquat",53:"prisonerSquat",54:"weightedPrisonerSquat",55:"singleLegBenchGetUp",56:"weightedSingleLegBenchGetUp",57:"singleLegBenchSquat",58:"weightedSingleLegBenchSquat",59:"singleLegSquatOnSwissBall",60:"weightedSingleLegSquatOnSwissBall",61:"squat",62:"weightedSquat",63:"squatsWithBand",64:"staggeredSquat",65:"weightedStaggeredSquat",66:"stepUp",67:"weightedStepUp",68:"suitcaseSquats",69:"sumoSquat",70:"sumoSquatSlideIn",71:"weightedSumoSquatSlideIn",72:"sumoSquatToHighPull",73:"sumoSquatToStand",74:"weightedSumoSquatToStand",75:"sumoSquatWithRotation",76:"weightedSumoSquatWithRotation",77:"swissBallBodyWeightWallSquat",78:"weightedSwissBallWallSquat",79:"thrusters",80:"unevenSquat",81:"weightedUnevenSquat",82:"waistSlimmingSquat",83:"wallBall",84:"wideStanceBarbellSquat",85:"wideStanceGobletSquat",86:"zercherSquat",87:"kbsOverhead",88:"squatAndSideKick",89:"squatJumpsInNOut",90:"pilatesPlieSquatsParallelTurnedOutFlatAndHeels",91:"releveStraightLegAndKneeBentWithOneLegVariation",92:"alternatingBoxDumbbellStepUps",93:"dumbbellOverheadSquatSingleArm",94:"dumbbellSquatSnatch",95:"medicineBallSquat",97:"wallBallSquatAndPress",98:"squatAmericanSwing",100:"airSquat",101:"dumbbellThrusters",102:"overheadBarbellSquat"},totalBodyExerciseName:{0:"burpee",1:"weightedBurpee",2:"burpeeBoxJump",3:"weightedBurpeeBoxJump",4:"highPullBurpee",5:"manMakers",6:"oneArmBurpee",7:"squatThrusts",8:"weightedSquatThrusts",9:"squatPlankPushUp",10:"weightedSquatPlankPushUp",11:"standingTRotationBalance",12:"weightedStandingTRotationBalance",13:"barbellBurpee",15:"burpeeBoxJumpOverYesLiterallyJumpingOverTheBox",16:"burpeeBoxJumpStepUpOver",17:"lateralBarbellBurpee",18:"totalBodyBurpeeOverBar",19:"burpeeBoxJumpOver",20:"burpeeWheelchair"},moveExerciseName:{0:"archAndCurl",1:"armCirclesWithBallBandAndWeight",2:"armStretch",3:"backMassage",4:"bellyBreathing",5:"bridgeWithBall",6:"diamondLegCrunch",7:"diamondLegLift",8:"eightPointShoulderOpener",9:"footRolling",10:"footwork",11:"footworkOnDisc",12:"forwardFold",13:"frogWithBand",14:"halfRollUp",15:"hamstringCurl",16:"hamstringStretch",17:"hipStretch",18:"hugATreeWithBallBandAndWeight",19:"kneeCircles",20:"kneeFoldsOnDisc",21:"lateralFlexion",22:"legStretchWithBand",23:"legStretchWithLegCircles",24:"lowerLiftOnDisc",25:"lungeSquat",26:"lungesWithKneeLift",27:"mermaidStretch",28:"neutralPelvicPosition",29:"pelvicClocksOnDisc",30:"pilatesPlieSquatsParallelTurnedOutFlatAndHeelsWithChair",31:"piriformisStretch",32:"plankKneeCrosses",33:"plankKneePulls",34:"plankUpDowns",35:"prayerMudra",36:"psoasLungeStretch",37:"ribcageBreathing",38:"rollDown",39:"rollUpWithWeightAndBand",40:"saw",41:"scapularStabilization",42:"scissorsOnDisc",43:"seatedHipStretchup",44:"seatedTwist",45:"shavingTheHeadWithBallBandAndWeight",46:"spinalTwist",47:"spinalTwistStretch",48:"spineStretchForward",49:"squatOpenArmTwistPose",50:"squatsWithBall",51:"standAndHang",52:"standingSideStretch",53:"standingSingleLegForwardBendWithItBandOpener",54:"straightLegCrunchWithLegLift",55:"straightLegCrunchWithLegLiftWithBall",56:"straightLegCrunchWithLegsCrossed",57:"straightLegCrunchWithLegsCrossedWithBall",58:"straightLegDiagonalCrunch",59:"straightLegDiagonalCrunchWithBall",60:"tailboneCurl",61:"throatLock",62:"tickTockSideRoll",63:"twist",64:"vLegCrunches",65:"vSit",66:"forwardFoldWheelchair",67:"forwardFoldPlusWheelchair",68:"armCirclesLowForwardWheelchair",69:"armCirclesMidForwardWheelchair",70:"armCirclesHighForwardWheelchair",71:"armCirclesLowBackwardWheelchair",72:"armCirclesMidBackwardWheelchair",73:"armCirclesHighBackwardWheelchair",74:"coreTwistsWheelchair",75:"armRaiseWheelchair",76:"chestExpandWheelchair",77:"armExtendWheelchair",78:"forwardBendWheelchair",79:"toeTouchWheelchair",80:"extendedToeTouchWheelchair",81:"seatedArmCircles",82:"trunkRotations",83:"seatedTrunkRotations",84:"toeTouch"},poseExerciseName:{0:"allFours",1:"ankleToKnee",2:"babyCobra",3:"boat",4:"boundAngle",5:"boundSeatedSingleLegForwardBend",6:"bow",7:"bowedHalfMoon",8:"bridge",9:"cat",10:"chair",11:"childs",12:"corpse",13:"cowFace",14:"cow",15:"devotionalWarrior",16:"dolphinPlank",17:"dolphin",18:"downDogKneeToNose",19:"downDogSplit",20:"downDogSplitOpenHipBentKnee",21:"downwardFacingDog",22:"eagle",23:"easySeated",24:"extendedPuppy",25:"extendedSideAngle",26:"fish",27:"fourLimbedStaff",28:"fullSplit",29:"gate",30:"halfChairHalfAnkleToKnee",31:"halfMoon",32:"headToKnee",33:"heron",34:"heros",35:"highLunge",36:"kneesChestChin",37:"lizard",38:"locust",39:"lowLunge",40:"lowLungeTwist",41:"lowLungeWithKneeDown",42:"mermaid",43:"mountain",44:"oneLeggedDownwardFacingPoseOpenHipBentKnee",45:"oneLeggedPigeon",46:"peacefulWarrior",47:"plank",48:"plow",49:"reclinedHandToFoot",50:"revolvedHalfMoon",51:"revolvedHeadToKnee",52:"revolvedTriangle",53:"runnersLunge",54:"seatedEasySideBend",55:"seatedEasyTwist",56:"seatedLongLegForwardBend",57:"seatedWideLegForwardBend",58:"shoulderStand",59:"sideBoat",60:"sidePlank",61:"sphinx",62:"squatOpenArmTwist",63:"squatPalmPress",64:"staff",65:"standingArmsUp",66:"standingForwardBendHalfwayUp",67:"standingForwardBend",68:"standingSideOpener",69:"standingSingleLegForwardBend",70:"standingSplit",71:"standingWideLegForwardBend",72:"standingWideLegForwardBendWithTwist",73:"supineSpinalTwist",74:"tableTop",75:"threadTheNeedle",76:"thunderbolt",77:"thunderboltPoseBothSidesArmStretch",78:"tree",79:"triangle",80:"upDog",81:"upwardFacingPlank",82:"warriorOne",83:"warriorThree",84:"warriorTwo",85:"wheel",86:"wideSideLunge",87:"deepBreathingWheelchair",88:"deepBreathingLowWheelchair",89:"deepBreathingMidWheelchair",90:"deepBreathingHighWheelchair",91:"prayerWheelchair",92:"overheadPrayerWheelchair",93:"cactusWheelchair",94:"breathingPunchesWheelchair",95:"breathingPunchesExtendedWheelchair",96:"breathingPunchesOverheadWheelchair",97:"breathingPunchesOverheadAndDownWheelchair",98:"breathingPunchesSideWheelchair",99:"breathingPunchesExtendedSideWheelchair",100:"breathingPunchesOverheadSideWheelchair",101:"breathingPunchesOverheadAndDownSideWheelchair",102:"leftHandBackWheelchair",103:"triangleWheelchair",104:"threadTheNeedleWheelchair",105:"neckFlexionAndExtensionWheelchair",106:"neckLateralFlexionWheelchair",107:"spineFlexionAndExtensionWheelchair",108:"spineRotationWheelchair",109:"spineLateralFlexionWheelchair",110:"alternativeSkiingWheelchair",111:"reachForwardWheelchair",112:"warriorWheelchair",113:"reverseWarriorWheelchair",114:"downwardFacingDogToCobra",115:"seatedCatCow"},tricepsExtensionExerciseName:{0:"benchDip",1:"weightedBenchDip",2:"bodyWeightDip",3:"cableKickback",4:"cableLyingTricepsExtension",5:"cableOverheadTricepsExtension",6:"dumbbellKickback",7:"dumbbellLyingTricepsExtension",8:"ezBarOverheadTricepsExtension",9:"inclineDip",10:"weightedInclineDip",11:"inclineEzBarLyingTricepsExtension",12:"lyingDumbbellPulloverToExtension",13:"lyingEzBarTricepsExtension",14:"lyingTricepsExtensionToCloseGripBenchPress",15:"overheadDumbbellTricepsExtension",16:"recliningTricepsPress",17:"reverseGripPressdown",18:"reverseGripTricepsPressdown",19:"ropePressdown",20:"seatedBarbellOverheadTricepsExtension",21:"seatedDumbbellOverheadTricepsExtension",22:"seatedEzBarOverheadTricepsExtension",23:"seatedSingleArmOverheadDumbbellExtension",24:"singleArmDumbbellOverheadTricepsExtension",25:"singleDumbbellSeatedOverheadTricepsExtension",26:"singleLegBenchDipAndKick",27:"weightedSingleLegBenchDipAndKick",28:"singleLegDip",29:"weightedSingleLegDip",30:"staticLyingTricepsExtension",31:"suspendedDip",32:"weightedSuspendedDip",33:"swissBallDumbbellLyingTricepsExtension",34:"swissBallEzBarLyingTricepsExtension",35:"swissBallEzBarOverheadTricepsExtension",36:"tabletopDip",37:"weightedTabletopDip",38:"tricepsExtensionOnFloor",39:"tricepsPressdown",40:"weightedDip",41:"alternatingDumbbellLyingTricepsExtension",42:"tricepsPress",43:"dumbbellKickbackWheelchair",44:"overheadDumbbellTricepsExtensionWheelchair"},warmUpExerciseName:{0:"quadrupedRocking",1:"neckTilts",2:"ankleCircles",3:"ankleDorsiflexionWithBand",4:"ankleInternalRotation",5:"armCircles",6:"bentOverReachToSky",7:"catCamel",8:"elbowToFootLunge",9:"forwardAndBackwardLegSwings",10:"groiners",11:"invertedHamstringStretch",12:"lateralDuckUnder",13:"neckRotations",14:"oppositeArmAndLegBalance",15:"reachRollAndLift",16:"scorpion",17:"shoulderCircles",18:"sideToSideLegSwings",19:"sleeperStretch",20:"slideOut",21:"swissBallHipCrossover",22:"swissBallReachRollAndLift",23:"swissBallWindshieldWipers",24:"thoracicRotation",25:"walkingHighKicks",26:"walkingHighKnees",27:"walkingKneeHugs",28:"walkingLegCradles",29:"walkout",30:"walkoutFromPushUpPosition",31:"bicepsStretch",32:"glutesStretch",33:"standingHamstringStretch",34:"stretch90_90",35:"stretchAbs",36:"stretchButterfly",37:"stretchCalf",38:"stretchCatCow",39:"stretchChildsPose",40:"stretchCobra",41:"stretchForearms",42:"stretchForwardGlutes",43:"stretchFrontSplit",44:"stretchHamstring",45:"stretchHipFlexorAndQuad",46:"stretchLat",47:"stretchLevatorScapulae",48:"stretchLungeWithSpinalTwist",49:"stretchLungingHipFlexor",50:"stretchLyingAbduction",51:"stretchLyingItBand",52:"stretchLyingKneeToChest",53:"stretchLyingPiriformis",54:"stretchLyingSpinalTwist",55:"stretchNeck",56:"stretchObliques",57:"stretchOverUnderShoulder",58:"stretchPectoral",59:"stretchPigeonPose",60:"stretchPiriformis",61:"stretchQuad",62:"stretchScorpion",63:"stretchShoulder",64:"stretchSide",65:"stretchSideLunge",66:"stretchSideSplit",67:"stretchStandingItBand",68:"stretchStraddle",69:"stretchTriceps",70:"stretchWallChestAndShoulder",71:"neckRotationsWheelchair",72:"halfKneelingArmRotation",73:"threeWayAnkleMobilization",74:"ninetyNinetyHipSwitch",75:"activeFrog",76:"shoulderSweeps",77:"ankleLunges",78:"backRollFoamRoller",79:"bearCrawl",80:"latissimusDorsiFoamRoll",81:"reverseTHipOpener",82:"shoulderRolls",83:"chestOpeners",84:"tricepsStretch",85:"upperBackStretch",86:"hipCircles",87:"ankleStretch",88:"marchingInPlace",89:"tricepsStretchWheelchair",90:"upperBackStretchWheelchair"},runExerciseName:{0:"run",1:"walk",2:"jog",3:"sprint",4:"runOrWalk",5:"speedWalk",6:"warmUp"},bikeExerciseName:{0:"bike",1:"ride",2:"sprint"},bandedExercisesExerciseName:{1:"abTwist",2:"backExtension",3:"bicycleCrunch",4:"calfRaises",5:"chestPress",6:"clamShells",7:"curl",8:"deadbug",9:"deadlift",10:"donkeyKick",11:"externalRotation",12:"externalRotationAt90DegreeAbduction",13:"facePull",14:"fireHydrant",15:"fly",16:"frontRaise",17:"gluteBridge",18:"hamstringCurls",19:"highPlankLegLifts",20:"hipExtension",21:"internalRotation",22:"jumpingJack",23:"kneelingCrunch",24:"lateralBandWalks",25:"lateralRaise",26:"latpull",27:"legAbduction",28:"legAdduction",29:"legExtension",30:"lunge",31:"plank",32:"pullApart",33:"pushUps",34:"reverseCrunch",35:"row",36:"shoulderAbduction",37:"shoulderExtension",38:"shoulderExternalRotation",39:"shoulderFlexionTo90Degrees",40:"sidePlankLegLifts",41:"sideRaise",42:"squat",43:"squatToPress",44:"tricepExtension",45:"tricepKickback",46:"uprightRow",47:"wallCrawlWithExternalRotation",49:"lateralRaiseWheelchair",50:"tricepsExtensionWheelchair",51:"chestFlyInclineWheelchair",52:"chestFlyDeclineWheelchair",53:"pullDownWheelchair",54:"straightArmPullDownWheelchair",55:"curlWheelchair",56:"overheadCurlWheelchair",57:"facePullWheelchair",58:"aroundTheWorldWheelchair",59:"pullApartWheelchair",60:"sideCurlWheelchair",61:"overheadPressWheelchair"},battleRopeExerciseName:{0:"alternatingFigureEight",1:"alternatingJumpWave",2:"alternatingKneelingToStandingWave",3:"alternatingLungeWave",4:"alternatingSquatWave",5:"alternatingWave",6:"alternatingWaveWithLateralShuffle",7:"clapWave",8:"doubleArmFigureEight",9:"doubleArmSideToSideSnake",10:"doubleArmSideWave",11:"doubleArmSlam",12:"doubleArmWave",13:"grapplerToss",14:"hipToss",15:"inAndOutWave",16:"insideCircle",17:"jumpingJacks",18:"outsideCircle",19:"rainbow",20:"sidePlankWave",21:"sidewinder",22:"sittingRussianTwist",23:"snakeWave",24:"splitJack",25:"stageCoach",26:"ultimateWarrior",27:"upperCuts"},ellipticalExerciseName:{0:"elliptical"},floorClimbExerciseName:{0:"floorClimb"},indoorBikeExerciseName:{0:"airBike",1:"assaultBike",3:"stationaryBike"},indoorRowExerciseName:{0:"rowingMachine"},ladderExerciseName:{0:"agility",1:"speed"},sandbagExerciseName:{0:"aroundTheWorld",1:"backSquat",2:"bearCrawlPullThrough",3:"bearHugSquat",4:"clean",5:"cleanAndPress",6:"curl",7:"frontCarry",8:"frontSquat",9:"lunge",10:"overheadPress",11:"plankPullThrough",12:"rotationalLunge",13:"row",14:"russianTwist",15:"shouldering",16:"shoveling",17:"sideLunge",18:"sprint",19:"zercherSquat"},sledExerciseName:{0:"backwardDrag",1:"chestPress",2:"forwardDrag",3:"lowPush",4:"push",5:"row"},sledgeHammerExerciseName:{0:"lateralSwing",1:"hammerSlam"},stairStepperExerciseName:{0:"stairStepper"},suspensionExerciseName:{0:"chestFly",1:"chestPress",2:"crunch",3:"curl",4:"dip",5:"facePull",6:"gluteBridge",7:"hamstringCurl",8:"hipDrop",9:"invertedRow",10:"kneeDriveJump",11:"kneeToChest",12:"latPullover",13:"lunge",14:"mountainClimber",15:"pendulum",16:"pike",17:"plank",18:"powerPull",19:"pullUp",20:"pushUp",21:"reverseMountainClimber",22:"reversePlank",23:"rollout",24:"row",25:"sideLunge",26:"sidePlank",27:"singleLegDeadlift",28:"singleLegSquat",29:"sitUp",30:"split",31:"squat",32:"squatJump",33:"tricepPress",34:"yFly"},tireExerciseName:{0:"flip"},bikeOutdoorExerciseName:{0:"bike"},runIndoorExerciseName:{0:"indoorTrackRun",1:"treadmill"},waterType:{0:"fresh",1:"salt",2:"en13319",3:"custom"},tissueModelType:{0:"zhl16c"},diveGasStatus:{0:"disabled",1:"enabled",2:"backupOnly"},diveAlert:{0:"ndlReached",1:"gasSwitchPrompted",2:"nearSurface",3:"approachingNdl",4:"po2Warn",5:"po2CritHigh",6:"po2CritLow",7:"timeAlert",8:"depthAlert",9:"decoCeilingBroken",10:"decoComplete",11:"safetyStopBroken",12:"safetyStopComplete",13:"cnsWarning",14:"cnsCritical",15:"otuWarning",16:"otuCritical",17:"ascentCritical",18:"alertDismissedByKey",19:"alertDismissedByTimeout",20:"batteryLow",21:"batteryCritical",22:"safetyStopStarted",23:"approachingFirstDecoStop",24:"setpointSwitchAutoLow",25:"setpointSwitchAutoHigh",26:"setpointSwitchManualLow",27:"setpointSwitchManualHigh",28:"autoSetpointSwitchIgnored",29:"switchedToOpenCircuit",30:"switchedToClosedCircuit",32:"tankBatteryLow",33:"po2CcrDilLow",34:"decoStopCleared",35:"apneaNeutralBuoyancy",36:"apneaTargetDepth",37:"apneaSurface",38:"apneaHighSpeed",39:"apneaLowSpeed"},diveAlarmType:{0:"depth",1:"time",2:"speed"},diveBacklightMode:{0:"atDepth",1:"alwaysOn"},sleepLevel:{0:"unmeasurable",1:"awake",2:"light",3:"deep",4:"rem"},spo2MeasurementType:{0:"offWrist",1:"spotCheck",2:"continuousCheck",3:"periodic"},ccrSetpointSwitchMode:{0:"manual",1:"automatic"},diveGasMode:{0:"openCircuit",1:"closedCircuitDiluent"},projectileType:{0:"arrow",1:"rifleCartridge",2:"pistolCartridge",3:"shotshell",4:"airRiflePellet",5:"other"},faveroProduct:{10:"assiomaUno",12:"assiomaDuo"},splitType:{1:"ascentSplit",2:"descentSplit",3:"intervalActive",4:"intervalRest",5:"intervalWarmup",6:"intervalCooldown",7:"intervalRecovery",8:"intervalOther",9:"climbActive",10:"climbRest",11:"surfActive",12:"runActive",13:"runRest",14:"workoutRound",17:"rwdRun",18:"rwdWalk",21:"windsurfActive",22:"rwdStand",23:"transition",28:"skiLiftSplit",29:"skiRunSplit"},climbProEvent:{0:"approach",1:"start",2:"complete"},gasConsumptionRateType:{0:"pressureSac",1:"volumeSac",2:"rmv"},tapSensitivity:{0:"high",1:"medium",2:"low"},radarThreatLevelType:{0:"threatUnknown",1:"threatNone",2:"threatApproaching",3:"threatApproachingFast"},sleepDisruptionSeverity:{0:"none",1:"low",2:"medium",3:"high"},napPeriodFeedback:{0:"none",1:"multipleNapsDuringDay",2:"jetlagIdealTimingIdealDuration",3:"jetlagIdealTimingLongDuration",4:"jetlagLateTimingIdealDuration",5:"jetlagLateTimingLongDuration",6:"idealTimingIdealDurationLowNeed",7:"idealTimingIdealDurationHighNeed",8:"idealTimingLongDurationLowNeed",9:"idealTimingLongDurationHighNeed",10:"lateTimingIdealDurationLowNeed",11:"lateTimingIdealDurationHighNeed",12:"lateTimingLongDurationLowNeed",13:"lateTimingLongDurationHighNeed",14:"idealDurationLowNeed",15:"idealDurationHighNeed",16:"longDurationLowNeed",17:"longDurationHighNeed"},napSource:{0:"automatic",1:"manualDevice",2:"manualGc"},maxMetSpeedSource:{0:"onboardGps",1:"connectedGps",2:"cadence"},maxMetHeartRateSource:{0:"whr",1:"hrm"},hrvStatus:{0:"none",1:"poor",2:"low",3:"unbalanced",4:"balanced"},noFlyTimeMode:{0:"standard",1:"flat24Hours"}},MesgNum:{FILE_ID:0,FILE_CREATOR:49,TIMESTAMP_CORRELATION:162,SOFTWARE:35,SLAVE_DEVICE:106,CAPABILITIES:1,FILE_CAPABILITIES:37,MESG_CAPABILITIES:38,FIELD_CAPABILITIES:39,DEVICE_SETTINGS:2,USER_PROFILE:3,HRM_PROFILE:4,SDM_PROFILE:5,BIKE_PROFILE:6,CONNECTIVITY:127,WATCHFACE_SETTINGS:159,OHR_SETTINGS:188,TIME_IN_ZONE:216,ZONES_TARGET:7,SPORT:12,HR_ZONE:8,SPEED_ZONE:53,CADENCE_ZONE:131,POWER_ZONE:9,MET_ZONE:10,TRAINING_SETTINGS:13,DIVE_SETTINGS:258,DIVE_ALARM:262,DIVE_APNEA_ALARM:393,DIVE_GAS:259,GOAL:15,ACTIVITY:34,SESSION:18,LAP:19,LENGTH:101,RECORD:20,EVENT:21,DEVICE_INFO:23,DEVICE_AUX_BATTERY_INFO:375,TRAINING_FILE:72,WEATHER_CONDITIONS:128,WEATHER_ALERT:129,GPS_METADATA:160,CAMERA_EVENT:161,GYROSCOPE_DATA:164,ACCELEROMETER_DATA:165,MAGNETOMETER_DATA:208,BAROMETER_DATA:209,THREE_D_SENSOR_CALIBRATION:167,ONE_D_SENSOR_CALIBRATION:210,VIDEO_FRAME:169,OBDII_DATA:174,NMEA_SENTENCE:177,AVIATION_ATTITUDE:178,VIDEO:184,VIDEO_TITLE:185,VIDEO_DESCRIPTION:186,VIDEO_CLIP:187,SET:225,JUMP:285,SPLIT:312,SPLIT_SUMMARY:313,CLIMB_PRO:317,FIELD_DESCRIPTION:206,DEVELOPER_DATA_ID:207,COURSE:31,COURSE_POINT:32,SEGMENT_ID:148,SEGMENT_LEADERBOARD_ENTRY:149,SEGMENT_POINT:150,SEGMENT_LAP:142,SEGMENT_FILE:151,WORKOUT:26,WORKOUT_SESSION:158,WORKOUT_STEP:27,EXERCISE_TITLE:264,SCHEDULE:28,TOTALS:33,WEIGHT_SCALE:30,BLOOD_PRESSURE:51,MONITORING_INFO:103,MONITORING:55,MONITORING_HR_DATA:211,SPO2_DATA:269,HR:132,STRESS_LEVEL:227,MAX_MET_DATA:229,HSA_BODY_BATTERY_DATA:314,HSA_EVENT:315,HSA_ACCELEROMETER_DATA:302,HSA_GYROSCOPE_DATA:376,HSA_STEP_DATA:304,HSA_SPO2_DATA:305,HSA_STRESS_DATA:306,HSA_RESPIRATION_DATA:307,HSA_HEART_RATE_DATA:308,HSA_CONFIGURATION_DATA:389,HSA_WRIST_TEMPERATURE_DATA:409,MEMO_GLOB:145,SLEEP_LEVEL:275,ANT_CHANNEL_ID:82,ANT_RX:80,ANT_TX:81,EXD_SCREEN_CONFIGURATION:200,EXD_DATA_FIELD_CONFIGURATION:201,EXD_DATA_CONCEPT_CONFIGURATION:202,DIVE_SUMMARY:268,AAD_ACCEL_FEATURES:289,HRV:78,BEAT_INTERVALS:290,HRV_STATUS_SUMMARY:370,HRV_VALUE:371,RAW_BBI:372,RESPIRATION_RATE:297,CHRONO_SHOT_SESSION:387,CHRONO_SHOT_DATA:388,TANK_UPDATE:319,TANK_SUMMARY:323,SLEEP_ASSESSMENT:346,SLEEP_DISRUPTION_SEVERITY_PERIOD:470,SLEEP_DISRUPTION_OVERNIGHT_SEVERITY:471,NAP_EVENT:412,SKIN_TEMP_OVERNIGHT:398,PAD:105}},O=Pn});var Wn,Ot,Ft,Dt=v(()=>{ne();Wn=l=>{if((l?.memoGlobMesgs?.length??0)==0)return;let e=l.memoGlobMesgs,s=Object.groupBy(e,({mesgNum:t,parentIndex:n,fieldNum:a})=>JSON.stringify({mesgNum:t,parentIndex:n,fieldNum:a}));Object.entries(s).forEach(([t,n])=>{let{mesgNum:a,parentIndex:i,fieldNum:o}=JSON.parse(t);n.sort((c,h)=>c.partIndex-h.partIndex);let u=Object.values(O.messages).find(c=>c.name==a||c.num==a),p=l[u?.messagesKey??a]?.[i];if(p==null)return;let T=u?.fields?.[o]?.name??o,r=n.reduce((c,h)=>c.concat(h.data),[]);p[T]=Ot(r)})},Ot=l=>{let e=new TextDecoder("utf-8"),s=new Uint8Array(l);return e.decode(s)},Ft={decodeMemoGlobs:Wn,decodeMemoGlobBytesToUtf8:Ot}});var Vn,Kn,Ht,kn,x,Bs=v(()=>{Vn=l=>Ht(l)?null:l.length===1?l[0]:l,Kn=l=>{if(l==null)return;let e=l.split("\0");for(;e[e.length-1]==="";)if(e.pop(),e.length===0)return"";return e.length===1?e[0]:e},Ht=l=>l.reduce((e,s)=>s!=null?!1:e,!0),kn=(l,e)=>Array.isArray(l)?l.reduce((s,t)=>t!=e?!1:s,!0):l===e,x={sanitizeValues:Vn,trimStringTrailingNulls:Kn,onlyNullValues:Ht,onlyInvalidValues:kn}});var Gs,pe,Ms=v(()=>{$();Bs();Gs=class l{static LITTLE_ENDIAN=!0;static BIG_ENDIAN=!1;#s=0;#e=null;#t=new TextDecoder("utf-8",{fatal:!1,ignoreBOM:!0});#a=null;static fromByteArray(e){let s=new Uint8Array(e);return this.fromArrayBuffer(s.buffer)}static fromBuffer(e){let s=e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength);return this.fromArrayBuffer(s)}static fromArrayBuffer(e){return new l(e)}constructor(e){this.#s=0,this.#e=e}get length(){return this.#e.byteLength}get bytesRead(){return this.#s}get position(){return this.#s}get crcCalculator(){return this.#a}set crcCalculator(e){this.#a=e}reset(){this.seek(0)}seek(e){this.#s=e}slice(e,s){return this.#e.slice(e,s)}peekByte(){let e=this.#e.slice(this.#s,this.#s+1);return new DataView(e).getUint8(0)}readByte(){return this.readUInt8()}readBytes(e){if(this.#s+e>this.#e.byteLength)throw Error(`FIT Runtime Error end of stream at byte ${this.#s}`);let s=new Uint8Array(this.#e,this.#s,e);return this.#s+=e,this.#a?.addBytes(s,0,e),s}readUInt8(e){return this.readValue(d.BaseType.UINT8,1,{convertInvalidToNull:!1,...e})}readInt8(e){return this.readValue(d.BaseType.SINT8,1,{convertInvalidToNull:!1,...e})}readUInt16(e){return this.readValue(d.BaseType.UINT16,2,{convertInvalidToNull:!1,...e})}readInt16(e){return this.readValue(d.BaseType.SINT16,2,{convertInvalidToNull:!1,...e})}readUInt32(e){return this.readValue(d.BaseType.UINT32,4,{convertInvalidToNull:!1,...e})}readInt32(e){return this.readValue(d.BaseType.SINT32,4,{convertInvalidToNull:!1,...e})}readUInt64(e){return this.readValue(d.BaseType.UINT64,8,{convertInvalidToNull:!1,...e})}readInt64(e){return this.readValue(d.BaseType.SINT64,8,{convertInvalidToNull:!1,...e})}readFloat32(e){return this.readValue(d.BaseType.FLOAT32,4,{convertInvalidToNull:!1,...e})}readFloat64(e){return this.readValue(d.BaseType.FLOAT64,8,{convertInvalidToNull:!1,...e})}readString(e){return this.readValue(d.BaseType.STRING,e)}readValue(e,s,{endianness:t=l.LITTLE_ENDIAN,convertInvalidToNull:n=!0}={}){let a=d.BaseTypeDefinitions[e].size,i=d.BaseTypeDefinitions[e].invalid,o=this.readBytes(s);if(s%a!==0)return n?null:i;if(e===d.BaseType.STRING){let c=this.#t.decode(o).replace(/\uFFFD/g,"").split(d.NULL_TERMINATOR);for(;c[c.length-1]==="";)c.pop();return c.length===0?null:c.length===1?c[0]:c}let u=new DataView(o.buffer,o.byteOffset,o.byteLength),p=[],T=s/a;for(let r=0;r<T;r++)switch(e){case d.BaseType.BYTE:case d.BaseType.ENUM:case d.BaseType.UINT8:case d.BaseType.UINT8Z:p.push(u.getUint8(r*a));break;case d.BaseType.SINT8:p.push(u.getInt8(r*a));break;case d.BaseType.UINT16:case d.BaseType.UINT16Z:p.push(u.getUint16(r*a,t));break;case d.BaseType.SINT16:p.push(u.getInt16(r*a,t));break;case d.BaseType.UINT32:case d.BaseType.UINT32Z:p.push(u.getUint32(r*a,t));break;case d.BaseType.SINT32:p.push(u.getInt32(r*a,t));break;case d.BaseType.UINT64:case d.BaseType.UINT64Z:p.push(u.getBigUint64(r*a,t));break;case d.BaseType.SINT64:p.push(u.getBigInt64(r*a,t));break;case d.BaseType.FLOAT32:p.push(u.getFloat32(r*a,t));break;case d.BaseType.FLOAT64:p.push(u.getFloat64(r*a,t));break}return e===d.BaseType.BYTE?x.onlyInvalidValues(p,i)?null:p:(n&&(p=p.map(r=>r===i?null:r)),x.sanitizeValues(p))}},pe=Gs});var wt,Ps,vt,Nn,Ut,Re,Xn,Ws,Yn,N,Vs,Bt,Gt=v(()=>{_t();Lt();he();$();St();Dt();ne();Ms();ue();Bs();wt=128,Ps=64,vt=32,Nn=0,Ut=15,Re=14,Xn=12,Ws=2,Yn=2199,N=Object.freeze({NORMAL:"normal",SKIP_HEADER:"skipHeader",DATA_ONLY:"dataOnly"}),Vs=class l{#s=[];#e={};#t=null;#a=new Tt;#n={};#o=null;#u=[];#l=[];#f=N.NORMAL;#r=null;#T=null;#p=null;#_=!0;#i=!0;#m=!0;#A=!0;#y=!0;#c=!1;#b=!0;#h=!1;constructor(e){if(e==null)throw Error("FIT Runtime Error stream parameter is null or undefined");this.#t=e}static isFIT(e){try{let s=e.peekByte();if([Re,Xn].includes(s)!=!0||e.length<s+Ws||l.#I(e,{resetPosition:!0}).dataType!==".FIT")return!1}catch{return!1}return!0}isFIT(){return l.isFIT(this.#t)}checkIntegrity(){try{if(!this.isFIT())return!1;let e=l.#I(this.#t,{resetPosition:!0});if(this.#t.length<e.headerSize+e.dataSize+Ws)return!1;let s=new Uint8Array(this.#t.slice(0,this.#t.length));if(e.headerSize===Re&&e.headerCRC!==0&&e.headerCRC!=X.calculateCRC(s,0,12)||(s[e.headerSize+e.dataSize+1]<<8)+s[e.headerSize+e.dataSize]!=X.calculateCRC(s,0,e.headerSize+e.dataSize))return!1}catch{return!1}return!0}read({mesgListener:e=null,mesgDefinitionListener:s=null,fieldDescriptionListener:t=null,expandSubFields:n=!0,expandComponents:a=!0,applyScaleAndOffset:i=!0,convertTypesToStrings:o=!0,convertDateTimesToDates:u=!0,includeUnknownData:p=!1,mergeHeartRates:T=!0,decodeMemoGlobs:r=!1,skipHeader:c=!1,dataOnly:h=!1}={}){this.#r=e,this.#T=s,this.#p=t,this.#_=n,this.#i=a,this.#m=i,this.#A=o,this.#y=u,this.#c=p,this.#b=T,this.#h=r,this.#s=[],this.#e={},this.#n={},this.#o=null;let C=[];try{for(this.#b&&(!this.#m||!this.#i)&&this.#d("mergeHeartRates requires applyScaleAndOffset and expandComponents to be enabled"),h&&c&&this.#d("dataOnly and skipHeader cannot both be enabled"),this.#f=c?N.SKIP_HEADER:h?N.DATA_ONLY:N.NORMAL;this.#t.position<this.#t.length;)this.#C();this.#b&&Et.mergeHeartRates(this.#n.hrMesgs,this.#n.recordMesgs),this.#h&&Ft.decodeMemoGlobs(this.#n)}catch(E){C.push(E)}finally{return{messages:this.#n,profileVersion:this.#o,errors:C}}}#C(){let e=this.#t.position;this.#f===N.NORMAL&&!this.isFIT()&&this.#d("input is not a FIT file"),this.#t.crcCalculator=new X;let{headerSize:s,dataSize:t,profileVersion:n}=l.#I(this.#t,{decodeMode:this.#f});for(this.#o??=n;this.#t.position<e+s+t;)this.#E();let a=this.#t.crcCalculator.crc,i=this.#t.readUInt16();this.#f===N.NORMAL&&i!==a&&this.#d("CRC error")}#E(){let e=this.#t.peekByte();if((e&wt)===wt)return this.#F();if((e&Ps)===Nn)return this.#O();if((e&Ps)===Ps)return this.#S()}#S(){let e=this.#t.readByte(),s={};s.recordHeader=e,s.localMesgNum=e&Ut,s.reserved=this.#t.readByte(),s.architecture=this.#t.readByte(),s.endianness=s.architecture===0?pe.LITTLE_ENDIAN:pe.BIG_ENDIAN,s.globalMessageNumber=this.#t.readUInt16({endianness:s.endianness}),s.numFields=this.#t.readByte(),s.fieldDefinitions=[],s.developerFieldDefinitions=[],s.messageSize=0,s.developerDataSize=0;for(let n=0;n<s.numFields;n++){let a={fieldDefinitionNumber:this.#t.readByte(),size:this.#t.readByte(),baseType:this.#t.readByte()&d.BaseTypeMask};a.baseType in d.BaseTypeDefinitions||this.#d(),a.invalidValue=d.BaseTypeDefinitions[a.baseType].invalid,a.baseTypeSize=d.BaseTypeDefinitions[a.baseType].size,s.fieldDefinitions.push(a),s.messageSize+=a.size}if((e&vt)===vt){let n=this.#t.readByte();for(let a=0;a<n;a++){let i={fieldDefinitionNumber:this.#t.readByte(),size:this.#t.readByte(),developerDataIndex:this.#t.readByte()};s.developerFieldDefinitions.push(i),s.developerDataSize+=i.size}}this.#T?.({...s});let t=O.messages[s.globalMessageNumber];t==null&&this.#c&&(t={name:s.globalMessageNumber.toString(),messagesKey:s.globalMessageNumber.toString(),num:s.globalMessageNumber,fields:{}}),this.#s[s.localMesgNum]={...s,...t},t&&!this.#n.hasOwnProperty(t.messagesKey)&&(this.#n[t.messagesKey]=[])}#O(){let s=this.#t.readByte()&Ut,t=this.#s[s];t==null&&this.#d();let n=t.fields??{},a=t.num,i={};this.#u=[],this.#l=[],t.fieldDefinitions.forEach(u=>{let p=n[u.fieldDefinitionNumber],{fieldName:T,rawFieldValue:r}=this.#R(t,u,p);T!=null&&(p!=null||this.#c)&&(i[T]={rawFieldValue:r,fieldDefinitionNumber:u.fieldDefinitionNumber},p?.subFields?.length>0&&this.#u.push(T),p?.hasComponents&&this.#l.push(T),p?.isAccumulated&&this.#V(t,i,p,r))});let o={};if(t.developerFieldDefinitions.forEach(u=>{let p=this.#v(u);if(p==null){this.#t.readBytes(u.size);return}u.baseType=p.fitBaseTypeId,u.invalidValue=d.BaseTypeDefinitions[u.baseType].invalid,u.baseTypeSize=d.BaseTypeDefinitions[u.baseType].size;let{rawFieldValue:T}=this.#R(t,u,p);T!=null&&(o[p.key]=T)}),a===O.MesgNum.DEVELOPER_DATA_ID)this.#H(i);else if(a===O.MesgNum.FIELD_DESCRIPTION){let u=Object.keys(this.#e).reduce((p,T)=>p+this.#e[T].fields.length,0);i.key={fieldValue:u,rawFieldValue:u},this.#w(i)}else this.#U(a,i),this.#G(a,i,n);if(this.#M(i,t),t.name!=null&&(Object.keys(i).forEach(u=>{i[u]=i[u].fieldValue}),Object.keys(o).length>0&&(i.developerFields=o),this.#n[t.messagesKey].push(i),this.#r?.(t.globalMessageNumber,i),a===O.MesgNum.FIELD_DESCRIPTION&&this.#p!=null)){let u=this.#n.developerDataIdMesgs?.find(p=>p.developerDataIndex===i.developerDataIndex)??{};this.#p(i.key,{...u},{...i})}}#F(){this.#d("compressed timestamp messages are not currently supported")}#R(e,s,t){let n=this.#D(e,s,t);return n==null?{}:{fieldName:t?.name??~~s.fieldDefinitionNumber,rawFieldValue:n}}#D(e,s,t){return this.#t.readValue(s.baseType,s.size,{endianness:e.endianness,convertInvalidToNull:!t?.hasComponents})}#H(e){e==null||e.developerDataIndex.rawFieldValue==null||e.developerDataIndex.rawFieldValue===255||(this.#e[e.developerDataIndex.rawFieldValue]={developerDataIndex:e.developerDataIndex?.rawFieldValue,developerId:e.developerId?.rawFieldValue??null,applicationId:e.applicationId?.rawFieldValue??null,manufacturerId:e.manufacturerId?.rawFieldValue??null,applicationVersion:e.applicationVersion?.rawFieldValue??null,fields:[]})}#w(e){e==null||e.developerDataIndex.rawFieldValue==null||e.developerDataIndex.rawFieldValue===255||this.#e[e.developerDataIndex.rawFieldValue]!=null&&this.#e[e.developerDataIndex.rawFieldValue].fields.push({developerDataIndex:e.developerDataIndex?.rawFieldValue,fieldDefinitionNumber:e.fieldDefinitionNumber?.rawFieldValue,fitBaseTypeId:e.fitBaseTypeId?.rawFieldValue&d.BaseTypeMask,fieldName:e.fieldName?.rawFieldValue??null,array:e.array?.rawFieldValue??null,components:e.components?.rawFieldValue??null,scale:e.scale?.rawFieldValue??null,offset:e.offset?.rawFieldValue??null,units:e.units?.rawFieldValue??null,bits:e.bits?.rawFieldValue??null,accumulate:e.accumulate?.rawFieldValue??null,refFieldName:e.refFieldName?.rawFieldValue??null,refFieldValue:e.refFieldValue?.rawFieldValue??null,fitBaseUnitId:e.fitBaseUnitId?.rawFieldValue??null,nativeMesgNum:e.nativeMesgNum?.rawFieldValue??null,nativeFieldNum:e.nativeFieldNum?.rawFieldValue??null,key:e.key.rawFieldValue})}#v(e){try{return this.#e[e.developerDataIndex]?.fields?.find(s=>s.fieldDefinitionNumber==e.fieldDefinitionNumber)??null}catch{return null}}#U(e,s){!this.#_||this.#u.length==0||this.#u.forEach(t=>{let n=O.messages[e].fields[s[t].fieldDefinitionNumber];this.#B(s,n)})}#B(e,s){for(let t=0;t<s.subFields.length;t++){let n=s.subFields[t];for(let a=0;a<n.map.length;a++){let i=n.map[a],o=e[i.name];if(o!=null&&o.rawFieldValue===i.value){e[n.name]=JSON.parse(JSON.stringify(e[s.name])),e[n.name].isSubField=!0,n.hasComponents&&this.#l.push(n.name);break}}}}#G(e,s,t){if(!this.#i||this.#l.length==0)return;let n={};for(;this.#l.length>0;){let a=this.#l.shift(),{rawFieldValue:i,fieldDefinitionNumber:o,isSubField:u}=s[a]??n[a],p=O.messages[e].fields[o];p=u?this.#g(p,a):p;let T=d.FieldTypeToBaseType[p.type];if(p.hasComponents===!1||T==null||x.onlyInvalidValues(i,d.BaseTypeDefinitions[T].invalid))continue;let r=new Rt(i,T);for(let c=0;c<p.components.length&&!(r.bitsAvailable<p.bits[c]);c++){let h=t[p.components[c]];if(n[h.name]==null){let _=d.FieldTypeToBaseType[h.type],b=_!=null?d.BaseTypeDefinitions[_].invalid:255;n[h.name]={fieldValue:[],rawFieldValue:[],fieldDefinitionNumber:h.num,isExpandedField:!0,invalidValue:b}}let C=r.readBits(p.bits[c]);h.isAccumulated&&(C=this.#a.accumulate(e,h.num,C,p.bits[c])),C=C/p.scale[c]-p.offset[c];let E=(C+h.offset)*h.scale;if(n[h.name].rawFieldValue.push(E),E===n[h.name].invalidValue?n[h.name].fieldValue.push(null):(this.#A&&(C=this.#L(n,h,C)),n[h.name].fieldValue.push(C)),h.hasComponents&&this.#l.push(h.name),!r.hasBitsAvailable)break}}Object.keys(n).forEach(a=>{n[a].fieldValue=x.sanitizeValues(n[a].fieldValue),n[a].rawFieldValue=x.sanitizeValues(n[a].rawFieldValue),s[a]=n[a]})}#M(e,s){let t=s?.fields??{};for(let n in e){let{rawFieldValue:a,fieldDefinitionNumber:i,isExpandedField:o,isSubField:u}=e[n],p=t[i];if(p=u?this.#g(p,n):p,!o){let T=this.#P(s,p,a);e[n].fieldValue=T}}}#P(e,s,t){let n=t;return s==null?n=t:d.NumericFieldTypes.includes(s?.type??-1)?n=this.#W(e,s,t):s.type==="string"?n=t:s.type==="dateTime"&&this.#y?n=Q.convertDateTimeToDate(t):this.#A?n=this.#L(e,s,t):n=t,n}#W(e,s,t){if(!this.#m||d.NumericFieldTypes.includes(s?.type??-1)===!1||[O.MesgNum.DEVELOPER_DATA_ID,O.MesgNum.FIELD_DESCRIPTION].includes(e.globalMessageNumber)||t==null||Array.isArray(s?.scale??1)&&s.scale.length>1)return t;let n=Array.isArray(s?.scale??d.FIELD_DEFAULT_SCALE)?s?.scale[0]:s?.scale??d.FIELD_DEFAULT_SCALE,a=Array.isArray(s?.offset??d.FIELD_DEFAULT_OFFSET)?s?.offset[0]:s?.offset??d.FIELD_DEFAULT_OFFSET;try{return Array.isArray(t)?t.map(i=>i==null?i:i/n-a):t/n-a}catch{return t}}#V(e,s,t,n){(Array.isArray(n)?n:[n]).forEach(i=>{Object.values(s).forEach(o=>{(e.fields[o.fieldDefinitionNumber].components??[]).forEach((p,T)=>{let r=e.fields[p];r?.num==t.num&&r?.isAccumulated&&(i=(i/t.scale-t.offset+o.offset[T])*o.scale[T])})}),this.#a.createAccumulatedField(e.num,t.num,i)})}#L(e,s,t){if([O.MesgNum.DEVELOPER_DATA_ID,O.MesgNum.FIELD_DESCRIPTION].includes(e.globalMessageNumber)||d.NumericFieldTypes.includes(s?.type??-1))return t;try{let n=O.types[s?.type??-1];return Array.isArray(t)?t.map(a=>a==null?a:n?.[a]??a):n?.[t]??t}catch{return t}}#g(e,s){let t=e.subFields.find(n=>n.name===s);return t??{}}static#I(e,{resetPosition:s=!1,decodeMode:t=N.NORMAL}){let n=e.position;if(t!==N.NORMAL){t===N.SKIP_HEADER&&e.seek(Re);let i=t===N.SKIP_HEADER?Re:0,o=e.length-i-Ws;return{headerSize:i,dataSize:o}}let a={headerSize:e.readByte(),protocolVersion:e.readByte(),profileVersion:this.#K(e.readUInt16()),dataSize:e.readUInt32(),dataType:e.readString(4),headerCRC:null};return a.headerSize===14&&(a.headerCRC=e.readUInt16()),s&&e.seek(n),a}#d(e=""){throw Error(`FIT Runtime Error at byte ${this.#t.position} ${e}`.trimEnd())}static#K=e=>{let s=e>Yn?1e3:100;return{major:Math.floor(e/s),minor:e%s}}},Bt=Vs});var zn,Ks,Mt,Pt=v(()=>{$();ne();zn=new TextEncoder,Ks=class{globalMessageNumber;localMesgNum;fieldDefinitions=[];developerFieldDefinitions=[];constructor(e,s,{fieldDescriptions:t=null}={}){try{if(s==null)throw new Error("mesg is missing or null");if(e==null)throw new Error("mesgNum is missing or null");let n=O.messages[e];if(n==null)throw new Error(`mesgNum: ${e} could not be found in the Profile`);if(this.globalMessageNumber=e,this.localMesgNum=0,Object.keys(s).forEach(a=>{if(s[a]==null)return;let i=Object.entries(n.fields).find(([,r])=>r.name===a);if(i==null)return;let o=d.FieldTypeToBaseType[i[1].baseType],u=d.BaseTypeDefinitions[o],p=i[1].components.length>1?d.FIELD_DEFAULT_SCALE:i[1].scale,T=i[1].components.length>1?d.FIELD_DEFAULT_OFFSET:i[1].offset;p=Array.isArray(p)?p[0]:p??d.FIELD_DEFAULT_SCALE,T=Array.isArray(T)?T[0]:T??d.FIELD_DEFAULT_OFFSET,this.fieldDefinitions.push({name:a,num:i[1].num,size:this.#s(s[a],u),baseType:o,baseTypeEndianFlag:u.baseTypeEndianFlag,type:i[1].type,scale:p,offset:T,components:i[1].components})}),Object.keys(s.developerFields??{})?.sort()?.forEach(a=>{let{developerDataIdMesg:i,fieldDescriptionMesg:o}=this.#e(t,a),u=d.BaseTypeDefinitions[o.fitBaseTypeId&d.BaseTypeMask];this.developerFieldDefinitions.push({key:a,baseType:o.fitBaseTypeId&d.BaseTypeMask,fieldDefinitionNumber:o.fieldDefinitionNumber,size:this.#s(s.developerFields[a],u),developerDataIndex:i.developerDataIndex,type:d.BaseTypeToFieldType[u.type],scale:1,offset:0,components:[]})}),this.fieldDefinitions.length===0)throw new Error("No valid fields were found in the message");if(this.fieldDefinitions.some(a=>a.size>d.MAX_FIELD_SIZE))throw new Error(`Some field sizes are greater than ${d.MAX_FIELD_SIZE}`,{cause:this.fieldDefinitions});this.developerFieldDefinitions.forEach(a=>{if(a.size>d.MAX_FIELD_SIZE)throw new Error(`Developer field size for key '${a.key}' is greater than ${d.MAX_FIELD_SIZE}`,{cause:a})})}catch(n){throw new Error("Could not construct MesgDefinition from Message",{cause:{cause:{message:n.message,cause:n.cause}}})}}write(e){let s=d.MESG_DEFINITION_MASK|this.localMesgNum&d.LOCAL_MESG_NUM_MASK;this.developerFieldDefinitions.length>0&&(s|=d.DEV_DATA_MASK),e.writeUInt8(s),e.writeUInt8(0),e.writeUInt8(d.ARCH_LITTLE_ENDIAN),e.writeUInt16(this.globalMessageNumber),e.writeUInt8(this.fieldDefinitions.length),this.fieldDefinitions.forEach(t=>{e.writeUInt8(t.num),e.writeUInt8(t.size),e.writeUInt8(t.baseType|t.baseTypeEndianFlag)}),this.developerFieldDefinitions.length>0&&(e.writeUInt8(this.developerFieldDefinitions.length),this.developerFieldDefinitions.forEach(t=>{e.writeUInt8(t.fieldDefinitionNumber),e.writeUInt8(t.size),e.writeUInt8(t.developerDataIndex)}))}equals(e){if(this.globalMessageNumber!==e.globalMessageNumber||this.fieldDefinitions.length!==e.fieldDefinitions.length||this.developerFieldDefinitions.length!==e.developerFieldDefinitions.length)return!1;for(let s=0;s<this.fieldDefinitions.length;s++){let t=this.fieldDefinitions[s];if(e.fieldDefinitions.find(n=>t.num===n.num&&t.size===n.size&&t.baseType===n.baseType)==null)return!1}for(let s=0;s<this.developerFieldDefinitions.length;s++){let t=this.developerFieldDefinitions[s];if(e.developerFieldDefinitions.find(n=>t.fieldDefinitionNumber===n.fieldDefinitionNumber&&t.size===n.size&&t.developerDataIndex===n.developerDataIndex)==null)return!1}return!0}#s(e,s){let t=Array.isArray(e)?e:[e];return s.type===d.BaseType.STRING?t.reduce((a,i)=>a+zn.encode(i).length+1,0):s.size*t.length}#e(e,s){try{if(e==null)throw new Error("no developer data field descriptions provided",{cause:{fieldDescriptions:e}});let{developerDataIdMesg:t,fieldDescriptionMesg:n}=e?.[s]??{};if(t==null||n==null)throw new Error(`could not find a developer field description for key ${s}`);let a=[];if(n.fitBaseTypeId==null&&a.push(`fieldDescriptionMesg fitBaseTypeId is ${n.fitBaseTypeId}`),n.fieldDefinitionNumber==null&&a.push(`fieldDescriptionMesg fieldDefinitionNumber is ${n.fieldDefinitionNumber}`),n.developerDataIndex==null&&a.push(`fieldDescriptionMesg developerDataIndex is ${n.developerDataIndex}`),t.developerDataIndex==null&&a.push(`developerDataIdMesg developerDataIndex is ${t.developerDataIndex}`),t.developerDataIndex!==n.developerDataIndex&&a.push(`developerDataIndex values do not match in fieldDescription ${t.developerDataIndex} != ${n.developerDataIndex}`),a.length>0)throw new Error("missing or invalid values in the fieldDescription,",{cause:{developerDataIdMesg:t,fieldDescriptionMesg:n,cause:a}});return{key:s,developerDataIdMesg:t,fieldDescriptionMesg:n}}catch(t){throw new Error(`invalid field description for key ${s}`,{cause:{key:s,cause:{message:t.message,cause:t.cause}}})}}},Mt=Ks});var Vt,Jn,Wt,$n,ks,Kt,kt=v(()=>{$();Vt=1048576,Jn=Vt*500,Wt=Vt/2,$n=Jn,ks=class{#s=null;#e=null;#t=0;#a=0;#n=null;#o=new TextEncoder;constructor({initialByteLength:e=Wt,maxByteLength:s=$n,resizeByBytes:t=Wt}={}){this.#s=new ArrayBuffer(e,{maxByteLength:s}),this.#e=new DataView(this.#s),this.#a=t,this.#n={[d.BaseType.ENUM]:{setValue:this.#e.setUint8.bind(this.#e),size:1,mask:255},[d.BaseType.UINT8]:{setValue:this.#e.setUint8.bind(this.#e),size:1,mask:255},[d.BaseType.UINT16]:{setValue:this.#e.setUint16.bind(this.#e),size:2,mask:65535},[d.BaseType.UINT32]:{setValue:this.#e.setUint32.bind(this.#e),size:4,mask:4294967295},[d.BaseType.UINT64]:{setValue:this.#e.setBigUint64.bind(this.#e),size:8,mask:0xFFFFFFFFFFFFFFFFn},[d.BaseType.SINT8]:{setValue:this.#e.setInt8.bind(this.#e),size:1,mask:255},[d.BaseType.SINT16]:{setValue:this.#e.setInt16.bind(this.#e),size:2,mask:65535},[d.BaseType.SINT32]:{setValue:this.#e.setInt32.bind(this.#e),size:4,mask:4294967295},[d.BaseType.SINT64]:{setValue:this.#e.setBigInt64.bind(this.#e),size:8,mask:0xFFFFFFFFFFFFFFFFn},[d.BaseType.FLOAT32]:{setValue:this.#e.setFloat32.bind(this.#e),size:4},[d.BaseType.FLOAT64]:{setValue:this.#e.setFloat64.bind(this.#e),size:8},[d.BaseType.UINT8Z]:{setValue:this.#e.setUint8.bind(this.#e),size:1,mask:255},[d.BaseType.UINT16Z]:{setValue:this.#e.setUint16.bind(this.#e),size:2,mask:65535},[d.BaseType.UINT32Z]:{setValue:this.#e.setUint32.bind(this.#e),size:4,mask:4294967295},[d.BaseType.UINT64Z]:{setValue:this.#e.setBigUint64.bind(this.#e),size:8,mask:0xFFFFFFFFFFFFFFFFn},[d.BaseType.BYTE]:{setValue:this.#e.setUint8.bind(this.#e),size:1,mask:255}}}get length(){return this.#t}get uint8Array(){return new Uint8Array(this.#s.slice(0,this.#t))}writeUInt8(e){return this.write(e,d.BaseType.UINT8)}writeUInt16(e){return this.write(e,d.BaseType.UINT16)}writeUInt32(e){return this.write(e,d.BaseType.UINT32)}writeUInt64(e){return this.write(e,d.BaseType.UINT64)}writeSInt8(e){return this.write(e,d.BaseType.SINT8)}writeSInt16(e){return this.write(e,d.BaseType.SINT16)}writeSInt32(e){return this.write(e,d.BaseType.SINT32)}writeSInt64(e){return this.write(e,d.BaseType.SINT64)}writeFloat32(e){return this.write(e,d.BaseType.FLOAT32)}writeFloat64(e){return this.write(e,d.BaseType.FLOAT64)}writeUInt8z(e){return this.write(e,d.BaseType.UINT8Z)}writeUInt16z(e){return this.write(e,d.BaseType.UINT16Z)}writeUInt32z(e){return this.write(e,d.BaseType.UINT32Z)}writeUInt64z(e){return this.write(e,d.BaseType.UINT64Z)}writeByte(e){return this.write(e,d.BaseType.BYTE)}writeString(e){e=Array.isArray(e)?e.join(d.NULL_TERMINATOR):e;let s=this.#o.encode(e);return this.#f(s.byteLength),new Uint8Array(this.#s,this.#t,s.byteLength).set(s),this.#t+=s.byteLength,this.writeUInt8(d.NULL_TERMINATOR),this}write(e,s){if(s===d.BaseType.STRING)return this.writeString(e);this.#u(s,e)}set(e,s=0){return this.#f(e.byteLength+s),new Uint8Array(this.#s).set(e,s),this.#t=Math.max(this.#t,e.byteLength+s),this}[Symbol.iterator](){let e=0,s=this.#t,t=this.#e;return{next(){return e<s?{value:t.getUint8(e++),done:!1}:{done:!0}}}}#u(e,s){(Array.isArray(s)?s:[s]).forEach(n=>this.#l(e,n))}#l(e,s){let t=this.#n[e];this.#f(t.size);let n=t.mask==null?s:s&t.mask;return t.setValue(this.#t,n,!0),this.#t+=t.size,this}#f(e=1){if(this.#s.byteLength-this.#t>=e)return;let s=this.#s.byteLength+Math.max(this.#a,e);if(s>this.#s.maxByteLength)throw new Error("Can not resize OutputStream. Set a larger initial size.");this.#s.resize(s)}},Kt=ks});var Le,Qn,Ns,ge,Nt=v(()=>{he();$();Pt();kt();ne();ue();Le=14,Qn=12,Ns=class{constructor({fieldDescriptions:e=null}={}){this.#m={};for(let[s,{developerDataIdMesg:t,fieldDescriptionMesg:n}]of Object.entries(e??{}))this.addDeveloperField(s,t,n);this.#s()}close(){return this.#e(),this.#t(),this.#i.uint8Array}writeMesg(e){return this.onMesg(e.mesgNum,e)}onMesg(e,s){try{let t=this.#l(e,s);this.#r(t),this.#i.writeUInt8(t.localMesgNum),t.fieldDefinitions.forEach(n=>{let a=this.#a(s[n.name],n),i=d.BaseTypeDefinitions[n.baseType];this.#i.write(a,i.type)}),t.developerFieldDefinitions.forEach(n=>{let a=this.#a(s.developerFields[n.key],n),i=d.BaseTypeDefinitions[n.baseType];this.#i.write(a,i.type)})}catch(t){throw new Error("Could not write Message",{cause:{mesg:s,cause:{message:t.message,cause:t.cause}}})}return this}addDeveloperField(e,s,t){if(s.developerDataIndex==null||t.developerDataIndex==null)throw new Error("addDeveloperField() - one or more developerDataIndex values are null.",{cause:{key:e,developerDataIdMesg:s,fieldDescriptionMesg:t}});if(s.developerDataIndex!==t.developerDataIndex)throw new Error("addDeveloperField() - developerDataIndex values do not match.",{cause:{key:e,developerDataIdMesg:s,fieldDescriptionMesg:t}});return this.#m[e]={developerDataIdMesg:s,fieldDescriptionMesg:t},this}#s(){Array(Le).fill(0).forEach(e=>{this.#i.writeUInt8(e)})}#e(){let e=new ArrayBuffer(Le),s=new DataView(e);s.setUint8(0,Le),s.setUint8(1,2),s.setUint16(2,O.version.major*1e3+O.version.minor,!0),s.setUint32(4,this.#i.length-Le,!0),s.setUint8(8,46),s.setUint8(9,70),s.setUint8(10,73),s.setUint8(11,84);let t=X.calculateCRC(new Uint8Array(e),0,Qn);s.setUint16(12,t,!0),this.#i.set(new Uint8Array(e))}#t(){let e=X.calculateCRC(this.#i.uint8Array,0,this.#i.length);this.#i.writeUInt16(e)}#a(e,s){return(Array.isArray(e)?e:[e]).map(n=>this.#n(n,s))}#n(e,s){try{if(d.isNotNumberStringDateOrBoolean(e))return d.BaseTypeDefinitions[s.baseType].invalid;if(d.NumericFieldTypes.includes(s.type)){if(!d.isNumeric(e))throw new Error;d.isString(e)&&(e=d.BigIntFieldTypes.includes(s.type)?BigInt(e):Number(e));let a=s.scale!=d.FIELD_DEFAULT_SCALE||s.offset!=d.FIELD_DEFAULT_OFFSET;if(!a&&!this.#o(e,s.type))throw new Error;if(a){let i=this.#u(e,s.scale,s.offset),o=d.FloatingPointFieldTypes.includes(s.type)||d.isBigInt(i)?i:Math.round(i);return d.BigIntFieldTypes.includes(s.type)?BigInt(o):Number(o)}return e}if(s.type==="dateTime"){if(d.isDate(e))return Q.convertDateToDateTime(e);if(!d.isNumeric(e))throw new Error;return e}if(s.type==="string"){if(!d.isString(e))throw new Error;return e}if(d.isNumeric(e))return e;let t=O.types[s.type],[n]=Object.entries(t).find(([,a])=>a===e);return n}catch{throw new Error(`Could not convert "${e}" to "${s.type}"`,{cause:{value:e,fieldDefinition:s}})}}#o=(e,s)=>{let t=d.FieldTypeToJsType[s];return typeof e===t};#u(e,s,t){return d.isBigInt(e)?(e+BigInt(t))*BigInt(s):(e+t)*s}#l=(e,s)=>{let t=new Mt(e,s,{fieldDescriptions:this.#m});return t.localMesgNum=this.#f(t),t};#f=e=>{let s=this.#p.findIndex(t=>t?.equals(e)??!1);return(s!==-1?s:this.#_++)&d.LOCAL_MESG_NUM_MASK};#r=e=>{let s=e.localMesgNum;return(this.#p[s]==null||!this.#p[s].equals(e))&&this.#T(e),s};#T(e){return e.write(this.#i),this.#p[e.localMesgNum]=e,this}#p=Array(16).fill(null);#_=0;#i=new Kt;#m=null},ge=Ns});var Xt={};lt(Xt,{CrcCalculator:()=>X,Decoder:()=>Bt,Encoder:()=>ge,Profile:()=>O,Stream:()=>pe,Utils:()=>Q});var Xs=v(()=>{he();Gt();Nt();ne();Ms();ue()});var Ia={};lt(Ia,{FIT_SEMICIRCLE_INVALID_SINT32:()=>xs,TRACKSWAP_HEALTH_PARSER_VERSION:()=>oe,TrackSwap:()=>Te,TrackSwapError:()=>B,buildHealthDocumentFromMessages:()=>Fs,default:()=>Te,detectFITKinds:()=>Os,normalizeFitSemicircleToDegrees:()=>W,semicirclesToDegrees:()=>qs});module.exports=_n(Ia);var B=class extends Error{constructor(e,s,t={}){super(s),this.name="TrackSwapError",this.code=e,this.format=t.format,this.cause=t.cause}};function Ae(l,e,s,t){if(l instanceof B)return l;let n=l instanceof Error?l.message:String(l);return new B(e,`${s}: ${n}`,{format:t,cause:l})}var J=class{constructor(){this.version="1.0.0";this.priority=100}async initialize(e){e.metadata.set(`plugin:${this.name}:initialized`,!0)}async destroy(e){e.metadata.delete(`plugin:${this.name}:initialized`)}async validate(e){return!0}};var oe="trackswap-0.2.0-health-ir-v1",Ss=new Set(["timestampCorrelationMesgs","monitoringInfoMesgs","monitoringMesgs","monitoringHrDataMesgs","stressLevelMesgs","respirationRateMesgs","spo2DataMesgs","hrvStatusSummaryMesgs","hrvValueMesgs","sleepLevelMesgs","sleepAssessmentMesgs","napEventMesgs","hsaBodyBatteryDataMesgs","skinTempOvernightMesgs"]),An=new Set([...Ss].filter(l=>l!=="timestampCorrelationMesgs")),cn=new Set(["fileIdMesgs","fileCreatorMesgs","deviceInfoMesgs","deviceSettingsMesgs","softwareMesgs","ohrSettingsMesgs","eventMesgs","activityMesgs","sessionMesgs","lapMesgs","recordMesgs","lengthMesgs","courseMesgs","coursePointMesgs","workoutMesgs","workoutStepMesgs","trainingFileMesgs"]),bn=[{field:"steps",metric:"steps",unit:"count",rolloverModulus:2**32,rolloverBits:32},{field:"distance",metric:"distance_m",unit:"m",rolloverModulus:2**32/100,rolloverBits:32},{field:"activeTime",metric:"active_time_s",unit:"s",rolloverModulus:2**32/1e3,rolloverBits:32},{field:"activeCalories",metric:"active_energy_kcal",unit:"kcal",rolloverModulus:2**16,rolloverBits:16},{field:"calories",metric:"total_energy_kcal",unit:"kcal",rolloverModulus:2**16,rolloverBits:16},{field:"ascent",metric:"ascent_m",unit:"m",rolloverModulus:2**32/1e3,rolloverBits:32},{field:"descent",metric:"descent_m",unit:"m",rolloverModulus:2**32/1e3,rolloverBits:32}];function U(l){return l&&typeof l=="object"?l:{}}function G(l){let e=typeof l=="number"?l:Number(l);return Number.isFinite(e)?e:void 0}function H(l){if(l instanceof Date&&Number.isFinite(l.valueOf()))return l;if(l==null||l==="")return;let e=new Date(l);return Number.isFinite(e.valueOf())?e:void 0}function Cs(l){return H(l)?.toISOString().replace(/Z$/,"")}function F(l,e,s){return{messageName:l,messageIndex:e,fieldName:s}}function Es(l,e){return Object.fromEntries(e.map(s=>[s,l[s]]).filter(([,s])=>["number","string","boolean"].includes(typeof s)))}function pt(l){return Object.fromEntries(Object.entries(l).filter(([,e])=>Array.isArray(e)&&e.length>0).map(([e,s])=>[e,s?.length??0]))}function Os(l){let e=[];return((l.activityMesgs?.length??0)>0||(l.sessionMesgs?.length??0)>0)&&e.push("activity"),[...An].some(s=>(l[s]?.length??0)>0)&&e.push("health"),((l.workoutMesgs?.length??0)>0||(l.workoutStepMesgs?.length??0)>0)&&e.push("workout"),(l.courseMesgs?.length??0)>0&&e.push("course"),e.length===0&&((l.deviceInfoMesgs?.length??0)>0||(l.fileIdMesgs?.length??0)>0)&&e.push("device"),e.length>0?e:["unknown"]}function In(l){let e=String(l??"").trim().toLowerCase().replace(/[_\s-]+/g,"");return e.includes("awake")?"awake":e.includes("deep")?"deep":e.includes("light")?"light":e.includes("rem")?"rem":e.includes("unmeasurable")?"unmeasurable":e.includes("sleep")?"sleeping":`vendor:${e||"unknown"}`}function ut(l,e=0){return new Date(l.valueOf()+e*1e3).toISOString().slice(0,10)}function yn(l){return(l.timestampCorrelationMesgs??[]).map(e=>{let s=U(e),t=H(s.timestamp),n=H(s.localTimestamp);return!t||!n?null:{at:t,offsetSeconds:Math.round((n.valueOf()-t.valueOf())/1e3)}}).filter(e=>e!==null).sort((e,s)=>e.at.valueOf()-s.at.valueOf())}function le(l,e){let s;for(let t of l){if(t.at>e)break;s=t.offsetSeconds}return s}function ft(l,e){if(e!==void 0)return new Date(l.valueOf()+e*1e3).toISOString().replace(/Z$/,"")}function hn(l,e,s,t){return e>=l?{value:e-l}:l>=s*.75&&l<s&&e>=0&&e<=s*.25?{value:s-l+e,rolloverBits:t}:null}function Rn(l){return l===-100?"off_wrist":l===-200?"motion":l===-300?"invalid":l>=0?"valid":"unknown"}function Fs(l,e={},s={}){let t=pt(l),n=Object.fromEntries(Object.entries(t).filter(([_])=>Ss.has(_))),a=Object.fromEntries(Object.entries(t).filter(([_])=>!Ss.has(_)&&!cn.has(_))),i={sdkProfileVersion:s.sdkProfileVersion,parserVersion:oe,messageCounts:t,recognizedMessageCounts:n,unknownMessageCounts:a,invalidValueCounts:{},warnings:[]};e.includeUnknownMessages&&(i.unknownMessages=Object.fromEntries(Object.keys(a).map(_=>[_,l[_]??[]])));let o=[],u=[],p=[],T=[],r=[],c=yn(l),h=_=>{let b=_.offsetSeconds??le(c,_.timestamp);if(_.offsetSeconds=b,_.localTimestamp??=ft(_.timestamp,b),o.push(_),r.push(_.timestamp),_.status!=="valid"){let A=`${_.metric}:${_.status}`;i.invalidValueCounts[A]=(i.invalidValueCounts[A]??0)+1}},C=new Map;(l.monitoringMesgs??[]).forEach((_,b)=>{let A=U(_),I=H(A.timestamp);if(!I){i.warnings.push({code:"GARMIN_HEALTH_NO_TIMESTAMP",message:"Monitoring message has no valid timestamp",source:F("monitoringMesgs",b)});return}r.push(I);let R=G(A.heartRate);R!==void 0&&h({metric:"heart_rate_bpm",timestamp:I,localTimestamp:Cs(A.localTimestamp),value:R,unit:"bpm",status:"valid",aggregation:"instant",source:F("monitoringMesgs",b,"heartRate")});let L=G(A.temperature);L!==void 0&&h({metric:"temperature_c",timestamp:I,localTimestamp:Cs(A.localTimestamp),value:L,unit:"degC",status:"valid",aggregation:"mean",source:F("monitoringMesgs",b,"temperature")});for(let g of bn){let S=G(A[g.field]);if(S===void 0)continue;let V=[A.deviceIndex??"device",A.activityType??"activity",g.field].join(":"),w=C.get(V);if(w&&I>w.timestamp){let Y=hn(w.value,S,g.rolloverModulus,g.rolloverBits);if(Y){Y.rolloverBits&&i.warnings.push({code:"GARMIN_HEALTH_ACCUMULATOR_ROLLOVER",message:`${g.field} accumulator rolled over at ${Y.rolloverBits} bits`,source:F("monitoringMesgs",b,g.field)});let z=le(c,w.timestamp);u.push({metric:g.metric,startTime:w.timestamp,endTime:I,localStartTime:ft(w.timestamp,z),offsetSeconds:z,value:Y.value,unit:g.unit,status:"valid",activityType:A.activityType===void 0?void 0:String(A.activityType),intensity:A.activityLevel===void 0?void 0:String(A.activityLevel),source:F("monitoringMesgs",b,g.field),attributes:e.health?.retainCumulativeValues===!1?void 0:{rawCumulativeValue:S}})}else i.warnings.push({code:"GARMIN_HEALTH_ACCUMULATOR_RESET",message:`${g.field} accumulator decreased; a new accumulation window was started`,source:F("monitoringMesgs",b,g.field)})}C.set(V,{timestamp:I,value:S})}}),(l.monitoringHrDataMesgs??[]).forEach((_,b)=>{let A=U(_),I=H(A.timestamp);if(!I)return;[{field:"currentDayRestingHeartRate",metric:"resting_heart_rate_bpm"},{field:"restingHeartRate",metric:"resting_heart_rate_7_day_bpm"}].forEach(({field:L,metric:g})=>{let S=G(A[L]);S!==void 0&&h({metric:g,timestamp:I,value:S,unit:"bpm",status:"valid",aggregation:"latest",source:F("monitoringHrDataMesgs",b,L)})})}),(l.stressLevelMesgs??[]).forEach((_,b)=>{let A=U(_),I=H(A.stressLevelTime),R=G(A.stressLevelValue);!I||R===void 0||h({metric:"stress_level",timestamp:I,value:R>=1&&R<=100?R:void 0,unit:"score",status:R>=1&&R<=100?"valid":"invalid",aggregation:"instant",source:F("stressLevelMesgs",b,"stressLevelValue"),attributes:{rawValue:R}})}),(l.respirationRateMesgs??[]).forEach((_,b)=>{let A=U(_),I=H(A.timestamp),R=G(A.respirationRate);if(!I||R===void 0)return;let L=Rn(R);h({metric:"respiration_rate_bpm",timestamp:I,value:L==="valid"?R:void 0,unit:"breaths/min",status:L,aggregation:"instant",source:F("respirationRateMesgs",b,"respirationRate"),attributes:L==="valid"?void 0:{rawValue:R}})}),(l.spo2DataMesgs??[]).forEach((_,b)=>{let A=U(_),I=H(A.timestamp),R=G(A.readingSpo2);if(!I||R===void 0)return;let L=G(A.readingConfidence);h({metric:"spo2_percent",timestamp:I,value:R,unit:"percent",status:L!==void 0&&L<=0?"low_confidence":"valid",quality:L,aggregation:"instant",source:F("spo2DataMesgs",b,"readingSpo2"),attributes:{measurementMode:A.mode===void 0?null:String(A.mode)}})}),(l.hrvValueMesgs??[]).forEach((_,b)=>{let A=U(_),I=H(A.timestamp),R=G(A.value);!I||R===void 0||h({metric:"hrv_rmssd_ms",timestamp:I,value:R,unit:"ms",status:"valid",aggregation:"mean",source:F("hrvValueMesgs",b,"value"),attributes:{windowSeconds:300}})}),(l.hrvStatusSummaryMesgs??[]).forEach((_,b)=>{let A=U(_),I=H(A.timestamp);p.push({summaryType:"hrv_status",externalId:`fit:hrv-status:${I?.toISOString()??b}`,startTime:I,metrics:Es(A,["weeklyAverage","lastNightAverage","lastNight5MinHigh","baselineLowUpper","baselineBalancedLower","baselineBalancedUpper","status"]),source:F("hrvStatusSummaryMesgs",b)}),I&&r.push(I)}),(l.monitoringInfoMesgs??[]).forEach((_,b)=>{let A=U(_),I=H(A.timestamp);p.push({summaryType:"device",externalId:`fit:monitoring-info:${I?.toISOString()??b}`,startTime:I,offsetSeconds:I?le(c,I):void 0,metrics:Es(A,["restingMetabolicRate","activityType","cyclesToDistance","cyclesToCalories"]),source:F("monitoringInfoMesgs",b)}),I&&r.push(I)}),(l.skinTempOvernightMesgs??[]).forEach((_,b)=>{let A=U(_),I=H(A.timestamp);if(!I)return;[{field:"averageDeviation",metric:"skin_temperature_deviation_c"},{field:"average7DayDeviation",metric:"skin_temperature_7_day_deviation_c"},{field:"nightlyValue",metric:"skin_temperature_nightly_c"}].forEach(({field:L,metric:g})=>{let S=G(A[L]);S!==void 0&&h({metric:g,timestamp:I,localTimestamp:Cs(A.localTimestamp),value:S,unit:"degC",status:"valid",aggregation:"mean",source:F("skinTempOvernightMesgs",b,L)})})});let E=(l.sleepLevelMesgs??[]).map((_,b)=>({message:U(_),messageIndex:b,timestamp:H(U(_).timestamp)})).filter(_=>_.timestamp!==void 0).sort((_,b)=>_.timestamp.valueOf()-b.timestamp.valueOf());if(E.length>=2){let _=U(l.sleepAssessmentMesgs?.[0]),b=[];for(let L=0;L<E.length-1;L+=1){let g=E[L],S=E[L+1];if(S.timestamp<=g.timestamp)continue;let V={segmentType:In(g.message.sleepLevel),startTime:g.timestamp,endTime:S.timestamp,status:"valid",source:F("sleepLevelMesgs",g.messageIndex,"sleepLevel")},w=b.at(-1);w&&w.segmentType===V.segmentType&&w.endTime.valueOf()===V.startTime.valueOf()?w.endTime=V.endTime:b.push(V)}let A=E[0].timestamp,I=E.at(-1).timestamp;r.push(A,I);let R=le(c,I);T.push({sessionType:"sleep",externalId:`fit:sleep:${A.toISOString()}:${I.toISOString()}`,startTime:A,endTime:I,startOffsetSeconds:le(c,A),endOffsetSeconds:R,calendarDate:ut(I,R),segments:b,metrics:Es(_,["combinedAwakeScore","awakeTimeScore","awakeningsCountScore","deepSleepScore","sleepDurationScore","lightSleepScore","overallSleepScore","sleepQualityScore","sleepRecoveryScore","remSleepScore","sleepRestlessnessScore","awakeningsCount","interruptionsScore","averageStressDuringSleep"]),source:F("sleepLevelMesgs",E[0].messageIndex),attributes:{calendarDateStrategy:R===void 0?"sleep_end_utc_fallback_date":"sleep_end_local_date"}})}else E.length>0&&i.warnings.push({code:"GARMIN_HEALTH_SLEEP_BOUNDARY_INCOMPLETE",message:"Sleep level data does not contain enough boundaries",source:F("sleepLevelMesgs",E[0].messageIndex)});return(l.napEventMesgs??[]).forEach((_,b)=>{let A=U(_),I=H(A.startTime),R=H(A.endTime),L=A.isDeleted===!0;if(!I||!R||R<I||!L&&R.valueOf()===I.valueOf())return;let g=G(A.startTimezoneOffset),S=G(A.endTimezoneOffset);r.push(I,R),T.push({sessionType:"nap",externalId:`fit:nap:${A.messageIndex??b}:${I.toISOString()}`,startTime:I,endTime:R,startOffsetSeconds:g,endOffsetSeconds:S,calendarDate:ut(R,S??g),deleted:L,segments:[],metrics:{},source:F("napEventMesgs",b),attributes:{source:A.source===void 0?null:String(A.source),feedback:A.feedback===void 0?null:String(A.feedback),updateTimestamp:H(A.updateTimestamp)?.toISOString()??null}})}),(l.hsaBodyBatteryDataMesgs??[]).forEach((_,b)=>{let A=U(_),I=H(A.timestamp),R=G(A.processingInterval)??0;if(!I||R<=0)return;[{field:"level",metric:"body_battery_level",unit:"score"},{field:"charged",metric:"body_battery_charged",unit:"score"},{field:"uncharged",metric:"body_battery_drained",unit:"score"}].forEach(({field:g,metric:S,unit:V})=>{(Array.isArray(A[g])?A[g]:[]).forEach((Y,z)=>{let q=G(Y);q!==void 0&&h({metric:S,timestamp:new Date(I.valueOf()+R*z*1e3),value:q===-16?void 0:q,unit:V,status:q===-16?"invalid":"valid",aggregation:"instant",source:F("hsaBodyBatteryDataMesgs",b,g),attributes:{sequenceIndex:z,intervalSeconds:R}})})})}),o.sort((_,b)=>_.timestamp.valueOf()-b.timestamp.valueOf()),u.sort((_,b)=>_.startTime.valueOf()-b.startTime.valueOf()),T.sort((_,b)=>_.startTime.valueOf()-b.startTime.valueOf()),r.sort((_,b)=>_.valueOf()-b.valueOf()),{schemaVersion:"1",observedStart:r[0],observedEnd:r.at(-1),timezone:{strategy:c.length>0?"timestamp_correlation":"unknown",offsets:c},points:o,intervals:e.health?.reconstructIntervals===!1?[]:u,summaries:p,sessions:T,diagnostics:i}}var ce=class extends J{constructor(){super(...arguments);this.name="HealthStructurePlugin";this.priority=20}structureData(s,t){let n=t.userData?.fitDocumentOptions??{},a=Os(s);return{healthDocument:a.includes("health")?Fs(s,n,{sdkProfileVersion:t.metadata.get("fit-sdk-profile-version")}):void 0,fitDocumentMetadata:{detectedKinds:a,messageCounts:pt(s)}}}};var be=(m=>(m[m.GENERIC=0]="GENERIC",m[m.RUNNING=1]="RUNNING",m[m.CYCLING=2]="CYCLING",m[m.TRANSITION=3]="TRANSITION",m[m.FITNESS_EQUIPMENT=4]="FITNESS_EQUIPMENT",m[m.SWIMMING=5]="SWIMMING",m[m.BASKETBALL=6]="BASKETBALL",m[m.SOCCER=7]="SOCCER",m[m.TENNIS=8]="TENNIS",m[m.AMERICAN_FOOTBALL=9]="AMERICAN_FOOTBALL",m[m.TRAINING=10]="TRAINING",m[m.WALKING=11]="WALKING",m[m.CROSS_COUNTRY_SKIING=12]="CROSS_COUNTRY_SKIING",m[m.ALPINE_SKIING=13]="ALPINE_SKIING",m[m.SNOWBOARDING=14]="SNOWBOARDING",m[m.ROWING=15]="ROWING",m[m.MOUNTAINEERING=16]="MOUNTAINEERING",m[m.HIKING=17]="HIKING",m[m.MULTISPORT=18]="MULTISPORT",m[m.PADDLING=19]="PADDLING",m[m.FLYING=20]="FLYING",m[m.E_BIKING=21]="E_BIKING",m[m.MOTORCYCLING=22]="MOTORCYCLING",m[m.BOATING=23]="BOATING",m[m.DRIVING=24]="DRIVING",m[m.GOLF=25]="GOLF",m[m.HANG_GLIDING=26]="HANG_GLIDING",m[m.HORSEBACK_RIDING=27]="HORSEBACK_RIDING",m[m.HUNTING=28]="HUNTING",m[m.FISHING=29]="FISHING",m[m.INLINE_SKATING=30]="INLINE_SKATING",m[m.ROCK_CLIMBING=31]="ROCK_CLIMBING",m[m.SAILING=32]="SAILING",m[m.ICE_SKATING=33]="ICE_SKATING",m[m.SKY_DIVING=34]="SKY_DIVING",m[m.SNOWSHOEING=35]="SNOWSHOEING",m[m.SNOWMOBILING=36]="SNOWMOBILING",m[m.STAND_UP_PADDLEBOARDING=37]="STAND_UP_PADDLEBOARDING",m[m.SURFING=38]="SURFING",m[m.WAKEBOARDING=39]="WAKEBOARDING",m[m.WATER_SKIING=40]="WATER_SKIING",m[m.KAYAKING=41]="KAYAKING",m[m.RAFTING=42]="RAFTING",m[m.WINDSURFING=43]="WINDSURFING",m[m.KITESURFING=44]="KITESURFING",m[m.TACTICAL=45]="TACTICAL",m[m.JUMPMASTER=46]="JUMPMASTER",m[m.BOXING=47]="BOXING",m[m.FLOOR_CLIMBING=48]="FLOOR_CLIMBING",m[m.BASEBALL=49]="BASEBALL",m[m.DIVING=53]="DIVING",m[m.HIIT=62]="HIIT",m[m.RACKET=64]="RACKET",m[m.WHEELCHAIR_PUSH_WALK=65]="WHEELCHAIR_PUSH_WALK",m[m.WHEELCHAIR_PUSH_RUN=66]="WHEELCHAIR_PUSH_RUN",m[m.MEDITATION=67]="MEDITATION",m[m.DISC_GOLF=69]="DISC_GOLF",m[m.CRICKET=71]="CRICKET",m[m.RUGBY=72]="RUGBY",m[m.HOCKEY=73]="HOCKEY",m[m.LACROSSE=74]="LACROSSE",m[m.VOLLEYBALL=75]="VOLLEYBALL",m[m.WATER_TUBING=76]="WATER_TUBING",m[m.WAKESURFING=77]="WAKESURFING",m[m.MIXED_MARTIAL_ARTS=80]="MIXED_MARTIAL_ARTS",m[m.SNORKELING=82]="SNORKELING",m[m.DANCE=83]="DANCE",m[m.JUMP_ROPE=84]="JUMP_ROPE",m[m.ALL=254]="ALL",m))(be||{});var Ie=(f=>(f[f.GENERIC=0]="GENERIC",f[f.TREADMILL=1]="TREADMILL",f[f.STREET=2]="STREET",f[f.TRAIL=3]="TRAIL",f[f.TRACK=4]="TRACK",f[f.SPIN=5]="SPIN",f[f.INDOOR_CYCLING=6]="INDOOR_CYCLING",f[f.ROAD=7]="ROAD",f[f.MOUNTAIN=8]="MOUNTAIN",f[f.DOWNHILL=9]="DOWNHILL",f[f.RECUMBENT=10]="RECUMBENT",f[f.CYCLOCROSS=11]="CYCLOCROSS",f[f.HAND_CYCLING=12]="HAND_CYCLING",f[f.TRACK_CYCLING=13]="TRACK_CYCLING",f[f.INDOOR_ROWING=14]="INDOOR_ROWING",f[f.ELLIPTICAL=15]="ELLIPTICAL",f[f.STAIR_CLIMBING=16]="STAIR_CLIMBING",f[f.LAP_SWIMMING=17]="LAP_SWIMMING",f[f.OPEN_WATER=18]="OPEN_WATER",f[f.FLEXIBILITY_TRAINING=19]="FLEXIBILITY_TRAINING",f[f.STRENGTH_TRAINING=20]="STRENGTH_TRAINING",f[f.WARM_UP=21]="WARM_UP",f[f.MATCH=22]="MATCH",f[f.EXERCISE=23]="EXERCISE",f[f.CHALLENGE=24]="CHALLENGE",f[f.INDOOR_SKIING=25]="INDOOR_SKIING",f[f.CARDIO_TRAINING=26]="CARDIO_TRAINING",f[f.INDOOR_WALKING=27]="INDOOR_WALKING",f[f.E_BIKE_FITNESS=28]="E_BIKE_FITNESS",f[f.BMX=29]="BMX",f[f.CASUAL_WALKING=30]="CASUAL_WALKING",f[f.SPEED_WALKING=31]="SPEED_WALKING",f[f.BIKE_TO_RUN_TRANSITION=32]="BIKE_TO_RUN_TRANSITION",f[f.RUN_TO_BIKE_TRANSITION=33]="RUN_TO_BIKE_TRANSITION",f[f.SWIM_TO_BIKE_TRANSITION=34]="SWIM_TO_BIKE_TRANSITION",f[f.ATV=35]="ATV",f[f.MOTOCROSS=36]="MOTOCROSS",f[f.BACKCOUNTRY=37]="BACKCOUNTRY",f[f.RESORT=38]="RESORT",f[f.RC_DRONE=39]="RC_DRONE",f[f.WINGSUIT=40]="WINGSUIT",f[f.WHITEWATER=41]="WHITEWATER",f[f.SKATE_SKIING=42]="SKATE_SKIING",f[f.YOGA=43]="YOGA",f[f.PILATES=44]="PILATES",f[f.INDOOR_RUNNING=45]="INDOOR_RUNNING",f[f.GRAVEL_CYCLING=46]="GRAVEL_CYCLING",f[f.E_BIKE_MOUNTAIN=47]="E_BIKE_MOUNTAIN",f[f.COMMUTING=48]="COMMUTING",f[f.MIXED_SURFACE=49]="MIXED_SURFACE",f[f.NAVIGATE=50]="NAVIGATE",f[f.TRACK_ME=51]="TRACK_ME",f[f.MAP=52]="MAP",f[f.SINGLE_GAS_DIVING=53]="SINGLE_GAS_DIVING",f[f.MULTI_GAS_DIVING=54]="MULTI_GAS_DIVING",f[f.GAUGE_DIVING=55]="GAUGE_DIVING",f[f.APNEA_DIVING=56]="APNEA_DIVING",f[f.APNEA_HUNTING=57]="APNEA_HUNTING",f[f.VIRTUAL_ACTIVITY=58]="VIRTUAL_ACTIVITY",f[f.OBSTACLE=59]="OBSTACLE",f[f.BREATHING=62]="BREATHING",f[f.SAIL_RACE=65]="SAIL_RACE",f[f.ULTRA=67]="ULTRA",f[f.INDOOR_CLIMBING=68]="INDOOR_CLIMBING",f[f.BOULDERING=69]="BOULDERING",f[f.HIIT=70]="HIIT",f[f.AMRAP=73]="AMRAP",f[f.EMOM=74]="EMOM",f[f.TABATA=75]="TABATA",f[f.PICKLEBALL=84]="PICKLEBALL",f[f.PADEL=85]="PADEL",f[f.INDOOR_WHEELCHAIR_WALK=86]="INDOOR_WHEELCHAIR_WALK",f[f.INDOOR_WHEELCHAIR_RUN=87]="INDOOR_WHEELCHAIR_RUN",f[f.INDOOR_HAND_CYCLING=88]="INDOOR_HAND_CYCLING",f[f.SQUASH=94]="SQUASH",f[f.BADMINTON=95]="BADMINTON",f[f.RACQUETBALL=96]="RACQUETBALL",f[f.TABLE_TENNIS=97]="TABLE_TENNIS",f[f.FLY_CANOPY=110]="FLY_CANOPY",f[f.FLY_PARAGLIDE=111]="FLY_PARAGLIDE",f[f.FLY_PARAMOTOR=112]="FLY_PARAMOTOR",f[f.FLY_PRESSURIZED=113]="FLY_PRESSURIZED",f[f.FLY_NAVIGATE=114]="FLY_NAVIGATE",f[f.FLY_TIMER=115]="FLY_TIMER",f[f.FLY_ALTIMETER=116]="FLY_ALTIMETER",f[f.FLY_WX=117]="FLY_WX",f[f.FLY_VFR=118]="FLY_VFR",f[f.FLY_IFR=119]="FLY_IFR",f[f.ALL=254]="ALL",f))(Ie||{});function mt(l,e){if(!e)return;let s=e.replace(/([a-z0-9])([A-Z])/g,"$1_$2").replace(/[^a-zA-Z0-9]+/g,"_").replace(/^_+|_+$/g,"").toUpperCase();for(let t of Object.keys(l)){if(!Number.isNaN(Number(t))||t.toUpperCase()!==s)continue;let n=l[t];return typeof n=="number"?n:void 0}}function Ln(l){let e=l.metadata?.fileName?.trim();if(e)return e;let s=l.metadata?.originType;return s?`${s.toLowerCase()}-course`:"course"}function dt(l){let e=l.activities?.[0],t=[...(l.activities?.flatMap(n=>n.laps??[])??[]).flatMap(n=>n.records??[]),...l.routes?.flatMap(n=>n.records??[])??[],...l.points??[]].filter(n=>n.timestamp!=null&&n.positionLat!=null&&n.positionLong!=null).sort((n,a)=>new Date(n.timestamp).getTime()-new Date(a.timestamp).getTime()).map(n=>({timestamp:n.timestamp,latitude:n.positionLat,longitude:n.positionLong,distance:n.distance,altitude:n.enhancedAltitude??n.altitude,speed:n.enhancedSpeed??n.speed}));if(t.length===0)throw new Error("Cannot build a FIT course without timestamped coordinates");return{name:Ln(l),sport:mt(be,e?.sport)??2,subSport:mt(Ie,e?.subSport)??0,records:t,timeCreated:t[0].timestamp}}function rt(){return process.env.TRACKSWAP_FIT_DEBUG==="1"||process.env.TRACKSWAP_DEBUG==="1"}function D(...l){rt()}function te(...l){rt()}var Ce=class{constructor(){this.stage="parse"}async process(e){let s=Date.now();if(!e.rawData)throw new Error("FIT data cannot be empty");try{let t=await this.parseWithFitSDK(e.rawData,e);return e.rawMessages=t,D("\u{1F389} FIT parsing raw messages:",t),e.performance.parseTime=Date.now()-s,D(`\u{1F527} FIT parsing completed, contains message types: ${Object.keys(t).join(", ")}`),e}catch(t){throw new Error(`FIT parsing failed: ${t.message}`)}}async parseWithFitSDK(e,s){let{Decoder:t,Profile:n,Stream:a}=await Promise.resolve().then(()=>(Xs(),Xt)),i=[n.version?.major,n.version?.minor,n.version?.patch].filter(r=>r!==void 0);i.length>0&&s.metadata.set("fit-sdk-profile-version",i.join("."));let o=a.fromBuffer(e);if(!t.isFIT(o))throw new Error("Not a valid FIT file");let u=new t(o),{messages:p,errors:T}=u.read();return T&&T.length>0&&te("FIT parsing warnings:",T),p}};function jn(l){let e={...l};return e.position_lat!=null&&e.positionLat==null&&(e.positionLat=e.position_lat),e.position_long!=null&&e.positionLong==null&&(e.positionLong=e.position_long),e}var Ee=class{constructor(e){this.getConverters=e;this.stage="extract"}async process(e){let s=Date.now();if(!e.rawMessages)throw new Error("Raw messages cannot be empty");let t={};for(let[n,a]of Object.entries(e.rawMessages)){if(!Array.isArray(a)||a.length===0){t[n]=a;continue}let i=this.getConverters(n);if(i.length===0)t[n]=n==="recordMesgs"?a.map(o=>jn(o)):a,D(`\u{1F4CB} Message type "${n}" has no converter, using raw data`);else{let o=i[0];try{let u=o.convertMessages(a,e);t[n]=u,D(`\u2705 Message type "${n}" using converter ${o.name}`)}catch(u){e.errors.push(u),t[n]=a,te(`FIT converter "${o.name}" failed for ${n}; raw messages were retained`,u)}}}return e.rawMessages=t,e.performance.extractTime=Date.now()-s,e}},Se=class{constructor(e){this.getStructurePlugins=e;this.stage="structure"}async process(e){let s=Date.now();if(!e.rawMessages)throw new Error("Message data cannot be empty");let t={},n=this.getStructurePlugins();for(let a of n)try{let i=a.structureData(e.rawMessages,e);t={...t,...i},D(`\u{1F527} Structure plugin ${a.name} processing completed`)}catch(i){throw e.errors.push(i),new Error(`FIT structure plugin "${a.name}" failed: ${i.message}`)}return e.result=t,e.performance.structureTime=Date.now()-s,e}},Oe=class{constructor(){this.stage="complete"}async process(e){e.performance.endTime=Date.now();let s=e.performance.endTime-e.performance.startTime;return e.metadata.set("performance",{totalTime:s,parseTime:e.performance.parseTime,extractTime:e.performance.extractTime,structureTime:e.performance.structureTime}),e.stats&&(e.stats.endTime=Date.now(),e.rawMessages&&(e.stats.processedTokens=this.countTotalMessages(e.rawMessages))),D(`\u2705 FIT processing completed, total time: ${s}ms`),e}countTotalMessages(e){let s=0;return Object.values(e).forEach(t=>{Array.isArray(t)&&(s+=t.length)}),s}};var M=k(require("dayjs"),1);var Fe=class extends J{constructor(){super(...arguments);this.name="SessionStructurePlugin";this.priority=10}structureData(s,t){let{sessionMesgs:n,lapMesgs:a,recordMesgs:i,lengthMesgs:o}=s;if(!n?.length)return te("No structured session found, data structure is incomplete"),{};let u=n.map(r=>{let c=(0,M.default)(r.startTime).valueOf(),h=c+(r.totalElapsedTime??0)*1e3,C=(0,M.default)(r.timestamp).valueOf(),E=Math.max(Number.isFinite(h)?h:Number.NEGATIVE_INFINITY,Number.isFinite(C)?C:Number.NEGATIVE_INFINITY),_=r.firstLapIndex,b=r.numLaps,A=typeof _=="number"&&typeof b=="number"?(a??[]).filter(L=>{let g=L.messageIndex;return typeof g=="number"&&g>=_&&g<_+b}):[],I=(A.length>0?A:(a??[]).filter(L=>{let g=(0,M.default)(L.startTime).valueOf();return Number.isFinite(g)&&g>=c&&g<=E+2e3})).sort((L,g)=>(0,M.default)(L.startTime).valueOf()-(0,M.default)(g.startTime).valueOf()),R=I.map((L,g)=>{let S=(0,M.default)(L.startTime).valueOf(),V=I[g+1]?.startTime,w=V==null?Number.NaN:(0,M.default)(V).valueOf(),Y=S+(L.totalElapsedTime??0)*1e3,z=Number.isFinite(w)&&w>S,q=z?w:Math.max(Y,E),fn=i?.filter(gs=>{let se=(0,M.default)(gs.timestamp).valueOf();return se>=S&&(z?se<q:se<=q)})||[],Ls=L.firstLengthIndex??void 0,at=L.numLengths??void 0,it=[];if(Ls!==void 0&&at!==void 0){let gs=Ls+at;it=o?.filter(se=>se.messageIndex>=Ls&&se.messageIndex<gs)||[]}return{...L,recordMesgs:fn,lengthMesgs:it,messageIndex:L.messageIndex!==void 0?L.messageIndex:0}});return{...r,lapMesgs:R,messageIndex:r.messageIndex!==void 0?r.messageIndex:0}}),p=new Set;for(let r of u)for(let c of r.lapMesgs??[])for(let h of c.recordMesgs??[])h?.timestamp!=null&&p.add((0,M.default)(h.timestamp).valueOf());let T=0;for(let r of i??[]){if(r?.timestamp==null)continue;let c=(0,M.default)(r.timestamp).valueOf();p.has(c)||T++}return T>0&&(t.metadata.set("fit-unassigned-record-count",T),te(`SessionStructurePlugin: ${T} record(s) did not fall into any lap time window`)),{sessionMesgs:u}}},De=class extends J{constructor(){super(...arguments);this.name="CourseStructurePlugin";this.priority=10}structureData(s,t){let{courseMesgs:n,lapMesgs:a,recordMesgs:i}=s;if(!n?.length)return{};let o=2e3;return{courseMesgs:n.map(p=>{let T=a?.map(r=>{let c=(0,M.default)(r.startTime).valueOf(),h=(0,M.default)(r.timestamp).valueOf(),C=i?.filter(E=>{let _=(0,M.default)(E.timestamp).valueOf();return _>=c-o&&_<=h+o})||[];return{...r,recordMesgs:C}})||[];return{...p,lapMesgs:T}})}}},He=class extends J{constructor(){super(...arguments);this.name="FileHeaderPlugin";this.priority=1}structureData(s,t){let{fileIdMesgs:n,fileCreatorMesgs:a,deviceInfoMesgs:i}=s;if(n?.length&&n[0]){let o=n[0];t.fileHeader={type:o.type,manufacturer:o.manufacturer,product:o.product}}return{fileIdMesgs:n,fileCreatorMesgs:a,deviceInfoMesgs:i}}};var we=class{constructor(){this.converterPlugins=new Map;this.registeredPlugins=new Set;this.structurePlugins=[];this.middlewarePlugins=[];this.processors=[];this.initialized=!1;this.defaultPluginsRegistered=!1;this.initializePipeline()}initializePipeline(){this.processors=[new Ce,new Ee(e=>this.getConverters(e)),new Se(()=>this.structurePlugins),new Oe],D("\u{1F527} FIT core pipeline processors initialized (fixed and not modifiable)")}async registerDefaultPlugins(){if(this.defaultPluginsRegistered)return;let e=[new He,new Fe,new De,new ce];for(let s of e)this.addStructurePlugin(s),this.registeredPlugins.add(s.name);this.defaultPluginsRegistered=!0,D("\u2705 Default FIT structure plugins auto-registered (FileHeader, Session, Course, etc.)")}addConverterForMessageType(e,s){this.converterPlugins.has(e)||this.converterPlugins.set(e,[]);let t=this.converterPlugins.get(e);t.push(s),t.sort((n,a)=>(n.priority||100)-(a.priority||100))}addStructurePlugin(e){this.structurePlugins.push(e),this.structurePlugins.sort((s,t)=>(s.priority||100)-(t.priority||100))}async registerMessageConverter(e){if(this.registeredPlugins.has(e.name))throw new Error(`Message converter plugin ${e.name} already exists`);e.supportedMessageTypes.forEach(t=>{this.addConverterForMessageType(t,e)}),this.registeredPlugins.add(e.name);let s=e.priority!==void 0?` (priority: ${e.priority})`:"";D(`\u{1F4E6} Registered FIT message converter: ${e.name}${s}, supported message types: ${e.supportedMessageTypes.join(", ")}`),e.supportedMessageTypes.forEach(t=>{let a=(this.converterPlugins.get(t)||[]).map(i=>`${i.name}(${i.priority||100})`);D(` \u{1F4CB} Message type "${t}" converter priority: ${a.join(" > ")}`)})}async registerStructurePlugin(e){if(this.registeredPlugins.has(e.name))throw new Error(`Structure plugin ${e.name} already exists`);this.addStructurePlugin(e),this.registeredPlugins.add(e.name);let s=e.priority!==void 0?` (priority: ${e.priority})`:"";D(`\u{1F3D7}\uFE0F Registered FIT structure plugin: ${e.name}${s}`)}async registerMiddleware(e){let s=this.middlewarePlugins.findIndex(n=>n.name===e.name);s!==-1?(this.middlewarePlugins[s]=e,D(`\u{1F504} Updated FIT middleware: ${e.name}`)):(this.middlewarePlugins.push(e),this.middlewarePlugins.sort((n,a)=>(n.priority||100)-(a.priority||100)),D(`\u{1F50C} Registered FIT middleware: ${e.name}`));let t=[];e.onParse&&t.push("onParse"),e.onExtractMessages&&t.push("onExtractMessages"),e.onStructure&&t.push("onStructure"),e.onComplete&&t.push("onComplete"),e.onError&&t.push("onError"),t.length>0&&D(` \u{1F3A3} Supported hooks: ${t.join(", ")}`)}getConverter(e){let s=this.converterPlugins.get(e);return s&&s.length>0?s[0]:void 0}getConverters(e){return this.converterPlugins.get(e)||[]}unregisterPlugin(e){if(!this.registeredPlugins.has(e))return!1;for(let[n,a]of this.converterPlugins){let i=a.findIndex(o=>o.name===e);i!==-1&&(a.splice(i,1),a.length===0&&this.converterPlugins.delete(n))}let s=this.structurePlugins.findIndex(n=>n.name===e);s!==-1&&this.structurePlugins.splice(s,1);let t=this.middlewarePlugins.findIndex(n=>n.name===e);return t!==-1&&this.middlewarePlugins.splice(t,1),this.registeredPlugins.delete(e),D(`\u{1F5D1}\uFE0F Removed FIT plugin: ${e}`),!0}async initialize(){if(this.initialized)return;await this.registerDefaultPlugins();let e=this.createContext(),s=[...new Map([...Array.from(this.converterPlugins.values()).flat(),...this.structurePlugins,...this.middlewarePlugins].map(t=>[t.name,t])).values()];for(let t of s)await t.initialize?.(e);this.initialized=!0}async destroy(){if(!this.initialized)return;let e=this.createContext(),s=[...new Map([...Array.from(this.converterPlugins.values()).flat(),...this.structurePlugins,...this.middlewarePlugins].map(t=>[t.name,t])).values()];for(let t of s)await t.destroy?.(e);this.initialized=!1}createContext(){return{metadata:new Map,errors:[],warnings:[],stats:{startTime:Date.now(),processedTokens:0,convertedElements:0},performance:{startTime:Date.now()}}}async executeMiddlewareHook(e,s,t){let n=s;for(let a of this.middlewarePlugins){let i=a[e];if(i)try{n=await i.call(a,n,t)||n}catch(o){t.errors.push(o),await a.onError?.(o,t)}}return n}async parseByBuffer(e,s={}){await this.initialize();let t=this.createContext();t.rawData=e,t.userData=s.userData,t.metadata.set("decoder",this);try{for(let n of this.processors)try{switch(n.stage==="parse"&&t.rawData&&(t.rawData=await this.executeMiddlewareHook("onParse",t.rawData,t)),t=await n.process(t),n.stage){case"parse":break;case"extract":t.rawMessages&&(t.rawMessages=await this.executeMiddlewareHook("onExtractMessages",t.rawMessages,t));break;case"structure":t.result&&(t.result=await this.executeMiddlewareHook("onStructure",t.result,t));break;case"complete":t.result&&(t.result=await this.executeMiddlewareHook("onComplete",t.result,t));break}}catch(a){t.errors.push(a);for(let i of this.middlewarePlugins)await i.onError?.(a,t);throw new Error(`FIT pipeline stage "${n.stage}" failed: ${a.message}`)}return D("\u{1F389} FIT parsing completed",t.result),t.result}catch(n){throw n}}};var Zn={file:{course:6,device:1,settings:2,sport:3,activity:4,workout:5,schedules:7,weight:9,totals:10,goals:11,blood_pressure:14,monitoring_a:15,activity_summary:20,monitoring_daily:28,monitoring_b:32,segment_list:35,exd_configuration:40,invalid:0},sport:{generic:0,running:1,cycling:2,transition:3,fitness_equipment:4,swimming:5,basketball:6,soccer:7,tennis:8,american_football:9,training:10,walking:11,cross_country_skiing:12,alpine_skiing:13,snowboarding:14,rowing:15,mountaineering:16,hiking:17,multisport:18,paddling:19,invalid:254},event:{timer:0,workout:3,workout_step:4,power_down:5,power_up:6,off_course:7,session:8,lap:9,course_point:10,battery:11,virtual_partner_pace:12,hr_high_alert:13,hr_low_alert:14,speed_high_alert:15,speed_low_alert:16,cad_high_alert:17,cad_low_alert:18,power_high_alert:19,power_low_alert:20,recovery_hr:21,battery_low:22,time_duration_alert:23,distance_duration_alert:24,calorie_duration_alert:25,activity:26,fitness_equipment:27,length:28,user_marker:32,sport_point:33,calibration:36,front_gear_change:42,rear_gear_change:43,rider_position_change:44,elev_high_alert:45,elev_low_alert:46,comm_timeout:47,invalid:255},event_type:{start:0,stop:1,consecutive_depreciated:2,marker:3,stop_all:4,begin_depreciated:5,end_depreciated:6,end_all_depreciated:7,stop_disable:8,stop_disable_all:9,invalid:255},course_point:{generic:0,summit:1,valley:2,water:3,food:4,danger:5,left:6,right:7,straight:8,first_aid:9,fourth_category:10,third_category:11,second_category:12,first_category:13,hors_category:14,sprint:15,left_fork:16,right_fork:17,middle_fork:18,slight_left:19,sharp_left:20,slight_right:21,sharp_right:22,u_turn:23,segment_start:24,segment_end:25,invalid:255}},ee=l=>{let e=Zn[l];return{size:1,baseType:0,mapValue:s=>typeof s=="string"?e[s]??255:s,setValue:function(s,t){this.setUint8(s,t)}}},Ys={enum_file:ee("file"),enum_activity:ee("sport"),enum_sport:ee("sport"),enum_sub_sport:ee("sport"),enum_event:ee("event"),enum_event_type:ee("event_type"),enum_course_point:ee("course_point"),uint8:{size:1,baseType:2,setValue:DataView.prototype.setUint8},sint8:{size:1,baseType:1,setValue:DataView.prototype.setInt8},uint16:{size:2,baseType:132,setValue:DataView.prototype.setUint16},sint16:{size:2,baseType:131,setValue:DataView.prototype.setInt16},uint32:{size:4,baseType:134,setValue:DataView.prototype.setUint32},sint32:{size:4,baseType:133,setValue:DataView.prototype.setInt32},string:{size:0,baseType:7,mapValue:l=>Array.from(zt(l)),setValue:xn},distance:{size:4,baseType:134,setValue:DataView.prototype.setUint32,mapValue:l=>Math.round(l*1e3)},speed:{size:2,baseType:132,setValue:DataView.prototype.setUint16,mapValue:l=>Math.round(l*100)},altitude:{size:2,baseType:132,setValue:DataView.prototype.setUint16,mapValue:l=>Math.round((l+500)*5)},seconds:{size:4,baseType:134,setValue:DataView.prototype.setUint32,mapValue:l=>Math.round(l*1e3)},date_time:{size:4,baseType:134,setValue:DataView.prototype.setUint32,mapValue:l=>{let e;return l instanceof Date?(e=Math.floor(l.getTime()/1e3),e-631065600):typeof l=="string"?(e=Math.floor(new Date(l).getTime()/1e3),e-631065600):l<631065600?Math.floor(l):(l>9999999999?e=Math.floor(l/1e3):e=Math.floor(l),e-631065600)}},semicircles:{size:4,baseType:133,setValue:DataView.prototype.setInt32,mapValue:l=>Math.round(l/180*2147483648)}};function Yt(l){return Array.from(zt(l)).length+1}function*zt(l){for(let e of qn(l))e<128?yield e:e<2048?(yield 192|e>>6,yield 128|e&63):e<65536?(yield 224|e>>12,yield 128|e>>6&63,yield 128|e&63):(yield 240|e>>18,yield 128|e>>12&63,yield 128|e>>6&63,yield 128|e&63);yield 0}function*qn(l){for(let e=0;e<l.length;){let s=l.codePointAt(e);if(s===void 0)break;yield s,e+=s>65535?2:1}}function xn(l,e){for(let s=0;s<e.length;s++)this.setUint8(l+s,e[s])}var sa={file_id:{mesgNum:0,fieldDefns:[{name:"type",number:0,type:"enum_file"},{name:"time_created",number:4,type:"date_time"}]},session:{mesgNum:18,fieldDefns:[{name:"message_index",number:254,type:"uint16"},{name:"timestamp",number:253,type:"date_time"},{name:"start_time",number:2,type:"date_time"},{name:"total_elapsed_time",number:7,type:"seconds"},{name:"total_timer_time",number:8,type:"seconds"},{name:"start_position_lat",number:3,type:"semicircles"},{name:"start_position_long",number:4,type:"semicircles"},{name:"total_distance",number:9,type:"distance"},{name:"total_ascent",number:21,type:"uint16"},{name:"total_descent",number:22,type:"uint16"},{name:"sport",number:5,type:"enum_sport"},{name:"sub_sport",number:6,type:"enum_sub_sport"},{name:"first_lap_index",number:25,type:"uint16"},{name:"num_laps",number:26,type:"uint16"}]},lap:{mesgNum:19,fieldDefns:[{name:"message_index",number:254,type:"uint16"},{name:"timestamp",number:253,type:"date_time"},{name:"start_time",number:2,type:"date_time"},{name:"start_position_lat",number:3,type:"semicircles"},{name:"start_position_long",number:4,type:"semicircles"},{name:"end_position_lat",number:5,type:"semicircles"},{name:"end_position_long",number:6,type:"semicircles"},{name:"total_elapsed_time",number:7,type:"seconds"},{name:"total_timer_time",number:8,type:"seconds"},{name:"total_distance",number:9,type:"distance"},{name:"total_ascent",number:21,type:"uint16"},{name:"total_descent",number:22,type:"uint16"}]},record:{mesgNum:20,fieldDefns:[{name:"timestamp",number:253,type:"date_time"},{name:"position_lat",number:0,type:"semicircles"},{name:"position_long",number:1,type:"semicircles"},{name:"altitude",number:2,type:"altitude"},{name:"distance",number:5,type:"distance"},{name:"heart_rate",number:3,type:"uint8"},{name:"cadence",number:4,type:"uint8"},{name:"speed",number:6,type:"speed"},{name:"power",number:7,type:"uint16"}]},event:{mesgNum:21,fieldDefns:[{name:"timestamp",number:253,type:"date_time"},{name:"event",number:0,type:"enum_event"},{name:"event_type",number:1,type:"enum_event_type"},{name:"event_group",number:4,type:"uint8"}]},course:{mesgNum:31,fieldDefns:[{name:"name",number:5,type:"string"},{name:"sport",number:4,type:"enum_sport"},{name:"sub_sport",number:7,type:"enum_sub_sport"}]},activity:{mesgNum:34,fieldDefns:[{name:"timestamp",number:253,type:"date_time"},{name:"total_timer_time",number:0,type:"seconds"},{name:"num_sessions",number:1,type:"uint16"},{name:"type",number:2,type:"enum_activity"},{name:"event",number:3,type:"enum_event"},{name:"event_type",number:4,type:"enum_event_type"},{name:"local_timestamp",number:5,type:"date_time"},{name:"event_group",number:6,type:"uint8"}]},course_point:{mesgNum:32,fieldDefns:[{name:"timestamp",number:1,type:"date_time"},{name:"position_lat",number:2,type:"semicircles"},{name:"position_long",number:3,type:"semicircles"},{name:"distance",number:4,type:"distance"},{name:"type",number:5,type:"enum_course_point"}]}},ta=(l,e)=>l.map(s=>({...s,value:e[s.name]})).filter(({value:s})=>s!==void 0),ve=class l{static check(e,s,t,n){if(s===void 0)throw new Error(`Message '${e}' not known`);if(t===void 0)throw new Error(`Message '${e}' has no field definitions`);let a=t.map(o=>o.name),i=Object.keys(n).filter(o=>!a.includes(o));if(i.length)throw new Error(`Message '${e}' has no field definitions named '${i}'`)}constructor(e,s,t){let n=sa[s];if(!n)throw new Error(`Unknown message type: ${s}`);let{mesgNum:a,fieldDefns:i}=n;l.check(s,a,i,t),this.localNum=e,this.mesgNum=a,this.fields=ta(i,t)}get mesgDefn(){let e=this.fields.map(({number:s,type:t,value:n})=>{let a=Ys[t];if(!a)throw new Error(`Unknown type: ${t}`);let{size:i,baseType:o}=a;return t==="string"?{number:s,size:Yt(n),baseType:o}:{number:s,size:i,baseType:o}});return{localNum:this.localNum,mesgNum:this.mesgNum,fieldDefns:e}}isSameDefn(e){let s=(o,u)=>o.number===u.number&&o.size===u.size&&o.baseType===u.baseType,t=(o,u)=>o.length===u.length&&o.every((p,T)=>s(p,u[T])),{localNum:n,mesgNum:a,fieldDefns:i}=this.mesgDefn;return a===e.mesgNum&&n===e.localNum&&t(i,e.fieldDefns)}get defnRecord(){let{localNum:e,mesgNum:s,fieldDefns:t}=this.mesgDefn,n=6+3*t.length,a=new DataView(new ArrayBuffer(n));a.setUint8(0,64|e),a.setUint8(2,1),a.setUint16(3,s),a.setUint8(5,t.length);let i=6;for(let o of t)a.setUint8(i++,o.number),a.setUint8(i++,o.size),a.setUint8(i++,o.baseType);return a.buffer}get dataRecord(){let{fieldDefns:e}=this.mesgDefn,s=1+e.reduce((a,{size:i})=>a+i,0),t=new DataView(new ArrayBuffer(s));t.setUint8(0,this.localNum);let n=1;for(let{number:a,type:i,value:o}of this.fields){let u=Ys[i];if(!u)throw new Error(`Unknown type: ${i}`);let{size:p,setValue:T}=u,r;"mapValue"in u?r=u.mapValue(o):r=o,T&&T.call(t,n,r),n+=p}return t.buffer}};var na=[0,52225,55297,5120,61441,15360,10240,58369,40961,27648,30720,46081,20480,39937,34817,17408],Jt=(l,e)=>(l>>>4^na[l&15^e])&65535,aa=(l,e,s)=>Jt(Jt(l,e),s),ia=(l,e)=>aa(l,e&15,e>>>4);function zs(l,e=0){let s=e,t=l instanceof ArrayBuffer?new Uint8Array(l):l;for(let n=0;n<t.length;n++)s=ia(s,t[n]);return s}var Qt=k(require("dayjs"),1),$t=14,la=16,oa=2078,ua=776358228,Ue=class{constructor(e={}){this.localNum={};this.mesgDefn=[];this.messages=[];this.options={compact:e.compact??!0,defaultActivity:e.defaultActivity??"cycling",defaultSubActivity:e.defaultSubActivity??"generic"}}async encode(e){return this.reset(),this.buildFITContent(e,"activity"),Buffer.from(await this.blob.arrayBuffer())}async encodeCourse(e){return this.reset(),this.buildFITContent(e,"course"),Buffer.from(await this.blob.arrayBuffer())}async encodeToBlob(e,s="activity"){return this.reset(),this.buildFITContent(e,s),this.blob}reset(){this.localNum={},this.mesgDefn=[],this.messages=[]}buildFITContent(e,s){this.buildFileId(e,s),s==="course"?this.buildCourseContent(e):this.buildActivityContent(e)}buildActivityContent(e){let s=e.sessionMesgs||[];if(s.length===0)throw new Error("Activity file must contain at least one Session");let t=[],n=[],a=0;for(let[i,o]of s.entries()){let u=(o.lapMesgs??[]).map((T,r)=>({...T,messageIndex:a+r})),p={...o,messageIndex:i,firstLapIndex:a,numLaps:u.length,lapMesgs:u};u.length>0&&this.buildEventsFromLaps(u,t);for(let T of u)T.recordMesgs&&this.buildRecords(T.recordMesgs);u.length>0&&this.buildLaps(u),this.buildSession(p),this.buildActivityFromSession(p,n),a+=u.length}t.forEach(i=>this.buildEvent(i)),n.forEach(i=>this.buildActivity(i))}buildCourseContent(e){let s=e.sessionMesgs||[];if(s.length===0)throw new Error("Course file must contain track data");let t=s[0];if(this.buildCourse({name:"course",sport:this.options.defaultActivity}),t.lapMesgs){let n=[];for(let o of t.lapMesgs)o.recordMesgs&&n.push(...o.recordMesgs);n.sort((o,u)=>o.timestamp&&u.timestamp?new Date(o.timestamp).getTime()-new Date(u.timestamp).getTime():(o.distance||0)-(u.distance||0));let a=n[0],i=n[n.length-1];if(t.startTime&&this.buildEvent({timestamp:t.startTime,event:"timer",eventType:"start",eventGroup:0}),n.forEach(o=>this.buildRecord(o)),i.timestamp&&this.buildEvent({timestamp:i.timestamp,event:"timer",eventType:"stop_all",eventGroup:0}),t.lapMesgs)for(let o=0;o<t.lapMesgs.length;o++)this.buildLap(t.lapMesgs[o])}}buildFileId(e,s){let t=e.fileIdMesgs?.[0]||{};this.writeMesg("file_id",{type:s,time_created:t.timeCreated?this.parseTimestamp(t.timeCreated):Date.now(),manufacturer:t.manufacturer,product:t.product,serial_number:t.serialNumber})}buildSession(e){this.writeMesg("session",{message_index:e.messageIndex,timestamp:e.timestamp?e.timestamp:void 0,start_time:e.startTime?e.startTime:void 0,total_elapsed_time:e.totalElapsedTime,total_timer_time:e.totalTimerTime,start_position_lat:e.startPositionLat!=null&&Number.isFinite(e.startPositionLat)?e.startPositionLat:void 0,start_position_long:e.startPositionLong!=null&&Number.isFinite(e.startPositionLong)?e.startPositionLong:void 0,total_distance:e.totalDistance,total_ascent:e.totalAscent,total_descent:e.totalDescent,sport:e.sport||this.options.defaultActivity,sub_sport:e.subSport||this.options.defaultSubActivity,first_lap_index:e.firstLapIndex??0,num_laps:e.numLaps??e.lapMesgs?.length??0})}buildLaps(e){e.forEach(s=>this.buildLap(s))}buildLap(e){this.writeMesg("lap",{message_index:e.messageIndex,timestamp:e?.timestamp?e.timestamp:void 0,start_time:e?.startTime?e.startTime:void 0,start_position_lat:e?.startPositionLat!=null&&Number.isFinite(e.startPositionLat)?e.startPositionLat:void 0,start_position_long:e?.startPositionLong!=null&&Number.isFinite(e.startPositionLong)?e.startPositionLong:void 0,end_position_lat:e?.endPositionLat!=null&&Number.isFinite(e.endPositionLat)?e.endPositionLat:void 0,end_position_long:e?.endPositionLong!=null&&Number.isFinite(e.endPositionLong)?e.endPositionLong:void 0,total_elapsed_time:e?.totalElapsedTime,total_timer_time:e?.totalTimerTime,total_distance:e?.totalDistance,total_ascent:e?.totalAscent,total_descent:e?.totalDescent})}buildRecords(e){e.forEach(s=>this.buildRecord(s))}buildRecord(e){this.writeMesg("record",{timestamp:e.timestamp,position_lat:e?.positionLat!=null&&Number.isFinite(e.positionLat)?e.positionLat:void 0,position_long:e?.positionLong!=null&&Number.isFinite(e.positionLong)?e.positionLong:void 0,altitude:e?.altitude,enhancedAltitude:e?.enhancedAltitude,distance:e?.distance,heart_rate:e?.heartRate,cadence:e?.cadence,speed:e?.speed,enhancedSpeed:e?.enhancedSpeed,power:e?.power})}buildEvent(e){this.writeMesg("event",{timestamp:e.timestamp?e.timestamp:void 0,event:e.event,event_type:e.eventType,event_group:e.eventGroup})}buildActivity(e){this.writeMesg("activity",{timestamp:e.timestamp?e.timestamp:void 0,total_timer_time:e.totalTimerTime,num_sessions:e.numSessions,type:e.type,event:e.event,event_type:e.eventType,local_timestamp:e.localTimestamp?this.parseTimestamp(e.localTimestamp):void 0,event_group:e.eventGroup})}buildCourse(e){this.writeMesg("course",{name:e.name,sport:e.sport})}buildEventsFromLaps(e,s){e.forEach((t,n)=>{t.startTime&&s.push({timestamp:t.startTime,event:"timer",eventType:"start",eventGroup:n}),t.timestamp&&s.push({timestamp:t.timestamp,event:"timer",eventType:n===e.length-1?"stop_all":"stop",eventGroup:n})})}buildActivityFromSession(e,s){s.push({timestamp:e.timestamp,totalTimerTime:e.totalTimerTime,numSessions:1,type:e.sport||this.options.defaultActivity,event:"activity",eventType:"stop",eventGroup:0})}parseTimestamp(e){return typeof e=="number"?e:(0,Qt.default)(e).valueOf()}validateRequiredFields(e){if(!e.sessionMesgs||e.sessionMesgs.length===0)throw new Error("FIT file must contain at least one Session")}writeMesg(e,s){let t=Object.fromEntries(Object.entries(s).filter(([o,u])=>u!==void 0));if(Object.keys(t).length===0)return;let n=this.localNum[e];n===void 0&&(n=this.localNum[e]=Object.keys(this.localNum).length);let a=new ve(n,e,t),i=this.mesgDefn[n];(!i||!a.isSameDefn(i))&&(this.messages.push(a.defnRecord),this.mesgDefn[n]=a.mesgDefn),this.messages.push(a.dataRecord)}get blob(){let e=[this.header,...this.messages,this.trailer];return new Blob(e,{type:"application/octet-stream"})}get dataLen(){return this.messages.reduce((e,s)=>e+s.byteLength,0)}get dataCrc(){return this.messages.reduce((e,s)=>zs(s,e),0)}get header(){let e=new DataView(new ArrayBuffer($t));return e.setUint8(0,$t),e.setUint8(1,la),e.setUint16(2,oa,!0),e.setUint32(4,this.dataLen,!0),e.setUint32(8,ua),e.setUint16(12,zs(e.buffer.slice(0,12)),!0),e.buffer}get trailer(){let e=new DataView(new ArrayBuffer(2));return e.setUint16(0,this.dataCrc,!0),e.buffer}async encoder(e){return this.encode(e)}};Xs();var fa="development",pa=1,ma=1;function da(l,e){if(!Number.isFinite(l))throw new Error(`${e} must be a finite number.`)}function Be(l,e){return da(l,e),Math.abs(l)<=180?Math.round(l*2147483648/180):Math.round(l)}function ra(l){if(!l.name||l.name.trim().length===0)throw new Error("Course name is required.");if(!Array.isArray(l.records)||l.records.length===0)throw new Error("Course must contain at least one record point.");let e=l.records.map((t,n)=>{if(t==null)throw new Error(`Course record #${n+1} is missing.`);if(t.timestamp==null)throw new Error(`Course record #${n+1} is missing timestamp.`);return{...t,positionLat:Be(t.latitude,`records[${n}].latitude`),positionLong:Be(t.longitude,`records[${n}].longitude`)}}),s=(l.coursePoints??[]).map((t,n)=>{if(t==null)throw new Error(`Course point #${n+1} is missing.`);if(t.timestamp==null)throw new Error(`Course point #${n+1} is missing timestamp.`);return{...t,type:t.type??0,positionLat:Be(t.latitude,`coursePoints[${n}].latitude`),positionLong:Be(t.longitude,`coursePoints[${n}].longitude`)}});return{...l,sport:l.sport??2,subSport:l.subSport??0,records:e,coursePoints:s,manufacturer:l.manufacturer??fa,product:l.product??pa,serialNumber:l.serialNumber??ma,timeCreated:l.timeCreated??e[0].timestamp}}function Ta(l){let e=ra(l),s=e.records[0],t=e.records[e.records.length-1],n=s.timestamp,a=t.timestamp,i=[{mesgNum:0,data:{type:6,manufacturer:e.manufacturer,product:e.product,serialNumber:e.serialNumber,timeCreated:e.timeCreated}},{mesgNum:31,data:{name:e.name,sport:e.sport,subSport:e.subSport}},{mesgNum:19,data:{startTime:n,timestamp:a,startPositionLat:s.positionLat,startPositionLong:s.positionLong,endPositionLat:t.positionLat,endPositionLong:t.positionLong,totalDistance:t.distance}},{mesgNum:21,data:{timestamp:n,event:0,eventType:0}}];return e.records.forEach(o=>{i.push({mesgNum:20,data:{timestamp:o.timestamp,positionLat:o.positionLat,positionLong:o.positionLong,distance:o.distance,altitude:o.altitude,speed:o.speed}})}),e.coursePoints.forEach((o,u)=>{i.push({mesgNum:32,data:{messageIndex:u,timestamp:o.timestamp,positionLat:o.positionLat,positionLong:o.positionLong,distance:o.distance,type:o.type,name:o.name,favorite:o.favorite}})}),i.push({mesgNum:21,data:{timestamp:a,event:0,eventType:4}}),i}function jt(l){let e=new ge;return Ta(l).forEach(t=>{e.onMesg(t.mesgNum,t.data)}),e.close()}var j=class{constructor(){this.version="1.0.0";this.priority=100}supports(e){return this.supportedTags.includes(e)}async initialize(e){e.metadata.set(`plugin:${this.name}:initialized`,!0)}async destroy(e){e.metadata.delete(`plugin:${this.name}:initialized`)}async validate(e){return!0}parseFloat(e){if(!(typeof e>"u"))return typeof e=="number"?e:typeof e=="string"&&parseFloat(e)||0}parseInt(e){return typeof e=="number"?Math.floor(e):typeof e=="string"&&parseInt(e,10)||0}parseString(e){return String(e||"")}parseBoolean(e){return typeof e=="boolean"?e:typeof e=="string"?e.toLowerCase()==="true":!1}parseDate(e){if(!e)return;let s=new Date(e);return isNaN(s.getTime())?void 0:s}hasRequiredAttributes(e,s){return s.every(t=>e.attributes?.[t])}extractAttributes(e,s,t){e.attributes&&Object.entries(e.attributes).forEach(([n,a])=>{let i=t[n];i&&(s[i]=String(a??""))})}processChildren(e,s,t){e.children?.forEach(n=>{let a=t[n.tag];a&&a(n,s)})}getChildValue(e,s){let t=e.children?.find(n=>n.tag===s);return t?.value?String(t.value):void 0}getChildByTag(e,s){return e.children?.find(t=>t.tag===s)}getChildrenByTag(e,s){return e.children?.filter(t=>t.tag===s)||[]}convertExtensions(e){let s={};return e.children?.forEach(t=>{s[t.tag]=this.convertExtensionContent(t)}),s}convertExtensionContent(e){if(e.children?.length){let s={};return e.children.forEach(t=>{s[t.tag]=this.convertExtensionContent(t)}),s}else return e.value}};var P=class extends j{parseCoordinate(e){let s=this.parseFloat(e);return s===0?void 0:s}parseGPXTime(e){if(!e)return;let s=new Date(e);return isNaN(s.getTime())?void 0:s}extractNumericAttributes(e,s,t){e.attributes&&Object.entries(e.attributes).forEach(([n,a])=>{let i=t[n];i&&i in s&&typeof a<"u"&&(s[i]=this.parseFloat(a))})}};var Ge=class extends P{constructor(){super(...arguments);this.name="wpt-converter";this.supportedTags=["wpt","trkpt","rtept"];this.version="1.0.0"}convert(s,t){if(!this.hasRequiredAttributes(s,["lat","lon"])){t.warnings.push(`${this.name}: point without latitude or longitude was ignored`);return}let n={lat:this.parseFloat(s.attributes?.lat),lon:this.parseFloat(s.attributes?.lon)};return this.processChildren(s,n,{ele:(a,i)=>i.ele=this.parseFloat(a.value),time:(a,i)=>i.time=new Date(this.parseString(a.value)),speed:(a,i)=>i.speed=this.parseFloat(a.value),power:(a,i)=>i.power=this.parseFloat(a.value),cadence:(a,i)=>i.cadence=this.parseFloat(a.value),heartRate:(a,i)=>i.heartRate=this.parseFloat(a.value),course:(a,i)=>i.course=this.parseFloat(a.value),name:(a,i)=>i.name=this.parseString(a.value),cmt:(a,i)=>i.cmt=this.parseString(a.value),desc:(a,i)=>i.desc=this.parseString(a.value),src:(a,i)=>i.src=this.parseString(a.value),sym:(a,i)=>i.sym=this.parseString(a.value),type:(a,i)=>i.type=this.parseString(a.value),fix:(a,i)=>i.fix=this.parseString(a.value),sat:(a,i)=>i.sat=this.parseFloat(a.value),hdop:(a,i)=>i.hdop=this.parseFloat(a.value),vdop:(a,i)=>i.vdop=this.parseFloat(a.value),pdop:(a,i)=>i.pdop=this.parseFloat(a.value),ageofdgpsdata:(a,i)=>i.ageofdgpsdata=this.parseFloat(a.value),geoidheight:(a,i)=>i.geoidheight=this.parseFloat(a.value),magvar:(a,i)=>i.magvar=this.parseFloat(a.value),dgpsid:(a,i)=>i.dgpsid=this.parseFloat(a.value),extensions:(a,i)=>{let u=t.metadata.get("decoder")?.getConverter("extensions");if(u){let p=u.convert(a,t);p&&(this.mapExtensionsToPoint(p,i),i.extensions=p)}},link:(a,i)=>{i.link||(i.link=[]);let u=t.metadata.get("decoder")?.getConverter("link")?.convert(a,t);u&&i.link&&i.link.push(u)}}),n}mapExtensionsToPoint(s,t){Object.entries(s).forEach(([n,a])=>{if(a!==void 0&&(typeof a=="string"||typeof a=="number")){let i=o=>(Array.isArray(o)?o:[o]).some(p=>{let T=n.toLowerCase(),r=p.toLowerCase();return T===r||T.endsWith(`:${r}`)});i("speed")?t.speed=this.parseFloat(a):i("hr")?t.heartRate=this.parseFloat(a):i(["cad","cadence"])?t.cadence=this.parseFloat(a):i(["PowerInWatts","power"])&&(t.power=this.parseFloat(a))}})}},Me=class extends P{constructor(){super(...arguments);this.name="rte-converter";this.supportedTags=["rte"]}convert(s,t){let n={rtept:[]};return this.processChildren(s,n,{name:(a,i)=>i.name=this.parseString(a.value),cmt:(a,i)=>i.cmt=this.parseString(a.value),desc:(a,i)=>i.desc=this.parseString(a.value),src:(a,i)=>i.src=this.parseString(a.value),number:(a,i)=>i.number=this.parseFloat(a.value),type:(a,i)=>i.type=this.parseString(a.value),rtept:(a,i)=>{let u=t.metadata.get("decoder")?.getConverter("wpt")?.convert(a,t);u&&i.rtept&&i.rtept.push(u)},extensions:(a,i)=>{let u=t.metadata.get("decoder")?.getConverter("extensions");u&&(i.extensions=u.convert(a,t))},link:(a,i)=>{i.link||(i.link=[]);let u=t.metadata.get("decoder")?.getConverter("link")?.convert(a,t);u&&i.link&&i.link.push(u)}}),n}},Pe=class extends P{constructor(){super(...arguments);this.name="trk-converter";this.supportedTags=["trk"]}convert(s,t){let n={trkseg:[]};return this.processChildren(s,n,{name:(a,i)=>i.name=this.parseString(a.value),cmt:(a,i)=>i.cmt=this.parseString(a.value),desc:(a,i)=>i.desc=this.parseString(a.value),src:(a,i)=>i.src=this.parseString(a.value),number:(a,i)=>i.number=this.parseFloat(a.value),type:(a,i)=>i.type=this.parseString(a.value),trkseg:(a,i)=>{let u=t.metadata.get("decoder")?.getConverter("trkseg")?.convert(a,t);u&&i.trkseg&&i.trkseg.push(u)},extensions:(a,i)=>{let u=t.metadata.get("decoder")?.getConverter("extensions");u&&(i.extensions=u.convert(a,t))},link:(a,i)=>{i.link||(i.link=[]);let u=t.metadata.get("decoder")?.getConverter("link")?.convert(a,t);u&&i.link&&i.link.push(u)}}),n}},We=class extends P{constructor(){super(...arguments);this.name="trkseg-converter";this.supportedTags=["trkseg"]}convert(s,t){let n={trkpt:[]};return this.processChildren(s,n,{trkpt:(a,i)=>{let u=t.metadata.get("decoder")?.getConverter("wpt")?.convert(a,t);u&&i.trkpt&&i.trkpt.push(u)},extensions:(a,i)=>{let u=t.metadata.get("decoder")?.getConverter("extensions");u&&(i.extensions=u.convert(a,t))}}),n}},Ve=class extends P{constructor(){super(...arguments);this.name="link-converter";this.supportedTags=["link"]}convert(s,t){let n={};return s.attributes?.href&&(n.href=s.attributes.href),this.processChildren(s,n,{text:(a,i)=>i.text=this.parseString(a.value),type:(a,i)=>i.type=this.parseString(a.value)}),n}},Ke=class extends P{constructor(){super(...arguments);this.name="metadata-converter";this.supportedTags=["metadata"]}convert(s,t){let n={};return this.processChildren(s,n,{name:(a,i)=>i.name=this.parseString(a.value),desc:(a,i)=>i.desc=this.parseString(a.value),keywords:(a,i)=>i.keywords=this.parseString(a.value),time:(a,i)=>i.time=new Date(this.parseString(a.value)),author:(a,i)=>{let o=t.metadata.get("decoder");i.author=o?.getConverter("author")?.convert(a,t)},copyright:(a,i)=>{let o=t.metadata.get("decoder");i.copyright=o?.getConverter("copyright")?.convert(a,t)},bounds:(a,i)=>{let o=t.metadata.get("decoder");i.bounds=o?.getConverter("bounds")?.convert(a,t)},extensions:(a,i)=>{let u=t.metadata.get("decoder")?.getConverter("extensions");u&&(i.extensions=u.convert(a,t))},link:(a,i)=>{i.link||(i.link=[]);let u=t.metadata.get("decoder")?.getConverter("link")?.convert(a,t);u&&i.link&&i.link.push(u)}}),n}},ke=class extends P{constructor(){super(...arguments);this.name="person-converter";this.supportedTags=["author"]}convert(s,t){let n={};return s.value&&!s.children?.length?(n.name=this.parseString(s.value),n):(this.processChildren(s,n,{name:(a,i)=>i.name=this.parseString(a.value),email:(a,i)=>{let o=t.metadata.get("decoder");i.email=o?.getConverter("email")?.convert(a,t)},link:(a,i)=>{let o=t.metadata.get("decoder");i.link=o?.getConverter("link")?.convert(a,t)}}),n)}},Ne=class extends P{constructor(){super(...arguments);this.name="email-converter";this.supportedTags=["email"]}convert(s,t){return{id:s.attributes?.id,domain:s.attributes?.domain}}},Xe=class extends P{constructor(){super(...arguments);this.name="copyright-converter";this.supportedTags=["copyright"]}convert(s,t){let n={};return s.attributes?.author&&(n.author=s.attributes.author),this.processChildren(s,n,{year:(a,i)=>i.year=this.parseString(a.value),license:(a,i)=>i.license=this.parseString(a.value)}),n}},Ye=class extends P{constructor(){super(...arguments);this.name="bounds-converter";this.supportedTags=["bounds"]}convert(s,t){let n={};return this.extractAttributes(s,n,{minlat:"minlat",minlon:"minlon",maxlat:"maxlat",maxlon:"maxlon"}),n}},ze=class extends P{constructor(){super(...arguments);this.name="extensions-converter";this.supportedTags=["extensions"]}convert(s,t){let n={};return s.children?.forEach(a=>{this.flattenExtensionElement(a,n)}),n}flattenExtensionElement(s,t){if(!s.children?.length&&s.value!==void 0){t[s.tag]=this.parseExtensionValue(s.value);return}s.children?.length&&s.children.forEach(n=>{this.flattenExtensionElement(n,t)})}parseExtensionValue(s){if(s===void 0)return;let t=String(s),n=parseFloat(t);return!isNaN(n)&&isFinite(n)?n:t}};var qt=require("htmlparser2");var Je=class{constructor(){this.stage="tokenize"}async process(e){let s=Date.now();if(!e.xmlContent)throw new Error("XML content cannot be empty");let t=[],n=new qt.Parser({onopentag(a,i){t.push({type:"open",tag:a,attributes:i})},ontext(a){let i=a.replace(/\n/g,"").trim();i&&t.push({type:"text",tag:"text",value:i})},onclosetag(a){t.push({type:"close",tag:a})}},{xmlMode:!0});return n.write(e.xmlContent),n.end(),e.tokens=t,e.performance.tokenizeTime=Date.now()-s,e}},$e=class{constructor(){this.stage="ast_generate"}async process(e){let s=Date.now();if(!e.tokens)throw new Error("Tokens cannot be empty");let t=[],n,a=null;for(let i of e.tokens)if(i.type==="open"){let o={tag:i.tag,attributes:i.attributes||{},children:[]};n?a&&a.children?.push(o):n=o,t.push(o),a=o}else i.type==="text"&&a?a.value=i.value:i.type==="close"&&(t.pop(),a=t[t.length-1]||null);return e.ast=n,e.performance.astTime=Date.now()-s,e}},Qe=class{constructor(e){this.getConverter=e;this.stage="convert"}async process(e){let s=Date.now();if(!e.ast)throw new Error("AST cannot be empty");if(e.ast.tag!=="gpx")throw new Error(`Not a valid GPX document: expected <gpx>, received <${e.ast.tag}>`);let t={};return e.ast.attributes&&Object.entries(e.ast.attributes).forEach(([n,a])=>{n.startsWith("xmlns:")?t[n]=a.replace(/'/g,"'"):n==="xsi:schemaLocation"?t[n]=a.replace(/'/g,"'"):t[n]=a}),e.ast.children?.forEach(n=>{let a=this.getConverter(n.tag);if(!a){e.warnings.push(`Unsupported GPX element "${n.tag}" was ignored`);return}try{let i=a.convert(n,e);i&&this.assignResult(t,n.tag,i)}catch(i){throw e.errors.push(i),new Error(`GPX converter "${a.name}" failed for ${n.tag}: ${i.message}`)}}),e.result=t,e.performance.convertTime=Date.now()-s,e}assignResult(e,s,t){switch(s){case"metadata":e.metadata=t;break;case"wpt":e.wpt||(e.wpt=[]),e.wpt.push(t);break;case"rte":e.rte||(e.rte=[]),e.rte.push(t);break;case"trk":e.trk||(e.trk=[]),e.trk.push(t);break;case"extensions":e.extensions=t;break}}},je=class{constructor(){this.stage="complete"}async process(e){e.performance.endTime=Date.now();let s=e.performance.endTime-e.performance.startTime;return e.metadata.set("performance",{totalTime:s,tokenizeTime:e.performance.tokenizeTime,astTime:e.performance.astTime,convertTime:e.performance.convertTime}),e}};var Ze=class{constructor(){this.converterPlugins=new Map;this.registeredPlugins=new Set;this.middlewarePlugins=[];this.processors=[];this.initialized=!1;this.defaultConvertersRegistered=!1;this.initializePipeline()}initializePipeline(){this.processors=[new Je,new $e,new Qe(e=>this.getConverter(e)),new je]}async registerDefaultConverters(){if(this.defaultConvertersRegistered)return;let e=[new Ge,new Me,new Pe,new We,new Ve,new Ke,new ke,new Ne,new Xe,new Ye,new ze];for(let s of e)s.supportedTags?.forEach(t=>{this.addConverterForTag(t,s)}),this.registeredPlugins.add(s.name);this.defaultConvertersRegistered=!0}addConverterForTag(e,s){this.converterPlugins.has(e)||this.converterPlugins.set(e,[]);let t=this.converterPlugins.get(e);t.push(s),t.sort((n,a)=>(n.priority||100)-(a.priority||100))}async registerConverter(e){if(this.registeredPlugins.has(e.name))throw new Error(`Converter plugin ${e.name} already exists`);e.supportedTags?.forEach(s=>{this.addConverterForTag(s,e)}),this.registeredPlugins.add(e.name)}async registerMiddleware(e){let s=this.middlewarePlugins.findIndex(t=>t.name===e.name);s!==-1?this.middlewarePlugins[s]=e:this.middlewarePlugins.push(e)}getConverter(e){let s=this.converterPlugins.get(e);return s&&s.length>0?s[0]:void 0}getAllConverters(e){return this.converterPlugins.get(e)||[]}unregisterConverter(e){let s;for(let[t,n]of this.converterPlugins){let a=n.findIndex(i=>i.name===e);a!==-1&&(s=n[a],n.splice(a,1),n.length===0&&this.converterPlugins.delete(t))}s&&this.registeredPlugins.delete(e)}unregisterMiddleware(e){let s=this.middlewarePlugins.findIndex(t=>t.name===e);s!==-1&&this.middlewarePlugins.splice(s,1)}listConverters(){return Array.from(this.converterPlugins.keys())}listConverterPlugins(){return Array.from(this.registeredPlugins)}listMiddlewares(){return this.middlewarePlugins.map(e=>e.name)}listProcessors(){return this.processors.map(e=>e.constructor.name)}getConverterDetails(e){let s={};if(e){let t=this.converterPlugins.get(e);t&&(s[e]=t.map(n=>({name:n.name,priority:n.priority||100})))}else for(let[t,n]of this.converterPlugins)s[t]=n.map(a=>({name:a.name,priority:a.priority||100}));return s}getMiddlewareDetails(){return this.middlewarePlugins.map(e=>{let s=[];return e.onTokenize&&s.push("onTokenize"),e.onAstGenerate&&s.push("onAstGenerate"),e.onConvert&&s.push("onConvert"),e.onComplete&&s.push("onComplete"),e.onError&&s.push("onError"),{name:e.name,hooks:s}})}async initialize(){if(this.initialized)return;await this.registerDefaultConverters();let e=this.createContext(),s=[...new Map([...Array.from(this.converterPlugins.values()).flat(),...this.middlewarePlugins].map(t=>[t.name,t])).values()];for(let t of s)await t.initialize?.(e);this.initialized=!0}async destroy(){if(!this.initialized)return;let e=this.createContext(),s=[...new Map([...Array.from(this.converterPlugins.values()).flat(),...this.middlewarePlugins].map(t=>[t.name,t])).values()];for(let t of s)await t.destroy?.(e);this.initialized=!1}createContext(){return{metadata:new Map,errors:[],warnings:[],stats:{startTime:Date.now(),processedTokens:0,convertedElements:0},performance:{startTime:Date.now()}}}async executeMiddlewareHook(e,s,t){let n=s;for(let a of this.middlewarePlugins){let i=a[e];if(i)try{n=await i.call(a,n,t)||n}catch(o){t.errors.push(o),await a.onError?.(o,t)}}return n}async parserByBuffer(e){await this.initialize();let s=this.createContext();s.rawData=e,s.xmlContent=e.toString("utf-8"),s.metadata.set("decoder",this);for(let t of this.processors)try{switch(s=await t.process(s),t.stage){case"tokenize":s.tokens&&(s.tokens=await this.executeMiddlewareHook("onTokenize",s.tokens,s));break;case"ast_generate":s.ast&&(s.ast=await this.executeMiddlewareHook("onAstGenerate",s.ast,s));break;case"convert":s.result&&(s.result=await this.executeMiddlewareHook("onConvert",s.result,s));break;case"complete":s.result&&(s.result=await this.executeMiddlewareHook("onComplete",s.result,s));break}}catch(n){s.errors.push(n);for(let a of this.middlewarePlugins)await a.onError?.(n,s);throw new Error(`GPX pipeline stage "${t.stage}" failed: ${n.message}`)}return s.result}convertExtensions(e){let s={},{attributes:t,tag:n,value:a}=e;if(t&&Object.entries(t).forEach(([i,o])=>{s[i]=o}),e?.children?.length)e.children?.forEach(i=>{s[i.tag]=this.convertExtensions(i)});else if(a!==void 0)return a;return s}};var Qs=k(require("dayjs"),1),xt=k(require("dayjs/plugin/utc.js"),1);var Js={temperature:"atemp",wtemp:"wtemp",heartRate:"hr",cadence:"cad"};var $s={temperature:"Temperature",Depth:"Depth"};Qs.default.extend(xt.default);var qe=class{constructor(e={}){this.formatElevation=e=>{let s=parseFloat(e);return isNaN(s)?e:this.roundTo(s,2).toString()};this.compact=e.compact??!0}async encode(e){let s=this.buildGPXXML(e);return Buffer.from(s,"utf-8")}encodeToString(e){return this.buildGPXXML(e)}buildGPXXML(e){let s=this.buildXMLHeader(e),t=this.buildGPXContent(e),a=`${s}${t}
|
|
2
2
|
</gpx>`;return this.compact?this.compressXML(a):a}compressXML(e){return e.replace(/>\s+</g,"><").replace(/^\s+|\s+$/gm,"").replace(/\s+/g," ").trim()}buildXMLHeader(e){let s=this.escapeXMLAttribute(e.creator||"TrackSwap"),t=this.escapeXMLAttribute(e.version||"1.1");return['<?xml version="1.0" encoding="UTF-8"?>',`<gpx creator="${s}" version="${t}"`,' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"',' xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd'," http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensionsv3.xsd"," http://www.garmin.com/xmlschemas/TrackPointExtension/v1 http://www.garmin.com/xmlschemas/TrackPointExtensionv1.xsd"," http://www.garmin.com/xmlschemas/PowerExtension/v1 http://www.garmin.com/xmlschemas/PowerExtensionv1.xsd",' http://www.topografix.com/GPX/gpx_style/0/2 http://www.topografix.com/GPX/gpx_style/0/2/gpx_style.xsd"',' xmlns:gpxtpx="http://www.garmin.com/xmlschemas/TrackPointExtension/v1"',' xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3"',' xmlns:gpxpx="http://www.garmin.com/xmlschemas/PowerExtension/v1"',' xmlns:gpx_style="http://www.topografix.com/GPX/gpx_style/0/2"',' xmlns="http://www.topografix.com/GPX/1/1">'].join(`
|
|
3
3
|
`)}buildGPXContent(e){let{metadata:s,wpt:t=[],rte:n=[],trk:a=[],extensions:i}=e,o=[];return s&&o.push(this.buildMetadata(s)),t.forEach(u=>{o.push(this.buildWaypoint(u,"wpt"))}),n.forEach(u=>{o.push(this.buildRoute(u))}),a.forEach(u=>{o.push(this.buildTrack(u))}),i&&o.push(this.buildExtensions(i)),o.join(`
|
|
4
4
|
`)}buildMetadata(e){let s=["<metadata>"];return this.addOptionalElement(s,"name",e.name),this.addOptionalElement(s,"desc",e.desc),e.author&&s.push(this.buildAuthor(e.author)),e.copyright&&s.push(this.buildCopyright(e.copyright)),e.link&&this.addLinks(s,e.link),e.time&&s.push(this.buildTimeElement(e.time)),this.addOptionalElement(s,"keywords",e.keywords),e.bounds&&s.push(this.buildBounds(e.bounds)),e.extensions&&s.push(this.buildExtensions(e.extensions)),s.push("</metadata>"),s.join(`
|
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
`)}addStandardWaypointElements(e,s){this.addOptionalElement(e,"magvar",s.magvar?.toString()),this.addOptionalElement(e,"geoidheight",s.geoidheight?.toString()),this.addOptionalElement(e,"name",s.name),this.addOptionalElement(e,"cmt",s.cmt),this.addOptionalElement(e,"desc",s.desc),this.addOptionalElement(e,"src",s.src),s.link&&this.addLinks(e,s.link),this.addOptionalElement(e,"sym",s.sym),this.addOptionalElement(e,"type",s.type),this.addOptionalElement(e,"fix",s.fix),this.addOptionalElement(e,"sat",s.sat?.toString()),this.addOptionalElement(e,"hdop",s.hdop?.toString()),this.addOptionalElement(e,"vdop",s.vdop?.toString()),this.addOptionalElement(e,"pdop",s.pdop?.toString()),this.addOptionalElement(e,"ageofdgpsdata",s.ageofdgpsdata?.toString()),this.addOptionalElement(e,"dgpsid",s.dgpsid?.toString())}buildRoute(e){let s=["<rte>"];return this.addRouteTrackCommonElements(s,e),e.extensions&&s.push(this.buildExtensions(e.extensions)),e.rtept&&e.rtept?.forEach(t=>{s.push(this.buildWaypoint(t,"rtept"))}),s.push("</rte>"),s.join(`
|
|
9
9
|
`)}buildTrack(e){let s=["<trk>"];return this.addRouteTrackCommonElements(s,e),e.extensions&&s.push(this.buildExtensions(e.extensions)),e.trkseg&&e.trkseg.forEach(t=>{s.push(this.buildTrackSegment(t))}),s.push("</trk>"),s.join(`
|
|
10
10
|
`)}buildTrackSegment(e){let s=["<trkseg>"];return e.trkpt&&e.trkpt.forEach(t=>{s.push(this.buildWaypoint(t,"trkpt"))}),e.extensions&&s.push(this.buildExtensions(e.extensions)),s.push("</trkseg>"),s.join(`
|
|
11
|
-
`)}addRouteTrackCommonElements(e,s){this.addOptionalElement(e,"name",s.name),this.addOptionalElement(e,"cmt",s.cmt),this.addOptionalElement(e,"desc",s.desc),this.addOptionalElement(e,"src",s.src),s.link&&this.addLinks(e,s.link),this.addOptionalElement(e,"number",s.number?.toString()),this.addOptionalElement(e,"type",s.type)}processPointExtensions(e,s){let t={};return Object.entries({"gpxtpx:TrackPointExtension":{"gpxtpx:hr":"heartRate","gpxtpx:cad":"cadence","gpxtpx:speed":"speed","gpxtpx:atemp":"temperature","gpxtpx:wtemp":"wtemp","gpxtpx:temp":"temperature"},"gpxpx:PowerExtension":{"gpxpx:PowerInWatts":"power"},"gpxx:GpxExtensions":{"gpxx:Temperature":"temperature","gpxx:Depth":"depth"}}).forEach(([a,i])=>{let o={},u=!1;Object.entries(i).forEach(([
|
|
12
|
-
`+t.repeat(a))):
|
|
13
|
-
`+t.repeat(a)),a++),i=!0):u===">"&&(i=!1,
|
|
11
|
+
`)}addRouteTrackCommonElements(e,s){this.addOptionalElement(e,"name",s.name),this.addOptionalElement(e,"cmt",s.cmt),this.addOptionalElement(e,"desc",s.desc),this.addOptionalElement(e,"src",s.src),s.link&&this.addLinks(e,s.link),this.addOptionalElement(e,"number",s.number?.toString()),this.addOptionalElement(e,"type",s.type)}processPointExtensions(e,s){let t={};return Object.entries({"gpxtpx:TrackPointExtension":{"gpxtpx:hr":"heartRate","gpxtpx:cad":"cadence","gpxtpx:speed":"speed","gpxtpx:atemp":"temperature","gpxtpx:wtemp":"wtemp","gpxtpx:temp":"temperature"},"gpxpx:PowerExtension":{"gpxpx:PowerInWatts":"power"},"gpxx:GpxExtensions":{"gpxx:Temperature":"temperature","gpxx:Depth":"depth"}}).forEach(([a,i])=>{let o={},u=!1;Object.entries(i).forEach(([p,T])=>{let r;if(e[T]!==void 0)r=e[T];else if(s)if(s[p]!==void 0)r=s[p];else{let c=p.split(":").pop();Object.entries(s).forEach(([h,C])=>{h.endsWith(`:${c}`)&&C!==void 0&&(r=C)})}r!==void 0&&(o[p]=r,u=!0)}),u&&(t[a]=o)}),t}buildTrackPointExtension(e,s){let t=this.deepClone(s["gpxtpx:TrackPointExtension"]||{}),n=Object.keys(Js);return Object.keys(e).filter(a=>n.includes(a)).forEach(a=>{let i=Js[a];i&&e[a]!==void 0&&(t[`gpxtpx:${i}`]=e[a])}),t}buildPowerExtension(e,s){return this.deepClone(s["gpxpx:PowerExtension"]||{})}buildGpxExtensions(e,s){let t=this.deepClone(s["gpxx:GpxExtensions"]||{}),n=Object.keys($s);return Object.keys(e).filter(a=>n.includes(a)).forEach(a=>{let i=$s[a];i&&e[a]!==void 0&&(t[`gpxx:${i}`]=e[a])}),t}buildExtensions(e){let s=this.buildExtensionContent(e);return s?`<extensions>${s}</extensions>`:""}buildExtensionContent(e){return Object.entries(e).filter(([s])=>!s.startsWith("xmlns")).map(([s,t])=>{if(t&&typeof t=="object"){let n=this.buildExtensionContent(t);return`<${s}>${n}</${s}>`}else if(t!=null)return`<${s}>${this.escapeXML(String(t))}</${s}>`;return""}).filter(s=>s).join("")}buildLink(e){let s=[`<link href="${this.escapeXMLAttribute(e.href||"")}">`];return this.addOptionalElement(s,"text",e.text),this.addOptionalElement(s,"type",e.type),s.push("</link>"),s.join("")}addLinks(e,s){(Array.isArray(s)?s:[s]).forEach(n=>{e.push(this.buildLink(n))})}buildTimeElement(e){return typeof e=="string"&&/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z?$/.test(e)?`<time>${e}</time>`:`<time>${(0,Qs.default)(e).utc().format("YYYY-MM-DDTHH:mm:ss[Z]")}</time>`}addOptionalElement(e,s,t,n){if(t!=null&&t!==""){let a=n?n(t):this.escapeXML(t);e.push(`<${s}>${a}</${s}>`)}}isValidCoordinate(e,s){return e!=null&&s!==void 0&&s!==null&&!isNaN(e)&&!isNaN(s)}formatCoordinate(e){return this.roundTo(e,6).toString()}roundTo(e,s){let t=Math.pow(10,s);return Math.round(e*t)/t}escapeXML(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}escapeXMLAttribute(e){return typeof e!="string"?String(e||""):e.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">").replace(/\r/g," ").replace(/\n/g," ").replace(/\t/g,"	")}deepClone(e){if(e===null||typeof e!="object")return e;if(e instanceof Date)return new Date(e.getTime());if(Array.isArray(e))return e.map(t=>this.deepClone(t));let s={};for(let t in e)Object.prototype.hasOwnProperty.call(e,t)&&(s[t]=this.deepClone(e[t]));return s}encoder(e){return this.encode(e)}};var K=class extends j{parseHeartRate(e){let s=this.parseFloat(e);if(!(typeof s>"u"))return s>0&&s<300?s:void 0}parseTCXTime(e){if(!e)return;let s=new Date(e);return isNaN(s.getTime())?void 0:s}parseDistance(e){let s=this.parseFloat(e);if(!(typeof s>"u"))return s>0?s:void 0}parseSpeed(e){let s=this.parseFloat(e);if(!(typeof s>"u"))return s>=0?s:void 0}parseAltitude(e){return this.parseFloat(e)}parseCoordinate(e){let s=this.parseFloat(e);return s!==0?s:void 0}};var xe=class extends K{constructor(){super(...arguments);this.name="PositionConverter";this.supportedTags=["Position"]}convert(s,t){let n={};return this.processChildren(s,n,{LatitudeDegrees:(a,i)=>i.LatitudeDegrees=this.parseString(a.value),LongitudeDegrees:(a,i)=>i.LongitudeDegrees=this.parseString(a.value)}),n}},es=class extends K{constructor(){super(...arguments);this.name="TrackpointConverter";this.supportedTags=["Trackpoint"]}convert(s,t){let n={};return this.processChildren(s,n,{Time:(a,i)=>i.Time=this.parseString(a.value),Position:(a,i)=>{let o=t.metadata.get("decoder");i.Position=o?.getConverter("Position")?.convert(a,t)},AltitudeMeters:(a,i)=>i.AltitudeMeters=this.parseFloat(a.value),DistanceMeters:(a,i)=>i.DistanceMeters=this.parseFloat(a.value),HeartRateBpm:(a,i)=>{if(a.value)i.HeartRateBpm=this.parseFloat(a.value);else{let o=this.getChildByTag(a,"Value");o?.value&&(i.HeartRateBpm=this.parseFloat(o.value))}},Cadence:(a,i)=>{let o={Low:0,High:0};this.processChildren(a,o,{Low:(u,p)=>p.Low=this.parseFloat(u.value)||0,High:(u,p)=>p.High=this.parseFloat(u.value)||0}),i.Cadence=o},SensorState:(a,i)=>i.SensorState=a.value,Extensions:(a,i)=>{let u=t.metadata.get("decoder")?.getConverter("Extensions");u&&(i.Extensions=u.convert(a,t))}}),n}},ss=class extends K{constructor(){super(...arguments);this.name="TrackConverter";this.supportedTags=["Track"]}convert(s,t){let n={Trackpoint:[]};return this.processChildren(s,n,{Trackpoint:(a,i)=>{let u=t.metadata.get("decoder")?.getConverter("Trackpoint")?.convert(a,t);u&&i.Trackpoint&&i.Trackpoint.push(u)}}),n}},ts=class extends K{constructor(){super(...arguments);this.name="ActivityLapConverter";this.supportedTags=["Lap"]}convert(s,t){let n={};return this.extractAttributes(s,n,{StartTime:"StartTime"}),this.processChildren(s,n,{TotalTimeSeconds:(a,i)=>i.TotalTimeSeconds=this.parseFloat(a.value),DistanceMeters:(a,i)=>i.DistanceMeters=this.parseFloat(a.value),MaximumSpeed:(a,i)=>i.MaximumSpeed=this.parseFloat(a.value),Calories:(a,i)=>i.Calories=this.parseFloat(a.value),AverageHeartRateBpm:(a,i)=>i.AverageHeartRateBpm=this.parseFloat(a.value),MaximumHeartRateBpm:(a,i)=>i.MaximumHeartRateBpm=this.parseFloat(a.value),Intensity:(a,i)=>i.Intensity=a.value,TriggerMethod:(a,i)=>i.TriggerMethod=a.value,Track:(a,i)=>{i.Track||(i.Track=[]);let u=t.metadata.get("decoder")?.getConverter("Track")?.convert(a,t);u&&i.Track.push(u)},Notes:(a,i)=>i.Notes=this.parseString(a.value),Extensions:(a,i)=>{let u=t.metadata.get("decoder")?.getConverter("Extensions");u&&(i.Extensions=u.convert(a,t))}}),n}},ns=class extends K{constructor(){super(...arguments);this.name="ActivityConverter";this.supportedTags=["Activity"]}convert(s,t){let n={Id:"",Lap:[]};return this.extractAttributes(s,n,{Sport:"Sport"}),this.processChildren(s,n,{Id:(a,i)=>i.Id=this.parseString(a.value),Lap:(a,i)=>{let u=t.metadata.get("decoder")?.getConverter("Lap")?.convert(a,t);u&&i.Lap.push(u)},Notes:(a,i)=>i.Notes=this.parseString(a.value),Training:(a,i)=>i.Training=this.convertTraining(a),Creator:(a,i)=>i.Creator=this.convertCreator(a),Extensions:(a,i)=>{let u=t.metadata.get("decoder")?.getConverter("Extensions");u&&(i.Extensions=u.convert(a,t))}}),n}convertTraining(s){let t={};return s.attributes&&Object.entries(s.attributes).forEach(([n,a])=>{t[n]=a}),s.children?.forEach(n=>{t[n.tag]=this.convertExtensionContent(n)}),t}convertCreator(s){let t={};return s.children?.forEach(n=>{t[n.tag]=this.convertExtensionContent(n)}),t}},as=class extends K{constructor(){super(...arguments);this.name="ActivityListConverter";this.supportedTags=["Activities"]}convert(s,t){let n={Activity:[],MultiActivitySession:[]};return this.processChildren(s,n,{Activity:(a,i)=>{let u=t.metadata.get("decoder")?.getConverter("Activity")?.convert(a,t);u&&i.Activity&&i.Activity.push(u)},MultiActivitySession:(a,i)=>{let u=t.metadata.get("decoder")?.getConverter("MultiActivitySession")?.convert(a,t);u&&i.MultiActivitySession&&i.MultiActivitySession.push(u)}}),n}},is=class extends K{constructor(){super(...arguments);this.name="MultiActivitySessionConverter";this.supportedTags=["MultiActivitySession"]}convert(s,t){let n={};return this.processChildren(s,n,{Id:(a,i)=>i.Id=this.parseString(a.value),FirstActivity:(a,i)=>{let o=t.metadata.get("decoder");i.FirstActivity=o?.getConverter("FirstActivity")?.convert(a,t)},NextActivity:(a,i)=>{i.NextActivity||(i.NextActivity=[]);let u=t.metadata.get("decoder")?.getConverter("NextActivity")?.convert(a,t);u&&i.NextActivity.push(u)},Notes:(a,i)=>i.Notes=this.parseString(a.value)}),n}},ls=class extends K{constructor(){super(...arguments);this.name="AbstractSourceConverter";this.supportedTags=["Author","Creator"]}convert(s,t){let n={};return this.processChildren(s,n,{Name:(a,i)=>i.Name=this.parseString(a.value)}),n}},os=class extends K{constructor(){super(...arguments);this.name="extensions-converter";this.supportedTags=["Extensions"]}convert(s,t){let n={};return this.flattenExtensionElement(s,n),n}flattenExtensionElement(s,t){if(!s.children?.length&&s.value!==void 0){t[s.tag]=this.parseExtensionValue(s.value);return}s.children?.length&&s.children.forEach(n=>{this.flattenExtensionElement(n,t)})}parseExtensionValue(s){if(s===void 0)return;let t=String(s),n=parseFloat(t);return!isNaN(n)&&isFinite(n)?n:t}};var js=require("htmlparser2"),us=class{static tokenizeXML(e){let s=[],t=new js.Parser({onopentag(n,a){s.push({type:"open",tag:n,attributes:a})},ontext(n){let a=n.replace(/\n/g,"").trim();a&&s.push({type:"text",tag:"text",value:a})},onclosetag(n){s.push({type:"close",tag:n})}},{xmlMode:!0});return t.write(e),t.end(),s}static compressXML(e){return e.replace(/>\s+</g,"><").replace(/\s+/g," ").trim()}static formatXML(e,s=2){let t=" ".repeat(s),n="",a=0,i=!1;for(let o=0;o<e.length;o++){let u=e[o],p=e[o+1];u==="<"?(p==="/"?(a--,i||(n+=`
|
|
12
|
+
`+t.repeat(a))):p!=="?"&&p!=="!"&&(i||(n+=`
|
|
13
|
+
`+t.repeat(a)),a++),i=!0):u===">"&&(i=!1,p==="<"&&e[o+2]==="/"&&a--),n+=u}return n.trim()}static validateXML(e){try{let s=new js.Parser({},{xmlMode:!0});return s.write(e),s.end(),{isValid:!0}}catch(s){return{isValid:!1,error:s.message}}}static extractXMLDeclaration(e){let s=e.match(/<\?xml\s+([^>]+)\?>/);if(!s)return{};let t=s[1],n={},a=t.match(/version=["']([^"']+)["']/);a&&(n.version=a[1]);let i=t.match(/encoding=["']([^"']+)["']/);i&&(n.encoding=i[1]);let o=t.match(/standalone=["']([^"']+)["']/);return o&&(n.standalone=o[1]),n}static escapeXML(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}static unescapeXML(e){return e.replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'").replace(/&/g,"&")}};var fs=class{constructor(){this.stage="tokenize";this.name="tokenize-processor"}async process(e){if(!e.xmlContent)throw new Error("TCX data cannot be empty");let s=us.tokenizeXML(e.xmlContent);if(s.length===0)throw new Error("Not a valid TCX file");return e.tokens=s,e.stats.processedTokens=s.length,e}},ps=class{constructor(){this.stage="ast-generate";this.name="ast-generate-processor"}async process(e){let s=Date.now();if(!e.tokens)throw new Error("Tokens cannot be empty");let t=[],n,a=null;for(let i of e.tokens)if(i.type==="open"){let o={tag:i.tag,attributes:i.attributes||{},children:[]};n?a&&a.children?.push(o):n=o,t.push(o),a=o}else i.type==="text"&&a?a.value=i.value:i.type==="close"&&(t.pop(),a=t[t.length-1]||null);return e.ast=n,e.performance.astTime=Date.now()-s,e}},ms=class{constructor(e){this.getConverter=e;this.stage="convert";this.name="convert-processor"}async process(e){if(!e.ast)throw new Error("AST is empty, cannot convert");let s=this.findTCXRoot(e.ast);if(!s)throw new Error("Not a valid TCX file: TrainingCenterDatabase element not found");let t=this.convertAST(s,e);return e.result=t,e.stats.convertedElements=this.countElements(e.ast),e}findTCXRoot(e){if(e.tag==="TrainingCenterDatabase")return e;if(e.children)for(let s of e.children){let t=this.findTCXRoot(s);if(t)return t}}convertAST(e,s){let t=this.getConverter(e.tag);return t?t.convert(e,s):this.genericConvert(e,s)}genericConvert(e,s){let t={};if(e.attributes&&Object.entries(e.attributes).forEach(([n,a])=>{t[n]=a}),e.value!==void 0)if(e.children&&e.children.length>0)t._value=e.value;else return e.value;return e.children&&e.children.forEach(n=>{let a=this.convertAST(n,s);t[n.tag]?(Array.isArray(t[n.tag])||(t[n.tag]=[t[n.tag]]),t[n.tag].push(a)):t[n.tag]=a}),t}countElements(e){let s=1;if(e.children)for(let t of e.children)s+=this.countElements(t);return s}},ds=class{constructor(){this.stage="complete";this.name="complete-processor"}async process(e){if(!e.result)throw new Error("No conversion result found");let s=Date.now(),t=s-e.performance.startTime;return e.performance.endTime=s,e.performance.processingTime=t,e.metadata.set("performance",{processingTime:t,processedTokens:e.stats.processedTokens,convertedElements:e.stats.convertedElements}),e}};var rs=class{constructor(){this.converterPlugins=new Map;this.registeredPlugins=new Set;this.middlewarePlugins=[];this.processors=[];this.initialized=!1;this.defaultConvertersRegistered=!1;this.initializePipeline()}initializePipeline(){this.processors=[new fs,new ps,new ms(e=>this.getConverter(e)),new ds]}async registerDefaultConverters(){if(this.defaultConvertersRegistered)return;let e=[new xe,new es,new ss,new ts,new ns,new as,new is,new ls,new os];for(let s of e)s.supportedTags?.forEach(t=>{this.addConverterForTag(t,s)}),this.registeredPlugins.add(s.name);this.defaultConvertersRegistered=!0}addConverterForTag(e,s){this.converterPlugins.has(e)||this.converterPlugins.set(e,[]);let t=this.converterPlugins.get(e);t.push(s),t.sort((n,a)=>(n.priority||100)-(a.priority||100))}async registerConverter(e){if(this.registeredPlugins.has(e.name))throw new Error(`Converter plugin ${e.name} already exists`);e.supportedTags?.forEach(s=>{this.addConverterForTag(s,e)}),this.registeredPlugins.add(e.name)}async registerMiddleware(e){let s=this.middlewarePlugins.findIndex(t=>t.name===e.name);s!==-1?this.middlewarePlugins[s]=e:this.middlewarePlugins.push(e)}getConverter(e){let s=this.converterPlugins.get(e);return s&&s.length>0?s[0]:void 0}getAllConverters(e){return this.converterPlugins.get(e)||[]}unregisterConverter(e){let s;for(let[t,n]of this.converterPlugins){let a=n.findIndex(i=>i.name===e);a!==-1&&(s=n[a],n.splice(a,1),n.length===0&&this.converterPlugins.delete(t))}s&&this.registeredPlugins.delete(e)}unregisterMiddleware(e){let s=this.middlewarePlugins.findIndex(t=>t.name===e);s!==-1&&this.middlewarePlugins.splice(s,1)}async initialize(){if(this.initialized)return;await this.registerDefaultConverters();let e=this.createContext(),s=[...new Map([...Array.from(this.converterPlugins.values()).flat(),...this.middlewarePlugins].map(t=>[t.name,t])).values()];for(let t of s)await t.initialize?.(e);this.initialized=!0}async destroy(){if(!this.initialized)return;let e=this.createContext(),s=[...new Map([...Array.from(this.converterPlugins.values()).flat(),...this.middlewarePlugins].map(t=>[t.name,t])).values()];for(let t of s)await t.destroy?.(e);this.initialized=!1}createContext(){return{metadata:new Map,errors:[],warnings:[],stats:{startTime:Date.now(),processedTokens:0,convertedElements:0},performance:{startTime:Date.now()}}}async executeMiddlewareHook(e,s,t){let n=s;for(let a of this.middlewarePlugins){let i=a[e];if(i)try{n=await i.call(a,n,t)||n}catch(o){t.errors.push(o),await a.onError?.(o,t)}}return n}async parseByBuffer(e){await this.initialize();let s=this.createContext();s.rawData=e,s.xmlContent=e.toString("utf-8"),s.metadata.set("decoder",this);for(let t of this.processors)try{switch(s=await t.process(s),t.stage){case"tokenize":s.tokens&&(s.tokens=await this.executeMiddlewareHook("onTokenize",s.tokens,s));break;case"ast-generate":s.ast&&(s.ast=await this.executeMiddlewareHook("onAstGenerate",s.ast,s));break;case"convert":s.result&&(s.result=await this.executeMiddlewareHook("onConvert",s.result,s));break;case"complete":s.result&&(s.result=await this.executeMiddlewareHook("onComplete",s.result,s));break}}catch(n){s.errors.push(n);for(let a of this.middlewarePlugins)await a.onError?.(n,s);throw new Error(`TCX pipeline stage "${t.stage}" failed: ${n.message}`)}return s.result}convertExtensions(e){let s={},{attributes:t,tag:n,value:a}=e;if(t&&Object.entries(t).forEach(([i,o])=>{s[i]=o}),e?.children?.length)e.children?.forEach(i=>{s[i.tag]=this.convertExtensions(i)});else if(a!==void 0)return a;return s}async parserByBuffer(e){return this.parseByBuffer(e)}async parseByString(e){let s=Buffer.from(e,"utf-8");return this.parseByBuffer(s)}};var Zs=k(require("dayjs"),1),en=k(require("dayjs/plugin/utc.js"),1);Zs.default.extend(en.default);var Ts=class{constructor(e={}){this.compact=e.compact??!0}async encode(e){let s=this.buildTCXXML(e);return Buffer.from(s,"utf-8")}encodeToString(e){return this.buildTCXXML(e)}buildTCXXML(e){let s=this.buildXMLHeader(e),t=this.buildTCXContent(e),a=`${s}${t}
|
|
14
14
|
</TrainingCenterDatabase>`;return this.compact?this.compressXML(a):a}compressXML(e){return e.replace(/>\s+</g,"><").replace(/^\s+|\s+$/gm,"").replace(/\s+/g," ").trim()}buildXMLHeader(e){let s=e.version||"1.0",t=e.creator||"trackswap",n=e.xmlns||"http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2",a=e["xmlns:xsi"]||"http://www.w3.org/2001/XMLSchema-instance",i=e["xsi:schemaLocation"]||"http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2 http://www8.garmin.com/xmlschemas/TrainingCenterDatabasev2.xsd";return['<?xml version="1.0" encoding="UTF-8"?>',`<TrainingCenterDatabase version="${this.escapeXMLAttribute(s)}"`,` creator="${this.escapeXMLAttribute(t)}"`,` xmlns="${this.escapeXMLAttribute(n)}"`,` xmlns:xsi="${this.escapeXMLAttribute(a)}"`,` xsi:schemaLocation="${this.escapeXMLAttribute(i)}">`].join(`
|
|
15
15
|
`)}buildTCXContent(e){let s=[];return e.Folders&&s.push(this.buildFolders(e.Folders)),e.Activities&&s.push(this.buildActivities(e.Activities)),e.Workouts&&s.push(this.buildWorkouts(e.Workouts)),e.Courses&&s.push(this.buildCourses(e.Courses)),e.Author&&s.push(this.buildAuthor(e.Author)),e.Extensions&&s.push(this.buildExtensions(e.Extensions)),s.join(`
|
|
16
16
|
`)}buildFolders(e){let s=["<Folders>"];return e.History&&s.push(this.buildHistory(e.History)),e.Workouts&&s.push(this.buildWorkouts(e.Workouts)),e.Courses,s.push("</Folders>"),s.join(`
|
|
@@ -26,4 +26,4 @@
|
|
|
26
26
|
`)}buildWorkouts(e){return"<Workouts></Workouts>"}buildCourses(e){let s=["<Courses>"];return e.Course?.length&&e.Course.forEach(t=>{s.push(this.buildCourseElement(t))}),s.push("</Courses>"),s.join(`
|
|
27
27
|
`)}buildCourseElement(e){let s=["<Course>"];return this.addOptionalElement(s,"Name",e.Name),this.addOptionalElement(s,"Notes",e.Notes),e.Lap?.length&&e.Lap.forEach(t=>{s.push(this.buildCourseLap(t))}),e.Track?.length&&e.Track.forEach(t=>{s.push(this.buildTrack(t))}),e.CoursePoint?.length&&e.CoursePoint.forEach(t=>{s.push(this.buildCoursePoint(t))}),e.Extensions&&s.push(this.buildExtensions(e.Extensions)),s.push("</Course>"),s.join(`
|
|
28
28
|
`)}buildCourseLap(e){let s=["<Lap>"];this.addOptionalNumericElement(s,"TotalTimeSeconds",e.TotalTimeSeconds),this.addOptionalNumericElement(s,"DistanceMeters",e.DistanceMeters),s.push(this.wrapGeoTag("BeginPosition",e.BeginPosition)),s.push(this.wrapGeoTag("EndPosition",e.EndPosition)),this.addOptionalNumericElement(s,"BeginAltitudeMeters",e.BeginAltitudeMeters),this.addOptionalNumericElement(s,"EndAltitudeMeters",e.EndAltitudeMeters);let t=e;return t.Track?.length&&t.Track.forEach(n=>{s.push(this.buildTrack(n))}),e.Extensions&&s.push(this.buildExtensions(e.Extensions)),s.push("</Lap>"),s.join(`
|
|
29
|
-
`)}buildCoursePoint(e){let s=["<CoursePoint>"];return this.addOptionalElement(s,"Name",e.Name),e.Time!==void 0&&e.Time!==null&&s.push(`<Time>${e.Time}</Time>`),e.Position&&s.push(this.buildPosition(e.Position)),this.addOptionalNumericElement(s,"AltitudeMeters",e.AltitudeMeters),this.addOptionalElement(s,"PointType",e.PointType),this.addOptionalElement(s,"Notes",e.Notes),e.Extensions&&s.push(this.buildExtensions(e.Extensions)),s.push("</CoursePoint>"),s.join("")}buildAuthor(e){let s=["<Author>"];return this.addOptionalElement(s,"Name",e.Name),s.push("</Author>"),s.join("")}buildExtensions(e){let s=this.buildExtensionContent(e);return s?`<Extensions>${s}</Extensions>`:""}buildExtensionContent(e){return Object.entries(e).filter(([s])=>!s.startsWith("xmlns")).map(([s,t])=>{if(t&&typeof t=="object"){let n=this.buildExtensionContent(t);return`<${s}>${n}</${s}>`}else if(t!=null)return`<${s}>${this.escapeXML(String(t))}</${s}>`;return""}).filter(s=>s).join("")}formatTime(e){let s=(0,nt.default)(e);if(!s.isValid())throw new Error(`Cannot encode invalid TCX timestamp: ${String(e)}`);return s.toISOString()}addOptionalElement(e,s,t,n){if(t!=null&&t!==""){let a=n?n(t):this.escapeXML(t);e.push(`<${s}>${a}</${s}>`)}}addOptionalNumericElement(e,s,t){t!=null&&!isNaN(t)&&e.push(`<${s}>${t}</${s}>`)}isValidCoordinate(e,s){return e!=null&&s!==void 0&&s!==null&&!isNaN(e)&&!isNaN(s)}formatCoordinate(e){return this.roundTo(e,6).toString()}roundTo(e,s){let t=Math.pow(10,s);return Math.round(e*t)/t}escapeXML(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}escapeXMLAttribute(e){return typeof e!="string"?String(e||""):e.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">").replace(/\r/g," ").replace(/\n/g," ").replace(/\t/g,"	")}deepClone(e){if(e===null||typeof e!="object")return e;if(e instanceof Date)return new Date(e.getTime());if(Array.isArray(e))return e.map(t=>this.deepClone(t));let s={};for(let t in e)Object.prototype.hasOwnProperty.call(e,t)&&(s[t]=this.deepClone(e[t]));return s}encoder(e){return this.encode(e)}};var pn=J(require("dayjs"),1),ue=class extends se{convertPoints(e){return e.map(s=>this.convertPoint(s)).filter(s=>s!==void 0)}convertTime(e){if(!e)return;if(typeof e=="number")return e;let s=(0,pn.default)(e);return s.isValid()?s.valueOf():void 0}},fe=class{constructor(){this.version="1.0.0";this.priority=100}supports(e){return this.supportedTags.includes(e)}async initialize(e){e.metadata.set(`plugin:${this.name}:initialized`,!0)}async destroy(e){e.metadata.delete(`plugin:${this.name}:initialized`)}async validate(e){return!0}convertTimeToDate(e){return e?new Date(e):new Date}convertTimeToString(e){return this.convertTimeToDate(e).toISOString()}ensureValidCoordinates(e,s){return e>=-90&&e<=90&&s>=-180&&s<=180}round(e,s=6){let t=Math.pow(10,s);return Math.round(e*t)/t}};var mn={heartrate:"heartRate","gpxtpx:hr":"heartRate","ns3:hr":"heartRate","gpxdata:hr":"heartRate","gpxdata:cadence":"cadence","gpxtpx:cad":"cadence","ns3:cad":"cadence",cadence:"cadence","gpxtpx:speed":"speed","ns3:speed":"speed",speed:"speed",power:"power","gpxdata:power":"power","gpxpx:PowerInWatts":"power",PowerInWatts:"power","gpxtpx:temp":"temperature","gpxtpx:wtemp":"wtemp","gpxtpx:atemp":"atemp","gpxx:Temperature":"temperature","gpxx:Depth":"depth"},at=l=>l*(180/Math.pow(2,31)),it=2147483647;function Y(l,e=6){if(l==null)return;let s=typeof l=="number"?l:Number(l);if(!Number.isFinite(s)||s===it)return;let t=at(s),n=Math.pow(10,e);return Math.round(t*n)/n}var _e=J(require("dayjs"),1);var Te=J(require("dayjs"),1),rn=require("geolib"),te=class{calculateRecordsAggMetrics(e){if(!e||e.length===0)return;let s={records:this.preprocessRecords(e)};for(let t=0;t<s.records.length;t++){let n=s.records[t];if(!(n.positionLat==null||n.positionLong==null||!Number.isFinite(n.positionLat)||!Number.isFinite(n.positionLong))){if(s.startPositionLat==null&&(s.startPositionLat=n.positionLat),s.startPositionLong==null&&(s.startPositionLong=n.positionLong),s.endPositionLat=n.positionLat,s.endPositionLong=n.positionLong,s.timestamp=n.timestamp,s?.startTime||(s.startTime=n.timestamp),s.endTime=n.timestamp,s.totalDistance=n.distance,s.totalElapsedTime=(0,Te.default)(n.timestamp).diff((0,Te.default)(s.startTime),"second"),n?.speed&&(s.avgSpeed=s.avgSpeed?(s.avgSpeed+n.speed)/2:n.speed,s.maxSpeed=Math.max(s.maxSpeed||0,n.speed)),n?.heartRate&&(s.maxHeartRate=Math.max(s.maxHeartRate||0,n.heartRate),s.minHeartRate=Math.min(s.minHeartRate||n.heartRate,n.heartRate),s.avgHeartRate?s.avgHeartRate=(s.avgHeartRate+n.heartRate)/2:s.avgHeartRate=n.heartRate),n?.altitude&&(s.maxAltitude=Math.max(s.maxAltitude||0,n.altitude),s.minAltitude=Math.min(s.minAltitude||n.altitude,n.altitude),s.avgAltitude=s.avgAltitude?(s.avgAltitude+n.altitude)/2:n.altitude,t>0&&e[t-1].altitude)){let a=this.calculateElevationChanges(e[t-1],n);s.totalAscent=(s.totalAscent||0)+a.ascent,s.totalDescent=(s.totalDescent||0)+a.descent}if(n?.cadence&&(s.maxCadence=Math.max(s.maxCadence||0,n.cadence),s.avgCadence?s.avgCadence=(s.avgCadence+n.cadence)/2:s.avgCadence=n.cadence),n?.power){s.maxPower=Math.max(s.maxPower||0,n.power),s.avgPower?s.avgPower=(s.avgPower+n.power)/2:s.avgPower=n.power;let a=this.calculateAccumulatedPower(t>0?e[t-1]:n,n,s.totalWork||0);s.totalWork=a.newAccumulatedWork,s.normalizedPower=void 0}n?.temperature&&(s.avgTemperature?s.avgTemperature=(s.avgTemperature+n.temperature)/2:s.avgTemperature=n.temperature,s.maxTemperature=Math.max(s.maxTemperature||0,n.temperature),s.minTemperature=Math.min(s.minTemperature||n.temperature,n.temperature))}}return s}calculateLapAggMetrics(e){if(!e||e.length===0)return;let s={laps:e,timestamp:e[0]?.timestamp||new Date};for(let t=0;t<e.length;t++){let n=e[t];n.startPositionLat&&n.startPositionLong&&!s?.startPositionLat&&!s?.startPositionLong&&(s.startPositionLat=n.startPositionLat,s.startPositionLong=n.startPositionLong),n.endPositionLat&&n.endPositionLong&&(s.endPositionLat=n.endPositionLat,s.endPositionLong=n.endPositionLong),n.startTime&&!s?.startTime&&(s.startTime=n.startTime),n.endTime&&(s.endTime=n.endTime),s.timestamp=n.timestamp||n.endTime||s.timestamp,n.totalDistance&&(s.totalDistance=(s.totalDistance||0)+n.totalDistance),n.totalElapsedTime&&(s.totalElapsedTime=(s.totalElapsedTime||0)+n.totalElapsedTime),n.totalMovingTime&&(s.totalMovingTime=(s.totalMovingTime||0)+n.totalMovingTime),n.totalTimerTime&&(s.totalTimerTime=(s.totalTimerTime||0)+n.totalTimerTime),n.maxSpeed&&(s.maxSpeed=Math.max(s.maxSpeed||0,n.maxSpeed)),n.avgSpeed&&(s.avgSpeed?s.avgSpeed=(s.avgSpeed+n.avgSpeed)/2:s.avgSpeed=n.avgSpeed),n.maxHeartRate&&(s.maxHeartRate=Math.max(s.maxHeartRate||0,n.maxHeartRate)),n.minHeartRate&&(s.minHeartRate=s.minHeartRate?Math.min(s.minHeartRate,n.minHeartRate):n.minHeartRate),n.avgHeartRate&&(s.avgHeartRate?s.avgHeartRate=(s.avgHeartRate+n.avgHeartRate)/2:s.avgHeartRate=n.avgHeartRate),n.maxAltitude&&(s.maxAltitude=Math.max(s.maxAltitude||0,n.maxAltitude)),n.minAltitude&&(s.minAltitude=s.minAltitude?Math.min(s.minAltitude,n.minAltitude):n.minAltitude),n.avgAltitude&&(s.avgAltitude?s.avgAltitude=(s.avgAltitude+n.avgAltitude)/2:s.avgAltitude=n.avgAltitude),n.totalAscent&&(s.totalAscent=(s.totalAscent||0)+n.totalAscent),n.totalDescent&&(s.totalDescent=(s.totalDescent||0)+n.totalDescent),n.maxCadence&&(s.maxCadence=Math.max(s.maxCadence||0,n.maxCadence)),n.avgCadence&&(s.avgCadence?s.avgCadence=(s.avgCadence+n.avgCadence)/2:s.avgCadence=n.avgCadence),n.maxPower&&(s.maxPower=Math.max(s.maxPower||0,n.maxPower)),n.avgPower&&(s.avgPower?s.avgPower=(s.avgPower+n.avgPower)/2:s.avgPower=n.avgPower),n.totalWork&&(s.totalWork=(s.totalWork||0)+n.totalWork),n.maxTemperature&&(s.maxTemperature=Math.max(s.maxTemperature||0,n.maxTemperature)),n.minTemperature&&(s.minTemperature=s.minTemperature?Math.min(s.minTemperature,n.minTemperature):n.minTemperature),n.avgTemperature&&(s.avgTemperature?s.avgTemperature=(s.avgTemperature+n.avgTemperature)/2:s.avgTemperature=n.avgTemperature)}return s}preprocessRecords(e){if(!e||e.length===0)return e;let s=e.filter(i=>i.timestamp).sort((i,o)=>i.timestamp.valueOf()-o.timestamp.valueOf()),t=0,n=0,a=[];for(let i=0;i<s.length;i++){let o=s[i],u={...o};if(i>0){let m=this.calculatePointDistanceByPosition(s[i-1],u)||0;if(u.distance||(n+=m,u.distance=n),o.speed||(u.speed=this.calculateInstantSpeed(s[i-1],u,m)),o.power){let T=this.calculateAccumulatedPower(s[i-1],u,t);u.accumulatedPower=T.accumulatedPower,t=T.newAccumulatedWork}}a.push(u)}return a}calculatePointDistanceByPosition(e,s){if(!(e.positionLat==null||e.positionLong==null||s.positionLat==null||s.positionLong==null||!Number.isFinite(e.positionLat)||!Number.isFinite(e.positionLong)||!Number.isFinite(s.positionLat)||!Number.isFinite(s.positionLong)))try{return(0,rn.getPreciseDistance)({latitude:e.positionLat,longitude:e.positionLong},{latitude:s.positionLat,longitude:s.positionLong})}catch{return}}calculateInstantSpeed(e,s,t){if(!e.timestamp||!s.timestamp||!t)return;let n=((0,Te.default)(s.timestamp).valueOf()-(0,Te.default)(e.timestamp).valueOf())/1e3;if(!(n<=0))return t/n}calculateAccumulatedPower(e,s,t){if(e.power===void 0||s.power===void 0||!e.timestamp||!s.timestamp)return{accumulatedPower:t,newAccumulatedWork:t};let n=s.timestamp?.valueOf()-e.timestamp?.valueOf();if(n<=0)return{accumulatedPower:t,newAccumulatedWork:t};let i=(e.power+s.power)/2*n,o=t+i;return{accumulatedPower:o,newAccumulatedWork:o}}calculateElevationChanges(e,s){let t=0,n=0;return s.altitude!==void 0&&e.altitude!==void 0&&(s.altitude>e.altitude?t=s.altitude-e.altitude:s.altitude<=e.altitude&&(n=e.altitude-s.altitude)),{ascent:t,descent:n}}};var ys=class extends ue{constructor(){super(...arguments);this.name="gpx-to-activity-converter";this.supportedTags=["gpx"];this.convertGPXExtensions=s=>{let t={};return Object.entries(s).forEach(([n,a])=>{if(typeof a<"u"&&a!=="undefined"){let i=mn[n]||n;t[i]=this.autoNumber(a)}}),t}}convert(s,t){if(t.sourceFormat!=="gpx")return;let n=t.sourceData;return this.convertGPX(n)}convertGPX(s){let t={metadata:{originType:"GPX",fileType:"gpx"},activities:[]};return s.wpt&&(t.points=this.convertWpts2Points(s.wpt)),s.trk&&(t.activities=s.trk.map((n,a)=>this.convertTrk2Activity(n,a))),s.rte&&(t.routes=s.rte.map((n,a)=>this.convertRoute2Lap(n,a))),t}convertPoint(s,t,n){let{extensions:a}=s,i=a?this.convertGPXExtensions(a):{};return{lapIndex:n||0,index:t||0,positionLat:s?.lat,positionLong:s?.lon,altitude:s?.ele,heartRate:s?.heartRate,speed:s?.speed,power:s?.power,cadence:s?.cadence,course:s?.course,magvar:s?.magvar,geoidheight:s?.geoidheight,pointName:s?.name,comment:s?.cmt,description:s?.desc,source:s?.src,links:s?.link,symbol:s?.sym,pointType:s?.type,fix:s?.fix,sat:s?.sat,hdop:s?.hdop,vdop:s?.vdop,pdop:s?.pdop,ageofdgpsdata:s?.ageofdgpsdata,dgpsid:s?.dgpsid,gpxExtensions:s?.extensions,timestamp:s.time?(0,_e.default)(s.time).toDate():void 0,...i}}convertTrk2Activity(s,t){let n=s.trkseg?.map((i,o)=>this.convertTrackSeg2Lap(i,o))||[],a=new te().calculateLapAggMetrics(n);return{index:t,messageIndex:t,activityName:s.name,comment:s.cmt,description:s.desc,source:s.src,links:s.link,activityNumber:s.number,sport:s.type,gpxExtensions:s.extensions,laps:n,...a}}convertTrackSeg2Lap(s,t){return{...this.convertPoints2Lap(s.trkpt??[],t),gpxExtensions:s.extensions}}convertRoute2Lap(s,t){return{...this.convertPoints2Lap(s.rtept??[],t,s.name),comment:s.cmt,description:s.desc,source:s.src,links:s.link,routeNumber:s.number,routeType:s.type,gpxExtensions:s.extensions}}convertPoints2Lap(s,t,n){let a=s.map((T,A)=>this.convertPoint(T,A,t)),o=new te().calculateRecordsAggMetrics(a),u=new Map((o?.records??[]).map(T=>[T.index,T])),m=a.map(T=>u.get(T.index)??T);return{index:t,messageIndex:t,routeName:n,...o,records:m,lengths:[]}}convertWpts2Points(s){let t=[];for(let n=0;n<s.length;n++){let a=this.convertPoint(s[n],n);a&&t.push(a)}return t}autoNumber(s){return typeof s=="string"&&s.trim()!==""&&!isNaN(s)?Number(s):s}},hs=class extends ue{constructor(){super(...arguments);this.name="fit-to-activity-converter";this.supportedTags=["fit"]}convert(s,t){if(t.sourceFormat!=="fit")return;let n=t.sourceData;return this.convertFIT(n)}convertFIT(s){let t={metadata:{originType:"FIT",fileType:"fit"},activities:[]};return s.sessionMesgs?.length?t.activities=s.sessionMesgs.map((n,a)=>({index:a,...n,startPositionLat:Y(n?.startPositionLat),startPositionLong:Y(n?.startPositionLong),endPositionLat:Y(n?.endPositionLat),endPositionLong:Y(n?.endPositionLong),laps:this.convertFITLap2Trackseg(n?.lapMesgs)})):s.courseMesgs?.length&&(t.routes=s.courseMesgs.map((n,a)=>({index:a,...n,records:this.convertLap2Points(n?.lapMesgs)}))),t}convertPoint(s,t,n){let{positionLong:a,positionLat:i,altitude:o,enhancedAltitude:u,enhancedSpeed:m,speed:T,...A}=s,R=i??s.position_lat,I=a??s.position_long;return{lapIndex:n||0,index:t||0,positionLat:Y(R),positionLong:Y(I),altitude:o,enhancedAltitude:u,speed:T,enhancedSpeed:m,...A}}convertFITLap2Trackseg(s){let t=[];if(!s?.length)return[];for(let n=0;n<s.length;n++){let a=s[n],i=a?.recordMesgs?.map((u,m)=>this.convertPoint(u,m,n)).filter(u=>u!==void 0)||[],o=a?.lengthMesgs?.map((u,m)=>({...u,index:m}))||[];t.push({index:n,...a,startPositionLat:Y(a?.startPositionLat),startPositionLong:Y(a?.startPositionLong),endPositionLat:Y(a?.endPositionLat),endPositionLong:Y(a?.endPositionLong),records:i,lengths:o})}return t}convertLap2Points(s){let t=[];if(!s?.length)return[];for(let n=0;n<s.length;n++){let i=s[n].recordMesgs?.map((o,u)=>this.convertPoint(o,u,n)).filter(o=>o!==void 0)||[];i.length&&(t=[...t,...i])}return t}},Rs=class extends ue{constructor(){super(...arguments);this.name="tcx-to-activity-converter";this.supportedTags=["tcx"]}convert(s,t){if(t.sourceFormat!=="tcx")return;let n=t.sourceData;return this.convertTCX(n)}convertTCX(s){let t={metadata:{originType:"TCX",fileType:"tcx"},activities:[]};s.Activities?.Activity?.length&&(t.activities=s.Activities.Activity.map((i,o)=>this.convertTCXActivityToActivity(i,o)));let n=s.Courses?.Course,a=n==null?[]:Array.isArray(n)?n:[n];return a.length&&(t.routes=a.map((i,o)=>this.convertTCXCourseToRoute(i,o))),t}convertTCXCourseToRoute(s,t){let n=[],a=0,i=h=>h==null?[]:Array.isArray(h)?h:[h],o=h=>{for(let M of h??[])for(let D of M.Trackpoint??[])D==null||D.Time===void 0||n.push(this.convertPoint(D,a++,t))};o(i(s.Track));let u=s.Lap==null?[]:Array.isArray(s.Lap)?s.Lap:[s.Lap];for(let h of u)o(i(h.Track));let m=n.length,T=n[0]?.timestamp!=null?(0,_e.default)(n[0].timestamp):(0,_e.default)("2000-01-01T00:00:00Z"),A=s.CoursePoint==null?[]:Array.isArray(s.CoursePoint)?s.CoursePoint:[s.CoursePoint];for(let h of A){let M=this.convertTCXCoursePointToRecord(h,m++,t,T);M&&n.push(M)}let R=new te,I=n.length>0?R.calculateRecordsAggMetrics(n):{records:n};return{index:t,messageIndex:t,routeName:s.Name,...I,records:I?.records??n,lengths:[]}}convertTCXCoursePointToRecord(s,t,n,a){let i=s.Position?.LatitudeDegrees?Number(s.Position.LatitudeDegrees):void 0,o=s.Position?.LongitudeDegrees?Number(s.Position.LongitudeDegrees):void 0;if(i==null&&o==null&&s.AltitudeMeters==null)return;let u=typeof s.Time=="number"&&Number.isFinite(s.Time)?a.add(s.Time,"second").toDate():a.add(t,"second").toDate();return{lapIndex:n,index:t,positionLat:i,positionLong:o,altitude:s.AltitudeMeters,timestamp:u}}convertTCXActivityToActivity(s,t){let n=s.Lap?.map((i,o)=>this.convertTCXLap2Lap(i,o))||[],a=new te().calculateLapAggMetrics(n);return{index:t,messageIndex:t,sport:s.Sport?.toLowerCase(),laps:n,...a}}convertTCXLap2Lap(s,t){let a=(s?.Track?.flatMap(u=>u.Trackpoint)||[])?.filter(u=>u!==void 0&&u.Time!==void 0).map((u,m)=>this.convertPoint(u,m))||[],o=new te().calculateRecordsAggMetrics(a);return{index:t,messageIndex:t,...o,records:o?.records||[],lengths:[]}}convertPoint(s,t,n){let{Position:a,Time:i,DistanceMeters:o,AltitudeMeters:u}=s;return{lapIndex:n||0,index:t||0,positionLat:a?.LatitudeDegrees?Number(a.LatitudeDegrees):void 0,positionLong:a?.LongitudeDegrees?Number(a.LongitudeDegrees):void 0,timestamp:(0,_e.default)(i).toDate(),distance:o,altitude:u}}};var dn=J(require("dayjs"),1);var gs=class extends fe{constructor(){super(...arguments);this.name="activity-to-gpx-encoder";this.supportedTags=["gpx"]}encode(s,t){if(t.targetFormat!=="gpx"||!s?.activities?.length&&!s?.routes?.length&&!s?.points?.length)return;let n=s.activities?.[0]?.timestamp??s.routes?.[0]?.records?.[0]?.timestamp??s.points?.[0]?.timestamp??new Date,a=this.countRecordsMissingGpxCoordinates(s),i={version:"1.1",creator:"TrackSwap",metadata:{time:n,...a>0?{desc:`TrackSwap: omitted ${a} trackpoint(s) without valid latitude/longitude.`}:{}}};return s.points?.length&&(i.wpt=this.convertRecords2Wpts(s.points)),s.routes?.length&&(i.rte=s.routes.map(o=>this.convertRoute2GPXRoute(o))),s.activities?.length&&(i.trk=s.activities.map(o=>this.convertActivity2GPXTrack(o))),i}hasValidGpxCoordinates(s){let t=s.positionLat,n=s.positionLong;return typeof t=="number"&&typeof n=="number"&&Number.isFinite(t)&&Number.isFinite(n)&&t>=-90&&t<=90&&n>=-180&&n<=180}countRecordsMissingGpxCoordinates(s){let t=0,n=a=>{for(let i of a??[])this.hasValidGpxCoordinates(i)||t++};n(s.points);for(let a of s.activities??[])for(let i of a.laps??[])n(i.records);for(let a of s.routes??[])n(a.records);return t}convertRecords2Wpts(s){return s?.filter(t=>this.hasValidGpxCoordinates(t)).map(t=>({lat:t?.positionLat,lon:t?.positionLong,ele:t?.altitude,time:t?.timestamp,speed:t?.speed,course:t?.course,magvar:t?.magvar,geoidheight:t?.geoidheight,name:t?.pointName,cmt:t?.comment,desc:t?.description,src:t?.source,link:t?.links,sym:t?.symbol,type:t?.pointType,fix:t?.fix,sat:t?.sat,hdop:t?.hdop,vdop:t?.vdop,pdop:t?.pdop,ageofdgpsdata:t?.ageofdgpsdata,dgpsid:t?.dgpsid,extensions:this.extractGPXExtensions(t)}))??[]}convertRoute2GPXRoute(s){return{name:s.routeName,cmt:s.comment,desc:s.description,src:s.source,link:s.links,number:s.routeNumber,type:s.routeType,extensions:s.gpxExtensions,rtept:s.records?this.convertRecords2Wpts(s.records):[]}}convertActivity2GPXTrack(s){return{name:s.activityName,cmt:s.comment,desc:s.description,src:s.source,link:s.links,number:s.activityNumber,type:s.sport,extensions:s.gpxExtensions,trkseg:s.laps?.map(t=>({trkpt:t.records?this.convertRecords2Wpts(t.records):[],extensions:t.gpxExtensions}))||[]}}extractGPXExtensions(s){let t={...s.gpxExtensions??{}},n={...t["gpxtpx:TrackPointExtension"]??{}};return typeof s?.heartRate<"u"&&(n["gpxtpx:hr"]=s.heartRate),typeof s?.cadence<"u"&&(n["gpxtpx:cad"]=s.cadence),typeof s?.speed<"u"&&(n["gpxtpx:speed"]=s.speed),typeof s?.temperature<"u"&&(n["gpxtpx:atemp"]=s.temperature),Object.keys(n).length>0&&(t["gpxtpx:TrackPointExtension"]=n),typeof s?.power<"u"&&(t["gpxpx:PowerExtension"]={"gpxpx:PowerInWatts":s.power}),Object.keys(t).length>0?t:void 0}},Ls=class extends fe{constructor(){super(...arguments);this.name="activity-to-fit-encoder";this.supportedTags=["fit"]}encode(s,t){if(t.targetFormat==="fit"){if(s?.activities?.length){let n={};return n.sessionMesgs=s.activities.map(a=>this.convertActivity2FITSession(a)),n}if(s?.routes?.length){let n={};return n.sessionMesgs=[this.convertRoutesToSyntheticSession(s.routes)],n}}}convertRoutesToSyntheticSession(s){let t=s.map(m=>this.convertLap2FITLap(m)),a=s.flatMap(m=>m.records??[]).filter(m=>m.timestamp!=null).sort((m,T)=>new Date(m.timestamp).getTime()-new Date(T.timestamp).getTime()),i=a[0]?.timestamp??new Date,o=a[a.length-1]?.timestamp??i,u=a.find(m=>m.positionLat!=null&&m.positionLong!=null&&Number.isFinite(m.positionLat)&&Number.isFinite(m.positionLong));return{messageIndex:0,timestamp:o,event:"session",eventType:"stop",startTime:i,startPositionLat:u?.positionLat,startPositionLong:u?.positionLong,sport:"generic",subSport:"generic",lapMesgs:t}}convertActivity2FITSession(s){return{...s,event:s?.event||"session",sport:s?.sport||"generic",lapMesgs:s.laps?.map(n=>this.convertLap2FITLap(n))||[]}}convertLap2FITLap(s){return{startTime:s.startTime,...s,recordMesgs:s.records?.map(n=>this.convertPoint2FITRecord(n))||[]}}convertPoint2FITRecord(s){return s}},Cs=class extends fe{constructor(){super(...arguments);this.name="sport-to-tcx-encoder";this.supportedTags=["tcx"]}encode(s,t){if(t.targetFormat!=="tcx")return;let n=!!s?.activities?.length,a=!!s?.routes?.length;if(!n&&!a)return;let i={version:"1.0",Author:{Name:"TrackSwap"}};return n&&(i.Activities={Activity:s.activities.map(o=>this.convertActivity2TCXActivity(o))}),a&&(i.Courses={Course:s.routes.map((o,u)=>this.convertRouteToTCXCourse(o,u))}),i}convertActivity2TCXActivity(s){if(!s.laps?.length)throw new Error("Cannot encode a TCX activity without laps");let t="Other",n=s.sport?.toLowerCase();return n==="running"&&(t="Running"),(n==="biking"||n==="cycling")&&(t="Biking"),{Id:this.validTimestamp(s.startTime??s.laps[0]?.startTime??s.laps[0]?.records?.[0]?.timestamp),Sport:t,Lap:s.laps.map(i=>this.convertLap2TCXLap(i))}}convertLap2TCXLap(s){let n={StartTime:this.validTimestamp(s.startTime??s.records?.[0]?.timestamp),TotalTimeSeconds:s.totalElapsedTime,DistanceMeters:s.totalDistance,MaximumSpeed:s.maxSpeed,Calories:s.totalCalories,AverageHeartRateBpm:s.avgHeartRate,MaximumHeartRateBpm:s.maxHeartRate,Intensity:"Active",TriggerMethod:"Manual",Track:s.records?[this.convertRecords2TCXTrack(s.records)]:[]};return(s.avgCadence!==void 0||s.maxCadence!==void 0)&&(n.Cadence={Low:s.avgCadence||0,High:s.maxCadence||0}),n}convertRecords2TCXTrack(s){return{Trackpoint:s.map(t=>this.convertPoint2TCXTrackpoint(t))}}convertPoint2TCXTrackpoint(s){let t={Time:this.validTimestamp(s.timestamp),Position:{LatitudeDegrees:s?.positionLat?.toString(),LongitudeDegrees:s?.positionLong?.toString()},AltitudeMeters:s.altitude,DistanceMeters:s.distance};return s.heartRate&&(t.HeartRateBpm=s.heartRate),s.cadence&&(t.Cadence={Low:s.cadence,High:s.cadence256||s.cadence}),s.power&&(t.Extensions={"ns3:TPX":{"ns3:Watts":s.power}}),t}validTimestamp(s){let t=(0,dn.default)(s);if(!s||!t.isValid())throw new Error("Cannot encode TCX data without valid timestamps");return t.toISOString()}convertRouteToTCXCourse(s,t){return{Name:s.routeName??`Course_${t}`,Track:s.records?[this.convertRecords2TCXTrack(s.records)]:[]}}};var Es=class{constructor(){this.converters=new Map;this.encoders=new Map;this.registerDefaultConverters(),this.registerDefaultEncoders()}registerDefaultConverters(){this.registerConverter(new ys),this.registerConverter(new hs),this.registerConverter(new Rs)}registerDefaultEncoders(){this.registerEncoder(new gs),this.registerEncoder(new Ls),this.registerEncoder(new Cs)}registerConverter(e){this.converters.set(e.name,e)}registerEncoder(e){this.encoders.set(e.name,e)}async convertToActivity(e,s){let t={metadata:new Map,errors:[],warnings:[],stats:{startTime:Date.now(),processedTokens:0,convertedElements:0},sourceFormat:s,sourceData:e,performance:{startTime:Date.now()}};try{let n=this.findConverter(s);if(!n)throw new Error(`No converter found for format "${s}"`);let a=Date.now(),i=n.convert(e,t);if(t.performance.convertTime=Date.now()-a,!i)throw new Error(`Converter "${n.name}" returned empty result`);let o=i;return t.result=o,t.performance.endTime=Date.now(),t.stats.endTime=Date.now(),o}catch(n){throw t.errors.push(n),n}}async encodeActivity(e,s){let t={metadata:new Map,errors:[],warnings:[],stats:{startTime:Date.now(),processedTokens:0,convertedElements:0},targetFormat:s,performance:{startTime:Date.now()}};try{let n=this.findEncoder(s);if(!n)throw new Error(`No encoder found for format "${s}"`);let a=Date.now(),i=n.encode(e,t);if(t.performance.encodeTime=Date.now()-a,!i)throw new Error(`Encoder "${n.name}" returned empty result`);return t.result=i,t.performance.endTime=Date.now(),t.stats.endTime=Date.now(),i}catch(n){throw t.errors.push(n),n}}findConverter(e){return Array.from(this.converters.values()).find(s=>s.supportedTags?.includes(e))}findEncoder(e){return Array.from(this.encoders.values()).find(s=>s.supportedTags?.includes(e))}async destroy(){this.converters.clear(),this.encoders.clear()}};var Tn=8,Ha=".FIT";function wa(l){return l.toString("utf8",0,Math.min(l.length,4096)).replace(/^\uFEFF/,"")}function va(l){if(l.length>=12&&l.toString("ascii",Tn,Tn+4)===Ha)return"fit";let e=wa(l);if(/<gpx\b/i.test(e))return"gpx";if(/<TrainingCenterDatabase\b/i.test(e))return"tcx"}var Ae=class{constructor(e){this.activities=e}matches(e){return va(e)===this.format}},lt=class extends Ae{constructor(){super(...arguments);this.format="fit"}getDecoder(){return this.decoder??=new Ge}getEncoder(){return this.encoder??=new We}async decode(s,t){let n=await this.getDecoder().parseByBuffer(s,{userData:{fitDocumentOptions:t.fit??{}}});if(!n)throw new Error("FIT decoder returned an empty result");let a=n.fitDocumentMetadata?.detectedKinds??["unknown"],i=a.includes("activity")?await this.activities.convertToActivity(n,"fit"):void 0,o=n.healthDocument?.diagnostics??{parserVersion:me,messageCounts:n.fitDocumentMetadata?.messageCounts??{},recognizedMessageCounts:{},unknownMessageCounts:{},invalidValueCounts:{},warningCounts:{},warnings:[]},u=n.fileIdMesgs?.[0],m=u,T=n.fileCreatorMesgs?.[0];return{kinds:[...a],facets:{activity:i,health:n.healthDocument},native:n,metadata:{fileType:u?.type,manufacturer:u?.manufacturer,product:u?.garminProduct??u?.product,productName:typeof m?.productName=="string"?m.productName:void 0,serialNumber:u?.serialNumber===void 0?void 0:String(u.serialNumber),createdAt:u?.timeCreated?new Date(u.timeCreated):void 0,softwareVersion:T?.softwareVersion},fitDiagnostics:o,warnings:o.warnings.map(A=>A.message)}}async encodeActivity(s){let t=await this.activities.encodeActivity(s,"fit");return this.getEncoder().encode(t)}async encodeCourse(s){return Buffer.from(an(bt(s)))}async dispose(){await this.decoder?.destroy()}},ot=class extends Ae{constructor(){super(...arguments);this.format="gpx"}getDecoder(){return this.decoder??=new ts}getEncoder(){return this.encoder??=new ns}async decode(s){let t=await this.getDecoder().parserByBuffer(s);if(!t)throw new Error("GPX decoder returned an empty result");let n=await this.activities.convertToActivity(t,"gpx"),a=[];return n.activities?.length&&a.push("activity"),n.routes?.length&&a.push("route"),n.points?.length&&a.push("waypoint"),a.length===0&&a.push("unknown"),{kinds:a,facets:{activity:n},native:t,metadata:{title:t.metadata?.name,creator:t.creator,createdAt:t.metadata?.time}}}async encodeActivity(s){let t=await this.activities.encodeActivity(s,"gpx");return this.getEncoder().encode(t)}async dispose(){await this.decoder?.destroy()}},ut=class extends Ae{constructor(){super(...arguments);this.format="tcx"}getDecoder(){return this.decoder??=new bs}getEncoder(){return this.encoder??=new Is}async decode(s){let t=await this.getDecoder().parseByBuffer(s);if(!t)throw new Error("TCX decoder returned an empty result");let n=await this.activities.convertToActivity(t,"tcx");return{kinds:n.activities?.length?["activity"]:n.routes?.length?["course"]:["unknown"],facets:{activity:n},native:t,metadata:{creator:t.Author?.Name??t.creator}}}async encodeActivity(s){let t=await this.activities.encodeActivity(s,"tcx");return this.getEncoder().encode(t)}async dispose(){await this.decoder?.destroy()}};function _n(){let l=new Es;return{adapters:[new lt(l),new ot(l),new ut(l)],activities:l}}function An(l){return l.format==="fit"&&"encodeCourse"in l}var Ss=class{constructor(e){this.adapters=new Map;for(let s of e){if(this.adapters.has(s.format))throw new k("ADAPTER_CONFLICT",`Multiple adapters registered for format "${s.format}"`,{format:s.format});this.adapters.set(s.format,s)}}get(e){let s=this.adapters.get(e);if(!s)throw new k("FORMAT_UNSUPPORTED",`No adapter registered for format "${e}"`,{format:e});return s}detect(e){for(let s of this.adapters.values())if(s.matches(e))return s.format;throw new k("FORMAT_UNKNOWN","Unable to detect input format")}async dispose(){await Promise.all([...this.adapters.values()].map(e=>e.dispose?.()))}};function ft(l){return typeof l=="string"?Buffer.from(l,"utf8"):Buffer.isBuffer(l)?l:Buffer.from(l.buffer,l.byteOffset,l.byteLength)}function Ua(l){return typeof l=="string"||Buffer.isBuffer(l)||l instanceof Uint8Array}var ce=class{constructor(e={}){this.disposed=!1;let t=[...e.includeBuiltInAdapters===!1?[]:_n().adapters,...e.adapters??[]];this.registry=new Ss(t)}detect(e){return this.assertActive(),this.registry.detect(ft(e))}async decode(e,s={}){this.assertActive();let t=ft(e),n=s.format??this.registry.detect(t),a=this.registry.get(n),i=Date.now();try{let o=await a.decode(t,s);return{schemaVersion:"2",format:n,kinds:[...new Set(o.kinds)],source:{byteLength:t.byteLength},metadata:o.metadata??{},facets:o.facets,...s.includeNative?{native:o.native}:{},diagnostics:{durationMs:Date.now()-i,warnings:o.warnings??[],fit:o.fitDiagnostics}}}catch(o){throw Ie(o,"DECODE_FAILED",`Failed to decode ${n.toUpperCase()}`,n)}}async decodeActivity(e,s={}){let t=await this.decode(e,s);if(!t.facets.activity)throw new k("ACTIVITY_NOT_FOUND",`The ${t.format.toUpperCase()} document has no activity facet`,{format:t.format});return t.facets.activity}async encodeActivity(e,s){this.assertActive();try{return await this.registry.get(s.format).encodeActivity(e)}catch(t){throw Ie(t,"ENCODE_FAILED",`Failed to encode ${s.format.toUpperCase()}`,s.format)}}async transcode(e,s){this.assertActive();let t=ft(e),n=s.sourceFormat??this.registry.detect(t);if(n===s.format)return Buffer.from(t);let a=await this.decodeActivity(t,{format:n});return this.encodeActivity(a,{format:s.format})}async encodeCourse(e,s={}){this.assertActive();let t=Ua(e)?await this.decodeActivity(e,{format:s.sourceFormat}):e,n=this.registry.get("fit");if(!An(n))throw new k("FORMAT_UNSUPPORTED","The registered FIT adapter does not support course encoding",{format:"fit"});try{return await n.encodeCourse(t)}catch(a){throw Ie(a,"ENCODE_FAILED","Failed to encode FIT course","fit")}}async dispose(){this.disposed||(this.disposed=!0,await this.registry.dispose())}assertActive(){if(this.disposed)throw new k("DISPOSED","TrackSwap instance is disposed")}};0&&(module.exports={FIT_SEMICIRCLE_INVALID_SINT32,TRACKSWAP_HEALTH_PARSER_VERSION,TrackSwap,TrackSwapError,buildHealthDocumentFromMessages,detectFITKinds,normalizeFitSemicircleToDegrees,semicirclesToDegrees});
|
|
29
|
+
`)}buildCoursePoint(e){let s=["<CoursePoint>"];return this.addOptionalElement(s,"Name",e.Name),e.Time!==void 0&&e.Time!==null&&s.push(`<Time>${e.Time}</Time>`),e.Position&&s.push(this.buildPosition(e.Position)),this.addOptionalNumericElement(s,"AltitudeMeters",e.AltitudeMeters),this.addOptionalElement(s,"PointType",e.PointType),this.addOptionalElement(s,"Notes",e.Notes),e.Extensions&&s.push(this.buildExtensions(e.Extensions)),s.push("</CoursePoint>"),s.join("")}buildAuthor(e){let s=["<Author>"];return this.addOptionalElement(s,"Name",e.Name),s.push("</Author>"),s.join("")}buildExtensions(e){let s=this.buildExtensionContent(e);return s?`<Extensions>${s}</Extensions>`:""}buildExtensionContent(e){return Object.entries(e).filter(([s])=>!s.startsWith("xmlns")).map(([s,t])=>{if(t&&typeof t=="object"){let n=this.buildExtensionContent(t);return`<${s}>${n}</${s}>`}else if(t!=null)return`<${s}>${this.escapeXML(String(t))}</${s}>`;return""}).filter(s=>s).join("")}formatTime(e){let s=(0,Zs.default)(e);if(!s.isValid())throw new Error(`Cannot encode invalid TCX timestamp: ${String(e)}`);return s.toISOString()}addOptionalElement(e,s,t,n){if(t!=null&&t!==""){let a=n?n(t):this.escapeXML(t);e.push(`<${s}>${a}</${s}>`)}}addOptionalNumericElement(e,s,t){t!=null&&!isNaN(t)&&e.push(`<${s}>${t}</${s}>`)}isValidCoordinate(e,s){return e!=null&&s!==void 0&&s!==null&&!isNaN(e)&&!isNaN(s)}formatCoordinate(e){return this.roundTo(e,6).toString()}roundTo(e,s){let t=Math.pow(10,s);return Math.round(e*t)/t}escapeXML(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}escapeXMLAttribute(e){return typeof e!="string"?String(e||""):e.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">").replace(/\r/g," ").replace(/\n/g," ").replace(/\t/g,"	")}deepClone(e){if(e===null||typeof e!="object")return e;if(e instanceof Date)return new Date(e.getTime());if(Array.isArray(e))return e.map(t=>this.deepClone(t));let s={};for(let t in e)Object.prototype.hasOwnProperty.call(e,t)&&(s[t]=this.deepClone(e[t]));return s}encoder(e){return this.encode(e)}};var sn=k(require("dayjs"),1),ae=class extends j{convertPoints(e){return e.map(s=>this.convertPoint(s)).filter(s=>s!==void 0)}convertTime(e){if(!e)return;if(typeof e=="number")return e;let s=(0,sn.default)(e);return s.isValid()?s.valueOf():void 0}},ie=class{constructor(){this.version="1.0.0";this.priority=100}supports(e){return this.supportedTags.includes(e)}async initialize(e){e.metadata.set(`plugin:${this.name}:initialized`,!0)}async destroy(e){e.metadata.delete(`plugin:${this.name}:initialized`)}async validate(e){return!0}convertTimeToDate(e){return e?new Date(e):new Date}convertTimeToString(e){return this.convertTimeToDate(e).toISOString()}ensureValidCoordinates(e,s){return e>=-90&&e<=90&&s>=-180&&s<=180}round(e,s=6){let t=Math.pow(10,s);return Math.round(e*t)/t}};var tn={heartrate:"heartRate","gpxtpx:hr":"heartRate","ns3:hr":"heartRate","gpxdata:hr":"heartRate","gpxdata:cadence":"cadence","gpxtpx:cad":"cadence","ns3:cad":"cadence",cadence:"cadence","gpxtpx:speed":"speed","ns3:speed":"speed",speed:"speed",power:"power","gpxdata:power":"power","gpxpx:PowerInWatts":"power",PowerInWatts:"power","gpxtpx:temp":"temperature","gpxtpx:wtemp":"wtemp","gpxtpx:atemp":"atemp","gpxx:Temperature":"temperature","gpxx:Depth":"depth"},qs=l=>l*(180/Math.pow(2,31)),xs=2147483647;function W(l,e=6){if(l==null)return;let s=typeof l=="number"?l:Number(l);if(!Number.isFinite(s)||s===xs)return;let t=qs(s),n=Math.pow(10,e);return Math.round(t*n)/n}var de=k(require("dayjs"),1);var me=k(require("dayjs"),1),nn=require("geolib"),Z=class{calculateRecordsAggMetrics(e){if(!e||e.length===0)return;let s={records:this.preprocessRecords(e)};for(let t=0;t<s.records.length;t++){let n=s.records[t];if(!(n.positionLat==null||n.positionLong==null||!Number.isFinite(n.positionLat)||!Number.isFinite(n.positionLong))){if(s.startPositionLat==null&&(s.startPositionLat=n.positionLat),s.startPositionLong==null&&(s.startPositionLong=n.positionLong),s.endPositionLat=n.positionLat,s.endPositionLong=n.positionLong,s.timestamp=n.timestamp,s?.startTime||(s.startTime=n.timestamp),s.endTime=n.timestamp,s.totalDistance=n.distance,s.totalElapsedTime=(0,me.default)(n.timestamp).diff((0,me.default)(s.startTime),"second"),n?.speed&&(s.avgSpeed=s.avgSpeed?(s.avgSpeed+n.speed)/2:n.speed,s.maxSpeed=Math.max(s.maxSpeed||0,n.speed)),n?.heartRate&&(s.maxHeartRate=Math.max(s.maxHeartRate||0,n.heartRate),s.minHeartRate=Math.min(s.minHeartRate||n.heartRate,n.heartRate),s.avgHeartRate?s.avgHeartRate=(s.avgHeartRate+n.heartRate)/2:s.avgHeartRate=n.heartRate),n?.altitude&&(s.maxAltitude=Math.max(s.maxAltitude||0,n.altitude),s.minAltitude=Math.min(s.minAltitude||n.altitude,n.altitude),s.avgAltitude=s.avgAltitude?(s.avgAltitude+n.altitude)/2:n.altitude,t>0&&e[t-1].altitude)){let a=this.calculateElevationChanges(e[t-1],n);s.totalAscent=(s.totalAscent||0)+a.ascent,s.totalDescent=(s.totalDescent||0)+a.descent}if(n?.cadence&&(s.maxCadence=Math.max(s.maxCadence||0,n.cadence),s.avgCadence?s.avgCadence=(s.avgCadence+n.cadence)/2:s.avgCadence=n.cadence),n?.power){s.maxPower=Math.max(s.maxPower||0,n.power),s.avgPower?s.avgPower=(s.avgPower+n.power)/2:s.avgPower=n.power;let a=this.calculateAccumulatedPower(t>0?e[t-1]:n,n,s.totalWork||0);s.totalWork=a.newAccumulatedWork,s.normalizedPower=void 0}n?.temperature&&(s.avgTemperature?s.avgTemperature=(s.avgTemperature+n.temperature)/2:s.avgTemperature=n.temperature,s.maxTemperature=Math.max(s.maxTemperature||0,n.temperature),s.minTemperature=Math.min(s.minTemperature||n.temperature,n.temperature))}}return s}calculateLapAggMetrics(e){if(!e||e.length===0)return;let s={laps:e,timestamp:e[0]?.timestamp||new Date};for(let t=0;t<e.length;t++){let n=e[t];n.startPositionLat&&n.startPositionLong&&!s?.startPositionLat&&!s?.startPositionLong&&(s.startPositionLat=n.startPositionLat,s.startPositionLong=n.startPositionLong),n.endPositionLat&&n.endPositionLong&&(s.endPositionLat=n.endPositionLat,s.endPositionLong=n.endPositionLong),n.startTime&&!s?.startTime&&(s.startTime=n.startTime),n.endTime&&(s.endTime=n.endTime),s.timestamp=n.timestamp||n.endTime||s.timestamp,n.totalDistance&&(s.totalDistance=(s.totalDistance||0)+n.totalDistance),n.totalElapsedTime&&(s.totalElapsedTime=(s.totalElapsedTime||0)+n.totalElapsedTime),n.totalMovingTime&&(s.totalMovingTime=(s.totalMovingTime||0)+n.totalMovingTime),n.totalTimerTime&&(s.totalTimerTime=(s.totalTimerTime||0)+n.totalTimerTime),n.maxSpeed&&(s.maxSpeed=Math.max(s.maxSpeed||0,n.maxSpeed)),n.avgSpeed&&(s.avgSpeed?s.avgSpeed=(s.avgSpeed+n.avgSpeed)/2:s.avgSpeed=n.avgSpeed),n.maxHeartRate&&(s.maxHeartRate=Math.max(s.maxHeartRate||0,n.maxHeartRate)),n.minHeartRate&&(s.minHeartRate=s.minHeartRate?Math.min(s.minHeartRate,n.minHeartRate):n.minHeartRate),n.avgHeartRate&&(s.avgHeartRate?s.avgHeartRate=(s.avgHeartRate+n.avgHeartRate)/2:s.avgHeartRate=n.avgHeartRate),n.maxAltitude&&(s.maxAltitude=Math.max(s.maxAltitude||0,n.maxAltitude)),n.minAltitude&&(s.minAltitude=s.minAltitude?Math.min(s.minAltitude,n.minAltitude):n.minAltitude),n.avgAltitude&&(s.avgAltitude?s.avgAltitude=(s.avgAltitude+n.avgAltitude)/2:s.avgAltitude=n.avgAltitude),n.totalAscent&&(s.totalAscent=(s.totalAscent||0)+n.totalAscent),n.totalDescent&&(s.totalDescent=(s.totalDescent||0)+n.totalDescent),n.maxCadence&&(s.maxCadence=Math.max(s.maxCadence||0,n.maxCadence)),n.avgCadence&&(s.avgCadence?s.avgCadence=(s.avgCadence+n.avgCadence)/2:s.avgCadence=n.avgCadence),n.maxPower&&(s.maxPower=Math.max(s.maxPower||0,n.maxPower)),n.avgPower&&(s.avgPower?s.avgPower=(s.avgPower+n.avgPower)/2:s.avgPower=n.avgPower),n.totalWork&&(s.totalWork=(s.totalWork||0)+n.totalWork),n.maxTemperature&&(s.maxTemperature=Math.max(s.maxTemperature||0,n.maxTemperature)),n.minTemperature&&(s.minTemperature=s.minTemperature?Math.min(s.minTemperature,n.minTemperature):n.minTemperature),n.avgTemperature&&(s.avgTemperature?s.avgTemperature=(s.avgTemperature+n.avgTemperature)/2:s.avgTemperature=n.avgTemperature)}return s}preprocessRecords(e){if(!e||e.length===0)return e;let s=e.filter(i=>i.timestamp).sort((i,o)=>i.timestamp.valueOf()-o.timestamp.valueOf()),t=0,n=0,a=[];for(let i=0;i<s.length;i++){let o=s[i],u={...o};if(i>0){let p=this.calculatePointDistanceByPosition(s[i-1],u)||0;if(u.distance||(n+=p,u.distance=n),o.speed||(u.speed=this.calculateInstantSpeed(s[i-1],u,p)),o.power){let T=this.calculateAccumulatedPower(s[i-1],u,t);u.accumulatedPower=T.accumulatedPower,t=T.newAccumulatedWork}}a.push(u)}return a}calculatePointDistanceByPosition(e,s){if(!(e.positionLat==null||e.positionLong==null||s.positionLat==null||s.positionLong==null||!Number.isFinite(e.positionLat)||!Number.isFinite(e.positionLong)||!Number.isFinite(s.positionLat)||!Number.isFinite(s.positionLong)))try{return(0,nn.getPreciseDistance)({latitude:e.positionLat,longitude:e.positionLong},{latitude:s.positionLat,longitude:s.positionLong})}catch{return}}calculateInstantSpeed(e,s,t){if(!e.timestamp||!s.timestamp||!t)return;let n=((0,me.default)(s.timestamp).valueOf()-(0,me.default)(e.timestamp).valueOf())/1e3;if(!(n<=0))return t/n}calculateAccumulatedPower(e,s,t){if(e.power===void 0||s.power===void 0||!e.timestamp||!s.timestamp)return{accumulatedPower:t,newAccumulatedWork:t};let n=s.timestamp?.valueOf()-e.timestamp?.valueOf();if(n<=0)return{accumulatedPower:t,newAccumulatedWork:t};let i=(e.power+s.power)/2*n,o=t+i;return{accumulatedPower:o,newAccumulatedWork:o}}calculateElevationChanges(e,s){let t=0,n=0;return s.altitude!==void 0&&e.altitude!==void 0&&(s.altitude>e.altitude?t=s.altitude-e.altitude:s.altitude<=e.altitude&&(n=e.altitude-s.altitude)),{ascent:t,descent:n}}};var _s=class extends ae{constructor(){super(...arguments);this.name="gpx-to-activity-converter";this.supportedTags=["gpx"];this.convertGPXExtensions=s=>{let t={};return Object.entries(s).forEach(([n,a])=>{if(typeof a<"u"&&a!=="undefined"){let i=tn[n]||n;t[i]=this.autoNumber(a)}}),t}}convert(s,t){if(t.sourceFormat!=="gpx")return;let n=t.sourceData;return this.convertGPX(n)}convertGPX(s){let t={metadata:{originType:"GPX",fileType:"gpx"},activities:[]};return s.wpt&&(t.points=this.convertWpts2Points(s.wpt)),s.trk&&(t.activities=s.trk.map((n,a)=>this.convertTrk2Activity(n,a))),s.rte&&(t.routes=s.rte.map((n,a)=>this.convertRoute2Lap(n,a))),t}convertPoint(s,t,n){let{extensions:a}=s,i=a?this.convertGPXExtensions(a):{};return{lapIndex:n||0,index:t||0,positionLat:s?.lat,positionLong:s?.lon,altitude:s?.ele,heartRate:s?.heartRate,speed:s?.speed,power:s?.power,cadence:s?.cadence,course:s?.course,magvar:s?.magvar,geoidheight:s?.geoidheight,pointName:s?.name,comment:s?.cmt,description:s?.desc,source:s?.src,links:s?.link,symbol:s?.sym,pointType:s?.type,fix:s?.fix,sat:s?.sat,hdop:s?.hdop,vdop:s?.vdop,pdop:s?.pdop,ageofdgpsdata:s?.ageofdgpsdata,dgpsid:s?.dgpsid,gpxExtensions:s?.extensions,timestamp:s.time?(0,de.default)(s.time).toDate():void 0,...i}}convertTrk2Activity(s,t){let n=s.trkseg?.map((i,o)=>this.convertTrackSeg2Lap(i,o))||[],a=new Z().calculateLapAggMetrics(n);return{index:t,messageIndex:t,activityName:s.name,comment:s.cmt,description:s.desc,source:s.src,links:s.link,activityNumber:s.number,sport:s.type,gpxExtensions:s.extensions,laps:n,...a}}convertTrackSeg2Lap(s,t){return{...this.convertPoints2Lap(s.trkpt??[],t),gpxExtensions:s.extensions}}convertRoute2Lap(s,t){return{...this.convertPoints2Lap(s.rtept??[],t,s.name),comment:s.cmt,description:s.desc,source:s.src,links:s.link,routeNumber:s.number,routeType:s.type,gpxExtensions:s.extensions}}convertPoints2Lap(s,t,n){let a=s.map((T,r)=>this.convertPoint(T,r,t)),o=new Z().calculateRecordsAggMetrics(a),u=new Map((o?.records??[]).map(T=>[T.index,T])),p=a.map(T=>u.get(T.index)??T);return{index:t,messageIndex:t,routeName:n,...o,records:p,lengths:[]}}convertWpts2Points(s){let t=[];for(let n=0;n<s.length;n++){let a=this.convertPoint(s[n],n);a&&t.push(a)}return t}autoNumber(s){return typeof s=="string"&&s.trim()!==""&&!isNaN(s)?Number(s):s}},As=class extends ae{constructor(){super(...arguments);this.name="fit-to-activity-converter";this.supportedTags=["fit"]}convert(s,t){if(t.sourceFormat!=="fit")return;let n=t.sourceData;return this.convertFIT(n)}convertFIT(s){let t={metadata:{originType:"FIT",fileType:"fit"},activities:[]};return s.sessionMesgs?.length?t.activities=s.sessionMesgs.map((n,a)=>({index:a,...n,startPositionLat:W(n?.startPositionLat),startPositionLong:W(n?.startPositionLong),endPositionLat:W(n?.endPositionLat),endPositionLong:W(n?.endPositionLong),laps:this.convertFITLap2Trackseg(n?.lapMesgs)})):s.courseMesgs?.length&&(t.routes=s.courseMesgs.map((n,a)=>({index:a,...n,records:this.convertLap2Points(n?.lapMesgs)}))),t}convertPoint(s,t,n){let{positionLong:a,positionLat:i,altitude:o,enhancedAltitude:u,enhancedSpeed:p,speed:T,...r}=s,c=i??s.position_lat,h=a??s.position_long;return{lapIndex:n||0,index:t||0,positionLat:W(c),positionLong:W(h),altitude:o,enhancedAltitude:u,speed:T,enhancedSpeed:p,...r}}convertFITLap2Trackseg(s){let t=[];if(!s?.length)return[];for(let n=0;n<s.length;n++){let a=s[n],i=a?.recordMesgs?.map((u,p)=>this.convertPoint(u,p,n)).filter(u=>u!==void 0)||[],o=a?.lengthMesgs?.map((u,p)=>({...u,index:p}))||[];t.push({index:n,...a,startPositionLat:W(a?.startPositionLat),startPositionLong:W(a?.startPositionLong),endPositionLat:W(a?.endPositionLat),endPositionLong:W(a?.endPositionLong),records:i,lengths:o})}return t}convertLap2Points(s){let t=[];if(!s?.length)return[];for(let n=0;n<s.length;n++){let i=s[n].recordMesgs?.map((o,u)=>this.convertPoint(o,u,n)).filter(o=>o!==void 0)||[];i.length&&(t=[...t,...i])}return t}},cs=class extends ae{constructor(){super(...arguments);this.name="tcx-to-activity-converter";this.supportedTags=["tcx"]}convert(s,t){if(t.sourceFormat!=="tcx")return;let n=t.sourceData;return this.convertTCX(n)}convertTCX(s){let t={metadata:{originType:"TCX",fileType:"tcx"},activities:[]};s.Activities?.Activity?.length&&(t.activities=s.Activities.Activity.map((i,o)=>this.convertTCXActivityToActivity(i,o)));let n=s.Courses?.Course,a=n==null?[]:Array.isArray(n)?n:[n];return a.length&&(t.routes=a.map((i,o)=>this.convertTCXCourseToRoute(i,o))),t}convertTCXCourseToRoute(s,t){let n=[],a=0,i=C=>C==null?[]:Array.isArray(C)?C:[C],o=C=>{for(let E of C??[])for(let _ of E.Trackpoint??[])_==null||_.Time===void 0||n.push(this.convertPoint(_,a++,t))};o(i(s.Track));let u=s.Lap==null?[]:Array.isArray(s.Lap)?s.Lap:[s.Lap];for(let C of u)o(i(C.Track));let p=n.length,T=n[0]?.timestamp!=null?(0,de.default)(n[0].timestamp):(0,de.default)("2000-01-01T00:00:00Z"),r=s.CoursePoint==null?[]:Array.isArray(s.CoursePoint)?s.CoursePoint:[s.CoursePoint];for(let C of r){let E=this.convertTCXCoursePointToRecord(C,p++,t,T);E&&n.push(E)}let c=new Z,h=n.length>0?c.calculateRecordsAggMetrics(n):{records:n};return{index:t,messageIndex:t,routeName:s.Name,...h,records:h?.records??n,lengths:[]}}convertTCXCoursePointToRecord(s,t,n,a){let i=s.Position?.LatitudeDegrees?Number(s.Position.LatitudeDegrees):void 0,o=s.Position?.LongitudeDegrees?Number(s.Position.LongitudeDegrees):void 0;if(i==null&&o==null&&s.AltitudeMeters==null)return;let u=typeof s.Time=="number"&&Number.isFinite(s.Time)?a.add(s.Time,"second").toDate():a.add(t,"second").toDate();return{lapIndex:n,index:t,positionLat:i,positionLong:o,altitude:s.AltitudeMeters,timestamp:u}}convertTCXActivityToActivity(s,t){let n=s.Lap?.map((i,o)=>this.convertTCXLap2Lap(i,o))||[],a=new Z().calculateLapAggMetrics(n);return{index:t,messageIndex:t,sport:s.Sport?.toLowerCase(),laps:n,...a}}convertTCXLap2Lap(s,t){let a=(s?.Track?.flatMap(u=>u.Trackpoint)||[])?.filter(u=>u!==void 0&&u.Time!==void 0).map((u,p)=>this.convertPoint(u,p))||[],o=new Z().calculateRecordsAggMetrics(a);return{index:t,messageIndex:t,...o,records:o?.records||[],lengths:[]}}convertPoint(s,t,n){let{Position:a,Time:i,DistanceMeters:o,AltitudeMeters:u}=s;return{lapIndex:n||0,index:t||0,positionLat:a?.LatitudeDegrees?Number(a.LatitudeDegrees):void 0,positionLong:a?.LongitudeDegrees?Number(a.LongitudeDegrees):void 0,timestamp:(0,de.default)(i).toDate(),distance:o,altitude:u}}};var an=k(require("dayjs"),1);var bs=class extends ie{constructor(){super(...arguments);this.name="activity-to-gpx-encoder";this.supportedTags=["gpx"]}encode(s,t){if(t.targetFormat!=="gpx"||!s?.activities?.length&&!s?.routes?.length&&!s?.points?.length)return;let n=s.activities?.[0]?.timestamp??s.routes?.[0]?.records?.[0]?.timestamp??s.points?.[0]?.timestamp??new Date,a=this.countRecordsMissingGpxCoordinates(s),i={version:"1.1",creator:"TrackSwap",metadata:{time:n,...a>0?{desc:`TrackSwap: omitted ${a} trackpoint(s) without valid latitude/longitude.`}:{}}};return s.points?.length&&(i.wpt=this.convertRecords2Wpts(s.points)),s.routes?.length&&(i.rte=s.routes.map(o=>this.convertRoute2GPXRoute(o))),s.activities?.length&&(i.trk=s.activities.map(o=>this.convertActivity2GPXTrack(o))),i}hasValidGpxCoordinates(s){let t=s.positionLat,n=s.positionLong;return typeof t=="number"&&typeof n=="number"&&Number.isFinite(t)&&Number.isFinite(n)&&t>=-90&&t<=90&&n>=-180&&n<=180}countRecordsMissingGpxCoordinates(s){let t=0,n=a=>{for(let i of a??[])this.hasValidGpxCoordinates(i)||t++};n(s.points);for(let a of s.activities??[])for(let i of a.laps??[])n(i.records);for(let a of s.routes??[])n(a.records);return t}convertRecords2Wpts(s){return s?.filter(t=>this.hasValidGpxCoordinates(t)).map(t=>({lat:t?.positionLat,lon:t?.positionLong,ele:t?.altitude,time:t?.timestamp,speed:t?.speed,course:t?.course,magvar:t?.magvar,geoidheight:t?.geoidheight,name:t?.pointName,cmt:t?.comment,desc:t?.description,src:t?.source,link:t?.links,sym:t?.symbol,type:t?.pointType,fix:t?.fix,sat:t?.sat,hdop:t?.hdop,vdop:t?.vdop,pdop:t?.pdop,ageofdgpsdata:t?.ageofdgpsdata,dgpsid:t?.dgpsid,extensions:this.extractGPXExtensions(t)}))??[]}convertRoute2GPXRoute(s){return{name:s.routeName,cmt:s.comment,desc:s.description,src:s.source,link:s.links,number:s.routeNumber,type:s.routeType,extensions:s.gpxExtensions,rtept:s.records?this.convertRecords2Wpts(s.records):[]}}convertActivity2GPXTrack(s){return{name:s.activityName,cmt:s.comment,desc:s.description,src:s.source,link:s.links,number:s.activityNumber,type:s.sport,extensions:s.gpxExtensions,trkseg:s.laps?.map(t=>({trkpt:t.records?this.convertRecords2Wpts(t.records):[],extensions:t.gpxExtensions}))||[]}}extractGPXExtensions(s){let t={...s.gpxExtensions??{}},n={...t["gpxtpx:TrackPointExtension"]??{}};return typeof s?.heartRate<"u"&&(n["gpxtpx:hr"]=s.heartRate),typeof s?.cadence<"u"&&(n["gpxtpx:cad"]=s.cadence),typeof s?.speed<"u"&&(n["gpxtpx:speed"]=s.speed),typeof s?.temperature<"u"&&(n["gpxtpx:atemp"]=s.temperature),Object.keys(n).length>0&&(t["gpxtpx:TrackPointExtension"]=n),typeof s?.power<"u"&&(t["gpxpx:PowerExtension"]={"gpxpx:PowerInWatts":s.power}),Object.keys(t).length>0?t:void 0}},Is=class extends ie{constructor(){super(...arguments);this.name="activity-to-fit-encoder";this.supportedTags=["fit"]}encode(s,t){if(t.targetFormat==="fit"){if(s?.activities?.length){let n={};return n.sessionMesgs=s.activities.map(a=>this.convertActivity2FITSession(a)),n}if(s?.routes?.length){let n={};return n.sessionMesgs=[this.convertRoutesToSyntheticSession(s.routes)],n}}}convertRoutesToSyntheticSession(s){let t=s.map(p=>this.convertLap2FITLap(p)),a=s.flatMap(p=>p.records??[]).filter(p=>p.timestamp!=null).sort((p,T)=>new Date(p.timestamp).getTime()-new Date(T.timestamp).getTime()),i=a[0]?.timestamp??new Date,o=a[a.length-1]?.timestamp??i,u=a.find(p=>p.positionLat!=null&&p.positionLong!=null&&Number.isFinite(p.positionLat)&&Number.isFinite(p.positionLong));return{messageIndex:0,timestamp:o,event:"session",eventType:"stop",startTime:i,startPositionLat:u?.positionLat,startPositionLong:u?.positionLong,sport:"generic",subSport:"generic",lapMesgs:t}}convertActivity2FITSession(s){return{...s,event:s?.event||"session",sport:s?.sport||"generic",lapMesgs:s.laps?.map(n=>this.convertLap2FITLap(n))||[]}}convertLap2FITLap(s){return{startTime:s.startTime,...s,recordMesgs:s.records?.map(n=>this.convertPoint2FITRecord(n))||[]}}convertPoint2FITRecord(s){return s}},ys=class extends ie{constructor(){super(...arguments);this.name="sport-to-tcx-encoder";this.supportedTags=["tcx"]}encode(s,t){if(t.targetFormat!=="tcx")return;let n=!!s?.activities?.length,a=!!s?.routes?.length;if(!n&&!a)return;let i={version:"1.0",Author:{Name:"TrackSwap"}};return n&&(i.Activities={Activity:s.activities.map(o=>this.convertActivity2TCXActivity(o))}),a&&(i.Courses={Course:s.routes.map((o,u)=>this.convertRouteToTCXCourse(o,u))}),i}convertActivity2TCXActivity(s){if(!s.laps?.length)throw new Error("Cannot encode a TCX activity without laps");let t="Other",n=s.sport?.toLowerCase();return n==="running"&&(t="Running"),(n==="biking"||n==="cycling")&&(t="Biking"),{Id:this.validTimestamp(s.startTime??s.laps[0]?.startTime??s.laps[0]?.records?.[0]?.timestamp),Sport:t,Lap:s.laps.map(i=>this.convertLap2TCXLap(i))}}convertLap2TCXLap(s){let n={StartTime:this.validTimestamp(s.startTime??s.records?.[0]?.timestamp),TotalTimeSeconds:s.totalElapsedTime,DistanceMeters:s.totalDistance,MaximumSpeed:s.maxSpeed,Calories:s.totalCalories,AverageHeartRateBpm:s.avgHeartRate,MaximumHeartRateBpm:s.maxHeartRate,Intensity:"Active",TriggerMethod:"Manual",Track:s.records?[this.convertRecords2TCXTrack(s.records)]:[]};return(s.avgCadence!==void 0||s.maxCadence!==void 0)&&(n.Cadence={Low:s.avgCadence||0,High:s.maxCadence||0}),n}convertRecords2TCXTrack(s){return{Trackpoint:s.map(t=>this.convertPoint2TCXTrackpoint(t))}}convertPoint2TCXTrackpoint(s){let t={Time:this.validTimestamp(s.timestamp),Position:{LatitudeDegrees:s?.positionLat?.toString(),LongitudeDegrees:s?.positionLong?.toString()},AltitudeMeters:s.altitude,DistanceMeters:s.distance};return s.heartRate&&(t.HeartRateBpm=s.heartRate),s.cadence&&(t.Cadence={Low:s.cadence,High:s.cadence256||s.cadence}),s.power&&(t.Extensions={"ns3:TPX":{"ns3:Watts":s.power}}),t}validTimestamp(s){let t=(0,an.default)(s);if(!s||!t.isValid())throw new Error("Cannot encode TCX data without valid timestamps");return t.toISOString()}convertRouteToTCXCourse(s,t){return{Name:s.routeName??`Course_${t}`,Track:s.records?[this.convertRecords2TCXTrack(s.records)]:[]}}};var hs=class{constructor(){this.converters=new Map;this.encoders=new Map;this.registerDefaultConverters(),this.registerDefaultEncoders()}registerDefaultConverters(){this.registerConverter(new _s),this.registerConverter(new As),this.registerConverter(new cs)}registerDefaultEncoders(){this.registerEncoder(new bs),this.registerEncoder(new Is),this.registerEncoder(new ys)}registerConverter(e){this.converters.set(e.name,e)}registerEncoder(e){this.encoders.set(e.name,e)}async convertToActivity(e,s){let t={metadata:new Map,errors:[],warnings:[],stats:{startTime:Date.now(),processedTokens:0,convertedElements:0},sourceFormat:s,sourceData:e,performance:{startTime:Date.now()}};try{let n=this.findConverter(s);if(!n)throw new Error(`No converter found for format "${s}"`);let a=Date.now(),i=n.convert(e,t);if(t.performance.convertTime=Date.now()-a,!i)throw new Error(`Converter "${n.name}" returned empty result`);let o=i;return t.result=o,t.performance.endTime=Date.now(),t.stats.endTime=Date.now(),o}catch(n){throw t.errors.push(n),n}}async encodeActivity(e,s){let t={metadata:new Map,errors:[],warnings:[],stats:{startTime:Date.now(),processedTokens:0,convertedElements:0},targetFormat:s,performance:{startTime:Date.now()}};try{let n=this.findEncoder(s);if(!n)throw new Error(`No encoder found for format "${s}"`);let a=Date.now(),i=n.encode(e,t);if(t.performance.encodeTime=Date.now()-a,!i)throw new Error(`Encoder "${n.name}" returned empty result`);return t.result=i,t.performance.endTime=Date.now(),t.stats.endTime=Date.now(),i}catch(n){throw t.errors.push(n),n}}findConverter(e){return Array.from(this.converters.values()).find(s=>s.supportedTags?.includes(e))}findEncoder(e){return Array.from(this.encoders.values()).find(s=>s.supportedTags?.includes(e))}async destroy(){this.converters.clear(),this.encoders.clear()}};var ln=8,_a=".FIT";function Aa(l){return l.toString("utf8",0,Math.min(l.length,4096)).replace(/^\uFEFF/,"")}function ca(l){if(l.length>=12&&l.toString("ascii",ln,ln+4)===_a)return"fit";let e=Aa(l);if(/<gpx\b/i.test(e))return"gpx";if(/<TrainingCenterDatabase\b/i.test(e))return"tcx"}var re=class{constructor(e){this.activities=e}matches(e){return ca(e)===this.format}},et=class extends re{constructor(){super(...arguments);this.format="fit"}getDecoder(){return this.decoder??=new we}getEncoder(){return this.encoder??=new Ue}async decode(s,t){let n=await this.getDecoder().parseByBuffer(s,{userData:{fitDocumentOptions:t.fit??{}}});if(!n)throw new Error("FIT decoder returned an empty result");let a=n.fitDocumentMetadata?.detectedKinds??["unknown"],i=a.includes("activity")?await this.activities.convertToActivity(n,"fit"):void 0,o=n.healthDocument?.diagnostics??{parserVersion:oe,messageCounts:n.fitDocumentMetadata?.messageCounts??{},recognizedMessageCounts:{},unknownMessageCounts:{},invalidValueCounts:{},warnings:[]},u=n.fileIdMesgs?.[0],p=u,T=n.fileCreatorMesgs?.[0];return{kinds:[...a],facets:{activity:i,health:n.healthDocument},native:n,metadata:{fileType:u?.type,manufacturer:u?.manufacturer,product:u?.garminProduct??u?.product,productName:typeof p?.productName=="string"?p.productName:void 0,serialNumber:u?.serialNumber===void 0?void 0:String(u.serialNumber),createdAt:u?.timeCreated?new Date(u.timeCreated):void 0,softwareVersion:T?.softwareVersion},fitDiagnostics:o,warnings:o.warnings.map(r=>r.message)}}async encodeActivity(s){let t=await this.activities.encodeActivity(s,"fit");return this.getEncoder().encode(t)}async encodeCourse(s){return Buffer.from(jt(dt(s)))}async dispose(){await this.decoder?.destroy()}},st=class extends re{constructor(){super(...arguments);this.format="gpx"}getDecoder(){return this.decoder??=new Ze}getEncoder(){return this.encoder??=new qe}async decode(s){let t=await this.getDecoder().parserByBuffer(s);if(!t)throw new Error("GPX decoder returned an empty result");let n=await this.activities.convertToActivity(t,"gpx"),a=[];return n.activities?.length&&a.push("activity"),n.routes?.length&&a.push("route"),n.points?.length&&a.push("waypoint"),a.length===0&&a.push("unknown"),{kinds:a,facets:{activity:n},native:t,metadata:{title:t.metadata?.name,creator:t.creator,createdAt:t.metadata?.time}}}async encodeActivity(s){let t=await this.activities.encodeActivity(s,"gpx");return this.getEncoder().encode(t)}async dispose(){await this.decoder?.destroy()}},tt=class extends re{constructor(){super(...arguments);this.format="tcx"}getDecoder(){return this.decoder??=new rs}getEncoder(){return this.encoder??=new Ts}async decode(s){let t=await this.getDecoder().parseByBuffer(s);if(!t)throw new Error("TCX decoder returned an empty result");let n=await this.activities.convertToActivity(t,"tcx");return{kinds:n.activities?.length?["activity"]:n.routes?.length?["course"]:["unknown"],facets:{activity:n},native:t,metadata:{creator:t.Author?.Name??t.creator}}}async encodeActivity(s){let t=await this.activities.encodeActivity(s,"tcx");return this.getEncoder().encode(t)}async dispose(){await this.decoder?.destroy()}};function on(){let l=new hs;return{adapters:[new et(l),new st(l),new tt(l)],activities:l}}function un(l){return l.format==="fit"&&"encodeCourse"in l}var Rs=class{constructor(e){this.adapters=new Map;for(let s of e){if(this.adapters.has(s.format))throw new B("ADAPTER_CONFLICT",`Multiple adapters registered for format "${s.format}"`,{format:s.format});this.adapters.set(s.format,s)}}get(e){let s=this.adapters.get(e);if(!s)throw new B("FORMAT_UNSUPPORTED",`No adapter registered for format "${e}"`,{format:e});return s}detect(e){for(let s of this.adapters.values())if(s.matches(e))return s.format;throw new B("FORMAT_UNKNOWN","Unable to detect input format")}async dispose(){await Promise.all([...this.adapters.values()].map(e=>e.dispose?.()))}};function nt(l){return typeof l=="string"?Buffer.from(l,"utf8"):Buffer.isBuffer(l)?l:Buffer.from(l.buffer,l.byteOffset,l.byteLength)}function ba(l){return typeof l=="string"||Buffer.isBuffer(l)||l instanceof Uint8Array}var Te=class{constructor(e={}){this.disposed=!1;let t=[...e.includeBuiltInAdapters===!1?[]:on().adapters,...e.adapters??[]];this.registry=new Rs(t)}detect(e){return this.assertActive(),this.registry.detect(nt(e))}async decode(e,s={}){this.assertActive();let t=nt(e),n=s.format??this.registry.detect(t),a=this.registry.get(n),i=Date.now();try{let o=await a.decode(t,s);return{schemaVersion:"2",format:n,kinds:[...new Set(o.kinds)],source:{byteLength:t.byteLength},metadata:o.metadata??{},facets:o.facets,...s.includeNative?{native:o.native}:{},diagnostics:{durationMs:Date.now()-i,warnings:o.warnings??[],fit:o.fitDiagnostics}}}catch(o){throw Ae(o,"DECODE_FAILED",`Failed to decode ${n.toUpperCase()}`,n)}}async decodeActivity(e,s={}){let t=await this.decode(e,s);if(!t.facets.activity)throw new B("ACTIVITY_NOT_FOUND",`The ${t.format.toUpperCase()} document has no activity facet`,{format:t.format});return t.facets.activity}async encodeActivity(e,s){this.assertActive();try{return await this.registry.get(s.format).encodeActivity(e)}catch(t){throw Ae(t,"ENCODE_FAILED",`Failed to encode ${s.format.toUpperCase()}`,s.format)}}async transcode(e,s){this.assertActive();let t=nt(e),n=s.sourceFormat??this.registry.detect(t);if(n===s.format)return Buffer.from(t);let a=await this.decodeActivity(t,{format:n});return this.encodeActivity(a,{format:s.format})}async encodeCourse(e,s={}){this.assertActive();let t=ba(e)?await this.decodeActivity(e,{format:s.sourceFormat}):e,n=this.registry.get("fit");if(!un(n))throw new B("FORMAT_UNSUPPORTED","The registered FIT adapter does not support course encoding",{format:"fit"});try{return await n.encodeCourse(t)}catch(a){throw Ae(a,"ENCODE_FAILED","Failed to encode FIT course","fit")}}async dispose(){this.disposed||(this.disposed=!0,await this.registry.dispose())}assertActive(){if(this.disposed)throw new B("DISPOSED","TrackSwap instance is disposed")}};0&&(module.exports={FIT_SEMICIRCLE_INVALID_SINT32,TRACKSWAP_HEALTH_PARSER_VERSION,TrackSwap,TrackSwapError,buildHealthDocumentFromMessages,detectFITKinds,normalizeFitSemicircleToDegrees,semicirclesToDegrees});
|