| 1 |
- var freeaps_determineBasal;(()=>{var e={5546:(e,a,t)=>{var r=t(6880);function o(e,a){a||(a=0);var t=Math.pow(10,a);return Math.round(e*t)/t}function i(e,a){return"mmol/L"===a.out_units?o(.0555*e,1):Math.round(e)}var n="",s="",l="",m="",u="",d="",c="",g="",h="";function p(e,a){var t=[2,7,12,16,20,50,60,80,90,100,110,150,180,200],r=[0,0,.4,.7,.7,-.5,-.5,-.3,-.2,0,0,.5,.7,.7],o=t.length-1,i=t[0],n=r[0],s=t[o],l=r[o],m=1,u=1,d=1,c=i;if(i>e)m=(u=n)+((l=r[1])-u)/((s=t[1])-(d=i))*(e-d);else if(s<e)m=(u=n=r[o-1])+(l-u)/(s-(d=i=t[o-1]))*(e-d);else for(var g=0;g<=o;g++){if(n=r[g],(i=t[g])==e){m=n;break}if(i>e){m=u+(n-u)/(i-(d=c))*(e-d);break}u=n,c=i}return m*=e>100?a.higher_ISFrange_weight:e>40?a.lower_ISFrange_weight:a.delta_ISFrange_weight}function f(e,a,t){if(void 0===e.smb_delivery_ratio_bg_range||0===e.smb_delivery_ratio_bg_range)return console.error("SMB delivery ratio set to fixed value "+e.smb_delivery_ratio),e.smb_delivery_ratio;var r=Math.min(e.smb_delivery_ratio_min,e.smb_delivery_ratio_max);if(a<=t)return console.error("SMB delivery ratio limited by minimum value "+r),r;var i=Math.max(e.smb_delivery_ratio_min,e.smb_delivery_ratio_max);if(a>=t+e.smb_delivery_ratio_bg_range)return console.error("SMB delivery ratio limited by maximum value "+i),i;var n=r+(i-r)*(a-t)/e.smb_delivery_ratio_bg_range;return console.error("SMB delivery ratio set to interpolated value "+o(n,2)),n}e.exports=function(e,a,t,b,v,B,_,M,y,x,S,w,D,C,F){var I=0,G="",T="",U="",O="",R="",A=0,P=(C=0,0),j=0,k=0,W=0;const q=F.weightedAverage,E=b.weightPercentage,L=F.average_total_data;function z(e,a){var t=e.getTime();return new Date(t+36e5*a)}function N(e){var a=b.bolus_increment;.05!=a&&(a=.1);var t=e/a;return t>=1?o(Math.floor(t)*a,5):0}function Z(e){function a(e){return e<10&&(e="0"+e),e}return a(e.getHours())+":"+a(e.getMinutes())+":00"}function H(e,a){var t=new Date("1/1/1999 "+e),r=new Date("1/1/1999 "+a);return(t.getTime()-r.getTime())/36e5}function $(e,a){var t=0,r=a,o=(e-a)/36e5,i=0,n=o,s=0;do{if(o>0){var l=Z(r),m=D[0].rate;for(let e=0;e<D.length;e++){var u=D[e].start;if(l==u){if(e+1<D.length){o>=(s=H(D[e+1].start,D[e].start))?i=s:o<s&&(i=o)}else if(e+1==D.length){let a=D[0].start;o>=(s=24-H(D[e].start,a))?i=s:o<s&&(i=o)}t+=N((m=D[e].rate)*i),o-=i,console.log("Dynamic ratios log: scheduled insulin added: "+N(m*i)+" U. Bas duration: "+i.toPrecision(3)+" h. Base Rate: "+m+" U/h. Time :"+l),r=z(r,i)}else if(l>u)if(e+1<D.length){var d=D[e+1].start;l<d&&(o>=(s=H(d,l))?i=s:o<s&&(i=o),t+=N((m=D[e].rate)*i),o-=i,console.log("Dynamic ratios log: scheduled insulin added: "+N(m*i)+" U. Bas duration: "+i.toPrecision(3)+" h. Base Rate: "+m+" U/h. Time :"+l),r=z(r,i))}else if(e==D.length-1){o>=(s=H("23:59:59",l))?i=s:o<s&&(i=o),t+=N((m=D[e].rate)*i),o-=i,console.log("Dynamic ratios log: scheduled insulin added: "+N(m*i)+" U. Bas duration: "+i.toPrecision(3)+" h. Base Rate: "+m+" U/h. Time :"+l),r=z(r,i)}}}}while(o>0&&o<n);return t}if(S.length){let e=S.length-1;var J=new Date(S[e].timestamp),K=new Date(S[0].timestamp);if("TempBasalDuration"==S[0]._type&&(K=new Date),(I=(K-J)/36e5)<23.9&&I>21)k=$(J,(Q=24-I,V=J.getTime(),new Date(V-36e5*Q))),O="24 hours of data is required for an accurate tdd calculation. Currently only "+I.toPrecision(3)+" hours of pump history data are available. Using your pump scheduled basals to fill in the missing hours. Scheduled basals added: "+k.toPrecision(5)+" U. ";else O=""}else console.log("Pumphistory is empty!"),ne=!1,enableDynamicCR=!1;var Q,V;for(let e=0;e<S.length;e++)"Bolus"==S[e]._type&&(j+=S[e].amount);for(let e=1;e<S.length;e++)if("TempBasal"==S[e]._type&&S[e].rate>0){A=e,W=S[e].rate;var X=S[e-1]["duration (min)"]/60,Y=X,ee=new Date(S[e-1].timestamp),ae=ee;do{if(e--,0==e){ae=new Date;break}if("TempBasal"==S[e]._type||"PumpSuspend"==S[e]._type){ae=new Date(S[e].timestamp);break}}while(e>0);var te=(ae-ee)/36e5;te<Y&&(X=te),P+=N(W*X),e=A}for(let e=0;e<S.length;e++)if(0,0==S[e]["duration (min)"]||"PumpResume"==S[e]._type){let a=new Date(S[e].timestamp),t=a,r=e;do{if(r>0&&(--r,"TempBasal"==S[r]._type)){t=new Date(S[r].timestamp);break}}while(r>0);(t-a)/36e5>0&&(k+=$(t,a))}for(let e=S.length-1;e>0;e--)if("TempBasalDuration"==S[e]._type){let a=S[e]["duration (min)"]/60,t=new Date(S[e].timestamp);var re=t;let r=e;do{if(--r,r>=0&&("TempBasal"==S[r]._type||"PumpSuspend"==S[r]._type)){re=new Date(S[r].timestamp);break}}while(r>0);if(0==e&&"TempBasalDuration"==S[0]._type&&(re=new Date,a=S[e]["duration (min)"]/60),(re-t)/36e5-a>0){k+=$(re,z(t,a))}}var oe=C=j+P+k;I>21?(T=". Bolus insulin: "+j.toPrecision(5)+" U",U=". Temporary basal insulin: "+P.toPrecision(5)+" U",G=". Insulin with scheduled basal rate: "+k.toPrecision(5)+" U",R=O+(" TDD past 24h is: "+C.toPrecision(5)+" U")+T+U+G,tddReason=q>0&&L>0?", TDD: "+o(C,1)+" U, Weighted avg: "+o(q,1)+" U, Total data avg: "+o(L,1)+" U":", TDD: "+o(C,2)):tddReason=", TDD: Not enough pumpData (< 21h)";const ie=e.glucose;var ne=w.enableChris,se=w.enableDynamicCR;const le=Math.min(b.autosens_min,b.autosens_max),me=Math.max(b.autosens_min,b.autosens_max),ue=w.adjustmentFactor,de=b.min_bg;var ce=!1,ge="",he=1,pe="";L>0&&(he=q/L),pe=he>1?"Basal adjustment with a 24 hour to total average (up to 14 days of data) TDD ratio (limited by Autosens max setting). Basal Ratio: "+(he=o(he=Math.min(he,b.autosens_max),2))+". Upper limit = Autosens max ("+b.autosens_max+")":he<1?"Basal adjustment with a 24 hour to to total average (up to 14 days of data) TDD ratio (limited by Autosens min setting). Basal Ratio: "+(he=o(he=Math.max(he,b.autosens_min),2))+". Lower limit = Autosens min ("+b.autosens_min+")":"Basal adjusted with a 24 hour to total average (up to 14 days of data) TDD ratio: "+he,pe=", Basal ratio: "+he,(b.high_temptarget_raises_sensitivity||b.exercise_mode)&&(ce=!0),ne&&(b.use_autoisf=!1,console.log("autoISF is off. dynISF is on")),de>=118&&ce&&(b.use_autoisf=!1,ne=!1,ge="Dynamic ISF temporarily off due to a high temp target/exercising. Current min target: "+de);var fe=", Dynamic ratios log: ",be=", AF: "+ue,ve="BG: "+ie+" mg/dl ("+(.0555*ie).toPrecision(2)+" mmol/l)",Be="",_e="";const Me=w.curve,ye=w.insulinPeakTime,xe=w.useCustomPeakTime;var Se=55,we=65;switch(Me){case"rapid-acting":we=65;break;case"ultra-rapid":we=50}if(xe?(Se=120-ye,console.log("Custom insulinpeakTime set to :"+ye+", insulinFactor: "+Se)):(Se=120-we,console.log("insulinFactor set to : "+Se)),oe=C,E<1&&q>0&&(C=q,console.log("Using weighted TDD average: "+o(C,2)+" U, instead of past 24 h ("+o(oe,2)+" U), weight: "+E),_e=", Weighted TDD: "+o(C,2)+" U"),w.useNewFormula&&ne){var De=b.sens*ue*C*Math.log(ie/Se+1)/1800;Be=", Logarithmic formula"}else if(ne){De=b.sens*ue*C*ie/277700;Be=", Original formula"}var Ce=b.carb_ratio,Fe="",Ie="";if(ne&&C>0){if(Fe=", Dynamic ISF/CR: On/",De>me?(ge=", Dynamic ISF limited by autosens_max setting: "+me+" ("+o(De,2)+"), ",Ie=", Autosens/Dynamic Limit: "+me+" ("+o(De,2)+")",De=me):De<le&&(ge=", Dynamic ISF limjted by autosens_min setting: "+le+" ("+o(De,2)+"). ",Ie=", Autosens/Dynamic Limit: "+le+" ("+o(De,2)+")",De=le),se){Fe+="On";var Ge=De;De>1&&(Ge=(De-1)/2+1);var Te=" CR: "+(Ce=o(Ce/Ge,2))+" g/U";b.carb_ratio=Ce}else Te=" CR: "+Ce+" g/U",Fe+="Off";var Ue=b.sens/De;ge+=", Dynamic autosens.ratio set to "+o(De,2)+" with ISF: "+Ue.toPrecision(3)+" mg/dl/U ("+(.0555*Ue).toPrecision(3)+" mmol/l/U)"+Fe,v.ratio=De,R+=fe+ve+be+Be+ge+Te+_e}else R+=fe+"Dynamic Settings disabled";console.log(R),ne||se?ne&&b.tddAdjBasal?tddReason+=Fe+Be+Ie+be+pe:ne&&!b.tddAdjBasal&&(tddReason+=Fe+Be+Ie+be):tddReason+="";var Oe={},Re=new Date;if(x&&(Re=x),void 0===b||void 0===b.current_basal)return Oe.error="Error: could not get current basal rate",Oe;var Ae=r(b.current_basal,b),Pe=Ae,je=new Date;x&&(je=x);var ke,We=new Date(e.date),qe=o((je-We)/60/1e3,1),Ee=e.glucose,Le=e.noise;ke=e.delta>-.5?"+"+o(e.delta,0):o(e.delta,0);var ze=Math.min(e.delta,e.short_avgdelta),Ne=Math.min(e.short_avgdelta,e.long_avgdelta),Ze=Math.max(e.delta,e.short_avgdelta,e.long_avgdelta);(Ee<=10||38===Ee||Le>=3)&&(Oe.reason="CGM is calibrating, in ??? state, or noise is high");if(Ee>60&&0==e.delta&&e.short_avgdelta>-1&&e.short_avgdelta<1&&e.long_avgdelta>-1&&e.long_avgdelta<1&&("fakecgm"==e.device?(console.error("CGM data is unchanged ("+i(Ee,b)+"+"+i(e.delta,b)+") for 5m w/ "+i(e.short_avgdelta,b)+" mg/dL ~15m change & "+i(e.long_avgdelta,2)+" mg/dL ~45m change"),console.error("Simulator mode detected ("+e.device+"): continuing anyway")):!0),qe>12||qe<-5?Oe.reason="If current system time "+je+" is correct, then BG data is too old. The last BG data was read "+qe+"m ago at "+We:0===e.short_avgdelta&&0===e.long_avgdelta&&(e.last_cal&&e.last_cal<3?Oe.reason="CGM was just calibrated":Oe.reason="CGM data is unchanged ("+i(Ee,b)+"+"+i(e.delta,b)+") for 5m w/ "+i(e.short_avgdelta,b)+" mg/dL ~15m change & "+i(e.long_avgdelta,b)+" mg/dL ~45m change"),Ee<=10||38===Ee||Le>=3||qe>12||qe<-5||0===e.short_avgdelta&&0===e.long_avgdelta)return a.rate>=Pe?(Oe.reason+=". Canceling high temp basal of "+a.rate,Oe.deliverAt=Re,Oe.temp="absolute",Oe.duration=0,Oe.rate=0,Oe):0===a.rate&&a.duration>30?(Oe.reason+=". Shortening "+a.duration+"m long zero temp to 30m. ",Oe.deliverAt=Re,Oe.temp="absolute",Oe.duration=30,Oe.rate=0,Oe):(Oe.reason+=". Temp "+a.rate+" <= current basal "+Pe+"U/hr; doing nothing. ",Oe);var He,$e,Je,Ke,Qe=b.max_iob;if(void 0!==b.min_bg&&($e=b.min_bg),void 0!==b.max_bg&&(Je=b.max_bg),void 0!==b.enableSMB_high_bg_target&&(Ke=b.enableSMB_high_bg_target),void 0===b.min_bg||void 0===b.max_bg)return Oe.error="Error: could not determine target_bg. ",Oe;He=(b.min_bg+b.max_bg)/2;var Ve=b.exercise_mode||b.high_temptarget_raises_sensitivity,Xe=100,Ye=160;if(b.half_basal_exercise_target&&(Ye=b.half_basal_exercise_target),Ve&&b.temptargetSet&&He>Xe||b.low_temptarget_lowers_sensitivity&&b.temptargetSet&&He<Xe){var ea=Ye-Xe;sensitivityRatio=ea*(ea+He-Xe)<=0?b.autosens_max:ea/(ea+He-Xe),sensitivityRatio=Math.min(sensitivityRatio,b.autosens_max),sensitivityRatio=o(sensitivityRatio,2),process.stderr.write("Sensitivity ratio set to "+sensitivityRatio+" based on temp target of "+He+"; ")}else void 0!==v&&v&&(sensitivityRatio=v.ratio,process.stderr.write("Autosens ratio: "+sensitivityRatio+"; "));if(b.temptargetSet&&He<Xe&&ne&&ie>=He&&sensitivityRatio<De&&(v.ratio=De*(Xe/He),v.ratio=Math.min(v.ratio,b.autosens_max),sensitivityRatio=o(v.ratio,2),console.log("Dynamic ratio increased from "+o(De,2)+" to "+o(v.ratio,2)+" due to a low temp target ("+He+").")),sensitivityRatio&&!ne?(Pe=b.current_basal*sensitivityRatio,Pe=r(Pe,b)):ne&&b.tddAdjBasal&&(Pe=b.current_basal*he,Pe=r(Pe,b),process.stderr.write("TDD-adjustment of basals activated, using tdd24h_14d_Ratio "+o(he,2)+", TDD 24h = "+o(oe,2)+"U, Weighted average TDD = "+o(q,2)+"U, (Weight percentage = "+E+"), Total data of TDDs (up to 14 days) average = "+o(L,2)+"U. "),Pe!==Ae?process.stderr.write("Adjusting basal from "+Ae+" U/h to "+Pe+" U/h; "):process.stderr.write("Basal unchanged: "+Pe+" U/h; ")),b.temptargetSet);else if(void 0!==v&&v&&(b.sensitivity_raises_target&&v.ratio<1||b.resistance_lowers_target&&v.ratio>1)){$e=o(($e-60)/v.ratio)+60,Je=o((Je-60)/v.ratio)+60;var aa=o((He-60)/v.ratio)+60;He===(aa=Math.max(80,aa))?process.stderr.write("target_bg unchanged: "+aa+"; "):process.stderr.write("target_bg from "+He+" to "+aa+"; "),He=aa}var ta=200,ra=200,oa=200;if(e.noise>=2){var ia=Math.max(1.1,b.noisyCGMTargetMultiplier);Math.min(250,b.maxRaw);ta=o(Math.min(200,$e*ia)),ra=o(Math.min(200,He*ia)),oa=o(Math.min(200,Je*ia)),process.stderr.write("Raising target_bg for noisy / raw CGM data, from "+He+" to "+ra+"; "),$e=ta,He=ra,Je=oa}var na=$e-.5*($e-40),sa=b.threshold_setting;sa>na&&sa<=120&&sa>=65?(console.error("Threshold changed in settings from "+i(na,b)+" to "+i(sa,b)+". "),na=sa):console.error("Current threshold: "+i(na,b));var la=o(b.sens,1),ma=b.sens;if(void 0!==v&&v&&((ma=o(ma=b.sens/sensitivityRatio,1))!==la?process.stderr.write("ISF from "+i(la,b)+" to "+i(ma,b)):process.stderr.write("ISF unchanged: "+i(ma,b)),n+="Autosens ratio: "+o(sensitivityRatio,2)+", ISF: "+i(la,b)+"→"+i(ma,b)),console.error("CR:"+b.carb_ratio),ma=function(e,a,t,r,b,v,B,_){if(!t.use_autoisf)return console.error("autoISF disabled in Preferences"),e;var M=r.dura_p,y=r.delta_pl,x=r.delta_pn,S=r.r_squ,w=r.bg_acceleration,D=r.parabola_fit_a0,C=r.parabola_fit_a1,F=r.parabola_fit_a2,I=r.autoISF_duration,G=r.autoISF_average,T=t.autoisf_max,U=!1,O=1,R=1,A=1,P=a+10-G;if(!(b.mealCOB>0)||t.enableautoisf_with_COB){var j=r.pp_debug;if(d+="BG-accel: "+o(w,3)+", PF-minutes: "+M+", PF-corr: "+o(S,4)+", PF-nextDelta: "+i(x,t)+", PF-lastDelta: "+i(y,t)+", regular Delta: "+i(r.delta,t),console.error(j+d+" , Weights Accel/Brake: "+t.bgAccel_ISF_weight+" / "+t.bgBrake_ISF_weight),t.enable_BG_acceleration){var k=w;if(0!=r.parabola_fit_a2){var W=-C/2/F*5,q=o(D-W*W/25*F,1);(W=o(W,1))<0&&k<0?(h="saw max of "+i(q,t)+", about "+-W+" min ago",console.error("Parabolic fit "+h)):W<0&&k>0?(h="saw min of "+i(q,t)+", about "+-W+" min ago",console.error("Parabolic fit "+h)):W>0&&k<0?(h="predicts max of "+i(q,t)+", in about "+W+"min",console.error("Parabolic fit "+h)):W>0&&k>0&&(h="predicts min of "+i(q,t)+", in about "+W+" min",console.error("Parabolic fit "+h))}var E=S;if(E<=.9)h="acce_ISF by-passed, as correlation, "+o(E,3)+", is too low",console.error("Parabolic fit "+h),c+=", Parabolic Fit, "+h;else{c+=", Parabolic Fit, "+h+", lastΔ: "+i(y,t)+", nextΔ: "+i(x,t)+", Corr "+o(S,3)+", BG-Accel: "+o(k,2);var L=10*(E-.9),z=1;r.glucose<t.target_bg&&k>1&&(z=.5),A=1+k*z*(k<0?t.bgBrake_ISF_weight:t.bgAccel_ISF_weight)*L,console.error("Original result for acce_ISF: "+o(A,2)),1!=A&&(U=!0,c+=", acce-ISF Ratio: "+o(A,2))}}else console.error("autoISF BG accelertion adaption disabled in Preferences");var N=f(t,r.glucose,a);n+=", SMB Delivery Ratio:, "+o(N,2)+c+", autoISF";var Z=1+p(100-P,t);console.error("bg_ISF adaptation is "+o(Z,2)),Z<1&&A>1&&(g="bg-ISF adaptation lifted to "+o(Z*=A,2)+", as BG accelerates already",s="(lifted by "+o(A,2)+")",console.error(g));var H=1;if(Z<1)return(H=Math.min(Z,A))<t.autoisf_min&&(g="final ISF factor "+o(H,2)+" limited by autoisf_min "+t.autoisf_min,console.error(g),H=t.autoisf_min),s=" (lmtd.)",earlysens=Math.min(720,o(t.sens/Math.min(_,H),1)),console.error("early Return autoISF: "+i(earlysens,t)),n+=", bg-ISF Ratio: "+o(Z,2)+s+", ISF: "+i(earlysens,t),earlysens;Z>1&&(U=!0,n+=", bg-ISF Ratio: "+o(Z,2));var $=r.delta;P>0?console.error("delta_ISF adaptation by-passed as average glucose < "+i(a+10,t)):r.short_avgdelta<0?console.error("delta_ISF adaptation by-passed as no rise or too short lived"):t.enableppisf_always||t.postmeal_ISF_duration>=(v-b.lastCarbTime)/1e3/3600?(O=1+Math.max(0,$*t.postmeal_ISF_weight),console.error("pp_ISF adaptation is "+o(O,2)),m=", pp-ISF Ratio: "+o(O,2),1!=O&&(U=!0)):(R=p($,t),P>-20&&(R*=.5),R=1+R,console.error("delta_ISF adaptation is "+o(R,2)),u=", Δ-ISF Ratio: "+o(R,2),1!=R&&(U=!0));var J=1,K=t.autoisf_hourlychange;return b.mealCOB>0&&!t.enableautoisf_with_COB?console.error("dura_ISF by-passed; preferences disabled mealCOB of "+o(b.mealCOB,1)):I<10?console.error("dura_ISF by-passed; BG is only "+I+"m at level "+G):G<=a?console.error("dura_ISF by-passed; avg. glucose "+G+" below target "+i(a,t)):(J+=I/60*(K/a)*(G-a),U=!0,l=", Duration: "+I+", Avg: "+i(G,t)+", dura-ISF Ratio: "+o(J,2),console.error("dura_ISF adaptation is "+o(J,2)+" because ISF "+e+" did not do it for "+o(I,1)+"m")),H=1,U?(H=Math.max(J,Z,R,A,O),console.error("autoISF adaption ratios:"),console.error(" dura "+o(J,2)),console.error(" bg "+o(Z,2)),console.error(" delta "+o(R,2)),console.error(" pp "+o(O,2)),console.error(" accel "+o(A,2)),A<1&&(console.error("strongest ISF factor "+o(H,2)+" weakened to "+o(H*A,2)+" as bg decelerates already"),H*=A),H<t.autoisf_min?(console.error("final ISF factor "+o(H,2)+" limited by autoisf_min "+t.autoisf_min),H=t.autoisf_min):H>T&&(console.error("final ISF factor "+o(H,2)+" limited by autoisf_max "+T),H=T),H>=1&&(e=o(t.sens/Math.max(H,_),1)),H<1&&(e=o(t.sens/Math.min(H,_),1))):H=_,n+=m+u+l+", Ratio: "+o(H,2)+", ISF: "+i(e,t),console.error("Inside autoISF: Ratio "+o(H,2)+" resulting in "+i(e,t)),e}console.error("BG dependant autoISF by-passed; preferences disabled mealCOB of "+o(b.mealCOB,1))}(ma,He,b,e,B,x,0,sensitivityRatio),void 0===t)return Oe.error="Error: iob_data undefined. ",Oe;var ua,da=t;if(t.length,t.length>1&&(t=da[0]),void 0===t.activity||void 0===t.iob)return Oe.error="Error: iob_data missing some property. ",Oe;var ca=((ua=void 0!==t.lastTemp?o((new Date(je).getTime()-t.lastTemp.date)/6e4):0)+a.duration)%30;if(console.error("currenttemp:"+a.rate+" lastTempAge:"+ua+"m, tempModulus:"+ca+"m"),Oe.temp="absolute",Oe.deliverAt=Re,M&&a&&t.lastTemp&&a.rate!==t.lastTemp.rate&&ua>10&&a.duration)return Oe.reason="Warning: currenttemp rate "+a.rate+" != lastTemp rate "+t.lastTemp.rate+" from pumphistory; canceling temp",_.setTempBasal(0,0,b,Oe,a);if(a&&t.lastTemp&&a.duration>0){var ga=ua-t.lastTemp.duration;if(ga>5&&ua>10)return Oe.reason="Warning: currenttemp running but lastTemp from pumphistory ended "+ga+"m ago; canceling temp",_.setTempBasal(0,0,b,Oe,a)}var ha=o(-t.activity*ma*5,2),pa=o(6*(ze-ha));pa<0&&(pa=o(6*(Ne-ha)))<0&&(pa=o(6*(e.long_avgdelta-ha)));var fa=Ee,ba=(fa=t.iob>0?o(Ee-t.iob*ma):o(Ee-t.iob*Math.min(ma,b.sens)))+pa;if(void 0===ba||isNaN(ba))return Oe.error="Error: could not calculate eventualBG. Sensitivity: "+ma+" Deviation: "+pa,Oe;var va=function(e,a,t){return o(t+(e-a)/24,1)}(He,ba,ha);Oe={temp:"absolute",bg:Ee,tick:ke,eventualBG:ba,insulinReq:0,reservoir:y,deliverAt:Re,sensitivityRatio,TDD:oe};var Ba=[],_a=[],Ma=[],ya=[];Ba.push(Ee),_a.push(Ee),ya.push(Ee),Ma.push(Ee);var xa=function(e,a,t,r,o,n){return a?!e.allowSMB_with_high_temptarget&&e.temptargetSet&&o>100?(console.error("SMB disabled due to high temptarget of "+o),!1):!0===t.bwFound&&!1===e.A52_risk_enable?(console.error("SMB disabled due to Bolus Wizard activity in the last 6 hours."),!1):!0===e.enableSMB_always?(t.bwFound?console.error("Warning: SMB enabled within 6h of using Bolus Wizard: be sure to easy bolus 30s before using Bolus Wizard"):console.error("SMB enabled due to enableSMB_always"),!0):!0===e.enableSMB_with_COB&&t.mealCOB?(t.bwCarbs?console.error("Warning: SMB enabled with Bolus Wizard carbs: be sure to easy bolus 30s before using Bolus Wizard"):console.error("SMB enabled for COB of "+t.mealCOB),!0):!0===e.enableSMB_after_carbs&&t.carbs?(t.bwCarbs?console.error("Warning: SMB enabled with Bolus Wizard carbs: be sure to easy bolus 30s before using Bolus Wizard"):console.error("SMB enabled for 6h after carb entry"),!0):!0===e.enableSMB_with_temptarget&&e.temptargetSet&&o<100?(t.bwFound?console.error("Warning: SMB enabled within 6h of using Bolus Wizard: be sure to easy bolus 30s before using Bolus Wizard"):console.error("SMB enabled for temptarget of "+i(o,e)),!0):!0===e.enableSMB_high_bg&&null!==n&&r>=n?(console.error("Checking BG to see if High for SMB enablement."),console.error("Current BG",r," | High BG ",n),t.bwFound?console.error("Warning: High BG SMB enabled within 6h of using Bolus Wizard: be sure to easy bolus 30s before using Bolus Wizard"):console.error("High BG detected. Enabling SMB."),!0):(console.error("SMB disabled (no enableSMB preferences active or no condition satisfied)"),!1):(console.error("SMB disabled (!microBolusAllowed)"),!1)}(b,M,B,Ee,He,Ke),Sa=b.enableUAM,wa=0,Da=0;wa=o(ze-ha,1);var Ca=o(ze-ha,1);csf=ma/b.carb_ratio,console.error("profile.sens:"+i(b.sens,b)+", sens:"+i(ma,b)+", CSF:"+o(csf,1));var Fa=o(30*csf*5/60,1);wa>Fa&&(console.error("Limiting carb impact from "+wa+" to "+Fa+"mg/dL/5m (30g/h)"),wa=Fa);var Ia=3;sensitivityRatio&&(Ia/=sensitivityRatio);var Ga=Ia;if(B.carbs){Ia=Math.max(Ia,B.mealCOB/20);var Ta=o((new Date(je).getTime()-B.lastCarbTime)/6e4),Ua=(B.carbs-B.mealCOB)/B.carbs;Ga=o(Ga=Ia+1.5*Ta/60,1),console.error("Last carbs "+Ta+" minutes ago; remainingCATime:"+Ga+"hours; "+o(100*Ua,1)+"% carbs absorbed")}var Oa=Math.max(0,wa/5*60*Ga/2)/csf,Ra=90,Aa=1;b.remainingCarbsCap&&(Ra=Math.min(90,b.remainingCarbsCap)),b.remainingCarbsFraction&&(Aa=Math.min(1,b.remainingCarbsFraction));var Pa=1-Aa,ja=Math.max(0,B.mealCOB-Oa-B.carbs*Pa),ka=(ja=Math.min(Ra,ja))*csf*5/60/(Ga/2),Wa=o(B.slopeFromMaxDeviation,2),qa=o(B.slopeFromMinDeviation,2),Ea=Math.min(Wa,-qa/3),La=0;0===wa?Da=0:!0===b.floating_carbs?(Da=Math.min(60*Ga/5/2,Math.max(0,B.carbs*csf/wa)),La=Math.min(60*Ga/5/2,Math.max(0,B.mealCOB*csf/wa)),B.carbs>0&&(n+=", Floating Carbs:, CID: "+o(Da,1)+", MealCarbs: "+o(B.carbs,1)+", Not Floating:, CID: "+o(La,1)+", MealCOB: "+o(B.mealCOB,1),console.error("Floating Carbs CID: "+o(Da,1)+" / MealCarbs: "+o(B.carbs,1)+" vs. Not Floating:"+o(La,1)+" / MealCOB:"+o(B.mealCOB,1)))):Da=Math.min(60*Ga/5/2,Math.max(0,B.mealCOB*csf/wa)),console.error("Carb Impact:"+wa+"mg/dL per 5m; CI Duration:"+o(5*Da/60*2,1)+"hours; remaining CI ("+Ga/2+"h peak):"+o(ka,1)+"mg/dL per 5m");var za,Na,Za,Ha,$a,Ja=999,Ka=999,Qa=999,Va=Ee,Xa=999,Ya=999,et=999,at=999,tt=ba,rt=Ee,ot=Ee,it=0,nt=[],st=[];try{da.forEach((function(e){var a=o(-e.activity*ma*5,2),t=o(-e.iobWithZeroTemp.activity*ma*5,2),r=wa*(1-Math.min(1,_a.length/12));if(!0==(1==ne&&1==w.useNewFormula)){tt=_a[_a.length-1]+o(-e.activity*(1800/(C*ue*Math.log(Math.max(_a[_a.length-1],39)/Se+1)))*5,2)+r;var i=ya[ya.length-1]+o(-e.iobWithZeroTemp.activity*(1800/(C*ue*Math.log(Math.max(ya[ya.length-1],39)/Se+1)))*5,2);console.log("Dynamic ISF (Logarithmic Formula) )adjusted predictions for IOB and ZT: IOBpredBG: "+o(tt,2)+" , ZTpredBG: "+o(i,2))}else{tt=_a[_a.length-1]+a+r;i=ya[ya.length-1]+t}var n=Math.max(0,Math.max(0,wa)*(1-Ba.length/Math.max(2*Da,1))),s=Math.min(Ba.length,12*Ga-Ba.length),l=Math.max(0,s/(Ga/2*12)*ka);n+l,nt.push(o(l,0)),st.push(o(n,0)),COBpredBG=Ba[Ba.length-1]+a+Math.min(0,r)+n+l;var m=Math.max(0,Ca+Ma.length*Ea),u=Math.max(0,Ca*(1-Ma.length/Math.max(36,1))),d=Math.min(m,u);if(d>0&&(it=o(5*(Ma.length+1)/60,1)),!0==(1==ne&&1==w.useNewFormula))UAMpredBG=Ma[Ma.length-1]+o(-e.activity*(1800/(C*ue*Math.log(Math.max(Ma[Ma.length-1],39)/Se+1)))*5,2)+Math.min(0,r)+d,console.log("Dynamic ISF (Logarithmic Formula) adjusted prediction for UAM: UAMpredBG: "+o(UAMpredBG,2));else UAMpredBG=Ma[Ma.length-1]+a+Math.min(0,r)+d;_a.length<48&&_a.push(tt),Ba.length<48&&Ba.push(COBpredBG),Ma.length<48&&Ma.push(UAMpredBG),ya.length<48&&ya.push(i),COBpredBG<Xa&&(Xa=o(COBpredBG)),UAMpredBG<Ya&&(Ya=o(UAMpredBG)),tt<et&&(et=o(tt)),i<at&&(at=o(i));_a.length>18&&tt<Ja&&(Ja=o(tt)),tt>rt&&(rt=tt),(Da||ka>0)&&Ba.length>18&&COBpredBG<Ka&&(Ka=o(COBpredBG)),(Da||ka>0)&&COBpredBG>rt&&(ot=COBpredBG),Sa&&Ma.length>12&&UAMpredBG<Qa&&(Qa=o(UAMpredBG)),Sa&&UAMpredBG>rt&&UAMpredBG}))}catch(e){console.error("Problem with iobArray. Optional feature Advanced Meal Assist disabled")}B.mealCOB&&(console.error("predCIs (mg/dL/5m):"+st.join(" ")),console.error("remainingCIs: "+nt.join(" "))),Oe.predBGs={},_a.forEach((function(e,a,t){t[a]=o(Math.min(401,Math.max(39,e)))}));for(var lt=_a.length-1;lt>12&&_a[lt-1]===_a[lt];lt--)_a.pop();for(Oe.predBGs.IOB=_a,Za=o(_a[_a.length-1]),ya.forEach((function(e,a,t){t[a]=o(Math.min(401,Math.max(39,e)))})),lt=ya.length-1;lt>6&&!(ya[lt-1]>=ya[lt]||ya[lt]<=He);lt--)ya.pop();if(Oe.predBGs.ZT=ya,o(ya[ya.length-1]),B.mealCOB>0&&(wa>0||ka>0)){for(Ba.forEach((function(e,a,t){t[a]=o(Math.min(401,Math.max(39,e)))})),lt=Ba.length-1;lt>12&&Ba[lt-1]===Ba[lt];lt--)Ba.pop();Oe.predBGs.COB=Ba,Ha=o(Ba[Ba.length-1]),ba=Math.max(ba,o(Ba[Ba.length-1]))}if(wa>0||ka>0){if(Sa){for(Ma.forEach((function(e,a,t){t[a]=o(Math.min(401,Math.max(39,e)))})),lt=Ma.length-1;lt>12&&Ma[lt-1]===Ma[lt];lt--)Ma.pop();Oe.predBGs.UAM=Ma,$a=o(Ma[Ma.length-1]),Ma[Ma.length-1]&&(ba=Math.max(ba,o(Ma[Ma.length-1])))}Oe.eventualBG=ba}console.error("UAM Impact:"+Ca+"mg/dL per 5m; UAM Duration:"+it+"hours"),Ja=Math.max(39,Ja),Ka=Math.max(39,Ka),Qa=Math.max(39,Qa),za=o(Ja);var mt=B.mealCOB/B.carbs;Na=o(Qa<999&&Ka<999?(1-mt)*UAMpredBG+mt*COBpredBG:Ka<999?(tt+COBpredBG)/2:Qa<999?(tt+UAMpredBG)/2:tt),at>Na&&(Na=at),Va=o(Va=Da||ka>0?Sa?mt*Xa+(1-mt)*Ya:Xa:Sa?Ya:et);var ut=Qa;if(at<na)ut=(Qa+at)/2;else if(at<He){var dt=(at-na)/(He-na);ut=(Qa+(Qa*dt+at*(1-dt)))/2}else at>Qa&&(ut=(Qa+at)/2);if(ut=o(ut),B.carbs)if(!Sa&&Ka<999)za=o(Math.max(Ja,Ka));else if(Ka<999){var ct=mt*Ka+(1-mt)*ut;za=o(Math.max(Ja,Ka,ct))}else za=Sa?ut:Va;else Sa&&(za=o(Math.max(Ja,ut)));za=Math.min(za,Na),process.stderr.write("minPredBG: "+za+" minIOBPredBG: "+Ja+" minZTGuardBG: "+at),Ka<999&&process.stderr.write(" minCOBPredBG: "+Ka),Qa<999&&process.stderr.write(" minUAMPredBG: "+Qa),console.error(" avgPredBG:"+Na+" COB/Carbs:"+B.mealCOB+"/"+B.carbs),ot>Ee&&(za=Math.min(za,ot)),Oe.COB=B.mealCOB,Oe.IOB=t.iob,Oe.BGI=i(ha,b),Oe.deviation=i(pa,b),Oe.ISF=i(ma,b),Oe.CR=o(b.carb_ratio,2),Oe.target_bg=i(He,b),Oe.TDD=o(oe,2),Oe.reason=n+", COB: "+Oe.COB+", Dev: "+Oe.deviation+", BGI: "+Oe.BGI+", CR: "+Oe.CR+", Target: "+Oe.target_bg+", minPredBG "+i(za,b)+", minGuardBG "+i(Va,b)+", IOBpredBG "+i(Za,b),Ha>0&&(Oe.reason+=", COBpredBG "+i(Ha,b)),$a>0&&(Oe.reason+=", UAMpredBG "+i($a,b)),Oe.reason+=tddReason,Oe.reason+="; ";var gt=fa;gt<40&&(gt=Math.min(Va,gt));var ht,pt=na-gt,ft=240,bt=240;if(B.mealCOB>0&&(wa>0||ka>0)){for(lt=0;lt<Ba.length;lt++)if(Ba[lt]<$e){ft=5*lt;break}for(lt=0;lt<Ba.length;lt++)if(Ba[lt]<na){bt=5*lt;break}}else{for(lt=0;lt<_a.length;lt++)if(_a[lt]<$e){ft=5*lt;break}for(lt=0;lt<_a.length;lt++)if(_a[lt]<na){bt=5*lt;break}}xa&&Va<na&&(console.error("minGuardBG "+i(Va,b)+" projected below "+i(na,b)+" - disabling SMB"),xa=!1),void 0===b.maxDelta_bg_threshold&&(ht=.2),void 0!==b.maxDelta_bg_threshold&&(ht=Math.min(b.maxDelta_bg_threshold,.4)),Ze>ht*Ee&&(console.error("maxDelta "+i(Ze,b)+" > "+100*ht+"% of BG "+i(Ee,b)+" - disabling SMB"),Oe.reason+="maxDelta "+i(Ze,b)+" > "+100*ht+"% of BG "+i(Ee,b)+" - SMB disabled!, ",xa=!1),console.error("BG projected to remain above "+i($e,b)+" for "+ft+"minutes"),(bt<240||ft<60)&&console.error("BG projected to remain above "+i(na,b)+" for "+bt+"minutes");var vt=bt,Bt=b.current_basal*ma*vt/60,_t=Math.max(0,B.mealCOB-.25*B.carbs),Mt=(pt-Bt)/csf-_t;Bt=o(Bt),Mt=o(Mt),console.error("naive_eventualBG:",fa,"bgUndershoot:",pt,"zeroTempDuration:",vt,"zeroTempEffect:",Bt,"carbsReq:",Mt),"Could not parse clock data"==B.reason?console.error("carbsReq unknown: Could not parse clock data"):Mt>=b.carbsReqThreshold&&bt<=45&&(Oe.carbsReq=Mt,Oe.reason+=Mt+" add'l carbs req w/in "+bt+"m; ");var yt=0;if(Ee<na&&t.iob<20*-b.current_basal/60&&ze>0&&ze>va)Oe.reason+="IOB "+t.iob+" < "+o(20*-b.current_basal/60,2),Oe.reason+=" and minDelta "+i(ze,b)+" > expectedDelta "+i(va,b)+"; ";else if(Ee<na||Va<na)return Oe.reason+="minGuardBG "+i(Va,b)+"<"+i(na,b),yt=o(60*((pt=He-Va)/ma)/b.current_basal),yt=30*o(yt/30),yt=Math.min(120,Math.max(30,yt)),_.setTempBasal(0,yt,b,Oe,a);if(b.skip_neutral_temps&&Oe.deliverAt.getMinutes()>=55)return Oe.reason+="; Canceling temp at "+Oe.deliverAt.getMinutes()+"m past the hour. ",_.setTempBasal(0,0,b,Oe,a);var xt=0,St=Pe;if(ba<$e){if(Oe.reason+="Eventual BG "+i(ba,b)+" < "+i($e,b),ze>va&&ze>0&&!Mt)return fa<40?(Oe.reason+=", naive_eventualBG < 40. ",_.setTempBasal(0,30,b,Oe,a)):(e.delta>ze?Oe.reason+=", but Delta "+i(ke,b)+" > expectedDelta "+i(va,b):Oe.reason+=", but Min. Delta "+ze.toFixed(2)+" > Exp. Delta "+i(va,b),a.duration>15&&r(Pe,b)===r(a.rate,b)?(Oe.reason+=", temp "+a.rate+" ~ req "+Pe+"U/hr. ",Oe):(Oe.reason+="; setting current basal of "+Pe+" as temp. ",_.setTempBasal(Pe,30,b,Oe,a)));xt=o(xt=2*Math.min(0,(ba-He)/ma),2);var wt=Math.min(0,(fa-He)/ma);if(wt=o(wt,2),ze<0&&ze>va)xt=o(xt*(ze/va),2);if(St=r(St=Pe+2*xt,b),a.duration*(a.rate-Pe)/60<Math.min(xt,wt)-.3*Pe)return Oe.reason+=", "+a.duration+"m@"+a.rate.toFixed(2)+" is a lot less than needed. ",_.setTempBasal(St,30,b,Oe,a);if(void 0!==a.rate&&a.duration>5&&St>=.8*a.rate)return Oe.reason+=", temp "+a.rate+" ~< req "+St+"U/hr. ",Oe;if(St<=0){if((yt=o(60*((pt=He-fa)/ma)/b.current_basal))<0?yt=0:(yt=30*o(yt/30),yt=Math.min(120,Math.max(0,yt))),yt>0)return Oe.reason+=", setting "+yt+"m zero temp. ",_.setTempBasal(St,yt,b,Oe,a)}else Oe.reason+=", setting "+St+"U/hr. ";return _.setTempBasal(St,30,b,Oe,a)}if(ze<va&&(!M||!xa))return e.delta<ze?Oe.reason+="Eventual BG "+i(ba,b)+" > "+i($e,b)+" but Delta "+i(ke,b)+" < Exp. Delta "+i(va,b):Oe.reason+="Eventual BG "+i(ba,b)+" > "+i($e,b)+" but Min. Delta "+ze.toFixed(2)+" < Exp. Delta "+i(va,b),a.duration>15&&r(Pe,b)===r(a.rate,b)?(Oe.reason+=", temp "+a.rate+" ~ req "+Pe+"U/hr. ",Oe):(Oe.reason+="; setting current basal of "+Pe+" as temp. ",_.setTempBasal(Pe,30,b,Oe,a));if(Math.min(ba,za)<Je&&(!M||!xa))return Oe.reason+=i(ba,b)+"-"+i(za,b)+" in range: no temp required",a.duration>15&&r(Pe,b)===r(a.rate,b)?(Oe.reason+=", temp "+a.rate+" ~ req "+Pe+"U/hr. ",Oe):(Oe.reason+="; setting current basal of "+Pe+" as temp. ",_.setTempBasal(Pe,30,b,Oe,a));if(ba>=Je&&(Oe.reason+="Eventual BG "+i(ba,b)+" >= "+i(Je,b)+", "),t.iob>Qe)return Oe.reason+="IOB "+o(t.iob,2)+" > max_iob "+Qe,a.duration>15&&r(Pe,b)===r(a.rate,b)?(Oe.reason+=", temp "+a.rate+" ~ req "+Pe+"U/hr. ",Oe):(Oe.reason+="; setting current basal of "+Pe+" as temp. ",_.setTempBasal(Pe,30,b,Oe,a));(xt=o((Math.min(za,ba)-He)/ma,2))>Qe-t.iob?(console.error("SMB limited by maxIOB: "+Qe-t.iob+" (. insulinReq: "+xt+" U)"),Oe.reason+="max_iob "+Qe+", ",xt=Qe-t.iob):console.error("SMB not limited by maxIOB ( insulinReq: "+xt+" U)."),St=r(St=Pe+2*xt,b),xt=o(xt,3),Oe.insulinReq=xt;var Dt=o((new Date(je).getTime()-t.lastBolusTime)/6e4,1);if(M&&xa&&Ee>na){var Ct=o(B.mealCOB/b.carb_ratio,3);if(b.use_autoisf)Ft=b.smb_max_range_extension;else{console.error("autoISF disabled, SMB range extension disabled");var Ft=1}Ft>1&&console.error("SMB max range extended from default by factor "+Ft);var It=0;void 0===b.maxSMBBasalMinutes?(It=o(Ft*b.current_basal*30/60,1),console.error("profile.maxSMBBasalMinutes undefined: defaulting to 30m"),xt>It&&console.error("SMB limited by maxBolus: "+It+" ( "+xt+" U)")):t.iob>Ct&&t.iob>0?(console.error("IOB"+t.iob+"> COB"+B.mealCOB+"; mealInsulinReq ="+Ct),b.maxUAMSMBBasalMinutes?(console.error("profile.maxUAMSMBBasalMinutes: "+b.maxUAMSMBBasalMinutes+", profile.current_basal: "+b.current_basal),It=o(Ft*b.current_basal*b.maxUAMSMBBasalMinutes/60,1)):(console.error("profile.maxUAMSMBBasalMinutes undefined: defaulting to 30m"),It=o(30*b.current_basal/60,1)),xt>It?console.error("SMB limited by maxUAMSMBBasalMinutes [ "+b.maxUAMSMBBasalMinutes+"m ]: "+It+"U ( "+xt+"U )"):console.error("SMB is not limited by maxUAMSMBBasalMinutes. ( insulinReq: "+xt+"U )")):(console.error("profile.maxSMBBasalMinutes: "+b.maxSMBBasalMinutes+", profile.current_basal: "+b.current_basal),xt>(It=o(Ft*b.current_basal*b.maxSMBBasalMinutes/60,1))?console.error("SMB limited by maxSMBBasalMinutes: "+b.maxSMBBasalMinutes+"m ]: "+It+"U ( insulinReq: "+xt+"U )"):console.error("SMB is not limited by maxSMBBasalMinutes. ( insulinReq: "+xt+"U )"));var Gt=b.bolus_increment,Tt=1/Gt,Ut=f(b,Ee,He);Ut>.5&&console.error("SMB Delivery Ratio increased from default 0.5 to "+o(Ut,2));var Ot=Math.min(xt*Ut,It);Ot=Math.floor(Ot*Tt)/Tt,yt=o(60*((He-(fa+Ja)/2)/ma)/b.current_basal),xt>0&&Ot<Gt&&(yt=0);var Rt=0;yt<=0?yt=0:yt>=30?(yt=30*o(yt/30),yt=Math.min(60,Math.max(0,yt))):(Rt=o(Pe*yt/30,2),yt=30),Oe.reason+=" insulinReq "+xt,Ot>=It&&(Oe.reason+="; maxBolus "+It),yt>0&&(Oe.reason+="; setting "+yt+"m low temp of "+Rt+"U/h"),Oe.reason+=". ";var At=3;b.SMBInterval&&(At=Math.min(10,Math.max(1,b.SMBInterval)));var Pt=o(At-Dt,0),jt=o(60*(At-Dt),0)%60;if(console.error("naive_eventualBG "+fa+","+yt+"m "+Rt+"U/h temp needed; last bolus "+Dt+"m ago; maxBolus: "+It),Dt>At?Ot>0&&(Oe.units=Ot,Oe.reason+="Microbolusing "+Ot+"U. "):Oe.reason+="Waiting "+Pt+"m "+jt+"s to microbolus again. ",yt>0)return Oe.rate=Rt,Oe.duration=yt,Oe}var kt=_.getMaxSafeBasal(b);return St>kt&&(Oe.reason+="adj. req. rate: "+St+" to maxSafeBasal: "+o(kt,2)+", ",St=r(kt,b)),a.duration*(a.rate-Pe)/60>=2*xt?(Oe.reason+=a.duration+"m@"+a.rate.toFixed(2)+" > 2 * insulinReq. Setting temp basal of "+St+"U/hr. ",_.setTempBasal(St,30,b,Oe,a)):void 0===a.duration||0===a.duration?(Oe.reason+="no temp, setting "+St+"U/hr. ",_.setTempBasal(St,30,b,Oe,a)):a.duration>5&&r(St,b)<=r(a.rate,b)?(Oe.reason+="temp "+a.rate+" >~ req "+St+"U/hr. ",Oe):(Oe.reason+="temp "+a.rate+"<"+St+"U/hr. ",_.setTempBasal(St,30,b,Oe,a))}},6880:(e,a,t)=>{var r=t(6654);e.exports=function(e,a){var t=20;void 0!==a&&"string"==typeof a.model&&(r(a.model,"54")||r(a.model,"23"))&&(t=40);return e<1?Math.round(e*t)/t:e<10?Math.round(20*e)/20:Math.round(10*e)/10}},2705:(e,a,t)=>{var r=t(5639).Symbol;e.exports=r},9932:e=>{e.exports=function(e,a){for(var t=-1,r=null==e?0:e.length,o=Array(r);++t<r;)o[t]=a(e[t],t,e);return o}},9750:e=>{e.exports=function(e,a,t){return e==e&&(void 0!==t&&(e=e<=t?e:t),void 0!==a&&(e=e>=a?e:a)),e}},4239:(e,a,t)=>{var r=t(2705),o=t(9607),i=t(2333),n=r?r.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":n&&n in Object(e)?o(e):i(e)}},531:(e,a,t)=>{var r=t(2705),o=t(9932),i=t(1469),n=t(3448),s=r?r.prototype:void 0,l=s?s.toString:void 0;e.exports=function e(a){if("string"==typeof a)return a;if(i(a))return o(a,e)+"";if(n(a))return l?l.call(a):"";var t=a+"";return"0"==t&&1/a==-Infinity?"-0":t}},7561:(e,a,t)=>{var r=t(7990),o=/^\s+/;e.exports=function(e){return e?e.slice(0,r(e)+1).replace(o,""):e}},1957:(e,a,t)=>{var r="object"==typeof t.g&&t.g&&t.g.Object===Object&&t.g;e.exports=r},9607:(e,a,t)=>{var r=t(2705),o=Object.prototype,i=o.hasOwnProperty,n=o.toString,s=r?r.toStringTag:void 0;e.exports=function(e){var a=i.call(e,s),t=e[s];try{e[s]=void 0;var r=!0}catch(e){}var o=n.call(e);return r&&(a?e[s]=t:delete e[s]),o}},2333:e=>{var a=Object.prototype.toString;e.exports=function(e){return a.call(e)}},5639:(e,a,t)=>{var r=t(1957),o="object"==typeof self&&self&&self.Object===Object&&self,i=r||o||Function("return this")();e.exports=i},7990:e=>{var a=/\s/;e.exports=function(e){for(var t=e.length;t--&&a.test(e.charAt(t)););return t}},6654:(e,a,t)=>{var r=t(9750),o=t(531),i=t(554),n=t(9833);e.exports=function(e,a,t){e=n(e),a=o(a);var s=e.length,l=t=void 0===t?s:r(i(t),0,s);return(t-=a.length)>=0&&e.slice(t,l)==a}},1469:e=>{var a=Array.isArray;e.exports=a},3218:e=>{e.exports=function(e){var a=typeof e;return null!=e&&("object"==a||"function"==a)}},7005:e=>{e.exports=function(e){return null!=e&&"object"==typeof e}},3448:(e,a,t)=>{var r=t(4239),o=t(7005);e.exports=function(e){return"symbol"==typeof e||o(e)&&"[object Symbol]"==r(e)}},8601:(e,a,t)=>{var r=t(4841),o=1/0;e.exports=function(e){return e?(e=r(e))===o||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}},554:(e,a,t)=>{var r=t(8601);e.exports=function(e){var a=r(e),t=a%1;return a==a?t?a-t:a:0}},4841:(e,a,t)=>{var r=t(7561),o=t(3218),i=t(3448),n=/^[-+]0x[0-9a-f]+$/i,s=/^0b[01]+$/i,l=/^0o[0-7]+$/i,m=parseInt;e.exports=function(e){if("number"==typeof e)return e;if(i(e))return NaN;if(o(e)){var a="function"==typeof e.valueOf?e.valueOf():e;e=o(a)?a+"":a}if("string"!=typeof e)return 0===e?e:+e;e=r(e);var t=s.test(e);return t||l.test(e)?m(e.slice(2),t?2:8):n.test(e)?NaN:+e}},9833:(e,a,t)=>{var r=t(531);e.exports=function(e){return null==e?"":r(e)}}},a={};function t(r){var o=a[r];if(void 0!==o)return o.exports;var i=a[r]={exports:{}};return e[r](i,i.exports,t),i.exports}t.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}();var r=t(5546);freeaps_determineBasal=r})();
|