diff --git a/404.html b/404.html index ba6cc2897..0f8b31cc8 100644 --- a/404.html +++ b/404.html @@ -8,15 +8,15 @@ - - + +
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

- - + + \ No newline at end of file diff --git a/assets/js/28292353.e934e737.js b/assets/js/28292353.ab22b6a0.js similarity index 54% rename from assets/js/28292353.e934e737.js rename to assets/js/28292353.ab22b6a0.js index 6d30d676f..ae5b19bd2 100644 --- a/assets/js/28292353.e934e737.js +++ b/assets/js/28292353.ab22b6a0.js @@ -1 +1 @@ -"use strict";(self.webpackChunkpioreactor=self.webpackChunkpioreactor||[]).push([[9056],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>m});var i=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function l(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=i.createContext({}),u=function(e){var t=i.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},c=function(e){var t=u(e.components);return i.createElement(s.Provider,{value:t},e.children)},g="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},d=i.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,c=r(e,["components","mdxType","originalType","parentName"]),g=u(n),d=a,m=g["".concat(s,".").concat(d)]||g[d]||p[d]||o;return n?i.createElement(m,l(l({ref:t},c),{},{components:n})):i.createElement(m,l({ref:t},c))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=d;var r={};for(var s in t)hasOwnProperty.call(t,s)&&(r[s]=t[s]);r.originalType=e,r[g]="string"==typeof e?e:a,l[1]=r;for(var u=2;u{n.d(t,{Z:()=>l});var i=n(67294),a=n(93743);const o={tableOfContentsInline:"tableOfContentsInline_prmo"};function l(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:l}=e;return i.createElement("div",{className:o.tableOfContentsInline},i.createElement(a.Z,{toc:t,minHeadingLevel:n,maxHeadingLevel:l,className:"table-of-contents",linkClassName:null}))}},93743:(e,t,n)=>{n.d(t,{Z:()=>m});var i=n(87462),a=n(67294),o=n(86668);function l(e){const t=e.map((e=>({...e,parentIndex:-1,children:[]}))),n=Array(7).fill(-1);t.forEach(((e,t)=>{const i=n.slice(2,e.level);e.parentIndex=Math.max(...i),n[e.level]=t}));const i=[];return t.forEach((e=>{const{parentIndex:n,...a}=e;n>=0?t[n].children.push(a):i.push(a)})),i}function r(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:i}=e;return t.flatMap((e=>{const t=r({toc:e.children,minHeadingLevel:n,maxHeadingLevel:i});return function(e){return e.level>=n&&e.level<=i}(e)?[{...e,children:t}]:t}))}function s(e){const t=e.getBoundingClientRect();return t.top===t.bottom?s(e.parentNode):t}function u(e,t){let{anchorTopOffset:n}=t;const i=e.find((e=>s(e).top>=n));if(i){return function(e){return e.top>0&&e.bottom{e.current=t?0:document.querySelector(".navbar").clientHeight}),[t]),e}function g(e){const t=(0,a.useRef)(void 0),n=c();(0,a.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:i,linkActiveClassName:a,minHeadingLevel:o,maxHeadingLevel:l}=e;function r(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(i),r=function(e){let{minHeadingLevel:t,maxHeadingLevel:n}=e;const i=[];for(let a=t;a<=n;a+=1)i.push(`h${a}.anchor`);return Array.from(document.querySelectorAll(i.join()))}({minHeadingLevel:o,maxHeadingLevel:l}),s=u(r,{anchorTopOffset:n.current}),c=e.find((e=>s&&s.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,n){n?(t.current&&t.current!==e&&t.current.classList.remove(a),e.classList.add(a),t.current=e):e.classList.remove(a)}(e,e===c)}))}return document.addEventListener("scroll",r),document.addEventListener("resize",r),r(),()=>{document.removeEventListener("scroll",r),document.removeEventListener("resize",r)}}),[e,n])}function p(e){let{toc:t,className:n,linkClassName:i,isChild:o}=e;return t.length?a.createElement("ul",{className:o?void 0:n},t.map((e=>a.createElement("li",{key:e.id},a.createElement("a",{href:`#${e.id}`,className:i??void 0,dangerouslySetInnerHTML:{__html:e.value}}),a.createElement(p,{isChild:!0,toc:e.children,className:n,linkClassName:i}))))):null}const d=a.memo(p);function m(e){let{toc:t,className:n="table-of-contents table-of-contents__left-border",linkClassName:s="table-of-contents__link",linkActiveClassName:u,minHeadingLevel:c,maxHeadingLevel:p,...m}=e;const h=(0,o.L)(),f=c??h.tableOfContents.minHeadingLevel,v=p??h.tableOfContents.maxHeadingLevel,y=function(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:i}=e;return(0,a.useMemo)((()=>r({toc:l(t),minHeadingLevel:n,maxHeadingLevel:i})),[t,n,i])}({toc:t,minHeadingLevel:f,maxHeadingLevel:v});return g((0,a.useMemo)((()=>{if(s&&u)return{linkClassName:s,linkActiveClassName:u,minHeadingLevel:f,maxHeadingLevel:v}}),[s,u,f,v])),a.createElement(d,(0,i.Z)({toc:y,className:n,linkClassName:s},m))}},6138:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>r,default:()=>d,frontMatter:()=>l,metadata:()=>s,toc:()=>c});var i=n(87462),a=(n(67294),n(3905)),o=n(3901);const l={title:"Using community plugins",slug:"/using-community-plugins"},r=void 0,s={unversionedId:"Extending your Pioreactor/06a-using-community-plugins",id:"Extending your Pioreactor/06a-using-community-plugins",title:"Using community plugins",description:"The Pioreactor comes with a large set of functionality and behaviour to accomplish most projects. For example, continuous culturing, optical density reading, and stable temperatures are available out-of-the-box. However, the specifics and range of how people use bioreactors goes far beyond what we could ever cover. That's why Pioreactor has added a platform so that community members can make their own extensions and share them with others. We call these plugins. (Below is how to install plugins - if you are looking to create your own plugins, see here.)",source:"@site/user-guide/03-Extending your Pioreactor/06a-using-community-plugins.mdx",sourceDirName:"03-Extending your Pioreactor",slug:"/using-community-plugins",permalink:"/user-guide/using-community-plugins",draft:!1,tags:[],version:"current",frontMatter:{title:"Using community plugins",slug:"/using-community-plugins"},sidebar:"tutorialSidebar",previous:{title:"Updating the Pioreactor software",permalink:"/user-guide/updating-software"},next:{title:"List of available plugins",permalink:"/user-guide/available-plugins"}},u={},c=[{value:"Installing plugins",id:"installing-plugins",level:2},{value:"Automations installed via plugins",id:"automations-installed-via-plugins",level:3},{value:"Activities installed via plugins",id:"activities-installed-via-plugins",level:3},{value:"Uninstalling plugins",id:"uninstalling-plugins",level:3},{value:"Alternative: putting Python files in the the plugins folder",id:"alternative-putting-python-files-in-the-the-plugins-folder",level:2}],g={toc:c},p="wrapper";function d(e){let{components:t,...l}=e;return(0,a.kt)(p,(0,i.Z)({},g,l,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The Pioreactor comes with a large set of functionality and behaviour to accomplish most projects. For example, continuous culturing, optical density reading, and stable temperatures are available out-of-the-box. However, the specifics and range of how people use bioreactors goes far beyond what we could ever cover. That's why Pioreactor has added a platform so that community members can make their own extensions and share them with others. We call these ",(0,a.kt)("em",{parentName:"p"},"plugins.")," (Below is how to install plugins - if you are looking to create your own plugins, see ",(0,a.kt)("a",{parentName:"p",href:"/developer-guide/plugin-as-python-package"},"here"),".)"),(0,a.kt)(o.Z,{toc:c,mdxType:"TOCInline"}),(0,a.kt)("h2",{id:"installing-plugins"},"Installing plugins"),(0,a.kt)("p",null,'From your Pioreactor\'s interface, the "Plugins" button on the left navigation bar will display all your currently installed plugins, and some recommended plugins. We also encourage you to explore our ',(0,a.kt)("a",{parentName:"p",href:"https://forum.pioreactor.com/"},"forums")," for more plugins created by the community."),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Plugin page in the Pioreactor UI. The page shows a list of plugins, with a description of the plugin under each one.",src:n(44901).Z,width:"3100",height:"1648"})),(0,a.kt)("p",null,'You can also use the "Install plugin by name" button in the top-right to install a plugin that is not featured on this page.'),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Plugin page in the Pioreactor UI. The "install plugin by name" is highlighted.",src:n(28243).Z,width:"3100",height:"1648"})),(0,a.kt)("h3",{id:"automations-installed-via-plugins"},"Automations installed via plugins"),(0,a.kt)("p",null,"Some plugins add new automations to your Pioreactor. After installing, new dosing, LED, or temperature automations will be available in the list of automations available to you."),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"The UI of an automation installed via a plugin. The plugin is highlighted in the dropdown.",src:n(33097).Z,width:"1444",height:"1104"}),"\n",(0,a.kt)("img",{alt:"The UI of an automation installed via a plugin, with the automation's settings displayed.",src:n(4461).Z,width:"1444",height:"1104"})),(0,a.kt)("h3",{id:"activities-installed-via-plugins"},"Activities installed via plugins"),(0,a.kt)("p",null,"Some plugins add new activities to your Pioreactor. After installation, an activity's state and settings will show up on each Pioreactor's card. Below, we've installed the pioreactor-air-bubbler plugin:"),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"The Pioreactor card with the newly installed activity displayed.",src:n(87980).Z,width:"2074",height:"1042"})),(0,a.kt)("p",null,"Managing on/off and settings are done just like any other job, in the Manage dialog:"),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"The list of activities, that now includes the activity installed via a plugin (highlighted).",src:n(70480).Z,width:"1356",height:"1122"}),"\n",(0,a.kt)("img",{alt:"The list of settings of activities, and specific settings for the new activity are highlighted.",src:n(37185).Z,width:"1356",height:"1122"})),(0,a.kt)("h3",{id:"uninstalling-plugins"},"Uninstalling plugins"),(0,a.kt)("p",null,"You can uninstall plugins from the same page, too. These will remove the action on the Pioreactor's card, but won't delete the section in your config.ini. Also, if a SQL table was installed with the plugin, the table will not be deleted."),(0,a.kt)("h2",{id:"alternative-putting-python-files-in-the-the-plugins-folder"},"Alternative: putting Python files in the the ",(0,a.kt)("inlineCode",{parentName:"h2"},"plugins")," folder"),(0,a.kt)("p",null,"An alternative way to install a plugin is to place a Python file in the ",(0,a.kt)("inlineCode",{parentName:"p"},"/home/pioreactor/.pioreactor/plugins")," directory on the Raspberry Pi. This is good for one-off scripts or plugins you are demoing or testing. See more ",(0,a.kt)("a",{parentName:"p",href:"/developer-guide/intro-plugins"},"about writing and distributing plugins"),"."))}d.isMDXComponent=!0},33097:(e,t,n)=>{n.d(t,{Z:()=>i});const i=n.p+"assets/images/custom_automation_plugin-8bfc78d2e5bc9068d650383c03b33b84.png"},4461:(e,t,n)=>{n.d(t,{Z:()=>i});const i=n.p+"assets/images/custom_automation_plugin2-ed68a401f7dfe1dfa68040223145e21f.png"},87980:(e,t,n)=>{n.d(t,{Z:()=>i});const i=n.p+"assets/images/custom_job_plugin-f18e5be715690d46a13604124730611a.png"},70480:(e,t,n)=>{n.d(t,{Z:()=>i});const i=n.p+"assets/images/custom_job_plugin2-f7f8404759e338d9338021e2caebf6a6.png"},37185:(e,t,n)=>{n.d(t,{Z:()=>i});const i=n.p+"assets/images/custom_job_plugin3-7723824b84b2ddaa66231e53a53d17b1.png"},44901:(e,t,n)=>{n.d(t,{Z:()=>i});const i=n.p+"assets/images/plugin_page-2b8971737b3f594f623dce2012c0a13a.png"},28243:(e,t,n)=>{n.d(t,{Z:()=>i});const i=n.p+"assets/images/plugin_page_button_highlight-89fd844a6b09f352b97f4795a412d16a.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunkpioreactor=self.webpackChunkpioreactor||[]).push([[9056],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>m});var i=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function l(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=i.createContext({}),u=function(e){var t=i.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},c=function(e){var t=u(e.components);return i.createElement(s.Provider,{value:t},e.children)},g="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},d=i.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,c=r(e,["components","mdxType","originalType","parentName"]),g=u(n),d=a,m=g["".concat(s,".").concat(d)]||g[d]||p[d]||o;return n?i.createElement(m,l(l({ref:t},c),{},{components:n})):i.createElement(m,l({ref:t},c))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=d;var r={};for(var s in t)hasOwnProperty.call(t,s)&&(r[s]=t[s]);r.originalType=e,r[g]="string"==typeof e?e:a,l[1]=r;for(var u=2;u{n.d(t,{Z:()=>l});var i=n(67294),a=n(93743);const o={tableOfContentsInline:"tableOfContentsInline_prmo"};function l(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:l}=e;return i.createElement("div",{className:o.tableOfContentsInline},i.createElement(a.Z,{toc:t,minHeadingLevel:n,maxHeadingLevel:l,className:"table-of-contents",linkClassName:null}))}},93743:(e,t,n)=>{n.d(t,{Z:()=>m});var i=n(87462),a=n(67294),o=n(86668);function l(e){const t=e.map((e=>({...e,parentIndex:-1,children:[]}))),n=Array(7).fill(-1);t.forEach(((e,t)=>{const i=n.slice(2,e.level);e.parentIndex=Math.max(...i),n[e.level]=t}));const i=[];return t.forEach((e=>{const{parentIndex:n,...a}=e;n>=0?t[n].children.push(a):i.push(a)})),i}function r(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:i}=e;return t.flatMap((e=>{const t=r({toc:e.children,minHeadingLevel:n,maxHeadingLevel:i});return function(e){return e.level>=n&&e.level<=i}(e)?[{...e,children:t}]:t}))}function s(e){const t=e.getBoundingClientRect();return t.top===t.bottom?s(e.parentNode):t}function u(e,t){let{anchorTopOffset:n}=t;const i=e.find((e=>s(e).top>=n));if(i){return function(e){return e.top>0&&e.bottom{e.current=t?0:document.querySelector(".navbar").clientHeight}),[t]),e}function g(e){const t=(0,a.useRef)(void 0),n=c();(0,a.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:i,linkActiveClassName:a,minHeadingLevel:o,maxHeadingLevel:l}=e;function r(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(i),r=function(e){let{minHeadingLevel:t,maxHeadingLevel:n}=e;const i=[];for(let a=t;a<=n;a+=1)i.push(`h${a}.anchor`);return Array.from(document.querySelectorAll(i.join()))}({minHeadingLevel:o,maxHeadingLevel:l}),s=u(r,{anchorTopOffset:n.current}),c=e.find((e=>s&&s.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,n){n?(t.current&&t.current!==e&&t.current.classList.remove(a),e.classList.add(a),t.current=e):e.classList.remove(a)}(e,e===c)}))}return document.addEventListener("scroll",r),document.addEventListener("resize",r),r(),()=>{document.removeEventListener("scroll",r),document.removeEventListener("resize",r)}}),[e,n])}function p(e){let{toc:t,className:n,linkClassName:i,isChild:o}=e;return t.length?a.createElement("ul",{className:o?void 0:n},t.map((e=>a.createElement("li",{key:e.id},a.createElement("a",{href:`#${e.id}`,className:i??void 0,dangerouslySetInnerHTML:{__html:e.value}}),a.createElement(p,{isChild:!0,toc:e.children,className:n,linkClassName:i}))))):null}const d=a.memo(p);function m(e){let{toc:t,className:n="table-of-contents table-of-contents__left-border",linkClassName:s="table-of-contents__link",linkActiveClassName:u,minHeadingLevel:c,maxHeadingLevel:p,...m}=e;const h=(0,o.L)(),f=c??h.tableOfContents.minHeadingLevel,v=p??h.tableOfContents.maxHeadingLevel,y=function(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:i}=e;return(0,a.useMemo)((()=>r({toc:l(t),minHeadingLevel:n,maxHeadingLevel:i})),[t,n,i])}({toc:t,minHeadingLevel:f,maxHeadingLevel:v});return g((0,a.useMemo)((()=>{if(s&&u)return{linkClassName:s,linkActiveClassName:u,minHeadingLevel:f,maxHeadingLevel:v}}),[s,u,f,v])),a.createElement(d,(0,i.Z)({toc:y,className:n,linkClassName:s},m))}},6138:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>r,default:()=>d,frontMatter:()=>l,metadata:()=>s,toc:()=>c});var i=n(87462),a=(n(67294),n(3905)),o=n(3901);const l={title:"Using community plugins",slug:"/using-community-plugins"},r=void 0,s={unversionedId:"Extending your Pioreactor/06a-using-community-plugins",id:"Extending your Pioreactor/06a-using-community-plugins",title:"Using community plugins",description:"The Pioreactor comes with a large set of functionality and behaviour to accomplish most projects. For example, continuous culturing, optical density reading, and stable temperatures are available out-of-the-box. However, the specifics and range of how people use bioreactors goes far beyond what we could ever cover. That's why Pioreactor has added a platform so that community members can make their own extensions and share them with others. We call these plugins. (Below is how to install plugins - if you are looking to create your own plugins, see here.)",source:"@site/user-guide/03-Extending your Pioreactor/06a-using-community-plugins.mdx",sourceDirName:"03-Extending your Pioreactor",slug:"/using-community-plugins",permalink:"/user-guide/using-community-plugins",draft:!1,tags:[],version:"current",frontMatter:{title:"Using community plugins",slug:"/using-community-plugins"},sidebar:"tutorialSidebar",previous:{title:"Adding the High Temp Upgrade kit",permalink:"/user-guide/high-temp-upgrade-kit"},next:{title:"List of available plugins",permalink:"/user-guide/available-plugins"}},u={},c=[{value:"Installing plugins",id:"installing-plugins",level:2},{value:"Automations installed via plugins",id:"automations-installed-via-plugins",level:3},{value:"Activities installed via plugins",id:"activities-installed-via-plugins",level:3},{value:"Uninstalling plugins",id:"uninstalling-plugins",level:3},{value:"Alternative: putting Python files in the the plugins folder",id:"alternative-putting-python-files-in-the-the-plugins-folder",level:2}],g={toc:c},p="wrapper";function d(e){let{components:t,...l}=e;return(0,a.kt)(p,(0,i.Z)({},g,l,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"The Pioreactor comes with a large set of functionality and behaviour to accomplish most projects. For example, continuous culturing, optical density reading, and stable temperatures are available out-of-the-box. However, the specifics and range of how people use bioreactors goes far beyond what we could ever cover. That's why Pioreactor has added a platform so that community members can make their own extensions and share them with others. We call these ",(0,a.kt)("em",{parentName:"p"},"plugins.")," (Below is how to install plugins - if you are looking to create your own plugins, see ",(0,a.kt)("a",{parentName:"p",href:"/developer-guide/plugin-as-python-package"},"here"),".)"),(0,a.kt)(o.Z,{toc:c,mdxType:"TOCInline"}),(0,a.kt)("h2",{id:"installing-plugins"},"Installing plugins"),(0,a.kt)("p",null,'From your Pioreactor\'s interface, the "Plugins" button on the left navigation bar will display all your currently installed plugins, and some recommended plugins. We also encourage you to explore our ',(0,a.kt)("a",{parentName:"p",href:"https://forum.pioreactor.com/"},"forums")," for more plugins created by the community."),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Plugin page in the Pioreactor UI. The page shows a list of plugins, with a description of the plugin under each one.",src:n(44901).Z,width:"3100",height:"1648"})),(0,a.kt)("p",null,'You can also use the "Install plugin by name" button in the top-right to install a plugin that is not featured on this page.'),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Plugin page in the Pioreactor UI. The "install plugin by name" is highlighted.",src:n(28243).Z,width:"3100",height:"1648"})),(0,a.kt)("h3",{id:"automations-installed-via-plugins"},"Automations installed via plugins"),(0,a.kt)("p",null,"Some plugins add new automations to your Pioreactor. After installing, new dosing, LED, or temperature automations will be available in the list of automations available to you."),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"The UI of an automation installed via a plugin. The plugin is highlighted in the dropdown.",src:n(33097).Z,width:"1444",height:"1104"}),"\n",(0,a.kt)("img",{alt:"The UI of an automation installed via a plugin, with the automation's settings displayed.",src:n(4461).Z,width:"1444",height:"1104"})),(0,a.kt)("h3",{id:"activities-installed-via-plugins"},"Activities installed via plugins"),(0,a.kt)("p",null,"Some plugins add new activities to your Pioreactor. After installation, an activity's state and settings will show up on each Pioreactor's card. Below, we've installed the pioreactor-air-bubbler plugin:"),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"The Pioreactor card with the newly installed activity displayed.",src:n(87980).Z,width:"2074",height:"1042"})),(0,a.kt)("p",null,"Managing on/off and settings are done just like any other job, in the Manage dialog:"),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"The list of activities, that now includes the activity installed via a plugin (highlighted).",src:n(70480).Z,width:"1356",height:"1122"}),"\n",(0,a.kt)("img",{alt:"The list of settings of activities, and specific settings for the new activity are highlighted.",src:n(37185).Z,width:"1356",height:"1122"})),(0,a.kt)("h3",{id:"uninstalling-plugins"},"Uninstalling plugins"),(0,a.kt)("p",null,"You can uninstall plugins from the same page, too. These will remove the action on the Pioreactor's card, but won't delete the section in your config.ini. Also, if a SQL table was installed with the plugin, the table will not be deleted."),(0,a.kt)("h2",{id:"alternative-putting-python-files-in-the-the-plugins-folder"},"Alternative: putting Python files in the the ",(0,a.kt)("inlineCode",{parentName:"h2"},"plugins")," folder"),(0,a.kt)("p",null,"An alternative way to install a plugin is to place a Python file in the ",(0,a.kt)("inlineCode",{parentName:"p"},"/home/pioreactor/.pioreactor/plugins")," directory on the Raspberry Pi. This is good for one-off scripts or plugins you are demoing or testing. See more ",(0,a.kt)("a",{parentName:"p",href:"/developer-guide/intro-plugins"},"about writing and distributing plugins"),"."))}d.isMDXComponent=!0},33097:(e,t,n)=>{n.d(t,{Z:()=>i});const i=n.p+"assets/images/custom_automation_plugin-8bfc78d2e5bc9068d650383c03b33b84.png"},4461:(e,t,n)=>{n.d(t,{Z:()=>i});const i=n.p+"assets/images/custom_automation_plugin2-ed68a401f7dfe1dfa68040223145e21f.png"},87980:(e,t,n)=>{n.d(t,{Z:()=>i});const i=n.p+"assets/images/custom_job_plugin-f18e5be715690d46a13604124730611a.png"},70480:(e,t,n)=>{n.d(t,{Z:()=>i});const i=n.p+"assets/images/custom_job_plugin2-f7f8404759e338d9338021e2caebf6a6.png"},37185:(e,t,n)=>{n.d(t,{Z:()=>i});const i=n.p+"assets/images/custom_job_plugin3-7723824b84b2ddaa66231e53a53d17b1.png"},44901:(e,t,n)=>{n.d(t,{Z:()=>i});const i=n.p+"assets/images/plugin_page-2b8971737b3f594f623dce2012c0a13a.png"},28243:(e,t,n)=>{n.d(t,{Z:()=>i});const i=n.p+"assets/images/plugin_page_button_highlight-89fd844a6b09f352b97f4795a412d16a.png"}}]); \ No newline at end of file diff --git a/assets/js/2b5b8f8a.02ea867b.js b/assets/js/2b5b8f8a.02ea867b.js new file mode 100644 index 000000000..9fad95860 --- /dev/null +++ b/assets/js/2b5b8f8a.02ea867b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkpioreactor=self.webpackChunkpioreactor||[]).push([[6217],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>h});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),u=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(s.Provider,{value:t},e.children)},l="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),l=u(r),d=o,h=l["".concat(s,".").concat(d)]||l[d]||m[d]||a;return r?n.createElement(h,i(i({ref:t},p),{},{components:r})):n.createElement(h,i({ref:t},p))}));function h(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=d;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[l]="string"==typeof e?e:o,i[1]=c;for(var u=2;u{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>m,frontMatter:()=>a,metadata:()=>c,toc:()=>u});var n=r(87462),o=(r(67294),r(3905));const a={title:"Using the StemmaQT/Qwicc connector",slug:"/using-stemma-qt"},i=void 0,c={unversionedId:"Extending your Pioreactor/using-stemma-qt",id:"Extending your Pioreactor/using-stemma-qt",title:"Using the StemmaQT/Qwicc connector",description:"The Pioreactor HAT comes with a connector for the StemmaQT / Qwiic connector that can be used to attach additional hardware for your Pioreactor. See image below:",source:"@site/user-guide/03-Extending your Pioreactor/11-using-stemma-qt.md",sourceDirName:"03-Extending your Pioreactor",slug:"/using-stemma-qt",permalink:"/user-guide/using-stemma-qt",draft:!1,tags:[],version:"current",sidebarPosition:11,frontMatter:{title:"Using the StemmaQT/Qwicc connector",slug:"/using-stemma-qt"},sidebar:"tutorialSidebar",previous:{title:"Supplying more power to the PWM channels",permalink:"/user-guide/external-power"},next:{title:"Updating the Pioreactor software",permalink:"/user-guide/updating-software"}},s={},u=[{value:"Example",id:"example",level:3}],p={toc:u},l="wrapper";function m(e){let{components:t,...r}=e;return(0,o.kt)(l,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"The Pioreactor HAT comes with a connector for the StemmaQT / Qwiic connector that can be used to attach additional hardware for your Pioreactor. See image below:"),(0,o.kt)("img",{src:"/img/user-guide/stemma_qt.png",width:"325",style:{margin:"auto",display:"block"}}),(0,o.kt)("admonition",{type:"info"},(0,o.kt)("p",{parentName:"admonition"},"What is StemmaQT / Qwiic? It's simply a standardized physical connector, the JST SH, with electronic connections to 3.3V, GND and I\xb2C. Many other hardware design companies, like Adafruit and SparkFun, implement StemmaQT / Qwiic on their boards, which expands the StemmaQT / Qwiic ecosystem. ")),(0,o.kt)("h3",{id:"example"},"Example"),(0,o.kt)("p",null,"Suppose you are placing your Pioreactor in a CO\u2082 incubator, and want to record the CO\u2082 concentration of the incubator. The incubator does monitor the CO\u2082 concentration, but generally this isn't accessible to other tools. What you can do is purchase an external CO\u2082 sensor with StemmaQT / Qwiic connectors, like the ",(0,o.kt)("a",{parentName:"p",href:"https://www.adafruit.com/product/5187"},"SCD-40"),", and attach it to your Pioreactor. The Pioreactor can now read from the CO\u2082 sensor, and build logging, event-loops, plotting, etc. around the measurements. "),(0,o.kt)("p",null,"To read from the sensor, a ",(0,o.kt)("a",{parentName:"p",href:"/user-guide/using-community-plugins"},"plugin")," may be available for it, or you can write a simple Python script like so:"),(0,o.kt)("admonition",{type:"note"},(0,o.kt)("p",{parentName:"admonition"},"To run the script, you'll first need to install the Python library:\n",(0,o.kt)("inlineCode",{parentName:"p"},"sudo pip3 install adafruit-circuitpython-scd4x"))),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-python"},'import sleep\nimport board\nimport adafruit_scd4x\n\nfrom pioreactor.pubsub import publish\nfrom pioreactor.whoami import get_unit_name, get_latest_experiment_name\n\ni2c = board.I2C()\nscd4x = adafruit_scd4x.SCD4X(i2c)\n\nexp = get_latest_experiment_name()\nunit = get_unit_name()\n\nscd4x.start_periodic_measurement()\n\nwhile True:\n if scd4x.data_ready:\n \n print("CO2: %d ppm" % scd4x.CO2)\n publish(f"pioreactor/{unit}/{exp}/scd4x/co2", scd4x.CO2, retain=True)\n\n print("Temperature: %0.1f *C" % scd4x.temperature)\n publish(f"pioreactor/{unit}/{exp}/scd4x/temperature", scd4x.temperature, retain=True)\n\n print("Humidity: %0.1f %%" % scd4x.relative_humidity)\n publish(f"pioreactor/{unit}/{exp}/scd4x/relative_humidity", scd4x.relative_humidity, retain=True)\n\n print()\n time.sleep(1)\n\n')),(0,o.kt)("p",null,"Running this on your Pioreactor will publish the data to MQTT, and thus be available to any other bioreactor job. "),(0,o.kt)("p",null,"You could also turn this into a ",(0,o.kt)("a",{parentName:"p",href:"/developer-guide/intro-background-jobs"},"background job")," to make it even easier to use!"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2b5b8f8a.efe3d187.js b/assets/js/2b5b8f8a.efe3d187.js deleted file mode 100644 index 5893f6217..000000000 --- a/assets/js/2b5b8f8a.efe3d187.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkpioreactor=self.webpackChunkpioreactor||[]).push([[6217],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>h});var n=r(67294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var u=n.createContext({}),s=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(u.Provider,{value:t},e.children)},l="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,u=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),l=s(r),d=o,h=l["".concat(u,".").concat(d)]||l[d]||m[d]||a;return r?n.createElement(h,i(i({ref:t},p),{},{components:r})):n.createElement(h,i({ref:t},p))}));function h(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=d;var c={};for(var u in t)hasOwnProperty.call(t,u)&&(c[u]=t[u]);c.originalType=e,c[l]="string"==typeof e?e:o,i[1]=c;for(var s=2;s{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>m,frontMatter:()=>a,metadata:()=>c,toc:()=>s});var n=r(87462),o=(r(67294),r(3905));const a={title:"Using the StemmaQT/Qwicc connector",slug:"/using-stemma-qt"},i=void 0,c={unversionedId:"Extending your Pioreactor/using-stemma-qt",id:"Extending your Pioreactor/using-stemma-qt",title:"Using the StemmaQT/Qwicc connector",description:"The Pioreactor HAT comes with a connector for the StemmaQT / Qwiic connector that can be used to attach additional hardware for your Pioreactor. See image below:",source:"@site/user-guide/03-Extending your Pioreactor/11-using-stemma-qt.md",sourceDirName:"03-Extending your Pioreactor",slug:"/using-stemma-qt",permalink:"/user-guide/using-stemma-qt",draft:!1,tags:[],version:"current",sidebarPosition:11,frontMatter:{title:"Using the StemmaQT/Qwicc connector",slug:"/using-stemma-qt"},sidebar:"tutorialSidebar",previous:{title:"Supplying more power to the PWM channels",permalink:"/user-guide/external-power"},next:{title:"Adding the temperature expansion kit to your Pioreactor",permalink:"/user-guide/temperature-expansion-kit"}},u={},s=[{value:"Example",id:"example",level:3}],p={toc:s},l="wrapper";function m(e){let{components:t,...r}=e;return(0,o.kt)(l,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"The Pioreactor HAT comes with a connector for the StemmaQT / Qwiic connector that can be used to attach additional hardware for your Pioreactor. See image below:"),(0,o.kt)("img",{src:"/img/user-guide/stemma_qt.png",width:"325",style:{margin:"auto",display:"block"}}),(0,o.kt)("admonition",{type:"info"},(0,o.kt)("p",{parentName:"admonition"},"What is StemmaQT / Qwiic? It's simply a standardized physical connector, the JST SH, with electronic connections to 3.3V, GND and I\xb2C. Many other hardware design companies, like Adafruit and SparkFun, implement StemmaQT / Qwiic on their boards, which expands the StemmaQT / Qwiic ecosystem. ")),(0,o.kt)("h3",{id:"example"},"Example"),(0,o.kt)("p",null,"Suppose you are placing your Pioreactor in a CO\u2082 incubator, and want to record the CO\u2082 concentration of the incubator. The incubator does monitor the CO\u2082 concentration, but generally this isn't accessible to other tools. What you can do is purchase an external CO\u2082 sensor with StemmaQT / Qwiic connectors, like the ",(0,o.kt)("a",{parentName:"p",href:"https://www.adafruit.com/product/5187"},"SCD-40"),", and attach it to your Pioreactor. The Pioreactor can now read from the CO\u2082 sensor, and build logging, event-loops, plotting, etc. around the measurements. "),(0,o.kt)("p",null,"To read from the sensor, a ",(0,o.kt)("a",{parentName:"p",href:"/user-guide/using-community-plugins"},"plugin")," may be available for it, or you can write a simple Python script like so:"),(0,o.kt)("admonition",{type:"note"},(0,o.kt)("p",{parentName:"admonition"},"To run the script, you'll first need to install the Python library:\n",(0,o.kt)("inlineCode",{parentName:"p"},"sudo pip3 install adafruit-circuitpython-scd4x"))),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-python"},'import sleep\nimport board\nimport adafruit_scd4x\n\nfrom pioreactor.pubsub import publish\nfrom pioreactor.whoami import get_unit_name, get_latest_experiment_name\n\ni2c = board.I2C()\nscd4x = adafruit_scd4x.SCD4X(i2c)\n\nexp = get_latest_experiment_name()\nunit = get_unit_name()\n\nscd4x.start_periodic_measurement()\n\nwhile True:\n if scd4x.data_ready:\n \n print("CO2: %d ppm" % scd4x.CO2)\n publish(f"pioreactor/{unit}/{exp}/scd4x/co2", scd4x.CO2, retain=True)\n\n print("Temperature: %0.1f *C" % scd4x.temperature)\n publish(f"pioreactor/{unit}/{exp}/scd4x/temperature", scd4x.temperature, retain=True)\n\n print("Humidity: %0.1f %%" % scd4x.relative_humidity)\n publish(f"pioreactor/{unit}/{exp}/scd4x/relative_humidity", scd4x.relative_humidity, retain=True)\n\n print()\n time.sleep(1)\n\n')),(0,o.kt)("p",null,"Running this on your Pioreactor will publish the data to MQTT, and thus be available to any other bioreactor job. "),(0,o.kt)("p",null,"You could also turn this into a ",(0,o.kt)("a",{parentName:"p",href:"/developer-guide/intro-background-jobs"},"background job")," to make it even easier to use!"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/72c47c30.a76456a0.js b/assets/js/72c47c30.a76456a0.js new file mode 100644 index 000000000..8fe15f37d --- /dev/null +++ b/assets/js/72c47c30.a76456a0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkpioreactor=self.webpackChunkpioreactor||[]).push([[7711],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>m});var n=r(67294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var l=n.createContext({}),u=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},c=function(e){var t=u(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",g={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,o=e.originalType,l=e.parentName,c=p(e,["components","mdxType","originalType","parentName"]),s=u(r),h=i,m=s["".concat(l,".").concat(h)]||s[h]||g[h]||o;return r?n.createElement(m,a(a({ref:t},c),{},{components:r})):n.createElement(m,a({ref:t},c))}));function m(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=r.length,a=new Array(o);a[0]=h;var p={};for(var l in t)hasOwnProperty.call(t,l)&&(p[l]=t[l]);p.originalType=e,p[s]="string"==typeof e?e:i,a[1]=p;for(var u=2;u{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>g,frontMatter:()=>o,metadata:()=>p,toc:()=>u});var n=r(87462),i=(r(67294),r(3905));const o={title:"Adding the High Temp Upgrade kit",slug:"/high-temp-upgrade-kit",hide_table_of_contents:!0},a=void 0,p={unversionedId:"Extending your Pioreactor/Upgrade kits/high-temp-upgrade-kit",id:"Extending your Pioreactor/Upgrade kits/high-temp-upgrade-kit",title:"Adding the High Temp Upgrade kit",description:"If you purchased the High Temp Upgrade kit, you'll be replacing a few of your plastic components with the improved high-temp plastics. Once this is done, you'll also need to install some software:",source:"@site/user-guide/03-Extending your Pioreactor/30-Upgrade kits/13-high-temp-upgrade-kit.md",sourceDirName:"03-Extending your Pioreactor/30-Upgrade kits",slug:"/high-temp-upgrade-kit",permalink:"/user-guide/high-temp-upgrade-kit",draft:!1,tags:[],version:"current",sidebarPosition:13,frontMatter:{title:"Adding the High Temp Upgrade kit",slug:"/high-temp-upgrade-kit",hide_table_of_contents:!0},sidebar:"tutorialSidebar",previous:{title:"Adding the Temperature Expansion Upgrade kit",permalink:"/user-guide/temperature-expansion-kit"},next:{title:"Using community plugins",permalink:"/user-guide/using-community-plugins"}},l={},u=[{value:"Software changes",id:"software-changes",level:3}],c={toc:u},s="wrapper";function g(e){let{components:t,...r}=e;return(0,i.kt)(s,(0,n.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"If you purchased the High Temp Upgrade kit, you'll be replacing a few of your plastic components with the improved high-temp plastics. Once this is done, you'll also need to install some software:"),(0,i.kt)("h3",{id:"software-changes"},"Software changes"),(0,i.kt)("p",null,'You will need to "unlock" your Pioreactor\'s higher temperature settings. To do this, you can either'),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"install the ",(0,i.kt)("inlineCode",{parentName:"li"},"pioreactor-high-temp-plugin")," (internet required) using the command ",(0,i.kt)("inlineCode",{parentName:"li"},"pio install-plugin pioreactor-high-temp-plugin")," on their Pioreactors with the new pieces, ",(0,i.kt)("em",{parentName:"li"},"or")),(0,i.kt)("li",{parentName:"ul"},"create a new Python file, ",(0,i.kt)("inlineCode",{parentName:"li"},"high_temp_plugin.py")," in ",(0,i.kt)("inlineCode",{parentName:"li"},"~/.pioreactor/plugins")," with the ",(0,i.kt)("a",{parentName:"li",href:"https://raw.githubusercontent.com/Pioreactor/pioreactor-high-temp-plugin/main/pioreactor_high_temp_plugin/__init__.py"},"content here"),".")),(0,i.kt)("p",null,"Remember: ",(0,i.kt)("strong",{parentName:"p"},(0,i.kt)("em",{parentName:"strong"},"only install these changes on Pioreactors with the high temp upgrade kit."))))}g.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.c4e3a2d8.js b/assets/js/935f2afb.c4e3a2d8.js deleted file mode 100644 index 077d6cbe7..000000000 --- a/assets/js/935f2afb.c4e3a2d8.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkpioreactor=self.webpackChunkpioreactor||[]).push([[53],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"link","label":"Introduction","href":"/user-guide/introduction","docId":"introduction"},{"type":"category","label":"Getting started","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"Assembly introduction","href":"/user-guide/getting-started","docId":"getting-started/gettingstarted"},{"type":"category","label":"Hardware assembly","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Before you begin assembly","href":"/user-guide/hardware-setup-intro","docId":"getting-started/01b-hardware-set-up/introduction"},{"type":"link","label":"Assembling the Raspberry Pi and the HAT","href":"/user-guide/rpi-hat-assembly","docId":"getting-started/01b-hardware-set-up/rpi-hat-assembly"},{"type":"link","label":"Wetware assembly","href":"/user-guide/wetware-assembly","docId":"getting-started/01b-hardware-set-up/wetware-assembly"},{"type":"link","label":"Attaching the wetware to the HAT asssembly","href":"/user-guide/putting-it-together","docId":"getting-started/01b-hardware-set-up/faceplate-all-together"},{"type":"link","label":"Connect the optics system","href":"/user-guide/optics-assembly","docId":"getting-started/01b-hardware-set-up/optics-assembly"}]},{"type":"link","label":"Software installation","href":"/user-guide/software-set-up","docId":"getting-started/01c-software-set-up"}]},{"type":"category","label":"Experiment basics","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Preparing your vial for cultures","href":"/user-guide/prepare-vial-for-cultures","docId":"Experiment basics/prepare-vial-for-cultures"},{"type":"link","label":"Setting up an experiment","href":"/user-guide/set-up-an-experiment","docId":"Experiment basics/set-up-an-experiment"},{"type":"link","label":"Activities","href":"/user-guide/activities","docId":"Experiment basics/Activities"},{"type":"link","label":"Monitoring your experiment","href":"/user-guide/monitor-experiment","docId":"Experiment basics/monitor-experiment"},{"type":"link","label":"Exporting data","href":"/user-guide/export-data","docId":"Experiment basics/export-data"},{"type":"link","label":"Optical density, normalization, and growth rates","href":"/user-guide/od-normal-growth-rate","docId":"Experiment basics/od-normal-growth-rate"},{"type":"link","label":"Dosing and LED updates","href":"/user-guide/manual-dosing-leds","docId":"Experiment basics/manual-led-dosing"},{"type":"link","label":"Running a self-test","href":"/user-guide/running-self-test","docId":"Experiment basics/running-self-test"}]},{"type":"category","label":"Extending your Pioreactor","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Creating a Pioreactor cluster","href":"/user-guide/create-cluster","docId":"Extending your Pioreactor/create-cluster"},{"type":"link","label":"Using additional LEDs","href":"/user-guide/using-leds","docId":"Extending your Pioreactor/adding-leds"},{"type":"category","label":"Experiment Profiles","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Intro to experiment profiles","href":"/user-guide/experiment-profiles","docId":"Extending your Pioreactor/Experiment Profiles/experiment-profiles-intro"},{"type":"link","label":"Creating and editing experiment profiles","href":"/user-guide/create-edit-experiment-profiles","docId":"Extending your Pioreactor/Experiment Profiles/create-edit-experiment-profiles"},{"type":"link","label":"Experiment profiles schema","href":"/user-guide/experiment-profiles-schema","docId":"Extending your Pioreactor/Experiment Profiles/experiment-profiles-schema"}]},{"type":"link","label":"Standard curves for OD600 readings","href":"/user-guide/calibrate-od600","docId":"Extending your Pioreactor/calibrate-od600"},{"type":"link","label":"Configuration via config.ini","href":"/user-guide/configuration","docId":"Extending your Pioreactor/configuration"},{"type":"link","label":"Using a peristaltic pump with your Pioreactor","href":"/user-guide/using-pumps","docId":"Extending your Pioreactor/using-pumps"},{"type":"link","label":"Hardware calibrations","href":"/user-guide/hardware-calibrations","docId":"Extending your Pioreactor/hardware-calibrations"},{"type":"link","label":"Supplying more power to the PWM channels","href":"/user-guide/external-power","docId":"Extending your Pioreactor/external-power"},{"type":"link","label":"Using the StemmaQT/Qwicc connector","href":"/user-guide/using-stemma-qt","docId":"Extending your Pioreactor/using-stemma-qt"},{"type":"link","label":"Adding the temperature expansion kit to your Pioreactor","href":"/user-guide/temperature-expansion-kit","docId":"Extending your Pioreactor/temperature-expansion-kit"},{"type":"link","label":"Updating the Pioreactor software","href":"/user-guide/updating-software","docId":"Extending your Pioreactor/updating-software"},{"type":"link","label":"Using community plugins","href":"/user-guide/using-community-plugins","docId":"Extending your Pioreactor/06a-using-community-plugins"},{"type":"link","label":"List of available plugins","href":"/user-guide/available-plugins","docId":"Extending your Pioreactor/06b-list-of-plugins"}]},{"type":"category","label":"Automations","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Introduction to automations","href":"/user-guide/intro-to-automations","docId":"Automations/intro-to-automations"},{"type":"link","label":"Temperature automations","href":"/user-guide/temperature-automations","docId":"Automations/temperature-automations"},{"type":"link","label":"Dosing automations","href":"/user-guide/dosing-automations","docId":"Automations/dosing-automations"},{"type":"link","label":"LED automations","href":"/user-guide/led-automations","docId":"Automations/led-automations"},{"type":"link","label":"Writing your own automations","href":"/user-guide/write-own-automations","docId":"Automations/writing-automations"}]},{"type":"category","label":"Advanced","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Accessing the Raspberry Pi","href":"/user-guide/accessing-raspberry-pi","docId":"Advanced/accessing-raspberry-pi"},{"type":"link","label":"Command line interface","href":"/user-guide/cli","docId":"Advanced/cli"},{"type":"category","label":"Remote access to your Pioreactors","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Setting up remote access","href":"/user-guide/remote-access","docId":"Advanced/remote-access/introduction"},{"type":"link","label":"Ngrok","href":"/user-guide/ngrok-remote-access","docId":"Advanced/remote-access/ngrok"},{"type":"link","label":"Tailscale","href":"/user-guide/tailscale-remote-access","docId":"Advanced/remote-access/tailscale"}]},{"type":"link","label":"Local access points","href":"/user-guide/local-access-point","docId":"Advanced/local-access-point"},{"type":"category","label":"Additional Hardware","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"More on peristaltic pumps","href":"/user-guide/addition-hardware-pumps","docId":"Advanced/additional-hardware/pumps"},{"type":"link","label":"Pinch valves","href":"/user-guide/pinch-valves","docId":"Advanced/additional-hardware/pinch-valves"},{"type":"link","label":"Hardware connection assembly","href":"/user-guide/hardware-connection-assembly","docId":"Advanced/additional-hardware/hardware-connection-assembly"}]},{"type":"link","label":"Writing Pioreactor scripts with Python","href":"/user-guide/intro-python-scripting","docId":"Advanced/intro-python-scripting"},{"type":"link","label":"Export and import your data","href":"/user-guide/export-import-existing-data","docId":"Advanced/export-import-existing-data"}]},{"type":"category","label":"Troubleshooting","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Blue LED flashing & error codes","href":"/user-guide/error-codes","docId":"Troubleshooting/error-codes"},{"type":"link","label":"Hardware (PCBs)","href":"/user-guide/troubleshooting-Hardware","docId":"Troubleshooting/Hardware troubleshooting"},{"type":"link","label":"Power and restarts","href":"/user-guide/troubleshooting-power","docId":"Troubleshooting/Power troubleshooting"},{"type":"link","label":"Stirring","href":"/user-guide/troubleshooting-stirring","docId":"Troubleshooting/Stirring troubleshooting"},{"type":"link","label":"User interface","href":"/user-guide/troubleshooting-ui","docId":"Troubleshooting/UI troubleshooting"}]},{"type":"link","label":"Common questions","href":"/user-guide/common-questions","docId":"common-questions"}]},"docs":{"Advanced/accessing-raspberry-pi":{"id":"Advanced/accessing-raspberry-pi","title":"Accessing the Raspberry Pi","description":"For more customization and control of your Pioreactor, you can access the Raspberry Pi\'s command line. From the command line, you can view more logs, control individual Pioreactors, and more.","sidebar":"tutorialSidebar"},"Advanced/additional-hardware/hardware-connection-assembly":{"id":"Advanced/additional-hardware/hardware-connection-assembly","title":"Hardware connection assembly","description":"Normally, the external hardware will have two terminals, corresponding to positive and ground. The positive terminal may be marked by a dot, or \\"+\\" symbol, or be colored red. Make note of this terminal.","sidebar":"tutorialSidebar"},"Advanced/additional-hardware/pinch-valves":{"id":"Advanced/additional-hardware/pinch-valves","title":"Pinch valves","description":"Pinch valves are useful for controlling gas into the Pioreactor by \\"pinching\\" a gas line closed (or keeping it open). This could used be for injecting gas periodically into the headspace, or acting as a bubbler by putting the injection tube directly into the culture. Below is a diagram of using a pinch valve to periodically provide CO\u2082 into the head space of the Pioreactor\'s vial:","sidebar":"tutorialSidebar"},"Advanced/additional-hardware/pumps":{"id":"Advanced/additional-hardware/pumps","title":"More on peristaltic pumps","description":"The PWM output default to 5V (specifically, it\'s tied to the power supply, so it may be 5.1V, 5.2V etc. See your power supply). You are able to use 12V pumps successfully even at 5V output. However, you can also use the AUX power connection to change the PWM output.","sidebar":"tutorialSidebar"},"Advanced/cli":{"id":"Advanced/cli","title":"Command line interface","description":"For those interested, you can use the command line to interact with the Pioreactors. This is called the command line interface (CLI). Log onto either the leader or worker and you can execute the following commands. Full options and up-to-date documentation are available with pio --help.","sidebar":"tutorialSidebar"},"Advanced/export-import-existing-data":{"id":"Advanced/export-import-existing-data","title":"Export and import your data","description":"Export your data","sidebar":"tutorialSidebar"},"Advanced/intro-python-scripting":{"id":"Advanced/intro-python-scripting","title":"Writing Pioreactor scripts with Python","description":"This article isn\'t intended as a crash course in Python, or Pioreactor software, but some helpful ways to write small scripts for your Pioreactor. If interested in learning more, check out the developer docs for detailed information.","sidebar":"tutorialSidebar"},"Advanced/local-access-point":{"id":"Advanced/local-access-point","title":"Local access points","description":"This feature is currently experimental","sidebar":"tutorialSidebar"},"Advanced/remote-access/introduction":{"id":"Advanced/remote-access/introduction","title":"Setting up remote access","description":"Introduction to remote access","sidebar":"tutorialSidebar"},"Advanced/remote-access/ngrok":{"id":"Advanced/remote-access/ngrok","title":"Ngrok","description":"If you would like to expose the Pioreactor UI to view remotely, you can use a service like Ngrok to do so.","sidebar":"tutorialSidebar"},"Advanced/remote-access/tailscale":{"id":"Advanced/remote-access/tailscale","title":"Tailscale","description":"Unlike using Ngrok, this method does not expose your UI to the public internet. To access the UI remotely, you need to join an authenticated VPN. This greatly improves security, but adds a bit of additional work for users.","sidebar":"tutorialSidebar"},"Automations/dosing-automations":{"id":"Automations/dosing-automations","title":"Dosing automations","description":"When pairing the Pioreactor with dosing pumps, there are new capabilities and experiments you can run. The Pioreactor is pre-programmed with the following dosing automations. In the below automations, values highlighted like so are configurable.","sidebar":"tutorialSidebar"},"Automations/intro-to-automations":{"id":"Automations/intro-to-automations","title":"Introduction to automations","description":"So far, we have worked with basic activities that you can directly set as a one time thing, typically at the beginning of your experiment (starting stirring, OD readings, etc.). For more advanced experiments, we introduce automations.","sidebar":"tutorialSidebar"},"Automations/led-automations":{"id":"Automations/led-automations","title":"LED automations","description":"LED automations are ways to automatically control the 4 available LEDs in the Pioreactor. These LEDs can be used as a light source for photosynthetic microbes, influence the environment of the microbes, as additional sensors, or improve existing sensors.","sidebar":"tutorialSidebar"},"Automations/temperature-automations":{"id":"Automations/temperature-automations","title":"Temperature automations","description":"The heater in the Pioreactor wetware can be programmed to control the temperature of the vial in automated ways. Pioreactor is pre-programmed with the following temperature automations. In the below automations, values highlighted like so are configurable.","sidebar":"tutorialSidebar"},"Automations/writing-automations":{"id":"Automations/writing-automations","title":"Writing your own automations","description":"Writing your own custom automations is easy, but requires some knowledge of Python. If you\'re interested, see our documentation here.","sidebar":"tutorialSidebar"},"common-questions":{"id":"common-questions","title":"Common questions","description":"Pioreactor operation","sidebar":"tutorialSidebar"},"Experiment basics/Activities":{"id":"Experiment basics/Activities","title":"Activities","description":"Below is a list of activities that come available with the Pioreactor. Additionally, you can add activities using plugins. Read more about using plugins.","sidebar":"tutorialSidebar"},"Experiment basics/export-data":{"id":"Experiment basics/export-data","title":"Exporting data","description":"Experiment data can be exported using the Export data tab on the Pioreactor site.","sidebar":"tutorialSidebar"},"Experiment basics/manual-led-dosing":{"id":"Experiment basics/manual-led-dosing","title":"Dosing and LED updates","description":"Dosing","sidebar":"tutorialSidebar"},"Experiment basics/monitor-experiment":{"id":"Experiment basics/monitor-experiment","title":"Monitoring your experiment","description":"Navigate to the Overview page on the Pioreactor web interface. Here you can view live charts for growth rate, OD, normalized OD, and temperature. These overview graphs are used to monitor collected data during the experiment runtime.","sidebar":"tutorialSidebar"},"Experiment basics/od-normal-growth-rate":{"id":"Experiment basics/od-normal-growth-rate","title":"Optical density, normalization, and growth rates","description":"Background on optical density","sidebar":"tutorialSidebar"},"Experiment basics/prepare-vial-for-cultures":{"id":"Experiment basics/prepare-vial-for-cultures","title":"Preparing your vial for cultures","description":"1. Preparing the vial","sidebar":"tutorialSidebar"},"Experiment basics/running-self-test":{"id":"Experiment basics/running-self-test","title":"Running a self-test","description":"To get the best results and confirm your Pioreactor is working as expected, it\'s advisable to run a self-test on your Pioreactor after setting it up initially. The self-test routine can catch common errors that may compromise your data collection.","sidebar":"tutorialSidebar"},"Experiment basics/set-up-an-experiment":{"id":"Experiment basics/set-up-an-experiment","title":"Setting up an experiment","description":"Creating an experiment","sidebar":"tutorialSidebar"},"Extending your Pioreactor/06a-using-community-plugins":{"id":"Extending your Pioreactor/06a-using-community-plugins","title":"Using community plugins","description":"The Pioreactor comes with a large set of functionality and behaviour to accomplish most projects. For example, continuous culturing, optical density reading, and stable temperatures are available out-of-the-box. However, the specifics and range of how people use bioreactors goes far beyond what we could ever cover. That\'s why Pioreactor has added a platform so that community members can make their own extensions and share them with others. We call these plugins. (Below is how to install plugins - if you are looking to create your own plugins, see here.)","sidebar":"tutorialSidebar"},"Extending your Pioreactor/06b-list-of-plugins":{"id":"Extending your Pioreactor/06b-list-of-plugins","title":"List of available plugins","description":"Plugins offer a powerful way to extend your Pioreactor. Below is a list of our favourite plugins. Visit the guide on how to install plugins into your Pioreactor.","sidebar":"tutorialSidebar"},"Extending your Pioreactor/adding-leds":{"id":"Extending your Pioreactor/adding-leds","title":"Using additional LEDs","description":"You can add your own LEDs to the Pioreactor. You might want to do this for the following reasons:","sidebar":"tutorialSidebar"},"Extending your Pioreactor/calibrate-od600":{"id":"Extending your Pioreactor/calibrate-od600","title":"Standard curves for OD600 readings","description":"Calibrating your OD600 readings","sidebar":"tutorialSidebar"},"Extending your Pioreactor/configuration":{"id":"Extending your Pioreactor/configuration","title":"Configuration via config.ini","description":"How configuration works across Pioreactors","sidebar":"tutorialSidebar"},"Extending your Pioreactor/create-cluster":{"id":"Extending your Pioreactor/create-cluster","title":"Creating a Pioreactor cluster","description":"Pioreactors are able to be used as individual units, or in concert with other Pioreactors. In either case, a Pioreactor needs to be assigned as a leader. The leader unit controls other Pioreactors (and that may include itself), stores the database, hosts the web interface, and is the interface between users and the hardware.","sidebar":"tutorialSidebar"},"Extending your Pioreactor/Experiment Profiles/create-edit-experiment-profiles":{"id":"Extending your Pioreactor/Experiment Profiles/create-edit-experiment-profiles","title":"Creating and editing experiment profiles","description":"Using the UI","sidebar":"tutorialSidebar"},"Extending your Pioreactor/Experiment Profiles/experiment-profiles-intro":{"id":"Extending your Pioreactor/Experiment Profiles/experiment-profiles-intro","title":"Intro to experiment profiles","description":"This is a new feature, and still in beta! We\'d love to hear your feedback on it: hello@pioreactor.com","sidebar":"tutorialSidebar"},"Extending your Pioreactor/Experiment Profiles/experiment-profiles-schema":{"id":"Extending your Pioreactor/Experiment Profiles/experiment-profiles-schema","title":"Experiment profiles schema","description":"Max number of actions","sidebar":"tutorialSidebar"},"Extending your Pioreactor/external-power":{"id":"Extending your Pioreactor/external-power","title":"Supplying more power to the PWM channels","description":"Some applications require more power to your Pioreactor if it is using lots of peripherals. This may include using more powerful pumps, more powerful external LEDs, etc. Or, if you see warning messages that reference under voltage or throttling, you probably are asking the Pioreactor to do too much given its default 5V power supply.","sidebar":"tutorialSidebar"},"Extending your Pioreactor/hardware-calibrations":{"id":"Extending your Pioreactor/hardware-calibrations","title":"Hardware calibrations","description":"Hardware calibrations serve as a method to get accurate performance from your Pioreactor.","sidebar":"tutorialSidebar"},"Extending your Pioreactor/temperature-expansion-kit":{"id":"Extending your Pioreactor/temperature-expansion-kit","title":"Adding the temperature expansion kit to your Pioreactor","description":"You can improve your Pioreactor temperature sensing capabilities with the Temperature Expansion Kit. This kit allows for faster temperature response times, more granular temperature data, and increasing the maximum culture temperature. Below are instructions on how to assemble the new hardware to your existing Pioreactor.","sidebar":"tutorialSidebar"},"Extending your Pioreactor/updating-software":{"id":"Extending your Pioreactor/updating-software","title":"Updating the Pioreactor software","description":"We publish new software occasionally that fixes bugs, adds new features, and improves performance. You can update your Pioreactor(s) to the latest software from the UI. We highly recommend keeping your Pioreactor software up to date!","sidebar":"tutorialSidebar"},"Extending your Pioreactor/using-pumps":{"id":"Extending your Pioreactor/using-pumps","title":"Using a peristaltic pump with your Pioreactor","description":"Viewing pump configuration in config.ini","sidebar":"tutorialSidebar"},"Extending your Pioreactor/using-stemma-qt":{"id":"Extending your Pioreactor/using-stemma-qt","title":"Using the StemmaQT/Qwicc connector","description":"The Pioreactor HAT comes with a connector for the StemmaQT / Qwiic connector that can be used to attach additional hardware for your Pioreactor. See image below:","sidebar":"tutorialSidebar"},"getting-started/01b-hardware-set-up/faceplate-all-together":{"id":"getting-started/01b-hardware-set-up/faceplate-all-together","title":"Attaching the wetware to the HAT asssembly","description":"*\\tFan","sidebar":"tutorialSidebar"},"getting-started/01b-hardware-set-up/introduction":{"id":"getting-started/01b-hardware-set-up/introduction","title":"Before you begin assembly","description":"You can expect the assembly to take approximately 20-30 minutes.","sidebar":"tutorialSidebar"},"getting-started/01b-hardware-set-up/optics-assembly":{"id":"getting-started/01b-hardware-set-up/optics-assembly","title":"Connect the optics system","description":"1. You will need both PD cables (dark bulbs) and IR cable (clear bulb).","sidebar":"tutorialSidebar"},"getting-started/01b-hardware-set-up/rpi-hat-assembly":{"id":"getting-started/01b-hardware-set-up/rpi-hat-assembly","title":"Assembling the Raspberry Pi and the HAT","description":"1. You will need:","sidebar":"tutorialSidebar"},"getting-started/01b-hardware-set-up/wetware-assembly":{"id":"getting-started/01b-hardware-set-up/wetware-assembly","title":"Wetware assembly","description":"You will need:","sidebar":"tutorialSidebar"},"getting-started/01c-software-set-up":{"id":"getting-started/01c-software-set-up","title":"Software installation","description":"Install the Pioreactor software onto the Raspberry Pi","sidebar":"tutorialSidebar"},"getting-started/gettingstarted":{"id":"getting-started/gettingstarted","title":"Assembly introduction","description":"Let\'s get your Pioreactor set up. We\'ll start with hardware assembly. Start below:","sidebar":"tutorialSidebar"},"introduction":{"id":"introduction","title":"Introduction","description":"The Pioreactor is an open-source, affordable, and extensible bioreactor platform. The goal is to enable biologists, educators, DIYers, biohackers, and enthusiasts to be able to reliably control and study the growth of microorganisms.","sidebar":"tutorialSidebar"},"Troubleshooting/error-codes":{"id":"Troubleshooting/error-codes","title":"Blue LED flashing & error codes","description":"When a Pioreactor successfully boots, the onboard blue LED will flash quickly for 2 seconds, and then stop. However, there are times when the Pioreactor encounters an error, and will use the LED to alert to you that something is wrong. By counting the number of short flashes (per cycle), you can diagnose what might be wrong.","sidebar":"tutorialSidebar"},"Troubleshooting/Hardware troubleshooting":{"id":"Troubleshooting/Hardware troubleshooting","title":"Hardware (PCBs)","description":"I often see a \\"Pioreactor HAT must be present\\" error, but the HAT is definitely attached.","sidebar":"tutorialSidebar"},"Troubleshooting/Power troubleshooting":{"id":"Troubleshooting/Power troubleshooting","title":"Power and restarts","description":"Brown-outs","sidebar":"tutorialSidebar"},"Troubleshooting/Stirring troubleshooting":{"id":"Troubleshooting/Stirring troubleshooting","title":"Stirring","description":"Stirring is making a grinding noise.","sidebar":"tutorialSidebar"},"Troubleshooting/UI troubleshooting":{"id":"Troubleshooting/UI troubleshooting","title":"User interface","description":"I\'m not able to access http://pioreactor.local","sidebar":"tutorialSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.f03a432c.js b/assets/js/935f2afb.f03a432c.js new file mode 100644 index 000000000..3bacebb82 --- /dev/null +++ b/assets/js/935f2afb.f03a432c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkpioreactor=self.webpackChunkpioreactor||[]).push([[53],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"link","label":"Introduction","href":"/user-guide/introduction","docId":"introduction"},{"type":"category","label":"Getting started","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"Assembly introduction","href":"/user-guide/getting-started","docId":"getting-started/gettingstarted"},{"type":"category","label":"Hardware assembly","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Before you begin assembly","href":"/user-guide/hardware-setup-intro","docId":"getting-started/01b-hardware-set-up/introduction"},{"type":"link","label":"Assembling the Raspberry Pi and the HAT","href":"/user-guide/rpi-hat-assembly","docId":"getting-started/01b-hardware-set-up/rpi-hat-assembly"},{"type":"link","label":"Wetware assembly","href":"/user-guide/wetware-assembly","docId":"getting-started/01b-hardware-set-up/wetware-assembly"},{"type":"link","label":"Attaching the wetware to the HAT asssembly","href":"/user-guide/putting-it-together","docId":"getting-started/01b-hardware-set-up/faceplate-all-together"},{"type":"link","label":"Connect the optics system","href":"/user-guide/optics-assembly","docId":"getting-started/01b-hardware-set-up/optics-assembly"}]},{"type":"link","label":"Software installation","href":"/user-guide/software-set-up","docId":"getting-started/01c-software-set-up"}]},{"type":"category","label":"Experiment basics","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Preparing your vial for cultures","href":"/user-guide/prepare-vial-for-cultures","docId":"Experiment basics/prepare-vial-for-cultures"},{"type":"link","label":"Setting up an experiment","href":"/user-guide/set-up-an-experiment","docId":"Experiment basics/set-up-an-experiment"},{"type":"link","label":"Activities","href":"/user-guide/activities","docId":"Experiment basics/Activities"},{"type":"link","label":"Monitoring your experiment","href":"/user-guide/monitor-experiment","docId":"Experiment basics/monitor-experiment"},{"type":"link","label":"Exporting data","href":"/user-guide/export-data","docId":"Experiment basics/export-data"},{"type":"link","label":"Optical density, normalization, and growth rates","href":"/user-guide/od-normal-growth-rate","docId":"Experiment basics/od-normal-growth-rate"},{"type":"link","label":"Dosing and LED updates","href":"/user-guide/manual-dosing-leds","docId":"Experiment basics/manual-led-dosing"},{"type":"link","label":"Running a self-test","href":"/user-guide/running-self-test","docId":"Experiment basics/running-self-test"}]},{"type":"category","label":"Extending your Pioreactor","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Creating a Pioreactor cluster","href":"/user-guide/create-cluster","docId":"Extending your Pioreactor/create-cluster"},{"type":"link","label":"Using additional LEDs","href":"/user-guide/using-leds","docId":"Extending your Pioreactor/adding-leds"},{"type":"category","label":"Experiment Profiles","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Intro to experiment profiles","href":"/user-guide/experiment-profiles","docId":"Extending your Pioreactor/Experiment Profiles/experiment-profiles-intro"},{"type":"link","label":"Creating and editing experiment profiles","href":"/user-guide/create-edit-experiment-profiles","docId":"Extending your Pioreactor/Experiment Profiles/create-edit-experiment-profiles"},{"type":"link","label":"Experiment profiles schema","href":"/user-guide/experiment-profiles-schema","docId":"Extending your Pioreactor/Experiment Profiles/experiment-profiles-schema"}]},{"type":"link","label":"Standard curves for OD600 readings","href":"/user-guide/calibrate-od600","docId":"Extending your Pioreactor/calibrate-od600"},{"type":"link","label":"Configuration via config.ini","href":"/user-guide/configuration","docId":"Extending your Pioreactor/configuration"},{"type":"link","label":"Using a peristaltic pump with your Pioreactor","href":"/user-guide/using-pumps","docId":"Extending your Pioreactor/using-pumps"},{"type":"link","label":"Hardware calibrations","href":"/user-guide/hardware-calibrations","docId":"Extending your Pioreactor/hardware-calibrations"},{"type":"link","label":"Supplying more power to the PWM channels","href":"/user-guide/external-power","docId":"Extending your Pioreactor/external-power"},{"type":"link","label":"Using the StemmaQT/Qwicc connector","href":"/user-guide/using-stemma-qt","docId":"Extending your Pioreactor/using-stemma-qt"},{"type":"link","label":"Updating the Pioreactor software","href":"/user-guide/updating-software","docId":"Extending your Pioreactor/updating-software"},{"type":"category","label":"Upgrade kits","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Adding the Temperature Expansion Upgrade kit","href":"/user-guide/temperature-expansion-kit","docId":"Extending your Pioreactor/Upgrade kits/temperature-expansion-kit"},{"type":"link","label":"Adding the High Temp Upgrade kit","href":"/user-guide/high-temp-upgrade-kit","docId":"Extending your Pioreactor/Upgrade kits/high-temp-upgrade-kit"}]},{"type":"link","label":"Using community plugins","href":"/user-guide/using-community-plugins","docId":"Extending your Pioreactor/06a-using-community-plugins"},{"type":"link","label":"List of available plugins","href":"/user-guide/available-plugins","docId":"Extending your Pioreactor/06b-list-of-plugins"}]},{"type":"category","label":"Automations","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Introduction to automations","href":"/user-guide/intro-to-automations","docId":"Automations/intro-to-automations"},{"type":"link","label":"Temperature automations","href":"/user-guide/temperature-automations","docId":"Automations/temperature-automations"},{"type":"link","label":"Dosing automations","href":"/user-guide/dosing-automations","docId":"Automations/dosing-automations"},{"type":"link","label":"LED automations","href":"/user-guide/led-automations","docId":"Automations/led-automations"},{"type":"link","label":"Writing your own automations","href":"/user-guide/write-own-automations","docId":"Automations/writing-automations"}]},{"type":"category","label":"Advanced","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Accessing the Raspberry Pi","href":"/user-guide/accessing-raspberry-pi","docId":"Advanced/accessing-raspberry-pi"},{"type":"link","label":"Command line interface","href":"/user-guide/cli","docId":"Advanced/cli"},{"type":"category","label":"Remote access to your Pioreactors","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Setting up remote access","href":"/user-guide/remote-access","docId":"Advanced/remote-access/introduction"},{"type":"link","label":"Ngrok","href":"/user-guide/ngrok-remote-access","docId":"Advanced/remote-access/ngrok"},{"type":"link","label":"Tailscale","href":"/user-guide/tailscale-remote-access","docId":"Advanced/remote-access/tailscale"}]},{"type":"link","label":"Local access points","href":"/user-guide/local-access-point","docId":"Advanced/local-access-point"},{"type":"category","label":"Additional Hardware","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"More on peristaltic pumps","href":"/user-guide/addition-hardware-pumps","docId":"Advanced/additional-hardware/pumps"},{"type":"link","label":"Pinch valves","href":"/user-guide/pinch-valves","docId":"Advanced/additional-hardware/pinch-valves"},{"type":"link","label":"Hardware connection assembly","href":"/user-guide/hardware-connection-assembly","docId":"Advanced/additional-hardware/hardware-connection-assembly"}]},{"type":"link","label":"Writing Pioreactor scripts with Python","href":"/user-guide/intro-python-scripting","docId":"Advanced/intro-python-scripting"},{"type":"link","label":"Export and import your data","href":"/user-guide/export-import-existing-data","docId":"Advanced/export-import-existing-data"}]},{"type":"category","label":"Troubleshooting","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Blue LED flashing & error codes","href":"/user-guide/error-codes","docId":"Troubleshooting/error-codes"},{"type":"link","label":"Hardware (PCBs)","href":"/user-guide/troubleshooting-Hardware","docId":"Troubleshooting/Hardware troubleshooting"},{"type":"link","label":"Power and restarts","href":"/user-guide/troubleshooting-power","docId":"Troubleshooting/Power troubleshooting"},{"type":"link","label":"Stirring","href":"/user-guide/troubleshooting-stirring","docId":"Troubleshooting/Stirring troubleshooting"},{"type":"link","label":"User interface","href":"/user-guide/troubleshooting-ui","docId":"Troubleshooting/UI troubleshooting"}]},{"type":"link","label":"Common questions","href":"/user-guide/common-questions","docId":"common-questions"}]},"docs":{"Advanced/accessing-raspberry-pi":{"id":"Advanced/accessing-raspberry-pi","title":"Accessing the Raspberry Pi","description":"For more customization and control of your Pioreactor, you can access the Raspberry Pi\'s command line. From the command line, you can view more logs, control individual Pioreactors, and more.","sidebar":"tutorialSidebar"},"Advanced/additional-hardware/hardware-connection-assembly":{"id":"Advanced/additional-hardware/hardware-connection-assembly","title":"Hardware connection assembly","description":"Normally, the external hardware will have two terminals, corresponding to positive and ground. The positive terminal may be marked by a dot, or \\"+\\" symbol, or be colored red. Make note of this terminal.","sidebar":"tutorialSidebar"},"Advanced/additional-hardware/pinch-valves":{"id":"Advanced/additional-hardware/pinch-valves","title":"Pinch valves","description":"Pinch valves are useful for controlling gas into the Pioreactor by \\"pinching\\" a gas line closed (or keeping it open). This could used be for injecting gas periodically into the headspace, or acting as a bubbler by putting the injection tube directly into the culture. Below is a diagram of using a pinch valve to periodically provide CO\u2082 into the head space of the Pioreactor\'s vial:","sidebar":"tutorialSidebar"},"Advanced/additional-hardware/pumps":{"id":"Advanced/additional-hardware/pumps","title":"More on peristaltic pumps","description":"The PWM output default to 5V (specifically, it\'s tied to the power supply, so it may be 5.1V, 5.2V etc. See your power supply). You are able to use 12V pumps successfully even at 5V output. However, you can also use the AUX power connection to change the PWM output.","sidebar":"tutorialSidebar"},"Advanced/cli":{"id":"Advanced/cli","title":"Command line interface","description":"For those interested, you can use the command line to interact with the Pioreactors. This is called the command line interface (CLI). Log onto either the leader or worker and you can execute the following commands. Full options and up-to-date documentation are available with pio --help.","sidebar":"tutorialSidebar"},"Advanced/export-import-existing-data":{"id":"Advanced/export-import-existing-data","title":"Export and import your data","description":"Export your data","sidebar":"tutorialSidebar"},"Advanced/intro-python-scripting":{"id":"Advanced/intro-python-scripting","title":"Writing Pioreactor scripts with Python","description":"This article isn\'t intended as a crash course in Python, or Pioreactor software, but some helpful ways to write small scripts for your Pioreactor. If interested in learning more, check out the developer docs for detailed information.","sidebar":"tutorialSidebar"},"Advanced/local-access-point":{"id":"Advanced/local-access-point","title":"Local access points","description":"This feature is currently experimental","sidebar":"tutorialSidebar"},"Advanced/remote-access/introduction":{"id":"Advanced/remote-access/introduction","title":"Setting up remote access","description":"Introduction to remote access","sidebar":"tutorialSidebar"},"Advanced/remote-access/ngrok":{"id":"Advanced/remote-access/ngrok","title":"Ngrok","description":"If you would like to expose the Pioreactor UI to view remotely, you can use a service like Ngrok to do so.","sidebar":"tutorialSidebar"},"Advanced/remote-access/tailscale":{"id":"Advanced/remote-access/tailscale","title":"Tailscale","description":"Unlike using Ngrok, this method does not expose your UI to the public internet. To access the UI remotely, you need to join an authenticated VPN. This greatly improves security, but adds a bit of additional work for users.","sidebar":"tutorialSidebar"},"Automations/dosing-automations":{"id":"Automations/dosing-automations","title":"Dosing automations","description":"When pairing the Pioreactor with dosing pumps, there are new capabilities and experiments you can run. The Pioreactor is pre-programmed with the following dosing automations. In the below automations, values highlighted like so are configurable.","sidebar":"tutorialSidebar"},"Automations/intro-to-automations":{"id":"Automations/intro-to-automations","title":"Introduction to automations","description":"So far, we have worked with basic activities that you can directly set as a one time thing, typically at the beginning of your experiment (starting stirring, OD readings, etc.). For more advanced experiments, we introduce automations.","sidebar":"tutorialSidebar"},"Automations/led-automations":{"id":"Automations/led-automations","title":"LED automations","description":"LED automations are ways to automatically control the 4 available LEDs in the Pioreactor. These LEDs can be used as a light source for photosynthetic microbes, influence the environment of the microbes, as additional sensors, or improve existing sensors.","sidebar":"tutorialSidebar"},"Automations/temperature-automations":{"id":"Automations/temperature-automations","title":"Temperature automations","description":"The heater in the Pioreactor wetware can be programmed to control the temperature of the vial in automated ways. Pioreactor is pre-programmed with the following temperature automations. In the below automations, values highlighted like so are configurable.","sidebar":"tutorialSidebar"},"Automations/writing-automations":{"id":"Automations/writing-automations","title":"Writing your own automations","description":"Writing your own custom automations is easy, but requires some knowledge of Python. If you\'re interested, see our documentation here.","sidebar":"tutorialSidebar"},"common-questions":{"id":"common-questions","title":"Common questions","description":"Pioreactor operation","sidebar":"tutorialSidebar"},"Experiment basics/Activities":{"id":"Experiment basics/Activities","title":"Activities","description":"Below is a list of activities that come available with the Pioreactor. Additionally, you can add activities using plugins. Read more about using plugins.","sidebar":"tutorialSidebar"},"Experiment basics/export-data":{"id":"Experiment basics/export-data","title":"Exporting data","description":"Experiment data can be exported using the Export data tab on the Pioreactor site.","sidebar":"tutorialSidebar"},"Experiment basics/manual-led-dosing":{"id":"Experiment basics/manual-led-dosing","title":"Dosing and LED updates","description":"Dosing","sidebar":"tutorialSidebar"},"Experiment basics/monitor-experiment":{"id":"Experiment basics/monitor-experiment","title":"Monitoring your experiment","description":"Navigate to the Overview page on the Pioreactor web interface. Here you can view live charts for growth rate, OD, normalized OD, and temperature. These overview graphs are used to monitor collected data during the experiment runtime.","sidebar":"tutorialSidebar"},"Experiment basics/od-normal-growth-rate":{"id":"Experiment basics/od-normal-growth-rate","title":"Optical density, normalization, and growth rates","description":"Background on optical density","sidebar":"tutorialSidebar"},"Experiment basics/prepare-vial-for-cultures":{"id":"Experiment basics/prepare-vial-for-cultures","title":"Preparing your vial for cultures","description":"1. Preparing the vial","sidebar":"tutorialSidebar"},"Experiment basics/running-self-test":{"id":"Experiment basics/running-self-test","title":"Running a self-test","description":"To get the best results and confirm your Pioreactor is working as expected, it\'s advisable to run a self-test on your Pioreactor after setting it up initially. The self-test routine can catch common errors that may compromise your data collection.","sidebar":"tutorialSidebar"},"Experiment basics/set-up-an-experiment":{"id":"Experiment basics/set-up-an-experiment","title":"Setting up an experiment","description":"Creating an experiment","sidebar":"tutorialSidebar"},"Extending your Pioreactor/06a-using-community-plugins":{"id":"Extending your Pioreactor/06a-using-community-plugins","title":"Using community plugins","description":"The Pioreactor comes with a large set of functionality and behaviour to accomplish most projects. For example, continuous culturing, optical density reading, and stable temperatures are available out-of-the-box. However, the specifics and range of how people use bioreactors goes far beyond what we could ever cover. That\'s why Pioreactor has added a platform so that community members can make their own extensions and share them with others. We call these plugins. (Below is how to install plugins - if you are looking to create your own plugins, see here.)","sidebar":"tutorialSidebar"},"Extending your Pioreactor/06b-list-of-plugins":{"id":"Extending your Pioreactor/06b-list-of-plugins","title":"List of available plugins","description":"Plugins offer a powerful way to extend your Pioreactor. Below is a list of our favourite plugins. Visit the guide on how to install plugins into your Pioreactor.","sidebar":"tutorialSidebar"},"Extending your Pioreactor/adding-leds":{"id":"Extending your Pioreactor/adding-leds","title":"Using additional LEDs","description":"You can add your own LEDs to the Pioreactor. You might want to do this for the following reasons:","sidebar":"tutorialSidebar"},"Extending your Pioreactor/calibrate-od600":{"id":"Extending your Pioreactor/calibrate-od600","title":"Standard curves for OD600 readings","description":"Calibrating your OD600 readings","sidebar":"tutorialSidebar"},"Extending your Pioreactor/configuration":{"id":"Extending your Pioreactor/configuration","title":"Configuration via config.ini","description":"How configuration works across Pioreactors","sidebar":"tutorialSidebar"},"Extending your Pioreactor/create-cluster":{"id":"Extending your Pioreactor/create-cluster","title":"Creating a Pioreactor cluster","description":"Pioreactors are able to be used as individual units, or in concert with other Pioreactors. In either case, a Pioreactor needs to be assigned as a leader. The leader unit controls other Pioreactors (and that may include itself), stores the database, hosts the web interface, and is the interface between users and the hardware.","sidebar":"tutorialSidebar"},"Extending your Pioreactor/Experiment Profiles/create-edit-experiment-profiles":{"id":"Extending your Pioreactor/Experiment Profiles/create-edit-experiment-profiles","title":"Creating and editing experiment profiles","description":"Using the UI","sidebar":"tutorialSidebar"},"Extending your Pioreactor/Experiment Profiles/experiment-profiles-intro":{"id":"Extending your Pioreactor/Experiment Profiles/experiment-profiles-intro","title":"Intro to experiment profiles","description":"This is a new feature, and still in beta! We\'d love to hear your feedback on it: hello@pioreactor.com","sidebar":"tutorialSidebar"},"Extending your Pioreactor/Experiment Profiles/experiment-profiles-schema":{"id":"Extending your Pioreactor/Experiment Profiles/experiment-profiles-schema","title":"Experiment profiles schema","description":"Max number of actions","sidebar":"tutorialSidebar"},"Extending your Pioreactor/external-power":{"id":"Extending your Pioreactor/external-power","title":"Supplying more power to the PWM channels","description":"Some applications require more power to your Pioreactor if it is using lots of peripherals. This may include using more powerful pumps, more powerful external LEDs, etc. Or, if you see warning messages that reference under voltage or throttling, you probably are asking the Pioreactor to do too much given its default 5V power supply.","sidebar":"tutorialSidebar"},"Extending your Pioreactor/hardware-calibrations":{"id":"Extending your Pioreactor/hardware-calibrations","title":"Hardware calibrations","description":"Hardware calibrations serve as a method to get accurate performance from your Pioreactor.","sidebar":"tutorialSidebar"},"Extending your Pioreactor/updating-software":{"id":"Extending your Pioreactor/updating-software","title":"Updating the Pioreactor software","description":"We publish new software occasionally that fixes bugs, adds new features, and improves performance. You can update your Pioreactor(s) to the latest software from the UI. We highly recommend keeping your Pioreactor software up to date!","sidebar":"tutorialSidebar"},"Extending your Pioreactor/Upgrade kits/high-temp-upgrade-kit":{"id":"Extending your Pioreactor/Upgrade kits/high-temp-upgrade-kit","title":"Adding the High Temp Upgrade kit","description":"If you purchased the High Temp Upgrade kit, you\'ll be replacing a few of your plastic components with the improved high-temp plastics. Once this is done, you\'ll also need to install some software:","sidebar":"tutorialSidebar"},"Extending your Pioreactor/Upgrade kits/temperature-expansion-kit":{"id":"Extending your Pioreactor/Upgrade kits/temperature-expansion-kit","title":"Adding the Temperature Expansion Upgrade kit","description":"You can improve your Pioreactor temperature sensing capabilities with the Temperature Expansion Kit. This kit allows for faster temperature response times, more granular temperature data, and increasing the maximum culture temperature. Below are instructions on how to assemble the new hardware to your existing Pioreactor.","sidebar":"tutorialSidebar"},"Extending your Pioreactor/using-pumps":{"id":"Extending your Pioreactor/using-pumps","title":"Using a peristaltic pump with your Pioreactor","description":"Viewing pump configuration in config.ini","sidebar":"tutorialSidebar"},"Extending your Pioreactor/using-stemma-qt":{"id":"Extending your Pioreactor/using-stemma-qt","title":"Using the StemmaQT/Qwicc connector","description":"The Pioreactor HAT comes with a connector for the StemmaQT / Qwiic connector that can be used to attach additional hardware for your Pioreactor. See image below:","sidebar":"tutorialSidebar"},"getting-started/01b-hardware-set-up/faceplate-all-together":{"id":"getting-started/01b-hardware-set-up/faceplate-all-together","title":"Attaching the wetware to the HAT asssembly","description":"*\\tFan","sidebar":"tutorialSidebar"},"getting-started/01b-hardware-set-up/introduction":{"id":"getting-started/01b-hardware-set-up/introduction","title":"Before you begin assembly","description":"You can expect the assembly to take approximately 20-30 minutes.","sidebar":"tutorialSidebar"},"getting-started/01b-hardware-set-up/optics-assembly":{"id":"getting-started/01b-hardware-set-up/optics-assembly","title":"Connect the optics system","description":"1. You will need both PD cables (dark bulbs) and IR cable (clear bulb).","sidebar":"tutorialSidebar"},"getting-started/01b-hardware-set-up/rpi-hat-assembly":{"id":"getting-started/01b-hardware-set-up/rpi-hat-assembly","title":"Assembling the Raspberry Pi and the HAT","description":"1. You will need:","sidebar":"tutorialSidebar"},"getting-started/01b-hardware-set-up/wetware-assembly":{"id":"getting-started/01b-hardware-set-up/wetware-assembly","title":"Wetware assembly","description":"You will need:","sidebar":"tutorialSidebar"},"getting-started/01c-software-set-up":{"id":"getting-started/01c-software-set-up","title":"Software installation","description":"Install the Pioreactor software onto the Raspberry Pi","sidebar":"tutorialSidebar"},"getting-started/gettingstarted":{"id":"getting-started/gettingstarted","title":"Assembly introduction","description":"Let\'s get your Pioreactor set up. We\'ll start with hardware assembly. Start below:","sidebar":"tutorialSidebar"},"introduction":{"id":"introduction","title":"Introduction","description":"The Pioreactor is an open-source, affordable, and extensible bioreactor platform. The goal is to enable biologists, educators, DIYers, biohackers, and enthusiasts to be able to reliably control and study the growth of microorganisms.","sidebar":"tutorialSidebar"},"Troubleshooting/error-codes":{"id":"Troubleshooting/error-codes","title":"Blue LED flashing & error codes","description":"When a Pioreactor successfully boots, the onboard blue LED will flash quickly for 2 seconds, and then stop. However, there are times when the Pioreactor encounters an error, and will use the LED to alert to you that something is wrong. By counting the number of short flashes (per cycle), you can diagnose what might be wrong.","sidebar":"tutorialSidebar"},"Troubleshooting/Hardware troubleshooting":{"id":"Troubleshooting/Hardware troubleshooting","title":"Hardware (PCBs)","description":"I often see a \\"Pioreactor HAT must be present\\" error, but the HAT is definitely attached.","sidebar":"tutorialSidebar"},"Troubleshooting/Power troubleshooting":{"id":"Troubleshooting/Power troubleshooting","title":"Power and restarts","description":"Brown-outs","sidebar":"tutorialSidebar"},"Troubleshooting/Stirring troubleshooting":{"id":"Troubleshooting/Stirring troubleshooting","title":"Stirring","description":"Stirring is making a grinding noise.","sidebar":"tutorialSidebar"},"Troubleshooting/UI troubleshooting":{"id":"Troubleshooting/UI troubleshooting","title":"User interface","description":"I\'m not able to access http://pioreactor.local","sidebar":"tutorialSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/b3a861a3.cfb9d14e.js b/assets/js/b3a861a3.cfb9d14e.js new file mode 100644 index 000000000..6faf8d286 --- /dev/null +++ b/assets/js/b3a861a3.cfb9d14e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkpioreactor=self.webpackChunkpioreactor||[]).push([[9081],{3905:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>h});var r=a(67294);function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function n(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t=0||(o[a]=e[a]);return o}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(o[a]=e[a])}return o}var p=r.createContext({}),s=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},u=function(e){var t=s(e.components);return r.createElement(p.Provider,{value:t},e.children)},d="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,o=e.mdxType,n=e.originalType,p=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),d=s(a),m=o,h=d["".concat(p,".").concat(m)]||d[m]||c[m]||n;return a?r.createElement(h,i(i({ref:t},u),{},{components:a})):r.createElement(h,i({ref:t},u))}));function h(e,t){var a=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var n=a.length,i=new Array(n);i[0]=m;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[d]="string"==typeof e?e:o,i[1]=l;for(var s=2;s{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>c,frontMatter:()=>n,metadata:()=>l,toc:()=>s});var r=a(87462),o=(a(67294),a(3905));const n={title:"Updating the Pioreactor software",slug:"/updating-software"},i=void 0,l={unversionedId:"Extending your Pioreactor/updating-software",id:"Extending your Pioreactor/updating-software",title:"Updating the Pioreactor software",description:"We publish new software occasionally that fixes bugs, adds new features, and improves performance. You can update your Pioreactor(s) to the latest software from the UI. We highly recommend keeping your Pioreactor software up to date!",source:"@site/user-guide/03-Extending your Pioreactor/20-updating-software.md",sourceDirName:"03-Extending your Pioreactor",slug:"/updating-software",permalink:"/user-guide/updating-software",draft:!1,tags:[],version:"current",sidebarPosition:20,frontMatter:{title:"Updating the Pioreactor software",slug:"/updating-software"},sidebar:"tutorialSidebar",previous:{title:"Using the StemmaQT/Qwicc connector",permalink:"/user-guide/using-stemma-qt"},next:{title:"Adding the Temperature Expansion Upgrade kit",permalink:"/user-guide/temperature-expansion-kit"}},p={},s=[{value:"How to update your software from the UI",id:"how-to-update-your-software-from-the-ui",level:3},{value:"Installing previous versions or development versions",id:"installing-previous-versions-or-development-versions",level:4},{value:"Update using release archives",id:"update-using-release-archives",level:3}],u={toc:s},d="wrapper";function c(e){let{components:t,...n}=e;return(0,o.kt)(d,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"We publish new software occasionally that fixes bugs, adds new features, and improves performance. You can update your Pioreactor(s) to the latest software from the UI. ",(0,o.kt)("strong",{parentName:"p"},"We highly recommend keeping your Pioreactor software up to date!")),(0,o.kt)("h3",{id:"how-to-update-your-software-from-the-ui"},"How to update your software from the UI"),(0,o.kt)("admonition",{type:"info"},(0,o.kt)("p",{parentName:"admonition"},"To use this update method, you Raspberry Pi must be able to access the internet")),(0,o.kt)("p",null,'When a new software version is released by our team, you will see a red "badge" in your UI\'s sidebar:'),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"a red badge is beside the Update link",src:a(9645).Z,width:"3114",height:"1646"})),(0,o.kt)("p",null,"Upon visiting the ",(0,o.kt)("em",{parentName:"p"},"Updates")," page, you can see what version you have installed, and the latest version published by us. You can also read the changelog to see what improvements we've made in the latest releases."),(0,o.kt)("p",null,(0,o.kt)("img",{src:a(69384).Z,width:"3022",height:"1476"})),(0,o.kt)("p",null,"If you'd like to update, click on the \"Update to next release\" button. Updating software doesn't interrupt experiments or activities, but we suggest waiting until between experiments to update."),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"highlight of the webpage showing what to select to update",src:a(93618).Z,width:"3022",height:"1476"})),(0,o.kt)("p",null,"Updating from the UI will update all the Pioreactors in your cluster."),(0,o.kt)("admonition",{type:"info"},(0,o.kt)("p",{parentName:"admonition"},"The updating process will update to the ",(0,o.kt)("em",{parentName:"p"},"next")," release, after your current version. So if your current version is 23.4.1, and there are ",(0,o.kt)("em",{parentName:"p"},"two")," more recent releases, say 23.5.1 and 23.6.1, then the update process will update to 23.5.1. You can run the update process ",(0,o.kt)("em",{parentName:"p"},"again")," to update to 23.6.1. We do this so that you will get changes folded in from each release we make.")),(0,o.kt)("h4",{id:"installing-previous-versions-or-development-versions"},"Installing previous versions or development versions"),(0,o.kt)("p",null,"You can install the bleeding-edge software from this page as well. Just select the development build in the drop down. Warning: this version may be unstable (and fun!)"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"highlight of the webpage showing what to select to update to the development branch",src:a(78862).Z,width:"3022",height:"1476"})),(0,o.kt)("p",null,"Similarly, from the ",(0,o.kt)("a",{parentName:"p",href:"https://docs.pioreactor.com/user-guide/accessing-raspberry-pi"},"command line"),", you can install specific versions. See ",(0,o.kt)("inlineCode",{parentName:"p"},"pio update app --help")," for more."),(0,o.kt)("h3",{id:"update-using-release-archives"},"Update using release archives"),(0,o.kt)("admonition",{type:"info"},(0,o.kt)("p",{parentName:"admonition"},"This method is used if your using the local-access-point.")),(0,o.kt)("p",null,"For software versions 23.10.5 and beyond, there's a new way to update your Pioreactor software."),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"On the ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/Pioreactor/pioreactor/releases"},"Releases page"),", download the ",(0,o.kt)("inlineCode",{parentName:"p"},"release_xx.xx.xx.zip")," archive for the version you want.")),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"We need a software tool up upload this release to the Pioreactor."),(0,o.kt)("ol",{parentName:"li"},(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"You can use ",(0,o.kt)("inlineCode",{parentName:"p"},"scp")," on the command line:"),(0,o.kt)("pre",{parentName:"li"},(0,o.kt)("code",{parentName:"pre"},"scp pioreactor@.local:/home/pioreactor\n")),(0,o.kt)("p",{parentName:"li"},"Skip to 8. below.")),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"or a tool like FileZilla. We'll continue with FileZilla below.")))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Download and open ",(0,o.kt)("a",{parentName:"p",href:"https://filezilla-project.org/download.php?type=client"},"FileZilla"),".")),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Connect to the Pioreactor's local-access-point, ",(0,o.kt)("em",{parentName:"p"},"pioreactor"),".")),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Enter the following credentials in the top-right:"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"host: ",(0,o.kt)("inlineCode",{parentName:"li"},"pioreactor.local")," (or, your ",(0,o.kt)("inlineCode",{parentName:"li"},".local")," or its IP address)"),(0,o.kt)("li",{parentName:"ul"},"username: ",(0,o.kt)("inlineCode",{parentName:"li"},"pioreactor")),(0,o.kt)("li",{parentName:"ul"},"password: ",(0,o.kt)("inlineCode",{parentName:"li"},"raspberry")),(0,o.kt)("li",{parentName:"ul"},"port: ",(0,o.kt)("inlineCode",{parentName:"li"},"22"))),(0,o.kt)("p",{parentName:"li"},"Click ",(0,o.kt)("inlineCode",{parentName:"p"},"Quickconnect"),". You should successfully connect to your Pioreactor's Raspberry Pi (and may need to accept a security pop-up)."),(0,o.kt)("p",{parentName:"li"},(0,o.kt)("img",{alt:"filezilla UI connecting to Pioreactor's Raspberry Pi",src:a(39463).Z,width:"3248",height:"1950"}))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"On the left-hand side is your computer's file system. Find the ",(0,o.kt)("inlineCode",{parentName:"p"},"release_xx.xx.xx.zip")," file you downloaded earlier, and double click it to upload to the Raspberry Pi (that filesystem is on the right).\n",(0,o.kt)("img",{alt:"filezilla UI uploading file to Pioreactor",src:a(18242).Z,width:"3248",height:"1950"}))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"You should see a successfully uploaded message, and the file should be present on the right-hand side now. You can close FileZilla.\n",(0,o.kt)("img",{alt:"filezilla UI successfully uploaded file to Pioreactor",src:a(78975).Z,width:"3248",height:"1950"}))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("a",{parentName:"p",href:"/user-guide/accessing-raspberry-pi"},"SSH into your Pioreactor"),". Now enter:"),(0,o.kt)("pre",{parentName:"li"},(0,o.kt)("code",{parentName:"pre"},"pio update app --source release_xx.xx.xx.zip\n")),(0,o.kt)("p",{parentName:"li"},"(Of course, replace the ",(0,o.kt)("inlineCode",{parentName:"p"},"xx.xx.xx")," with your version). This will kick off a task to update your software.")),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"To update your workers, first we will distribute the release file to all workers:"),(0,o.kt)("pre",{parentName:"li"},(0,o.kt)("code",{parentName:"pre"},"pios cp release_xx.xx.xx.zip\n"))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Finally, run the following to update the software on the workers:"),(0,o.kt)("pre",{parentName:"li"},(0,o.kt)("code",{parentName:"pre"},"pios update app --source release_xx.xx.xx.zip\n")))),(0,o.kt)("hr",null),(0,o.kt)("p",null,"To update the UI, the steps are similar:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"On the ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/Pioreactor/pioreactorui/releases"},"releases page"),", download the ",(0,o.kt)("inlineCode",{parentName:"li"},"Source code (tag.gz)")," for the release you want."),(0,o.kt)("li",{parentName:"ol"},"Using FileZilla, upload this archive to your leader's Raspberry Pi."),(0,o.kt)("li",{parentName:"ol"},"SSH into your Raspberry Pi, and run:",(0,o.kt)("pre",{parentName:"li"},(0,o.kt)("code",{parentName:"pre"},"pio update ui --source pioreactorui-xx.xx.xx.tar.gz -v xx.xx.xx\n")),"where ",(0,o.kt)("inlineCode",{parentName:"li"},"xx.xx.xx")," is the version number, (ex: ",(0,o.kt)("inlineCode",{parentName:"li"},"23.10.4"),").")))}c.isMDXComponent=!0},9645:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/badge-297da4f4c7c001ed77aaaef0c2e3a73b.png"},93618:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/click_update-c38a5940b2c9dfd609fb3882650ed33a.png"},78862:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/click_update_develop-054448e07048662b23ef011b25977e80.png"},39463:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/connect_via_filezilla-4baea6ad6d5fca5865c7cf549db6029c.png"},78975:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/successuful_upload-edaf37800b289de114bbda1152911f87.png"},18242:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/upload_file_via_filezilla-2bbf4959e5ddb942db1574e1e93410f1.png"},69384:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/version_installed_vs_latest-e5eeca231d56d0ccfcc810051fcbda4d.png"}}]); \ No newline at end of file diff --git a/assets/js/b3a861a3.d3c5adff.js b/assets/js/b3a861a3.d3c5adff.js deleted file mode 100644 index 53b5f38aa..000000000 --- a/assets/js/b3a861a3.d3c5adff.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkpioreactor=self.webpackChunkpioreactor||[]).push([[9081],{3905:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>h});var r=a(67294);function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function n(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t=0||(o[a]=e[a]);return o}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(o[a]=e[a])}return o}var p=r.createContext({}),s=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},u=function(e){var t=s(e.components);return r.createElement(p.Provider,{value:t},e.children)},d="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,o=e.mdxType,n=e.originalType,p=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),d=s(a),m=o,h=d["".concat(p,".").concat(m)]||d[m]||c[m]||n;return a?r.createElement(h,i(i({ref:t},u),{},{components:a})):r.createElement(h,i({ref:t},u))}));function h(e,t){var a=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var n=a.length,i=new Array(n);i[0]=m;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[d]="string"==typeof e?e:o,i[1]=l;for(var s=2;s{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>c,frontMatter:()=>n,metadata:()=>l,toc:()=>s});var r=a(87462),o=(a(67294),a(3905));const n={title:"Updating the Pioreactor software",slug:"/updating-software"},i=void 0,l={unversionedId:"Extending your Pioreactor/updating-software",id:"Extending your Pioreactor/updating-software",title:"Updating the Pioreactor software",description:"We publish new software occasionally that fixes bugs, adds new features, and improves performance. You can update your Pioreactor(s) to the latest software from the UI. We highly recommend keeping your Pioreactor software up to date!",source:"@site/user-guide/03-Extending your Pioreactor/20-updating-software.md",sourceDirName:"03-Extending your Pioreactor",slug:"/updating-software",permalink:"/user-guide/updating-software",draft:!1,tags:[],version:"current",sidebarPosition:20,frontMatter:{title:"Updating the Pioreactor software",slug:"/updating-software"},sidebar:"tutorialSidebar",previous:{title:"Adding the temperature expansion kit to your Pioreactor",permalink:"/user-guide/temperature-expansion-kit"},next:{title:"Using community plugins",permalink:"/user-guide/using-community-plugins"}},p={},s=[{value:"How to update your software from the UI",id:"how-to-update-your-software-from-the-ui",level:3},{value:"Installing previous versions or development versions",id:"installing-previous-versions-or-development-versions",level:4},{value:"Update using release archives",id:"update-using-release-archives",level:3}],u={toc:s},d="wrapper";function c(e){let{components:t,...n}=e;return(0,o.kt)(d,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"We publish new software occasionally that fixes bugs, adds new features, and improves performance. You can update your Pioreactor(s) to the latest software from the UI. ",(0,o.kt)("strong",{parentName:"p"},"We highly recommend keeping your Pioreactor software up to date!")),(0,o.kt)("h3",{id:"how-to-update-your-software-from-the-ui"},"How to update your software from the UI"),(0,o.kt)("admonition",{type:"info"},(0,o.kt)("p",{parentName:"admonition"},"To use this update method, you Raspberry Pi must be able to access the internet")),(0,o.kt)("p",null,'When a new software version is released by our team, you will see a red "badge" in your UI\'s sidebar:'),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"a red badge is beside the Update link",src:a(9645).Z,width:"3114",height:"1646"})),(0,o.kt)("p",null,"Upon visiting the ",(0,o.kt)("em",{parentName:"p"},"Updates")," page, you can see what version you have installed, and the latest version published by us. You can also read the changelog to see what improvements we've made in the latest releases."),(0,o.kt)("p",null,(0,o.kt)("img",{src:a(69384).Z,width:"3022",height:"1476"})),(0,o.kt)("p",null,"If you'd like to update, click on the \"Update to next release\" button. Updating software doesn't interrupt experiments or activities, but we suggest waiting until between experiments to update."),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"highlight of the webpage showing what to select to update",src:a(93618).Z,width:"3022",height:"1476"})),(0,o.kt)("p",null,"Updating from the UI will update all the Pioreactors in your cluster."),(0,o.kt)("admonition",{type:"info"},(0,o.kt)("p",{parentName:"admonition"},"The updating process will update to the ",(0,o.kt)("em",{parentName:"p"},"next")," release, after your current version. So if your current version is 23.4.1, and there are ",(0,o.kt)("em",{parentName:"p"},"two")," more recent releases, say 23.5.1 and 23.6.1, then the update process will update to 23.5.1. You can run the update process ",(0,o.kt)("em",{parentName:"p"},"again")," to update to 23.6.1. We do this so that you will get changes folded in from each release we make.")),(0,o.kt)("h4",{id:"installing-previous-versions-or-development-versions"},"Installing previous versions or development versions"),(0,o.kt)("p",null,"You can install the bleeding-edge software from this page as well. Just select the development build in the drop down. Warning: this version may be unstable (and fun!)"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"highlight of the webpage showing what to select to update to the development branch",src:a(78862).Z,width:"3022",height:"1476"})),(0,o.kt)("p",null,"Similarly, from the ",(0,o.kt)("a",{parentName:"p",href:"https://docs.pioreactor.com/user-guide/accessing-raspberry-pi"},"command line"),", you can install specific versions. See ",(0,o.kt)("inlineCode",{parentName:"p"},"pio update app --help")," for more."),(0,o.kt)("h3",{id:"update-using-release-archives"},"Update using release archives"),(0,o.kt)("admonition",{type:"info"},(0,o.kt)("p",{parentName:"admonition"},"This method is used if your using the local-access-point.")),(0,o.kt)("p",null,"For software versions 23.10.5 and beyond, there's a new way to update your Pioreactor software."),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"On the ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/Pioreactor/pioreactor/releases"},"Releases page"),", download the ",(0,o.kt)("inlineCode",{parentName:"p"},"release_xx.xx.xx.zip")," archive for the version you want.")),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"We need a software tool up upload this release to the Pioreactor."),(0,o.kt)("ol",{parentName:"li"},(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"You can use ",(0,o.kt)("inlineCode",{parentName:"p"},"scp")," on the command line:"),(0,o.kt)("pre",{parentName:"li"},(0,o.kt)("code",{parentName:"pre"},"scp pioreactor@.local:/home/pioreactor\n")),(0,o.kt)("p",{parentName:"li"},"Skip to 8. below.")),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"or a tool like FileZilla. We'll continue with FileZilla below.")))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Download and open ",(0,o.kt)("a",{parentName:"p",href:"https://filezilla-project.org/download.php?type=client"},"FileZilla"),".")),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Connect to the Pioreactor's local-access-point, ",(0,o.kt)("em",{parentName:"p"},"pioreactor"),".")),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Enter the following credentials in the top-right:"),(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"host: ",(0,o.kt)("inlineCode",{parentName:"li"},"pioreactor.local")," (or, your ",(0,o.kt)("inlineCode",{parentName:"li"},".local")," or its IP address)"),(0,o.kt)("li",{parentName:"ul"},"username: ",(0,o.kt)("inlineCode",{parentName:"li"},"pioreactor")),(0,o.kt)("li",{parentName:"ul"},"password: ",(0,o.kt)("inlineCode",{parentName:"li"},"raspberry")),(0,o.kt)("li",{parentName:"ul"},"port: ",(0,o.kt)("inlineCode",{parentName:"li"},"22"))),(0,o.kt)("p",{parentName:"li"},"Click ",(0,o.kt)("inlineCode",{parentName:"p"},"Quickconnect"),". You should successfully connect to your Pioreactor's Raspberry Pi (and may need to accept a security pop-up)."),(0,o.kt)("p",{parentName:"li"},(0,o.kt)("img",{alt:"filezilla UI connecting to Pioreactor's Raspberry Pi",src:a(39463).Z,width:"3248",height:"1950"}))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"On the left-hand side is your computer's file system. Find the ",(0,o.kt)("inlineCode",{parentName:"p"},"release_xx.xx.xx.zip")," file you downloaded earlier, and double click it to upload to the Raspberry Pi (that filesystem is on the right).\n",(0,o.kt)("img",{alt:"filezilla UI uploading file to Pioreactor",src:a(18242).Z,width:"3248",height:"1950"}))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"You should see a successfully uploaded message, and the file should be present on the right-hand side now. You can close FileZilla.\n",(0,o.kt)("img",{alt:"filezilla UI successfully uploaded file to Pioreactor",src:a(78975).Z,width:"3248",height:"1950"}))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},(0,o.kt)("a",{parentName:"p",href:"/user-guide/accessing-raspberry-pi"},"SSH into your Pioreactor"),". Now enter:"),(0,o.kt)("pre",{parentName:"li"},(0,o.kt)("code",{parentName:"pre"},"pio update app --source release_xx.xx.xx.zip\n")),(0,o.kt)("p",{parentName:"li"},"(Of course, replace the ",(0,o.kt)("inlineCode",{parentName:"p"},"xx.xx.xx")," with your version). This will kick off a task to update your software.")),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"To update your workers, first we will distribute the release file to all workers:"),(0,o.kt)("pre",{parentName:"li"},(0,o.kt)("code",{parentName:"pre"},"pios cp release_xx.xx.xx.zip\n"))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Finally, run the following to update the software on the workers:"),(0,o.kt)("pre",{parentName:"li"},(0,o.kt)("code",{parentName:"pre"},"pios update app --source release_xx.xx.xx.zip\n")))),(0,o.kt)("hr",null),(0,o.kt)("p",null,"To update the UI, the steps are similar:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"On the ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/Pioreactor/pioreactorui/releases"},"releases page"),", download the ",(0,o.kt)("inlineCode",{parentName:"li"},"Source code (tag.gz)")," for the release you want."),(0,o.kt)("li",{parentName:"ol"},"Using FileZilla, upload this archive to your leader's Raspberry Pi."),(0,o.kt)("li",{parentName:"ol"},"SSH into your Raspberry Pi, and run:",(0,o.kt)("pre",{parentName:"li"},(0,o.kt)("code",{parentName:"pre"},"pio update ui --source pioreactorui-xx.xx.xx.tar.gz -v xx.xx.xx\n")),"where ",(0,o.kt)("inlineCode",{parentName:"li"},"xx.xx.xx")," is the version number, (ex: ",(0,o.kt)("inlineCode",{parentName:"li"},"23.10.4"),").")))}c.isMDXComponent=!0},9645:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/badge-297da4f4c7c001ed77aaaef0c2e3a73b.png"},93618:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/click_update-c38a5940b2c9dfd609fb3882650ed33a.png"},78862:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/click_update_develop-054448e07048662b23ef011b25977e80.png"},39463:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/connect_via_filezilla-4baea6ad6d5fca5865c7cf549db6029c.png"},78975:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/successuful_upload-edaf37800b289de114bbda1152911f87.png"},18242:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/upload_file_via_filezilla-2bbf4959e5ddb942db1574e1e93410f1.png"},69384:(e,t,a)=>{a.d(t,{Z:()=>r});const r=a.p+"assets/images/version_installed_vs_latest-e5eeca231d56d0ccfcc810051fcbda4d.png"}}]); \ No newline at end of file diff --git a/assets/js/cf8b9ca5.f27ceb46.js b/assets/js/cf8b9ca5.f27ceb46.js deleted file mode 100644 index 8f59b30bf..000000000 --- a/assets/js/cf8b9ca5.f27ceb46.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkpioreactor=self.webpackChunkpioreactor||[]).push([[7913],{3905:(e,s,t)=>{"use strict";t.d(s,{Zo:()=>n,kt:()=>l});var a=t(67294);function i(e,s,t){return s in e?Object.defineProperty(e,s,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[s]=t,e}function g(e,s){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);s&&(a=a.filter((function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable}))),t.push.apply(t,a)}return t}function c(e){for(var s=1;s=0||(i[t]=e[t]);return i}(e,s);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}var r=a.createContext({}),u=function(e){var s=a.useContext(r),t=s;return e&&(t="function"==typeof e?e(s):c(c({},s),e)),t},n=function(e){var s=u(e.components);return a.createElement(r.Provider,{value:s},e.children)},p="mdxType",o={inlineCode:"code",wrapper:function(e){var s=e.children;return a.createElement(a.Fragment,{},s)}},M=a.forwardRef((function(e,s){var t=e.components,i=e.mdxType,g=e.originalType,r=e.parentName,n=d(e,["components","mdxType","originalType","parentName"]),p=u(t),M=i,l=p["".concat(r,".").concat(M)]||p[M]||o[M]||g;return t?a.createElement(l,c(c({ref:s},n),{},{components:t})):a.createElement(l,c({ref:s},n))}));function l(e,s){var t=arguments,i=s&&s.mdxType;if("string"==typeof e||i){var g=t.length,c=new Array(g);c[0]=M;var d={};for(var r in s)hasOwnProperty.call(s,r)&&(d[r]=s[r]);d.originalType=e,d[p]="string"==typeof e?e:i,c[1]=d;for(var u=2;u{"use strict";t.d(s,{Z:()=>p});var a=t(67294),i=t(86010),g=t(35281),c=t(95999);const d={admonition:"admonition_LlT9",admonitionHeading:"admonitionHeading_tbUL",admonitionIcon:"admonitionIcon_kALy",admonitionContent:"admonitionContent_S0QG"};const r={note:{infimaClassName:"secondary",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 14 16"},a.createElement("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"}))},label:a.createElement(c.Z,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)"},"note")},tip:{infimaClassName:"success",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 12 16"},a.createElement("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"}))},label:a.createElement(c.Z,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)"},"tip")},danger:{infimaClassName:"danger",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 12 16"},a.createElement("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"}))},label:a.createElement(c.Z,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)"},"danger")},info:{infimaClassName:"info",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 14 16"},a.createElement("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"}))},label:a.createElement(c.Z,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)"},"info")},caution:{infimaClassName:"warning",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 16 16"},a.createElement("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"}))},label:a.createElement(c.Z,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)"},"caution")}},u={secondary:"note",important:"info",success:"tip",warning:"danger"};function n(e){const{mdxAdmonitionTitle:s,rest:t}=function(e){const s=a.Children.toArray(e),t=s.find((e=>{var s;return a.isValidElement(e)&&"mdxAdmonitionTitle"===(null==(s=e.props)?void 0:s.mdxType)})),i=a.createElement(a.Fragment,null,s.filter((e=>e!==t)));return{mdxAdmonitionTitle:t,rest:i}}(e.children);return{...e,title:e.title??s,children:t}}function p(e){const{children:s,type:t,title:c,icon:p}=n(e),o=function(e){const s=u[e]??e,t=r[s];return t||(console.warn(`No admonition config found for admonition type "${s}". Using Info as fallback.`),r.info)}(t),M=c??o.label,{iconComponent:l}=o,N=p??a.createElement(l,null);return a.createElement("div",{className:(0,i.Z)(g.k.common.admonition,g.k.common.admonitionType(e.type),"alert",`alert--${o.infimaClassName}`,d.admonition)},a.createElement("div",{className:d.admonitionHeading},a.createElement("span",{className:d.admonitionIcon},N),M),a.createElement("div",{className:d.admonitionContent},s))}},29702:(e,s,t)=>{"use strict";t.d(s,{Z:()=>d});var a=t(67294),i=t(86010);const g={highlightThumbnail:"highlightThumbnail_SKrZ",thumbnail:"thumbnail_dvij"};var c=t(76775);function d(e){let{children:s,title:d,images:r}=e;const u=(0,c.TH)().pathname.split("#")[0],[n,p]=a.useState(r[0]),o=e=>s=>{p(r[e])},M=e=>null==e?"":e.replace(/[^a-z0-9_]+/gi,"-").replace(/^-|-$/g,"").toLowerCase();return a.createElement("div",{id:M(d),style:{padding:"10px",margin:"20px 0px 60px 0px",display:"flex",flexWrap:"nowrap"}},a.createElement("div",{id:"mainImage",style:{width:"55%",float:"left",marginRight:"10px"}},a.createElement("h2",null,d," ",a.createElement("a",{href:u+"#"+M(d)},"#")),a.createElement("img",{maxHeight:240,src:t(27356)(`./${n}`).default}),r.length>1&&a.createElement("div",{id:"thumbnails",style:{width:"100%"}},r.map(((e,s)=>a.createElement("button",{onClick:o(s),key:s,className:(0,i.Z)({[g.thumbnail]:e!==n,[g.highlightThumbnail]:e===n})},a.createElement("img",{width:"100px",src:t(27356)(`./${e}`).default,key:e})))))),a.createElement("section",{style:{width:"44%",float:"left",marginTop:"40px"}},s))}},32969:(e,s,t)=>{"use strict";t.d(s,{Z:()=>i});var a=t(67294);function i(e){let{children:s,color:t}=e;return a.createElement("span",{style:{backgroundColor:t,borderRadius:"2px",color:"#fff",padding:"0.2rem"}},s)}},97214:(e,s,t)=>{"use strict";t.d(s,{$C:()=>r,$y:()=>d,Ce:()=>g,Q6:()=>i,ek:()=>c,iN:()=>a});const a="rgb(35, 67, 232)",i="rgb(170, 10, 60)",g="rgb(220, 84, 183)",c="rgb(19, 173, 102)",d="rgb(255, 144, 36)",r="rgb(0,139,139)"},5948:(e,s,t)=>{"use strict";t.r(s),t.d(s,{assets:()=>p,contentTitle:()=>u,default:()=>N,frontMatter:()=>r,metadata:()=>n,toc:()=>o});var a=t(87462),i=(t(67294),t(3905)),g=t(29702),c=t(32969),d=(t(23612),t(97214));const r={title:"Adding the temperature expansion kit to your Pioreactor",slug:"/temperature-expansion-kit",hide_table_of_contents:!0},u=void 0,n={unversionedId:"Extending your Pioreactor/temperature-expansion-kit",id:"Extending your Pioreactor/temperature-expansion-kit",title:"Adding the temperature expansion kit to your Pioreactor",description:"You can improve your Pioreactor temperature sensing capabilities with the Temperature Expansion Kit. This kit allows for faster temperature response times, more granular temperature data, and increasing the maximum culture temperature. Below are instructions on how to assemble the new hardware to your existing Pioreactor.",source:"@site/user-guide/03-Extending your Pioreactor/12-temperature-expansion-kit.md",sourceDirName:"03-Extending your Pioreactor",slug:"/temperature-expansion-kit",permalink:"/user-guide/temperature-expansion-kit",draft:!1,tags:[],version:"current",sidebarPosition:12,frontMatter:{title:"Adding the temperature expansion kit to your Pioreactor",slug:"/temperature-expansion-kit",hide_table_of_contents:!0},sidebar:"tutorialSidebar",previous:{title:"Using the StemmaQT/Qwicc connector",permalink:"/user-guide/using-stemma-qt"},next:{title:"Updating the Pioreactor software",permalink:"/user-guide/updating-software"}},p={},o=[{value:"Tips",id:"tips",level:2},{value:"Troubleshooting",id:"troubleshooting",level:2},{value:"I'm seeing "Record null temperature. Is the Pt1000 probe connected?" and the wire is connected.",id:"im-seeing-record-null-temperature-is-the-pt1000-probe-connected-and-the-wire-is-connected",level:3}],M={toc:o},l="wrapper";function N(e){let{components:s,...t}=e;return(0,i.kt)(l,(0,a.Z)({},M,t,{components:s,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"You can improve your Pioreactor temperature sensing capabilities with the Temperature Expansion Kit. This kit allows for faster temperature response times, more granular temperature data, and increasing the maximum culture temperature. Below are instructions on how to assemble the new hardware to your existing Pioreactor."),(0,i.kt)(g.Z,{title:"Step 0: before you begin",images:["user-guide/add-teh/00_teh_parts.jpeg"],mdxType:"AssemblyInstructionBlock"},(0,i.kt)("p",null,"What's needed to upgrade your Pioreactor with the Pioreactor Expansion Kit:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},(0,i.kt)(c.Z,{color:d.iN,mdxType:"Highlight"}," Pioreactor Temperature Expansion HAT")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)(c.Z,{color:d.ek,mdxType:"Highlight"}," 12mm nylon stand-offs ")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)(c.Z,{color:d.$y,mdxType:"Highlight"}," thermowell ")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)(c.Z,{color:d.Q6,mdxType:"Highlight"}," Pt1000 probe ")),(0,i.kt)("li",{parentName:"ol"},"A powered-off Pioreactor."),(0,i.kt)("li",{parentName:"ol"},"A philips head screwdriver"))),(0,i.kt)(g.Z,{title:"Step 1: Expose the Pioreactor HAT",images:["user-guide/add-teh/01_teh_unplug_from_hats.jpeg","user-guide/add-teh/02_teh_unscrew_top.jpeg","user-guide/add-teh/03_teh_remove_top.jpeg"],mdxType:"AssemblyInstructionBlock"},(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Unplug all wires and cables attached to the Pioreactor HAT."),(0,i.kt)("li",{parentName:"ol"},"Unscrew the four ",(0,i.kt)(c.Z,{color:d.iN,mdxType:"Highlight"},"6mm nylon screws")," on the top faceplate. Keep these screws nearby."),(0,i.kt)("li",{parentName:"ol"},"Remove the top assembly. Keep this nearby."))),(0,i.kt)(g.Z,{title:"Step 2: Attach the new HAT",images:["user-guide/add-teh/04_teh_place_hat_1.jpeg","user-guide/add-teh/05_teh_place_hat_2.jpeg","user-guide/add-teh/06_teh_place_standoffs_1.jpeg","user-guide/add-teh/07_teh_place_standoffs_2.jpeg","user-guide/add-teh/08_teh_place_top_back.jpeg","user-guide/add-teh/09_teh_screw_top_on.jpeg"],mdxType:"AssemblyInstructionBlock"},(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Place the new Temperature Expansion HAT onto the existing HAT, making sure the GPIO pins are lined up. It will fit snug, and you can apply pressure onto the corners of the boards."),(0,i.kt)("li",{parentName:"ol"},"Tip: if the HAT is still hard to put on, you can screw in the ",(0,i.kt)(c.Z,{color:d.$y,mdxType:"Highlight"},"12mm standoffs")," to help force the new HAT down further."),(0,i.kt)("li",{parentName:"ol"},"Finish placing the ",(0,i.kt)(c.Z,{color:d.$y,mdxType:"Highlight"},"12mm standoffs")," in."),(0,i.kt)("li",{parentName:"ol"},"Place the Pioreactor top assembly back on, and screw back in the 6mm screws."),(0,i.kt)("li",{parentName:"ol"},"Replug in the cables and wires into the original HAT. Normally:",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"90\xb0 -> PD channel 2"),(0,i.kt)("li",{parentName:"ul"},"REF -> PD channel 1"),(0,i.kt)("li",{parentName:"ul"},"IR -> LED channel A"),(0,i.kt)("li",{parentName:"ul"},"Stirring fan -> PWM 1 (unlabelled)"),(0,i.kt)("li",{parentName:"ul"},"Heater PCB flat-flex cable -> flat-flex connector (unlabelled)"))))),(0,i.kt)(g.Z,{title:"Step 3: Attach the Pt1000",images:["user-guide/add-teh/11_teh_insert_pt1000.jpeg","user-guide/add-teh/12_teh_screw_in_thermowell.jpeg","user-guide/add-teh/13_teh_insert_pt1000_vial.jpeg","user-guide/add-teh/14_teh_finished.jpeg"],mdxType:"AssemblyInstructionBlock"},(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Attach the ",(0,i.kt)(c.Z,{color:d.Ce,mdxType:"Highlight"},"Pt1000 probe's connector")," to the new Temperature Expansion HAT. The connector only has one orientation that works."),(0,i.kt)("li",{parentName:"ol"},"In your Pioreactor's vial, screw in the ",(0,i.kt)(c.Z,{color:d.Q6,mdxType:"Highlight"},"thermowell"),".")),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},"Make sure when the thermowell is ",(0,i.kt)("strong",{parentName:"p"},"straight")," when being screwed in (that is, perpendicular to the surface of the cap)."),(0,i.kt)("p",{parentName:"admonition"},"It may be a tight squeeze. To help screw it in if it's difficult:"),(0,i.kt)("ul",{parentName:"admonition"},(0,i.kt)("li",{parentName:"ul"},"Once a few threads are inserted, rotate the thermowell back and forwards a few times slowly to provide more clearance."),(0,i.kt)("li",{parentName:"ul"},"You can use a pair of needle-nose pliers to hold secure the female end of the thermowell (i.e. one tip is inside the thermowell, and one outside), then twist the vial cap."))),(0,i.kt)("ol",{start:3},(0,i.kt)("li",{parentName:"ol"},"If not already done so, screw in the ",(0,i.kt)(c.Z,{color:d.iN,mdxType:"Highlight"},"Pt1000 into the thermowell"),"."),(0,i.kt)("li",{parentName:"ol"},"You're done the assembly! Next is to install the software."),(0,i.kt)("li",{parentName:"ol"},"Power up the Pioreactor."))),(0,i.kt)(g.Z,{title:"Step 4: Install the software",images:["user-guide/add-teh/install_from_ui.png","user-guide/add-teh/config.png"],mdxType:"AssemblyInstructionBlock"},(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"}," 1. If you install the Kit across your entire Pioreactor cluster")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"In your PioreactorUI, you can ",(0,i.kt)(c.Z,{color:d.ek,mdxType:"Highlight"},"install the plugin")," to all Pioreactors.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"}," 2. If you installed the Kit on individual Pioreactors")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"/user-guide/accessing-raspberry-pi"},"SSH")," into the individual Pioreactor, and type ",(0,i.kt)("inlineCode",{parentName:"li"},"pio install-plugin temperature-expansion-kit-plugin"))),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"}," Important:")," in either case,"),(0,i.kt)("p",null,"Confirm in your ",(0,i.kt)(c.Z,{color:d.Ce,mdxType:"Highlight"},"configuration")," that the ",(0,i.kt)("inlineCode",{parentName:"p"},"[temperature_automation.thermostat]")," values have been updated for the Pioreactors with the new hardware to be (exact values may vary slightly):"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre"},"Kp=0.017\nKi=0.0\nKd=4.0\n")),(0,i.kt)("p",null,"You can also update the following configuration:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre"},"[temperature_automation.config]\n# 50 or 60 only, depending on geographic location. This improves the accuracy.\nlocal_ac_hz=60\n"))),(0,i.kt)("h2",{id:"tips"},"Tips"),(0,i.kt)("h2",{id:"troubleshooting"},"Troubleshooting"),(0,i.kt)("h3",{id:"im-seeing-record-null-temperature-is-the-pt1000-probe-connected-and-the-wire-is-connected"},'I\'m seeing "Record null temperature. Is the Pt1000 probe connected?" and the wire is connected.'),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Try unplugging and plugging the probe back into the HAT."),(0,i.kt)("li",{parentName:"ul"},"Try restarting the Pioreactor."),(0,i.kt)("li",{parentName:"ul"},"If the error persists, contact us at ",(0,i.kt)("inlineCode",{parentName:"li"},"hello@pioreactor.com"))))}N.isMDXComponent=!0},35046:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/activities-5d341f64a5d9ebcc0b558948fc9b98de.png"},89586:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/activities_with_example-d119be228fdbbd58acce37ab1fbaf129.png"},37227:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/adding_chart_to_config-0a40556bd41c8cd70abdf292e4f2ef52.png"},3778:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/arch-ce0063d24e16fa83a3178894efbfc114.png"},97758:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/automations_example-ce1734e24dd5d12c39533e911ab76c46.png"},19505:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/background_job_dodging_timing-a0b9f9066fcfd7d7d990ba25ed36a25f.png"},74535:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/card_with_example-94398f0ba8b44158bf500784ed96bfc4.png"},14637:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/custom_chart-483a2cbf50e927eda0208ebab3521cae.png"},13079:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/dropdown_automations-c18aa39556f74acbf8b92088b6e36348.png"},93836:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/dropdown_automations_with_example-6faf53d348f7dc3b5d7be98a79263c98.png"},88884:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/pinout-338966729397ebcb23625dec034e7087.png"},34015:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/python-package-new-config-fc1c3fe6948cde33a3e00db59cf98588.png"},64506:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/python-package-plugins-b119d590d45ad781923cd0f333bdfc96.png"},86890:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/python-package-pull-or-issue-050b26469751ff2da3986a6c75cbfb58.png"},80242:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/settings_with_example-e8cb50818e918606931a292e2b3eef97.png"},45048:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/aa-experiment-35ee8a728a38328b847cf0e32d9caf57.png"},47259:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/aa-experiment2-99b6ae3d00162374f0da6e39c4a12eec.png"},60875:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/aa-test-results-31fe1c141bc2cde192b1695ca7571d92.png"},61502:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/algae_exp-c73b5943ec38e5a1ad7ab17a5def40b4.jpg"},375:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/blank-ad589bf6024a303c9ef5ceda12f4b9ff.png"},56056:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/calibrate-48e7d9da8183c197751bcae71e2c9524.png"},90152:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/ethanol_gr-dd5fd975ee49bc90ddd64ce7407b4472.png"},63916:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/media_exp-b7042fd233cc7a87f01844a4d4a4de05.jpg"},13140:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/nod_algae_intensity-4caf67d40df20b9e784f795e11ee8f03.png"},1325:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/one_vial_ypd-01dc1534b2ff64980a3b31292bfa9e63.jpg"},10370:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/osmosis-97b410162df9c64075b6f14079b3d4b9.png"},55176:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/salt_OD-915b90d3a2fc84e8046998a5a9869f9f.png"},61496:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/salt_gr_depletion-43e1ca02af2daf28631b526e7fb8128c.png"},18968:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/salt_growth_rate-fd74195afbbd9196bc65e7d4ae3009a4.png"},99637:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/salt_materials-31133e7671b00ff3407421b7b84ccf49.jpg"},6912:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/salt_normalized_OD-724b25380eaa98ed5fe1a547920aef5e.png"},28547:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/manage_all_pioreactors-4064274e3c6c2be2e47e5c39b87c6378.png"},44277:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/start_automation-9edac9c0dea269a76cbb97c05f1d3154.png"},98058:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/tea2-exp-results-b3d50dfd67885d391ae7d3f095da213f.png"},55870:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/temp-d443af5bd0d621a31b189521912750d0.png"},36872:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/temp_growth_rate-c2d40db9e5fee5990109b8f062a067bc.png"},4605:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/temp_normal_od-39c35097a2c41ba99d16503412fdd8e8.png"},5281:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/temp_od-8989094249a48d2d6cbd35a6f8ed219e.png"},95218:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/temperature_OD-dc004d8eef20f5bc4f0407ce8bf21b08.png"},64058:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/temperature_growth_rate-a91dae40f12b2598e5f82e54c41dfc39.png"},73832:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/temperature_normal_OD-996676eb867efa987df181abd89f133d.png"},23331:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/temperature_temp-43f99ef8357bdf6f076b89db100d103d.png"},50469:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/three_pioreactors-a9143dda45abf0b4aeb6cd07ba460bd3.jpg"},58564:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/PID_turbidostat-2495f384f625055d7f51ac3664412048.png"},77642:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/adjusting_tubes-1f6c27b92e3c945f12305812d8125915.png"},59221:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/dosing_automation-e5d40e234c87f5554b87a58c4883f451.png"},96089:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/dosing_settings-9aa691a4f491e6d575c90d33e391517c.png"},93099:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/general_automations-f3f8f3e25b9fddd0ab8267e5c9409372.png"},50372:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/luer_attach-68657ac095adf9cd2d75d896baaaaa09.png"},58001:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/media_flow-305add231579def2fe1a774345a9e7cf.png"},17407:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/new data-c12ac09ef801401783f4cf6eef105d97.png"},93241:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/overview_settings-f16a21c5a034e163ed5b3b372b227d79.png"},76622:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/pump_to_pwm-a84f0e9a88e605298c921cb97473c8ef.png"},44968:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/run_pump_calc-0c792f52a09be14ee4b6e298f13e7b2b.png"},82836:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/salt_turbidostat-1ec379faef1b097adf9ab11c87054321.png"},1792:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/salt_turbidostat_test-31059d95c56f3e6b0bc32404ceb82c30.png"},15413:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/salt_vs_wt_gr-2c9af1ef929e3d86168961cc8e134786.png"},76867:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/sink_and_source-8ae2495bb8ae36ea1854b5c4018ea12b.png"},55826:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/ssh_into_unit-390aa668004f7abda7f9171d58391a51.png"},26789:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/turbido_mats_1-d7d501e1da29ce0a049a7c68bccd8dec.jpg"},73735:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/turbido_mats_2-e82f620f83645d5dbe2243c502ead5f7.jpg"},93397:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/turbidostat_gr_results-28bd9e3f7f3d9bf01fec0ee7e3b4cd53.png"},27333:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/turbidostat_results-dc0171f7b44f0cbe99fc7d49fb5851d3.png"},26566:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/turbidostat_settings-2097d0520c8fd562b599e99561eb7df7.png"},21822:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/two_pio_plus_vials-b3818c4810f006921d74598265ffba4f.jpg"},83831:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/yeast_growth_vs_temp-325b703f12b41cd8faff5bda79b2f4d4.png"},79128:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/ypd-conc-exp-12e3151171c1ea55cd91fc35a2e53944.png"},16175:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/ypd_vials-6e117e7a7882d12f0a1127fbe8c40f4d.jpg"},85573:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/colour-Docs-logo-cea939b0dbaa64b764d351a1b1cd1158.png"},53144:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/favicon-530f4c75f471bac00bd52487650e7fdf.ico"},45517:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAApCAYAAABZa1t7AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAUGVYSWZNTQAqAAAACAACARIAAwAAAAEAAQAAh2kABAAAAAEAAAAmAAAAAAADoAEAAwAAAAEAAQAAoAIABAAAAAEAAAAmoAMABAAAAAEAAAApAAAAABR/mZQAAAIwaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA1LjQuMCI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyI+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDxleGlmOkNvbG9yU3BhY2U+MTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+Mzg8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+NTg8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4K51q2awAAA4hJREFUWAntV0+ITlEUf+/OIJoMJVEGEUZJ0lDC2FiomZQySZGykFGEnWw+s5AdRUIpsiAsxCeWGmTow0KYGQtZMf5G47951+/3mvN1vbn3vfvNPLvv1G/OOb9z7r1n7rvvnu8FQVWqO1DdgeoOeO1AjVfWyJLGY3gI/KlkGg7wkZVI2ulI7Ae/1Ygtg70BWAM0AOMAyiegB7gCXAReAk6JCzte6mzROirg/2oMdNAdhqqwo6n5ujFqE+xzhm+a7+BMBkYDR4B2IEt+I+EocAD4YktWg0UVEWxCUXXUKLJI3jbAwvERTQduAz5FcYpRwF7gAcCxQ0TFOzWEDgIXb0mtB/cQWGqJZVHzkHAXmJRMVPHjS7L0+Vj9hGdoyMR+Q+OsafjbkcxXPFNJMvZdvDXZSkZW1k5uA73ADCkedJMQ28VL3KHfg98OcBG+DLOANuAJkCa8tg6bCYpvH4poBVnC4+OrX6KfeCvNMS67C4GFwEngKTAA8Eq4DCwBTgNpshrB5WkJthivC52Cn4jNsQ00OO5gL5A2T0HylRgj1Kcw/kXGHL8Q35eRw4s8lrwK4x3mI3cyksp3Wl6FPc9YUMJ9MD6KY9Hlayevwn5YFnFRPI8uGSOBWhq9bVtaIq0LOtCNYRB24w4pzL101uyVku/S8xHIOmMcyy4xlYZDPgivWNRAFBW11nGvpKZPXpI89GKPHKZk5b2VeRR3ShxTu3gzx7B3wS6fD4NPmh1JIuGXxFd8fOKY2sWbOYY9EfYxgHeVS3YjsMIVHORvSVzxTIljahdv5iRs/ji8B/BXBluMyGwYF4B/Wo4EDf0G9jXxa3nQB7QuCiGavNgVaJ6h+8B3oAeYCUwAfGQ/kvolUfHtq1GqNQzDuFdS06/wrZT5RI+FsQjwLeoxcs8AFUtWr0zrfz6x5mRFeV2w7JV/kpN7+PzN1g50JnPzKuwmJt4MlM9IciGL3wduPXDCEvOmsh7lusGZZkCfB74Crkf4CrGDAL83nRK3JGe08gAX3QjwO2AV0ABMAfiWvgaeAY+ATMm7MFnwG4wb4gxHx4V9Lq5tCaIQTTxAE8fHidKF+tarlTTx4aydOkaxKB0FRbSgJhyLOmr6cbGpQ/9vUHGnrEu4eGty/iSauP3D1sXnX4J9RjRx+wevi7dPkz+reNCt07p4a3L+JDYmCDzeSt5Je1KWP4RYV0q84tBfhv4Q4mFbcV8AAAAASUVORK5CYII="},6753:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/white-Docs-logo-68f198a9f68da5fdd79477e9df76857c.png"},71226:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/absorption_vs_od-20ecb493cc4c563d11b182bccc2fcbbc.png"},20290:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/00_teh_parts-5902741290dddd2dfc6b078c24016ad7.jpeg"},73270:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/01_teh_unplug_from_hats-7d50c55e7079d08ad8d5783a05d75379.jpeg"},6829:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/02_teh_unscrew_top-7f07484975f8dc1a6088ca13fd84b07c.jpeg"},96124:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/03_teh_remove_top-1506583ca33bf8917b9bfb422e64e0a2.jpeg"},20554:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/04_teh_place_hat_1-3603cdd63a58fc45b363914e744a0661.jpeg"},81981:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/05_teh_place_hat_2-3311e75a82c016a439cc69ba37092e21.jpeg"},91378:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/06_teh_place_standoffs_1-830dcf6dca2389a4d81aec42164aaf2e.jpeg"},93576:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/07_teh_place_standoffs_2-6c6029a3b43b2e7a6c1f1afe6794e984.jpeg"},43297:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/08_teh_place_top_back-bf86888fc8919f4b123b334ec607fd68.jpeg"},26393:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/09_teh_screw_top_on-3fd538b2357c92edb94705cc22b40973.jpeg"},55872:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/10_teh_replug_peripherals-44ad3fbb6e9f18e4c8d1d7106b02ef1f.jpeg"},47526:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/11_teh_insert_pt1000-6a3baa720c3474b234dff657cecb7742.jpeg"},47124:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/12_teh_screw_in_thermowell-5a386e3a0213a7bc43681f303105a4b9.jpeg"},53971:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/13_teh_insert_pt1000_vial-72cd41f662771315c7afbda8ae532ef2.jpeg"},68909:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/14_teh_finished-3a3172a61ce65acf5569d9a8ca040a19.jpeg"},54380:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/config-14baa7cfa4b4e642f3f415436dee7b28.png"},20296:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/install_from_ui-8fa09d632dc8b11055a4988f1e812acd.png"},6856:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/add_media-34351a1c3b447de483437653fb94a9f5.png"},36231:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/add_media_ui-b6f794f53ea78d05c499306f53c29dc3.png"},77284:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/add_new_od600-6534eb4169b38ff195bc7a7210e1e5eb.png"},35699:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/add_new_pioreactor-38709bbd1bb23002d92e8c4dd50515ed.png"},41577:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/add_new_pioreactor_modal-d341626eb43818acfcaa7acba85427c0.png"},81145:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/attach3-ea91d0cf836c5d2ce84f25ee2db63dc2.JPG"},65500:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/attached4-d7eef623a38fde274f97d231a6d8abfa.JPG"},82897:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/channelD5-f4d5c73774f4177d8657a16bdaf8f4ec.JPG"},36982:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/close7-fdf0f94eb51dbf22b76b23eb3c625aaa.JPG"},11284:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/led_hardware1-aa4a265019fb80b6d45d44a5dc516be4.jpg"},90865:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/led_hardware2-a21ac0d8258240de4231f679bf691e7f.jpg"},38869:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/plugin6-4234a0015143dd60fbc66a07f928ccaa.JPG"},3614:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/all-four-graphs-1ec03948149e0a8def0275e8bef1c583.png"},47053:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/assign_labels_bulk-3106b3e13f5623d1cc22cda21b70cc9c.png"},79601:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/automations-3c9d54aa78ca77051fb732bca71ac645.png"},87289:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/aux_position-fa3c38b93578179d328523d88359ea74.png"},77363:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/badge-297da4f4c7c001ed77aaaef0c2e3a73b.png"},17717:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/blue-tag-62c90041b3d68fe64eab220df552a854.png"},48587:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/bubble-noise-24ab6a62a7fbb4d015381f3c8b13d8e8.png"},24925:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/calibrate-1f5b2368c227db631fea83273b1098b1.png"},27801:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/calibrate_stirring-6109be316ccc19d7d0821f25e15ee76a.png"},72827:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/change_angle-f172c1a720d3305f7b81b7075005132b.png"},52722:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/change_leds-db68373451c92659daca07922e56db50.png"},71457:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/choose-os-abf2668d559dcc309544c4d86ad7a35a.png"},43557:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/choose-storage-f861f9f329493b78b6bfa221f4990f48.png"},34766:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/choose_config_version-4fd56323f33f45698ff2062dac76828c.png"},66772:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/choose_config_version2-4533d1e783827d808495b76a29082e51.png"},58335:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/click_update-c38a5940b2c9dfd609fb3882650ed33a.png"},88419:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/click_update_develop-054448e07048662b23ef011b25977e80.png"},90665:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/configini-9152ccc3666041a79b89c3d8ba18d4c8.png"},81232:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/connect_via_filezilla-4baea6ad6d5fca5865c7cf549db6029c.png"},66811:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/create_new_experiment_page-ef0b6ba1141f0900c9900cce1c68bc14.png"},45307:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/custom_automation_plugin-8bfc78d2e5bc9068d650383c03b33b84.png"},45217:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/custom_automation_plugin2-ed68a401f7dfe1dfa68040223145e21f.png"},36183:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/custom_job_plugin-f18e5be715690d46a13604124730611a.png"},88141:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/custom_job_plugin2-f7f8404759e338d9338021e2caebf6a6.png"},77982:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/custom_job_plugin3-7723824b84b2ddaa66231e53a53d17b1.png"},84817:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/cycle_media-5478e99081c62bbec80b9e536aed2f8b.png"},65553:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/dosing-settings-ccc07b36fe19e3f86996542ad7f31aa2.png"},57185:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/dosing_in_ui-a94391b5fd9d3ba9a1418ac30c4ef9d0.png"},1849:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/pump1-551c7cf2b00a891c5b79b4dd37dc77c5.JPG"},19582:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/pump10-026ad26e2b2c7e41f094ee5d6fa75a84.JPG"},29587:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/pump2-f54fa321bceadd6cc5e18acb113d7b26.JPG"},76210:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/pump3-089a87d6b99a9ffca5f118ef96316078.JPG"},76340:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/pump4-83d830dc1fd8836570f112cd2cf5f2dd.JPG"},34742:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/pump5-a4c7137563a9a86fdf50f270e13b8715.JPG"},73834:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/pump6-e376f4b6391c5be0c73f2de9bcadb3d6.JPG"},10603:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/pump7-90e8832c4027810e76085b462a4c73a7.JPG"},18470:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/pump8-4c52d2cb9f1b93e921325be1720d0c52.JPG"},74136:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/pump9-4ca0f2cc6f4b7a1b97e3a2e7f5aa603d.JPG"},3880:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/dosing_ui-0b97aaa62d9b2a8bd977f18e2470eff9.png"},37179:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/edit_config_page-eab605765714cc6c72a981f3edf103c8.png"},22600:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/example-event-logs-8c981a118f48caaff28d35196b2f2e04.png"},96901:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/export_data_choose_dataset-8ee2d0293609f605222bc40345cea6da.png"},31713:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/export_data_default-825348a5e2e31f30d9bdc9d45dd27454.png"},48804:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/export_data_downloading-30f02a0c514d6bf0b10771b5f9a7c3e7.png"},17438:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/export_data_selections-3d7cb5fd3abeac147483e6b6d27a0db4.png"},43596:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/export_data_sets-fdbb2465b5fb8036c0e017013f97d05f.png"},57331:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/find_config_to_edit-8ebe7a3a7597211a558c99be5d86002d.png"},13811:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/floaty-in-vial-6b12caa15ff11ea8f80e82f0be7e5644.png"},17258:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/forgot-stirbar-03ee83750821a456753efa47678ff6e0.png"},27930:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/generating_graph-37310b2416b6c7f06d7f3df87541d408.png"},20848:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/gr_interpretation-20f48c941ea1924b81df413c170f76a8.png"},27346:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/bot_faceplate_screwed-1ae238379c07249577b43c6ac7c44b4c.jpg"},38682:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/bottom_faceplate-8f481e08fbcf1fb370e3508d3a816023.jpg"},12744:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/bulb_in_pocket-2acf358362c52ba7d5bfc5517fa8c917.jpg"},1663:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/cable_channels-95e5eed62ecafec7a87a454a94f32994.jpg"},86674:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/cable_connector_closed-75857baa3129e5338325361cb5c5164c.jpg"},42401:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/cable_connector_open-9d69db318c0ac7b1fc7d76377683d7bb.jpg"},98849:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/cable_orientation-588da015fd91aa62385dcbef783e39a2.jpg"},24715:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/check_square_nuts-8599337077d03015e3db1fc4d8355278.jpg"},31088:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/fan_on_faceplate-6e7fbe32631ff62c774cee7e683b567b.jpg"},68700:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/finished-9a26fb89246cb52b1d735013b45cd913.jpg"},98973:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/finished_pio-a41f5bdf6ceb2d782d84265c7b6bc6b8.jpg"},74217:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/gpio_check_A-fb8060c1a7ed66a4f68e91248f311409.jpg"},16868:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/gpio_check_B-ce0aaa95b6d76c8781828a11b1416cc4.jpg"},14083:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/gpio_pushed-7cc8606a65f3a6ec4eae12a18e5e6f76.jpg"},63:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/gpio_unpushed-a8ba1e096611eba805663628082a03f5.jpg"},19066:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/hat_pieces-7840c2e8ec6c36add1752340e5506aca.jpg"},73813:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/heating_bottom_screws-357d00cd27aa546036c0442502e6e5c9.jpg"},49487:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/heating_connection-f39571d0c75bf67baf1f643b6b00c7e3.jpg"},61913:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/heating_parts-c442edc62bce4898e0cbd9bf5e99d9fe.jpg"},51007:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/heating_topview-bff2e988a806bee2722bb106657645b8.jpg"},60482:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/help-4d95de93b3cbd146d3b90b6cd01628a3.png"},22096:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/hex_one_side-bdbb4304f83e3298fbff3e205ff3861b.jpg"},51249:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/insert_heating_cable-dbacfb299ec50edc4dfc496dfeca9811.jpg"},47076:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/insert_square_nuts-2485930303bf11b466b19e40ebf01bb9.jpg"},85915:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/inserted_heating_cable-004599086c6e416ce0a6b9878b9795d7.jpg"},74442:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/ir_led_no_cap-9d418e22819839f8900a364e97ef92c6.jpg"},71614:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/ir_led_with_cap-b8adf5d75ed108d0eac49f30a776bcd4.jpg"},56184:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/ir_ref-f22d304844275985abb9310b844dba47.jpg"},88838:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/label_reference-45d84570b89387612a5ded353ae7d3b5.jpg"},35438:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/nav_antistatic_polyzip_bags-d3d75ab9868cce5d8b912559619b8d33.png"},17275:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/pocket_caps-56440cdcae97111ddba2267222cccbce.jpg"},6957:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/pockets_with_caps-e2aa18d97e352da1f612c841681dd222.jpg"},99532:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/remove_blue-6dcbe14e9d9d23d5015f2276c7f958ea.jpg"},96738:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/remove_blue_2-6f3bc1c7f8daa91161254c7cc55db7f0.jpg"},6180:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/rpi_hat_parts-1d81713893614c34584ce007986c5639.jpg"},4996:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/rpi_no_standoffs-17ca3c2d4885302777118e3643f6fcbf.jpg"},74933:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/rpi_types-a050b235303df1292c41f970736f8090.jpg"},82300:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/rpi_with_standoffs-dff03a148cf83acf2c479864323cf945.jpg"},24346:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/rpi_zero-363c852d9dd91db58a07052933059e43.jpg"},75986:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/screw_top_bottom-84cbf5d0417ae1cb243daee34b71a7c7.jpg"},80061:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/screw_top_bottom_gpio-4e714daeb650a475c7582f42a1aef69d.jpg"},92939:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/screw_vial_holder_faceplate-fceeba6475841a3befed0cb3c7169199.jpg"},88471:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/screwdriver-d0fb9cfae69257e1df5d07450effbd1c.jpg"},67304:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/single_pocket_with_cap-9f4a5b1dc489028354889d8b1e5343e5.jpg"},68762:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/square_nuts-48029c17ab44295d88d621b59ec986fb.jpg"},69845:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/standoff_on_hat-c19fb900cc092a953914debf87287082.jpg"},79488:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/sticky_side-782ca6f4ae73180c6b742484f1e1cb08.jpg"},7752:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/stirring_connection-f99273c905b2769ef79fed190c321769.jpg"},25775:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/stirring_parts-19a7f4b3bb808b033a5806fa28d384e5.jpg"},18371:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/three_bulbs-706d6299dc47770176081db933965623.jpg"},50383:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/top_faceplate_screws-eaf93355868c5657306396c75223b5bb.jpg"},38126:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/top_faceplate_screws_2-d806e5573e06c4f83ef8960a8f2a63be.jpg"},66067:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/vial_holder_alignment-3bd667772b201511b065a8fe1bde723e.jpg"},32781:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/vial_holder_on_fan-9b295b848d30fb1c535806348cc9e388.jpg"},7837:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/window_placement-177e6148985574faccf9260ad7d60181.jpg"},87124:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/window_screwing-63f7c2e514212ebec85c2c21883df46e.jpg"},24806:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/window_screws-7d930fe94a1672ac4e789ea46e6ec02c.jpg"},13458:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/lap_with_internet-ac1e9e680aaeaa368935366c54db0007.png"},29820:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/leader_as_worker_cluster-0545170277e1f3b1377ad5e0408c417d.png"},59718:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/leader_cluster-f913ccaa86e3a4394ddcb87a5f17b18c.png"},96350:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/led-settings-ab2142762cf6ea3133d51e5407f4950f.png"},4633:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/local_access_point-9455ab0ce2fa6461e80fc732e06e4a0d.png"},67581:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/main-screenshot-66f7b9be8f4becb029e699e1601f4032.png"},17720:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/manage_ui-7d96f0a854ab6ca4cc52a4c5bf68b51c.png"},28699:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/metadata-94521c4a87546515dc80e360fd958b2b.png"},91675:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/monitor_on_off-d10c01bf53580928f4099a9aa383fa8d.png"},54455:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/ngrok_url-f84eeb4bec1ebd1dd6d689b2d6232503.png"},72905:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/nod_interpretation-7813a476468c24072e93173ce731ed35.png"},91846:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/od_cal_45_deg-c45594c4a73969c06753bbd493274858.png"},77571:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/od_cal_45_deg_with_curve-59e5f9c792b50408351e8d93be35dc75.png"},7149:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/pinch_valves_in_pioreactor-f5e161093bb25cddc897b2ecdefc8df1.png"},21231:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/pio-unit-data-example-988f3604b005f0d38a1fbc14c0aeaa71.png"},26200:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/pio_blink-2abec7ff9fc89893b5edc4248fd3330d.gif"},34025:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/pioreactor_ap-3a41eaffc859b8cf6e7b9b3727ff03cc.png"},65867:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/pioreactor_page_activities-8e25cd000ba481f80acfdcb5a3530be4.png"},99452:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/pioreactor_page_manage-45d4297c86f8afb6fed9c6d7389ff72c.png"},89734:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/pioreactors_page_self_test-4e30b063187118d7aeba696ee2573de0.png"},94161:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/place-micro-sd-card-77d8eb409d37006ac7742f9ec021307a.JPG"},37287:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/plugin_page-2b8971737b3f594f623dce2012c0a13a.png"},11415:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/plugin_page_button_highlight-89fd844a6b09f352b97f4795a412d16a.png"},43648:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/pwm_config-ac34a1a7ecfe2f7f1d3dec272b6d0295.png"},11182:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/reboot-931868424abc626b17ee0001bcdf570a.png"},26063:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/reduce_to_10-c940db94daaaf3764036602c1acf8e36.png"},3175:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/rpi-click-settings-3d855eff8d3fa206b5dd7f5a271a898e.png"},50431:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/rpi-imager-settings-worker-f28115370065da445cb49ea805339204.png"},44479:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/rpi-imager-settings-cd3a9c0038de547f5f4e44604d15cd22.png"},17387:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/save_config-bbc8686e8ba6559fd28c55579eb0e80c.png"},62623:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/select_new_image-f8a21b2e99d8d6a49b71912320af160c.png"},64196:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/select_version-5244029e271f5c890bdd0b74bc6ffcfe.png"},95515:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/self_test_pre-deb40b86a47cef652bf26681acaad41f.png"},60055:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/self_test_results-1d0b585ef408fdb300664775b14c34b7.png"},33256:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/self_test_running-23c15b459ae252d1731eb66ad06b33d4.png"},57259:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/settings-a36c45ef92d8a8905c81c776d694d8b5.png"},53376:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/single_pioreactor_cluster-aca061f3f50df0dfe1e5e41c59c3e864.png"},9938:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/start_new_experiment-7e7c0c58b7e737e19fc2e5fbf4d55fb1.png"},61192:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/start_relay-d4a3d41f278b600344c8819419ab6125.png"},67609:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/stemma_qt-3d5f9560ca2fb4bf00f23778e0057eac.png"},92716:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/successuful_upload-edaf37800b289de114bbda1152911f87.png"},86831:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/temp-vs-stirring-separate-csv-51dcae12d1ba9b3733f73610aeb856be.png"},61160:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/upload_file_via_filezilla-2bbf4959e5ddb942db1574e1e93410f1.png"},88177:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/use_custom_image-33932c04d19243c39bb50742de143726.png"},73751:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/version_installed_vs_latest-e5eeca231d56d0ccfcc810051fcbda4d.png"},7181:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/warming-room-2a055ab0234a4273bee3017b5b2d339a.png"},98563:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iODVweCIgaGVpZ2h0PSI4NXB4IiB2aWV3Qm94PSIwIDAgODUgODUiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8dGl0bGU+YXV0b21hdGlvbjwvdGl0bGU+CiAgICA8ZyBpZD0iUGFnZS0xIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4KICAgICAgICA8ZyBpZD0iYXV0b21hdGlvbiIgZmlsbD0iY3VycmVudCI+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMC41ODYsNzQuNzE5IEMyNi43NjU3LDc4LjgzMjMgMzQuMDQ3LDgxLjAwMDIgNDEuNjMzLDgwLjg3MTMgQzQ4Ljk3MjgsODAuNzQyMzkgNTUuOTUzLDc4LjQ3MjkgNjEuODY3LDc0LjQwMjUgQzYyLjcxODU2LDczLjgxMjY2IDYzLjg4NjUsNzQuMDMxNDEgNjQuNDcyNSw3NC44ODI5NyBDNjUuMDYyMzQsNzUuNzM0NTMgNjQuODQ3NSw3Ni45MDI0NyA2My45OTIwMyw3Ny40OTIzNyBDNTcuNDc2NDMsODEuOTc2NzcgNDkuNzgxMDMsODQuNDc2NzcxIDQxLjY5OTAzLDg0LjYxNzM3MiBDMzMuMzQzNTMsODQuNzY1ODEyIDI1LjMxNjAzLDgyLjM3NTE3IDE4LjUwODAzLDc3Ljg0MDA3IEMxNy42NDQ3NSw3Ny4yNjk3NiAxNy40MTQyMyw3Ni4xMDU2NyAxNy45ODQ1OSw3NS4yNDIzNyBDMTguNTU4ODEsNzQuMzc5MDkgMTkuNzIyODksNzQuMTQ0NjcgMjAuNTg2MTksNzQuNzE4OTMgTDIwLjU4Niw3NC43MTkgWiBNNTAuMTMzLDQuNDA3MDEgQzY4LjE3Miw4LjU1OTMxIDgxLjI4MSwyNC41MjgwMSA4MS42MSw0My4yOTQwMSBDODEuNzE5MzgsNDkuNTc5MjEgODAuMzk1Miw1NS42OTIwMSA3Ny43NzQxLDYxLjI2MzAxIEM3Ny4zMzI2OSw2Mi4yMDA1MSA3Ni4yMTU1LDYyLjYwMjgxIDc1LjI4MTksNjIuMTY1MzUgQzc0LjM0NDQsNjEuNzIzOTQgNzMuOTQyMSw2MC42MDY3NSA3NC4zNzk1Niw1OS42NjkyNSBDNzYuNzU4NDYsNTQuNjE0NTUgNzcuOTYxNTYsNDkuMDY3MjUgNzcuODYwMDYsNDMuMzU3MjUgQzc3LjU2MzE4LDI2LjMyNjI1IDY1LjY2MTA2LDExLjgzNDI1IDQ5LjI5NDA2LDguMDY0MjUgQzQ4LjI4NjI2LDcuODMzNzggNDcuNjUzNDYsNi44MjU5NSA0Ny44ODc4Niw1LjgxODE1IEM0OC4xMTgzMyw0LjgwNjQ1IDQ5LjEyNjE2LDQuMTc3NTUgNTAuMTMzOTYsNC40MDc5NSBMNTAuMTMzLDQuNDA3MDEgWiBNMzEuODI0LDYuMjkzNzEgQzMyLjExNjk3LDcuMjg5OCAzMS41NDY2Niw4LjMyODkxIDMwLjU1NDUsOC42MjE4MSBDMTQuNzY5NSwxMy4yNzAyMSAzLjgyNzUsMjcuOTQ5OCA0LjEyMDUsNDQuNjQ0OCBDNC4yMTAzNSw0OS43NjU5IDUuMzM5Myw1NC43MTg4IDcuNDE3NCw1OS4yNzM4IEM3Ljg0NzA5LDYwLjIxOTExIDcuNDI5MTIsNjEuMzI4NSA2LjQ4NzcxLDYxLjc1ODIgQzUuNTQ2Myw2Mi4xODc4OSA0LjQzMzAxLDYxLjc3MzgzIDQuMDAzMzEsNjAuODI4NTEgQzEuNzE0MjEsNTUuODA5MDEgMC40NjgxMTEsNTAuMzQ4NTEgMC4zNzA1MTEsNDQuNzExNTEgQzAuMDUwMjAxLDI2LjMxNjUxIDEyLjEwMDUxLDEwLjE0NTUxIDI5LjQ5NTUxLDUuMDIzNTEgQzMwLjQ4NzcsNC43MzA1NCAzMS41MzA3MSw1LjMwMDg1IDMxLjgyMzYxLDYuMjkzMDEgTDMxLjgyNCw2LjI5MzcxIFoiIGlkPSJGaWxsLTEiPjwvcGF0aD4KICAgICAgICAgICAgPHBhdGggZD0iTTQwLjM3NSwwLjI1IEMzNy4yNjk1LDAuMjUgMzQuNzUsMi43Njk1IDM0Ljc1LDUuODc1IEMzNC43NSw4Ljk4MDUgMzcuMjY5NSwxMS41IDQwLjM3NSwxMS41IEM0My40ODA1LDExLjUgNDYsOC45ODA1IDQ2LDUuODc1IEM0NiwyLjc2OTUgNDMuNDgwNSwwLjI1IDQwLjM3NSwwLjI1IFogTTQwLjM3NSw0IEM0MS40MTAyLDQgNDIuMjUsNC44Mzk4NCA0Mi4yNSw1Ljg3NSBDNDIuMjUsNi45MTAxNiA0MS40MTAxNiw3Ljc1IDQwLjM3NSw3Ljc1IEMzOS4zMzk4NCw3Ljc1IDM4LjUsNi45MTAxNiAzOC41LDUuODc1IEMzOC41LDQuODM5ODQgMzkuMzM5ODQsNCA0MC4zNzUsNCBaIiBpZD0iRmlsbC0yIj48L3BhdGg+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMS42MjUsNjQgQzguNTE5NSw2NCA2LDY2LjUxOTUgNiw2OS42MjUgQzYsNzIuNzMwNSA4LjUxOTUsNzUuMjUgMTEuNjI1LDc1LjI1IEMxNC43MzA1LDc1LjI1IDE3LjI1LDcyLjczMDUgMTcuMjUsNjkuNjI1IEMxNy4yNSw2Ni41MTk1IDE0LjczMDUsNjQgMTEuNjI1LDY0IFogTTExLjYyNSw2Ny43NSBDMTIuNjYwMiw2Ny43NSAxMy41LDY4LjU4OTg0IDEzLjUsNjkuNjI1IEMxMy41LDcwLjY2MDE2IDEyLjY2MDE2LDcxLjUgMTEuNjI1LDcxLjUgQzEwLjU4OTg0LDcxLjUgOS43NSw3MC42NjAxNiA5Ljc1LDY5LjYyNSBDOS43NSw2OC41ODk4NCAxMC41ODk4NCw2Ny43NSAxMS42MjUsNjcuNzUgWiIgaWQ9IkZpbGwtMyI+PC9wYXRoPgogICAgICAgICAgICA8cGF0aCBkPSJNNzAuMzc1LDY0IEM2Ny4yNjk1LDY0IDY0Ljc1LDY2LjUxOTUgNjQuNzUsNjkuNjI1IEM2NC43NSw3Mi43MzA1IDY3LjI2OTUsNzUuMjUgNzAuMzc1LDc1LjI1IEM3My40ODA1LDc1LjI1IDc2LDcyLjczMDUgNzYsNjkuNjI1IEM3Niw2Ni41MTk1IDczLjQ4MDUsNjQgNzAuMzc1LDY0IFogTTcwLjM3NSw2Ny43NSBDNzEuNDEwMiw2Ny43NSA3Mi4yNSw2OC41ODk4NCA3Mi4yNSw2OS42MjUgQzcyLjI1LDcwLjY2MDE2IDcxLjQxMDE2LDcxLjUgNzAuMzc1LDcxLjUgQzY5LjMzOTg0LDcxLjUgNjguNSw3MC42NjAxNiA2OC41LDY5LjYyNSBDNjguNSw2OC41ODk4NCA2OS4zMzk4NCw2Ny43NSA3MC4zNzUsNjcuNzUgWiIgaWQ9IkZpbGwtNCI+PC9wYXRoPgogICAgICAgICAgICA8cGF0aCBkPSJNNzIuMjA3LDUyLjYyMSBDNzMuMTE3MTYsNTIuMjYxNjIgNzQuMTMyOCw1Mi42NjAwNiA3NC41NjY0LDUzLjUxMTYyIEw3NC42NDA2Miw1My42Nzk1OSBMNzYuNzM0NDIsNTkuMDExNTkgTDgyLjA2NjQyLDU2LjkxMzg5IEM4Mi45NzI2Nyw1Ni41NTg0MiA4My45OTIyMiw1Ni45NTY4NiA4NC40MjE5Miw1Ny44MDg0MiBMODQuNDk2MTQsNTcuOTcyNDggQzg0Ljg1NTUyLDU4Ljg3ODczIDg0LjQ1NzA4LDU5Ljg5ODI4IDgzLjYwNTUyLDYwLjMyNzk4IEw4My40Mzc1NSw2MC40MDIyIEw3Ny41MjczNSw2Mi43MjY0IEM3NS45ODQzNSw2My4zMzU3OCA3NC4yNTAwNSw2Mi42Mjg3NCA3My41NTQ2NSw2MS4xNTIyIEw3My40NzI2Miw2MC45NjQ3IEw3MS4xNDg0Miw1NS4wNTA2IEM3MC43Njk1MSw1NC4wODU3NiA3MS4yNDYwNyw1Mi45OTk4IDcyLjIwNzAyLDUyLjYyMDkgTDcyLjIwNyw1Mi42MjEgWiIgaWQ9IkZpbGwtNSI+PC9wYXRoPgogICAgICAgICAgICA8cGF0aCBkPSJNMjguMjM0LDE0LjA4MiBDMjcuMzA4MjIsMTMuNzY5NSAyNi43ODg3LDEyLjgxMjUgMjcuMDAzNSwxMS44Nzg5IEwyNy4wNTQyOCwxMS43MDcwMiBMMjguODc0NTgsNi4yNzM0MiBMMjMuNDQwOTgsNC40NTMxMiBDMjIuNTE5MSw0LjE0NDUzIDIxLjk5NTY4LDMuMTgzNjIgMjIuMjEwNDgsMi4yNTM5MiBMMjIuMjYxMjYsMi4wODIwNCBDMjIuNTY5ODUsMS4xNTYyNiAyMy41MzA3NiwwLjYzMjg0IDI0LjQ2MDQ2LDAuODQ3NjQgTDI0LjYzNjI0LDAuODk4NDIgTDMwLjY1OTY0LDIuOTE3OTIgQzMyLjIyOTk0LDMuNDQ1MjYgMzMuMTA0OTQsNS4wOTc2MiAzMi42ODY5NCw2LjY3OTYyIEwzMi42MjgzNSw2Ljg3NDkzIEwzMC42MDg4NSwxMi44OTgzMyBDMzAuMjc2ODIsMTMuODc4OCAyOS4yMTQzNSwxNC40MTAwMyAyOC4yMzM4NSwxNC4wODE5MyBMMjguMjM0LDE0LjA4MiBaIiBpZD0iRmlsbC02Ij48L3BhdGg+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMC44OTUsODMuOTUzIEMyMS44NDAzMSw4My43MTA4MSAyMi40MjYyLDgyLjc4ODkgMjIuMjc3OCw4MS44NDc1IEwyMi4yMzg3NCw4MS42Njc4MSBMMjAuODAxMjQsNzYuMTI0ODEgTDI2LjM0ODE0LDc0LjY4NzMxIEMyNy4yODk1NSw3NC40NDEyMiAyNy44NzkzNCw3My41MTkzMSAyNy43MjcwNCw3Mi41Nzc5MSBMMjcuNjkxODgsNzIuNDAyMTMgQzI3LjQ0NTc5LDcxLjQ1NjgyIDI2LjUyMzg4LDcwLjg2NjkzIDI1LjU4MjQ4LDcxLjAxOTMzIEwyNS40MDY3LDcxLjA1NDQ5IEwxOS4yNTQ0LDcyLjY1MjE5IEMxNy42NTI4LDczLjA2NjI1IDE2LjY2NDYsNzQuNjU2MDkgMTYuOTY5Miw3Ni4yNjE1OSBMMTcuMDE2MDgsNzYuNDYwODEgTDE4LjYwOTg4LDgyLjYwOTIxIEMxOC44NzE2LDgzLjYxMzExIDE5Ljg5MTA4LDg0LjIxNDcxIDIwLjg5NTA4LDgzLjk1MzAxIEwyMC44OTUsODMuOTUzIFoiIGlkPSJGaWxsLTciPjwvcGF0aD4KICAgICAgICAgICAgPHBhdGggZD0iTTQxLDM2LjE4OCBDMzYuNjU2MiwzNi4xODggMzMuMTI1LDM5LjY5MTkgMzMuMTI1LDQ0LjAwMDUgQzMzLjEyNSw0OC4zMDkxIDM2LjY2MDIsNTEuODEzIDQxLDUxLjgxMyBDNDUuMzM5OCw1MS44MTMgNDguODc1LDQ4LjMwOTEgNDguODc1LDQ0LjAwMDUgQzQ4Ljg3NSwzOS42OTE5IDQ1LjM0MzgsMzYuMTg4IDQxLDM2LjE4OCBaIE00MSw0Ny45MDcgQzM4LjgyODEsNDcuOTA3IDM3LjA2MjUsNDYuMTUzMSAzNy4wNjI1LDQ0LjAwMDggQzM3LjA2MjUsNDEuODQ4NSAzOC44MjgxLDQwLjA5NDYgNDEsNDAuMDk0NiBDNDMuMTcxOSw0MC4wOTQ2IDQ0LjkzNzUsNDEuODQ4NSA0NC45Mzc1LDQ0LjAwMDggQzQ0LjkzNzUsNDYuMTUzMSA0My4xNzE5LDQ3LjkwNyA0MSw0Ny45MDcgWiIgaWQ9IkZpbGwtOCI+PC9wYXRoPgogICAgICAgICAgICA8cGF0aCBkPSJNNjUuMjMsNDkuODI0IEw2MC4xMzIzLDQ1Ljk0OSBDNjAuMjcyOTMsNDQuNjA5MiA2MC4yNjUxMSw0My4zMDg0IDYwLjEzMjMsNDIuMDUwNiBMNjUuMjMsMzguMTc1NiBDNjYuMDE5MDYsMzcuNTc0MDQgNjYuMjMzOSwzNi40ODQyIDY1LjcyNjA5LDM1LjYzMjYgTDYwLjc4ODU5LDI3LjMzNTcgQzYwLjI5NjQsMjYuNTA3NTcgNTkuMjcyOTksMjYuMTU2IDU4LjM3NDQ5LDI2LjUxMTQ4IEw1Mi4zMjM2OSwyOC44NzQ3OCBDNTEuMjIyMDksMjguMDg5NjIgNTAuMDM4NDksMjcuNDI1NTggNDguNzkyNDksMjYuODg2NDggTDQ3Ljg4MjMzLDIwLjY3MTY4IEM0Ny43NDE3MSwxOS43MTA3NCA0Ni45MTM1OCwxOC45OTk3OCA0NS45MzcwMywxOC45OTk3OCBMMzYuMDYyMDMsMTguOTk5NzggQzM1LjA4NTQ3LDE4Ljk5OTc4IDM0LjI1NzMzLDE5LjcxMDcyIDM0LjExNjczLDIwLjY3MTY4IEwzMy4yMDY1NywyNi44ODY0OCBDMzEuOTYwNDcsMjcuNDI1NTQgMzAuNzc2ODcsMjguMDg5NTggMjkuNjc1MzcsMjguODc0NzggTDIzLjYyNDU3LDI2LjUxMTQ4IEMyMi43MjYxMywyNi4xNTYwMSAyMS43MDI2NywyNi41MDc1NyAyMS4yMTA0NywyNy4zMzU3IEwxNi4yNzI5NywzNS42MzI2IEMxNS43NjUxNiwzNi40ODQxNiAxNS45OCwzNy41NzQgMTYuNzY5MDYsMzguMTc1NiBMMjEuODY2NzYsNDIuMDUwNiBDMjEuNzI2MTMsNDMuMzkwNCAyMS43MzM5NSw0NC42OTEyIDIxLjg2Njc2LDQ1Ljk0OSBMMTYuNzY5MDYsNDkuODI0IEMxNS45OCw1MC40MjU1NiAxNS43NjUxNiw1MS41MTU0IDE2LjI3Mjk3LDUyLjM2NyBMMjEuMjEwNDcsNjAuNjYzOSBDMjEuNzAyNjYsNjEuNDkyMDMgMjIuNzI2MDcsNjEuODQzNiAyMy42MjQ1Nyw2MS40ODgxMiBMMjkuNjc1MzcsNTkuMTI0ODIgQzMwLjc3Njk3LDU5LjkwOTk4IDMxLjk2MDU3LDYwLjU3NDAyIDMzLjIwNjU3LDYxLjExMzEyIEwzNC4xMTY3Myw2Ny4zMjc5MiBDMzQuMjU3MzUsNjguMjg4ODYgMzUuMDg1NDgsNjguOTk5ODIgMzYuMDYyMDMsNjguOTk5ODIgTDQ1LjkzNzAzLDY4Ljk5OTgyIEM0Ni45MTM1OSw2OC45OTk4MiA0Ny43NDE3Myw2OC4yODg4OCA0Ny44ODIzMyw2Ny4zMjc5MiBMNDguNzkyNDksNjEuMTEzMTIgQzUwLjAzODU5LDYwLjU3NDA2IDUxLjIyMjE5LDU5LjkxMDAyIDUyLjMyMzY5LDU5LjEyNDgyIEw1OC4zNzQ0OSw2MS40ODgxMiBDNTkuMjcyOTMsNjEuODQzNTkgNjAuMjk2MzksNjEuNDkyMDMgNjAuNzg4NTksNjAuNjYzOSBMNjUuNzI2MDksNTIuMzY3IEM2Ni4yMzM5LDUxLjUxNTQ0IDY2LjAxOTA2LDUwLjQyNTYgNjUuMjMsNDkuODI0IFogTTU4LjI1MzQsNTcuMjQ1OSBMNTIuNzM3OCw1NS4wODk3IEM1Mi4wNzc2NCw1NC44MzE4OSA1MS4zMjc2LDU0Ljk0NTE3IDUwLjc3NjksNTUuMzkwNDggQzQ5LjQ0NDksNTYuNDYwNzggNDcuOTQ4OCw1Ny4zMDA2OCA0Ni4zMzU1LDU3Ljg4MjY4IEM0NS42NTE5MSw1OC4xMjQ4NyA0NS4xNjM2LDU4LjcyNjQzIDQ1LjA1ODIsNTkuNDM3MzggTDQ0LjIzMzk4LDY1LjA5MzU4IEwzNy43NjUxOCw2NS4wOTM1OCBMMzYuOTQwOTYsNTkuNDM3MzggQzM2LjgzNTQ5LDU4LjcyNjQ0IDM2LjM0NzIxLDU4LjEyNDg4IDM1LjY2MzY2LDU3Ljg4MjY4IEMzNC4wNTAzNiw1Ny4zMDA2NSAzMi41NTQyNiw1Ni40NjA3OCAzMS4yMjIyNiw1NS4zOTA0OCBDMzAuNjcxNDgsNTQuOTQ1MTcgMjkuOTIxNDYsNTQuODMxODkgMjkuMjYxMzYsNTUuMDg5NyBMMjMuNzQ1NzYsNTcuMjQ1OSBMMjAuNTUwNDYsNTEuODcwOSBMMjUuMTcxNTYsNDguMzU5MiBDMjUuNzUzNTksNDcuOTEzODkgMjYuMDM4NzUsNDcuMTkxMiAyNS45MTM3NSw0Ni40NzY0IEMyNS42MjQ2OSw0NC44MDg0IDI1LjYzNjQxLDQzLjEzNjYgMjUuOTEzNzUsNDEuNTIzMyBDMjYuMDM4NzUsNDAuODA4NDYgMjUuNzUzNTksNDAuMDgxOSAyNS4xNzE1NiwzOS42NDA1IEwyMC41NTA0NiwzNi4xMjg4IEwyMy43NDU3NiwzMC43NTM4IEwyOS4yNjEzNiwzMi45MSBDMjkuOTIxNTIsMzMuMTY3ODEgMzAuNjcxNTYsMzMuMDU0NTMgMzEuMjIyMjYsMzIuNjA5MjIgQzMyLjU1NDI2LDMxLjUzODkyIDM0LjA1MDM2LDMwLjY5OTAyIDM1LjY2MzY2LDMwLjExNzAyIEMzNi4zNDcyNSwyOS44NzQ4MyAzNi44MzU1NiwyOS4yNzMyNyAzNi45NDA5NiwyOC41NjIzMiBMMzcuNzY1MTgsMjIuOTA2MTIgTDQ0LjIzMzk4LDIyLjkwNjEyIEw0NS4wNTgyLDI4LjU2MjMyIEM0NS4xNjM2NywyOS4yNzMyNiA0NS42NTE5NSwyOS44NzQ4MiA0Ni4zMzU1LDMwLjExNzAyIEM0Ny45NDg4LDMwLjY5OTA1IDQ5LjQ0NDksMzEuNTM4OTIgNTAuNzc2OSwzMi42MDkyMiBDNTEuMzI3NjgsMzMuMDU0NTMgNTIuMDc3NywzMy4xNjc4MSA1Mi43Mzc4LDMyLjkxIEw1OC4yNTM0LDMwLjc1MzggTDYxLjQ0ODcsMzYuMTI4OCBMNTYuODI3NiwzOS42NDA1IEM1Ni4yNDU1Nyw0MC4wODE5MSA1NS45NjA0MSw0MC44MDg1IDU2LjA4NTQxLDQxLjUyMzMgQzU2LjM3NDQ3LDQzLjE5MTMgNTYuMzYyNzUsNDQuODYzMSA1Ni4wODU0MSw0Ni40NzY0IEM1NS45NjA0MSw0Ny4xOTEyNCA1Ni4yNDU1Nyw0Ny45MTc4IDU2LjgyNzYsNDguMzU5MiBMNjEuNDQ4Nyw1MS44NzA5IEw1OC4yNTM0LDU3LjI0NTkgWiIgaWQ9IkZpbGwtOSI+PC9wYXRoPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+"},65978:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIxIiBoZWlnaHQ9Ijg2IiB2aWV3Qm94PSIwIDAgMTIxIDg2IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGNsYXNzPSJmZWF0dXJlU3ZnX184WVciIHN0cm9rZT0iIzUzMzJDQSIgZmlsbD0iIzUzMzJDQSIgYWx0PSJFeHBlcmltZW50cyI+PHRpdGxlPmludGVyZmFjZTwvdGl0bGU+PGcgc3Ryb2tlPSJjdXJyZW50IiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIHN0cm9rZS13aWR0aD0iNi41IiBkPSJNMy4yNSAzLjI1aDExNC40djc5LjNIMy4yNXoiPjwvcGF0aD48cGF0aCBkPSJtMjAuOCA2MC4xNDggMjQuMjY3LTIuNzU1TDcwLjE0OSA0MS41NCA5My42IDMyLjV2Mi4zMjhMNzAuMTQ5IDQ0LjMyIDQ1LjA2NyA1OS44MDIgMjAuOCA2Mi40bTMuOS0uNjVhNC41NSA0LjU1IDAgMSAxLTkuMSAwIDQuNTUgNC41NSAwIDAgMSA5LjEgMG0yNC43LTIuNmMwIDIuNTEzLTIuMzI4IDQuNTUtNS4yIDQuNTUtMi44NzIgMC01LjItMi4wMzctNS4yLTQuNTVzMi4zMjgtNC41NSA1LjItNC41NWMyLjg3MiAwIDUuMiAyLjAzNyA1LjIgNC41NW0yNi0xNi4yNWE1LjIgNS4yIDAgMSAxLTEwLjQgMCA1LjIgNS4yIDAgMCAxIDEwLjQgMG0yMy40LTkuMWE1LjIgNS4yIDAgMSAxLTEwLjQgMCA1LjIgNS4yIDAgMCAxIDEwLjQgMFoiIGZpbGw9ImN1cnJlbnQiIGZpbGwtcnVsZT0ibm9uemVybyI+PC9wYXRoPjxwYXRoIHN0cm9rZS13aWR0aD0iMy45IiBkPSJNNC43NDIgMTkuMzQ5SDExNC40Ij48L3BhdGg+PGNpcmNsZSBzdHJva2Utd2lkdGg9IjIuMyIgZmlsbD0iY3VycmVudCIgY3g9IjExLjA1IiBjeT0iMTIuMzUiIHI9IjEuMyI+PC9jaXJjbGU+PGNpcmNsZSBzdHJva2Utd2lkdGg9IjIuMyIgZmlsbD0iY3VycmVudCIgY3g9IjE3LjU1IiBjeT0iMTIuMzUiIHI9IjEuMyI+PC9jaXJjbGU+PGNpcmNsZSBzdHJva2Utd2lkdGg9IjIuMyIgZmlsbD0iY3VycmVudCIgY3g9IjI0LjA1IiBjeT0iMTIuMzUiIHI9IjEuMyI+PC9jaXJjbGU+PHBhdGggc3Ryb2tlLXdpZHRoPSIyLjYiIGQ9Ik0xMS4wNSAyNi42NzlWNzEuMzJoOTUuNDcyIj48L3BhdGg+PC9nPjwvc3ZnPg=="},74906:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iODZweCIgaGVpZ2h0PSI5N3B4IiB2aWV3Qm94PSIwIDAgODYgOTciIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8dGl0bGU+b3B0aWNhbF9kZW5zaXR5PC90aXRsZT4KICAgIDxnIGlkPSJQYWdlLTEiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSJHcm91cC05IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyLjAwMDAwMCwgMy4wMDAwMDApIiBzdHJva2U9ImN1cnJlbnQiPgogICAgICAgICAgICA8cGF0aCBkPSJNMTYuNzIyMTAyMiw3LjMwNzU5MTIyIEMzMC43NTU3MTEsLTIuNTE4ODQ3NDEgNDguMjMzNzQwOSwtMS43NzA4NDQzOCA1NS43NjAzNzQ4LDguOTc4MzAyNzQgQzU1LjgyMzEzNTMsOS4wNjc5MzQwOSA1NS44ODUwMDU4LDkuMTU3OTc3OCA1NS45NDU5ODg1LDkuMjQ4NDI2NDUgQzU3LjMzODM1MDUsOC40MDUwOTM2MSA1OC45NzI1MjU0LDcuOTIgNjAuNzIsNy45MiBDNjUuODIzMTExMSw3LjkyIDY5Ljk2LDEyLjA1Njg4ODkgNjkuOTYsMTcuMTYgQzY5Ljk2LDIyLjI2MzExMTEgNjUuODIzMTExMSwyNi40IDYwLjcyLDI2LjQgQzU5Ljk0MjUzNjUsMjYuNCA1OS4xODc0OTk5LDI2LjMwMzk3OTUgNTguNDY2MTAyLDI2LjEyMzE1MDcgQzU2LjY3NzQzMjYsMzMuNDgxNTYzNSA1MS42Mjk3MTY2LDQwLjg3NjIyNSA0My45Nzg0NTQ1LDQ2LjIzMzY5NjQgQzI5Ljk0NDg0NTcsNTYuMDYwMTM1IDEyLjQ2NjgxNTgsNTUuMzEyMTMyIDQuOTQwMTgxOTMsNDQuNTYyOTg0OSBDLTIuNTg2NDUxOTEsMzMuODEzODM3NyAyLjY4ODQ5MzQ4LDE3LjEzNDAyOTkgMTYuNzIyMTAyMiw3LjMwNzU5MTIyIFoiIGlkPSJDb21iaW5lZC1TaGFwZSIgc3Ryb2tlLXdpZHRoPSI2LjAxOTIiPjwvcGF0aD4KICAgICAgICAgICAgPGNpcmNsZSBpZD0iT3ZhbCIgc3Ryb2tlLXdpZHRoPSIzLjMyIiBmaWxsPSJjdXJyZW50IiBjeD0iNjEuMzgiIGN5PSI2MS4zOCIgcj0iMi42NCI+PC9jaXJjbGU+CiAgICAgICAgICAgIDxlbGxpcHNlIGlkPSJPdmFsIiBzdHJva2Utd2lkdGg9IjYuMDE5MiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNTUuNDQwMDAwLCA2Ny4zMjAwMDApIHJvdGF0ZSgtMzMuMDAwMDAwKSB0cmFuc2xhdGUoLTU1LjQ0MDAwMCwgLTY3LjMyMDAwMCkgIiBjeD0iNTUuNDQiIGN5PSI2Ny4zMiIgcng9IjE5LjQzMDQiIHJ5PSIxNC4xNTA0Ij48L2VsbGlwc2U+CiAgICAgICAgICAgIDxjaXJjbGUgaWQ9Ik92YWwiIHN0cm9rZS13aWR0aD0iMy4zMiIgZmlsbD0iY3VycmVudCIgY3g9IjE2IiBjeT0iMzkiIHI9IjQuMzQiPjwvY2lyY2xlPgogICAgICAgICAgICA8ZWxsaXBzZSBpZD0iT3ZhbCIgc3Ryb2tlLXdpZHRoPSI2LjAxOTIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE2LjUwMDAwMCwgNjcuOTgwMDAwKSByb3RhdGUoMzQuMDAwMDAwKSB0cmFuc2xhdGUoLTE2LjUwMDAwMCwgLTY3Ljk4MDAwMCkgIiBjeD0iMTYuNSIgY3k9IjY3Ljk4IiByeD0iOS41MzA0IiByeT0iNi44OTA0Ij48L2VsbGlwc2U+CiAgICAgICAgICAgIDxjaXJjbGUgaWQ9Ik92YWwiIHN0cm9rZS13aWR0aD0iNC42OTkyIiBmaWxsPSJjdXJyZW50IiBjeD0iNzMuOTIiIGN5PSIzOC4yOCIgcj0iNi4zMDk2Ij48L2NpcmNsZT4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg=="},62921:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iOTBweCIgaGVpZ2h0PSI5MHB4IiB2aWV3Qm94PSIwIDAgOTAgOTAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8dGl0bGU+cGx1Z2luczwvdGl0bGU+CiAgICA8ZyBpZD0iUGFnZS0xIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4KICAgICAgICA8ZyBpZD0icGx1Z2lucyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsIDAuMDAwMDAwKSI+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik03Ljg4NjcsNDEuODMxNSBMMzMuOTQ4Nyw0MS44MzE1IEMzOC4zMDAzLDQxLjgyNzU5IDQxLjgyNzYsMzguMzAwMyA0MS44MzE1LDMzLjk0ODcgTDQxLjgzMTUsNy44ODY3IEM0MS44Mjc1OSwzLjUzMTIgMzguMzAwMywwLjAwMzkgMzMuOTQ4NywtNC45NzM3OTkxNWUtMTQgTDcuODg2NywtNC45NzM3OTkxNWUtMTQgQzMuNTMxMiwwLjAwMzkxIDAuMDAzOSwzLjUzMTIgMS40OTIxMzk3NWUtMTMsNy44ODY3IEwxLjQ5MjEzOTc1ZS0xMywzMy45NDg3IEMwLjAwMzkwNiwzOC4zMDAzIDMuNTMxMiw0MS44Mjc2IDcuODg2Nyw0MS44MzE1IFogTTUsNy44ODY1IEM1LDYuMjkyNyA2LjI5Myw0Ljk5OTggNy44ODY3LDQuOTk5OCBMMzMuOTQ4Nyw0Ljk5OTggQzM1LjUzODUsNC45OTk4IDM2LjgzMTUsNi4yOTI4IDM2LjgzMTUsNy44ODY1IEwzNi44MzE1LDMzLjk0ODUgQzM2LjgzMTUsMzUuNTM4MyAzNS41NDI0LDM2LjgzMTMgMzMuOTQ4NywzNi44MzEzIEw3Ljg4NjcsMzYuODMxMyBDNi4yOTI5LDM2LjgzMTMgNSwzNS41MzgzIDUsMzMuOTQ4NSBMNSw3Ljg4NjUgWiBNNTYuMDUxLDQxLjgzMTUgTDgyLjExMyw0MS44MzE1IEM4Ni40Njg1LDQxLjgyNzU5IDg5Ljk5NTgsMzguMzAwMyA4OS45OTk3LDMzLjk0ODcgTDg5Ljk5OTcsNy44ODY3IEM4OS45OTU3OSwzLjUzMTIgODYuNDY4NSwwLjAwMzkgODIuMTEzLC00Ljk3Mzc5OTE1ZS0xNCBMNTYuMDUxLC00Ljk3Mzc5OTE1ZS0xNCBDNTEuNjk5NCwwLjAwMzkxIDQ4LjE3MjEsMy41MzEyIDQ4LjE2ODIsNy44ODY3IEw0OC4xNjgyLDMzLjk0ODcgQzQ4LjE3MjEsMzguMzAwMyA1MS42OTk0LDQxLjgyNzYgNTYuMDUxLDQxLjgzMTUgWiBNNTMuMTY4Miw3Ljg4NjUgQzUzLjE2ODIsNi4yOTI3IDU0LjQ2MTIsNC45OTk4IDU2LjA1MSw0Ljk5OTggTDgyLjExMyw0Ljk5OTggQzgzLjcwNjgsNC45OTk4IDg0Ljk5OTcsNi4yOTI4IDg0Ljk5OTcsNy44ODY1IEw4NC45OTk3LDMzLjk0ODUgQzg0Ljk5OTcsMzUuNTM4MyA4My43MDY3LDM2LjgzMTMgODIuMTEzLDM2LjgzMTMgTDU2LjA1MSwzNi44MzEzIEM1NC40NjEyLDM2LjgzMTMgNTMuMTY4MiwzNS41MzgzIDUzLjE2ODIsMzMuOTQ4NSBMNTMuMTY4Miw3Ljg4NjUgWiBNNy44ODcyLDg5Ljk5OTUgTDMzLjk0OTIsODkuOTk5NSBDMzguMzAwOCw4OS45OTU1OTQgNDEuODI4MSw4Ni40NjgzIDQxLjgzMiw4Mi4xMTI4IEw0MS44MzIsNTYuMDUwOCBDNDEuODI4MDksNTEuNjk5MiAzOC4zMDA4LDQ4LjE3MTkgMzMuOTQ5Miw0OC4xNjggTDcuODg3Miw0OC4xNjggQzMuNTMxNyw0OC4xNzE5MSAwLjAwNDQsNTEuNjk5MiAwLjAwMDUsNTYuMDUwOCBMMC4wMDA1LDgyLjExMjggQzAuMDA0NDA2LDg2LjQ2ODMgMy41MzE3LDg5Ljk5NTYgNy44ODcyLDg5Ljk5OTUgWiBNNS4wMDA1LDU2LjA1MDUgQzUuMDAwNSw1NC40NjA3IDYuMjkzNSw1My4xNjc3IDcuODg3Miw1My4xNjc3IEwzMy45NDkyLDUzLjE2NzcgQzM1LjU0Myw1My4xNjc3IDM2LjgzMiw1NC40NjA3IDM2LjgzMiw1Ni4wNTA1IEwzNi44MzIsODIuMTEyNSBDMzYuODMyLDgzLjcwNjMgMzUuNTM5LDg0Ljk5OTIgMzMuOTQ5Miw4NC45OTkyIEw3Ljg4NzIsODQuOTk5MiBDNi4yOTM0LDg0Ljk5OTIgNS4wMDA1LDgzLjcwNjIgNS4wMDA1LDgyLjExMjUgTDUuMDAwNSw1Ni4wNTA1IFoiIGlkPSJGaWxsLTEiIGZpbGw9IiM0RTMyQzIiPjwvcGF0aD4KICAgICAgICAgICAgPGxpbmUgeDE9IjY5LjA4Mzk1IiB5MT0iNTYuOTA3MDE0MSIgeDI9IjY5LjA4Mzk1IiB5Mj0iODMuMDkyMDU4MiIgaWQ9IlBhdGgtMjAiIHN0cm9rZT0iIzRFMzJDMiIgc3Ryb2tlLXdpZHRoPSI0IiBzdHJva2UtbGluZWNhcD0icm91bmQiPjwvbGluZT4KICAgICAgICAgICAgPGxpbmUgeDE9IjY5LjA4Mzk1IiB5MT0iNTYuOTA3MDE0MSIgeDI9IjY5LjA4Mzk1IiB5Mj0iODMuMDkyMDU4MiIgaWQ9IlBhdGgtMjAiIHN0cm9rZT0iIzRFMzJDMiIgc3Ryb2tlLXdpZHRoPSI0IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDY5LjA4Mzk1MCwgNjkuOTk5NTM2KSByb3RhdGUoOTAuMDAwMDAwKSB0cmFuc2xhdGUoLTY5LjA4Mzk1MCwgLTY5Ljk5OTUzNikgIj48L2xpbmU+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4="},27356:(e,s,t)=>{var a={"./developer-guide/activities.png":35046,"./developer-guide/activities_with_example.png":89586,"./developer-guide/adding_chart_to_config.png":37227,"./developer-guide/arch.png":3778,"./developer-guide/automations_example.png":97758,"./developer-guide/background_job_dodging_timing.png":19505,"./developer-guide/card_with_example.png":74535,"./developer-guide/custom_chart.png":14637,"./developer-guide/dropdown_automations.png":13079,"./developer-guide/dropdown_automations_with_example.png":93836,"./developer-guide/pinout.png":88884,"./developer-guide/python-package-new-config.png":34015,"./developer-guide/python-package-plugins.png":64506,"./developer-guide/python-package-pull-or-issue.png":86890,"./developer-guide/settings_with_example.png":80242,"./experiments/aa-experiment.png":45048,"./experiments/aa-experiment2.png":47259,"./experiments/aa-test-results.png":60875,"./experiments/algae_exp.jpg":61502,"./experiments/blank.png":375,"./experiments/calibrate.png":56056,"./experiments/ethanol_gr.png":90152,"./experiments/media_exp.jpg":63916,"./experiments/nod_algae_intensity.png":13140,"./experiments/one_vial_ypd.jpg":1325,"./experiments/osmosis.png":10370,"./experiments/salt_OD.png":55176,"./experiments/salt_gr_depletion.png":61496,"./experiments/salt_growth_rate.png":18968,"./experiments/salt_materials.jpg":99637,"./experiments/salt_normalized_OD.png":6912,"./experiments/start-exp/manage_all_pioreactors.png":28547,"./experiments/start-exp/start_automation.png":44277,"./experiments/tea2-exp-results.png":98058,"./experiments/temp.png":55870,"./experiments/temp_growth_rate.png":36872,"./experiments/temp_normal_od.png":4605,"./experiments/temp_od.png":5281,"./experiments/temperature_OD.png":95218,"./experiments/temperature_growth_rate.png":64058,"./experiments/temperature_normal_OD.png":73832,"./experiments/temperature_temp.png":23331,"./experiments/three_pioreactors.jpg":50469,"./experiments/turbidostat/PID_turbidostat.png":58564,"./experiments/turbidostat/adjusting_tubes.png":77642,"./experiments/turbidostat/dosing_automation.png":59221,"./experiments/turbidostat/dosing_settings.png":96089,"./experiments/turbidostat/general_automations.png":93099,"./experiments/turbidostat/luer_attach.png":50372,"./experiments/turbidostat/media_flow.png":58001,"./experiments/turbidostat/new data.png":17407,"./experiments/turbidostat/overview_settings.png":93241,"./experiments/turbidostat/pump_to_pwm.png":76622,"./experiments/turbidostat/run_pump_calc.png":44968,"./experiments/turbidostat/salt_turbidostat.png":82836,"./experiments/turbidostat/salt_turbidostat_test.png":1792,"./experiments/turbidostat/salt_vs_wt_gr.png":15413,"./experiments/turbidostat/sink_and_source.png":76867,"./experiments/turbidostat/ssh_into_unit.png":55826,"./experiments/turbidostat/turbido_mats_1.jpg":26789,"./experiments/turbidostat/turbido_mats_2.jpg":73735,"./experiments/turbidostat/turbidostat_gr_results.png":93397,"./experiments/turbidostat/turbidostat_results.png":27333,"./experiments/turbidostat/turbidostat_settings.png":26566,"./experiments/two_pio_plus_vials.jpg":21822,"./experiments/yeast_growth_vs_temp.png":83831,"./experiments/ypd-conc-exp.png":79128,"./experiments/ypd_vials.jpg":16175,"./misc/automation.svg":98563,"./misc/colour-Docs-logo.png":85573,"./misc/favicon.ico":53144,"./misc/interface.svg":65978,"./misc/logo.png":45517,"./misc/optical_density.svg":74906,"./misc/plugins.svg":62921,"./misc/white-Docs-logo.png":6753,"./user-guide/absorption_vs_od.png":71226,"./user-guide/add-teh/00_teh_parts.jpeg":20290,"./user-guide/add-teh/01_teh_unplug_from_hats.jpeg":73270,"./user-guide/add-teh/02_teh_unscrew_top.jpeg":6829,"./user-guide/add-teh/03_teh_remove_top.jpeg":96124,"./user-guide/add-teh/04_teh_place_hat_1.jpeg":20554,"./user-guide/add-teh/05_teh_place_hat_2.jpeg":81981,"./user-guide/add-teh/06_teh_place_standoffs_1.jpeg":91378,"./user-guide/add-teh/07_teh_place_standoffs_2.jpeg":93576,"./user-guide/add-teh/08_teh_place_top_back.jpeg":43297,"./user-guide/add-teh/09_teh_screw_top_on.jpeg":26393,"./user-guide/add-teh/10_teh_replug_peripherals.jpeg":55872,"./user-guide/add-teh/11_teh_insert_pt1000.jpeg":47526,"./user-guide/add-teh/12_teh_screw_in_thermowell.jpeg":47124,"./user-guide/add-teh/13_teh_insert_pt1000_vial.jpeg":53971,"./user-guide/add-teh/14_teh_finished.jpeg":68909,"./user-guide/add-teh/config.png":54380,"./user-guide/add-teh/install_from_ui.png":20296,"./user-guide/add_media.png":6856,"./user-guide/add_media_ui.png":36231,"./user-guide/add_new_od600.png":77284,"./user-guide/add_new_pioreactor.png":35699,"./user-guide/add_new_pioreactor_modal.png":41577,"./user-guide/adding-leds/attach3.JPG":81145,"./user-guide/adding-leds/attached4.JPG":65500,"./user-guide/adding-leds/channelD5.JPG":82897,"./user-guide/adding-leds/close7.JPG":36982,"./user-guide/adding-leds/led_hardware1.jpg":11284,"./user-guide/adding-leds/led_hardware2.jpg":90865,"./user-guide/adding-leds/plugin6.JPG":38869,"./user-guide/all-four-graphs.png":3614,"./user-guide/assign_labels_bulk.png":47053,"./user-guide/automations.png":79601,"./user-guide/aux_position.png":87289,"./user-guide/badge.png":77363,"./user-guide/blue-tag.png":17717,"./user-guide/bubble-noise.png":48587,"./user-guide/calibrate.png":24925,"./user-guide/calibrate_stirring.png":27801,"./user-guide/change_angle.png":72827,"./user-guide/change_leds.png":52722,"./user-guide/choose-os.png":71457,"./user-guide/choose-storage.png":43557,"./user-guide/choose_config_version.png":34766,"./user-guide/choose_config_version2.png":66772,"./user-guide/click_update.png":58335,"./user-guide/click_update_develop.png":88419,"./user-guide/configini.png":90665,"./user-guide/connect_via_filezilla.png":81232,"./user-guide/create_new_experiment_page.png":66811,"./user-guide/custom_automation_plugin.png":45307,"./user-guide/custom_automation_plugin2.png":45217,"./user-guide/custom_job_plugin.png":36183,"./user-guide/custom_job_plugin2.png":88141,"./user-guide/custom_job_plugin3.png":77982,"./user-guide/cycle_media.png":84817,"./user-guide/dosing-settings.png":65553,"./user-guide/dosing_in_ui.png":57185,"./user-guide/dosing_platform/pump1.JPG":1849,"./user-guide/dosing_platform/pump10.JPG":19582,"./user-guide/dosing_platform/pump2.JPG":29587,"./user-guide/dosing_platform/pump3.JPG":76210,"./user-guide/dosing_platform/pump4.JPG":76340,"./user-guide/dosing_platform/pump5.JPG":34742,"./user-guide/dosing_platform/pump6.JPG":73834,"./user-guide/dosing_platform/pump7.JPG":10603,"./user-guide/dosing_platform/pump8.JPG":18470,"./user-guide/dosing_platform/pump9.JPG":74136,"./user-guide/dosing_ui.png":3880,"./user-guide/edit_config_page.png":37179,"./user-guide/example-event-logs.png":22600,"./user-guide/export_data_choose_dataset.png":96901,"./user-guide/export_data_default.png":31713,"./user-guide/export_data_downloading.png":48804,"./user-guide/export_data_selections.png":17438,"./user-guide/export_data_sets.png":43596,"./user-guide/find_config_to_edit.png":57331,"./user-guide/floaty-in-vial.png":13811,"./user-guide/forgot-stirbar.png":17258,"./user-guide/generating_graph.png":27930,"./user-guide/gr_interpretation.png":20848,"./user-guide/hardware-assembly/bot_faceplate_screwed.jpg":27346,"./user-guide/hardware-assembly/bottom_faceplate.jpg":38682,"./user-guide/hardware-assembly/bulb_in_pocket.jpg":12744,"./user-guide/hardware-assembly/cable_channels.jpg":1663,"./user-guide/hardware-assembly/cable_connector_closed.jpg":86674,"./user-guide/hardware-assembly/cable_connector_open.jpg":42401,"./user-guide/hardware-assembly/cable_orientation.jpg":98849,"./user-guide/hardware-assembly/check_square_nuts.jpg":24715,"./user-guide/hardware-assembly/fan_on_faceplate.jpg":31088,"./user-guide/hardware-assembly/finished.jpg":68700,"./user-guide/hardware-assembly/finished_pio.jpg":98973,"./user-guide/hardware-assembly/gpio_check_A.jpg":74217,"./user-guide/hardware-assembly/gpio_check_B.jpg":16868,"./user-guide/hardware-assembly/gpio_pushed.jpg":14083,"./user-guide/hardware-assembly/gpio_unpushed.jpg":63,"./user-guide/hardware-assembly/hat_pieces.jpg":19066,"./user-guide/hardware-assembly/heating_bottom_screws.jpg":73813,"./user-guide/hardware-assembly/heating_connection.jpg":49487,"./user-guide/hardware-assembly/heating_parts.jpg":61913,"./user-guide/hardware-assembly/heating_topview.jpg":51007,"./user-guide/hardware-assembly/help.png":60482,"./user-guide/hardware-assembly/hex_one_side.jpg":22096,"./user-guide/hardware-assembly/insert_heating_cable.jpg":51249,"./user-guide/hardware-assembly/insert_square_nuts.jpg":47076,"./user-guide/hardware-assembly/inserted_heating_cable.jpg":85915,"./user-guide/hardware-assembly/ir_led_no_cap.jpg":74442,"./user-guide/hardware-assembly/ir_led_with_cap.jpg":71614,"./user-guide/hardware-assembly/ir_ref.jpg":56184,"./user-guide/hardware-assembly/label_reference.jpg":88838,"./user-guide/hardware-assembly/nav_antistatic_polyzip_bags.png":35438,"./user-guide/hardware-assembly/pocket_caps.jpg":17275,"./user-guide/hardware-assembly/pockets_with_caps.jpg":6957,"./user-guide/hardware-assembly/remove_blue.jpg":99532,"./user-guide/hardware-assembly/remove_blue_2.jpg":96738,"./user-guide/hardware-assembly/rpi_hat_parts.jpg":6180,"./user-guide/hardware-assembly/rpi_no_standoffs.jpg":4996,"./user-guide/hardware-assembly/rpi_types.jpg":74933,"./user-guide/hardware-assembly/rpi_with_standoffs.jpg":82300,"./user-guide/hardware-assembly/rpi_zero.jpg":24346,"./user-guide/hardware-assembly/screw_top_bottom.jpg":75986,"./user-guide/hardware-assembly/screw_top_bottom_gpio.jpg":80061,"./user-guide/hardware-assembly/screw_vial_holder_faceplate.jpg":92939,"./user-guide/hardware-assembly/screwdriver.jpg":88471,"./user-guide/hardware-assembly/single_pocket_with_cap.jpg":67304,"./user-guide/hardware-assembly/square_nuts.jpg":68762,"./user-guide/hardware-assembly/standoff_on_hat.jpg":69845,"./user-guide/hardware-assembly/sticky_side.jpg":79488,"./user-guide/hardware-assembly/stirring_connection.jpg":7752,"./user-guide/hardware-assembly/stirring_parts.jpg":25775,"./user-guide/hardware-assembly/three_bulbs.jpg":18371,"./user-guide/hardware-assembly/top_faceplate_screws.jpg":50383,"./user-guide/hardware-assembly/top_faceplate_screws_2.jpg":38126,"./user-guide/hardware-assembly/vial_holder_alignment.jpg":66067,"./user-guide/hardware-assembly/vial_holder_on_fan.jpg":32781,"./user-guide/hardware-assembly/window_placement.jpg":7837,"./user-guide/hardware-assembly/window_screwing.jpg":87124,"./user-guide/hardware-assembly/window_screws.jpg":24806,"./user-guide/lap_with_internet.png":13458,"./user-guide/leader_as_worker_cluster.png":29820,"./user-guide/leader_cluster.png":59718,"./user-guide/led-settings.png":96350,"./user-guide/local_access_point.png":4633,"./user-guide/main-screenshot.png":67581,"./user-guide/manage_ui.png":17720,"./user-guide/metadata.png":28699,"./user-guide/monitor_on_off.png":91675,"./user-guide/ngrok_url.png":54455,"./user-guide/nod_interpretation.png":72905,"./user-guide/od_cal_45_deg.png":91846,"./user-guide/od_cal_45_deg_with_curve.png":77571,"./user-guide/pinch_valves_in_pioreactor.png":7149,"./user-guide/pio-unit-data-example.png":21231,"./user-guide/pio_blink.gif":26200,"./user-guide/pioreactor_ap.png":34025,"./user-guide/pioreactor_page_activities.png":65867,"./user-guide/pioreactor_page_manage.png":99452,"./user-guide/pioreactors_page_self_test.png":89734,"./user-guide/place-micro-sd-card.JPG":94161,"./user-guide/plugin_page.png":37287,"./user-guide/plugin_page_button_highlight.png":11415,"./user-guide/pwm_config.png":43648,"./user-guide/reboot.png":11182,"./user-guide/reduce_to_10.png":26063,"./user-guide/rpi-click-settings.png":3175,"./user-guide/rpi-imager-settings-worker.png":50431,"./user-guide/rpi-imager-settings.png":44479,"./user-guide/save_config.png":17387,"./user-guide/select_new_image.png":62623,"./user-guide/select_version.png":64196,"./user-guide/self_test_pre.png":95515,"./user-guide/self_test_results.png":60055,"./user-guide/self_test_running.png":33256,"./user-guide/settings.png":57259,"./user-guide/single_pioreactor_cluster.png":53376,"./user-guide/start_new_experiment.png":9938,"./user-guide/start_relay.png":61192,"./user-guide/stemma_qt.png":67609,"./user-guide/successuful_upload.png":92716,"./user-guide/temp-vs-stirring-separate-csv.png":86831,"./user-guide/upload_file_via_filezilla.png":61160,"./user-guide/use_custom_image.png":88177,"./user-guide/version_installed_vs_latest.png":73751,"./user-guide/warming-room.png":7181};function i(e){var s=g(e);return t(s)}function g(e){if(!t.o(a,e)){var s=new Error("Cannot find module '"+e+"'");throw s.code="MODULE_NOT_FOUND",s}return a[e]}i.keys=function(){return Object.keys(a)},i.resolve=g,e.exports=i,i.id=27356}}]); \ No newline at end of file diff --git a/assets/js/fdd92877.7a4bef0a.js b/assets/js/fdd92877.7a4bef0a.js new file mode 100644 index 000000000..10d6d5d6f --- /dev/null +++ b/assets/js/fdd92877.7a4bef0a.js @@ -0,0 +1 @@ +(self.webpackChunkpioreactor=self.webpackChunkpioreactor||[]).push([[3687],{3905:(e,s,t)=>{"use strict";t.d(s,{Zo:()=>n,kt:()=>l});var a=t(67294);function i(e,s,t){return s in e?Object.defineProperty(e,s,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[s]=t,e}function g(e,s){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);s&&(a=a.filter((function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable}))),t.push.apply(t,a)}return t}function d(e){for(var s=1;s=0||(i[t]=e[t]);return i}(e,s);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}var r=a.createContext({}),u=function(e){var s=a.useContext(r),t=s;return e&&(t="function"==typeof e?e(s):d(d({},s),e)),t},n=function(e){var s=u(e.components);return a.createElement(r.Provider,{value:s},e.children)},p="mdxType",o={inlineCode:"code",wrapper:function(e){var s=e.children;return a.createElement(a.Fragment,{},s)}},M=a.forwardRef((function(e,s){var t=e.components,i=e.mdxType,g=e.originalType,r=e.parentName,n=c(e,["components","mdxType","originalType","parentName"]),p=u(t),M=i,l=p["".concat(r,".").concat(M)]||p[M]||o[M]||g;return t?a.createElement(l,d(d({ref:s},n),{},{components:t})):a.createElement(l,d({ref:s},n))}));function l(e,s){var t=arguments,i=s&&s.mdxType;if("string"==typeof e||i){var g=t.length,d=new Array(g);d[0]=M;var c={};for(var r in s)hasOwnProperty.call(s,r)&&(c[r]=s[r]);c.originalType=e,c[p]="string"==typeof e?e:i,d[1]=c;for(var u=2;u{"use strict";t.d(s,{Z:()=>p});var a=t(67294),i=t(86010),g=t(35281),d=t(95999);const c={admonition:"admonition_LlT9",admonitionHeading:"admonitionHeading_tbUL",admonitionIcon:"admonitionIcon_kALy",admonitionContent:"admonitionContent_S0QG"};const r={note:{infimaClassName:"secondary",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 14 16"},a.createElement("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"}))},label:a.createElement(d.Z,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)"},"note")},tip:{infimaClassName:"success",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 12 16"},a.createElement("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"}))},label:a.createElement(d.Z,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)"},"tip")},danger:{infimaClassName:"danger",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 12 16"},a.createElement("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"}))},label:a.createElement(d.Z,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)"},"danger")},info:{infimaClassName:"info",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 14 16"},a.createElement("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"}))},label:a.createElement(d.Z,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)"},"info")},caution:{infimaClassName:"warning",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 16 16"},a.createElement("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"}))},label:a.createElement(d.Z,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)"},"caution")}},u={secondary:"note",important:"info",success:"tip",warning:"danger"};function n(e){const{mdxAdmonitionTitle:s,rest:t}=function(e){const s=a.Children.toArray(e),t=s.find((e=>{var s;return a.isValidElement(e)&&"mdxAdmonitionTitle"===(null==(s=e.props)?void 0:s.mdxType)})),i=a.createElement(a.Fragment,null,s.filter((e=>e!==t)));return{mdxAdmonitionTitle:t,rest:i}}(e.children);return{...e,title:e.title??s,children:t}}function p(e){const{children:s,type:t,title:d,icon:p}=n(e),o=function(e){const s=u[e]??e,t=r[s];return t||(console.warn(`No admonition config found for admonition type "${s}". Using Info as fallback.`),r.info)}(t),M=d??o.label,{iconComponent:l}=o,N=p??a.createElement(l,null);return a.createElement("div",{className:(0,i.Z)(g.k.common.admonition,g.k.common.admonitionType(e.type),"alert",`alert--${o.infimaClassName}`,c.admonition)},a.createElement("div",{className:c.admonitionHeading},a.createElement("span",{className:c.admonitionIcon},N),M),a.createElement("div",{className:c.admonitionContent},s))}},29702:(e,s,t)=>{"use strict";t.d(s,{Z:()=>c});var a=t(67294),i=t(86010);const g={highlightThumbnail:"highlightThumbnail_SKrZ",thumbnail:"thumbnail_dvij"};var d=t(76775);function c(e){let{children:s,title:c,images:r}=e;const u=(0,d.TH)().pathname.split("#")[0],[n,p]=a.useState(r[0]),o=e=>s=>{p(r[e])},M=e=>null==e?"":e.replace(/[^a-z0-9_]+/gi,"-").replace(/^-|-$/g,"").toLowerCase();return a.createElement("div",{id:M(c),style:{padding:"10px",margin:"20px 0px 60px 0px",display:"flex",flexWrap:"nowrap"}},a.createElement("div",{id:"mainImage",style:{width:"55%",float:"left",marginRight:"10px"}},a.createElement("h2",null,c," ",a.createElement("a",{href:u+"#"+M(c)},"#")),a.createElement("img",{maxHeight:240,src:t(27356)(`./${n}`).default}),r.length>1&&a.createElement("div",{id:"thumbnails",style:{width:"100%"}},r.map(((e,s)=>a.createElement("button",{onClick:o(s),key:s,className:(0,i.Z)({[g.thumbnail]:e!==n,[g.highlightThumbnail]:e===n})},a.createElement("img",{width:"100px",src:t(27356)(`./${e}`).default,key:e})))))),a.createElement("section",{style:{width:"44%",float:"left",marginTop:"40px"}},s))}},32969:(e,s,t)=>{"use strict";t.d(s,{Z:()=>i});var a=t(67294);function i(e){let{children:s,color:t}=e;return a.createElement("span",{style:{backgroundColor:t,borderRadius:"2px",color:"#fff",padding:"0.2rem"}},s)}},97214:(e,s,t)=>{"use strict";t.d(s,{$C:()=>r,$y:()=>c,Ce:()=>g,Q6:()=>i,ek:()=>d,iN:()=>a});const a="rgb(35, 67, 232)",i="rgb(170, 10, 60)",g="rgb(220, 84, 183)",d="rgb(19, 173, 102)",c="rgb(255, 144, 36)",r="rgb(0,139,139)"},96466:(e,s,t)=>{"use strict";t.r(s),t.d(s,{assets:()=>p,contentTitle:()=>u,default:()=>N,frontMatter:()=>r,metadata:()=>n,toc:()=>o});var a=t(87462),i=(t(67294),t(3905)),g=t(29702),d=t(32969),c=(t(23612),t(97214));const r={title:"Adding the Temperature Expansion Upgrade kit",slug:"/temperature-expansion-kit",hide_table_of_contents:!0},u=void 0,n={unversionedId:"Extending your Pioreactor/Upgrade kits/temperature-expansion-kit",id:"Extending your Pioreactor/Upgrade kits/temperature-expansion-kit",title:"Adding the Temperature Expansion Upgrade kit",description:"You can improve your Pioreactor temperature sensing capabilities with the Temperature Expansion Kit. This kit allows for faster temperature response times, more granular temperature data, and increasing the maximum culture temperature. Below are instructions on how to assemble the new hardware to your existing Pioreactor.",source:"@site/user-guide/03-Extending your Pioreactor/30-Upgrade kits/12-temperature-expansion-kit.md",sourceDirName:"03-Extending your Pioreactor/30-Upgrade kits",slug:"/temperature-expansion-kit",permalink:"/user-guide/temperature-expansion-kit",draft:!1,tags:[],version:"current",sidebarPosition:12,frontMatter:{title:"Adding the Temperature Expansion Upgrade kit",slug:"/temperature-expansion-kit",hide_table_of_contents:!0},sidebar:"tutorialSidebar",previous:{title:"Updating the Pioreactor software",permalink:"/user-guide/updating-software"},next:{title:"Adding the High Temp Upgrade kit",permalink:"/user-guide/high-temp-upgrade-kit"}},p={},o=[{value:"Tips",id:"tips",level:2},{value:"Troubleshooting",id:"troubleshooting",level:2},{value:"I'm seeing "Record null temperature. Is the Pt1000 probe connected?" and the wire is connected.",id:"im-seeing-record-null-temperature-is-the-pt1000-probe-connected-and-the-wire-is-connected",level:3}],M={toc:o},l="wrapper";function N(e){let{components:s,...t}=e;return(0,i.kt)(l,(0,a.Z)({},M,t,{components:s,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"You can improve your Pioreactor temperature sensing capabilities with the Temperature Expansion Kit. This kit allows for faster temperature response times, more granular temperature data, and increasing the maximum culture temperature. Below are instructions on how to assemble the new hardware to your existing Pioreactor."),(0,i.kt)(g.Z,{title:"Step 0: before you begin",images:["user-guide/add-teh/00_teh_parts.jpeg"],mdxType:"AssemblyInstructionBlock"},(0,i.kt)("p",null,"What's needed to upgrade your Pioreactor with the Pioreactor Expansion Kit:"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},(0,i.kt)(d.Z,{color:c.iN,mdxType:"Highlight"}," Pioreactor Temperature Expansion HAT")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)(d.Z,{color:c.ek,mdxType:"Highlight"}," 12mm nylon stand-offs ")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)(d.Z,{color:c.$y,mdxType:"Highlight"}," thermowell ")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)(d.Z,{color:c.Q6,mdxType:"Highlight"}," Pt1000 probe ")),(0,i.kt)("li",{parentName:"ol"},"A powered-off Pioreactor."),(0,i.kt)("li",{parentName:"ol"},"A philips head screwdriver"))),(0,i.kt)(g.Z,{title:"Step 1: Expose the Pioreactor HAT",images:["user-guide/add-teh/01_teh_unplug_from_hats.jpeg","user-guide/add-teh/02_teh_unscrew_top.jpeg","user-guide/add-teh/03_teh_remove_top.jpeg"],mdxType:"AssemblyInstructionBlock"},(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Unplug all wires and cables attached to the Pioreactor HAT."),(0,i.kt)("li",{parentName:"ol"},"Unscrew the four ",(0,i.kt)(d.Z,{color:c.iN,mdxType:"Highlight"},"6mm nylon screws")," on the top faceplate. Keep these screws nearby."),(0,i.kt)("li",{parentName:"ol"},"Remove the top assembly. Keep this nearby."))),(0,i.kt)(g.Z,{title:"Step 2: Attach the new HAT",images:["user-guide/add-teh/04_teh_place_hat_1.jpeg","user-guide/add-teh/05_teh_place_hat_2.jpeg","user-guide/add-teh/06_teh_place_standoffs_1.jpeg","user-guide/add-teh/07_teh_place_standoffs_2.jpeg","user-guide/add-teh/08_teh_place_top_back.jpeg","user-guide/add-teh/09_teh_screw_top_on.jpeg"],mdxType:"AssemblyInstructionBlock"},(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Place the new Temperature Expansion HAT onto the existing HAT, making sure the GPIO pins are lined up. It will fit snug, and you can apply pressure onto the corners of the boards."),(0,i.kt)("li",{parentName:"ol"},"Tip: if the HAT is still hard to put on, you can screw in the ",(0,i.kt)(d.Z,{color:c.$y,mdxType:"Highlight"},"12mm standoffs")," to help force the new HAT down further."),(0,i.kt)("li",{parentName:"ol"},"Finish placing the ",(0,i.kt)(d.Z,{color:c.$y,mdxType:"Highlight"},"12mm standoffs")," in."),(0,i.kt)("li",{parentName:"ol"},"Place the Pioreactor top assembly back on, and screw back in the 6mm screws."),(0,i.kt)("li",{parentName:"ol"},"Replug in the cables and wires into the original HAT. Normally:",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"90\xb0 -> PD channel 2"),(0,i.kt)("li",{parentName:"ul"},"REF -> PD channel 1"),(0,i.kt)("li",{parentName:"ul"},"IR -> LED channel A"),(0,i.kt)("li",{parentName:"ul"},"Stirring fan -> PWM 1 (unlabelled)"),(0,i.kt)("li",{parentName:"ul"},"Heater PCB flat-flex cable -> flat-flex connector (unlabelled)"))))),(0,i.kt)(g.Z,{title:"Step 3: Attach the Pt1000",images:["user-guide/add-teh/11_teh_insert_pt1000.jpeg","user-guide/add-teh/12_teh_screw_in_thermowell.jpeg","user-guide/add-teh/13_teh_insert_pt1000_vial.jpeg","user-guide/add-teh/14_teh_finished.jpeg"],mdxType:"AssemblyInstructionBlock"},(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Attach the ",(0,i.kt)(d.Z,{color:c.Ce,mdxType:"Highlight"},"Pt1000 probe's connector")," to the new Temperature Expansion HAT. The connector only has one orientation that works."),(0,i.kt)("li",{parentName:"ol"},"In your Pioreactor's vial, screw in the ",(0,i.kt)(d.Z,{color:c.Q6,mdxType:"Highlight"},"thermowell"),".")),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},"Make sure when the thermowell is ",(0,i.kt)("strong",{parentName:"p"},"straight")," when being screwed in (that is, perpendicular to the surface of the cap)."),(0,i.kt)("p",{parentName:"admonition"},"It may be a tight squeeze. To help screw it in if it's difficult:"),(0,i.kt)("ul",{parentName:"admonition"},(0,i.kt)("li",{parentName:"ul"},"Once a few threads are inserted, rotate the thermowell back and forwards a few times slowly to provide more clearance."),(0,i.kt)("li",{parentName:"ul"},"You can use a pair of needle-nose pliers to hold secure the female end of the thermowell (i.e. one tip is inside the thermowell, and one outside), then twist the vial cap."))),(0,i.kt)("ol",{start:3},(0,i.kt)("li",{parentName:"ol"},"If not already done so, screw in the ",(0,i.kt)(d.Z,{color:c.iN,mdxType:"Highlight"},"Pt1000 into the thermowell"),"."),(0,i.kt)("li",{parentName:"ol"},"You're done the assembly! Next is to install the software."),(0,i.kt)("li",{parentName:"ol"},"Power up the Pioreactor."))),(0,i.kt)(g.Z,{title:"Step 4: Install the software",images:["user-guide/add-teh/install_from_ui.png","user-guide/add-teh/config.png"],mdxType:"AssemblyInstructionBlock"},(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"}," 1. If you install the Kit across your entire Pioreactor cluster")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"In your PioreactorUI, you can ",(0,i.kt)(d.Z,{color:c.ek,mdxType:"Highlight"},"install the plugin")," to all Pioreactors.")),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"}," 2. If you installed the Kit on individual Pioreactors")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"/user-guide/accessing-raspberry-pi"},"SSH")," into the individual Pioreactor, and type ",(0,i.kt)("inlineCode",{parentName:"li"},"pio install-plugin temperature-expansion-kit-plugin"))),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"}," Important:")," in either case,"),(0,i.kt)("p",null,"Confirm in your ",(0,i.kt)(d.Z,{color:c.Ce,mdxType:"Highlight"},"configuration")," that the ",(0,i.kt)("inlineCode",{parentName:"p"},"[temperature_automation.thermostat]")," values have been updated for the Pioreactors with the new hardware to be (exact values may vary slightly):"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre"},"Kp=0.017\nKi=0.0\nKd=4.0\n")),(0,i.kt)("p",null,"You can also update the following configuration:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre"},"[temperature_automation.config]\n# 50 or 60 only, depending on geographic location. This improves the accuracy.\nlocal_ac_hz=60\n"))),(0,i.kt)("h2",{id:"tips"},"Tips"),(0,i.kt)("h2",{id:"troubleshooting"},"Troubleshooting"),(0,i.kt)("h3",{id:"im-seeing-record-null-temperature-is-the-pt1000-probe-connected-and-the-wire-is-connected"},'I\'m seeing "Record null temperature. Is the Pt1000 probe connected?" and the wire is connected.'),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Try unplugging and plugging the probe back into the HAT."),(0,i.kt)("li",{parentName:"ul"},"Try restarting the Pioreactor."),(0,i.kt)("li",{parentName:"ul"},"If the error persists, contact us at ",(0,i.kt)("inlineCode",{parentName:"li"},"hello@pioreactor.com"))))}N.isMDXComponent=!0},35046:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/activities-5d341f64a5d9ebcc0b558948fc9b98de.png"},89586:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/activities_with_example-d119be228fdbbd58acce37ab1fbaf129.png"},37227:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/adding_chart_to_config-0a40556bd41c8cd70abdf292e4f2ef52.png"},3778:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/arch-ce0063d24e16fa83a3178894efbfc114.png"},97758:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/automations_example-ce1734e24dd5d12c39533e911ab76c46.png"},19505:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/background_job_dodging_timing-a0b9f9066fcfd7d7d990ba25ed36a25f.png"},74535:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/card_with_example-94398f0ba8b44158bf500784ed96bfc4.png"},14637:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/custom_chart-483a2cbf50e927eda0208ebab3521cae.png"},13079:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/dropdown_automations-c18aa39556f74acbf8b92088b6e36348.png"},93836:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/dropdown_automations_with_example-6faf53d348f7dc3b5d7be98a79263c98.png"},88884:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/pinout-338966729397ebcb23625dec034e7087.png"},34015:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/python-package-new-config-fc1c3fe6948cde33a3e00db59cf98588.png"},64506:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/python-package-plugins-b119d590d45ad781923cd0f333bdfc96.png"},86890:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/python-package-pull-or-issue-050b26469751ff2da3986a6c75cbfb58.png"},80242:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/settings_with_example-e8cb50818e918606931a292e2b3eef97.png"},45048:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/aa-experiment-35ee8a728a38328b847cf0e32d9caf57.png"},47259:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/aa-experiment2-99b6ae3d00162374f0da6e39c4a12eec.png"},60875:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/aa-test-results-31fe1c141bc2cde192b1695ca7571d92.png"},61502:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/algae_exp-c73b5943ec38e5a1ad7ab17a5def40b4.jpg"},375:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/blank-ad589bf6024a303c9ef5ceda12f4b9ff.png"},56056:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/calibrate-48e7d9da8183c197751bcae71e2c9524.png"},90152:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/ethanol_gr-dd5fd975ee49bc90ddd64ce7407b4472.png"},63916:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/media_exp-b7042fd233cc7a87f01844a4d4a4de05.jpg"},13140:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/nod_algae_intensity-4caf67d40df20b9e784f795e11ee8f03.png"},1325:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/one_vial_ypd-01dc1534b2ff64980a3b31292bfa9e63.jpg"},10370:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/osmosis-97b410162df9c64075b6f14079b3d4b9.png"},55176:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/salt_OD-915b90d3a2fc84e8046998a5a9869f9f.png"},61496:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/salt_gr_depletion-43e1ca02af2daf28631b526e7fb8128c.png"},18968:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/salt_growth_rate-fd74195afbbd9196bc65e7d4ae3009a4.png"},99637:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/salt_materials-31133e7671b00ff3407421b7b84ccf49.jpg"},6912:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/salt_normalized_OD-724b25380eaa98ed5fe1a547920aef5e.png"},28547:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/manage_all_pioreactors-4064274e3c6c2be2e47e5c39b87c6378.png"},44277:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/start_automation-9edac9c0dea269a76cbb97c05f1d3154.png"},98058:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/tea2-exp-results-b3d50dfd67885d391ae7d3f095da213f.png"},55870:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/temp-d443af5bd0d621a31b189521912750d0.png"},36872:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/temp_growth_rate-c2d40db9e5fee5990109b8f062a067bc.png"},4605:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/temp_normal_od-39c35097a2c41ba99d16503412fdd8e8.png"},5281:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/temp_od-8989094249a48d2d6cbd35a6f8ed219e.png"},95218:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/temperature_OD-dc004d8eef20f5bc4f0407ce8bf21b08.png"},64058:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/temperature_growth_rate-a91dae40f12b2598e5f82e54c41dfc39.png"},73832:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/temperature_normal_OD-996676eb867efa987df181abd89f133d.png"},23331:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/temperature_temp-43f99ef8357bdf6f076b89db100d103d.png"},50469:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/three_pioreactors-a9143dda45abf0b4aeb6cd07ba460bd3.jpg"},58564:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/PID_turbidostat-2495f384f625055d7f51ac3664412048.png"},77642:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/adjusting_tubes-1f6c27b92e3c945f12305812d8125915.png"},59221:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/dosing_automation-e5d40e234c87f5554b87a58c4883f451.png"},96089:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/dosing_settings-9aa691a4f491e6d575c90d33e391517c.png"},93099:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/general_automations-f3f8f3e25b9fddd0ab8267e5c9409372.png"},50372:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/luer_attach-68657ac095adf9cd2d75d896baaaaa09.png"},58001:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/media_flow-305add231579def2fe1a774345a9e7cf.png"},17407:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/new data-c12ac09ef801401783f4cf6eef105d97.png"},93241:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/overview_settings-f16a21c5a034e163ed5b3b372b227d79.png"},76622:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/pump_to_pwm-a84f0e9a88e605298c921cb97473c8ef.png"},44968:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/run_pump_calc-0c792f52a09be14ee4b6e298f13e7b2b.png"},82836:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/salt_turbidostat-1ec379faef1b097adf9ab11c87054321.png"},1792:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/salt_turbidostat_test-31059d95c56f3e6b0bc32404ceb82c30.png"},15413:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/salt_vs_wt_gr-2c9af1ef929e3d86168961cc8e134786.png"},76867:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/sink_and_source-8ae2495bb8ae36ea1854b5c4018ea12b.png"},55826:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/ssh_into_unit-390aa668004f7abda7f9171d58391a51.png"},26789:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/turbido_mats_1-d7d501e1da29ce0a049a7c68bccd8dec.jpg"},73735:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/turbido_mats_2-e82f620f83645d5dbe2243c502ead5f7.jpg"},93397:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/turbidostat_gr_results-28bd9e3f7f3d9bf01fec0ee7e3b4cd53.png"},27333:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/turbidostat_results-dc0171f7b44f0cbe99fc7d49fb5851d3.png"},26566:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/turbidostat_settings-2097d0520c8fd562b599e99561eb7df7.png"},21822:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/two_pio_plus_vials-b3818c4810f006921d74598265ffba4f.jpg"},83831:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/yeast_growth_vs_temp-325b703f12b41cd8faff5bda79b2f4d4.png"},79128:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/ypd-conc-exp-12e3151171c1ea55cd91fc35a2e53944.png"},16175:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/ypd_vials-6e117e7a7882d12f0a1127fbe8c40f4d.jpg"},85573:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/colour-Docs-logo-cea939b0dbaa64b764d351a1b1cd1158.png"},53144:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/favicon-530f4c75f471bac00bd52487650e7fdf.ico"},45517:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAApCAYAAABZa1t7AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAUGVYSWZNTQAqAAAACAACARIAAwAAAAEAAQAAh2kABAAAAAEAAAAmAAAAAAADoAEAAwAAAAEAAQAAoAIABAAAAAEAAAAmoAMABAAAAAEAAAApAAAAABR/mZQAAAIwaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA1LjQuMCI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyI+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDxleGlmOkNvbG9yU3BhY2U+MTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+Mzg8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+NTg8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4K51q2awAAA4hJREFUWAntV0+ITlEUf+/OIJoMJVEGEUZJ0lDC2FiomZQySZGykFGEnWw+s5AdRUIpsiAsxCeWGmTow0KYGQtZMf5G47951+/3mvN1vbn3vfvNPLvv1G/OOb9z7r1n7rvvnu8FQVWqO1DdgeoOeO1AjVfWyJLGY3gI/KlkGg7wkZVI2ulI7Ae/1Ygtg70BWAM0AOMAyiegB7gCXAReAk6JCzte6mzROirg/2oMdNAdhqqwo6n5ujFqE+xzhm+a7+BMBkYDR4B2IEt+I+EocAD4YktWg0UVEWxCUXXUKLJI3jbAwvERTQduAz5FcYpRwF7gAcCxQ0TFOzWEDgIXb0mtB/cQWGqJZVHzkHAXmJRMVPHjS7L0+Vj9hGdoyMR+Q+OsafjbkcxXPFNJMvZdvDXZSkZW1k5uA73ADCkedJMQ28VL3KHfg98OcBG+DLOANuAJkCa8tg6bCYpvH4poBVnC4+OrX6KfeCvNMS67C4GFwEngKTAA8Eq4DCwBTgNpshrB5WkJthivC52Cn4jNsQ00OO5gL5A2T0HylRgj1Kcw/kXGHL8Q35eRw4s8lrwK4x3mI3cyksp3Wl6FPc9YUMJ9MD6KY9Hlayevwn5YFnFRPI8uGSOBWhq9bVtaIq0LOtCNYRB24w4pzL101uyVku/S8xHIOmMcyy4xlYZDPgivWNRAFBW11nGvpKZPXpI89GKPHKZk5b2VeRR3ShxTu3gzx7B3wS6fD4NPmh1JIuGXxFd8fOKY2sWbOYY9EfYxgHeVS3YjsMIVHORvSVzxTIljahdv5iRs/ji8B/BXBluMyGwYF4B/Wo4EDf0G9jXxa3nQB7QuCiGavNgVaJ6h+8B3oAeYCUwAfGQ/kvolUfHtq1GqNQzDuFdS06/wrZT5RI+FsQjwLeoxcs8AFUtWr0zrfz6x5mRFeV2w7JV/kpN7+PzN1g50JnPzKuwmJt4MlM9IciGL3wduPXDCEvOmsh7lusGZZkCfB74Crkf4CrGDAL83nRK3JGe08gAX3QjwO2AV0ABMAfiWvgaeAY+ATMm7MFnwG4wb4gxHx4V9Lq5tCaIQTTxAE8fHidKF+tarlTTx4aydOkaxKB0FRbSgJhyLOmr6cbGpQ/9vUHGnrEu4eGty/iSauP3D1sXnX4J9RjRx+wevi7dPkz+reNCt07p4a3L+JDYmCDzeSt5Je1KWP4RYV0q84tBfhv4Q4mFbcV8AAAAASUVORK5CYII="},6753:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/white-Docs-logo-68f198a9f68da5fdd79477e9df76857c.png"},71226:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/absorption_vs_od-20ecb493cc4c563d11b182bccc2fcbbc.png"},20290:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/00_teh_parts-5902741290dddd2dfc6b078c24016ad7.jpeg"},73270:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/01_teh_unplug_from_hats-7d50c55e7079d08ad8d5783a05d75379.jpeg"},6829:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/02_teh_unscrew_top-7f07484975f8dc1a6088ca13fd84b07c.jpeg"},96124:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/03_teh_remove_top-1506583ca33bf8917b9bfb422e64e0a2.jpeg"},20554:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/04_teh_place_hat_1-3603cdd63a58fc45b363914e744a0661.jpeg"},81981:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/05_teh_place_hat_2-3311e75a82c016a439cc69ba37092e21.jpeg"},91378:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/06_teh_place_standoffs_1-830dcf6dca2389a4d81aec42164aaf2e.jpeg"},93576:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/07_teh_place_standoffs_2-6c6029a3b43b2e7a6c1f1afe6794e984.jpeg"},43297:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/08_teh_place_top_back-bf86888fc8919f4b123b334ec607fd68.jpeg"},26393:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/09_teh_screw_top_on-3fd538b2357c92edb94705cc22b40973.jpeg"},55872:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/10_teh_replug_peripherals-44ad3fbb6e9f18e4c8d1d7106b02ef1f.jpeg"},47526:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/11_teh_insert_pt1000-6a3baa720c3474b234dff657cecb7742.jpeg"},47124:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/12_teh_screw_in_thermowell-5a386e3a0213a7bc43681f303105a4b9.jpeg"},53971:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/13_teh_insert_pt1000_vial-72cd41f662771315c7afbda8ae532ef2.jpeg"},68909:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/14_teh_finished-3a3172a61ce65acf5569d9a8ca040a19.jpeg"},54380:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/config-14baa7cfa4b4e642f3f415436dee7b28.png"},20296:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/install_from_ui-8fa09d632dc8b11055a4988f1e812acd.png"},6856:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/add_media-34351a1c3b447de483437653fb94a9f5.png"},36231:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/add_media_ui-b6f794f53ea78d05c499306f53c29dc3.png"},77284:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/add_new_od600-6534eb4169b38ff195bc7a7210e1e5eb.png"},35699:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/add_new_pioreactor-38709bbd1bb23002d92e8c4dd50515ed.png"},41577:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/add_new_pioreactor_modal-d341626eb43818acfcaa7acba85427c0.png"},81145:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/attach3-ea91d0cf836c5d2ce84f25ee2db63dc2.JPG"},65500:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/attached4-d7eef623a38fde274f97d231a6d8abfa.JPG"},82897:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/channelD5-f4d5c73774f4177d8657a16bdaf8f4ec.JPG"},36982:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/close7-fdf0f94eb51dbf22b76b23eb3c625aaa.JPG"},11284:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/led_hardware1-aa4a265019fb80b6d45d44a5dc516be4.jpg"},90865:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/led_hardware2-a21ac0d8258240de4231f679bf691e7f.jpg"},38869:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/plugin6-4234a0015143dd60fbc66a07f928ccaa.JPG"},3614:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/all-four-graphs-1ec03948149e0a8def0275e8bef1c583.png"},47053:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/assign_labels_bulk-3106b3e13f5623d1cc22cda21b70cc9c.png"},79601:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/automations-3c9d54aa78ca77051fb732bca71ac645.png"},87289:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/aux_position-fa3c38b93578179d328523d88359ea74.png"},77363:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/badge-297da4f4c7c001ed77aaaef0c2e3a73b.png"},17717:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/blue-tag-62c90041b3d68fe64eab220df552a854.png"},48587:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/bubble-noise-24ab6a62a7fbb4d015381f3c8b13d8e8.png"},24925:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/calibrate-1f5b2368c227db631fea83273b1098b1.png"},27801:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/calibrate_stirring-6109be316ccc19d7d0821f25e15ee76a.png"},72827:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/change_angle-f172c1a720d3305f7b81b7075005132b.png"},52722:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/change_leds-db68373451c92659daca07922e56db50.png"},71457:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/choose-os-abf2668d559dcc309544c4d86ad7a35a.png"},43557:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/choose-storage-f861f9f329493b78b6bfa221f4990f48.png"},34766:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/choose_config_version-4fd56323f33f45698ff2062dac76828c.png"},66772:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/choose_config_version2-4533d1e783827d808495b76a29082e51.png"},58335:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/click_update-c38a5940b2c9dfd609fb3882650ed33a.png"},88419:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/click_update_develop-054448e07048662b23ef011b25977e80.png"},90665:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/configini-9152ccc3666041a79b89c3d8ba18d4c8.png"},81232:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/connect_via_filezilla-4baea6ad6d5fca5865c7cf549db6029c.png"},66811:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/create_new_experiment_page-ef0b6ba1141f0900c9900cce1c68bc14.png"},45307:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/custom_automation_plugin-8bfc78d2e5bc9068d650383c03b33b84.png"},45217:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/custom_automation_plugin2-ed68a401f7dfe1dfa68040223145e21f.png"},36183:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/custom_job_plugin-f18e5be715690d46a13604124730611a.png"},88141:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/custom_job_plugin2-f7f8404759e338d9338021e2caebf6a6.png"},77982:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/custom_job_plugin3-7723824b84b2ddaa66231e53a53d17b1.png"},84817:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/cycle_media-5478e99081c62bbec80b9e536aed2f8b.png"},65553:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/dosing-settings-ccc07b36fe19e3f86996542ad7f31aa2.png"},57185:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/dosing_in_ui-a94391b5fd9d3ba9a1418ac30c4ef9d0.png"},1849:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/pump1-551c7cf2b00a891c5b79b4dd37dc77c5.JPG"},19582:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/pump10-026ad26e2b2c7e41f094ee5d6fa75a84.JPG"},29587:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/pump2-f54fa321bceadd6cc5e18acb113d7b26.JPG"},76210:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/pump3-089a87d6b99a9ffca5f118ef96316078.JPG"},76340:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/pump4-83d830dc1fd8836570f112cd2cf5f2dd.JPG"},34742:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/pump5-a4c7137563a9a86fdf50f270e13b8715.JPG"},73834:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/pump6-e376f4b6391c5be0c73f2de9bcadb3d6.JPG"},10603:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/pump7-90e8832c4027810e76085b462a4c73a7.JPG"},18470:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/pump8-4c52d2cb9f1b93e921325be1720d0c52.JPG"},74136:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/pump9-4ca0f2cc6f4b7a1b97e3a2e7f5aa603d.JPG"},3880:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/dosing_ui-0b97aaa62d9b2a8bd977f18e2470eff9.png"},37179:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/edit_config_page-eab605765714cc6c72a981f3edf103c8.png"},22600:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/example-event-logs-8c981a118f48caaff28d35196b2f2e04.png"},96901:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/export_data_choose_dataset-8ee2d0293609f605222bc40345cea6da.png"},31713:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/export_data_default-825348a5e2e31f30d9bdc9d45dd27454.png"},48804:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/export_data_downloading-30f02a0c514d6bf0b10771b5f9a7c3e7.png"},17438:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/export_data_selections-3d7cb5fd3abeac147483e6b6d27a0db4.png"},43596:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/export_data_sets-fdbb2465b5fb8036c0e017013f97d05f.png"},57331:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/find_config_to_edit-8ebe7a3a7597211a558c99be5d86002d.png"},13811:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/floaty-in-vial-6b12caa15ff11ea8f80e82f0be7e5644.png"},17258:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/forgot-stirbar-03ee83750821a456753efa47678ff6e0.png"},27930:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/generating_graph-37310b2416b6c7f06d7f3df87541d408.png"},20848:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/gr_interpretation-20f48c941ea1924b81df413c170f76a8.png"},27346:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/bot_faceplate_screwed-1ae238379c07249577b43c6ac7c44b4c.jpg"},38682:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/bottom_faceplate-8f481e08fbcf1fb370e3508d3a816023.jpg"},12744:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/bulb_in_pocket-2acf358362c52ba7d5bfc5517fa8c917.jpg"},1663:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/cable_channels-95e5eed62ecafec7a87a454a94f32994.jpg"},86674:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/cable_connector_closed-75857baa3129e5338325361cb5c5164c.jpg"},42401:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/cable_connector_open-9d69db318c0ac7b1fc7d76377683d7bb.jpg"},98849:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/cable_orientation-588da015fd91aa62385dcbef783e39a2.jpg"},24715:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/check_square_nuts-8599337077d03015e3db1fc4d8355278.jpg"},31088:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/fan_on_faceplate-6e7fbe32631ff62c774cee7e683b567b.jpg"},68700:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/finished-9a26fb89246cb52b1d735013b45cd913.jpg"},98973:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/finished_pio-a41f5bdf6ceb2d782d84265c7b6bc6b8.jpg"},74217:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/gpio_check_A-fb8060c1a7ed66a4f68e91248f311409.jpg"},16868:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/gpio_check_B-ce0aaa95b6d76c8781828a11b1416cc4.jpg"},14083:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/gpio_pushed-7cc8606a65f3a6ec4eae12a18e5e6f76.jpg"},63:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/gpio_unpushed-a8ba1e096611eba805663628082a03f5.jpg"},19066:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/hat_pieces-7840c2e8ec6c36add1752340e5506aca.jpg"},73813:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/heating_bottom_screws-357d00cd27aa546036c0442502e6e5c9.jpg"},49487:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/heating_connection-f39571d0c75bf67baf1f643b6b00c7e3.jpg"},61913:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/heating_parts-c442edc62bce4898e0cbd9bf5e99d9fe.jpg"},51007:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/heating_topview-bff2e988a806bee2722bb106657645b8.jpg"},60482:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/help-4d95de93b3cbd146d3b90b6cd01628a3.png"},22096:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/hex_one_side-bdbb4304f83e3298fbff3e205ff3861b.jpg"},51249:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/insert_heating_cable-dbacfb299ec50edc4dfc496dfeca9811.jpg"},47076:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/insert_square_nuts-2485930303bf11b466b19e40ebf01bb9.jpg"},85915:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/inserted_heating_cable-004599086c6e416ce0a6b9878b9795d7.jpg"},74442:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/ir_led_no_cap-9d418e22819839f8900a364e97ef92c6.jpg"},71614:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/ir_led_with_cap-b8adf5d75ed108d0eac49f30a776bcd4.jpg"},56184:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/ir_ref-f22d304844275985abb9310b844dba47.jpg"},88838:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/label_reference-45d84570b89387612a5ded353ae7d3b5.jpg"},35438:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/nav_antistatic_polyzip_bags-d3d75ab9868cce5d8b912559619b8d33.png"},17275:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/pocket_caps-56440cdcae97111ddba2267222cccbce.jpg"},6957:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/pockets_with_caps-e2aa18d97e352da1f612c841681dd222.jpg"},99532:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/remove_blue-6dcbe14e9d9d23d5015f2276c7f958ea.jpg"},96738:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/remove_blue_2-6f3bc1c7f8daa91161254c7cc55db7f0.jpg"},6180:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/rpi_hat_parts-1d81713893614c34584ce007986c5639.jpg"},4996:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/rpi_no_standoffs-17ca3c2d4885302777118e3643f6fcbf.jpg"},74933:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/rpi_types-a050b235303df1292c41f970736f8090.jpg"},82300:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/rpi_with_standoffs-dff03a148cf83acf2c479864323cf945.jpg"},24346:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/rpi_zero-363c852d9dd91db58a07052933059e43.jpg"},75986:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/screw_top_bottom-84cbf5d0417ae1cb243daee34b71a7c7.jpg"},80061:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/screw_top_bottom_gpio-4e714daeb650a475c7582f42a1aef69d.jpg"},92939:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/screw_vial_holder_faceplate-fceeba6475841a3befed0cb3c7169199.jpg"},88471:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/screwdriver-d0fb9cfae69257e1df5d07450effbd1c.jpg"},67304:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/single_pocket_with_cap-9f4a5b1dc489028354889d8b1e5343e5.jpg"},68762:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/square_nuts-48029c17ab44295d88d621b59ec986fb.jpg"},69845:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/standoff_on_hat-c19fb900cc092a953914debf87287082.jpg"},79488:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/sticky_side-782ca6f4ae73180c6b742484f1e1cb08.jpg"},7752:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/stirring_connection-f99273c905b2769ef79fed190c321769.jpg"},25775:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/stirring_parts-19a7f4b3bb808b033a5806fa28d384e5.jpg"},18371:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/three_bulbs-706d6299dc47770176081db933965623.jpg"},50383:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/top_faceplate_screws-eaf93355868c5657306396c75223b5bb.jpg"},38126:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/top_faceplate_screws_2-d806e5573e06c4f83ef8960a8f2a63be.jpg"},66067:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/vial_holder_alignment-3bd667772b201511b065a8fe1bde723e.jpg"},32781:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/vial_holder_on_fan-9b295b848d30fb1c535806348cc9e388.jpg"},7837:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/window_placement-177e6148985574faccf9260ad7d60181.jpg"},87124:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/window_screwing-63f7c2e514212ebec85c2c21883df46e.jpg"},24806:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/window_screws-7d930fe94a1672ac4e789ea46e6ec02c.jpg"},13458:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/lap_with_internet-ac1e9e680aaeaa368935366c54db0007.png"},29820:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/leader_as_worker_cluster-0545170277e1f3b1377ad5e0408c417d.png"},59718:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/leader_cluster-f913ccaa86e3a4394ddcb87a5f17b18c.png"},96350:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/led-settings-ab2142762cf6ea3133d51e5407f4950f.png"},4633:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/local_access_point-9455ab0ce2fa6461e80fc732e06e4a0d.png"},67581:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/main-screenshot-66f7b9be8f4becb029e699e1601f4032.png"},17720:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/manage_ui-7d96f0a854ab6ca4cc52a4c5bf68b51c.png"},28699:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/metadata-94521c4a87546515dc80e360fd958b2b.png"},91675:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/monitor_on_off-d10c01bf53580928f4099a9aa383fa8d.png"},54455:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/ngrok_url-f84eeb4bec1ebd1dd6d689b2d6232503.png"},72905:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/nod_interpretation-7813a476468c24072e93173ce731ed35.png"},91846:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/od_cal_45_deg-c45594c4a73969c06753bbd493274858.png"},77571:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/od_cal_45_deg_with_curve-59e5f9c792b50408351e8d93be35dc75.png"},7149:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/pinch_valves_in_pioreactor-f5e161093bb25cddc897b2ecdefc8df1.png"},21231:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/pio-unit-data-example-988f3604b005f0d38a1fbc14c0aeaa71.png"},26200:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/pio_blink-2abec7ff9fc89893b5edc4248fd3330d.gif"},34025:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/pioreactor_ap-3a41eaffc859b8cf6e7b9b3727ff03cc.png"},65867:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/pioreactor_page_activities-8e25cd000ba481f80acfdcb5a3530be4.png"},99452:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/pioreactor_page_manage-45d4297c86f8afb6fed9c6d7389ff72c.png"},89734:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/pioreactors_page_self_test-4e30b063187118d7aeba696ee2573de0.png"},94161:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/place-micro-sd-card-77d8eb409d37006ac7742f9ec021307a.JPG"},37287:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/plugin_page-2b8971737b3f594f623dce2012c0a13a.png"},11415:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/plugin_page_button_highlight-89fd844a6b09f352b97f4795a412d16a.png"},43648:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/pwm_config-ac34a1a7ecfe2f7f1d3dec272b6d0295.png"},11182:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/reboot-931868424abc626b17ee0001bcdf570a.png"},26063:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/reduce_to_10-c940db94daaaf3764036602c1acf8e36.png"},3175:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/rpi-click-settings-3d855eff8d3fa206b5dd7f5a271a898e.png"},50431:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/rpi-imager-settings-worker-f28115370065da445cb49ea805339204.png"},44479:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/rpi-imager-settings-cd3a9c0038de547f5f4e44604d15cd22.png"},17387:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/save_config-bbc8686e8ba6559fd28c55579eb0e80c.png"},62623:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/select_new_image-f8a21b2e99d8d6a49b71912320af160c.png"},64196:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/select_version-5244029e271f5c890bdd0b74bc6ffcfe.png"},95515:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/self_test_pre-deb40b86a47cef652bf26681acaad41f.png"},60055:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/self_test_results-1d0b585ef408fdb300664775b14c34b7.png"},33256:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/self_test_running-23c15b459ae252d1731eb66ad06b33d4.png"},57259:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/settings-a36c45ef92d8a8905c81c776d694d8b5.png"},53376:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/single_pioreactor_cluster-aca061f3f50df0dfe1e5e41c59c3e864.png"},9938:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/start_new_experiment-7e7c0c58b7e737e19fc2e5fbf4d55fb1.png"},61192:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/start_relay-d4a3d41f278b600344c8819419ab6125.png"},67609:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/stemma_qt-3d5f9560ca2fb4bf00f23778e0057eac.png"},92716:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/successuful_upload-edaf37800b289de114bbda1152911f87.png"},86831:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/temp-vs-stirring-separate-csv-51dcae12d1ba9b3733f73610aeb856be.png"},61160:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/upload_file_via_filezilla-2bbf4959e5ddb942db1574e1e93410f1.png"},88177:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/use_custom_image-33932c04d19243c39bb50742de143726.png"},73751:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/version_installed_vs_latest-e5eeca231d56d0ccfcc810051fcbda4d.png"},7181:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a=t.p+"assets/images/warming-room-2a055ab0234a4273bee3017b5b2d339a.png"},98563:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iODVweCIgaGVpZ2h0PSI4NXB4IiB2aWV3Qm94PSIwIDAgODUgODUiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8dGl0bGU+YXV0b21hdGlvbjwvdGl0bGU+CiAgICA8ZyBpZD0iUGFnZS0xIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4KICAgICAgICA8ZyBpZD0iYXV0b21hdGlvbiIgZmlsbD0iY3VycmVudCI+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMC41ODYsNzQuNzE5IEMyNi43NjU3LDc4LjgzMjMgMzQuMDQ3LDgxLjAwMDIgNDEuNjMzLDgwLjg3MTMgQzQ4Ljk3MjgsODAuNzQyMzkgNTUuOTUzLDc4LjQ3MjkgNjEuODY3LDc0LjQwMjUgQzYyLjcxODU2LDczLjgxMjY2IDYzLjg4NjUsNzQuMDMxNDEgNjQuNDcyNSw3NC44ODI5NyBDNjUuMDYyMzQsNzUuNzM0NTMgNjQuODQ3NSw3Ni45MDI0NyA2My45OTIwMyw3Ny40OTIzNyBDNTcuNDc2NDMsODEuOTc2NzcgNDkuNzgxMDMsODQuNDc2NzcxIDQxLjY5OTAzLDg0LjYxNzM3MiBDMzMuMzQzNTMsODQuNzY1ODEyIDI1LjMxNjAzLDgyLjM3NTE3IDE4LjUwODAzLDc3Ljg0MDA3IEMxNy42NDQ3NSw3Ny4yNjk3NiAxNy40MTQyMyw3Ni4xMDU2NyAxNy45ODQ1OSw3NS4yNDIzNyBDMTguNTU4ODEsNzQuMzc5MDkgMTkuNzIyODksNzQuMTQ0NjcgMjAuNTg2MTksNzQuNzE4OTMgTDIwLjU4Niw3NC43MTkgWiBNNTAuMTMzLDQuNDA3MDEgQzY4LjE3Miw4LjU1OTMxIDgxLjI4MSwyNC41MjgwMSA4MS42MSw0My4yOTQwMSBDODEuNzE5MzgsNDkuNTc5MjEgODAuMzk1Miw1NS42OTIwMSA3Ny43NzQxLDYxLjI2MzAxIEM3Ny4zMzI2OSw2Mi4yMDA1MSA3Ni4yMTU1LDYyLjYwMjgxIDc1LjI4MTksNjIuMTY1MzUgQzc0LjM0NDQsNjEuNzIzOTQgNzMuOTQyMSw2MC42MDY3NSA3NC4zNzk1Niw1OS42NjkyNSBDNzYuNzU4NDYsNTQuNjE0NTUgNzcuOTYxNTYsNDkuMDY3MjUgNzcuODYwMDYsNDMuMzU3MjUgQzc3LjU2MzE4LDI2LjMyNjI1IDY1LjY2MTA2LDExLjgzNDI1IDQ5LjI5NDA2LDguMDY0MjUgQzQ4LjI4NjI2LDcuODMzNzggNDcuNjUzNDYsNi44MjU5NSA0Ny44ODc4Niw1LjgxODE1IEM0OC4xMTgzMyw0LjgwNjQ1IDQ5LjEyNjE2LDQuMTc3NTUgNTAuMTMzOTYsNC40MDc5NSBMNTAuMTMzLDQuNDA3MDEgWiBNMzEuODI0LDYuMjkzNzEgQzMyLjExNjk3LDcuMjg5OCAzMS41NDY2Niw4LjMyODkxIDMwLjU1NDUsOC42MjE4MSBDMTQuNzY5NSwxMy4yNzAyMSAzLjgyNzUsMjcuOTQ5OCA0LjEyMDUsNDQuNjQ0OCBDNC4yMTAzNSw0OS43NjU5IDUuMzM5Myw1NC43MTg4IDcuNDE3NCw1OS4yNzM4IEM3Ljg0NzA5LDYwLjIxOTExIDcuNDI5MTIsNjEuMzI4NSA2LjQ4NzcxLDYxLjc1ODIgQzUuNTQ2Myw2Mi4xODc4OSA0LjQzMzAxLDYxLjc3MzgzIDQuMDAzMzEsNjAuODI4NTEgQzEuNzE0MjEsNTUuODA5MDEgMC40NjgxMTEsNTAuMzQ4NTEgMC4zNzA1MTEsNDQuNzExNTEgQzAuMDUwMjAxLDI2LjMxNjUxIDEyLjEwMDUxLDEwLjE0NTUxIDI5LjQ5NTUxLDUuMDIzNTEgQzMwLjQ4NzcsNC43MzA1NCAzMS41MzA3MSw1LjMwMDg1IDMxLjgyMzYxLDYuMjkzMDEgTDMxLjgyNCw2LjI5MzcxIFoiIGlkPSJGaWxsLTEiPjwvcGF0aD4KICAgICAgICAgICAgPHBhdGggZD0iTTQwLjM3NSwwLjI1IEMzNy4yNjk1LDAuMjUgMzQuNzUsMi43Njk1IDM0Ljc1LDUuODc1IEMzNC43NSw4Ljk4MDUgMzcuMjY5NSwxMS41IDQwLjM3NSwxMS41IEM0My40ODA1LDExLjUgNDYsOC45ODA1IDQ2LDUuODc1IEM0NiwyLjc2OTUgNDMuNDgwNSwwLjI1IDQwLjM3NSwwLjI1IFogTTQwLjM3NSw0IEM0MS40MTAyLDQgNDIuMjUsNC44Mzk4NCA0Mi4yNSw1Ljg3NSBDNDIuMjUsNi45MTAxNiA0MS40MTAxNiw3Ljc1IDQwLjM3NSw3Ljc1IEMzOS4zMzk4NCw3Ljc1IDM4LjUsNi45MTAxNiAzOC41LDUuODc1IEMzOC41LDQuODM5ODQgMzkuMzM5ODQsNCA0MC4zNzUsNCBaIiBpZD0iRmlsbC0yIj48L3BhdGg+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMS42MjUsNjQgQzguNTE5NSw2NCA2LDY2LjUxOTUgNiw2OS42MjUgQzYsNzIuNzMwNSA4LjUxOTUsNzUuMjUgMTEuNjI1LDc1LjI1IEMxNC43MzA1LDc1LjI1IDE3LjI1LDcyLjczMDUgMTcuMjUsNjkuNjI1IEMxNy4yNSw2Ni41MTk1IDE0LjczMDUsNjQgMTEuNjI1LDY0IFogTTExLjYyNSw2Ny43NSBDMTIuNjYwMiw2Ny43NSAxMy41LDY4LjU4OTg0IDEzLjUsNjkuNjI1IEMxMy41LDcwLjY2MDE2IDEyLjY2MDE2LDcxLjUgMTEuNjI1LDcxLjUgQzEwLjU4OTg0LDcxLjUgOS43NSw3MC42NjAxNiA5Ljc1LDY5LjYyNSBDOS43NSw2OC41ODk4NCAxMC41ODk4NCw2Ny43NSAxMS42MjUsNjcuNzUgWiIgaWQ9IkZpbGwtMyI+PC9wYXRoPgogICAgICAgICAgICA8cGF0aCBkPSJNNzAuMzc1LDY0IEM2Ny4yNjk1LDY0IDY0Ljc1LDY2LjUxOTUgNjQuNzUsNjkuNjI1IEM2NC43NSw3Mi43MzA1IDY3LjI2OTUsNzUuMjUgNzAuMzc1LDc1LjI1IEM3My40ODA1LDc1LjI1IDc2LDcyLjczMDUgNzYsNjkuNjI1IEM3Niw2Ni41MTk1IDczLjQ4MDUsNjQgNzAuMzc1LDY0IFogTTcwLjM3NSw2Ny43NSBDNzEuNDEwMiw2Ny43NSA3Mi4yNSw2OC41ODk4NCA3Mi4yNSw2OS42MjUgQzcyLjI1LDcwLjY2MDE2IDcxLjQxMDE2LDcxLjUgNzAuMzc1LDcxLjUgQzY5LjMzOTg0LDcxLjUgNjguNSw3MC42NjAxNiA2OC41LDY5LjYyNSBDNjguNSw2OC41ODk4NCA2OS4zMzk4NCw2Ny43NSA3MC4zNzUsNjcuNzUgWiIgaWQ9IkZpbGwtNCI+PC9wYXRoPgogICAgICAgICAgICA8cGF0aCBkPSJNNzIuMjA3LDUyLjYyMSBDNzMuMTE3MTYsNTIuMjYxNjIgNzQuMTMyOCw1Mi42NjAwNiA3NC41NjY0LDUzLjUxMTYyIEw3NC42NDA2Miw1My42Nzk1OSBMNzYuNzM0NDIsNTkuMDExNTkgTDgyLjA2NjQyLDU2LjkxMzg5IEM4Mi45NzI2Nyw1Ni41NTg0MiA4My45OTIyMiw1Ni45NTY4NiA4NC40MjE5Miw1Ny44MDg0MiBMODQuNDk2MTQsNTcuOTcyNDggQzg0Ljg1NTUyLDU4Ljg3ODczIDg0LjQ1NzA4LDU5Ljg5ODI4IDgzLjYwNTUyLDYwLjMyNzk4IEw4My40Mzc1NSw2MC40MDIyIEw3Ny41MjczNSw2Mi43MjY0IEM3NS45ODQzNSw2My4zMzU3OCA3NC4yNTAwNSw2Mi42Mjg3NCA3My41NTQ2NSw2MS4xNTIyIEw3My40NzI2Miw2MC45NjQ3IEw3MS4xNDg0Miw1NS4wNTA2IEM3MC43Njk1MSw1NC4wODU3NiA3MS4yNDYwNyw1Mi45OTk4IDcyLjIwNzAyLDUyLjYyMDkgTDcyLjIwNyw1Mi42MjEgWiIgaWQ9IkZpbGwtNSI+PC9wYXRoPgogICAgICAgICAgICA8cGF0aCBkPSJNMjguMjM0LDE0LjA4MiBDMjcuMzA4MjIsMTMuNzY5NSAyNi43ODg3LDEyLjgxMjUgMjcuMDAzNSwxMS44Nzg5IEwyNy4wNTQyOCwxMS43MDcwMiBMMjguODc0NTgsNi4yNzM0MiBMMjMuNDQwOTgsNC40NTMxMiBDMjIuNTE5MSw0LjE0NDUzIDIxLjk5NTY4LDMuMTgzNjIgMjIuMjEwNDgsMi4yNTM5MiBMMjIuMjYxMjYsMi4wODIwNCBDMjIuNTY5ODUsMS4xNTYyNiAyMy41MzA3NiwwLjYzMjg0IDI0LjQ2MDQ2LDAuODQ3NjQgTDI0LjYzNjI0LDAuODk4NDIgTDMwLjY1OTY0LDIuOTE3OTIgQzMyLjIyOTk0LDMuNDQ1MjYgMzMuMTA0OTQsNS4wOTc2MiAzMi42ODY5NCw2LjY3OTYyIEwzMi42MjgzNSw2Ljg3NDkzIEwzMC42MDg4NSwxMi44OTgzMyBDMzAuMjc2ODIsMTMuODc4OCAyOS4yMTQzNSwxNC40MTAwMyAyOC4yMzM4NSwxNC4wODE5MyBMMjguMjM0LDE0LjA4MiBaIiBpZD0iRmlsbC02Ij48L3BhdGg+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMC44OTUsODMuOTUzIEMyMS44NDAzMSw4My43MTA4MSAyMi40MjYyLDgyLjc4ODkgMjIuMjc3OCw4MS44NDc1IEwyMi4yMzg3NCw4MS42Njc4MSBMMjAuODAxMjQsNzYuMTI0ODEgTDI2LjM0ODE0LDc0LjY4NzMxIEMyNy4yODk1NSw3NC40NDEyMiAyNy44NzkzNCw3My41MTkzMSAyNy43MjcwNCw3Mi41Nzc5MSBMMjcuNjkxODgsNzIuNDAyMTMgQzI3LjQ0NTc5LDcxLjQ1NjgyIDI2LjUyMzg4LDcwLjg2NjkzIDI1LjU4MjQ4LDcxLjAxOTMzIEwyNS40MDY3LDcxLjA1NDQ5IEwxOS4yNTQ0LDcyLjY1MjE5IEMxNy42NTI4LDczLjA2NjI1IDE2LjY2NDYsNzQuNjU2MDkgMTYuOTY5Miw3Ni4yNjE1OSBMMTcuMDE2MDgsNzYuNDYwODEgTDE4LjYwOTg4LDgyLjYwOTIxIEMxOC44NzE2LDgzLjYxMzExIDE5Ljg5MTA4LDg0LjIxNDcxIDIwLjg5NTA4LDgzLjk1MzAxIEwyMC44OTUsODMuOTUzIFoiIGlkPSJGaWxsLTciPjwvcGF0aD4KICAgICAgICAgICAgPHBhdGggZD0iTTQxLDM2LjE4OCBDMzYuNjU2MiwzNi4xODggMzMuMTI1LDM5LjY5MTkgMzMuMTI1LDQ0LjAwMDUgQzMzLjEyNSw0OC4zMDkxIDM2LjY2MDIsNTEuODEzIDQxLDUxLjgxMyBDNDUuMzM5OCw1MS44MTMgNDguODc1LDQ4LjMwOTEgNDguODc1LDQ0LjAwMDUgQzQ4Ljg3NSwzOS42OTE5IDQ1LjM0MzgsMzYuMTg4IDQxLDM2LjE4OCBaIE00MSw0Ny45MDcgQzM4LjgyODEsNDcuOTA3IDM3LjA2MjUsNDYuMTUzMSAzNy4wNjI1LDQ0LjAwMDggQzM3LjA2MjUsNDEuODQ4NSAzOC44MjgxLDQwLjA5NDYgNDEsNDAuMDk0NiBDNDMuMTcxOSw0MC4wOTQ2IDQ0LjkzNzUsNDEuODQ4NSA0NC45Mzc1LDQ0LjAwMDggQzQ0LjkzNzUsNDYuMTUzMSA0My4xNzE5LDQ3LjkwNyA0MSw0Ny45MDcgWiIgaWQ9IkZpbGwtOCI+PC9wYXRoPgogICAgICAgICAgICA8cGF0aCBkPSJNNjUuMjMsNDkuODI0IEw2MC4xMzIzLDQ1Ljk0OSBDNjAuMjcyOTMsNDQuNjA5MiA2MC4yNjUxMSw0My4zMDg0IDYwLjEzMjMsNDIuMDUwNiBMNjUuMjMsMzguMTc1NiBDNjYuMDE5MDYsMzcuNTc0MDQgNjYuMjMzOSwzNi40ODQyIDY1LjcyNjA5LDM1LjYzMjYgTDYwLjc4ODU5LDI3LjMzNTcgQzYwLjI5NjQsMjYuNTA3NTcgNTkuMjcyOTksMjYuMTU2IDU4LjM3NDQ5LDI2LjUxMTQ4IEw1Mi4zMjM2OSwyOC44NzQ3OCBDNTEuMjIyMDksMjguMDg5NjIgNTAuMDM4NDksMjcuNDI1NTggNDguNzkyNDksMjYuODg2NDggTDQ3Ljg4MjMzLDIwLjY3MTY4IEM0Ny43NDE3MSwxOS43MTA3NCA0Ni45MTM1OCwxOC45OTk3OCA0NS45MzcwMywxOC45OTk3OCBMMzYuMDYyMDMsMTguOTk5NzggQzM1LjA4NTQ3LDE4Ljk5OTc4IDM0LjI1NzMzLDE5LjcxMDcyIDM0LjExNjczLDIwLjY3MTY4IEwzMy4yMDY1NywyNi44ODY0OCBDMzEuOTYwNDcsMjcuNDI1NTQgMzAuNzc2ODcsMjguMDg5NTggMjkuNjc1MzcsMjguODc0NzggTDIzLjYyNDU3LDI2LjUxMTQ4IEMyMi43MjYxMywyNi4xNTYwMSAyMS43MDI2NywyNi41MDc1NyAyMS4yMTA0NywyNy4zMzU3IEwxNi4yNzI5NywzNS42MzI2IEMxNS43NjUxNiwzNi40ODQxNiAxNS45OCwzNy41NzQgMTYuNzY5MDYsMzguMTc1NiBMMjEuODY2NzYsNDIuMDUwNiBDMjEuNzI2MTMsNDMuMzkwNCAyMS43MzM5NSw0NC42OTEyIDIxLjg2Njc2LDQ1Ljk0OSBMMTYuNzY5MDYsNDkuODI0IEMxNS45OCw1MC40MjU1NiAxNS43NjUxNiw1MS41MTU0IDE2LjI3Mjk3LDUyLjM2NyBMMjEuMjEwNDcsNjAuNjYzOSBDMjEuNzAyNjYsNjEuNDkyMDMgMjIuNzI2MDcsNjEuODQzNiAyMy42MjQ1Nyw2MS40ODgxMiBMMjkuNjc1MzcsNTkuMTI0ODIgQzMwLjc3Njk3LDU5LjkwOTk4IDMxLjk2MDU3LDYwLjU3NDAyIDMzLjIwNjU3LDYxLjExMzEyIEwzNC4xMTY3Myw2Ny4zMjc5MiBDMzQuMjU3MzUsNjguMjg4ODYgMzUuMDg1NDgsNjguOTk5ODIgMzYuMDYyMDMsNjguOTk5ODIgTDQ1LjkzNzAzLDY4Ljk5OTgyIEM0Ni45MTM1OSw2OC45OTk4MiA0Ny43NDE3Myw2OC4yODg4OCA0Ny44ODIzMyw2Ny4zMjc5MiBMNDguNzkyNDksNjEuMTEzMTIgQzUwLjAzODU5LDYwLjU3NDA2IDUxLjIyMjE5LDU5LjkxMDAyIDUyLjMyMzY5LDU5LjEyNDgyIEw1OC4zNzQ0OSw2MS40ODgxMiBDNTkuMjcyOTMsNjEuODQzNTkgNjAuMjk2MzksNjEuNDkyMDMgNjAuNzg4NTksNjAuNjYzOSBMNjUuNzI2MDksNTIuMzY3IEM2Ni4yMzM5LDUxLjUxNTQ0IDY2LjAxOTA2LDUwLjQyNTYgNjUuMjMsNDkuODI0IFogTTU4LjI1MzQsNTcuMjQ1OSBMNTIuNzM3OCw1NS4wODk3IEM1Mi4wNzc2NCw1NC44MzE4OSA1MS4zMjc2LDU0Ljk0NTE3IDUwLjc3NjksNTUuMzkwNDggQzQ5LjQ0NDksNTYuNDYwNzggNDcuOTQ4OCw1Ny4zMDA2OCA0Ni4zMzU1LDU3Ljg4MjY4IEM0NS42NTE5MSw1OC4xMjQ4NyA0NS4xNjM2LDU4LjcyNjQzIDQ1LjA1ODIsNTkuNDM3MzggTDQ0LjIzMzk4LDY1LjA5MzU4IEwzNy43NjUxOCw2NS4wOTM1OCBMMzYuOTQwOTYsNTkuNDM3MzggQzM2LjgzNTQ5LDU4LjcyNjQ0IDM2LjM0NzIxLDU4LjEyNDg4IDM1LjY2MzY2LDU3Ljg4MjY4IEMzNC4wNTAzNiw1Ny4zMDA2NSAzMi41NTQyNiw1Ni40NjA3OCAzMS4yMjIyNiw1NS4zOTA0OCBDMzAuNjcxNDgsNTQuOTQ1MTcgMjkuOTIxNDYsNTQuODMxODkgMjkuMjYxMzYsNTUuMDg5NyBMMjMuNzQ1NzYsNTcuMjQ1OSBMMjAuNTUwNDYsNTEuODcwOSBMMjUuMTcxNTYsNDguMzU5MiBDMjUuNzUzNTksNDcuOTEzODkgMjYuMDM4NzUsNDcuMTkxMiAyNS45MTM3NSw0Ni40NzY0IEMyNS42MjQ2OSw0NC44MDg0IDI1LjYzNjQxLDQzLjEzNjYgMjUuOTEzNzUsNDEuNTIzMyBDMjYuMDM4NzUsNDAuODA4NDYgMjUuNzUzNTksNDAuMDgxOSAyNS4xNzE1NiwzOS42NDA1IEwyMC41NTA0NiwzNi4xMjg4IEwyMy43NDU3NiwzMC43NTM4IEwyOS4yNjEzNiwzMi45MSBDMjkuOTIxNTIsMzMuMTY3ODEgMzAuNjcxNTYsMzMuMDU0NTMgMzEuMjIyMjYsMzIuNjA5MjIgQzMyLjU1NDI2LDMxLjUzODkyIDM0LjA1MDM2LDMwLjY5OTAyIDM1LjY2MzY2LDMwLjExNzAyIEMzNi4zNDcyNSwyOS44NzQ4MyAzNi44MzU1NiwyOS4yNzMyNyAzNi45NDA5NiwyOC41NjIzMiBMMzcuNzY1MTgsMjIuOTA2MTIgTDQ0LjIzMzk4LDIyLjkwNjEyIEw0NS4wNTgyLDI4LjU2MjMyIEM0NS4xNjM2NywyOS4yNzMyNiA0NS42NTE5NSwyOS44NzQ4MiA0Ni4zMzU1LDMwLjExNzAyIEM0Ny45NDg4LDMwLjY5OTA1IDQ5LjQ0NDksMzEuNTM4OTIgNTAuNzc2OSwzMi42MDkyMiBDNTEuMzI3NjgsMzMuMDU0NTMgNTIuMDc3NywzMy4xNjc4MSA1Mi43Mzc4LDMyLjkxIEw1OC4yNTM0LDMwLjc1MzggTDYxLjQ0ODcsMzYuMTI4OCBMNTYuODI3NiwzOS42NDA1IEM1Ni4yNDU1Nyw0MC4wODE5MSA1NS45NjA0MSw0MC44MDg1IDU2LjA4NTQxLDQxLjUyMzMgQzU2LjM3NDQ3LDQzLjE5MTMgNTYuMzYyNzUsNDQuODYzMSA1Ni4wODU0MSw0Ni40NzY0IEM1NS45NjA0MSw0Ny4xOTEyNCA1Ni4yNDU1Nyw0Ny45MTc4IDU2LjgyNzYsNDguMzU5MiBMNjEuNDQ4Nyw1MS44NzA5IEw1OC4yNTM0LDU3LjI0NTkgWiIgaWQ9IkZpbGwtOSI+PC9wYXRoPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+"},65978:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIxIiBoZWlnaHQ9Ijg2IiB2aWV3Qm94PSIwIDAgMTIxIDg2IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGNsYXNzPSJmZWF0dXJlU3ZnX184WVciIHN0cm9rZT0iIzUzMzJDQSIgZmlsbD0iIzUzMzJDQSIgYWx0PSJFeHBlcmltZW50cyI+PHRpdGxlPmludGVyZmFjZTwvdGl0bGU+PGcgc3Ryb2tlPSJjdXJyZW50IiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIHN0cm9rZS13aWR0aD0iNi41IiBkPSJNMy4yNSAzLjI1aDExNC40djc5LjNIMy4yNXoiPjwvcGF0aD48cGF0aCBkPSJtMjAuOCA2MC4xNDggMjQuMjY3LTIuNzU1TDcwLjE0OSA0MS41NCA5My42IDMyLjV2Mi4zMjhMNzAuMTQ5IDQ0LjMyIDQ1LjA2NyA1OS44MDIgMjAuOCA2Mi40bTMuOS0uNjVhNC41NSA0LjU1IDAgMSAxLTkuMSAwIDQuNTUgNC41NSAwIDAgMSA5LjEgMG0yNC43LTIuNmMwIDIuNTEzLTIuMzI4IDQuNTUtNS4yIDQuNTUtMi44NzIgMC01LjItMi4wMzctNS4yLTQuNTVzMi4zMjgtNC41NSA1LjItNC41NWMyLjg3MiAwIDUuMiAyLjAzNyA1LjIgNC41NW0yNi0xNi4yNWE1LjIgNS4yIDAgMSAxLTEwLjQgMCA1LjIgNS4yIDAgMCAxIDEwLjQgMG0yMy40LTkuMWE1LjIgNS4yIDAgMSAxLTEwLjQgMCA1LjIgNS4yIDAgMCAxIDEwLjQgMFoiIGZpbGw9ImN1cnJlbnQiIGZpbGwtcnVsZT0ibm9uemVybyI+PC9wYXRoPjxwYXRoIHN0cm9rZS13aWR0aD0iMy45IiBkPSJNNC43NDIgMTkuMzQ5SDExNC40Ij48L3BhdGg+PGNpcmNsZSBzdHJva2Utd2lkdGg9IjIuMyIgZmlsbD0iY3VycmVudCIgY3g9IjExLjA1IiBjeT0iMTIuMzUiIHI9IjEuMyI+PC9jaXJjbGU+PGNpcmNsZSBzdHJva2Utd2lkdGg9IjIuMyIgZmlsbD0iY3VycmVudCIgY3g9IjE3LjU1IiBjeT0iMTIuMzUiIHI9IjEuMyI+PC9jaXJjbGU+PGNpcmNsZSBzdHJva2Utd2lkdGg9IjIuMyIgZmlsbD0iY3VycmVudCIgY3g9IjI0LjA1IiBjeT0iMTIuMzUiIHI9IjEuMyI+PC9jaXJjbGU+PHBhdGggc3Ryb2tlLXdpZHRoPSIyLjYiIGQ9Ik0xMS4wNSAyNi42NzlWNzEuMzJoOTUuNDcyIj48L3BhdGg+PC9nPjwvc3ZnPg=="},74906:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iODZweCIgaGVpZ2h0PSI5N3B4IiB2aWV3Qm94PSIwIDAgODYgOTciIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8dGl0bGU+b3B0aWNhbF9kZW5zaXR5PC90aXRsZT4KICAgIDxnIGlkPSJQYWdlLTEiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSJHcm91cC05IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyLjAwMDAwMCwgMy4wMDAwMDApIiBzdHJva2U9ImN1cnJlbnQiPgogICAgICAgICAgICA8cGF0aCBkPSJNMTYuNzIyMTAyMiw3LjMwNzU5MTIyIEMzMC43NTU3MTEsLTIuNTE4ODQ3NDEgNDguMjMzNzQwOSwtMS43NzA4NDQzOCA1NS43NjAzNzQ4LDguOTc4MzAyNzQgQzU1LjgyMzEzNTMsOS4wNjc5MzQwOSA1NS44ODUwMDU4LDkuMTU3OTc3OCA1NS45NDU5ODg1LDkuMjQ4NDI2NDUgQzU3LjMzODM1MDUsOC40MDUwOTM2MSA1OC45NzI1MjU0LDcuOTIgNjAuNzIsNy45MiBDNjUuODIzMTExMSw3LjkyIDY5Ljk2LDEyLjA1Njg4ODkgNjkuOTYsMTcuMTYgQzY5Ljk2LDIyLjI2MzExMTEgNjUuODIzMTExMSwyNi40IDYwLjcyLDI2LjQgQzU5Ljk0MjUzNjUsMjYuNCA1OS4xODc0OTk5LDI2LjMwMzk3OTUgNTguNDY2MTAyLDI2LjEyMzE1MDcgQzU2LjY3NzQzMjYsMzMuNDgxNTYzNSA1MS42Mjk3MTY2LDQwLjg3NjIyNSA0My45Nzg0NTQ1LDQ2LjIzMzY5NjQgQzI5Ljk0NDg0NTcsNTYuMDYwMTM1IDEyLjQ2NjgxNTgsNTUuMzEyMTMyIDQuOTQwMTgxOTMsNDQuNTYyOTg0OSBDLTIuNTg2NDUxOTEsMzMuODEzODM3NyAyLjY4ODQ5MzQ4LDE3LjEzNDAyOTkgMTYuNzIyMTAyMiw3LjMwNzU5MTIyIFoiIGlkPSJDb21iaW5lZC1TaGFwZSIgc3Ryb2tlLXdpZHRoPSI2LjAxOTIiPjwvcGF0aD4KICAgICAgICAgICAgPGNpcmNsZSBpZD0iT3ZhbCIgc3Ryb2tlLXdpZHRoPSIzLjMyIiBmaWxsPSJjdXJyZW50IiBjeD0iNjEuMzgiIGN5PSI2MS4zOCIgcj0iMi42NCI+PC9jaXJjbGU+CiAgICAgICAgICAgIDxlbGxpcHNlIGlkPSJPdmFsIiBzdHJva2Utd2lkdGg9IjYuMDE5MiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNTUuNDQwMDAwLCA2Ny4zMjAwMDApIHJvdGF0ZSgtMzMuMDAwMDAwKSB0cmFuc2xhdGUoLTU1LjQ0MDAwMCwgLTY3LjMyMDAwMCkgIiBjeD0iNTUuNDQiIGN5PSI2Ny4zMiIgcng9IjE5LjQzMDQiIHJ5PSIxNC4xNTA0Ij48L2VsbGlwc2U+CiAgICAgICAgICAgIDxjaXJjbGUgaWQ9Ik92YWwiIHN0cm9rZS13aWR0aD0iMy4zMiIgZmlsbD0iY3VycmVudCIgY3g9IjE2IiBjeT0iMzkiIHI9IjQuMzQiPjwvY2lyY2xlPgogICAgICAgICAgICA8ZWxsaXBzZSBpZD0iT3ZhbCIgc3Ryb2tlLXdpZHRoPSI2LjAxOTIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE2LjUwMDAwMCwgNjcuOTgwMDAwKSByb3RhdGUoMzQuMDAwMDAwKSB0cmFuc2xhdGUoLTE2LjUwMDAwMCwgLTY3Ljk4MDAwMCkgIiBjeD0iMTYuNSIgY3k9IjY3Ljk4IiByeD0iOS41MzA0IiByeT0iNi44OTA0Ij48L2VsbGlwc2U+CiAgICAgICAgICAgIDxjaXJjbGUgaWQ9Ik92YWwiIHN0cm9rZS13aWR0aD0iNC42OTkyIiBmaWxsPSJjdXJyZW50IiBjeD0iNzMuOTIiIGN5PSIzOC4yOCIgcj0iNi4zMDk2Ij48L2NpcmNsZT4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg=="},62921:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>a});const a="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iOTBweCIgaGVpZ2h0PSI5MHB4IiB2aWV3Qm94PSIwIDAgOTAgOTAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8dGl0bGU+cGx1Z2luczwvdGl0bGU+CiAgICA8ZyBpZD0iUGFnZS0xIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4KICAgICAgICA8ZyBpZD0icGx1Z2lucyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsIDAuMDAwMDAwKSI+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik03Ljg4NjcsNDEuODMxNSBMMzMuOTQ4Nyw0MS44MzE1IEMzOC4zMDAzLDQxLjgyNzU5IDQxLjgyNzYsMzguMzAwMyA0MS44MzE1LDMzLjk0ODcgTDQxLjgzMTUsNy44ODY3IEM0MS44Mjc1OSwzLjUzMTIgMzguMzAwMywwLjAwMzkgMzMuOTQ4NywtNC45NzM3OTkxNWUtMTQgTDcuODg2NywtNC45NzM3OTkxNWUtMTQgQzMuNTMxMiwwLjAwMzkxIDAuMDAzOSwzLjUzMTIgMS40OTIxMzk3NWUtMTMsNy44ODY3IEwxLjQ5MjEzOTc1ZS0xMywzMy45NDg3IEMwLjAwMzkwNiwzOC4zMDAzIDMuNTMxMiw0MS44Mjc2IDcuODg2Nyw0MS44MzE1IFogTTUsNy44ODY1IEM1LDYuMjkyNyA2LjI5Myw0Ljk5OTggNy44ODY3LDQuOTk5OCBMMzMuOTQ4Nyw0Ljk5OTggQzM1LjUzODUsNC45OTk4IDM2LjgzMTUsNi4yOTI4IDM2LjgzMTUsNy44ODY1IEwzNi44MzE1LDMzLjk0ODUgQzM2LjgzMTUsMzUuNTM4MyAzNS41NDI0LDM2LjgzMTMgMzMuOTQ4NywzNi44MzEzIEw3Ljg4NjcsMzYuODMxMyBDNi4yOTI5LDM2LjgzMTMgNSwzNS41MzgzIDUsMzMuOTQ4NSBMNSw3Ljg4NjUgWiBNNTYuMDUxLDQxLjgzMTUgTDgyLjExMyw0MS44MzE1IEM4Ni40Njg1LDQxLjgyNzU5IDg5Ljk5NTgsMzguMzAwMyA4OS45OTk3LDMzLjk0ODcgTDg5Ljk5OTcsNy44ODY3IEM4OS45OTU3OSwzLjUzMTIgODYuNDY4NSwwLjAwMzkgODIuMTEzLC00Ljk3Mzc5OTE1ZS0xNCBMNTYuMDUxLC00Ljk3Mzc5OTE1ZS0xNCBDNTEuNjk5NCwwLjAwMzkxIDQ4LjE3MjEsMy41MzEyIDQ4LjE2ODIsNy44ODY3IEw0OC4xNjgyLDMzLjk0ODcgQzQ4LjE3MjEsMzguMzAwMyA1MS42OTk0LDQxLjgyNzYgNTYuMDUxLDQxLjgzMTUgWiBNNTMuMTY4Miw3Ljg4NjUgQzUzLjE2ODIsNi4yOTI3IDU0LjQ2MTIsNC45OTk4IDU2LjA1MSw0Ljk5OTggTDgyLjExMyw0Ljk5OTggQzgzLjcwNjgsNC45OTk4IDg0Ljk5OTcsNi4yOTI4IDg0Ljk5OTcsNy44ODY1IEw4NC45OTk3LDMzLjk0ODUgQzg0Ljk5OTcsMzUuNTM4MyA4My43MDY3LDM2LjgzMTMgODIuMTEzLDM2LjgzMTMgTDU2LjA1MSwzNi44MzEzIEM1NC40NjEyLDM2LjgzMTMgNTMuMTY4MiwzNS41MzgzIDUzLjE2ODIsMzMuOTQ4NSBMNTMuMTY4Miw3Ljg4NjUgWiBNNy44ODcyLDg5Ljk5OTUgTDMzLjk0OTIsODkuOTk5NSBDMzguMzAwOCw4OS45OTU1OTQgNDEuODI4MSw4Ni40NjgzIDQxLjgzMiw4Mi4xMTI4IEw0MS44MzIsNTYuMDUwOCBDNDEuODI4MDksNTEuNjk5MiAzOC4zMDA4LDQ4LjE3MTkgMzMuOTQ5Miw0OC4xNjggTDcuODg3Miw0OC4xNjggQzMuNTMxNyw0OC4xNzE5MSAwLjAwNDQsNTEuNjk5MiAwLjAwMDUsNTYuMDUwOCBMMC4wMDA1LDgyLjExMjggQzAuMDA0NDA2LDg2LjQ2ODMgMy41MzE3LDg5Ljk5NTYgNy44ODcyLDg5Ljk5OTUgWiBNNS4wMDA1LDU2LjA1MDUgQzUuMDAwNSw1NC40NjA3IDYuMjkzNSw1My4xNjc3IDcuODg3Miw1My4xNjc3IEwzMy45NDkyLDUzLjE2NzcgQzM1LjU0Myw1My4xNjc3IDM2LjgzMiw1NC40NjA3IDM2LjgzMiw1Ni4wNTA1IEwzNi44MzIsODIuMTEyNSBDMzYuODMyLDgzLjcwNjMgMzUuNTM5LDg0Ljk5OTIgMzMuOTQ5Miw4NC45OTkyIEw3Ljg4NzIsODQuOTk5MiBDNi4yOTM0LDg0Ljk5OTIgNS4wMDA1LDgzLjcwNjIgNS4wMDA1LDgyLjExMjUgTDUuMDAwNSw1Ni4wNTA1IFoiIGlkPSJGaWxsLTEiIGZpbGw9IiM0RTMyQzIiPjwvcGF0aD4KICAgICAgICAgICAgPGxpbmUgeDE9IjY5LjA4Mzk1IiB5MT0iNTYuOTA3MDE0MSIgeDI9IjY5LjA4Mzk1IiB5Mj0iODMuMDkyMDU4MiIgaWQ9IlBhdGgtMjAiIHN0cm9rZT0iIzRFMzJDMiIgc3Ryb2tlLXdpZHRoPSI0IiBzdHJva2UtbGluZWNhcD0icm91bmQiPjwvbGluZT4KICAgICAgICAgICAgPGxpbmUgeDE9IjY5LjA4Mzk1IiB5MT0iNTYuOTA3MDE0MSIgeDI9IjY5LjA4Mzk1IiB5Mj0iODMuMDkyMDU4MiIgaWQ9IlBhdGgtMjAiIHN0cm9rZT0iIzRFMzJDMiIgc3Ryb2tlLXdpZHRoPSI0IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDY5LjA4Mzk1MCwgNjkuOTk5NTM2KSByb3RhdGUoOTAuMDAwMDAwKSB0cmFuc2xhdGUoLTY5LjA4Mzk1MCwgLTY5Ljk5OTUzNikgIj48L2xpbmU+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4="},27356:(e,s,t)=>{var a={"./developer-guide/activities.png":35046,"./developer-guide/activities_with_example.png":89586,"./developer-guide/adding_chart_to_config.png":37227,"./developer-guide/arch.png":3778,"./developer-guide/automations_example.png":97758,"./developer-guide/background_job_dodging_timing.png":19505,"./developer-guide/card_with_example.png":74535,"./developer-guide/custom_chart.png":14637,"./developer-guide/dropdown_automations.png":13079,"./developer-guide/dropdown_automations_with_example.png":93836,"./developer-guide/pinout.png":88884,"./developer-guide/python-package-new-config.png":34015,"./developer-guide/python-package-plugins.png":64506,"./developer-guide/python-package-pull-or-issue.png":86890,"./developer-guide/settings_with_example.png":80242,"./experiments/aa-experiment.png":45048,"./experiments/aa-experiment2.png":47259,"./experiments/aa-test-results.png":60875,"./experiments/algae_exp.jpg":61502,"./experiments/blank.png":375,"./experiments/calibrate.png":56056,"./experiments/ethanol_gr.png":90152,"./experiments/media_exp.jpg":63916,"./experiments/nod_algae_intensity.png":13140,"./experiments/one_vial_ypd.jpg":1325,"./experiments/osmosis.png":10370,"./experiments/salt_OD.png":55176,"./experiments/salt_gr_depletion.png":61496,"./experiments/salt_growth_rate.png":18968,"./experiments/salt_materials.jpg":99637,"./experiments/salt_normalized_OD.png":6912,"./experiments/start-exp/manage_all_pioreactors.png":28547,"./experiments/start-exp/start_automation.png":44277,"./experiments/tea2-exp-results.png":98058,"./experiments/temp.png":55870,"./experiments/temp_growth_rate.png":36872,"./experiments/temp_normal_od.png":4605,"./experiments/temp_od.png":5281,"./experiments/temperature_OD.png":95218,"./experiments/temperature_growth_rate.png":64058,"./experiments/temperature_normal_OD.png":73832,"./experiments/temperature_temp.png":23331,"./experiments/three_pioreactors.jpg":50469,"./experiments/turbidostat/PID_turbidostat.png":58564,"./experiments/turbidostat/adjusting_tubes.png":77642,"./experiments/turbidostat/dosing_automation.png":59221,"./experiments/turbidostat/dosing_settings.png":96089,"./experiments/turbidostat/general_automations.png":93099,"./experiments/turbidostat/luer_attach.png":50372,"./experiments/turbidostat/media_flow.png":58001,"./experiments/turbidostat/new data.png":17407,"./experiments/turbidostat/overview_settings.png":93241,"./experiments/turbidostat/pump_to_pwm.png":76622,"./experiments/turbidostat/run_pump_calc.png":44968,"./experiments/turbidostat/salt_turbidostat.png":82836,"./experiments/turbidostat/salt_turbidostat_test.png":1792,"./experiments/turbidostat/salt_vs_wt_gr.png":15413,"./experiments/turbidostat/sink_and_source.png":76867,"./experiments/turbidostat/ssh_into_unit.png":55826,"./experiments/turbidostat/turbido_mats_1.jpg":26789,"./experiments/turbidostat/turbido_mats_2.jpg":73735,"./experiments/turbidostat/turbidostat_gr_results.png":93397,"./experiments/turbidostat/turbidostat_results.png":27333,"./experiments/turbidostat/turbidostat_settings.png":26566,"./experiments/two_pio_plus_vials.jpg":21822,"./experiments/yeast_growth_vs_temp.png":83831,"./experiments/ypd-conc-exp.png":79128,"./experiments/ypd_vials.jpg":16175,"./misc/automation.svg":98563,"./misc/colour-Docs-logo.png":85573,"./misc/favicon.ico":53144,"./misc/interface.svg":65978,"./misc/logo.png":45517,"./misc/optical_density.svg":74906,"./misc/plugins.svg":62921,"./misc/white-Docs-logo.png":6753,"./user-guide/absorption_vs_od.png":71226,"./user-guide/add-teh/00_teh_parts.jpeg":20290,"./user-guide/add-teh/01_teh_unplug_from_hats.jpeg":73270,"./user-guide/add-teh/02_teh_unscrew_top.jpeg":6829,"./user-guide/add-teh/03_teh_remove_top.jpeg":96124,"./user-guide/add-teh/04_teh_place_hat_1.jpeg":20554,"./user-guide/add-teh/05_teh_place_hat_2.jpeg":81981,"./user-guide/add-teh/06_teh_place_standoffs_1.jpeg":91378,"./user-guide/add-teh/07_teh_place_standoffs_2.jpeg":93576,"./user-guide/add-teh/08_teh_place_top_back.jpeg":43297,"./user-guide/add-teh/09_teh_screw_top_on.jpeg":26393,"./user-guide/add-teh/10_teh_replug_peripherals.jpeg":55872,"./user-guide/add-teh/11_teh_insert_pt1000.jpeg":47526,"./user-guide/add-teh/12_teh_screw_in_thermowell.jpeg":47124,"./user-guide/add-teh/13_teh_insert_pt1000_vial.jpeg":53971,"./user-guide/add-teh/14_teh_finished.jpeg":68909,"./user-guide/add-teh/config.png":54380,"./user-guide/add-teh/install_from_ui.png":20296,"./user-guide/add_media.png":6856,"./user-guide/add_media_ui.png":36231,"./user-guide/add_new_od600.png":77284,"./user-guide/add_new_pioreactor.png":35699,"./user-guide/add_new_pioreactor_modal.png":41577,"./user-guide/adding-leds/attach3.JPG":81145,"./user-guide/adding-leds/attached4.JPG":65500,"./user-guide/adding-leds/channelD5.JPG":82897,"./user-guide/adding-leds/close7.JPG":36982,"./user-guide/adding-leds/led_hardware1.jpg":11284,"./user-guide/adding-leds/led_hardware2.jpg":90865,"./user-guide/adding-leds/plugin6.JPG":38869,"./user-guide/all-four-graphs.png":3614,"./user-guide/assign_labels_bulk.png":47053,"./user-guide/automations.png":79601,"./user-guide/aux_position.png":87289,"./user-guide/badge.png":77363,"./user-guide/blue-tag.png":17717,"./user-guide/bubble-noise.png":48587,"./user-guide/calibrate.png":24925,"./user-guide/calibrate_stirring.png":27801,"./user-guide/change_angle.png":72827,"./user-guide/change_leds.png":52722,"./user-guide/choose-os.png":71457,"./user-guide/choose-storage.png":43557,"./user-guide/choose_config_version.png":34766,"./user-guide/choose_config_version2.png":66772,"./user-guide/click_update.png":58335,"./user-guide/click_update_develop.png":88419,"./user-guide/configini.png":90665,"./user-guide/connect_via_filezilla.png":81232,"./user-guide/create_new_experiment_page.png":66811,"./user-guide/custom_automation_plugin.png":45307,"./user-guide/custom_automation_plugin2.png":45217,"./user-guide/custom_job_plugin.png":36183,"./user-guide/custom_job_plugin2.png":88141,"./user-guide/custom_job_plugin3.png":77982,"./user-guide/cycle_media.png":84817,"./user-guide/dosing-settings.png":65553,"./user-guide/dosing_in_ui.png":57185,"./user-guide/dosing_platform/pump1.JPG":1849,"./user-guide/dosing_platform/pump10.JPG":19582,"./user-guide/dosing_platform/pump2.JPG":29587,"./user-guide/dosing_platform/pump3.JPG":76210,"./user-guide/dosing_platform/pump4.JPG":76340,"./user-guide/dosing_platform/pump5.JPG":34742,"./user-guide/dosing_platform/pump6.JPG":73834,"./user-guide/dosing_platform/pump7.JPG":10603,"./user-guide/dosing_platform/pump8.JPG":18470,"./user-guide/dosing_platform/pump9.JPG":74136,"./user-guide/dosing_ui.png":3880,"./user-guide/edit_config_page.png":37179,"./user-guide/example-event-logs.png":22600,"./user-guide/export_data_choose_dataset.png":96901,"./user-guide/export_data_default.png":31713,"./user-guide/export_data_downloading.png":48804,"./user-guide/export_data_selections.png":17438,"./user-guide/export_data_sets.png":43596,"./user-guide/find_config_to_edit.png":57331,"./user-guide/floaty-in-vial.png":13811,"./user-guide/forgot-stirbar.png":17258,"./user-guide/generating_graph.png":27930,"./user-guide/gr_interpretation.png":20848,"./user-guide/hardware-assembly/bot_faceplate_screwed.jpg":27346,"./user-guide/hardware-assembly/bottom_faceplate.jpg":38682,"./user-guide/hardware-assembly/bulb_in_pocket.jpg":12744,"./user-guide/hardware-assembly/cable_channels.jpg":1663,"./user-guide/hardware-assembly/cable_connector_closed.jpg":86674,"./user-guide/hardware-assembly/cable_connector_open.jpg":42401,"./user-guide/hardware-assembly/cable_orientation.jpg":98849,"./user-guide/hardware-assembly/check_square_nuts.jpg":24715,"./user-guide/hardware-assembly/fan_on_faceplate.jpg":31088,"./user-guide/hardware-assembly/finished.jpg":68700,"./user-guide/hardware-assembly/finished_pio.jpg":98973,"./user-guide/hardware-assembly/gpio_check_A.jpg":74217,"./user-guide/hardware-assembly/gpio_check_B.jpg":16868,"./user-guide/hardware-assembly/gpio_pushed.jpg":14083,"./user-guide/hardware-assembly/gpio_unpushed.jpg":63,"./user-guide/hardware-assembly/hat_pieces.jpg":19066,"./user-guide/hardware-assembly/heating_bottom_screws.jpg":73813,"./user-guide/hardware-assembly/heating_connection.jpg":49487,"./user-guide/hardware-assembly/heating_parts.jpg":61913,"./user-guide/hardware-assembly/heating_topview.jpg":51007,"./user-guide/hardware-assembly/help.png":60482,"./user-guide/hardware-assembly/hex_one_side.jpg":22096,"./user-guide/hardware-assembly/insert_heating_cable.jpg":51249,"./user-guide/hardware-assembly/insert_square_nuts.jpg":47076,"./user-guide/hardware-assembly/inserted_heating_cable.jpg":85915,"./user-guide/hardware-assembly/ir_led_no_cap.jpg":74442,"./user-guide/hardware-assembly/ir_led_with_cap.jpg":71614,"./user-guide/hardware-assembly/ir_ref.jpg":56184,"./user-guide/hardware-assembly/label_reference.jpg":88838,"./user-guide/hardware-assembly/nav_antistatic_polyzip_bags.png":35438,"./user-guide/hardware-assembly/pocket_caps.jpg":17275,"./user-guide/hardware-assembly/pockets_with_caps.jpg":6957,"./user-guide/hardware-assembly/remove_blue.jpg":99532,"./user-guide/hardware-assembly/remove_blue_2.jpg":96738,"./user-guide/hardware-assembly/rpi_hat_parts.jpg":6180,"./user-guide/hardware-assembly/rpi_no_standoffs.jpg":4996,"./user-guide/hardware-assembly/rpi_types.jpg":74933,"./user-guide/hardware-assembly/rpi_with_standoffs.jpg":82300,"./user-guide/hardware-assembly/rpi_zero.jpg":24346,"./user-guide/hardware-assembly/screw_top_bottom.jpg":75986,"./user-guide/hardware-assembly/screw_top_bottom_gpio.jpg":80061,"./user-guide/hardware-assembly/screw_vial_holder_faceplate.jpg":92939,"./user-guide/hardware-assembly/screwdriver.jpg":88471,"./user-guide/hardware-assembly/single_pocket_with_cap.jpg":67304,"./user-guide/hardware-assembly/square_nuts.jpg":68762,"./user-guide/hardware-assembly/standoff_on_hat.jpg":69845,"./user-guide/hardware-assembly/sticky_side.jpg":79488,"./user-guide/hardware-assembly/stirring_connection.jpg":7752,"./user-guide/hardware-assembly/stirring_parts.jpg":25775,"./user-guide/hardware-assembly/three_bulbs.jpg":18371,"./user-guide/hardware-assembly/top_faceplate_screws.jpg":50383,"./user-guide/hardware-assembly/top_faceplate_screws_2.jpg":38126,"./user-guide/hardware-assembly/vial_holder_alignment.jpg":66067,"./user-guide/hardware-assembly/vial_holder_on_fan.jpg":32781,"./user-guide/hardware-assembly/window_placement.jpg":7837,"./user-guide/hardware-assembly/window_screwing.jpg":87124,"./user-guide/hardware-assembly/window_screws.jpg":24806,"./user-guide/lap_with_internet.png":13458,"./user-guide/leader_as_worker_cluster.png":29820,"./user-guide/leader_cluster.png":59718,"./user-guide/led-settings.png":96350,"./user-guide/local_access_point.png":4633,"./user-guide/main-screenshot.png":67581,"./user-guide/manage_ui.png":17720,"./user-guide/metadata.png":28699,"./user-guide/monitor_on_off.png":91675,"./user-guide/ngrok_url.png":54455,"./user-guide/nod_interpretation.png":72905,"./user-guide/od_cal_45_deg.png":91846,"./user-guide/od_cal_45_deg_with_curve.png":77571,"./user-guide/pinch_valves_in_pioreactor.png":7149,"./user-guide/pio-unit-data-example.png":21231,"./user-guide/pio_blink.gif":26200,"./user-guide/pioreactor_ap.png":34025,"./user-guide/pioreactor_page_activities.png":65867,"./user-guide/pioreactor_page_manage.png":99452,"./user-guide/pioreactors_page_self_test.png":89734,"./user-guide/place-micro-sd-card.JPG":94161,"./user-guide/plugin_page.png":37287,"./user-guide/plugin_page_button_highlight.png":11415,"./user-guide/pwm_config.png":43648,"./user-guide/reboot.png":11182,"./user-guide/reduce_to_10.png":26063,"./user-guide/rpi-click-settings.png":3175,"./user-guide/rpi-imager-settings-worker.png":50431,"./user-guide/rpi-imager-settings.png":44479,"./user-guide/save_config.png":17387,"./user-guide/select_new_image.png":62623,"./user-guide/select_version.png":64196,"./user-guide/self_test_pre.png":95515,"./user-guide/self_test_results.png":60055,"./user-guide/self_test_running.png":33256,"./user-guide/settings.png":57259,"./user-guide/single_pioreactor_cluster.png":53376,"./user-guide/start_new_experiment.png":9938,"./user-guide/start_relay.png":61192,"./user-guide/stemma_qt.png":67609,"./user-guide/successuful_upload.png":92716,"./user-guide/temp-vs-stirring-separate-csv.png":86831,"./user-guide/upload_file_via_filezilla.png":61160,"./user-guide/use_custom_image.png":88177,"./user-guide/version_installed_vs_latest.png":73751,"./user-guide/warming-room.png":7181};function i(e){var s=g(e);return t(s)}function g(e){if(!t.o(a,e)){var s=new Error("Cannot find module '"+e+"'");throw s.code="MODULE_NOT_FOUND",s}return a[e]}i.keys=function(){return Object.keys(a)},i.resolve=g,e.exports=i,i.id=27356}}]); \ No newline at end of file diff --git a/assets/js/main.77567ee5.js b/assets/js/main.77567ee5.js deleted file mode 100644 index e266ad72a..000000000 --- a/assets/js/main.77567ee5.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see main.77567ee5.js.LICENSE.txt */ -(self.webpackChunkpioreactor=self.webpackChunkpioreactor||[]).push([[179],{723:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(67294),a=n(87462),i=n(68356),o=n.n(i),l=n(16887);const s={"003b35d7":[()=>n.e(9545).then(n.bind(n,2661)),"@site/user-guide/03-Extending your Pioreactor/04-Experiment Profiles/01-experiment-profiles-intro.md",2661],"00cdadf9":[()=>Promise.all([n.e(532),n.e(182)]).then(n.bind(n,79406)),"@site/user-guide/01-getting-started/01b-hardware-set-up/02-rpi-hat-assembly.md",79406],"00d2eda0":[()=>n.e(4469).then(n.bind(n,84300)),"@site/user-guide/50-Troubleshooting/Stirring troubleshooting.md",84300],"011272c3":[()=>n.e(7543).then(n.bind(n,94186)),"@site/developer-guide/10-Hardware/05-pinout.md",94186],"063154f2":[()=>n.e(8756).then(n.bind(n,35710)),"@site/user-guide/29-Automations/04-writing-automations.md",35710],"07a88ca4":[()=>n.e(5953).then(n.t.bind(n,44654,19)),"~docs/experiments/version-current-metadata-prop-751.json",44654],"0fa95718":[()=>Promise.all([n.e(532),n.e(3582)]).then(n.bind(n,82756)),"@site/experiments/02-Secondary level education/low-vs-high-conc-media.md",82756],"12af2043":[()=>n.e(9631).then(n.bind(n,60277)),"@site/user-guide/50-Troubleshooting/Hardware troubleshooting.md",60277],"136add71":[()=>Promise.all([n.e(532),n.e(4919)]).then(n.bind(n,6043)),"@site/user-guide/01-getting-started/01b-hardware-set-up/05-optics-assembly.md",6043],17896441:[()=>Promise.all([n.e(532),n.e(7918)]).then(n.bind(n,57436)),"@theme/DocItem",57436],"17e57afd":[()=>n.e(8961).then(n.bind(n,99687)),"@site/user-guide/03-Extending your Pioreactor/04-Experiment Profiles/02-create-edit-experiment-profiles.md",99687],"1a4e3797":[()=>Promise.all([n.e(532),n.e(7920)]).then(n.bind(n,51473)),"@theme/SearchPage",51473],"1aa51b29":[()=>n.e(8470).then(n.bind(n,7190)),"@site/user-guide/02-Experiment basics/09-od-normal-growth-rate.md",7190],"1be78505":[()=>Promise.all([n.e(532),n.e(9514)]).then(n.bind(n,19963)),"@theme/DocPage",19963],"1f29aed5":[()=>n.e(8289).then(n.t.bind(n,43177,19)),"~docs/developer-guide/version-current-metadata-prop-751.json",43177],"242a2306":[()=>Promise.all([n.e(532),n.e(5879)]).then(n.bind(n,9913)),"@site/experiments/02-Secondary level education/yeast-in-ethanol.md",9913],"270e3b24":[()=>n.e(3255).then(n.bind(n,58093)),"@site/developer-guide/09-Storage and the filesystem/02-filesystem.md",58093],"27a03a91":[()=>Promise.all([n.e(532),n.e(7615)]).then(n.bind(n,68195)),"@site/experiments/03-University level education/00-continuous-cultures-using-turbidostat.md",68195],28292353:[()=>Promise.all([n.e(532),n.e(9056)]).then(n.bind(n,6138)),"@site/user-guide/03-Extending your Pioreactor/06a-using-community-plugins.mdx",6138],"2b5b8f8a":[()=>n.e(6217).then(n.bind(n,78879)),"@site/user-guide/03-Extending your Pioreactor/11-using-stemma-qt.md",78879],"2c924c11":[()=>Promise.all([n.e(532),n.e(4962)]).then(n.bind(n,66307)),"@site/experiments/01-Introduction.md",66307],"2d7bf355":[()=>n.e(7118).then(n.bind(n,51076)),"@site/developer-guide/20-User interface/01-introduction.md",51076],"2fd9ad7f":[()=>n.e(2516).then(n.t.bind(n,38070,19)),"~docs/experiments/tag-experiments-tags-salt-717.json",38070],"3720c009":[()=>Promise.all([n.e(532),n.e(3751)]).then(n.bind(n,9861)),"@theme/DocTagsListPage",9861],"3ab34b0a":[()=>n.e(2939).then(n.t.bind(n,21060,19)),"~docs/experiments/tags-list-current-prop-15a.json",21060],"3b1fd47b":[()=>n.e(4304).then(n.t.bind(n,76650,19)),"~docs/experiments/tag-experiments-tags-caffeine-17d.json",76650],"3c3add90":[()=>n.e(2084).then(n.bind(n,44645)),"@site/developer-guide/20-User interface/02-api.md",44645],"433fc4eb":[()=>Promise.all([n.e(532),n.e(301)]).then(n.bind(n,45224)),"@site/user-guide/02-Experiment basics/04-set-up-an-experiment.md",45224],"4618fa18":[()=>n.e(1326).then(n.bind(n,8472)),"@site/developer-guide/30-Development/01-local-development.md",8472],"496d660a":[()=>n.e(6682).then(n.bind(n,65394)),"@site/developer-guide/03-Background jobs/03-avoiding-od.md",65394],"4b7e99ca":[()=>n.e(7062).then(n.bind(n,27946)),"@site/user-guide/02-Experiment basics/06-monitor-experiment.md",27946],"54bf282b":[()=>Promise.all([n.e(532),n.e(9963)]).then(n.bind(n,73024)),"@site/experiments/02-Secondary level education/salt-stress-on-yeast.md",73024],"55bdb91f":[()=>n.e(3700).then(n.t.bind(n,15745,19)),"/home/runner/work/docs.pioreactor/docs.pioreactor/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json",15745],"58be8993":[()=>Promise.all([n.e(532),n.e(3963)]).then(n.bind(n,65426)),"@site/experiments/02-Secondary level education/caffeine-inhibition.md",65426],"5a51baf4":[()=>n.e(3298).then(n.t.bind(n,5370,19)),"~docs/experiments/tag-experiments-tags-control-549.json",5370],"5cb9554d":[()=>Promise.all([n.e(9149),n.e(4563)]).then(n.bind(n,93378)),"@site/src/pages/changelog.js",93378],"5e774627":[()=>n.e(3543).then(n.bind(n,38245)),"@site/developer-guide/05-Scripts/01-writing-scripts.md",38245],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,36809)),"@generated/docusaurus.config",36809],"6023936b":[()=>Promise.all([n.e(532),n.e(1386)]).then(n.bind(n,62385)),"@site/experiments/04-Research and beyond/directed-evolution-salt-tolerance.md",62385],"60a56950":[()=>n.e(5542).then(n.bind(n,97950)),"@site/developer-guide/07-Plugins/03-plugin-as-python-package.md",97950],"699ad14e":[()=>Promise.all([n.e(532),n.e(1608)]).then(n.bind(n,38013)),"@site/user-guide/01-getting-started/01b-hardware-set-up/04-faceplate-all-together.md",38013],"6e112274":[()=>n.e(2554).then(n.bind(n,66719)),"@site/user-guide/02-Experiment basics/08-export-data.md",66719],"6f101ed6":[()=>n.e(1158).then(n.bind(n,11932)),"@site/developer-guide/20-User interface/03-adding-charts.md",11932],"6f4861e3":[()=>n.e(2057).then(n.bind(n,28448)),"@site/developer-guide/03-Background jobs/01-intro-background-jobs.md",28448],"7004ca67":[()=>n.e(1466).then(n.bind(n,66532)),"@site/user-guide/30-Advanced/02-remote-access/01-introduction.md",66532],"726d3e94":[()=>n.e(2114).then(n.bind(n,95141)),"@site/developer-guide/09-Storage and the filesystem/01-data-stores.md",95141],"741d3c43":[()=>n.e(3866).then(n.bind(n,16657)),"@site/user-guide/03-Extending your Pioreactor/04-Experiment Profiles/10-experiment-profiles-schema.md",16657],"7aaba939":[()=>n.e(9155).then(n.bind(n,95763)),"@site/user-guide/50-Troubleshooting/04-error-codes.md",95763],"7b2a33b6":[()=>n.e(2369).then(n.bind(n,75227)),"@site/user-guide/02-Experiment basics/05-Activities.md",75227],"7c1ae5e6":[()=>n.e(5856).then(n.bind(n,11046)),"@site/developer-guide/03-Background jobs/02-writing-background-jobs.md",11046],"7cd291a4":[()=>n.e(1823).then(n.bind(n,70370)),"@site/user-guide/30-Advanced/16-export-import-existing-data.md",70370],"7dada797":[()=>n.e(9344).then(n.bind(n,66737)),"@site/user-guide/29-Automations/03-led-automations.md",66737],"7ee13ef4":[()=>n.e(4066).then(n.bind(n,2019)),"@site/developer-guide/07-Plugins/01-intro-plugins.md",2019],"81ab6d50":[()=>n.e(4211).then(n.bind(n,85273)),"@site/user-guide/30-Advanced/00-accessing-raspberry-pi.md",85273],"81b74097":[()=>Promise.all([n.e(5591),n.e(7445)]).then(n.bind(n,66221)),"@site/user-guide/03-Extending your Pioreactor/06b-list-of-plugins.mdx",66221],"862d3e11":[()=>n.e(6082).then(n.bind(n,75088)),"@site/user-guide/30-Advanced/06-local-access-point.md",75088],"89efa1e0":[()=>Promise.all([n.e(532),n.e(3463)]).then(n.bind(n,87950)),"@site/experiments/02-Secondary level education/01-control-testing.md",87950],"8ee85411":[()=>n.e(804).then(n.t.bind(n,83769,19)),"/home/runner/work/docs.pioreactor/docs.pioreactor/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",83769],"913b8639":[()=>n.e(8093).then(n.bind(n,20105)),"@site/user-guide/00-introduction.md",20105],92376444:[()=>n.e(4522).then(n.bind(n,45792)),"@site/user-guide/29-Automations/00-intro-to-automations.md",45792],"935f2afb":[()=>n.e(53).then(n.t.bind(n,1109,19)),"~docs/default/version-current-metadata-prop-751.json",1109],"9659efb8":[()=>Promise.all([n.e(532),n.e(5984)]).then(n.bind(n,59297)),"@site/experiments/04-Research and beyond/temp-cycle.md",59297],"9692f74e":[()=>n.e(3270).then(n.bind(n,36778)),"@site/user-guide/30-Advanced/07-additional-hardware/99-hardware-connection-assembly.md",36778],"98c9b185":[()=>Promise.all([n.e(532),n.e(7059)]).then(n.bind(n,97634)),"@site/user-guide/01-getting-started/01c-software-set-up.mdx",97634],"9d23e5ef":[()=>n.e(1741).then(n.t.bind(n,95078,19)),"~docs/experiments/tag-experiments-tags-temperature-d68.json",95078],a0ca71a9:[()=>n.e(2642).then(n.bind(n,81339)),"@site/user-guide/03-Extending your Pioreactor/01-create-cluster.md",81339],a4165bd8:[()=>n.e(1069).then(n.bind(n,28141)),"@site/user-guide/03-Extending your Pioreactor/09-external-power.md",28141],a888ed47:[()=>n.e(842).then(n.bind(n,64085)),"@site/user-guide/30-Advanced/01-cli.md",64085],a891e202:[()=>Promise.all([n.e(532),n.e(156)]).then(n.bind(n,82077)),"@site/user-guide/03-Extending your Pioreactor/08-hardware-calibrations.md",82077],afe9f542:[()=>n.e(5733).then(n.bind(n,31093)),"@site/user-guide/02-Experiment basics/10-manual-led-dosing.md",31093],b053ee98:[()=>Promise.all([n.e(532),n.e(4161)]).then(n.bind(n,34730)),"@site/user-guide/03-Extending your Pioreactor/03-adding-leds.md",34730],b3a861a3:[()=>n.e(9081).then(n.bind(n,85959)),"@site/user-guide/03-Extending your Pioreactor/20-updating-software.md",85959],b4cc13e2:[()=>Promise.all([n.e(532),n.e(5169)]).then(n.bind(n,39335)),"@site/user-guide/03-Extending your Pioreactor/07-using-pumps.md",39335],b504501c:[()=>Promise.all([n.e(532),n.e(3018)]).then(n.bind(n,76821)),"@site/user-guide/29-Automations/02-dosing-automations.md",76821],b5dcdecc:[()=>n.e(3380).then(n.bind(n,92308)),"@site/developer-guide/30-Development/02-development-on-Raspberry-Pi.md",92308],b9d0f450:[()=>n.e(4254).then(n.bind(n,83234)),"@site/user-guide/30-Advanced/07-additional-hardware/02-pinch-valves.md",83234],b9f7fcdb:[()=>n.e(7043).then(n.t.bind(n,79318,19)),"~docs/experiments/tag-experiments-tags-ethanol-a7b.json",79318],ba53f54e:[()=>n.e(4583).then(n.bind(n,42205)),"@site/user-guide/02-Experiment basics/11-running-self-test.md",42205],ba87e863:[()=>n.e(5665).then(n.bind(n,99184)),"@site/developer-guide/04-Automations/03-writing-automations-2.md",99184],bcc8e04a:[()=>Promise.all([n.e(532),n.e(8930)]).then(n.bind(n,35673)),"@site/user-guide/01-getting-started/01b-hardware-set-up/03-wetware-assembly.md",35673],bd51d30e:[()=>n.e(4529).then(n.bind(n,63099)),"@site/developer-guide/10-Hardware/06-button-down.md",63099],c0383162:[()=>n.e(9446).then(n.t.bind(n,12702,19)),"~docs/experiments/tag-experiments-tags-university-education-92d.json",12702],c0a440a7:[()=>n.e(7046).then(n.bind(n,9225)),"@site/developer-guide/02-important-concepts.md",9225],c4f5d8e4:[()=>Promise.all([n.e(532),n.e(4195)]).then(n.bind(n,59335)),"@site/src/pages/index.js",59335],c61c48fd:[()=>n.e(8095).then(n.t.bind(n,69609,19)),"~docs/experiments/tag-experiments-tags-yeast-4fe.json",69609],ca4bdbc2:[()=>n.e(508).then(n.bind(n,51179)),"@site/developer-guide/99-architecture.md",51179],cbc1afae:[()=>n.e(3418).then(n.t.bind(n,35591,19)),"~docs/experiments/tag-experiments-tags-turbidostat-a78.json",35591],cef17ed2:[()=>Promise.all([n.e(532),n.e(8578)]).then(n.bind(n,24151)),"@site/experiments/03-University level education/01-algae-day-night-cycle.md",24151],cf4872bb:[()=>n.e(8720).then(n.bind(n,20822)),"@site/user-guide/30-Advanced/07-additional-hardware/01-pumps.md",20822],cf8b9ca5:[()=>Promise.all([n.e(532),n.e(7913)]).then(n.bind(n,5948)),"@site/user-guide/03-Extending your Pioreactor/12-temperature-expansion-kit.md",5948],d28b0e19:[()=>Promise.all([n.e(532),n.e(6739)]).then(n.bind(n,91915)),"@site/user-guide/01-getting-started/01b-hardware-set-up/01-introduction.md",91915],d46cf9e1:[()=>n.e(7849).then(n.bind(n,31019)),"@site/user-guide/30-Advanced/15-intro-python-scripting.md",31019],d51704e4:[()=>n.e(7691).then(n.t.bind(n,12776,19)),"/home/runner/work/docs.pioreactor/docs.pioreactor/.docusaurus/@easyops-cn/docusaurus-search-local/default/plugin-route-context-module-100.json",12776],d53b0e99:[()=>Promise.all([n.e(532),n.e(258)]).then(n.bind(n,81511)),"@site/experiments/02-Secondary level education/yeast-growth-by-temperature.md",81511],d5df37f5:[()=>n.e(5125).then(n.t.bind(n,77966,19)),"~docs/experiments/tag-experiments-tags-continuous-culture-051.json",77966],d5df4937:[()=>Promise.all([n.e(532),n.e(1179)]).then(n.bind(n,30544)),"@site/user-guide/99-common-questions.mdx",30544],d92ee6a6:[()=>n.e(4459).then(n.bind(n,40562)),"@site/user-guide/50-Troubleshooting/Power troubleshooting.md",40562],df063027:[()=>n.e(6911).then(n.bind(n,45741)),"@site/user-guide/29-Automations/01-temperature-automations.md",45741],df203c0f:[()=>n.e(9924).then(n.bind(n,40491)),"@theme/DocTagDocListPage",40491],df71d8ce:[()=>n.e(5204).then(n.t.bind(n,91275,19)),"/home/runner/work/docs.pioreactor/docs.pioreactor/.docusaurus/docusaurus-plugin-content-docs/experiments/plugin-route-context-module-100.json",91275],e22e79a4:[()=>n.e(2153).then(n.bind(n,87812)),"@site/user-guide/30-Advanced/02-remote-access/02-ngrok.md",87812],e2f2dfe9:[()=>n.e(2515).then(n.bind(n,77713)),"@site/developer-guide/01-introduction.md",77713],e605261b:[()=>n.e(1718).then(n.bind(n,10490)),"@site/user-guide/01-getting-started/00-gettingstarted.md",10490],e63f9848:[()=>Promise.all([n.e(532),n.e(7955)]).then(n.bind(n,6932)),"@site/user-guide/03-Extending your Pioreactor/05-calibrate-od600.md",6932],e67d5fa3:[()=>n.e(1057).then(n.bind(n,92999)),"@site/user-guide/02-Experiment basics/02-prepare-vial-for-cultures.md",92999],e8d327cb:[()=>n.e(8033).then(n.bind(n,13)),"@site/developer-guide/25-Calibrations/01-Calibrations.md",13],e91ab90f:[()=>n.e(575).then(n.bind(n,67102)),"@site/developer-guide/04-Automations/01-intro-automations.md",67102],eb6e170c:[()=>n.e(1699).then(n.bind(n,63021)),"@site/developer-guide/08-Custom pumps/20-writing-pump-software.md",63021],eba206dc:[()=>n.e(3916).then(n.t.bind(n,24224,19)),"~docs/experiments/tag-experiments-tags-seconday-education-f0e.json",24224],ebcf55cf:[()=>n.e(2829).then(n.bind(n,7917)),"@site/developer-guide/04-Automations/02-writing-automations-1.md",7917],f1e83790:[()=>n.e(5867).then(n.t.bind(n,18020,19)),"~docs/experiments/tag-experiments-tags-secondary-education-aef.json",18020],f565d366:[()=>n.e(2305).then(n.bind(n,79975)),"@site/user-guide/50-Troubleshooting/UI troubleshooting.md",79975],f5935d94:[()=>n.e(5790).then(n.bind(n,46864)),"@site/developer-guide/04-Automations/05-events.md",46864],f6cabd81:[()=>n.e(6651).then(n.t.bind(n,30980,19)),"/home/runner/work/docs.pioreactor/docs.pioreactor/.docusaurus/docusaurus-plugin-content-docs/developer-guide/plugin-route-context-module-100.json",30980],f738ccb2:[()=>n.e(3073).then(n.bind(n,79410)),"@site/developer-guide/07-Plugins/02-adding-plugins-to-ui.md",79410],fb3a9273:[()=>n.e(6845).then(n.bind(n,51012)),"@site/user-guide/03-Extending your Pioreactor/05-configuration.md",51012],fb56bb93:[()=>n.e(6405).then(n.t.bind(n,73477,19)),"~docs/experiments/tag-experiments-tags-nutrient-746.json",73477],fc13d485:[()=>n.e(5433).then(n.bind(n,54931)),"@site/developer-guide/10-Hardware/05-i2c-addresses.md",54931],fe7316eb:[()=>n.e(192).then(n.bind(n,72321)),"@site/user-guide/30-Advanced/02-remote-access/03-tailscale.md",72321]};function u(e){let{error:t,retry:n,pastDelay:a}=e;return t?r.createElement("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"}},r.createElement("p",null,String(t)),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},"Retry"))):a?r.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"}},r.createElement("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb"},r.createElement("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2"},r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"8"},r.createElement("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"}))))):null}var c=n(99670),d=n(30226);function p(e,t){if("*"===e)return o()({loading:u,loader:()=>n.e(4972).then(n.bind(n,4972)),modules:["@theme/NotFound"],webpack:()=>[4972],render(e,t){const n=e.default;return r.createElement(d.z,{value:{plugin:{name:"native",id:"default"}}},r.createElement(n,t))}});const i=l[`${e}-${t}`],p={},f=[],m=[],h=(0,c.Z)(i);return Object.entries(h).forEach((e=>{let[t,n]=e;const r=s[n];r&&(p[t]=r[0],f.push(r[1]),m.push(r[2]))})),o().Map({loading:u,loader:p,modules:f,webpack:()=>m,render(t,n){const o=JSON.parse(JSON.stringify(i));Object.entries(t).forEach((t=>{let[n,r]=t;const a=r.default;if(!a)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof a&&"function"!=typeof a||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{a[e]=r[e]}));let i=o;const l=n.split(".");l.slice(0,-1).forEach((e=>{i=i[e]})),i[l[l.length-1]]=a}));const l=o.__comp;delete o.__comp;const s=o.__context;return delete o.__context,r.createElement(d.z,{value:s},r.createElement(l,(0,a.Z)({},o,n)))}})}const f=[{path:"/changelog",component:p("/changelog","42d"),exact:!0},{path:"/experiments/tags",component:p("/experiments/tags","d98"),exact:!0},{path:"/experiments/tags/caffeine",component:p("/experiments/tags/caffeine","494"),exact:!0},{path:"/experiments/tags/continuous-culture",component:p("/experiments/tags/continuous-culture","b0a"),exact:!0},{path:"/experiments/tags/control",component:p("/experiments/tags/control","72c"),exact:!0},{path:"/experiments/tags/ethanol",component:p("/experiments/tags/ethanol","6eb"),exact:!0},{path:"/experiments/tags/nutrient",component:p("/experiments/tags/nutrient","c4b"),exact:!0},{path:"/experiments/tags/salt",component:p("/experiments/tags/salt","a0c"),exact:!0},{path:"/experiments/tags/secondary-education",component:p("/experiments/tags/secondary-education","5a9"),exact:!0},{path:"/experiments/tags/seconday-education",component:p("/experiments/tags/seconday-education","6b0"),exact:!0},{path:"/experiments/tags/temperature",component:p("/experiments/tags/temperature","4e1"),exact:!0},{path:"/experiments/tags/turbidostat",component:p("/experiments/tags/turbidostat","e41"),exact:!0},{path:"/experiments/tags/university-education",component:p("/experiments/tags/university-education","963"),exact:!0},{path:"/experiments/tags/yeast",component:p("/experiments/tags/yeast","8c2"),exact:!0},{path:"/search",component:p("/search","2d8"),exact:!0},{path:"/developer-guide",component:p("/developer-guide","71f"),routes:[{path:"/developer-guide/adding-calibration-type",component:p("/developer-guide/adding-calibration-type","29d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/developer-guide/adding-plugins-to-ui",component:p("/developer-guide/adding-plugins-to-ui","8f5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/developer-guide/architecture",component:p("/developer-guide/architecture","e8b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/developer-guide/avoiding-od",component:p("/developer-guide/avoiding-od","6f9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/developer-guide/chart-to-ui",component:p("/developer-guide/chart-to-ui","459"),exact:!0,sidebar:"tutorialSidebar"},{path:"/developer-guide/data-stores",component:p("/developer-guide/data-stores","efb"),exact:!0,sidebar:"tutorialSidebar"},{path:"/developer-guide/events",component:p("/developer-guide/events","b12"),exact:!0,sidebar:"tutorialSidebar"},{path:"/developer-guide/filesystem-locations",component:p("/developer-guide/filesystem-locations","5a3"),exact:!0,sidebar:"tutorialSidebar"},{path:"/developer-guide/hat-button",component:p("/developer-guide/hat-button","060"),exact:!0,sidebar:"tutorialSidebar"},{path:"/developer-guide/i2c-addresses",component:p("/developer-guide/i2c-addresses","1f5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/developer-guide/important-concepts",component:p("/developer-guide/important-concepts","6d2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/developer-guide/intro-automations",component:p("/developer-guide/intro-automations","956"),exact:!0,sidebar:"tutorialSidebar"},{path:"/developer-guide/intro-background-jobs",component:p("/developer-guide/intro-background-jobs","2c2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/developer-guide/intro-plugins",component:p("/developer-guide/intro-plugins","62c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/developer-guide/introduction",component:p("/developer-guide/introduction","191"),exact:!0,sidebar:"tutorialSidebar"},{path:"/developer-guide/local-development",component:p("/developer-guide/local-development","8d9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/developer-guide/pi-development",component:p("/developer-guide/pi-development","1f8"),exact:!0,sidebar:"tutorialSidebar"},{path:"/developer-guide/pinout",component:p("/developer-guide/pinout","d7b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/developer-guide/plugin-as-python-package",component:p("/developer-guide/plugin-as-python-package","7d8"),exact:!0,sidebar:"tutorialSidebar"},{path:"/developer-guide/web-ui-api",component:p("/developer-guide/web-ui-api","ead"),exact:!0,sidebar:"tutorialSidebar"},{path:"/developer-guide/web-ui-introduction",component:p("/developer-guide/web-ui-introduction","0ae"),exact:!0,sidebar:"tutorialSidebar"},{path:"/developer-guide/writing-automations-1",component:p("/developer-guide/writing-automations-1","f5c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/developer-guide/writing-automations-2",component:p("/developer-guide/writing-automations-2","af5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/developer-guide/writing-background-jobs",component:p("/developer-guide/writing-background-jobs","a33"),exact:!0,sidebar:"tutorialSidebar"},{path:"/developer-guide/writing-pump-software",component:p("/developer-guide/writing-pump-software","6fa"),exact:!0,sidebar:"tutorialSidebar"},{path:"/developer-guide/writing-scripts",component:p("/developer-guide/writing-scripts","7c7"),exact:!0,sidebar:"tutorialSidebar"}]},{path:"/experiments",component:p("/experiments","d7d"),routes:[{path:"/experiments/algae-day-night-cycle",component:p("/experiments/algae-day-night-cycle","2b8"),exact:!0,sidebar:"tutorialSidebar"},{path:"/experiments/caffeine-inhibition",component:p("/experiments/caffeine-inhibition","bde"),exact:!0,sidebar:"tutorialSidebar"},{path:"/experiments/continuous-cultures-using-turbidostat",component:p("/experiments/continuous-cultures-using-turbidostat","4d1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/experiments/control-testing",component:p("/experiments/control-testing","541"),exact:!0,sidebar:"tutorialSidebar"},{path:"/experiments/directed-evolution-salt-tolerance",component:p("/experiments/directed-evolution-salt-tolerance","eed"),exact:!0,sidebar:"tutorialSidebar"},{path:"/experiments/introduction",component:p("/experiments/introduction","803"),exact:!0,sidebar:"tutorialSidebar"},{path:"/experiments/low-vs-high-conc-media",component:p("/experiments/low-vs-high-conc-media","00f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/experiments/salt-stress-on-yeast",component:p("/experiments/salt-stress-on-yeast","42c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/experiments/temp-cycle",component:p("/experiments/temp-cycle","7c1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/experiments/yeast-growth-by-temperature",component:p("/experiments/yeast-growth-by-temperature","022"),exact:!0,sidebar:"tutorialSidebar"},{path:"/experiments/yeast-in-ethanol",component:p("/experiments/yeast-in-ethanol","a49"),exact:!0,sidebar:"tutorialSidebar"}]},{path:"/user-guide",component:p("/user-guide","f0a"),routes:[{path:"/user-guide/accessing-raspberry-pi",component:p("/user-guide/accessing-raspberry-pi","bfa"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/activities",component:p("/user-guide/activities","aaa"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/addition-hardware-pumps",component:p("/user-guide/addition-hardware-pumps","d50"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/available-plugins",component:p("/user-guide/available-plugins","5b2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/calibrate-od600",component:p("/user-guide/calibrate-od600","ca7"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/cli",component:p("/user-guide/cli","31e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/common-questions",component:p("/user-guide/common-questions","83c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/configuration",component:p("/user-guide/configuration","15c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/create-cluster",component:p("/user-guide/create-cluster","b03"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/create-edit-experiment-profiles",component:p("/user-guide/create-edit-experiment-profiles","8d2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/dosing-automations",component:p("/user-guide/dosing-automations","6c6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/error-codes",component:p("/user-guide/error-codes","4ef"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/experiment-profiles",component:p("/user-guide/experiment-profiles","036"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/experiment-profiles-schema",component:p("/user-guide/experiment-profiles-schema","51e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/export-data",component:p("/user-guide/export-data","acb"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/export-import-existing-data",component:p("/user-guide/export-import-existing-data","99b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/external-power",component:p("/user-guide/external-power","ca7"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/getting-started",component:p("/user-guide/getting-started","a99"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/hardware-calibrations",component:p("/user-guide/hardware-calibrations","6dc"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/hardware-connection-assembly",component:p("/user-guide/hardware-connection-assembly","4f7"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/hardware-setup-intro",component:p("/user-guide/hardware-setup-intro","d1b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/intro-python-scripting",component:p("/user-guide/intro-python-scripting","3ce"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/intro-to-automations",component:p("/user-guide/intro-to-automations","edd"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/introduction",component:p("/user-guide/introduction","382"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/led-automations",component:p("/user-guide/led-automations","88f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/local-access-point",component:p("/user-guide/local-access-point","2aa"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/manual-dosing-leds",component:p("/user-guide/manual-dosing-leds","582"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/monitor-experiment",component:p("/user-guide/monitor-experiment","da6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/ngrok-remote-access",component:p("/user-guide/ngrok-remote-access","fd7"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/od-normal-growth-rate",component:p("/user-guide/od-normal-growth-rate","872"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/optics-assembly",component:p("/user-guide/optics-assembly","e8d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/pinch-valves",component:p("/user-guide/pinch-valves","262"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/prepare-vial-for-cultures",component:p("/user-guide/prepare-vial-for-cultures","fe9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/putting-it-together",component:p("/user-guide/putting-it-together","bf0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/remote-access",component:p("/user-guide/remote-access","60b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/rpi-hat-assembly",component:p("/user-guide/rpi-hat-assembly","f2d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/running-self-test",component:p("/user-guide/running-self-test","dc5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/set-up-an-experiment",component:p("/user-guide/set-up-an-experiment","3bc"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/software-set-up",component:p("/user-guide/software-set-up","05e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/tailscale-remote-access",component:p("/user-guide/tailscale-remote-access","bf3"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/temperature-automations",component:p("/user-guide/temperature-automations","4fe"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/temperature-expansion-kit",component:p("/user-guide/temperature-expansion-kit","f7b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/troubleshooting-Hardware",component:p("/user-guide/troubleshooting-Hardware","63a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/troubleshooting-power",component:p("/user-guide/troubleshooting-power","80f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/troubleshooting-stirring",component:p("/user-guide/troubleshooting-stirring","374"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/troubleshooting-ui",component:p("/user-guide/troubleshooting-ui","fd5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/updating-software",component:p("/user-guide/updating-software","c4f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/using-community-plugins",component:p("/user-guide/using-community-plugins","a38"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/using-leds",component:p("/user-guide/using-leds","a97"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/using-pumps",component:p("/user-guide/using-pumps","55c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/using-stemma-qt",component:p("/user-guide/using-stemma-qt","103"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/wetware-assembly",component:p("/user-guide/wetware-assembly","515"),exact:!0,sidebar:"tutorialSidebar"},{path:"/user-guide/write-own-automations",component:p("/user-guide/write-own-automations","61d"),exact:!0,sidebar:"tutorialSidebar"}]},{path:"/",component:p("/","f02"),exact:!0},{path:"*",component:p("*")}]},98934:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,t:()=>i});var r=n(67294);const a=r.createContext(!1);function i(e){let{children:t}=e;const[n,i]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{i(!0)}),[]),r.createElement(a.Provider,{value:n},t)}},49383:(e,t,n)=>{"use strict";var r=n(67294),a=n(73935),i=n(73727),o=n(70405),l=n(10412);const s=[n(32497),n(3310),n(18320),n(52295),n(74367)];var u=n(723),c=n(76775),d=n(18790);function p(e){let{children:t}=e;return r.createElement(r.Fragment,null,t)}var f=n(87462),m=n(35742),h=n(52263),g=n(44996),b=n(86668),v=n(1944),y=n(94711),w=n(19727),k=n(43320),E=n(90197);function x(){const{i18n:{defaultLocale:e,localeConfigs:t}}=(0,h.Z)(),n=(0,y.l)();return r.createElement(m.Z,null,Object.entries(t).map((e=>{let[t,{htmlLang:a}]=e;return r.createElement("link",{key:t,rel:"alternate",href:n.createUrl({locale:t,fullyQualified:!0}),hrefLang:a})})),r.createElement("link",{rel:"alternate",href:n.createUrl({locale:e,fullyQualified:!0}),hrefLang:"x-default"}))}function S(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,h.Z)(),a=function(){const{siteConfig:{url:e}}=(0,h.Z)(),{pathname:t}=(0,c.TH)();return e+(0,g.Z)(t)}(),i=t?`${n}${t}`:a;return r.createElement(m.Z,null,r.createElement("meta",{property:"og:url",content:i}),r.createElement("link",{rel:"canonical",href:i}))}function _(){const{i18n:{currentLocale:e}}=(0,h.Z)(),{metadata:t,image:n}=(0,b.L)();return r.createElement(r.Fragment,null,r.createElement(m.Z,null,r.createElement("meta",{name:"twitter:card",content:"summary_large_image"}),r.createElement("body",{className:w.h})),n&&r.createElement(v.d,{image:n}),r.createElement(S,null),r.createElement(x,null),r.createElement(E.Z,{tag:k.HX,locale:e}),r.createElement(m.Z,null,t.map(((e,t)=>r.createElement("meta",(0,f.Z)({key:t},e))))))}const C=new Map;function T(e){if(C.has(e.pathname))return{...e,pathname:C.get(e.pathname)};if((0,d.f)(u.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return C.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return C.set(e.pathname,t),{...e,pathname:t}}var P=n(98934),L=n(58940);function A(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r{var r;const a=(null==(r=t.default)?void 0:r[e])??t[e];return null==a?void 0:a(...n)}));return()=>a.forEach((e=>null==e?void 0:e()))}const R=function(e){let{children:t,location:n,previousLocation:a}=e;return(0,r.useLayoutEffect)((()=>{a!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,a=t.hash===n.hash,i=t.search===n.search;if(r&&a&&!i)return;const{hash:o}=t;if(o){const e=decodeURIComponent(o.substring(1)),t=document.getElementById(e);null==t||t.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:a}),A("onRouteDidUpdate",{previousLocation:a,location:n}))}),[a,n]),t};function O(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.f)(u.Z,e))).flat();return Promise.all(t.map((e=>null==e.route.component.preload?void 0:e.route.component.preload())))}class N extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=l.Z.canUseDOM?A("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=A("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),O(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return r.createElement(R,{previousLocation:this.previousLocation,location:t},r.createElement(c.AW,{location:t,render:()=>e}))}}const I=N,D="docusaurus-base-url-issue-banner-container",M="docusaurus-base-url-issue-banner",F="docusaurus-base-url-issue-banner-suggestion-container",j="__DOCUSAURUS_INSERT_BASEURL_BANNER";function B(e){return`\nwindow['${j}'] = true;\n\ndocument.addEventListener('DOMContentLoaded', maybeInsertBanner);\n\nfunction maybeInsertBanner() {\n var shouldInsert = window['${j}'];\n shouldInsert && insertBanner();\n}\n\nfunction insertBanner() {\n var bannerContainer = document.getElementById('${D}');\n if (!bannerContainer) {\n return;\n }\n var bannerHtml = ${JSON.stringify(function(e){return`\n
\n

Your Docusaurus site did not load properly.

\n

A very common reason is a wrong site baseUrl configuration.

\n

Current configured baseUrl = ${e} ${"/"===e?" (default value)":""}

\n

We suggest trying baseUrl =

\n
\n`}(e)).replace(/{window[j]=!1}),[]),r.createElement(r.Fragment,null,!l.Z.canUseDOM&&r.createElement(m.Z,null,r.createElement("script",null,B(e))),r.createElement("div",{id:D}))}function $(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,h.Z)(),{pathname:n}=(0,c.TH)();return t&&n===e?r.createElement(z,null):null}function U(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:a,localeConfigs:i}}=(0,h.Z)(),o=(0,g.Z)(e),{htmlLang:l,direction:s}=i[a];return r.createElement(m.Z,null,r.createElement("html",{lang:l,dir:s}),r.createElement("title",null,t),r.createElement("meta",{property:"og:title",content:t}),r.createElement("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&r.createElement("meta",{name:"robots",content:"noindex, nofollow"}),e&&r.createElement("link",{rel:"icon",href:o}))}var q=n(44763);function H(){const e=(0,d.H)(u.Z),t=(0,c.TH)();return r.createElement(q.Z,null,r.createElement(L.M,null,r.createElement(P.t,null,r.createElement(p,null,r.createElement(U,null),r.createElement(_,null),r.createElement($,null),r.createElement(I,{location:T(t)},e)))))}var G=n(16887);const Q=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{var r;if("undefined"==typeof document)return void n();const a=document.createElement("link");a.setAttribute("rel","prefetch"),a.setAttribute("href",e),a.onload=()=>t(),a.onerror=()=>n();const i=document.getElementsByTagName("head")[0]??(null==(r=document.getElementsByName("script")[0])?void 0:r.parentNode);null==i||i.appendChild(a)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var Z=n(99670);const V=new Set,W=new Set,Y=()=>{var e,t;return(null==(e=navigator.connection)?void 0:e.effectiveType.includes("2g"))||(null==(t=navigator.connection)?void 0:t.saveData)},K={prefetch(e){if(!(e=>!Y()&&!W.has(e)&&!V.has(e))(e))return!1;V.add(e);const t=(0,d.f)(u.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(G).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,Z.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?Q(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!Y()&&!W.has(e))(e)&&(W.add(e),O(e))},X=Object.freeze(K);if(l.Z.canUseDOM){window.docusaurus=X;const e=a.hydrate;O(window.location.pathname).then((()=>{e(r.createElement(o.B6,null,r.createElement(i.VK,null,r.createElement(H,null))),document.getElementById("__docusaurus"))}))}},58940:(e,t,n)=>{"use strict";n.d(t,{_:()=>c,M:()=>d});var r=n(67294),a=n(36809);const i=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/user-guide","versions":[{"name":"current","label":"Next","isLast":true,"path":"/user-guide","mainDocId":"introduction","docs":[{"id":"Advanced/accessing-raspberry-pi","path":"/user-guide/accessing-raspberry-pi","sidebar":"tutorialSidebar"},{"id":"Advanced/additional-hardware/hardware-connection-assembly","path":"/user-guide/hardware-connection-assembly","sidebar":"tutorialSidebar"},{"id":"Advanced/additional-hardware/pinch-valves","path":"/user-guide/pinch-valves","sidebar":"tutorialSidebar"},{"id":"Advanced/additional-hardware/pumps","path":"/user-guide/addition-hardware-pumps","sidebar":"tutorialSidebar"},{"id":"Advanced/cli","path":"/user-guide/cli","sidebar":"tutorialSidebar"},{"id":"Advanced/export-import-existing-data","path":"/user-guide/export-import-existing-data","sidebar":"tutorialSidebar"},{"id":"Advanced/intro-python-scripting","path":"/user-guide/intro-python-scripting","sidebar":"tutorialSidebar"},{"id":"Advanced/local-access-point","path":"/user-guide/local-access-point","sidebar":"tutorialSidebar"},{"id":"Advanced/remote-access/introduction","path":"/user-guide/remote-access","sidebar":"tutorialSidebar"},{"id":"Advanced/remote-access/ngrok","path":"/user-guide/ngrok-remote-access","sidebar":"tutorialSidebar"},{"id":"Advanced/remote-access/tailscale","path":"/user-guide/tailscale-remote-access","sidebar":"tutorialSidebar"},{"id":"Automations/dosing-automations","path":"/user-guide/dosing-automations","sidebar":"tutorialSidebar"},{"id":"Automations/intro-to-automations","path":"/user-guide/intro-to-automations","sidebar":"tutorialSidebar"},{"id":"Automations/led-automations","path":"/user-guide/led-automations","sidebar":"tutorialSidebar"},{"id":"Automations/temperature-automations","path":"/user-guide/temperature-automations","sidebar":"tutorialSidebar"},{"id":"Automations/writing-automations","path":"/user-guide/write-own-automations","sidebar":"tutorialSidebar"},{"id":"common-questions","path":"/user-guide/common-questions","sidebar":"tutorialSidebar"},{"id":"Experiment basics/Activities","path":"/user-guide/activities","sidebar":"tutorialSidebar"},{"id":"Experiment basics/export-data","path":"/user-guide/export-data","sidebar":"tutorialSidebar"},{"id":"Experiment basics/manual-led-dosing","path":"/user-guide/manual-dosing-leds","sidebar":"tutorialSidebar"},{"id":"Experiment basics/monitor-experiment","path":"/user-guide/monitor-experiment","sidebar":"tutorialSidebar"},{"id":"Experiment basics/od-normal-growth-rate","path":"/user-guide/od-normal-growth-rate","sidebar":"tutorialSidebar"},{"id":"Experiment basics/prepare-vial-for-cultures","path":"/user-guide/prepare-vial-for-cultures","sidebar":"tutorialSidebar"},{"id":"Experiment basics/running-self-test","path":"/user-guide/running-self-test","sidebar":"tutorialSidebar"},{"id":"Experiment basics/set-up-an-experiment","path":"/user-guide/set-up-an-experiment","sidebar":"tutorialSidebar"},{"id":"Extending your Pioreactor/06a-using-community-plugins","path":"/user-guide/using-community-plugins","sidebar":"tutorialSidebar"},{"id":"Extending your Pioreactor/06b-list-of-plugins","path":"/user-guide/available-plugins","sidebar":"tutorialSidebar"},{"id":"Extending your Pioreactor/adding-leds","path":"/user-guide/using-leds","sidebar":"tutorialSidebar"},{"id":"Extending your Pioreactor/calibrate-od600","path":"/user-guide/calibrate-od600","sidebar":"tutorialSidebar"},{"id":"Extending your Pioreactor/configuration","path":"/user-guide/configuration","sidebar":"tutorialSidebar"},{"id":"Extending your Pioreactor/create-cluster","path":"/user-guide/create-cluster","sidebar":"tutorialSidebar"},{"id":"Extending your Pioreactor/Experiment Profiles/create-edit-experiment-profiles","path":"/user-guide/create-edit-experiment-profiles","sidebar":"tutorialSidebar"},{"id":"Extending your Pioreactor/Experiment Profiles/experiment-profiles-intro","path":"/user-guide/experiment-profiles","sidebar":"tutorialSidebar"},{"id":"Extending your Pioreactor/Experiment Profiles/experiment-profiles-schema","path":"/user-guide/experiment-profiles-schema","sidebar":"tutorialSidebar"},{"id":"Extending your Pioreactor/external-power","path":"/user-guide/external-power","sidebar":"tutorialSidebar"},{"id":"Extending your Pioreactor/hardware-calibrations","path":"/user-guide/hardware-calibrations","sidebar":"tutorialSidebar"},{"id":"Extending your Pioreactor/temperature-expansion-kit","path":"/user-guide/temperature-expansion-kit","sidebar":"tutorialSidebar"},{"id":"Extending your Pioreactor/updating-software","path":"/user-guide/updating-software","sidebar":"tutorialSidebar"},{"id":"Extending your Pioreactor/using-pumps","path":"/user-guide/using-pumps","sidebar":"tutorialSidebar"},{"id":"Extending your Pioreactor/using-stemma-qt","path":"/user-guide/using-stemma-qt","sidebar":"tutorialSidebar"},{"id":"getting-started/01b-hardware-set-up/faceplate-all-together","path":"/user-guide/putting-it-together","sidebar":"tutorialSidebar"},{"id":"getting-started/01b-hardware-set-up/introduction","path":"/user-guide/hardware-setup-intro","sidebar":"tutorialSidebar"},{"id":"getting-started/01b-hardware-set-up/optics-assembly","path":"/user-guide/optics-assembly","sidebar":"tutorialSidebar"},{"id":"getting-started/01b-hardware-set-up/rpi-hat-assembly","path":"/user-guide/rpi-hat-assembly","sidebar":"tutorialSidebar"},{"id":"getting-started/01b-hardware-set-up/wetware-assembly","path":"/user-guide/wetware-assembly","sidebar":"tutorialSidebar"},{"id":"getting-started/01c-software-set-up","path":"/user-guide/software-set-up","sidebar":"tutorialSidebar"},{"id":"getting-started/gettingstarted","path":"/user-guide/getting-started","sidebar":"tutorialSidebar"},{"id":"introduction","path":"/user-guide/introduction","sidebar":"tutorialSidebar"},{"id":"Troubleshooting/error-codes","path":"/user-guide/error-codes","sidebar":"tutorialSidebar"},{"id":"Troubleshooting/Hardware troubleshooting","path":"/user-guide/troubleshooting-Hardware","sidebar":"tutorialSidebar"},{"id":"Troubleshooting/Power troubleshooting","path":"/user-guide/troubleshooting-power","sidebar":"tutorialSidebar"},{"id":"Troubleshooting/Stirring troubleshooting","path":"/user-guide/troubleshooting-stirring","sidebar":"tutorialSidebar"},{"id":"Troubleshooting/UI troubleshooting","path":"/user-guide/troubleshooting-ui","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/user-guide/introduction","label":"introduction"}}}}],"breadcrumbs":false},"developer-guide":{"path":"/developer-guide","versions":[{"name":"current","label":"Next","isLast":true,"path":"/developer-guide","mainDocId":"introduction","docs":[{"id":"architecture","path":"/developer-guide/architecture","sidebar":"tutorialSidebar"},{"id":"Automations/events","path":"/developer-guide/events","sidebar":"tutorialSidebar"},{"id":"Automations/intro-automations","path":"/developer-guide/intro-automations","sidebar":"tutorialSidebar"},{"id":"Automations/writing-automations-1","path":"/developer-guide/writing-automations-1","sidebar":"tutorialSidebar"},{"id":"Automations/writing-automations-2","path":"/developer-guide/writing-automations-2","sidebar":"tutorialSidebar"},{"id":"Background jobs/avoiding-od","path":"/developer-guide/avoiding-od","sidebar":"tutorialSidebar"},{"id":"Background jobs/intro-background-jobs","path":"/developer-guide/intro-background-jobs","sidebar":"tutorialSidebar"},{"id":"Background jobs/writing-background-jobs","path":"/developer-guide/writing-background-jobs","sidebar":"tutorialSidebar"},{"id":"Calibrations/Calibrations","path":"/developer-guide/adding-calibration-type","sidebar":"tutorialSidebar"},{"id":"Custom pumps/writing-pump-software","path":"/developer-guide/writing-pump-software","sidebar":"tutorialSidebar"},{"id":"Development/development-on-Raspberry-Pi","path":"/developer-guide/pi-development","sidebar":"tutorialSidebar"},{"id":"Development/local-development","path":"/developer-guide/local-development","sidebar":"tutorialSidebar"},{"id":"Hardware/button-down","path":"/developer-guide/hat-button","sidebar":"tutorialSidebar"},{"id":"Hardware/i2c-addresses","path":"/developer-guide/i2c-addresses","sidebar":"tutorialSidebar"},{"id":"Hardware/pinout","path":"/developer-guide/pinout","sidebar":"tutorialSidebar"},{"id":"important-concepts","path":"/developer-guide/important-concepts","sidebar":"tutorialSidebar"},{"id":"introduction","path":"/developer-guide/introduction","sidebar":"tutorialSidebar"},{"id":"Plugins/adding-plugins-to-ui","path":"/developer-guide/adding-plugins-to-ui","sidebar":"tutorialSidebar"},{"id":"Plugins/intro-plugins","path":"/developer-guide/intro-plugins","sidebar":"tutorialSidebar"},{"id":"Plugins/plugin-as-python-package","path":"/developer-guide/plugin-as-python-package","sidebar":"tutorialSidebar"},{"id":"Scripts/writing-scripts","path":"/developer-guide/writing-scripts","sidebar":"tutorialSidebar"},{"id":"Storage and the filesystem/data-stores","path":"/developer-guide/data-stores","sidebar":"tutorialSidebar"},{"id":"Storage and the filesystem/filesystem","path":"/developer-guide/filesystem-locations","sidebar":"tutorialSidebar"},{"id":"User interface/adding-charts","path":"/developer-guide/chart-to-ui","sidebar":"tutorialSidebar"},{"id":"User interface/api","path":"/developer-guide/web-ui-api","sidebar":"tutorialSidebar"},{"id":"User interface/introduction","path":"/developer-guide/web-ui-introduction","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/developer-guide/introduction","label":"introduction"}}}}],"breadcrumbs":false},"experiments":{"path":"/experiments","versions":[{"name":"current","label":"Next","isLast":true,"path":"/experiments","mainDocId":"Introduction","docs":[{"id":"Introduction","path":"/experiments/introduction","sidebar":"tutorialSidebar"},{"id":"Research and beyond/directed-evolution-salt-tolerance","path":"/experiments/directed-evolution-salt-tolerance","sidebar":"tutorialSidebar"},{"id":"Research and beyond/temp-cycle","path":"/experiments/temp-cycle","sidebar":"tutorialSidebar"},{"id":"Secondary level education/caffeine-inhibition","path":"/experiments/caffeine-inhibition","sidebar":"tutorialSidebar"},{"id":"Secondary level education/control-testing","path":"/experiments/control-testing","sidebar":"tutorialSidebar"},{"id":"Secondary level education/low-vs-high-conc-media","path":"/experiments/low-vs-high-conc-media","sidebar":"tutorialSidebar"},{"id":"Secondary level education/salt-stress-on-yeast","path":"/experiments/salt-stress-on-yeast","sidebar":"tutorialSidebar"},{"id":"Secondary level education/yeast-growth-by-temperature","path":"/experiments/yeast-growth-by-temperature","sidebar":"tutorialSidebar"},{"id":"Secondary level education/yeast-in-ethanol","path":"/experiments/yeast-in-ethanol","sidebar":"tutorialSidebar"},{"id":"University level education/algae-day-night-cycle","path":"/experiments/algae-day-night-cycle","sidebar":"tutorialSidebar"},{"id":"University level education/continuous-cultures-using-turbidostat","path":"/experiments/continuous-cultures-using-turbidostat","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/experiments/introduction","label":"Introduction"}}}}],"breadcrumbs":false}}}'),o=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var l=n(57529);const s=JSON.parse('{"docusaurusVersion":"2.4.0","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"2.4.0"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"2.4.0"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"2.4.0"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"2.4.0"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"2.4.0"},"docusaurus-plugin-google-analytics":{"type":"package","name":"@docusaurus/plugin-google-analytics","version":"2.4.0"},"@easyops-cn/docusaurus-search-local":{"type":"package","name":"@easyops-cn/docusaurus-search-local","version":"0.30.2"}}}'),u={siteConfig:a.default,siteMetadata:s,globalData:i,i18n:o,codeTranslations:l},c=r.createContext(u);function d(e){let{children:t}=e;return r.createElement(c.Provider,{value:u},t)}},44763:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(67294),a=n(10412),i=n(35742),o=n(18780),l=n(70179);function s(e){let{error:t,tryAgain:n}=e;return r.createElement("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"}},r.createElement("h1",{style:{fontSize:"3rem"}},"This page crashed"),r.createElement("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"}},"Try again"),r.createElement(u,{error:t}))}function u(e){let{error:t}=e;const n=(0,o.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{style:{whiteSpace:"pre-wrap"}},n)}function c(e){let{error:t,tryAgain:n}=e;return r.createElement(p,{fallback:()=>r.createElement(s,{error:t,tryAgain:n})},r.createElement(i.Z,null,r.createElement("title",null,"Page Error")),r.createElement(l.Z,null,r.createElement(s,{error:t,tryAgain:n})))}const d=e=>r.createElement(c,e);class p extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){a.Z.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??d)(e)}return e??null}}},10412:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,a={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},35742:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=n(67294),a=n(70405);function i(e){return r.createElement(a.ql,e)}},39960:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(87462),a=n(67294),i=n(73727),o=n(18780),l=n(52263),s=n(13919),u=n(10412);const c=a.createContext({collectLink:()=>{}});var d=n(44996);function p(e,t){var n;let{isNavLink:p,to:f,href:m,activeClassName:h,isActive:g,"data-noBrokenLinkCheck":b,autoAddBaseUrl:v=!0,...y}=e;const{siteConfig:{trailingSlash:w,baseUrl:k}}=(0,l.Z)(),{withBaseUrl:E}=(0,d.C)(),x=(0,a.useContext)(c),S=(0,a.useRef)(null);(0,a.useImperativeHandle)(t,(()=>S.current));const _=f||m;const C=(0,s.Z)(_),T=null==_?void 0:_.replace("pathname://","");let P=void 0!==T?(L=T,v&&(e=>e.startsWith("/"))(L)?E(L):L):void 0;var L;P&&C&&(P=(0,o.applyTrailingSlash)(P,{trailingSlash:w,baseUrl:k}));const A=(0,a.useRef)(!1),R=p?i.OL:i.rU,O=u.Z.canUseIntersectionObserver,N=(0,a.useRef)(),I=()=>{A.current||null==P||(window.docusaurus.preload(P),A.current=!0)};(0,a.useEffect)((()=>(!O&&C&&null!=P&&window.docusaurus.prefetch(P),()=>{O&&N.current&&N.current.disconnect()})),[N,P,O,C]);const D=(null==(n=P)?void 0:n.startsWith("#"))??!1,M=!P||!C||D;return M||b||x.collectLink(P),M?a.createElement("a",(0,r.Z)({ref:S,href:P},_&&!C&&{target:"_blank",rel:"noopener noreferrer"},y)):a.createElement(R,(0,r.Z)({},y,{onMouseEnter:I,onTouchStart:I,innerRef:e=>{S.current=e,O&&e&&C&&(N.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(N.current.unobserve(e),N.current.disconnect(),null!=P&&window.docusaurus.prefetch(P))}))})),N.current.observe(e))},to:P},p&&{isActive:g,activeClassName:h}))}const f=a.forwardRef(p)},95999:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s,I:()=>l});var r=n(67294);function a(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=null==t?void 0:t[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var i=n(57529);function o(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return i[t??n]??n??t}function l(e,t){let{message:n,id:r}=e;return a(o({message:n,id:r}),t)}function s(e){let{children:t,id:n,values:i}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal children",t),new Error("The Docusaurus component only accept simple string values");const l=o({message:t,id:n});return r.createElement(r.Fragment,null,a(l,i))}},29935:(e,t,n)=>{"use strict";n.d(t,{m:()=>r});const r="default"},13919:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{Z:()=>a,b:()=>r})},44996:(e,t,n)=>{"use strict";n.d(t,{C:()=>o,Z:()=>l});var r=n(67294),a=n(52263),i=n(13919);function o(){const{siteConfig:{baseUrl:e,url:t}}=(0,a.Z)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:a=!1,absolute:o=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,i.b)(n))return n;if(a)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const l=n.startsWith(t)?n:t+n.replace(/^\//,"");return o?e+l:l}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function l(e,t){void 0===t&&(t={});const{withBaseUrl:n}=o();return n(e,t)}},52263:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=n(67294),a=n(58940);function i(){return(0,r.useContext)(a._)}},72389:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=n(67294),a=n(98934);function i(){return(0,r.useContext)(a._)}},99670:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function a(e){const t={};return function e(n,a){Object.entries(n).forEach((n=>{let[i,o]=n;const l=a?`${a}.${i}`:i;r(o)?e(o,l):t[l]=o}))}(e),t}},30226:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,z:()=>i});var r=n(67294);const a=r.createContext(null);function i(e){let{children:t,value:n}=e;const i=r.useContext(a),o=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...null==n?void 0:n.data};return{plugin:t.plugin,data:r}}({parent:i,value:n})),[i,n]);return r.createElement(a.Provider,{value:o},t)}},80143:(e,t,n)=>{"use strict";n.d(t,{Iw:()=>h,gA:()=>p,_r:()=>c,Jo:()=>g,zh:()=>d,yW:()=>m,gB:()=>f});var r=n(76775),a=n(52263),i=n(29935);function o(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,a.Z)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const l=e=>e.versions.find((e=>e.isLast));function s(e,t){const n=function(e,t){const n=l(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.LX)(t,{path:e.path,exact:!1,strict:!1})))}(e,t),a=null==n?void 0:n.docs.find((e=>!!(0,r.LX)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:a,alternateDocVersions:a?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(a.id):{}}}const u={},c=()=>o("docusaurus-plugin-content-docs")??u,d=e=>function(e,t,n){void 0===t&&(t=i.m),void 0===n&&(n={});const r=o(e),a=null==r?void 0:r[t];if(!a&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return a}("docusaurus-plugin-content-docs",e,{failfast:!0});function p(e){void 0===e&&(e={});const t=c(),{pathname:n}=(0,r.TH)();return function(e,t,n){void 0===n&&(n={});const a=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.LX)(t,{path:n.path,exact:!1,strict:!1})})),i=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!i&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return i}(t,n,e)}function f(e){return d(e).versions}function m(e){const t=d(e);return l(t)}function h(e){const t=d(e),{pathname:n}=(0,r.TH)();return s(t,n)}function g(e){const t=d(e),{pathname:n}=(0,r.TH)();return function(e,t){const n=l(e);return{latestDocSuggestion:s(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},74367:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={onRouteDidUpdate(e){let{location:t,previousLocation:n}=e;!n||t.pathname===n.pathname&&t.search===n.search&&t.hash===n.hash||(window.ga("set","page",t.pathname+t.search+t.hash),window.ga("send","pageview"))}}},18320:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r=n(74865),a=n.n(r);a().configure({showSpinner:!1});const i={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{a().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){a().done()}}},3310:(e,t,n)=>{"use strict";n.r(t);var r=n(87410),a=n(36809);!function(e){const{themeConfig:{prism:t}}=a.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{n(6726)(`./prism-${e}`)})),delete globalThis.Prism}(r.Z)},39471:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=n(67294);const a={iconExternalLink:"iconExternalLink_nPIU"};function i(e){let{width:t=13.5,height:n=13.5}=e;return r.createElement("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:a.iconExternalLink},r.createElement("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"}))}},70179:(e,t,n)=>{"use strict";n.d(t,{Z:()=>Ot});var r=n(67294),a=n(86010),i=n(44763),o=n(1944),l=n(87462),s=n(76775),u=n(95999),c=n(85936);const d="docusaurus_skipToContent_fallback";function p(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function f(){const e=(0,r.useRef)(null),{action:t}=(0,s.k6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&p(t)}),[]);return(0,c.S)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&p(e.current)})),{containerRef:e,onClick:n}}const m=(0,u.I)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function h(e){const t=e.children??m,{containerRef:n,onClick:a}=f();return r.createElement("div",{ref:n,role:"region","aria-label":m},r.createElement("a",(0,l.Z)({},e,{href:`#${d}`,onClick:a}),t))}var g=n(35281),b=n(19727);const v={skipToContent:"skipToContent_fXgn"};function y(){return r.createElement(h,{className:v.skipToContent})}var w=n(86668),k=n(59689);function E(e){let{width:t=21,height:n=21,color:a="currentColor",strokeWidth:i=1.2,className:o,...s}=e;return r.createElement("svg",(0,l.Z)({viewBox:"0 0 15 15",width:t,height:n},s),r.createElement("g",{stroke:a,strokeWidth:i},r.createElement("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})))}const x={closeButton:"closeButton_CVFx"};function S(e){return r.createElement("button",(0,l.Z)({type:"button","aria-label":(0,u.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"})},e,{className:(0,a.Z)("clean-btn close",x.closeButton,e.className)}),r.createElement(E,{width:14,height:14,strokeWidth:3.1}))}const _={content:"content_knG7"};function C(e){const{announcementBar:t}=(0,w.L)(),{content:n}=t;return r.createElement("div",(0,l.Z)({},e,{className:(0,a.Z)(_.content,e.className),dangerouslySetInnerHTML:{__html:n}}))}const T={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function P(){const{announcementBar:e}=(0,w.L)(),{isActive:t,close:n}=(0,k.nT)();if(!t)return null;const{backgroundColor:a,textColor:i,isCloseable:o}=e;return r.createElement("div",{className:T.announcementBar,style:{backgroundColor:a,color:i},role:"banner"},o&&r.createElement("div",{className:T.announcementBarPlaceholder}),r.createElement(C,{className:T.announcementBarContent}),o&&r.createElement(S,{onClick:n,className:T.announcementBarClose}))}var L=n(93163),A=n(12466);var R=n(902),O=n(13102);const N=r.createContext(null);function I(e){let{children:t}=e;const n=function(){const e=(0,L.e)(),t=(0,O.HY)(),[n,a]=(0,r.useState)(!1),i=null!==t.component,o=(0,R.D9)(i);return(0,r.useEffect)((()=>{i&&!o&&a(!0)}),[i,o]),(0,r.useEffect)((()=>{i?e.shown||a(!0):a(!1)}),[e.shown,i]),(0,r.useMemo)((()=>[n,a]),[n])}();return r.createElement(N.Provider,{value:n},t)}function D(e){if(e.component){const t=e.component;return r.createElement(t,e.props)}}function M(){const e=(0,r.useContext)(N);if(!e)throw new R.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,a=(0,r.useCallback)((()=>n(!1)),[n]),i=(0,O.HY)();return(0,r.useMemo)((()=>({shown:t,hide:a,content:D(i)})),[a,i,t])}function F(e){let{header:t,primaryMenu:n,secondaryMenu:i}=e;const{shown:o}=M();return r.createElement("div",{className:"navbar-sidebar"},t,r.createElement("div",{className:(0,a.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":o})},r.createElement("div",{className:"navbar-sidebar__item menu"},n),r.createElement("div",{className:"navbar-sidebar__item menu"},i)))}var j=n(92949),B=n(72389);function z(e){return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"}))}function $(e){return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"}))}const U={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function q(e){let{className:t,buttonClassName:n,value:i,onChange:o}=e;const l=(0,B.Z)(),s=(0,u.I)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===i?(0,u.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,u.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return r.createElement("div",{className:(0,a.Z)(U.toggle,t)},r.createElement("button",{className:(0,a.Z)("clean-btn",U.toggleButton,!l&&U.toggleButtonDisabled,n),type:"button",onClick:()=>o("dark"===i?"light":"dark"),disabled:!l,title:s,"aria-label":s,"aria-live":"polite"},r.createElement(z,{className:(0,a.Z)(U.toggleIcon,U.lightToggleIcon)}),r.createElement($,{className:(0,a.Z)(U.toggleIcon,U.darkToggleIcon)})))}const H=r.memo(q),G={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function Q(e){let{className:t}=e;const n=(0,w.L)().navbar.style,a=(0,w.L)().colorMode.disableSwitch,{colorMode:i,setColorMode:o}=(0,j.I)();return a?null:r.createElement(H,{className:t,buttonClassName:"dark"===n?G.darkNavbarColorModeToggle:void 0,value:i,onChange:o})}var Z=n(21327);function V(){return r.createElement(Z.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function W(){const e=(0,L.e)();return r.createElement("button",{type:"button","aria-label":(0,u.I)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle()},r.createElement(E,{color:"var(--ifm-color-emphasis-600)"}))}function Y(){return r.createElement("div",{className:"navbar-sidebar__brand"},r.createElement(V,null),r.createElement(Q,{className:"margin-right--md"}),r.createElement(W,null))}var K=n(39960),X=n(44996),J=n(13919);function ee(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var te=n(39471);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:a,href:i,label:o,html:s,isDropdownLink:u,prependBaseUrlToHref:c,...d}=e;const p=(0,X.Z)(a),f=(0,X.Z)(t),m=(0,X.Z)(i,{forcePrependBaseUrl:!0}),h=o&&i&&!(0,J.Z)(i),g=s?{dangerouslySetInnerHTML:{__html:s}}:{children:r.createElement(r.Fragment,null,o,h&&r.createElement(te.Z,u&&{width:12,height:12}))};return i?r.createElement(K.Z,(0,l.Z)({href:c?m:i},d,g)):r.createElement(K.Z,(0,l.Z)({to:p,isNavLink:!0},(t||n)&&{isActive:(e,t)=>n?ee(n,t.pathname):t.pathname.startsWith(f)},d,g))}function re(e){let{className:t,isDropdownItem:n=!1,...i}=e;const o=r.createElement(ne,(0,l.Z)({className:(0,a.Z)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n},i));return n?r.createElement("li",null,o):o}function ae(e){let{className:t,isDropdownItem:n,...i}=e;return r.createElement("li",{className:"menu__list-item"},r.createElement(ne,(0,l.Z)({className:(0,a.Z)("menu__link",t)},i)))}function ie(e){let{mobile:t=!1,position:n,...a}=e;const i=t?ae:re;return r.createElement(i,(0,l.Z)({},a,{activeClassName:a.activeClassName??(t?"menu__link--active":"navbar__link--active")}))}var oe=n(86043),le=n(48596),se=n(52263);function ue(e,t){return e.some((e=>function(e,t){return!!(0,le.Mg)(e.to,t)||!!ee(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function ce(e){let{items:t,position:n,className:i,onClick:o,...s}=e;const u=(0,r.useRef)(null),[c,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{u.current&&!u.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[u]),r.createElement("div",{ref:u,className:(0,a.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":c})},r.createElement(ne,(0,l.Z)({"aria-haspopup":"true","aria-expanded":c,role:"button",href:s.to?void 0:"#",className:(0,a.Z)("navbar__link",i)},s,{onClick:s.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!c))}}),s.children??s.label),r.createElement("ul",{className:"dropdown__menu"},t.map(((e,t)=>r.createElement(Ge,(0,l.Z)({isDropdownItem:!0,activeClassName:"dropdown__link--active"},e,{key:t}))))))}function de(e){let{items:t,className:n,position:i,onClick:o,...u}=e;const c=function(){const{siteConfig:{baseUrl:e}}=(0,se.Z)(),{pathname:t}=(0,s.TH)();return t.replace(e,"/")}(),d=ue(t,c),{collapsed:p,toggleCollapsed:f,setCollapsed:m}=(0,oe.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&m(!d)}),[c,d,m]),r.createElement("li",{className:(0,a.Z)("menu__list-item",{"menu__list-item--collapsed":p})},r.createElement(ne,(0,l.Z)({role:"button",className:(0,a.Z)("menu__link menu__link--sublist menu__link--sublist-caret",n)},u,{onClick:e=>{e.preventDefault(),f()}}),u.children??u.label),r.createElement(oe.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:p},t.map(((e,t)=>r.createElement(Ge,(0,l.Z)({mobile:!0,isDropdownItem:!0,onClick:o,activeClassName:"menu__link--active"},e,{key:t}))))))}function pe(e){let{mobile:t=!1,...n}=e;const a=t?de:ce;return r.createElement(a,n)}var fe=n(94711);function me(e){let{width:t=20,height:n=20,...a}=e;return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0},a),r.createElement("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"}))}const he="iconLanguage_nlXk";var ge=n(61029),be=n(10412),ve=n(60373),ye=n(80143),we=n(90022),ke=n(98202),Ee=n(73926),xe=n(91073),Se=n(82539),_e=n(10726);const Ce='',Te='',Pe='',Le='',Ae='',Re='',Oe='',Ne={searchBar:"searchBar_RVTs",dropdownMenu:"dropdownMenu_qbY6",suggestion:"suggestion_fB_2",cursor:"cursor_eG29",hitTree:"hitTree_kk6K",hitIcon:"hitIcon_a7Zy",hitPath:"hitPath_ieM4",noResultsIcon:"noResultsIcon_EBY5",hitFooter:"hitFooter_E9YW",hitWrapper:"hitWrapper_sAK8",hitTitle:"hitTitle_vyVt",hitAction:"hitAction_NqkB",hideAction:"hideAction_vcyE",noResults:"noResults_l6Q3",searchBarContainer:"searchBarContainer_NW3z",searchBarLoadingRing:"searchBarLoadingRing_YnHq",searchClearButton:"searchClearButton_qk4g",searchIndexLoading:"searchIndexLoading_EJ1f",searchHintContainer:"searchHintContainer_Pkmr",searchHint:"searchHint_iIMx",focused:"focused_OWtg",input:"input_FOTf",hint:"hint_URu1",suggestions:"suggestions_X8XU",dataset:"dataset_QiCy",empty:"empty_eITn"};function Ie(e){let{document:t,type:n,page:r,metadata:a,tokens:i,isInterOfTree:o,isLastOfTree:l}=e;const s=0===n,u=1===n,c=[];o?c.push(Re):l&&c.push(Oe);const d=c.map((e=>`${e}`)),p=`${s?Ce:u?Te:Pe}`,f=[`${(0,_e.o)(t.t,(0,xe.m)(a,"t"),i)}`];if(!o&&!l&&ge.H6){const e=r?(r.b??[]).concat(r.t).concat(t.s&&t.s!==r.t?t.s:[]):t.b;f.push(`${(0,Ee.e)(e??[])}`)}else s||f.push(`${(0,Se.C)(r.t||(t.u.startsWith("/docs/api-reference/")?"API Reference":""),i)}`);const m=`${Le}`;return[...d,p,``,...f,"",m].join("")}function De(){return`${Ae}${(0,u.I)({id:"theme.SearchBar.noResultsText",message:"No results"})}`}var Me=n(80311);async function Fe(){const e=await Promise.all([n.e(8443),n.e(5525)]).then(n.t.bind(n,68443,23)),t=e.default;return t.noConflict?t.noConflict():e.noConflict&&e.noConflict(),t}const je="_highlight";const Be=function(e){var t;let{handleSearchBarToggle:n}=e;const{siteConfig:{baseUrl:i}}=(0,se.Z)(),o=(0,ye.gA)();let l=i;try{const{preferredVersion:e}=(0,ve.J)((null==o?void 0:o.pluginId)??ge.gQ);e&&!e.isLast&&(l=e.path+"/")}catch(O){if(ge.l9&&!(O instanceof R.i6))throw O}const c=(0,s.k6)(),d=(0,s.TH)(),p=(0,r.useRef)(null),f=(0,r.useRef)("empty"),m=(0,r.useRef)(!1),[h,g]=(0,r.useState)(!1),[b,v]=(0,r.useState)(!1),[y,w]=(0,r.useState)(""),k=(0,r.useRef)(null),E=(0,r.useCallback)((async()=>{if("empty"!==f.current)return;f.current="loading",g(!0);const[{wrappedIndexes:e,zhDictionary:t},n]=await Promise.all([(0,we.w)(l),Fe()]);if(k.current=n(p.current,{hint:!1,autoselect:!0,openOnFocus:!0,cssClasses:{root:Ne.searchBar,noPrefix:!0,dropdownMenu:Ne.dropdownMenu,input:Ne.input,hint:Ne.hint,suggestions:Ne.suggestions,suggestion:Ne.suggestion,cursor:Ne.cursor,dataset:Ne.dataset,empty:Ne.empty}},[{source:(0,ke.v)(e,t,ge.qo),templates:{suggestion:Ie,empty:De,footer:e=>{let{query:t,isEmpty:n}=e;if(n)return;const r=document.createElement("a"),a=`${i}search?q=${encodeURIComponent(t)}`;r.href=a,r.textContent=(0,u.I)({id:"theme.SearchBar.seeAll",message:"See all results"}),r.addEventListener("click",(e=>{e.ctrlKey||e.metaKey||(e.preventDefault(),k.current.autocomplete.close(),c.push(a))}));const o=document.createElement("div");return o.className=Ne.hitFooter,o.appendChild(r),o}}}]).on("autocomplete:selected",(function(e,t){var n;let{document:{u:r,h:a},tokens:i}=t;null==(n=p.current)||n.blur();let o=r;if(ge.vc&&i.length>0){const e=new URLSearchParams;for(const t of i)e.append(je,t);o+=`?${e.toString()}`}a&&(o+=a),c.push(o)})).on("autocomplete:closed",(()=>{var e;null==(e=p.current)||e.blur()})),f.current="done",g(!1),m.current){const e=p.current;e.value&&k.current.autocomplete.open(),e.focus()}}),[i,l,c]);(0,r.useEffect)((()=>{if(!ge.vc)return;const e=be.Z.canUseDOM?new URLSearchParams(d.search).getAll(je):[];setTimeout((()=>{var t;const n=document.querySelector("article");if(!n)return;const r=new ge.vc(n);r.unmark(),0!==e.length&&r.mark(e),w(e.join(" ")),null==(t=k.current)||t.autocomplete.setVal(e.join(" "))}))}),[d.search,d.pathname]);const[x,S]=(0,r.useState)(!1),_=(0,r.useCallback)((()=>{m.current=!0,E(),S(!0),null==n||n(!0)}),[n,E]),C=(0,r.useCallback)((()=>{S(!1),null==n||n(!1)}),[n]),T=(0,r.useCallback)((()=>{E()}),[E]),P=(0,r.useCallback)((e=>{w(e.target.value),e.target.value&&v(!0)}),[]),L=!!be.Z.canUseDOM&&/mac/i.test((null==(t=navigator.userAgentData)?void 0:t.platform)??navigator.platform);(0,r.useEffect)((()=>{if(!ge.AY)return;const e=e=>{var t;(L?e.metaKey:e.ctrlKey)&&"KeyK"===e.code&&(e.preventDefault(),null==(t=p.current)||t.focus(),_())};return document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",e)}}),[L,_]);const A=(0,r.useCallback)((()=>{var e;const t=new URLSearchParams(d.search);t.delete(je);const n=t.toString(),r=d.pathname+(""!=n?`?${n}`:"")+d.hash;r!=d.pathname+d.search+d.hash&&c.push(r),w(""),null==(e=k.current)||e.autocomplete.setVal("")}),[d.pathname,d.search,d.hash,c]);return r.createElement("div",{className:(0,a.Z)("navbar__search",Ne.searchBarContainer,{[Ne.searchIndexLoading]:h&&b,[Ne.focused]:x})},r.createElement("input",{placeholder:(0,u.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"}),"aria-label":"Search",className:"navbar__search-input",onMouseEnter:T,onFocus:_,onBlur:C,onChange:P,ref:p,value:y}),r.createElement(Me.Z,{className:Ne.searchBarLoadingRing}),ge.AY&&ge.t_&&(""!==y?r.createElement("button",{className:Ne.searchClearButton,onClick:A},"\u2715"):r.createElement("div",{className:Ne.searchHintContainer},r.createElement("kbd",{className:Ne.searchHint},L?"\u2318":"ctrl"),r.createElement("kbd",{className:Ne.searchHint},"K"))))},ze={searchBox:"searchBox_ZlJk"};function $e(e){let{children:t,className:n}=e;return r.createElement("div",{className:(0,a.Z)(n,ze.searchBox)},t)}var Ue=n(53438);const qe=e=>e.docs.find((t=>t.id===e.mainDocId));const He={default:ie,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:a,...i}=e;const{i18n:{currentLocale:o,locales:c,localeConfigs:d}}=(0,se.Z)(),p=(0,fe.l)(),{search:f,hash:m}=(0,s.TH)(),h=[...n,...c.map((e=>{const n=`${`pathname://${p.createUrl({locale:e,fullyQualified:!1})}`}${f}${m}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===o?t?"menu__link--active":"dropdown__link--active":""}})),...a],g=t?(0,u.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[o].label;return r.createElement(pe,(0,l.Z)({},i,{mobile:t,label:r.createElement(r.Fragment,null,r.createElement(me,{className:he}),g),items:h}))},search:function(e){let{mobile:t,className:n}=e;return t?null:r.createElement($e,{className:n},r.createElement(Be,null))},dropdown:pe,html:function(e){let{value:t,className:n,mobile:i=!1,isDropdownItem:o=!1}=e;const l=o?"li":"div";return r.createElement(l,{className:(0,a.Z)({navbar__item:!i&&!o,"menu__list-item":i},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:a,...i}=e;const{activeDoc:o}=(0,ye.Iw)(a),s=(0,Ue.vY)(t,a);return null===s?null:r.createElement(ie,(0,l.Z)({exact:!0},i,{isActive:()=>(null==o?void 0:o.path)===s.path||!(null==o||!o.sidebar)&&o.sidebar===s.sidebar,label:n??s.id,to:s.path}))},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:a,...i}=e;const{activeDoc:o}=(0,ye.Iw)(a),s=(0,Ue.oz)(t,a).link;if(!s)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return r.createElement(ie,(0,l.Z)({exact:!0},i,{isActive:()=>(null==o?void 0:o.sidebar)===t,label:n??s.label,to:s.path}))},docsVersion:function(e){let{label:t,to:n,docsPluginId:a,...i}=e;const o=(0,Ue.lO)(a)[0],s=t??o.label,u=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(o).path;return r.createElement(ie,(0,l.Z)({},i,{label:s,to:u}))},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:a,dropdownItemsBefore:i,dropdownItemsAfter:o,...c}=e;const{search:d,hash:p}=(0,s.TH)(),f=(0,ye.Iw)(n),m=(0,ye.gB)(n),{savePreferredVersionName:h}=(0,ve.J)(n),g=[...i,...m.map((e=>{const t=f.alternateDocVersions[e.name]??qe(e);return{label:e.label,to:`${t.path}${d}${p}`,isActive:()=>e===f.activeVersion,onClick:()=>h(e.name)}})),...o],b=(0,Ue.lO)(n)[0],v=t&&g.length>1?(0,u.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):b.label,y=t&&g.length>1?void 0:qe(b).path;return g.length<=1?r.createElement(ie,(0,l.Z)({},c,{mobile:t,label:v,to:y,isActive:a?()=>!1:void 0})):r.createElement(pe,(0,l.Z)({},c,{mobile:t,label:v,to:y,items:g,isActive:a?()=>!1:void 0}))}};function Ge(e){let{type:t,...n}=e;const a=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),i=He[a];if(!i)throw new Error(`No NavbarItem component found for type "${t}".`);return r.createElement(i,n)}function Qe(){const e=(0,L.e)(),t=(0,w.L)().navbar.items;return r.createElement("ul",{className:"menu__list"},t.map(((t,n)=>r.createElement(Ge,(0,l.Z)({mobile:!0},t,{onClick:()=>e.toggle(),key:n})))))}function Ze(e){return r.createElement("button",(0,l.Z)({},e,{type:"button",className:"clean-btn navbar-sidebar__back"}),r.createElement(u.Z,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)"},"\u2190 Back to main menu"))}function Ve(){const e=0===(0,w.L)().navbar.items.length,t=M();return r.createElement(r.Fragment,null,!e&&r.createElement(Ze,{onClick:()=>t.hide()}),t.content)}function We(){const e=(0,L.e)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?r.createElement(F,{header:r.createElement(Y,null),primaryMenu:r.createElement(Qe,null),secondaryMenu:r.createElement(Ve,null)}):null}const Ye={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function Ke(e){return r.createElement("div",(0,l.Z)({role:"presentation"},e,{className:(0,a.Z)("navbar-sidebar__backdrop",e.className)}))}function Xe(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:i}}=(0,w.L)(),o=(0,L.e)(),{navbarRef:l,isNavbarVisible:s}=function(e){const[t,n]=(0,r.useState)(e),a=(0,r.useRef)(!1),i=(0,r.useRef)(0),o=(0,r.useCallback)((e=>{null!==e&&(i.current=e.getBoundingClientRect().height)}),[]);return(0,A.RF)(((t,r)=>{let{scrollY:o}=t;if(!e)return;if(o=l?n(!1):o+u{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return a.current=!0,void n(!1);n(!0)})),{navbarRef:o,isNavbarVisible:t}}(n);return r.createElement("nav",{ref:l,"aria-label":(0,u.I)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,a.Z)("navbar","navbar--fixed-top",n&&[Ye.navbarHideable,!s&&Ye.navbarHidden],{"navbar--dark":"dark"===i,"navbar--primary":"primary"===i,"navbar-sidebar--show":o.shown})},t,r.createElement(Ke,{onClick:o.toggle}),r.createElement(We,null))}var Je=n(18780);const et={errorBoundaryError:"errorBoundaryError_a6uf"};function tt(e){return r.createElement("button",(0,l.Z)({type:"button"},e),r.createElement(u.Z,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error"},"Try again"))}function nt(e){let{error:t}=e;const n=(0,Je.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{className:et.errorBoundaryError},n)}class rt extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const at="right";function it(e){let{width:t=30,height:n=30,className:a,...i}=e;return r.createElement("svg",(0,l.Z)({className:a,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true"},i),r.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"}))}function ot(){const{toggle:e,shown:t}=(0,L.e)();return r.createElement("button",{onClick:e,"aria-label":(0,u.I)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button"},r.createElement(it,null))}const lt={colorModeToggle:"colorModeToggle_DEke"};function st(e){let{items:t}=e;return r.createElement(r.Fragment,null,t.map(((e,t)=>r.createElement(rt,{key:t,onError:t=>new Error(`A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n${JSON.stringify(e,null,2)}`,{cause:t})},r.createElement(Ge,e)))))}function ut(e){let{left:t,right:n}=e;return r.createElement("div",{className:"navbar__inner"},r.createElement("div",{className:"navbar__items"},t),r.createElement("div",{className:"navbar__items navbar__items--right"},n))}function ct(){const e=(0,L.e)(),t=(0,w.L)().navbar.items,[n,a]=function(e){function t(e){return"left"===(e.position??at)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),i=t.find((e=>"search"===e.type));return r.createElement(ut,{left:r.createElement(r.Fragment,null,!e.disabled&&r.createElement(ot,null),r.createElement(V,null),r.createElement(st,{items:n})),right:r.createElement(r.Fragment,null,r.createElement(st,{items:a}),r.createElement(Q,{className:lt.colorModeToggle}),!i&&r.createElement($e,null,r.createElement(Be,null)))})}function dt(){return r.createElement(Xe,null,r.createElement(ct,null))}function pt(e){let{item:t}=e;const{to:n,href:a,label:i,prependBaseUrlToHref:o,...s}=t,u=(0,X.Z)(n),c=(0,X.Z)(a,{forcePrependBaseUrl:!0});return r.createElement(K.Z,(0,l.Z)({className:"footer__link-item"},a?{href:o?c:a}:{to:u},s),i,a&&!(0,J.Z)(a)&&r.createElement(te.Z,null))}function ft(e){let{item:t}=e;return t.html?r.createElement("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement("li",{key:t.href??t.to,className:"footer__item"},r.createElement(pt,{item:t}))}function mt(e){let{column:t}=e;return r.createElement("div",{className:"col footer__col"},r.createElement("div",{className:"footer__title"},t.title),r.createElement("ul",{className:"footer__items clean-list"},t.items.map(((e,t)=>r.createElement(ft,{key:t,item:e})))))}function ht(e){let{columns:t}=e;return r.createElement("div",{className:"row footer__links"},t.map(((e,t)=>r.createElement(mt,{key:t,column:e}))))}function gt(){return r.createElement("span",{className:"footer__link-separator"},"\xb7")}function bt(e){let{item:t}=e;return t.html?r.createElement("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement(pt,{item:t})}function vt(e){let{links:t}=e;return r.createElement("div",{className:"footer__links text--center"},r.createElement("div",{className:"footer__links"},t.map(((e,n)=>r.createElement(r.Fragment,{key:n},r.createElement(bt,{item:e}),t.length!==n+1&&r.createElement(gt,null))))))}function yt(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?r.createElement(ht,{columns:t}):r.createElement(vt,{links:t})}var wt=n(50941);const kt={footerLogoLink:"footerLogoLink_BH7S"};function Et(e){let{logo:t}=e;const{withBaseUrl:n}=(0,X.C)(),i={light:n(t.src),dark:n(t.srcDark??t.src)};return r.createElement(wt.Z,{className:(0,a.Z)("footer__logo",t.className),alt:t.alt,sources:i,width:t.width,height:t.height,style:t.style})}function xt(e){let{logo:t}=e;return t.href?r.createElement(K.Z,{href:t.href,className:kt.footerLogoLink,target:t.target},r.createElement(Et,{logo:t})):r.createElement(Et,{logo:t})}function St(e){let{copyright:t}=e;return r.createElement("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function _t(e){let{style:t,links:n,logo:i,copyright:o}=e;return r.createElement("footer",{className:(0,a.Z)("footer",{"footer--dark":"dark"===t})},r.createElement("div",{className:"container container-fluid"},n,(i||o)&&r.createElement("div",{className:"footer__bottom text--center"},i&&r.createElement("div",{className:"margin-bottom--sm"},i),o)))}function Ct(){const{footer:e}=(0,w.L)();if(!e)return null;const{copyright:t,links:n,logo:a,style:i}=e;return r.createElement(_t,{style:i,links:n&&n.length>0&&r.createElement(yt,{links:n}),logo:a&&r.createElement(xt,{logo:a}),copyright:t&&r.createElement(St,{copyright:t})})}const Tt=r.memo(Ct),Pt=(0,R.Qc)([j.S,k.pl,A.OC,ve.L5,o.VC,function(e){let{children:t}=e;return r.createElement(O.n2,null,r.createElement(L.M,null,r.createElement(I,null,t)))}]);function Lt(e){let{children:t}=e;return r.createElement(Pt,null,t)}function At(e){let{error:t,tryAgain:n}=e;return r.createElement("main",{className:"container margin-vert--xl"},r.createElement("div",{className:"row"},r.createElement("div",{className:"col col--6 col--offset-3"},r.createElement("h1",{className:"hero__title"},r.createElement(u.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed"},"This page crashed.")),r.createElement("div",{className:"margin-vert--lg"},r.createElement(tt,{onClick:n,className:"button button--primary shadow--lw"})),r.createElement("hr",null),r.createElement("div",{className:"margin-vert--md"},r.createElement(nt,{error:t})))))}const Rt={mainWrapper:"mainWrapper_z2l0"};function Ot(e){const{children:t,noFooter:n,wrapperClassName:l,title:s,description:u}=e;return(0,b.t)(),r.createElement(Lt,null,r.createElement(o.d,{title:s,description:u}),r.createElement(y,null),r.createElement(P,null),r.createElement(dt,null),r.createElement("div",{id:d,className:(0,a.Z)(g.k.wrapper.main,Rt.mainWrapper,l)},r.createElement(i.Z,{fallback:e=>r.createElement(At,e)},t)),!n&&r.createElement(Tt,null))}},21327:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var r=n(87462),a=n(67294),i=n(39960),o=n(44996),l=n(52263),s=n(86668),u=n(50941);function c(e){let{logo:t,alt:n,imageClassName:r}=e;const i={light:(0,o.Z)(t.src),dark:(0,o.Z)(t.srcDark||t.src)},l=a.createElement(u.Z,{className:t.className,sources:i,height:t.height,width:t.width,alt:n,style:t.style});return r?a.createElement("div",{className:r},l):l}function d(e){const{siteConfig:{title:t}}=(0,l.Z)(),{navbar:{title:n,logo:u}}=(0,s.L)(),{imageClassName:d,titleClassName:p,...f}=e,m=(0,o.Z)((null==u?void 0:u.href)||"/"),h=n?"":t,g=(null==u?void 0:u.alt)??h;return a.createElement(i.Z,(0,r.Z)({to:m},f,(null==u?void 0:u.target)&&{target:u.target}),u&&a.createElement(c,{logo:u,alt:g,imageClassName:d}),null!=n&&a.createElement("b",{className:p},n))}},90197:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=n(67294),a=n(35742);function i(e){let{locale:t,version:n,tag:i}=e;const o=t;return r.createElement(a.Z,null,t&&r.createElement("meta",{name:"docusaurus_locale",content:t}),n&&r.createElement("meta",{name:"docusaurus_version",content:n}),i&&r.createElement("meta",{name:"docusaurus_tag",content:i}),o&&r.createElement("meta",{name:"docsearch:language",content:o}),n&&r.createElement("meta",{name:"docsearch:version",content:n}),i&&r.createElement("meta",{name:"docsearch:docusaurus_tag",content:i}))}},50941:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});var r=n(87462),a=n(67294),i=n(86010),o=n(72389),l=n(92949);const s={themedImage:"themedImage_ToTc","themedImage--light":"themedImage--light_HNdA","themedImage--dark":"themedImage--dark_i4oU"};function u(e){const t=(0,o.Z)(),{colorMode:n}=(0,l.I)(),{sources:u,className:c,alt:d,...p}=e,f=t?"dark"===n?["dark"]:["light"]:["light","dark"];return a.createElement(a.Fragment,null,f.map((e=>a.createElement("img",(0,r.Z)({key:e,src:u[e],alt:d,className:(0,i.Z)(s.themedImage,s[`themedImage--${e}`],c)},p)))))}},86043:(e,t,n)=>{"use strict";n.d(t,{u:()=>l,z:()=>g});var r=n(87462),a=n(67294),i=n(10412);const o="ease-in-out";function l(e){let{initialState:t}=e;const[n,r]=(0,a.useState)(t??!1),i=(0,a.useCallback)((()=>{r((e=>!e))}),[]);return{collapsed:n,setCollapsed:r,toggleCollapsed:i}}const s={display:"none",overflow:"hidden",height:"0px"},u={display:"block",overflow:"visible",height:"auto"};function c(e,t){const n=t?s:u;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function d(e){if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return 0;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}function p(e){let{collapsibleRef:t,collapsed:n,animation:r}=e;const i=(0,a.useRef)(!1);(0,a.useEffect)((()=>{const e=t.current;function a(){const t=function(){const t=e.scrollHeight;return{transition:`height ${(null==r?void 0:r.duration)??d(t)}ms ${(null==r?void 0:r.easing)??o}`,height:`${t}px`}}();e.style.transition=t.transition,e.style.height=t.height}if(!i.current)return c(e,n),void(i.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(a(),requestAnimationFrame((()=>{e.style.height=s.height,e.style.overflow=s.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{a()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,r])}function f(e){if(!i.Z.canUseDOM)return e?s:u}function m(e){let{as:t="div",collapsed:n,children:r,animation:i,onCollapseTransitionEnd:o,className:l,disableSSRStyle:s}=e;const u=(0,a.useRef)(null);return p({collapsibleRef:u,collapsed:n,animation:i}),a.createElement(t,{ref:u,style:s?void 0:f(n),onTransitionEnd:e=>{"height"===e.propertyName&&(c(u.current,n),null==o||o(n))},className:l},r)}function h(e){let{collapsed:t,...n}=e;const[i,o]=(0,a.useState)(!t),[l,s]=(0,a.useState)(t);return(0,a.useLayoutEffect)((()=>{t||o(!0)}),[t]),(0,a.useLayoutEffect)((()=>{i&&s(t)}),[i,t]),i?a.createElement(m,(0,r.Z)({},n,{collapsed:l})):null}function g(e){let{lazy:t,...n}=e;const r=t?h:m;return a.createElement(r,n)}},59689:(e,t,n)=>{"use strict";n.d(t,{nT:()=>m,pl:()=>f});var r=n(67294),a=n(72389),i=n(50012),o=n(902),l=n(86668);const s=(0,i.WA)("docusaurus.announcement.dismiss"),u=(0,i.WA)("docusaurus.announcement.id"),c=()=>"true"===s.get(),d=e=>s.set(String(e)),p=r.createContext(null);function f(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,l.L)(),t=(0,a.Z)(),[n,i]=(0,r.useState)((()=>!!t&&c()));(0,r.useEffect)((()=>{i(c())}),[]);const o=(0,r.useCallback)((()=>{d(!0),i(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=u.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;u.set(t),r&&d(!1),!r&&c()||i(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:o})),[e,n,o])}();return r.createElement(p.Provider,{value:n},t)}function m(){const e=(0,r.useContext)(p);if(!e)throw new o.i6("AnnouncementBarProvider");return e}},92949:(e,t,n)=>{"use strict";n.d(t,{I:()=>g,S:()=>h});var r=n(67294),a=n(10412),i=n(902),o=n(50012),l=n(86668);const s=r.createContext(void 0),u="theme",c=(0,o.WA)(u),d={light:"light",dark:"dark"},p=e=>e===d.dark?d.dark:d.light,f=e=>a.Z.canUseDOM?p(document.documentElement.getAttribute("data-theme")):p(e),m=e=>{c.set(p(e))};function h(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,l.L)(),[a,i]=(0,r.useState)(f(e));(0,r.useEffect)((()=>{t&&c.del()}),[t]);const o=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:a=!0}=r;t?(i(t),a&&m(t)):(i(n?window.matchMedia("(prefers-color-scheme: dark)").matches?d.dark:d.light:e),c.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",p(a))}),[a]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==u)return;const t=c.get();null!==t&&o(p(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,o]);const s=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||s.current?s.current=window.matchMedia("print").matches:o(null)};return e.addListener(r),()=>e.removeListener(r)}),[o,t,n]),(0,r.useMemo)((()=>({colorMode:a,setColorMode:o,get isDarkTheme(){return a===d.dark},setLightTheme(){o(d.light)},setDarkTheme(){o(d.dark)}})),[a,o])}();return r.createElement(s.Provider,{value:n},t)}function g(){const e=(0,r.useContext)(s);if(null==e)throw new i.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},60373:(e,t,n)=>{"use strict";n.d(t,{J:()=>v,L5:()=>g});var r=n(67294),a=n(80143),i=n(29935),o=n(86668),l=n(53438),s=n(902),u=n(50012);const c=e=>`docs-preferred-version-${e}`,d={save:(e,t,n)=>{(0,u.WA)(c(e),{persistence:t}).set(n)},read:(e,t)=>(0,u.WA)(c(e),{persistence:t}).get(),clear:(e,t)=>{(0,u.WA)(c(e),{persistence:t}).del()}},p=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const f=r.createContext(null);function m(){const e=(0,a._r)(),t=(0,o.L)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[i,l]=(0,r.useState)((()=>p(n)));(0,r.useEffect)((()=>{l(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function a(e){const t=d.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(d.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,a(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[i,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){d.save(e,t,n),l((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function h(e){let{children:t}=e;const n=m();return r.createElement(f.Provider,{value:n},t)}function g(e){let{children:t}=e;return l.cE?r.createElement(h,null,t):r.createElement(r.Fragment,null,t)}function b(){const e=(0,r.useContext)(f);if(!e)throw new s.i6("DocsPreferredVersionContextProvider");return e}function v(e){void 0===e&&(e=i.m);const t=(0,a.zh)(e),[n,o]=b(),{preferredVersionName:l}=n[e];return{preferredVersion:t.versions.find((e=>e.name===l))??null,savePreferredVersionName:(0,r.useCallback)((t=>{o.savePreferredVersion(e,t)}),[o,e])}}},1116:(e,t,n)=>{"use strict";n.d(t,{V:()=>s,b:()=>l});var r=n(67294),a=n(902);const i=Symbol("EmptyContext"),o=r.createContext(i);function l(e){let{children:t,name:n,items:a}=e;const i=(0,r.useMemo)((()=>n&&a?{name:n,items:a}:null),[n,a]);return r.createElement(o.Provider,{value:i},t)}function s(){const e=(0,r.useContext)(o);if(e===i)throw new a.i6("DocsSidebarProvider");return e}},93163:(e,t,n)=>{"use strict";n.d(t,{M:()=>d,e:()=>p});var r=n(67294),a=n(13102),i=n(87524),o=n(91980),l=n(86668),s=n(902);const u=r.createContext(void 0);function c(){const e=function(){const e=(0,a.HY)(),{items:t}=(0,l.L)().navbar;return 0===t.length&&!e.component}(),t=(0,i.i)(),n=!e&&"mobile"===t,[s,u]=(0,r.useState)(!1);(0,o.Rb)((()=>{if(s)return u(!1),!1}));const c=(0,r.useCallback)((()=>{u((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&u(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:c,shown:s})),[e,n,c,s])}function d(e){let{children:t}=e;const n=c();return r.createElement(u.Provider,{value:n},t)}function p(){const e=r.useContext(u);if(void 0===e)throw new s.i6("NavbarMobileSidebarProvider");return e}},13102:(e,t,n)=>{"use strict";n.d(t,{HY:()=>l,Zo:()=>s,n2:()=>o});var r=n(67294),a=n(902);const i=r.createContext(null);function o(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return r.createElement(i.Provider,{value:n},t)}function l(){const e=(0,r.useContext)(i);if(!e)throw new a.i6("NavbarSecondaryMenuContentProvider");return e[0]}function s(e){let{component:t,props:n}=e;const o=(0,r.useContext)(i);if(!o)throw new a.i6("NavbarSecondaryMenuContentProvider");const[,l]=o,s=(0,a.Ql)(n);return(0,r.useEffect)((()=>{l({component:t,props:s})}),[l,t,s]),(0,r.useEffect)((()=>()=>l({component:null,props:null})),[l]),null}},19727:(e,t,n)=>{"use strict";n.d(t,{h:()=>a,t:()=>i});var r=n(67294);const a="navigation-with-keyboard";function i(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(a),"mousedown"===e.type&&document.body.classList.remove(a)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(a),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},87524:(e,t,n)=>{"use strict";n.d(t,{i:()=>u});var r=n(67294),a=n(10412);const i={desktop:"desktop",mobile:"mobile",ssr:"ssr"},o=996;function l(){return a.Z.canUseDOM?window.innerWidth>o?i.desktop:i.mobile:i.ssr}const s=!1;function u(){const[e,t]=(0,r.useState)((()=>s?"ssr":l()));return(0,r.useEffect)((()=>{function e(){t(l())}const n=s?window.setTimeout(e,1e3):void 0;return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e),clearTimeout(n)}}),[]),e}},35281:(e,t,n)=>{"use strict";n.d(t,{k:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{}}},53438:(e,t,n)=>{"use strict";n.d(t,{Wl:()=>p,_F:()=>h,cE:()=>d,hI:()=>k,lO:()=>v,oz:()=>y,s1:()=>b,vY:()=>w});var r=n(67294),a=n(76775),i=n(18790),o=n(80143),l=n(60373),s=n(1116),u=n(67392),c=n(48596);const d=!!o._r;function p(e){if(e.href)return e.href;for(const t of e.items){if("link"===t.type)return t.href;if("category"===t.type){const e=p(t);if(e)return e}}}const f=(e,t)=>void 0!==e&&(0,c.Mg)(e,t),m=(e,t)=>e.some((e=>h(e,t)));function h(e,t){return"link"===e.type?f(e.href,t):"category"===e.type&&(f(e.href,t)||m(e.items,t))}function g(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const a=[];return function e(t){for(const i of t)if("category"===i.type&&((0,c.Mg)(i.href,n)||e(i.items))||"link"===i.type&&(0,c.Mg)(i.href,n)){return r&&"category"!==i.type||a.unshift(i),!0}return!1}(t),a}function b(){var e;const t=(0,s.V)(),{pathname:n}=(0,a.TH)();return!1!==(null==(e=(0,o.gA)())?void 0:e.pluginData.breadcrumbs)&&t?g({sidebarItems:t.items,pathname:n}):null}function v(e){const{activeVersion:t}=(0,o.Iw)(e),{preferredVersion:n}=(0,l.J)(e),a=(0,o.yW)(e);return(0,r.useMemo)((()=>(0,u.j)([t,n,a].filter(Boolean))),[t,n,a])}function y(e,t){const n=v(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable sidebar ids are:\n- ${Object.keys(t).join("\n- ")}`);return r[1]}),[e,n])}function w(e,t){const n=v(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${(0,u.j)(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function k(e){let{route:t,versionMetadata:n}=e;const r=(0,a.TH)(),o=t.routes,l=o.find((e=>(0,a.LX)(r.pathname,e)));if(!l)return null;const s=l.sidebar,u=s?n.docsSidebars[s]:void 0;return{docElement:(0,i.H)(o),sidebarName:s,sidebarItems:u}}},91980:(e,t,n)=>{"use strict";n.d(t,{Rb:()=>l,_X:()=>s});var r=n(67294),a=n(76775),i=n(61688),o=n(902);function l(e){!function(e){const t=(0,a.k6)(),n=(0,o.zX)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}function s(e){return function(e){const t=(0,a.k6)();return(0,i.useSyncExternalStore)(t.listen,(()=>e(t)),(()=>e(t)))}((t=>null===e?null:new URLSearchParams(t.location.search).get(e)))}},67392:(e,t,n)=>{"use strict";function r(e,t){return void 0===t&&(t=(e,t)=>e===t),e.filter(((n,r)=>e.findIndex((e=>t(e,n)))!==r))}function a(e){return Array.from(new Set(e))}n.d(t,{j:()=>a,l:()=>r})},1944:(e,t,n)=>{"use strict";n.d(t,{FG:()=>p,d:()=>c,VC:()=>f});var r=n(67294),a=n(86010),i=n(35742),o=n(30226);function l(){const e=r.useContext(o._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var s=n(44996),u=n(52263);function c(e){let{title:t,description:n,keywords:a,image:o,children:l}=e;const c=function(e){const{siteConfig:t}=(0,u.Z)(),{title:n,titleDelimiter:r}=t;return null!=e&&e.trim().length?`${e.trim()} ${r} ${n}`:n}(t),{withBaseUrl:d}=(0,s.C)(),p=o?d(o,{absolute:!0}):void 0;return r.createElement(i.Z,null,t&&r.createElement("title",null,c),t&&r.createElement("meta",{property:"og:title",content:c}),n&&r.createElement("meta",{name:"description",content:n}),n&&r.createElement("meta",{property:"og:description",content:n}),a&&r.createElement("meta",{name:"keywords",content:Array.isArray(a)?a.join(","):a}),p&&r.createElement("meta",{property:"og:image",content:p}),p&&r.createElement("meta",{name:"twitter:image",content:p}),l)}const d=r.createContext(void 0);function p(e){let{className:t,children:n}=e;const o=r.useContext(d),l=(0,a.Z)(o,t);return r.createElement(d.Provider,{value:l},r.createElement(i.Z,null,r.createElement("html",{className:l})),n)}function f(e){let{children:t}=e;const n=l(),i=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const o=`plugin-id-${n.plugin.id}`;return r.createElement(p,{className:(0,a.Z)(i,o)},t)}},902:(e,t,n)=>{"use strict";n.d(t,{D9:()=>o,Qc:()=>u,Ql:()=>s,i6:()=>l,zX:()=>i});var r=n(67294);const a=n(10412).Z.canUseDOM?r.useLayoutEffect:r.useEffect;function i(e){const t=(0,r.useRef)(e);return a((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function o(e){const t=(0,r.useRef)();return a((()=>{t.current=e})),t.current}class l extends Error{constructor(e,t){var n,r,a;super(),this.name="ReactContextError",this.message=`Hook ${(null==(n=this.stack)||null==(r=n.split("\n")[1])||null==(a=r.match(/at (?:\w+\.)?(?\w+)/))?void 0:a.groups.name)??""} is called outside the <${e}>. ${t??""}`}}function s(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function u(e){return t=>{let{children:n}=t;return r.createElement(r.Fragment,null,e.reduceRight(((e,t)=>r.createElement(t,null,e)),n))}}},48596:(e,t,n)=>{"use strict";n.d(t,{Mg:()=>o,Ns:()=>l});var r=n(67294),a=n(723),i=n(52263);function o(e,t){const n=e=>{var t;return null==(t=!e||e.endsWith("/")?e:`${e}/`)?void 0:t.toLowerCase()};return n(e)===n(t)}function l(){const{baseUrl:e}=(0,i.Z)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function a(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(a).flatMap((e=>e.routes??[])))}(n)}({routes:a.Z,baseUrl:e})),[e])}},12466:(e,t,n)=>{"use strict";n.d(t,{Ct:()=>f,OC:()=>s,RF:()=>d,o5:()=>p});var r=n(67294),a=n(10412),i=n(72389),o=n(902);const l=r.createContext(void 0);function s(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return r.createElement(l.Provider,{value:n},t)}function u(){const e=(0,r.useContext)(l);if(null==e)throw new o.i6("ScrollControllerProvider");return e}const c=()=>a.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function d(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=u(),a=(0,r.useRef)(c()),i=(0,o.zX)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=c();i(e,a.current),a.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[i,n,...t])}function p(){const e=u(),t=function(){const e=(0,r.useRef)({elem:null,top:0}),t=(0,r.useCallback)((t=>{e.current={elem:t,top:t.getBoundingClientRect().top}}),[]),n=(0,r.useCallback)((()=>{const{current:{elem:t,top:n}}=e;if(!t)return{restored:!1};const r=t.getBoundingClientRect().top-n;return r&&window.scrollBy({left:0,top:r}),e.current={elem:null,top:0},{restored:0!==r}}),[]);return(0,r.useMemo)((()=>({save:t,restore:n})),[n,t])}(),n=(0,r.useRef)(void 0),a=(0,r.useCallback)((r=>{t.save(r),e.disableScrollEvents(),n.current=()=>{const{restored:r}=t.restore();if(n.current=void 0,r){const t=()=>{e.enableScrollEvents(),window.removeEventListener("scroll",t)};window.addEventListener("scroll",t)}else e.enableScrollEvents()}}),[e,t]);return(0,r.useLayoutEffect)((()=>{queueMicrotask((()=>null==n.current?void 0:n.current()))})),{blockElementScrollPositionUntilNextRender:a}}function f(){const e=(0,r.useRef)(null),t=(0,i.Z)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const a=document.documentElement.scrollTop;(n&&a>e||!n&&at&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>null==e.current?void 0:e.current()}}},43320:(e,t,n)=>{"use strict";n.d(t,{HX:()=>r,os:()=>a});n(52263);const r="default";function a(e,t){return`docs-${e}-${t}`}},50012:(e,t,n)=>{"use strict";n.d(t,{Nk:()=>d,WA:()=>c});var r=n(67294),a=n(61688);const i="localStorage";function o(e){let{key:t,oldValue:n,newValue:r,storage:a}=e;if(n===r)return;const i=document.createEvent("StorageEvent");i.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,a),window.dispatchEvent(i)}function l(e){if(void 0===e&&(e=i),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,s||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),s=!0),null}var t}let s=!1;const u={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function c(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t,listen:t}}(e);const n=l(null==t?void 0:t.persistence);return null===n?u:{get:()=>{try{return n.getItem(e)}catch(t){return console.error(`Docusaurus storage error, can't get key=${e}`,t),null}},set:t=>{try{const r=n.getItem(e);n.setItem(e,t),o({key:e,oldValue:r,newValue:t,storage:n})}catch(r){console.error(`Docusaurus storage error, can't set ${e}=${t}`,r)}},del:()=>{try{const t=n.getItem(e);n.removeItem(e),o({key:e,oldValue:t,newValue:null,storage:n})}catch(t){console.error(`Docusaurus storage error, can't delete key=${e}`,t)}},listen:t=>{try{const r=r=>{r.storageArea===n&&r.key===e&&t(r)};return window.addEventListener("storage",r),()=>window.removeEventListener("storage",r)}catch(r){return console.error(`Docusaurus storage error, can't listen for changes of key=${e}`,r),()=>{}}}}}function d(e,t){const n=(0,r.useRef)((()=>null===e?u:c(e,t))).current(),i=(0,r.useCallback)((e=>"undefined"==typeof window?()=>{}:n.listen(e)),[n]);return[(0,a.useSyncExternalStore)(i,(()=>"undefined"==typeof window?null:n.get()),(()=>null)),n]}},94711:(e,t,n)=>{"use strict";n.d(t,{l:()=>i});var r=n(52263),a=n(76775);function i(){const{siteConfig:{baseUrl:e,url:t},i18n:{defaultLocale:n,currentLocale:i}}=(0,r.Z)(),{pathname:o}=(0,a.TH)(),l=i===n?e:e.replace(`/${i}/`,"/"),s=o.replace(e,"");return{createUrl:function(e){let{locale:r,fullyQualified:a}=e;return`${a?t:""}${function(e){return e===n?`${l}`:`${l}${e}/`}(r)}${s}`}}}},85936:(e,t,n)=>{"use strict";n.d(t,{S:()=>o});var r=n(67294),a=n(76775),i=n(902);function o(e){const t=(0,a.TH)(),n=(0,i.D9)(t),o=(0,i.zX)(e);(0,r.useEffect)((()=>{n&&t!==n&&o({location:t,previousLocation:n})}),[o,t,n])}},86668:(e,t,n)=>{"use strict";n.d(t,{L:()=>a});var r=n(52263);function a(){return(0,r.Z)().siteConfig.themeConfig}},8802:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[a]=e.split(/[#?]/),i="/"===a||a===r?a:(o=a,n?function(e){return e.endsWith("/")?e:`${e}/`}(o):function(e){return e.endsWith("/")?e.slice(0,-1):e}(o));var o;return e.replace(a,i)}},54143:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=void 0,t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},18780:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="post-content";var a=n(8802);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(a).default}});var i=n(54143);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return i.getErrorCausalChain}})},80311:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(67294),a=n(86010);const i={loadingRing:"loadingRing_RJI3","loading-ring":"loading-ring_FB5o"};function o(e){let{className:t}=e;return r.createElement("div",{className:(0,a.Z)(i.loadingRing,t)},r.createElement("div",null),r.createElement("div",null),r.createElement("div",null),r.createElement("div",null))}},90022:(e,t,n)=>{"use strict";n.d(t,{w:()=>o});var r=n(31336),a=n.n(r),i=n(61029);async function o(e){{const t=await(await fetch(`${e}${i.J}`)).json(),n=t.map(((e,t)=>{let{documents:n,index:r}=e;return{type:t,documents:n,index:a().Index.load(r)}})),r=t.reduce(((e,t)=>{for(const n of t.index.invertedIndex)/\p{Unified_Ideograph}/u.test(n[0][0])&&e.add(n[0]);return e}),new Set);return{wrappedIndexes:n,zhDictionary:Array.from(r)}}}},98202:(e,t,n)=>{"use strict";n.d(t,{v:()=>s});var r=n(31336),a=n.n(r);var i=n(61029);function o(e){return l(e).concat(l(e.filter((e=>{const t=e[e.length-1];return!t.trailing&&t.maybeTyping})),!0))}function l(e,t){return e.map((e=>({tokens:e.map((e=>e.value)),term:e.map((e=>({value:e.value,presence:a().Query.presence.REQUIRED,wildcard:(t?e.trailing||e.maybeTyping:e.trailing)?a().Query.wildcard.TRAILING:a().Query.wildcard.NONE})))})))}function s(e,t,n){return function(r,l){const s=function(e,t){if(1===t.length&&["ja","jp","th"].includes(t[0]))return a()[t[0]].tokenizer(e).map((e=>e.toString()));let n=/[^-\s]+/g;return t.includes("zh")&&(n=/\w+|\p{Unified_Ideograph}+/gu),e.toLowerCase().match(n)||[]}(r,i.dK);if(0===s.length)return void l([]);const u=function(e,t){const n=function(e,t){const n=[];return function e(r,a){if(0===r.length)return void n.push(a);const i=r[0];if(/\p{Unified_Ideograph}/u.test(i)){const n=function(e,t){const n=[];return function e(r,a){let i=0,o=!1;for(const l of t)if(r.substr(0,l.length)===l){const t={missed:a.missed,term:a.term.concat({value:l})};r.length>l.length?e(r.substr(l.length),t):n.push(t),o=!0}else for(let t=l.length-1;t>i;t-=1){const s=l.substr(0,t);if(r.substr(0,t)===s){i=t;const l={missed:a.missed,term:a.term.concat({value:s,trailing:!0})};r.length>t?e(r.substr(t),l):n.push(l),o=!0;break}}o||(r.length>0?e(r.substr(1),{missed:a.missed+1,term:a.term}):a.term.length>0&&n.push(a))}(e,{missed:0,term:[]}),n.sort(((e,t)=>{const n=e.missed>0?1:0,r=t.missed>0?1:0;return n!==r?n-r:e.term.length-t.term.length})).map((e=>e.term))}(i,t);for(const t of n){const n=a.concat(...t);e(r.slice(1),n)}}else{const t=a.concat({value:i});e(r.slice(1),t)}}(e,[]),n}(e,t);if(0===n.length)return[{tokens:e,term:e.map((e=>({value:e,presence:a().Query.presence.REQUIRED,wildcard:a().Query.wildcard.LEADING|a().Query.wildcard.TRAILING})))}];for(const a of n)a[a.length-1].maybeTyping=!0;const r=[];for(const o of i.dK)if("en"===o)i._k||r.unshift(a().stopWordFilter);else{const e=a()[o];e.stopWordFilter&&r.unshift(e.stopWordFilter)}let l;if(r.length>0){const e=e=>r.reduce(((e,t)=>e.filter((e=>t(e.value)))),e);l=[];const t=[];for(const r of n){const n=e(r);l.push(n),n.length0&&t.push(n)}n.push(...t)}else l=n.slice();const s=[];for(const a of l)if(a.length>2)for(let e=a.length-1;e>=0;e-=1)s.push(a.slice(0,e).concat(a.slice(e+1)));return o(n).concat(o(s))}(s,t),c=[];e:for(const{term:t,tokens:a}of u)for(const{documents:r,index:i,type:o}of e)if(c.push(...i.query((e=>{for(const n of t)e.term(n.value,{wildcard:n.wildcard,presence:n.presence})})).slice(0,n).filter((e=>!c.some((t=>t.document.i.toString()===e.ref)))).slice(0,n-c.length).map((t=>{const n=r.find((e=>e.i.toString()===t.ref));return{document:n,type:o,page:0!==o&&e[0].documents.find((e=>e.i===n.p)),metadata:t.matchData.metadata,tokens:a,score:t.score}}))),c.length>=n)break e;!function(e){e.forEach(((e,t)=>{e.index=t})),e.sort(((t,n)=>{let r=t.type>0&&t.page?e.findIndex((e=>e.document===t.page)):t.index,a=n.type>0&&n.page?e.findIndex((e=>e.document===n.page)):n.index;return-1===r&&(r=t.index),-1===a&&(a=n.index),r===a?0===t.type?-1:0===n.type?1:t.index-n.index:r-a}))}(c),function(e){e.forEach(((t,n)=>{n>0&&t.page&&e.some((e=>e.document===t.page))&&(n{"use strict";function r(e){return e.join(" \u203a ")}n.d(t,{e:()=>r})},21690:(e,t,n)=>{"use strict";function r(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}n.d(t,{X:()=>r})},91073:(e,t,n)=>{"use strict";function r(e,t){const n=[];for(const r of Object.values(e))r[t]&&n.push(...r[t].position);return n.sort(((e,t)=>e[0]-t[0]||t[1]-e[1]))}n.d(t,{m:()=>r})},82539:(e,t,n)=>{"use strict";n.d(t,{C:()=>a});var r=n(21690);function a(e,t,n){const i=[];for(const o of t){const n=e.toLowerCase().indexOf(o);if(n>=0){n>0&&i.push(a(e.substr(0,n),t)),i.push(`${(0,r.X)(e.substr(n,o.length))}`);const l=n+o.length;l${(0,r.X)(e)}`:(0,r.X)(e):i.join("")}},10726:(e,t,n)=>{"use strict";n.d(t,{o:()=>s});var r=n(21690),a=n(82539);const i=/\w+|\p{Unified_Ideograph}/u;function o(e){const t=[];let n=0,r=e;for(;r.length>0;){const a=r.match(i);if(!a){t.push(r);break}a.index>0&&t.push(r.substring(0,a.index)),t.push(a[0]),n+=a.index+a[0].length,r=e.substring(n)}return t}var l=n(61029);function s(e,t,n,i){void 0===i&&(i=l.Hk);const{chunkIndex:s,chunks:u}=function(e,t,n){const i=[];let l=0,s=0,u=-1;for(;ls){const t=o(e.substring(s,c)).map((e=>({html:(0,r.X)(e),textLength:e.length})));for(const e of t)i.push(e)}-1===u&&(u=i.length),s=c+d,i.push({html:(0,a.C)(e.substring(c,s),n,!0),textLength:d})}}if(s({html:(0,r.X)(e),textLength:e.length})));for(const e of t)i.push(e)}return{chunkIndex:u,chunks:i}}(e,t,n),c=u.slice(0,s),d=u[s],p=[d.html],f=u.slice(s+1);let m=d.textLength,h=0,g=0,b=!1,v=!1;for(;m0){const e=c.pop();m+e.textLength<=i?(p.unshift(e.html),h+=e.textLength,m+=e.textLength):(b=!0,c.length=0)}else{if(!(f.length>0))break;{const e=f.shift();m+e.textLength<=i?(p.push(e.html),g+=e.textLength,m+=e.textLength):(v=!0,f.length=0)}}return(b||c.length>0)&&p.unshift("\u2026"),(v||f.length>0)&&p.push("\u2026"),p.join("")}},61029:(e,t,n)=>{"use strict";n.d(t,{vc:()=>i,gQ:()=>p,H6:()=>u,l9:()=>f,dK:()=>r,_k:()=>a,AY:()=>c,t_:()=>d,J:()=>o,Hk:()=>s,qo:()=>l});n(31336);const r=["en"],a=!1,i=null,o="search-index.json?_=3cccb1e7",l=8,s=50,u=!1,c=!0,d=!0,p=void 0,f=!0},86010:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;ta});const a=function(){for(var e,t,n=0,a="";n{"use strict";n.d(t,{lX:()=>w,q_:()=>C,ob:()=>f,PP:()=>P,Ep:()=>p});var r=n(87462);function a(e){return"/"===e.charAt(0)}function i(e,t){for(var n=t,r=n+1,a=e.length;r=0;p--){var f=o[p];"."===f?i(o,p):".."===f?(i(o,p),d++):d&&(i(o,p),d--)}if(!u)for(;d--;d)o.unshift("..");!u||""===o[0]||o[0]&&a(o[0])||o.unshift("");var m=o.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var l=n(2177);function s(e){return"/"===e.charAt(0)?e:"/"+e}function u(e){return"/"===e.charAt(0)?e.substr(1):e}function c(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function p(e){var t=e.pathname,n=e.search,r=e.hash,a=t||"/";return n&&"?"!==n&&(a+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(a+="#"===r.charAt(0)?r:"#"+r),a}function f(e,t,n,a){var i;"string"==typeof e?(i=function(e){var t=e||"/",n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substr(a),t=t.substr(0,a));var i=t.indexOf("?");return-1!==i&&(n=t.substr(i),t=t.substr(0,i)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),i.state=t):(void 0===(i=(0,r.Z)({},e)).pathname&&(i.pathname=""),i.search?"?"!==i.search.charAt(0)&&(i.search="?"+i.search):i.search="",i.hash?"#"!==i.hash.charAt(0)&&(i.hash="#"+i.hash):i.hash="",void 0!==t&&void 0===i.state&&(i.state=t));try{i.pathname=decodeURI(i.pathname)}catch(l){throw l instanceof URIError?new URIError('Pathname "'+i.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):l}return n&&(i.key=n),a?i.pathname?"/"!==i.pathname.charAt(0)&&(i.pathname=o(i.pathname,a.pathname)):i.pathname=a.pathname:i.pathname||(i.pathname="/"),i}function m(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,a){if(null!=e){var i="function"==typeof e?e(t,n):e;"string"==typeof i?"function"==typeof r?r(i,a):a(!0):a(!1!==i)}else a(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;rt?n.splice(t,n.length-t,a):n.push(a),d({action:r,location:a,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",a=f(e,t,h(),w.location);c.confirmTransitionTo(a,r,n,(function(e){e&&(w.entries[w.index]=a,d({action:r,location:a}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=w.index+e;return t>=0&&t{"use strict";var r=n(59864),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},i={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},o={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function s(e){return r.isMemo(e)?o:l[e.$$typeof]||a}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=o;var u=Object.defineProperty,c=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var a=f(n);a&&a!==m&&e(t,a,r)}var o=c(n);d&&(o=o.concat(d(n)));for(var l=s(t),h=s(n),g=0;g{"use strict";e.exports=function(e,t,n,r,a,i,o,l){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var u=[n,r,a,i,o,l],c=0;(s=new Error(t.replace(/%s/g,(function(){return u[c++]})))).name="Invariant Violation"}throw s.framesToPop=1,s}}},5826:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},31336:(e,t,n)=>{var r,a;!function(){var i,o,l,s,u,c,d,p,f,m,h,g,b,v,y,w,k,E,x,S,_,C,T,P,L,A,R,O,N,I,D=function(e){var t=new D.Builder;return t.pipeline.add(D.trimmer,D.stopWordFilter,D.stemmer),t.searchPipeline.add(D.stemmer),e.call(t,t),t.build()};D.version="2.3.9",D.utils={},D.utils.warn=(i=this,function(e){i.console&&console.warn&&console.warn(e)}),D.utils.asString=function(e){return null==e?"":e.toString()},D.utils.clone=function(e){if(null==e)return e;for(var t=Object.create(null),n=Object.keys(e),r=0;r0){var s=D.utils.clone(t)||{};s.position=[o,l],s.index=a.length,a.push(new D.Token(n.slice(o,i),s))}o=i+1}}return a},D.tokenizer.separator=/[\s\-]+/,D.Pipeline=function(){this._stack=[]},D.Pipeline.registeredFunctions=Object.create(null),D.Pipeline.registerFunction=function(e,t){t in this.registeredFunctions&&D.utils.warn("Overwriting existing registered function: "+t),e.label=t,D.Pipeline.registeredFunctions[e.label]=e},D.Pipeline.warnIfFunctionNotRegistered=function(e){e.label&&e.label in this.registeredFunctions||D.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},D.Pipeline.load=function(e){var t=new D.Pipeline;return e.forEach((function(e){var n=D.Pipeline.registeredFunctions[e];if(!n)throw new Error("Cannot load unregistered function: "+e);t.add(n)})),t},D.Pipeline.prototype.add=function(){Array.prototype.slice.call(arguments).forEach((function(e){D.Pipeline.warnIfFunctionNotRegistered(e),this._stack.push(e)}),this)},D.Pipeline.prototype.after=function(e,t){D.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");n+=1,this._stack.splice(n,0,t)},D.Pipeline.prototype.before=function(e,t){D.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");this._stack.splice(n,0,t)},D.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);-1!=t&&this._stack.splice(t,1)},D.Pipeline.prototype.run=function(e){for(var t=this._stack.length,n=0;n1&&(ie&&(n=a),i!=e);)r=n-t,a=t+Math.floor(r/2),i=this.elements[2*a];return i==e||i>e?2*a:il?u+=2:o==l&&(t+=n[s+1]*r[u+1],s+=2,u+=2);return t},D.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},D.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,n=0;t0){var i,o=a.str.charAt(0);o in a.node.edges?i=a.node.edges[o]:(i=new D.TokenSet,a.node.edges[o]=i),1==a.str.length&&(i.final=!0),r.push({node:i,editsRemaining:a.editsRemaining,str:a.str.slice(1)})}if(0!=a.editsRemaining){if("*"in a.node.edges)var l=a.node.edges["*"];else{l=new D.TokenSet;a.node.edges["*"]=l}if(0==a.str.length&&(l.final=!0),r.push({node:l,editsRemaining:a.editsRemaining-1,str:a.str}),a.str.length>1&&r.push({node:a.node,editsRemaining:a.editsRemaining-1,str:a.str.slice(1)}),1==a.str.length&&(a.node.final=!0),a.str.length>=1){if("*"in a.node.edges)var s=a.node.edges["*"];else{s=new D.TokenSet;a.node.edges["*"]=s}1==a.str.length&&(s.final=!0),r.push({node:s,editsRemaining:a.editsRemaining-1,str:a.str.slice(1)})}if(a.str.length>1){var u,c=a.str.charAt(0),d=a.str.charAt(1);d in a.node.edges?u=a.node.edges[d]:(u=new D.TokenSet,a.node.edges[d]=u),1==a.str.length&&(u.final=!0),r.push({node:u,editsRemaining:a.editsRemaining-1,str:c+a.str.slice(2)})}}}return n},D.TokenSet.fromString=function(e){for(var t=new D.TokenSet,n=t,r=0,a=e.length;r=e;t--){var n=this.uncheckedNodes[t],r=n.child.toString();r in this.minimizedNodes?n.parent.edges[n.char]=this.minimizedNodes[r]:(n.child._str=r,this.minimizedNodes[r]=n.child),this.uncheckedNodes.pop()}},D.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},D.Index.prototype.search=function(e){return this.query((function(t){new D.QueryParser(e,t).parse()}))},D.Index.prototype.query=function(e){for(var t=new D.Query(this.fields),n=Object.create(null),r=Object.create(null),a=Object.create(null),i=Object.create(null),o=Object.create(null),l=0;l1?1:e},D.Builder.prototype.k1=function(e){this._k1=e},D.Builder.prototype.add=function(e,t){var n=e[this._ref],r=Object.keys(this._fields);this._documents[n]=t||{},this.documentCount+=1;for(var a=0;a=this.length)return D.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},D.QueryLexer.prototype.width=function(){return this.pos-this.start},D.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},D.QueryLexer.prototype.backup=function(){this.pos-=1},D.QueryLexer.prototype.acceptDigitRun=function(){var e,t;do{t=(e=this.next()).charCodeAt(0)}while(t>47&&t<58);e!=D.QueryLexer.EOS&&this.backup()},D.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(D.QueryLexer.TERM)),e.ignore(),e.more())return D.QueryLexer.lexText},D.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(D.QueryLexer.EDIT_DISTANCE),D.QueryLexer.lexText},D.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(D.QueryLexer.BOOST),D.QueryLexer.lexText},D.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(D.QueryLexer.TERM)},D.QueryLexer.termSeparator=D.tokenizer.separator,D.QueryLexer.lexText=function(e){for(;;){var t=e.next();if(t==D.QueryLexer.EOS)return D.QueryLexer.lexEOS;if(92!=t.charCodeAt(0)){if(":"==t)return D.QueryLexer.lexField;if("~"==t)return e.backup(),e.width()>0&&e.emit(D.QueryLexer.TERM),D.QueryLexer.lexEditDistance;if("^"==t)return e.backup(),e.width()>0&&e.emit(D.QueryLexer.TERM),D.QueryLexer.lexBoost;if("+"==t&&1===e.width())return e.emit(D.QueryLexer.PRESENCE),D.QueryLexer.lexText;if("-"==t&&1===e.width())return e.emit(D.QueryLexer.PRESENCE),D.QueryLexer.lexText;if(t.match(D.QueryLexer.termSeparator))return D.QueryLexer.lexTerm}else e.escapeCharacter()}},D.QueryParser=function(e,t){this.lexer=new D.QueryLexer(e),this.query=t,this.currentClause={},this.lexemeIdx=0},D.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=D.QueryParser.parseClause;e;)e=e(this);return this.query},D.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},D.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},D.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},D.QueryParser.parseClause=function(e){var t=e.peekLexeme();if(null!=t)switch(t.type){case D.QueryLexer.PRESENCE:return D.QueryParser.parsePresence;case D.QueryLexer.FIELD:return D.QueryParser.parseField;case D.QueryLexer.TERM:return D.QueryParser.parseTerm;default:var n="expected either a field or a term, found "+t.type;throw t.str.length>=1&&(n+=" with value '"+t.str+"'"),new D.QueryParseError(n,t.start,t.end)}},D.QueryParser.parsePresence=function(e){var t=e.consumeLexeme();if(null!=t){switch(t.str){case"-":e.currentClause.presence=D.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=D.Query.presence.REQUIRED;break;default:var n="unrecognised presence operator'"+t.str+"'";throw new D.QueryParseError(n,t.start,t.end)}var r=e.peekLexeme();if(null==r){n="expecting term or field, found nothing";throw new D.QueryParseError(n,t.start,t.end)}switch(r.type){case D.QueryLexer.FIELD:return D.QueryParser.parseField;case D.QueryLexer.TERM:return D.QueryParser.parseTerm;default:n="expecting term or field, found '"+r.type+"'";throw new D.QueryParseError(n,r.start,r.end)}}},D.QueryParser.parseField=function(e){var t=e.consumeLexeme();if(null!=t){if(-1==e.query.allFields.indexOf(t.str)){var n=e.query.allFields.map((function(e){return"'"+e+"'"})).join(", "),r="unrecognised field '"+t.str+"', possible fields: "+n;throw new D.QueryParseError(r,t.start,t.end)}e.currentClause.fields=[t.str];var a=e.peekLexeme();if(null==a){r="expecting term, found nothing";throw new D.QueryParseError(r,t.start,t.end)}if(a.type===D.QueryLexer.TERM)return D.QueryParser.parseTerm;r="expecting term, found '"+a.type+"'";throw new D.QueryParseError(r,a.start,a.end)}},D.QueryParser.parseTerm=function(e){var t=e.consumeLexeme();if(null!=t){e.currentClause.term=t.str.toLowerCase(),-1!=t.str.indexOf("*")&&(e.currentClause.usePipeline=!1);var n=e.peekLexeme();if(null!=n)switch(n.type){case D.QueryLexer.TERM:return e.nextClause(),D.QueryParser.parseTerm;case D.QueryLexer.FIELD:return e.nextClause(),D.QueryParser.parseField;case D.QueryLexer.EDIT_DISTANCE:return D.QueryParser.parseEditDistance;case D.QueryLexer.BOOST:return D.QueryParser.parseBoost;case D.QueryLexer.PRESENCE:return e.nextClause(),D.QueryParser.parsePresence;default:var r="Unexpected lexeme type '"+n.type+"'";throw new D.QueryParseError(r,n.start,n.end)}else e.nextClause()}},D.QueryParser.parseEditDistance=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var r="edit distance must be numeric";throw new D.QueryParseError(r,t.start,t.end)}e.currentClause.editDistance=n;var a=e.peekLexeme();if(null!=a)switch(a.type){case D.QueryLexer.TERM:return e.nextClause(),D.QueryParser.parseTerm;case D.QueryLexer.FIELD:return e.nextClause(),D.QueryParser.parseField;case D.QueryLexer.EDIT_DISTANCE:return D.QueryParser.parseEditDistance;case D.QueryLexer.BOOST:return D.QueryParser.parseBoost;case D.QueryLexer.PRESENCE:return e.nextClause(),D.QueryParser.parsePresence;default:r="Unexpected lexeme type '"+a.type+"'";throw new D.QueryParseError(r,a.start,a.end)}else e.nextClause()}},D.QueryParser.parseBoost=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var r="boost must be numeric";throw new D.QueryParseError(r,t.start,t.end)}e.currentClause.boost=n;var a=e.peekLexeme();if(null!=a)switch(a.type){case D.QueryLexer.TERM:return e.nextClause(),D.QueryParser.parseTerm;case D.QueryLexer.FIELD:return e.nextClause(),D.QueryParser.parseField;case D.QueryLexer.EDIT_DISTANCE:return D.QueryParser.parseEditDistance;case D.QueryLexer.BOOST:return D.QueryParser.parseBoost;case D.QueryLexer.PRESENCE:return e.nextClause(),D.QueryParser.parsePresence;default:r="Unexpected lexeme type '"+a.type+"'";throw new D.QueryParseError(r,a.start,a.end)}else e.nextClause()}},void 0===(a="function"==typeof(r=function(){return D})?r.call(t,n,t,e):r)||(e.exports=a)}()},32497:(e,t,n)=>{"use strict";n.r(t)},52295:(e,t,n)=>{"use strict";n.r(t)},74865:function(e,t,n){var r,a;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'
'};function a(e,t,n){return en?n:e}function i(e){return 100*(-1+e)}function o(e,t,n){var a;return(a="translate3d"===r.positionUsing?{transform:"translate3d("+i(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+i(e)+"%,0)"}:{"margin-left":i(e)+"%"}).transition="all "+t+"ms "+n,a}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=a(e,r.minimum,1),n.status=1===e?null:e;var i=n.render(!t),u=i.querySelector(r.barSelector),c=r.speed,d=r.easing;return i.offsetWidth,l((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(u,o(e,c,d)),1===e?(s(i,{transition:"none",opacity:1}),i.offsetWidth,setTimeout((function(){s(i,{transition:"all "+c+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),c)}),c)):setTimeout(t,c)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*a(Math.random()*t,.1,.95)),t=a(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");c(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var a,o=t.querySelector(r.barSelector),l=e?"-100":i(n.status||0),u=document.querySelector(r.parent);return s(o,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(a=t.querySelector(r.spinnerSelector))&&f(a),u!=document.body&&c(u,"nprogress-custom-parent"),u.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&f(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var l=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),s=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,a=e.length,i=t.charAt(0).toUpperCase()+t.slice(1);a--;)if((r=e[a]+i)in n)return r;return t}function a(e){return e=n(e),t[e]||(t[e]=r(e))}function i(e,t,n){t=a(t),e.style[t]=n}return function(e,t){var n,r,a=arguments;if(2==a.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&i(e,n,r);else i(e,a[1],a[2])}}();function u(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function c(e,t){var n=p(e),r=n+t;u(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=p(e);u(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function p(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(a="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=a)},27418:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(a){return!1}}()?Object.assign:function(e,a){for(var i,o,l=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),s=1;s{var r=n(5826);e.exports=f,e.exports.parse=i,e.exports.compile=function(e,t){return l(i(e,t),t)},e.exports.tokensToFunction=l,e.exports.tokensToRegExp=p;var a=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function i(e,t){for(var n,r=[],i=0,o=0,l="",c=t&&t.delimiter||"/";null!=(n=a.exec(e));){var d=n[0],p=n[1],f=n.index;if(l+=e.slice(o,f),o=f+d.length,p)l+=p[1];else{var m=e[o],h=n[2],g=n[3],b=n[4],v=n[5],y=n[6],w=n[7];l&&(r.push(l),l="");var k=null!=h&&null!=m&&m!==h,E="+"===y||"*"===y,x="?"===y||"*"===y,S=n[2]||c,_=b||v;r.push({name:g||i++,prefix:h||"",delimiter:S,optional:x,repeat:E,partial:k,asterisk:!!w,pattern:_?u(_):w?".*":"[^"+s(S)+"]+?"})}}return o{"use strict";n.d(t,{Z:()=>i});var r=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof a?new a(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/=d.reach);x+=E.value.length,E=E.next){var S=E.value;if(t.length>e.length)return;if(!(S instanceof a)){var _,C=1;if(v){if(!(_=i(k,x,e,b))||_.index>=e.length)break;var T=_.index,P=_.index+_[0].length,L=x;for(L+=E.value.length;T>=L;)L+=(E=E.next).value.length;if(x=L-=E.value.length,E.value instanceof a)continue;for(var A=E;A!==t.tail&&(Ld.reach&&(d.reach=I);var D=E.prev;if(O&&(D=s(t,D,O),x+=O.length),u(t,D,C),E=s(t,D,new a(p,g?r.tokenize(R,g):R,y,R)),N&&s(t,E,N),C>1){var M={cause:p+","+m,reach:I};o(e,t,n,E.prev,x,M),d&&M.reach>d.reach&&(d.reach=M.reach)}}}}}}function l(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function s(e,t,n){var r=t.next,a={value:n,prev:t,next:r};return t.next=a,r.prev=a,e.length++,a}function u(e,t,n){for(var r=t.next,a=0;a"+i.content+""},r}(),a=r;r.default=r,a.languages.markup={comment:{pattern://,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},a.languages.markup.tag.inside["attr-value"].inside.entity=a.languages.markup.entity,a.languages.markup.doctype.inside["internal-subset"].inside=a.languages.markup,a.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(a.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^$)/i,lookbehind:!0,inside:a.languages[t]},n.cdata=/^$/i;var r={"included-cdata":{pattern://i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:a.languages[t]};var i={};i[e]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:r},a.languages.insertBefore("markup","cdata",i)}}),Object.defineProperty(a.languages.markup.tag,"addAttribute",{value:function(e,t){a.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:a.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),a.languages.html=a.languages.markup,a.languages.mathml=a.languages.markup,a.languages.svg=a.languages.markup,a.languages.xml=a.languages.extend("markup",{}),a.languages.ssml=a.languages.xml,a.languages.atom=a.languages.xml,a.languages.rss=a.languages.xml,function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var a=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],i=r.variable[1].inside,o=0;o]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},a.languages.c=a.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),a.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),a.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},a.languages.c.string],char:a.languages.c.char,comment:a.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:a.languages.c}}}}),a.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete a.languages.c.boolean,function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!)\w+(?:\s*\.\s*\w+)*\b/.source.replace(//g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!)\w+/.source.replace(//g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/(?:\s*:\s*)?|:\s*/.source.replace(//g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(a),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(a),function(e){var t,n=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+n.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[n,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var r={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},a={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:r,number:a,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:r,number:a})}(a),a.languages.javascript=a.languages.extend("clike",{"class-name":[a.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),a.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,a.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:a.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:a.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:a.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:a.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:a.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),a.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:a.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),a.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),a.languages.markup&&(a.languages.markup.tag.addInlined("script","javascript"),a.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),a.languages.js=a.languages.javascript,function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(a),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",a=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-])(?:[ \t]*(?:(?![#:])|:))*/.source.replace(//g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),i=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function o(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<>[ \t]+)?)(?:<>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<>/g,(function(){return r})).replace(/<>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<>[ \t]+)?)<>(?=\s*:\s)/.source.replace(/<>/g,(function(){return r})).replace(/<>/g,(function(){return"(?:"+a+"|"+i+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:o(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:o(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:o(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:o(i),lookbehind:!0,greedy:!0},number:{pattern:o(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(a),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(//g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,a=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),i=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+a+i+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+i+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+i+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)|_(?:(?!_))+_)+__\b|\*\*(?:(?!\*)|\*(?:(?!\*))+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)|__(?:(?!_))+__)+_\b|\*(?:(?!\*)|\*\*(?:(?!\*))+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~))+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\]))+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\]))+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n",quot:'"'},s=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(a),a.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:a.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},a.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n0)){var l=p(/^\{$/,/^\}$/);if(-1===l)continue;for(var s=n;s=0&&f(u,"variable-input")}}}}function c(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,a=r.inside["interpolation-punctuation"],i=r.pattern.source;function o(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function l(e,t){return"___"+t.toUpperCase()+"_"+e+"___"}function s(t,n,r){var a={code:t,grammar:n,language:r};return e.hooks.run("before-tokenize",a),a.tokens=e.tokenize(a.code,a.grammar),e.hooks.run("after-tokenize",a),a.tokens}function u(t){var n={};n["interpolation-punctuation"]=a;var i=e.tokenize(t,n);if(3===i.length){var o=[1,1];o.push.apply(o,s(i[1],e.languages.javascript,"javascript")),i.splice.apply(i,o)}return new e.Token("interpolation",i,r.alias,t)}function c(t,n,r){var a=e.tokenize(t,{interpolation:{pattern:RegExp(i),lookbehind:!0}}),o=0,c={},d=s(a.map((function(e){if("string"==typeof e)return e;for(var n,a=e.content;-1!==t.indexOf(n=l(o++,r)););return c[n]=a,n})).join(""),n,r),p=Object.keys(c);return o=0,function e(t){for(var n=0;n=p.length)return;var r=t[n];if("string"==typeof r||"string"==typeof r.content){var a=p[o],i="string"==typeof r?r:r.content,l=i.indexOf(a);if(-1!==l){++o;var s=i.substring(0,l),d=u(c[a]),f=i.substring(l+a.length),m=[];if(s&&m.push(s),m.push(d),f){var h=[f];e(h),m.push.apply(m,h)}"string"==typeof r?(t.splice.apply(t,[n,1].concat(m)),n+=m.length-1):r.content=m}}else{var g=r.content;Array.isArray(g)?e(g):e([g])}}}(d),new e.Token(r,d,"language-"+r,t)}e.languages.javascript["template-string"]=[o("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),o("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),o("svg",/\bsvg/.source),o("markdown",/\b(?:markdown|md)/.source),o("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),o("sql",/\bsql/.source),t].filter(Boolean);var d={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function p(e){return"string"==typeof e?e:Array.isArray(e)?e.map(p).join(""):p(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in d&&function t(n){for(var r=0,a=n.length;r]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(a),function(e){function t(e,t){return RegExp(e.replace(//g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:(?:\s*,\s*(?:\*\s*as\s+|\{[^{}]*\}))?|\*\s*as\s+|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r*\.{3}(?:[^{}]|)*\})/.source;function i(e,t){return e=e.replace(//g,(function(){return n})).replace(//g,(function(){return r})).replace(//g,(function(){return a})),RegExp(e,t)}a=i(a).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=i(/<\/?(?:[\w.:-]+(?:+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|))?|))**\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:i(//.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:i(/=/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var o=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(o).join(""):""},l=function(t){for(var n=[],r=0;r0&&n[n.length-1].tagName===o(a.content[0].content[1])&&n.pop():"/>"===a.content[a.content.length-1].content||n.push({tagName:o(a.content[0].content[1]),openedBraces:0}):n.length>0&&"punctuation"===a.type&&"{"===a.content?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&"punctuation"===a.type&&"}"===a.content?n[n.length-1].openedBraces--:i=!0),(i||"string"==typeof a)&&n.length>0&&0===n[n.length-1].openedBraces){var s=o(a);r0&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(s=o(t[r-1])+s,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",s,null,s)}a.content&&"string"!=typeof a.content&&l(a.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||l(e.tokens)}))}(a),function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var t={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var r=t[n],a=[];/^\w+$/.test(n)||a.push(/\w+/.exec(n)[0]),"diff"===n&&a.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:a,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(a),a.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m},a.languages.go=a.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),a.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete a.languages.go["class-name"],function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,a,i){if(n.language===r){var o=n.tokenStack=[];n.code=n.code.replace(a,(function(e){if("function"==typeof i&&!i(e))return e;for(var a,l=o.length;-1!==n.code.indexOf(a=t(r,l));)++l;return o[l]=e,a})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var a=0,i=Object.keys(n.tokenStack);!function o(l){for(var s=0;s=i.length);s++){var u=l[s];if("string"==typeof u||u.content&&"string"==typeof u.content){var c=i[a],d=n.tokenStack[c],p="string"==typeof u?u:u.content,f=t(r,c),m=p.indexOf(f);if(m>-1){++a;var h=p.substring(0,m),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),b=p.substring(m+f.length),v=[];h&&v.push.apply(v,o([h])),v.push(g),b&&v.push.apply(v,o([b])),"string"==typeof u?l.splice.apply(l,[s,1].concat(v)):u.content=v}}else u.content&&o(u.content)}return l}(n.tokens)}}}})}(a),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:false|true)\b/,block:{pattern:/^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")})),e.languages.hbs=e.languages.handlebars}(a),a.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},a.languages.webmanifest=a.languages.json,a.languages.less=a.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),a.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}),a.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/},a.languages.objectivec=a.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete a.languages.objectivec["class-name"],a.languages.objc=a.languages.objectivec,a.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/},a.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},a.languages.python["string-interpolation"].inside.interpolation.inside.rest=a.languages.python,a.languages.py=a.languages.python,a.languages.reason=a.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),a.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete a.languages.reason.function,function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})}(a),a.languages.scss=a.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),a.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),a.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),a.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),a.languages.scss.atrule.inside.rest=a.languages.scss,function(e){var t={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},n={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},r={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:n,punctuation:/[{}()\[\];:,]/};r.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:r}},r.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:r}},e.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:r}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:r}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:r}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:r.interpolation}},rest:r}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:r.interpolation,comment:r.comment,punctuation:/[{},]/}},func:r.func,string:r.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:r.interpolation,punctuation:/[{}()\[\];:.]/}}(a),function(e){var t=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"];var n=e.languages.tsx.tag;n.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+n.pattern.source+")",n.pattern.flags),n.lookbehind=!0}(a),a.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/};const i=a},29901:e=>{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to WebPlatform.org documentation. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (.comment can become .namespace--comment) or replace them with your defined ones (like .editor__comment). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the highlightAll and highlightAllUnder methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},2885:(e,t,n)=>{const r=n(29901),a=n(39642),i=new Set;function o(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...i,...Object.keys(Prism.languages)];a(r,e,t).load((e=>{if(!(e in r.languages))return void(o.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(16500).resolve(t)],delete Prism.languages[e],n(16500)(t),i.add(e)}))}o.silent=!1,e.exports=o},6726:(e,t,n)=>{var r={"./":2885};function a(e){var t=i(e);return n(t)}function i(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=i,e.exports=a,a.id=6726},16500:(e,t,n)=>{var r={"./":2885};function a(e){var t=i(e);return n(t)}function i(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=i,e.exports=a,a.id=16500},39642:e=>{"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,r=e.length;n "));var l={},s=e[r];if(s){function u(t){if(!(t in e))throw new Error(r+" depends on an unknown component "+t);if(!(t in l))for(var o in a(t,i),l[t]=!0,n[t])l[o]=!0}t(s.require,u),t(s.optional,u),t(s.modify,u)}n[r]=l,i.pop()}}return function(e){var t=n[e];return t||(a(e,r),t=n[e]),t}}function a(e){for(var t in e)return!0;return!1}return function(i,o,l){var s=function(e){var t={};for(var n in e){var r=e[n];for(var a in r)if("meta"!=a){var i=r[a];t[a]="string"==typeof i?{title:i}:i}}return t}(i),u=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var a in n={},e){var i=e[a];t(i&&i.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+a+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+a+" because it is a component.");n[t]=a}))}return n[r]||r}}(s);o=o.map(u),l=(l||[]).map(u);var c=n(o),d=n(l);o.forEach((function e(n){var r=s[n];t(r&&r.require,(function(t){t in d||(c[t]=!0,e(t))}))}));for(var p,f=r(s),m=c;a(m);){for(var h in p={},m){var g=s[h];t(g&&g.modify,(function(e){e in d&&(p[e]=!0)}))}for(var b in d)if(!(b in c))for(var v in f(b))if(v in c){p[b]=!0;break}for(var y in m=p)c[y]=!0}var w={getIds:function(){var e=[];return w.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,r,a){var i=a?a.series:void 0,o=a?a.parallel:e,l={},s={};function u(e){if(e in l)return l[e];s[e]=!0;var a,c=[];for(var d in t(e))d in n&&c.push(d);if(0===c.length)a=r(e);else{var p=o(c.map((function(e){var t=u(e);return delete s[e],t})));i?a=i(p,(function(){return r(e)})):r(e)}return l[e]=a}for(var c in n)u(c);var d=[];for(var p in s)d.push(l[p]);return o(d)}(f,c,t,n)}};return w}}();e.exports=t},92703:(e,t,n)=>{"use strict";var r=n(50414);function a(){}function i(){}i.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,i,o){if(o!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:a};return n.PropTypes=n,n}},45697:(e,t,n)=>{e.exports=n(92703)()},50414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},64448:(e,t,n)=>{"use strict";var r=n(67294),a=n(27418),i=n(63840);function o(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n