(function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode('._root_1vqqu_1{--component-bg: var(--color-bg, #0a0a0f);--component-bg-secondary: var(--color-bg-secondary, #12121a);--component-text: var(--color-text, #e8e8ec);--component-text-muted: var(--color-text-muted, #9999a8);--component-primary: var(--color-primary, #6366f1);--component-accent: var(--color-accent, #22d3ee);--component-border: var(--color-border, #2a2a3a);box-sizing:border-box!important;width:min(100%,1500px);margin:0 auto;color:var(--component-text);font-family:var(--font-main, system-ui, sans-serif);line-height:1.5}._root_1vqqu_1,._root_1vqqu_1 *,._root_1vqqu_1 *:before,._root_1vqqu_1 *:after{box-sizing:border-box!important}._board_1vqqu_24{display:grid;grid-template-columns:10.4fr 5.6fr;grid-template-rows:1fr;gap:0;width:100%;aspect-ratio:16 / 9;min-height:0}._chartPanel_1vqqu_34,._controlPanel_1vqqu_35{min-width:0;min-height:0;border:1px solid var(--component-border);border-radius:var(--border-radius, 12px);overflow:hidden;background:linear-gradient(135deg,color-mix(in srgb,var(--component-primary) 12%,transparent),transparent 35%),linear-gradient(180deg,var(--component-bg-secondary),var(--component-bg))}._chartPanel_1vqqu_34{position:relative;width:100%;height:100%;padding:1rem 1rem .95rem 4.15rem;background:linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(180deg,rgba(255,255,255,.04) 1px,transparent 1px),color-mix(in srgb,var(--component-bg) 76%,black);background-size:10% 100%,100% 20%,auto}._controlPanel_1vqqu_35{width:100%;height:100%;display:grid;grid-template-rows:auto minmax(0,1.35fr) auto auto auto;gap:.72rem;padding:1.05rem}._chartHeader_1vqqu_67,._controlHeader_1vqqu_68{min-width:0}._chartHeader_1vqqu_67{position:absolute;top:1rem;right:1rem;left:4.15rem;z-index:1;display:flex;justify-content:space-between;gap:1rem;pointer-events:none}._chartHeader_1vqqu_67 strong{color:var(--component-text-muted);font-family:var(--font-mono, monospace);font-size:.86rem;font-weight:500;text-transform:uppercase}._happyChartBadge_1vqqu_92,._hangryChartBadge_1vqqu_93{position:absolute;top:50%;left:50%;z-index:2;border-radius:var(--border-radius-sm, 8px);padding:.35rem 1rem;font-family:var(--font-display, var(--font-main, system-ui, sans-serif));font-size:6.4rem;font-style:italic;letter-spacing:0;line-height:1;pointer-events:none;text-align:center;text-transform:uppercase;text-shadow:0 0 28px rgba(34,211,238,.28);transform:translate(-50%,-50%);white-space:nowrap}._chartEmoji_1vqqu_113,._hangryChartEmoji_1vqqu_114{position:absolute;top:3.15rem;right:1.35rem;z-index:3;display:grid;place-items:center;width:10.4rem;height:10.4rem;border-radius:999px;background:color-mix(in srgb,var(--component-primary) 20%,rgba(10,10,15,.84));box-shadow:0 0 0 1px color-mix(in srgb,var(--component-primary) 42%,transparent),0 0 24px color-mix(in srgb,var(--component-primary) 24%,transparent);font-size:6.1rem;line-height:1;pointer-events:none}._hangryChartEmoji_1vqqu_114{animation:_hangryShake_1vqqu_1 .24s linear infinite,_hangryBreath_1vqqu_1 1.1s ease-in-out infinite;background:radial-gradient(circle,#f871719e,#f871712e 56%,#0a0a0fdb 72%);box-shadow:0 0 #f871716b,0 0 22px #f8717175}._happyChartBadge_1vqqu_92{color:color-mix(in srgb,var(--component-accent) 74%,white);opacity:.46}._hangryChartBadge_1vqqu_93{animation:_hangryBadgeShake_1vqqu_1 .26s linear infinite,_hangryPulse_1vqqu_1 1.35s ease-in-out infinite;background:#f8717124;box-shadow:0 0 0 1px #f8717161,0 0 22px #f871716b;color:#fecaca;text-shadow:0 0 18px rgba(248,113,113,.7),0 0 42px rgba(248,113,113,.42)}._eyebrow_1vqqu_163{margin:0 0 .45rem;color:var(--component-accent);font-family:var(--font-mono, monospace);font-size:.92rem;letter-spacing:0;text-transform:uppercase}._title_1vqqu_172{margin:0;color:var(--component-text);font-family:var(--font-display, var(--font-main, system-ui, sans-serif));font-size:1.9rem;font-weight:700;line-height:1.16}._mood_1vqqu_181,._hangryMood_1vqqu_182{display:flex;flex-direction:column;justify-content:center;gap:.85rem;min-height:0;padding:1.15rem;border:1px solid color-mix(in srgb,var(--component-border) 84%,white);border-radius:var(--border-radius-sm, 8px);background:color-mix(in srgb,var(--component-bg-secondary) 82%,black);text-align:center}._hangryMood_1vqqu_182{animation:_hangryPanelPulse_1vqqu_1 1.4s ease-in-out infinite;border-color:#f87171a3;background:radial-gradient(circle at 50% 32%,rgba(248,113,113,.34),transparent 38%),color-mix(in srgb,var(--component-bg-secondary) 78%,black)}._emoji_1vqqu_203,._hangryEmoji_1vqqu_204{display:grid;place-items:center;width:5.4rem;height:5.4rem;margin:0 auto;border-radius:999px;background:color-mix(in srgb,var(--component-primary) 18%,transparent);font-size:3.15rem}._hangryEmoji_1vqqu_204{animation:_hangryShake_1vqqu_1 .24s linear infinite,_hangryBreath_1vqqu_1 1.1s ease-in-out infinite;background:radial-gradient(circle,rgba(248,113,113,.62),rgba(248,113,113,.16) 56%,transparent 72%);box-shadow:0 0 #f871716b,0 0 22px #f8717175}._mood_1vqqu_181 strong,._mood_1vqqu_181 small,._hangryMood_1vqqu_182 strong,._hangryMood_1vqqu_182 small{display:block}._mood_1vqqu_181 small,._hangryMood_1vqqu_182 small{max-width:32rem;margin:.48rem auto 0;color:var(--component-text-muted);font-size:1.28rem;line-height:1.38}._mood_1vqqu_181 strong,._hangryMood_1vqqu_182 strong{font-family:var(--font-display, var(--font-main, system-ui, sans-serif));font-size:1.8rem;line-height:1.05}._hangryMood_1vqqu_182 strong{color:#fecaca}._zoneLabels_1vqqu_253{position:absolute;top:4.2rem;bottom:3.2rem;left:.9rem;display:flex;flex-direction:column;justify-content:space-between;width:2.65rem;color:var(--component-text-muted);font-family:var(--font-mono, monospace);font-size:.72rem;line-height:1.25;text-align:center;text-transform:uppercase}._chart_1vqqu_34{display:block;width:100%;height:100%;padding-top:2.65rem;overflow:visible}._gridLine_1vqqu_278{stroke:#ffffff17;stroke-width:.35}._targetLine_1vqqu_283{stroke:#ffffff6b;stroke-dasharray:1.4 1.4;stroke-width:.45}._glucoseLine_1vqqu_289,._insulinLine_1vqqu_290,._responseLine_1vqqu_291{fill:none;vector-effect:non-scaling-stroke}._glucoseLine_1vqqu_289{stroke:var(--component-primary);stroke-width:2.85}._insulinLine_1vqqu_290{stroke:var(--component-accent);stroke-width:2.3}._responseLine_1vqqu_291{stroke:#fbbf24;stroke-dasharray:3 2;stroke-width:1.85}._cursorLine_1vqqu_312{stroke:#ffffff52;stroke-width:.55}._delayLine_1vqqu_317{stroke:#fbbf24;stroke-linecap:round;stroke-width:1.75}._delayCallout_1vqqu_323{filter:drop-shadow(0 0 5px rgba(251,191,36,.42))}._delayText_1vqqu_327{fill:#fef3c7;font-family:var(--font-mono, monospace);font-size:3px;font-weight:600;letter-spacing:0;paint-order:stroke;stroke:#0a0a0fdb;stroke-width:.8px;text-transform:uppercase}._foodLine_1vqqu_339{stroke:#ffffff4d;stroke-dasharray:1.6 1.6;stroke-width:.6}._mealWindow_1vqqu_345{fill:#fb71851a;stroke:#fb71853d;stroke-width:.3}._snackWindow_1vqqu_351{fill:#fbbf241f;stroke:#fbbf2452;stroke-width:.3}._snackLine_1vqqu_357{stroke:#fbbf248a;stroke-dasharray:1.6 1.6;stroke-width:.55}._foodMarker_1vqqu_363{dominant-baseline:middle;font-size:7.5px}._glucoseDot_1vqqu_368,._insulinDot_1vqqu_369,._responseDot_1vqqu_370{vector-effect:non-scaling-stroke;stroke:var(--component-bg);stroke-width:1.2}._glucoseDot_1vqqu_368{fill:var(--component-primary)}._insulinDot_1vqqu_369{fill:var(--component-accent)}._responseDot_1vqqu_370{fill:#fbbf24}._legend_1vqqu_388{position:absolute;right:1rem;bottom:.95rem;left:4.15rem;display:flex;flex-wrap:wrap;gap:.55rem .8rem;align-items:center;color:var(--component-text-muted);font-family:var(--font-mono, monospace);font-size:.86rem}._legend_1vqqu_388 span{display:inline-flex;gap:.38rem;align-items:center}._legend_1vqqu_388 i{display:inline-block;width:1.35rem;height:.28rem;border-radius:999px}._glucoseKey_1vqqu_415{background:var(--component-primary)}._insulinKey_1vqqu_419{background:var(--component-accent)}._responseKey_1vqqu_423{background:#fbbf24}._foodKey_1vqqu_427{background:#fb7185}._snackKey_1vqqu_431{background:#fbbf24}._sidePanel_1vqqu_435{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;min-height:0;overflow:hidden}._metric_1vqqu_443,._delayCard_1vqqu_444{min-width:0;padding:.78rem;border:1px solid var(--component-border);border-radius:var(--border-radius-sm, 8px);background:color-mix(in srgb,var(--component-bg-secondary) 84%,black)}._metric_1vqqu_443 span,._delayCard_1vqqu_444 span{display:block;color:var(--component-text-muted);font-family:var(--font-mono, monospace);font-size:.72rem;line-height:1.2;text-transform:uppercase}._metric_1vqqu_443 strong,._delayCard_1vqqu_444 strong{display:block;margin-top:.15rem;color:var(--component-text);font-size:1.52rem;line-height:1.1}._metric_1vqqu_443 small{color:var(--component-text-muted);font-size:.72rem;font-weight:400}._delayCard_1vqqu_444{border-color:color-mix(in srgb,#fbbf24 42%,var(--component-border))}._delayCard_1vqqu_444 p{display:none;margin:.55rem 0 0;color:var(--component-text-muted);font-size:clamp(.72rem,1vw,.92rem);line-height:1.38}._causalChain_1vqqu_489{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.38rem;min-height:0}._causalStep_1vqqu_496,._activeCausalStep_1vqqu_497{position:relative;min-width:0;padding:.55rem .42rem;border:1px solid var(--component-border);border-radius:var(--border-radius-sm, 8px);background:color-mix(in srgb,var(--component-bg-secondary) 86%,black)}._causalStep_1vqqu_496:not(:last-child):after,._activeCausalStep_1vqqu_497:not(:last-child):after{position:absolute;top:50%;right:-.36rem;z-index:1;color:var(--component-text-muted);content:">";font-family:var(--font-mono, monospace);font-size:.7rem;transform:translateY(-50%)}._activeCausalStep_1vqqu_497{border-color:color-mix(in srgb,var(--component-accent) 72%,white);background:color-mix(in srgb,var(--component-accent) 18%,var(--component-bg-secondary))}._causalStep_1vqqu_496 span,._activeCausalStep_1vqqu_497 span{display:block;overflow:hidden;color:var(--component-text-muted);font-family:var(--font-mono, monospace);font-size:.64rem;line-height:1;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}._causalStep_1vqqu_496 strong,._activeCausalStep_1vqqu_497 strong{display:block;margin-top:.2rem;overflow:hidden;color:var(--component-text);font-size:1rem;line-height:1;text-overflow:ellipsis;white-space:nowrap}._controls_1vqqu_549{display:grid;grid-template-columns:.8fr .9fr 1fr;gap:.5rem}._button_1vqqu_555,._buttonPrimary_1vqqu_556{min-width:0;border-radius:var(--border-radius-sm, 8px);padding:.78rem .7rem;cursor:pointer;font:inherit;font-size:1rem;transition:transform var(--transition, .2s ease),opacity var(--transition, .2s ease),border-color var(--transition, .2s ease)}._button_1vqqu_555{border:1px solid var(--component-border);background:var(--component-bg-secondary);color:var(--component-text)}._buttonPrimary_1vqqu_556{border:1px solid color-mix(in srgb,var(--component-primary) 68%,white);background:var(--component-primary);color:#fff}._button_1vqqu_555:hover,._buttonPrimary_1vqqu_556:hover{opacity:.95;transform:translateY(-1px)}._button_1vqqu_555:disabled,._buttonPrimary_1vqqu_556:disabled{cursor:not-allowed;opacity:.45;transform:none}@keyframes _hangryShake_1vqqu_1{0%,to{transform:translate(0)}25%{transform:translate(-1px) rotate(-1deg)}50%{transform:translate(1px) rotate(1deg)}75%{transform:translate(-.5px) rotate(-.5deg)}}@keyframes _hangryBadgeShake_1vqqu_1{0%,to{transform:translate(-50%,-50%)}25%{transform:translate(calc(-50% - 2px),-50%) rotate(-1deg)}50%{transform:translate(calc(-50% + 2px),-50%) rotate(1deg)}75%{transform:translate(calc(-50% - 1px),-50%) rotate(-.5deg)}}@keyframes _hangryBreath_1vqqu_1{0%,to{box-shadow:0 0 #f8717157,0 0 18px #f8717157}50%{box-shadow:0 0 0 .75rem #f8717100,0 0 30px #f87171a3}}@keyframes _hangryPulse_1vqqu_1{0%,to{opacity:.76}50%{opacity:1}}@keyframes _hangryPanelPulse_1vqqu_1{0%,to{box-shadow:0 0 #f8717100}50%{box-shadow:0 0 20px #f8717138}}@media(orientation:portrait),(max-width:820px){._root_1vqqu_1{width:min(100%,760px)}._board_1vqqu_24{grid-template-columns:1fr;grid-template-rows:auto auto;gap:clamp(.7rem,2vw,1rem);aspect-ratio:auto}._chartPanel_1vqqu_34,._controlPanel_1vqqu_35{width:100%;height:auto;aspect-ratio:1 / 1}._controlPanel_1vqqu_35{grid-template-rows:auto minmax(0,1.25fr) auto auto auto;gap:.58rem;padding:.85rem}._chartPanel_1vqqu_34{padding:.85rem .85rem .78rem 3.35rem}._chartHeader_1vqqu_67,._legend_1vqqu_388{left:3.35rem}._chartEmoji_1vqqu_113,._hangryChartEmoji_1vqqu_114{top:2.75rem;right:1rem;width:8.7rem;height:8.7rem;font-size:5rem}._chartHeader_1vqqu_67 strong,._legend_1vqqu_388{font-size:.72rem}._eyebrow_1vqqu_163{font-size:.78rem}._title_1vqqu_172{font-size:1.55rem}._sidePanel_1vqqu_435{grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem}._mood_1vqqu_181,._hangryMood_1vqqu_182{gap:.55rem;padding:.72rem}._mood_1vqqu_181 strong,._hangryMood_1vqqu_182 strong{font-size:1.42rem}._mood_1vqqu_181 small,._hangryMood_1vqqu_182 small{font-size:1.02rem;line-height:1.32}._happyChartBadge_1vqqu_92,._hangryChartBadge_1vqqu_93{font-size:4.2rem}._metric_1vqqu_443,._delayCard_1vqqu_444{padding:.55rem}._metric_1vqqu_443 strong,._delayCard_1vqqu_444 strong{font-size:1.18rem}._causalChain_1vqqu_489{gap:.28rem}._causalStep_1vqqu_496,._activeCausalStep_1vqqu_497{padding:.38rem .3rem}}@media(max-width:520px){._chartPanel_1vqqu_34{padding:.72rem .68rem .7rem 2.7rem}._chartHeader_1vqqu_67,._legend_1vqqu_388{left:2.7rem}._chartEmoji_1vqqu_113,._hangryChartEmoji_1vqqu_114{top:2.28rem;right:.78rem;width:6.5rem;height:6.5rem;font-size:3.8rem}._chartHeader_1vqqu_67{top:.72rem;right:.68rem}._chartHeader_1vqqu_67 strong,._legend_1vqqu_388{font-size:.58rem}._legend_1vqqu_388{right:.68rem;bottom:.68rem;gap:.32rem .48rem}._zoneLabels_1vqqu_253{left:.55rem;width:1.85rem;font-size:.54rem}._title_1vqqu_172{font-size:1.18rem}._eyebrow_1vqqu_163{margin-bottom:.25rem;font-size:.68rem}._happyChartBadge_1vqqu_92,._hangryChartBadge_1vqqu_93{font-size:3rem}._mood_1vqqu_181,._hangryMood_1vqqu_182{gap:.38rem;padding:.55rem}._mood_1vqqu_181 strong,._hangryMood_1vqqu_182 strong{font-size:1.18rem}._mood_1vqqu_181 small,._hangryMood_1vqqu_182 small{font-size:1rem;line-height:1.28}._sidePanel_1vqqu_435{grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem}._metric_1vqqu_443,._delayCard_1vqqu_444{padding:.42rem}._metric_1vqqu_443 span,._delayCard_1vqqu_444 span{font-size:.56rem}._metric_1vqqu_443 strong,._delayCard_1vqqu_444 strong{font-size:.92rem}._causalChain_1vqqu_489{display:none}._controls_1vqqu_549{grid-template-columns:.8fr .9fr 1fr;gap:.35rem}._button_1vqqu_555,._buttonPrimary_1vqqu_556{padding:.52rem .4rem;font-size:.8rem}}')),document.head.appendChild(e)}}catch(r){console.error("vite-plugin-css-injected-by-js",r)}})(); var GlitchComponent=(function(V,M){"use strict";var Z={exports:{}},K={};var he;function _e(){if(he)return K;he=1;var o=Symbol.for("react.transitional.element"),i=Symbol.for("react.fragment");function d(l,c,r){var p=null;if(r!==void 0&&(p=""+r),c.key!==void 0&&(p=""+c.key),"key"in c){r={};for(var u in c)u!=="key"&&(r[u]=c[u])}else r=c;return c=r.ref,{$$typeof:o,type:l,key:p,ref:c!==void 0?c:null,props:r}}return K.Fragment=i,K.jsx=d,K.jsxs=d,K}var B={};var pe;function xe(){return pe||(pe=1,process.env.NODE_ENV!=="production"&&(function(){function o(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===se?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case _:return"Fragment";case w:return"Profiler";case D:return"StrictMode";case ce:return"Suspense";case ee:return"SuspenseList";case v:return"Activity"}if(typeof e=="object")switch(typeof e.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),e.$$typeof){case x:return"Portal";case P:return e.displayName||"Context";case Q:return(e._context.displayName||"Context")+".Consumer";case ie:var n=e.render;return e=e.displayName,e||(e=n.displayName||n.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case ue:return n=e.displayName||null,n!==null?n:o(e.type)||"Memo";case O:n=e._payload,e=e._init;try{return o(e(n))}catch{}}return null}function i(e){return""+e}function d(e){try{i(e);var n=!1}catch{n=!0}if(n){n=console;var h=n.error,y=typeof Symbol=="function"&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object";return h.call(n,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",y),i(e)}}function l(e){if(e===_)return"<>";if(typeof e=="object"&&e!==null&&e.$$typeof===O)return"<...>";try{var n=o(e);return n?"<"+n+">":"<...>"}catch{return"<...>"}}function c(){var e=F.A;return e===null?null:e.getOwner()}function r(){return Error("react-stack-top-frame")}function p(e){if(T.call(e,"key")){var n=Object.getOwnPropertyDescriptor(e,"key").get;if(n&&n.isReactWarning)return!1}return e.key!==void 0}function u(e,n){function h(){te||(te=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",n))}h.isReactWarning=!0,Object.defineProperty(e,"key",{get:h,configurable:!0})}function g(){var e=o(this.type);return z[e]||(z[e]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),e=this.props.ref,e!==void 0?e:null}function q(e,n,h,y,G,Y){var m=h.ref;return e={$$typeof:a,type:e,key:n,props:h,_owner:y},(m!==void 0?m:null)!==null?Object.defineProperty(e,"ref",{enumerable:!1,get:g}):Object.defineProperty(e,"ref",{enumerable:!1,value:null}),e._store={},Object.defineProperty(e._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:G}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:Y}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function k(e,n,h,y,G,Y){var m=n.children;if(m!==void 0)if(y)if(de(m)){for(y=0;y React keys must be passed directly to JSX without using spread: let props = %s; <%s key={someKey} {...props} />`,y,m,I,m),U[m+y]=!0)}if(m=null,h!==void 0&&(d(h),m=""+h),p(n)&&(d(n.key),m=""+n.key),"key"in n){h={};for(var X in n)X!=="key"&&(h[X]=n[X])}else h=n;return m&&u(h,typeof e=="function"?e.displayName||e.name||"Unknown":e),q(e,m,h,c(),G,Y)}function C(e){b(e)?e._store&&(e._store.validated=1):typeof e=="object"&&e!==null&&e.$$typeof===O&&(e._payload.status==="fulfilled"?b(e._payload.value)&&e._payload.value._store&&(e._payload.value._store.validated=1):e._store&&(e._store.validated=1))}function b(e){return typeof e=="object"&&e!==null&&e.$$typeof===a}var E=M,a=Symbol.for("react.transitional.element"),x=Symbol.for("react.portal"),_=Symbol.for("react.fragment"),D=Symbol.for("react.strict_mode"),w=Symbol.for("react.profiler"),Q=Symbol.for("react.consumer"),P=Symbol.for("react.context"),ie=Symbol.for("react.forward_ref"),ce=Symbol.for("react.suspense"),ee=Symbol.for("react.suspense_list"),ue=Symbol.for("react.memo"),O=Symbol.for("react.lazy"),v=Symbol.for("react.activity"),se=Symbol.for("react.client.reference"),F=E.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,T=Object.prototype.hasOwnProperty,de=Array.isArray,L=console.createTask?console.createTask:function(){return null};E={react_stack_bottom_frame:function(e){return e()}};var te,z={},ne=E.react_stack_bottom_frame.bind(E,r)(),oe=L(l(r)),U={};B.Fragment=_,B.jsx=function(e,n,h){var y=1e4>F.recentlyCreatedOwnerStacks++;return k(e,n,h,!1,y?Error("react-stack-top-frame"):ne,y?L(l(e)):oe)},B.jsxs=function(e,n,h){var y=1e4>F.recentlyCreatedOwnerStacks++;return k(e,n,h,!0,y?Error("react-stack-top-frame"):ne,y?L(l(e)):oe)}})()),B}var ye;function ve(){return ye||(ye=1,process.env.NODE_ENV==="production"?Z.exports=_e():Z.exports=xe()),Z.exports}var s=ve();const t={root:"_root_1vqqu_1",board:"_board_1vqqu_24",chartPanel:"_chartPanel_1vqqu_34",controlPanel:"_controlPanel_1vqqu_35",chartHeader:"_chartHeader_1vqqu_67",controlHeader:"_controlHeader_1vqqu_68",happyChartBadge:"_happyChartBadge_1vqqu_92",hangryChartBadge:"_hangryChartBadge_1vqqu_93",chartEmoji:"_chartEmoji_1vqqu_113",hangryChartEmoji:"_hangryChartEmoji_1vqqu_114",eyebrow:"_eyebrow_1vqqu_163",title:"_title_1vqqu_172",mood:"_mood_1vqqu_181",hangryMood:"_hangryMood_1vqqu_182",zoneLabels:"_zoneLabels_1vqqu_253",chart:"_chart_1vqqu_34",gridLine:"_gridLine_1vqqu_278",targetLine:"_targetLine_1vqqu_283",glucoseLine:"_glucoseLine_1vqqu_289",insulinLine:"_insulinLine_1vqqu_290",responseLine:"_responseLine_1vqqu_291",cursorLine:"_cursorLine_1vqqu_312",delayLine:"_delayLine_1vqqu_317",delayCallout:"_delayCallout_1vqqu_323",delayText:"_delayText_1vqqu_327",foodLine:"_foodLine_1vqqu_339",mealWindow:"_mealWindow_1vqqu_345",snackWindow:"_snackWindow_1vqqu_351",snackLine:"_snackLine_1vqqu_357",foodMarker:"_foodMarker_1vqqu_363",glucoseDot:"_glucoseDot_1vqqu_368",insulinDot:"_insulinDot_1vqqu_369",responseDot:"_responseDot_1vqqu_370",legend:"_legend_1vqqu_388",glucoseKey:"_glucoseKey_1vqqu_415",insulinKey:"_insulinKey_1vqqu_419",responseKey:"_responseKey_1vqqu_423",foodKey:"_foodKey_1vqqu_427",snackKey:"_snackKey_1vqqu_431",sidePanel:"_sidePanel_1vqqu_435",metric:"_metric_1vqqu_443",causalChain:"_causalChain_1vqqu_489",causalStep:"_causalStep_1vqqu_496",activeCausalStep:"_activeCausalStep_1vqqu_497",controls:"_controls_1vqqu_549",button:"_button_1vqqu_555",buttonPrimary:"_buttonPrimary_1vqqu_556"},W={click:"ui.button_click",hover:"ui.button_hover"},N=520,R=700,je=54,Se=84,me=102,ke=348,Ee=368,Le=388,fe=72,j=96,Te=145,A=[{id:"baseline",eyebrow:"Stage 1",title:"Blood sugar is a control loop.",copy:"No meal, no drama. The system stays near its set point.",chartLabel:"Blood sugar only",showFood:!1,showInsulin:!1,showResponse:!1,showDelay:!1,destabilized:!1,startMinute:0,stopMinute:44},{id:"meal-start",eyebrow:"Stage 2",title:"Food pushes glucose up.",copy:"The meal starts first. Blood sugar keeps rising while food is absorbed.",chartLabel:"Meal starts before the peak",showFood:!0,showInsulin:!1,showResponse:!1,showDelay:!1,destabilized:!1,startMinute:0,stopMinute:92},{id:"glucose-peak",eyebrow:"Stage 3",title:"Sugar rises first.",copy:"Insulin is not the cause of this peak. It is the answer to it.",chartLabel:"Glucose rises first",showFood:!0,showInsulin:!1,showResponse:!1,showDelay:!1,destabilized:!1,startMinute:92,stopMinute:126},{id:"insulin-rise",eyebrow:"Stage 4",title:"Insulin answers the rise.",copy:"The pancreas responds to glucose that was already high.",chartLabel:"Glucose causes insulin",showFood:!0,showInsulin:!0,showResponse:!1,showDelay:!1,destabilized:!1,startMinute:126,stopMinute:156},{id:"glucose-fall",eyebrow:"Stage 5",title:"Then action lands in tissue.",copy:"Insulin action pulls glucose out of blood. The curve bends down.",chartLabel:"Insulin causes glucose uptake",showFood:!0,showInsulin:!0,showResponse:!0,showDelay:!1,destabilized:!1,startMinute:156,stopMinute:206},{id:"insulin-fall",eyebrow:"Stage 6",title:"Lower sugar quiets insulin.",copy:"When glucose falls, the signal fades. The loop starts settling.",chartLabel:"Lower glucose lowers insulin",showFood:!0,showInsulin:!0,showResponse:!0,showDelay:!1,destabilized:!1,startMinute:206,stopMinute:252},{id:"return-baseline",eyebrow:"Stage 7",title:"Good timing stabilizes.",copy:"The response arrives while it is still useful, so the loop returns to baseline.",chartLabel:"Back toward equilibrium",showFood:!0,showInsulin:!0,showResponse:!0,showDelay:!1,destabilized:!1,startMinute:252,stopMinute:320},{id:"loop-summary",eyebrow:"Stage 8",title:"The loop is simple.",copy:"Glucose calls. Insulin answers. Tissue acts. Timing decides whether this stabilizes.",chartLabel:"A stabilizing feedback loop",showFood:!0,showInsulin:!0,showResponse:!0,showDelay:!1,destabilized:!1,startMinute:0,stopMinute:320},{id:"lag-setup",eyebrow:"Stage 9",title:"Now add only delay.",copy:"Same meal. Same loop. The answer just arrives late.",chartLabel:"Same loop, more lag",showFood:!0,showInsulin:!0,showResponse:!0,showDelay:!0,destabilized:!0,startMinute:0,stopMinute:92},{id:"lag-high",eyebrow:"Stage 10",title:"This is the “resistance” moment.",copy:"It looks like glucose is not being handled. But in this model, the response is late.",chartLabel:"Lag lets glucose run high",showFood:!0,showInsulin:!0,showResponse:!0,showDelay:!0,destabilized:!0,startMinute:92,stopMinute:132},{id:"lag-insulin",eyebrow:"Stage 11",title:"The answer points backward.",copy:"Insulin is reacting to old glucose information. The system is chasing the past.",chartLabel:"The answer arrives late",showFood:!0,showInsulin:!0,showResponse:!0,showDelay:!0,destabilized:!0,startMinute:132,stopMinute:186},{id:"late-action",eyebrow:"Stage 12",title:"Late correction finally hits.",copy:"Now uptake is strong, but the original glucose problem has already moved on.",chartLabel:"Correction after the moment passed",showFood:!0,showInsulin:!0,showResponse:!0,showDelay:!0,destabilized:!0,startMinute:186,stopMinute:236},{id:"crash",eyebrow:"Stage 13",title:"Late becomes too much.",copy:"A correction that would have helped earlier now overshoots. That is the crash.",chartLabel:"The crash",showFood:!0,showInsulin:!0,showResponse:!0,showDelay:!0,destabilized:!0,startMinute:236,stopMinute:306},{id:"recovery",eyebrow:"Stage 14",title:"The loop remembers.",copy:"Insulin action fades slowly. The body is still carrying the late response.",chartLabel:"Memory in the loop",showFood:!0,showInsulin:!0,showResponse:!0,showDelay:!0,destabilized:!0,startMinute:306,stopMinute:440},{id:"whiplash-summary",eyebrow:"Stage 15",title:"Timing made the whiplash.",copy:"High, then low, from the same loop. The problem is not just level. It is delay.",chartLabel:"Recovery without snacking",showFood:!0,showInsulin:!0,showResponse:!0,showDelay:!0,destabilized:!0,startMinute:440,stopMinute:650},{id:"snack-setup",eyebrow:"Stage 16",title:"The crash recruits behavior.",copy:"The low feels urgent. Snacking becomes the easiest way to push glucose back up.",chartLabel:"Snack added during the low",showFood:!0,showInsulin:!0,showResponse:!0,showDelay:!0,destabilized:!0,showSnack:!0,snacking:!0,startMinute:306,stopMinute:368},{id:"snack-bump",eyebrow:"Stage 17",title:"The snack works short term.",copy:"Glucose rises. The feeling improves. But the loop has not learned timing.",chartLabel:"Short-term relief",showFood:!0,showInsulin:!0,showResponse:!0,showDelay:!0,destabilized:!0,showSnack:!0,snacking:!0,startMinute:368,stopMinute:414},{id:"snack-insulin",eyebrow:"Stage 18",title:"Now the loop is triggered again.",copy:"The snack is another glucose input, so the delayed response starts chasing again.",chartLabel:"Another response is triggered",showFood:!0,showInsulin:!0,showResponse:!0,showDelay:!0,destabilized:!0,showSnack:!0,snacking:!0,startMinute:414,stopMinute:464},{id:"calorie-cost",eyebrow:"Stage 19",title:"Relief has a calorie cost.",copy:"The snack solves the low by adding energy. Repeat that pattern and intake rises.",chartLabel:"Relief has a calorie cost",showFood:!0,showInsulin:!0,showResponse:!0,showDelay:!0,destabilized:!0,showSnack:!0,snacking:!0,startMinute:464,stopMinute:560},{id:"snack-summary",eyebrow:"Stage 20",title:"Aha: the villain is delay.",copy:"What gets called resistance can be seen here as timing failure: late response, overshoot, crash, snack.",chartLabel:"Whiplash plus snacking",showFood:!0,showInsulin:!0,showResponse:!0,showDelay:!0,destabilized:!0,showSnack:!0,snacking:!0,startMinute:0,stopMinute:650}];function H(o,i,d){try{o?.playSound?.(i,d)}catch{}}function S(o,i,d){return Math.min(d,Math.max(i,o))}function $(o,i){return typeof o=="number"&&Number.isFinite(o)?o:i}function Me(o,i){return i.reduce((d,l)=>{const c=l.width??24,r=o-l.center;return d+l.load*Math.exp(-(r*r)/(2*c*c))},0)}function ge(o,i){const d=[];let l=j,c=12,r=0;const p=R/N,u=Math.max(1,Math.round(o.sensorDelay/p)),g=Array(u+2).fill(j);for(let q=0;q({t:i/(N-1)*R,glucose:j,insulin:12,response:0,food:0,sensedGlucose:j,uptake:0}))}function ae(o,i,d,l,c){return o.slice(0,c+1).map((r,p)=>{const u=p/(N-1)*100,g=100-(r[i]-d)/(l-d)*100;return`${u.toFixed(2)},${S(g,4,96).toFixed(2)}`}).join(" ")}function re(o,i,d,l,c){const r=i/(N-1)*100,p=100-(o[c]-d)/(l-d)*100;return{x:r,y:S(p,4,96)}}function be(o){return S(Math.round(o/R*(N-1)),0,N-1)}function Re(o){return o>=Te?{emoji:"🥴",label:"High zone",copy:"Sugar is lingering above the healthy range while insulin is still catching up."}:o<=fe?{emoji:"😠",label:"Low zone",copy:"The delayed response overcorrected. Energy dips, mood gets sharp."}:{emoji:"🙂",label:"Target zone",copy:"The system is near equilibrium, with fuel and response mostly in sync."}}function qe(o,i){return i.showFood?o.food>10?"food":i.showInsulin&&o.sensedGlucose>j+4&&o.insulin<24?"sense":i.showInsulin&&o.insulin>24&&(!i.showResponse||o.response<12)?"insulin":i.showResponse&&o.response>12?"action":"baseline":"baseline"}function we({config:o,onComplete:i,onProgress:d,theme:l,className:c,host:r}){const p=o.params??{},u={responseDelay:$(p.responseDelay,34),mealLoad:$(p.mealLoad,44),pancreasStrength:$(p.pancreasStrength,1),playbackSpeed:$(p.playbackSpeed,1),primaryColor:p.primaryColor??l?.primary??"#6366f1",accentColor:p.accentColor??l?.accent??"#22d3ee"},[g,q]=M.useState(0),[k,C]=M.useState(!1),[b,E]=M.useState(0),a=A[b],x=M.useMemo(()=>{if(a.id==="baseline")return Ne();const f=a.snacking?[{center:Le,load:u.mealLoad*.7,width:20}]:[];return a.destabilized?ge({sensorDelay:u.responseDelay+4,actionDelay:u.responseDelay*1.5+15,betaGain:u.pancreasStrength*1.55,insulinClearance:32,insulinEffect:1.18},[{center:me,load:u.mealLoad*1.23,width:24},...f]):ge({sensorDelay:7,actionDelay:18,betaGain:.82,insulinClearance:22,insulinEffect:1.08},[{center:me,load:30,width:24}])},[u.responseDelay,u.mealLoad,u.pancreasStrength,a.destabilized,a.id,a.snacking]),_=be(a.startMinute),D=be(a.stopMinute),w=x[g]??x[0],Q=Re(w.glucose),P=w.glucose<=fe,ie=P?"Hangry":"Happy",ce=Math.round(w.glucose),ee=Math.round(w.insulin),ue=S(Math.round(u.responseDelay/80*100),0,100),O=S(Math.round((Math.max(...x.map(f=>f.glucose))-Math.min(...x.map(f=>f.glucose)))*.9),0,100),v=re(w,g,50,200,"glucose"),se=re(w,g,0,125,"insulin"),F=re(w,g,0,125,"response"),T=je/R*100,de=Se/R*100,L=ke/R*100,te=Ee/R*100,z=v.x>=T,ne=v.x>=L,oe=u.responseDelay/R*100,U=S(v.x-oe,0,100),e=(U+v.x)/2,n=qe(w,a),h=Math.round(w.sensedGlucose),y=w.uptake.toFixed(1);M.useEffect(()=>{if(k)return;const f=window.setInterval(()=>{q(J=>J>=D?J:J+1)},42/u.playbackSpeed);return()=>window.clearInterval(f)},[u.playbackSpeed,k,D]),M.useEffect(()=>{const f=Math.max(1,D-_),J=(b+S((g-_)/f,0,1))/A.length;d?.(Math.min(95,Math.round(J*95)))},[g,b,d,_,D]),M.useEffect(()=>{q(_),C(!1)},[b,_]);const G={"--component-bg":l?.bg,"--component-bg-secondary":l?.bgSecondary,"--component-text":l?.text,"--component-text-muted":l?.textMuted,"--component-primary":u.primaryColor,"--component-accent":u.accentColor,"--component-border":l?.border};function Y(){H(r,W.click,{target:"pause",paused:!k}),C(f=>!f)}function m(){H(r,W.click,{target:"previous-stage",lessonIndex:b}),E(f=>Math.max(0,f-1))}function I(){if(H(r,W.click,{target:"next-stage",lessonIndex:b}),b>=A.length-1){X();return}E(f=>Math.min(A.length-1,f+1))}function X(){H(r,W.click,{target:"complete"}),d?.(100),i({success:!0,score:Math.max(1,100-Math.round((ue+O)/4)),data:{completedAt:new Date().toISOString(),responseDelay:u.responseDelay,instabilityScore:O,lesson:"Delay can turn a stabilizing feedback loop into an oscillating hysteresis loop."}})}return s.jsx("div",{className:[t.root,c].filter(Boolean).join(" "),style:G,children:s.jsxs("div",{className:t.board,children:[s.jsxs("div",{className:t.chartPanel,children:[s.jsx("div",{className:P?t.hangryChartEmoji:t.chartEmoji,"aria-hidden":"true",children:a.showFood&&!z?"🍽️":Q.emoji}),s.jsx("div",{className:P?t.hangryChartBadge:t.happyChartBadge,"aria-live":"polite",children:ie}),s.jsxs("div",{className:t.chartHeader,children:[s.jsx("p",{className:t.eyebrow,children:a.eyebrow}),s.jsx("strong",{children:a.chartLabel})]}),s.jsxs("div",{className:t.zoneLabels,"aria-hidden":"true",children:[s.jsx("span",{children:"unhealthy high"}),s.jsx("span",{children:"target"}),s.jsx("span",{children:"cranky low"})]}),s.jsxs("svg",{className:t.chart,viewBox:"0 0 100 100",role:"img","aria-label":"Animated graph of blood sugar, insulin level, and insulin response",children:[s.jsxs("defs",{children:[s.jsxs("linearGradient",{id:"bloodsugarHighZone",x1:"0",x2:"0",y1:"0",y2:"1",children:[s.jsx("stop",{offset:"0%",stopColor:"rgba(248, 113, 113, 0.28)"}),s.jsx("stop",{offset:"100%",stopColor:"rgba(248, 113, 113, 0.06)"})]}),s.jsxs("linearGradient",{id:"bloodsugarLowZone",x1:"0",x2:"0",y1:"0",y2:"1",children:[s.jsx("stop",{offset:"0%",stopColor:"rgba(34, 211, 238, 0.05)"}),s.jsx("stop",{offset:"100%",stopColor:"rgba(34, 211, 238, 0.26)"})]}),s.jsx("marker",{id:"bloodsugarDelayArrow",markerHeight:"4",markerWidth:"5",orient:"auto",refX:"4.4",refY:"2",children:s.jsx("path",{d:"M0,0 L5,2 L0,4 Z",fill:"#fbbf24"})})]}),s.jsx("rect",{x:"0",y:"0",width:"100",height:"37",fill:"url(#bloodsugarHighZone)"}),s.jsx("rect",{x:"0",y:"83",width:"100",height:"17",fill:"url(#bloodsugarLowZone)"}),[20,40,60,80].map(f=>s.jsx("line",{className:t.gridLine,x1:"0",x2:"100",y1:f,y2:f},f)),s.jsx("line",{className:t.targetLine,x1:"0",x2:"100",y1:"69.33",y2:"69.33"}),a.showFood?s.jsxs(s.Fragment,{children:[s.jsx("rect",{className:t.mealWindow,x:T,y:"5",width:de-T,height:"91"}),s.jsx("line",{className:t.foodLine,x1:T,x2:T,y1:"5",y2:"96"}),s.jsx("text",{className:t.foodMarker,x:T,y:"12",textAnchor:"middle",children:"🍽️"}),a.showSnack?s.jsxs(s.Fragment,{children:[s.jsx("rect",{className:t.snackWindow,x:L,y:"5",width:te-L,height:"91"}),s.jsx("line",{className:t.snackLine,x1:L,x2:L,y1:"5",y2:"96"}),s.jsx("text",{className:t.foodMarker,x:L,y:"12",textAnchor:"middle",children:"🍬"})]}):null]}):null,s.jsx("polyline",{className:t.glucoseLine,points:ae(x,"glucose",50,200,g)}),a.showInsulin?s.jsx("polyline",{className:t.insulinLine,points:ae(x,"insulin",0,125,g)}):null,a.showResponse?s.jsx("polyline",{className:t.responseLine,points:ae(x,"response",0,125,g)}):null,s.jsx("line",{className:t.cursorLine,x1:v.x,x2:v.x,y1:"0",y2:"100"}),a.showDelay?s.jsxs("g",{className:t.delayCallout,children:[s.jsx("line",{className:t.delayLine,markerEnd:"url(#bloodsugarDelayArrow)",x1:U,x2:v.x,y1:"18",y2:"18"}),s.jsx("text",{className:t.delayText,x:e,y:"16",textAnchor:"middle",children:"late response"})]}):null,s.jsx("circle",{className:t.glucoseDot,cx:v.x,cy:v.y,r:"2.2"}),a.showInsulin?s.jsx("circle",{className:t.insulinDot,cx:se.x,cy:se.y,r:"1.9"}):null,a.showResponse?s.jsx("circle",{className:t.responseDot,cx:F.x,cy:F.y,r:"1.6"}):null]}),s.jsxs("div",{className:t.legend,children:[s.jsxs("span",{children:[s.jsx("i",{className:t.glucoseKey})," Blood sugar"]}),a.showFood?s.jsxs("span",{children:[s.jsx("i",{className:t.foodKey})," Food event"]}):null,a.showSnack?s.jsxs("span",{children:[s.jsx("i",{className:t.snackKey})," Snack"]}):null,a.showInsulin?s.jsxs("span",{children:[s.jsx("i",{className:t.insulinKey})," Insulin level"]}):null,a.showResponse?s.jsxs("span",{children:[s.jsx("i",{className:t.responseKey})," Insulin action in tissue"]}):null]})]}),s.jsxs("section",{className:t.controlPanel,children:[s.jsxs("div",{className:t.controlHeader,children:[s.jsxs("p",{className:t.eyebrow,children:[a.eyebrow," of ",A.length]}),s.jsx("h2",{className:t.title,children:a.title})]}),s.jsx("div",{className:P?t.hangryMood:t.mood,"aria-live":"polite",children:s.jsxs("span",{children:[s.jsx("strong",{children:a.showFood&&!z?"Food is coming":Q.label}),s.jsx("small",{children:a.copy})]})}),s.jsxs("div",{className:t.sidePanel,children:[s.jsxs("div",{className:t.metric,children:[s.jsx("span",{children:"Blood sugar"}),s.jsxs("strong",{children:[ce,s.jsx("small",{children:" mg/dL"})]})]}),a.showFood?s.jsxs("div",{className:t.metric,children:[s.jsx("span",{children:a.showSnack?"Snack":"Food event"}),s.jsx("strong",{children:a.showSnack?ne?"added":"craving":z?"absorbing":"up next"})]}):s.jsxs("div",{className:t.metric,children:[s.jsx("span",{children:"Baseline"}),s.jsxs("strong",{children:[j,s.jsx("small",{children:" mg/dL"})]})]}),a.showInsulin?s.jsxs("div",{className:t.metric,children:[s.jsx("span",{children:"Insulin"}),s.jsxs("strong",{children:[ee,s.jsx("small",{children:" signal"})]})]}):null,a.showDelay?s.jsxs("div",{className:t.metric,children:[s.jsx("span",{children:"Delay"}),s.jsxs("strong",{children:[Math.round(u.responseDelay),s.jsx("small",{children:" min"})]})]}):null]}),s.jsxs("div",{className:t.causalChain,"aria-label":"Causal chain",children:[s.jsxs("div",{className:n==="food"?t.activeCausalStep:t.causalStep,children:[s.jsx("span",{children:"Food"}),s.jsx("strong",{children:Math.round(w.food)})]}),s.jsxs("div",{className:n==="sense"?t.activeCausalStep:t.causalStep,children:[s.jsx("span",{children:"Old sugar"}),s.jsx("strong",{children:h})]}),s.jsxs("div",{className:n==="insulin"?t.activeCausalStep:t.causalStep,children:[s.jsx("span",{children:"Insulin"}),s.jsx("strong",{children:ee})]}),s.jsxs("div",{className:n==="action"?t.activeCausalStep:t.causalStep,children:[s.jsx("span",{children:"Action"}),s.jsx("strong",{children:y})]})]}),s.jsxs("footer",{className:t.controls,children:[s.jsx("button",{className:t.button,disabled:b===0,onClick:m,type:"button",children:"Back"}),s.jsx("button",{className:t.button,onClick:Y,onMouseEnter:()=>H(r,W.hover),type:"button",children:k?"Resume":"Pause"}),s.jsx("button",{className:t.buttonPrimary,onClick:I,type:"button",children:b===A.length-1?"Complete":"Next"})]})]})]})})}const le={name:"bloodsugar",displayName:"Blood Sugar Delay Lab",version:"1.0.0",paramSchema:{responseDelay:{type:"range",label:"Feedback Lag",description:"Minutes of delay between glucose rising, insulin being secreted, and insulin action arriving.",default:34,min:0,max:80,step:1},mealLoad:{type:"range",label:"Meal Size",default:44,min:20,max:80,step:1},pancreasStrength:{type:"range",label:"Compensation Strength",default:1,min:.45,max:1.6,step:.01},playbackSpeed:{type:"range",label:"Playback Speed",default:1,min:.25,max:3,step:.05},primaryColor:{type:"color",label:"Glucose Color",default:"#6366f1"},accentColor:{type:"color",label:"Insulin Color",default:"#22d3ee"}},defaultParams:{responseDelay:34,mealLoad:44,pancreasStrength:1,playbackSpeed:1,primaryColor:"#6366f1",accentColor:"#22d3ee"}};return typeof window<"u"&&(window.GlitchComponents??={},window.GlitchComponents[le.name]={default:we,metadata:le}),V.default=we,V.metadata=le,Object.defineProperties(V,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}}),V})({},React); //# sourceMappingURL=bloodsugar.js.map