diff --git a/404.html b/404.html index 3b84fd942..76f6e872d 100644 --- a/404.html +++ b/404.html @@ -9,9 +9,9 @@ - - - + + +
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.

diff --git a/assets/css/styles.eb4d88dc.css b/assets/css/styles.def481f2.css similarity index 72% rename from assets/css/styles.eb4d88dc.css rename to assets/css/styles.def481f2.css index a9f0415b4..3728654ca 100644 --- a/assets/css/styles.eb4d88dc.css +++ b/assets/css/styles.def481f2.css @@ -1,3 +1,3 @@ -.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}body,ol ol,ol ul,ul ol,ul ul{margin:0}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,code{vertical-align:middle}.button--outline.button--active,.button--outline:active,.button--outline:hover,:root{--ifm-button-color:var(--ifm-font-color-base-inverse)}.menu__link:hover,a{transition:color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.navbar--dark,:root{--ifm-navbar-link-hover-color:var(--ifm-color-primary)}.menu,.navbar-sidebar{overflow-x:hidden}:root,html[data-theme=dark]{--ifm-color-emphasis-500:var(--ifm-color-gray-500)}*,.DocSearch-Container,.DocSearch-Container *{box-sizing:border-box}.toggleButton_gllP,html{-webkit-tap-highlight-color:transparent}.codicon[class*=codicon-],.monaco-icon-label:before{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:#0000;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:0.4rem;--ifm-hover-overlay:#0000000d;--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:200ms;--ifm-transition-slow:400ms;--ifm-transition-timing-default:cubic-bezier(0.08,0.52,0.52,1);--ifm-global-shadow-lw:0 1px 2px 0 #0000001a;--ifm-global-shadow-md:0 5px 40px #0003;--ifm-global-shadow-tl:0 12px 28px 0 #0003,0 2px 4px 0 #0000001a;--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:0.1rem;--ifm-code-padding-vertical:0.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:0.875rem;--ifm-h6-font-size:0.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:0.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:0.75rem;--ifm-table-background:#0000;--ifm-table-stripe-background:#00000008;--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*0.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:0.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:0.8rem;--ifm-breadcrumb-padding-vertical:0.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url('data:image/svg+xml;utf8,');--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:0.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:0.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:0.5rem;--ifm-toc-padding-horizontal:0.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:0.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:0.75rem;--ifm-menu-link-padding-vertical:0.375rem;--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,');--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:0.75rem;--ifm-navbar-item-padding-vertical:0.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*0.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url('data:image/svg+xml;utf8,');--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:0.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:0.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem;--docusaurus-progress-bar-color:var(--ifm-color-primary);--ifm-color-primary:#5e45e6;--ifm-color-primary-dark:#5137cb;--ifm-color-primary-darker:#432fa4;--ifm-color-primary-darkest:#392e81;--ifm-color-primary-light:#675bf1;--ifm-color-primary-lighter:#8080f9;--ifm-color-primary-lightest:#a5abfc;--ifm-code-font-size:95%;--ifm-h1-font-size:2.25rem;--ifm-h2-font-size:2rem;--ifm-h3-font-size:1.5rem;--docusaurus-highlighted-code-line-bg:#0000001a;--ifm-footer-padding-vertical:10px;--docusaurus-tag-list-border:var(--ifm-color-emphasis-300);--docsearch-primary-color:#5468ff;--docsearch-text-color:#1c1e21;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-highlight-color:var(--docsearch-primary-color);--docsearch-muted-color:#969faf;--docsearch-container-background:#656c85cc;--docsearch-logo-color:#5468ff;--docsearch-modal-width:560px;--docsearch-modal-height:600px;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:inset 1px 1px 0 0 #ffffff80,0 3px 8px 0 #555a64;--docsearch-searchbox-height:56px;--docsearch-searchbox-background:#ebedf0;--docsearch-searchbox-focus-background:#fff;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-active-color:#fff;--docsearch-hit-background:#fff;--docsearch-hit-shadow:0 1px 3px 0 #d4d9e1;--docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8);--docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px #1e235a66;--docsearch-key-pressed-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 1px 0 #1e235a66;--docsearch-footer-height:44px;--docsearch-footer-background:#fff;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 #45629b1f;--docsearch-primary-color:var(--ifm-color-primary);--docsearch-text-color:var(--ifm-font-color-base);--docusaurus-announcement-bar-height:auto;--docusaurus-collapse-button-bg:#0000;--docusaurus-collapse-button-bg-hover:#0000001a;--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px;--rt-color-white:#fff;--rt-color-dark:#222;--rt-color-success:#8dc572;--rt-color-error:#be6464;--rt-color-warning:#f0ad4e;--rt-color-info:#337ab7;--rt-opacity:0.9;--rt-transition-show-delay:0.15s;--rt-transition-closing-delay:0.15s;--vscode-sash-size:4px;--vscode-sash-hover-size:4px}.badge--danger,.badge--info,.badge--primary,.badge--secondary,.badge--success,.badge--warning{--ifm-badge-border-color:var(--ifm-badge-background-color)}.button--link,.button--outline{--ifm-button-background-color:#0000}html{-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;text-size-adjust:100%;background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base) var(--ifm-font-family-base);text-rendering:optimizelegibility}body{word-wrap:break-word}iframe{border:0;color-scheme:auto}.container{margin:0 auto;max-width:var(--ifm-container-width)}.container--fluid{max-width:inherit}.row{display:flex;flex-wrap:wrap;margin:0 calc(var(--ifm-spacing-horizontal)*-1)}.list_eTzJ article:last-child,.margin-bottom--none,.margin-vert--none,.markdown>:last-child{margin-bottom:0!important}.margin-top--none,.margin-vert--none,.tabItem_LNqP{margin-top:0!important}.row--no-gutters{margin-left:0;margin-right:0}.margin-horiz--none,.margin-right--none{margin-right:0!important}.row--no-gutters>.col{padding-left:0;padding-right:0}.items-start,.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.items-center,.menuExternalLink_NmtK,.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;flex:1 0;margin-left:0;max-width:var(--ifm-col-width)}.padding-bottom--none,.padding-vert--none{padding-bottom:0!important}.padding-top--none,.padding-vert--none{padding-top:0!important}.padding-horiz--none,.padding-left--none{padding-left:0!important}.padding-horiz--none,.padding-right--none{padding-right:0!important}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:8.33333%}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:16.66667%}.col--offset-2{margin-left:16.66667%}.col--3{--ifm-col-width:25%}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:33.33333%}.col--offset-4{margin-left:33.33333%}.col--5{--ifm-col-width:41.66667%}.col--offset-5{margin-left:41.66667%}.col--6{--ifm-col-width:50%}.col--offset-6{margin-left:50%}.col--7{--ifm-col-width:58.33333%}.col--offset-7{margin-left:58.33333%}.col--8{--ifm-col-width:66.66667%}.col--offset-8{margin-left:66.66667%}.col--9{--ifm-col-width:75%}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:83.33333%}.col--offset-10{margin-left:83.33333%}.col--11{--ifm-col-width:91.66667%}.col--offset-11{margin-left:91.66667%}.col--12{--ifm-col-width:100%}.col--offset-12{margin-left:100%}.margin-horiz--none,.margin-left--none{margin-left:0!important}.margin--none{margin:0!important}.margin-bottom--xs,.margin-vert--xs{margin-bottom:.25rem!important}.margin-top--xs,.margin-vert--xs{margin-top:.25rem!important}.margin-horiz--xs,.margin-left--xs{margin-left:.25rem!important}.margin-horiz--xs,.margin-right--xs{margin-right:.25rem!important}.margin--xs{margin:.25rem!important}.margin-bottom--sm,.margin-vert--sm{margin-bottom:.5rem!important}.margin-top--sm,.margin-vert--sm{margin-top:.5rem!important}.margin-horiz--sm,.margin-left--sm{margin-left:.5rem!important}.margin-horiz--sm,.margin-right--sm{margin-right:.5rem!important}.margin--sm{margin:.5rem!important}.margin-bottom--md,.margin-vert--md{margin-bottom:1rem!important}.margin-top--md,.margin-vert--md{margin-top:1rem!important}.margin-horiz--md,.margin-left--md{margin-left:1rem!important}.margin-horiz--md,.margin-right--md{margin-right:1rem!important}.margin--md{margin:1rem!important}.margin-bottom--lg,.margin-vert--lg{margin-bottom:2rem!important}.margin-top--lg,.margin-vert--lg{margin-top:2rem!important}.margin-horiz--lg,.margin-left--lg{margin-left:2rem!important}.margin-horiz--lg,.margin-right--lg{margin-right:2rem!important}.margin--lg{margin:2rem!important}.margin-bottom--xl,.margin-vert--xl{margin-bottom:5rem!important}.margin-top--xl,.margin-vert--xl{margin-top:5rem!important}.margin-horiz--xl,.margin-left--xl{margin-left:5rem!important}.margin-horiz--xl,.margin-right--xl{margin-right:5rem!important}.margin--xl{margin:5rem!important}.padding--none{padding:0!important}.padding-bottom--xs,.padding-vert--xs{padding-bottom:.25rem!important}.padding-top--xs,.padding-vert--xs{padding-top:.25rem!important}.padding-horiz--xs,.padding-left--xs{padding-left:.25rem!important}.padding-horiz--xs,.padding-right--xs{padding-right:.25rem!important}.padding--xs{padding:.25rem!important}.padding-bottom--sm,.padding-vert--sm{padding-bottom:.5rem!important}.padding-top--sm,.padding-vert--sm{padding-top:.5rem!important}.padding-horiz--sm,.padding-left--sm{padding-left:.5rem!important}.padding-horiz--sm,.padding-right--sm{padding-right:.5rem!important}.padding--sm{padding:.5rem!important}.padding-bottom--md,.padding-vert--md{padding-bottom:1rem!important}.padding-top--md,.padding-vert--md{padding-top:1rem!important}.padding-horiz--md,.padding-left--md{padding-left:1rem!important}.padding-horiz--md,.padding-right--md{padding-right:1rem!important}.padding--md{padding:1rem!important}.padding-bottom--lg,.padding-vert--lg{padding-bottom:2rem!important}.padding-top--lg,.padding-vert--lg{padding-top:2rem!important}.padding-horiz--lg,.padding-left--lg{padding-left:2rem!important}.padding-horiz--lg,.padding-right--lg{padding-right:2rem!important}.padding--lg{padding:2rem!important}.padding-bottom--xl,.padding-vert--xl{padding-bottom:5rem!important}.padding-top--xl,.padding-vert--xl{padding-top:5rem!important}.padding-horiz--xl,.padding-left--xl{padding-left:5rem!important}.padding-horiz--xl,.padding-right--xl{padding-right:5rem!important}.padding--xl{padding:5rem!important}code{background-color:var(--ifm-code-background);border:.1rem solid #0000001a;border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal)}.action-widget .monaco-list-row.action:not(.option-disabled) .codicon,.jsoneditor-statusbar .jsoneditor-array-info a,.monaco-editor .editor-widget input,.monaco-hover .hover-contents a.code-link,.monaco-hover .hover-contents a.code-link:hover,.quick-input-list .monaco-list-row.focused .monaco-keybinding-key,.quick-input-list .monaco-list-row.focused .quick-input-list-entry .quick-input-list-separator,.quick-input-message a,a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height) var(--ifm-font-family-monospace);padding:var(--ifm-pre-padding)}pre code{background-color:initial;border:none;font-size:100%;line-height:inherit;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);border-radius:.2rem;box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top) 0 var(--ifm-heading-margin-bottom) 0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}.max-w-full,.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.string-label)>.contents>.main>.left>.monaco-icon-label,img{max-width:100%}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:after,.markdown:before{content:"";display:table}.markdown:after{clear:both}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>p,.markdown>pre,.markdown>ul,.tabList__CuJ{margin-bottom:var(--ifm-leading)}.markdown li{word-wrap:break-word}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ol,ul{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}table{border-collapse:collapse;display:block;margin-bottom:var(--ifm-spacing-vertical)}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead,table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width) solid var(--ifm-table-border-color)}table td,table th{border:var(--ifm-table-border-width) solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}a:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button:hover,.text--no-decoration,.text--no-decoration:hover,a:not([href]){text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:var(--ifm-blockquote-border-left-width) solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);padding:var(--ifm-blockquote-padding-vertical) var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);border:0;height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical) 0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary,.wordWrapButtonEnabled_EoeP .wordWrapButtonIcon_Bwma{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.monaco-editor .inline-added-margin-view-zone,.monaco-editor .inline-deleted-margin-view-zone,.monaco-inputbox-container,.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.alert__heading,.text--uppercase,.uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.monaco-editor .ghost-text-decoration,.monaco-editor .inline-edit-decoration,.monaco-editor .suggest-preview-text .ghost-text,.monaco-editor .suggest-preview-text .inline-edit,.monaco-icon-label.italic:after,.monaco-icon-label.italic>.monaco-icon-label-container>.monaco-icon-description-container>.label-description,.monaco-icon-label.italic>.monaco-icon-label-container>.monaco-icon-name-container>.label-name,.text--italic{font-style:italic}.monaco-editor .peekview-widget .head .peekview-title .dirname,.monaco-editor .peekview-widget .head .peekview-title .filename,.monaco-editor .peekview-widget .head .peekview-title .meta,.text--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text--break{word-wrap:break-word!important;word-break:break-word!important}.clean-btn{background:none;border:none;color:inherit;cursor:pointer;font-family:inherit;padding:0}.alert,.alert .close{color:var(--ifm-alert-foreground-color)}.clean-list{list-style:none;padding-left:0}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:#3578e526;--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:#ebedf026;--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:#00a40026;--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:#54c7ec26;--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:#ffba0026;--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:#fa383e26;--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width) solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.alert__heading{align-items:center;display:flex;font:700 var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.5rem}.alert__icon{display:inline-flex;margin-right:.4em}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{margin:calc(var(--ifm-alert-padding-vertical)*-1) calc(var(--ifm-alert-padding-horizontal)*-1) 0 0;opacity:.75}.alert .close:focus,.alert .close:hover{opacity:1}.alert a{text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{border-radius:50%;display:block;height:var(--ifm-avatar-photo-size);overflow:hidden;width:var(--ifm-avatar-photo-size)}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:var(--ifm-avatar-intro-alignment)}.badge,.breadcrumbs__item,.breadcrumbs__link,.button,.dropdown>.navbar__link:after,.monaco-action-bar.vertical .actions-container,.monaco-editor .mtkz,.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar,.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused.string-label>.contents>.main>.right>.readMore,.monaco-editor .view-zones .view-lines .view-line span,.monaco-keybinding>.monaco-keybinding-key-separator{display:inline-block}.avatar__name{font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:0.5rem;align-items:center;flex-direction:column}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);line-height:1;padding:var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal)}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);color:var(--ifm-color-black)}.breadcrumbs__link,.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator) center;content:" ";display:inline-block;filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier))}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier)) calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-duration:var(--ifm-transition-fast);transition-property:background,color}.breadcrumbs__link:any-link:hover,.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area[href].breadcrumbs__link:hover{background:var(--ifm-breadcrumb-item-background-active);text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:0.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width) solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);line-height:1.5;padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition-duration:var(--ifm-button-transition-duration);transition-property:color,background,border-color;-webkit-user-select:none;user-select:none;white-space:nowrap}.button,.button:hover{color:var(--ifm-button-color)}.button--outline{--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--link{--ifm-button-border-color:#0000;color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}.button--link.button--active,.button--link:active,.button--link:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:0.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{display:block;width:100%}.button.button--secondary{color:var(--ifm-color-gray-900)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary.button--active,.button--primary:active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary.button--active,.button--secondary:active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success.button--active,.button--success:active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info.button--active,.button--info:active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning.button--active,.button--warning:active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger.button--active,.button--danger:active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{display:inline-flex;gap:var(--ifm-button-group-spacing)}.button-group>.button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.button-group>.button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.button-group--block{display:flex;justify-content:stretch}.button-group--block>.button,.quick-input-box{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);display:flex;flex-direction:column;overflow:hidden}.card--full-height{height:100%}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__body,.card__footer,.card__header{padding:var(--ifm-card-vertical-spacing) var(--ifm-card-horizontal-spacing)}.card__body:not(:last-child),.card__footer:not(:last-child),.card__header:not(:last-child){padding-bottom:0}.card__body>:last-child,.card__footer>:last-child,.card__header>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{font-size:.8rem;margin-bottom:0;padding:var(--ifm-toc-padding-vertical) 0}.table-of-contents,.table-of-contents ul{list-style:none;padding-left:var(--ifm-toc-padding-horizontal)}.table-of-contents li{margin:var(--ifm-toc-padding-vertical) var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link--active,.table-of-contents__link--active code,.table-of-contents__link:hover,.table-of-contents__link:hover code{color:var(--ifm-color-primary);text-decoration:none}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);line-height:1;opacity:.5;padding:1rem;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.close:hover,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label{opacity:.7}.close:focus,.monaco-list-row.focused.selected .label-description,.monaco-list-row.selected .label-description,.theme-code-block-highlighted-line .codeLineNumber_Tfdd:before{opacity:.8}.dropdown{display:inline-flex;font-weight:var(--ifm-dropdown-font-weight);position:relative;vertical-align:top}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;transform:translateY(-1px);visibility:visible}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);left:0;list-style:none;max-height:80vh;min-width:10rem;opacity:0;overflow-y:auto;padding:.5rem;pointer-events:none;position:absolute;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);transform:translateY(-.625rem);transition-duration:var(--ifm-transition-fast);transition-property:opacity,transform,visibility;transition-timing-function:var(--ifm-transition-timing-default);visibility:hidden;z-index:var(--ifm-z-index-dropdown)}.menu__caret,.menu__link,.menu__list-item-collapsible{border-radius:.25rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.dropdown__link{border-radius:.25rem;color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem;margin-top:.2rem;padding:.25rem .5rem;white-space:nowrap}.dropdown__link--active,.dropdown__link:hover{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentcolor #0000;border-style:solid;border-width:.4em .4em 0;content:"";margin-left:.3em;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{margin-top:1rem;max-width:var(--ifm-footer-logo-max-width)}.footer__title{color:var(--ifm-footer-title-color);font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.menu,.navbar__link{font-weight:var(--ifm-font-weight-semibold)}.docItemContainer_Djhp article>:first-child,.docItemContainer_Djhp header+*,.footer__item,.jsoneditor-modal p:first-child,.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div>p:first-child,.monaco-hover .code:first-child,.monaco-hover li>ul,.monaco-hover p:first-child,.monaco-hover ul:first-child{margin-top:0}.admonitionContent_BuS1>:last-child,.cardContainer_fWXF :last-child,.collapsibleContent_i85q p:last-child,.details_lb9f>summary>p:last-child,.footer__items,.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div>p:last-child,.monaco-hover .code:last-child,.monaco-hover li>p,.monaco-hover p:last-child,.monaco-hover ul:last-child,.tabItem_Ymn6>:last-child{margin-bottom:0}.codeBlockStandalone_MEMb,[type=checkbox]{padding:0}.hero{align-items:center;background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);display:flex;padding:4rem 2rem}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu__list{list-style:none;margin:0;padding-left:0}.menu__caret,.menu__link{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu__list .menu__list{flex:0 0 100%;margin-top:.25rem;padding-left:var(--ifm-menu-link-padding-horizontal)}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.details_lb9f[data-collapsed=false].isBrowser_bmU9>summary:before,.details_lb9f[open]:not(.isBrowser_bmU9)>summary:before,.menu__list-item--collapsed .menu__caret:before,.menu__list-item--collapsed .menu__link--sublist:after{transform:rotate(90deg)}.menu__list-item-collapsible{display:flex;flex-wrap:wrap;position:relative}.menu__caret:hover,.menu__link:hover,.menu__list-item-collapsible--active,.menu__list-item-collapsible:hover{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link--active,.menu__list-item-collapsible .menu__link:hover{background:none!important}.menu__caret,.menu__link{align-items:center;display:flex}.menu__link{color:var(--ifm-menu-color);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color);text-decoration:none}.menu__caret:before,.menu__link--sublist-caret:after{content:"";height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem;filter:var(--ifm-menu-link-sublist-icon-filter)}.menu__link--sublist-caret:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;margin-left:auto;min-width:1.25rem}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.navbar__brand,.navbar__link{color:var(--ifm-navbar-link-color)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret:before{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem}.navbar--dark,html[data-theme=dark]{--ifm-menu-link-sublist-icon-filter:invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.flex,.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.navbar-sidebar,.navbar-sidebar__backdrop{opacity:0;position:fixed;transition-duration:var(--ifm-transition-fast);transition-timing-function:ease-in-out;visibility:hidden;top:0;bottom:0;left:0}.navbar__inner{display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.navbar__brand{align-items:center;display:flex;margin-right:1rem;min-width:0}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.announcementBarContent_xLdY,.navbar__title{flex:1 1 auto}.navbar__toggle{display:none;margin-right:.5rem}.navbar__logo{flex:0 0 auto;height:2rem;margin-right:.5rem}.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar,.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar>.actions-container,.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label:before,.monaco-list>.monaco-scrollable-element,.monaco-split-view2.horizontal>.monaco-scrollable-element>.split-view-container>.split-view-view,.monaco-tl-contents,.monaco-tl-twistie,.monaco-toolbar,.navbar__logo img,body,html{height:100%}.navbar__items{align-items:center;display:flex;flex:1;min-width:0}.navbar__items--center{flex:0 0 auto}.monaco-editor .find-widget textarea,.monaco-select-box-dropdown-container>.select-box-details-pane>.select-box-description-markdown *,.navbar__items--center .navbar__brand,.post-edit-widget .monaco-button .codicon,div.jsoneditor-field p,div.jsoneditor-value p{margin:0}.editorContainer,.monaco-editor .suggest-details>.monaco-scrollable-element,.monaco-table>.monaco-list,.monaco-tree-type-filter-input,.navbar__items--center+.navbar__items--right,.quick-input-list .quick-input-list-rows>.quick-input-list-row .monaco-icon-label,.quick-input-list .quick-input-list-rows>.quick-input-list-row .monaco-icon-label .monaco-icon-label-container>.monaco-icon-name-container{flex:1}.navbar__items--right{flex:0 0 auto;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{display:inline-block;padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}#nprogress,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.navbar__link--active,.navbar__link:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:#ffffff1a;--ifm-navbar-search-input-placeholder-color:#ffffff80;color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-menu-color-background-active:#ffffff0d;--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{appearance:none;background:var(--ifm-navbar-search-input-background-color) var(--ifm-navbar-search-input-icon) no-repeat .75rem center/1rem 1rem;border:none;border-radius:2rem;color:var(--ifm-navbar-search-input-color);cursor:text;display:inline-block;font-size:.9rem;height:2rem;padding:0 .5rem 0 2.25rem;width:12.5rem}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);transform:translate3d(-100%,0,0);transition-property:opacity,visibility,transform;width:var(--ifm-navbar-sidebar-width)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar__items{transform:translateZ(0)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar__backdrop{background-color:#0009;right:0;transition-property:opacity,visibility}.navbar-sidebar__brand{align-items:center;box-shadow:var(--ifm-navbar-shadow);display:flex;flex:1;height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar-sidebar__items{display:flex;height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast) ease-in-out}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{flex-shrink:0;padding:.5rem;width:calc(var(--ifm-navbar-sidebar-width))}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;text-align:left;top:-.5rem;width:calc(100% + 1rem)}.navbar-sidebar__close{display:flex;margin-left:auto}.pagination{column-gap:var(--ifm-pagination-page-spacing);display:flex;font-size:var(--ifm-pagination-font-size);padding-left:0}.pagination--sm{--ifm-pagination-font-size:0.8rem;--ifm-pagination-padding-horizontal:0.8rem;--ifm-pagination-padding-vertical:0.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:0.3rem}.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{color:var(--ifm-pagination-color-active)}.pagination__item--active .pagination__link,.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);display:inline-block;padding:var(--ifm-pagination-padding-vertical) var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination__link:hover{text-decoration:none}.pagination-nav{grid-gap:var(--ifm-spacing-horizontal);display:grid;gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr)}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);display:block;height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);text-decoration:none}.pagination-nav__link--next{grid-column:2/3;text-align:right}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills__item,.tabs{font-weight:var(--ifm-font-weight-bold)}.pills{display:flex;gap:var(--ifm-pills-spacing);padding-left:0}.pills__item{border-radius:.5rem;cursor:pointer;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pills__item--active{color:var(--ifm-pills-color-active)}.pills__item--active,.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{flex-grow:1;text-align:center}.tabs{color:var(--ifm-tabs-color);display:flex;margin-bottom:0;overflow-x:auto;padding-left:0}.tabs__item{border-bottom:3px solid #0000;border-radius:var(--ifm-global-radius);cursor:pointer;display:inline-flex;padding:var(--ifm-tabs-padding-vertical) var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);border-bottom-left-radius:0;border-bottom-right-radius:0;color:var(--ifm-tabs-color-active)}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.navbar-docs-link:before,.navbar-github-link:before{background-color:var(--ifm-navbar-link-color);display:flex;height:32px;transition:background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default);width:96px;content:""}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:#ffffff0d;--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%) sepia(11%) saturate(0%) hue-rotate(149deg) brightness(99%) contrast(95%);--ifm-code-background:#ffffff1a;--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:#ffffff12;--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec;--docsearch-text-color:#f5f6f7;--docsearch-container-background:#090a11cc;--docsearch-modal-background:#15172a;--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--docsearch-searchbox-background:#090a11;--docsearch-searchbox-focus-background:#000;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b);--docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 #0304094d;--docsearch-key-pressed-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 1px 1px 0 rgba(3,4,9,.302);--docsearch-footer-background:#1e2136;--docsearch-footer-shadow:inset 0 1px 0 0 #494c6a80,0 -4px 8px 0 #0003;--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497}#nprogress .bar{background:var(--docusaurus-progress-bar-color);height:2px;left:0;position:fixed;top:0;width:100%;z-index:1031}#nprogress .peg{box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}[data-theme=dark]{--ifm-color-primary:#675bf1;--ifm-color-primary-dark:#5e45e6;--ifm-color-primary-darker:#5137cb;--ifm-color-primary-darkest:#432fa4;--ifm-color-primary-light:#8080f9;--ifm-color-primary-lighter:#a5abfc;--ifm-color-primary-lightest:#c7ccfe;--docusaurus-highlighted-code-line-bg:#0000004d}.navbar-docs-link,.navbar-github-link{margin-right:10px;padding:0}.navbar-github-link:before{-webkit-mask-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iMzIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHJlY3QgeD0iLjgiIHk9Ii44IiB3aWR0aD0iOTQuNCIgaGVpZ2h0PSIzMC40IiByeD0iMTUuMiIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utd2lkdGg9IjEuNiIvPjxnIGNsaXAtcGF0aD0idXJsKCNhKSI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yMC42NDkgNS40NEMxNC43MTYgNS40NCA5LjkyIDEwLjI3MSA5LjkyIDE2LjI1YTEwLjggMTAuOCAwIDAgMCA3LjMzNiAxMC4yNTNjLjUzMy4xMDguNzI4LS4yMzIuNzI4LS41MTggMC0uMjUxLS4wMTctMS4xMS0uMDE3LTIuMDA1LTIuOTg1LjY0NS0zLjYwNi0xLjI4OC0zLjYwNi0xLjI4OC0uNDgtMS4yNTMtMS4xOS0xLjU3NS0xLjE5LTEuNTc1LS45NzctLjY2Mi4wNy0uNjYyLjA3LS42NjIgMS4wODQuMDcyIDEuNjUzIDEuMTEgMS42NTMgMS4xMS45NTkgMS42NDYgMi41MDQgMS4xOCAzLjEyNi44OTQuMDg5LS42OTguMzczLTEuMTguNjc1LTEuNDUtMi4zOC0uMjUtNC44ODUtMS4xOC00Ljg4NS01LjMzMiAwLTEuMTgxLjQyNi0yLjE0NyAxLjEwMS0yLjg5OS0uMTA2LS4yNjgtLjQ4LTEuMzc4LjEwNy0yLjg2MyAwIDAgLjkwNi0uMjg3IDIuOTQ4IDEuMTFhMTAuMzE0IDEwLjMxNCAwIDAgMSAyLjY4My0uMzU5Yy45MDYgMCAxLjgzLjEyNiAyLjY4Mi4zNTggMi4wNDMtMS4zOTYgMi45NDktMS4xMSAyLjk0OS0xLjExLjU4NiAxLjQ4Ni4yMTMgMi41OTYuMTA2IDIuODY0LjY5My43NTIgMS4xMDIgMS43MTggMS4xMDIgMi44OTkgMCA0LjE1Mi0yLjUwNSA1LjA2NC00LjkwMyA1LjMzMy4zOS4zNC43MjguOTg0LjcyOCAyLjAwNCAwIDEuNDUtLjAxNyAyLjYxMy0uMDE3IDIuOTcgMCAuMjg3LjE5NS42MjcuNzI4LjUyYTEwLjggMTAuOCAwIDAgMCA3LjMzNi0xMC4yNTRjLjAxOC01Ljk3Ny00Ljc5Ni0xMC44MDktMTAuNzExLTEwLjgwOVoiIGZpbGw9IiMwMDAiLz48L2c+PHBhdGggZD0iTTQzLjY4MiAxNC41NDVhMi4zMTMgMi4zMTMgMCAwIDAtLjMwMS0uNjM0IDEuOTUgMS45NSAwIDAgMC0uNDU1LS40ODYgMS44MzQgMS44MzQgMCAwIDAtLjYwNC0uMzAxIDIuNTE2IDIuNTE2IDAgMCAwLS43NDMtLjEwNWMtLjQ4IDAtLjkxLjEyLTEuMjg1LjM2My0uMzc2LjI0Mi0uNjcyLjU5Ny0uODg4IDEuMDY2LS4yMTMuNDY3LS4zMiAxLjAzNS0uMzIgMS43MDYgMCAuNjc2LjEwNyAxLjI0OS4zMiAxLjcxOC4yMTMuNDcuNTA5LjgyNy44ODggMS4wNzEuMzc5LjI0Mi44MTkuMzYzIDEuMzIuMzYzLjQ1NSAwIC44NDgtLjA4NyAxLjE4LS4yNjJhMS44NSAxLjg1IDAgMCAwIC43NzUtLjc0M2MuMTgtLjMyNC4yNy0uNzAzLjI3LTEuMTM3bC4zNjguMDU3aC0yLjQzMXYtMS4yNjhoMy42MzN2MS4wNzVjMCAuNzY3LS4xNjMgMS40My0uNDkgMS45OS0uMzI2LjU2LS43NzUuOTktMS4zNDYgMS4yOTQtLjU3MS4zLTEuMjI3LjQ1LTEuOTY4LjQ1LS44MjUgMC0xLjU0OS0uMTg1LTIuMTczLS41NTVhMy44NDIgMy44NDIgMCAwIDEtMS40NTYtMS41ODdjLS4zNDctLjY4OC0uNTItMS41MDQtLjUyLTIuNDQ5IDAtLjcyMy4xMDItMS4zNjguMzA2LTEuOTM3LjIwNy0uNTY4LjQ5NS0xLjA1Ljg2Ni0xLjQ0Ny4zNy0uNC44MDQtLjcwMyAxLjMwMy0uOTFhNC4xNSA0LjE1IDAgMCAxIDEuNjI2LS4zMTRjLjQ5NiAwIC45NTguMDcyIDEuMzg2LjIxOC40MjkuMTQzLjgxLjM0NyAxLjE0Mi42MTIuMzM1LjI2Ni42MS41OC44MjYuOTQ1LjIxNi4zNjQuMzU3Ljc2Ny40MjQgMS4yMDdoLTEuNjUzWm0zLjY0NyA2LjA5NXYtNi43MTZoMS41ODN2Ni43MTZoLTEuNTgzWm0uNzk2LTcuNjdhLjkyMy45MjMgMCAwIDEtLjY0Ny0uMjQ5LjgwMy44MDMgMCAwIDEtLjI3MS0uNjA3YzAtLjI0LjA5LS40NDIuMjctLjYwOGEuOTE0LjkxNCAwIDAgMSAuNjQ4LS4yNTRjLjI1MyAwIC40Ny4wODUuNjQ3LjI1NC4xOC4xNjYuMjcxLjM2OC4yNzEuNjA4IDAgLjIzNi0uMDkuNDM4LS4yNzEuNjA3YS45MTMuOTEzIDAgMCAxLS42NDcuMjVabTUuNzY4Ljk1NHYxLjIyNGgtMy44NnYtMS4yMjRoMy44NlptLTIuOTA3LTEuNjFoMS41ODJ2Ni4zMDZjMCAuMjEzLjAzMi4zNzYuMDk3LjQ5YS41Mi41MiAwIDAgMCAuMjYyLjIyN2MuMTA4LjA0LjIyNy4wNjEuMzU4LjA2MS4xIDAgLjE5LS4wMDcuMjcyLS4wMjIuMDg0LS4wMTQuMTQ4LS4wMjcuMTkyLS4wMzlsLjI2NyAxLjIzN2EyLjk2OCAyLjk2OCAwIDAgMS0uOTMxLjE1NyAyLjU4IDIuNTggMCAwIDEtMS4wNzItLjE3OCAxLjY2NiAxLjY2NiAwIDAgMS0uNzU2LS42MjFjLS4xODQtLjI4LS4yNzQtLjYzLS4yNzEtMS4wNXYtNi41NjdabTQuNDQ1IDguMzI2di04Ljk1NWgxLjYyM3YzLjc5MWg0LjE1di0zLjc5MWgxLjYyNnY4Ljk1NWgtMS42Mjd2LTMuODA0aC00LjE1djMuODA0aC0xLjYyMlptMTMuMzc0LTIuODI1di0zLjg5MWgxLjU4M3Y2LjcxNmgtMS41MzV2LTEuMTk0aC0uMDdhMi4wMiAyLjAyIDAgMCAxLS43NDguOTIzYy0uMzQ0LjIzOS0uNzY4LjM1OC0xLjI3Mi4zNTgtLjQ0IDAtLjgzLS4wOTctMS4xNjgtLjI5M2EyLjAzNyAyLjAzNyAwIDAgMS0uNzg3LS44NmMtLjE5LS4zOC0uMjg0LS44MzgtLjI4NC0xLjM3NHYtNC4yNzZoMS41ODN2NC4wMzFjMCAuNDI2LjExNy43NjQuMzUgMS4wMTUuMjMzLjI1LjUzOS4zNzYuOTE4LjM3Ni4yMzMgMCAuNDU5LS4wNTcuNjc4LS4xNy4yMTgtLjExNC4zOTgtLjI4NC41MzgtLjUwOC4xNDItLjIyNy4yMTQtLjUxMi4yMTQtLjg1M1ptMy4yOCAyLjgyNXYtOC45NTVoMS41ODN2My4zNWguMDY2YTIuOTEgMi45MSAwIDAgMSAuMzQ1LS41MiAxLjgzIDEuODMgMCAwIDEgLjYwNC0uNDc4Yy4yNTMtLjEzNC41NzctLjIuOTctLjIuNTIgMCAuOTg3LjEzMiAxLjQwNC4zOTcuNDIuMjYzLjc1Mi42NTIuOTk3IDEuMTY4LjI0OC41MTMuMzcxIDEuMTQyLjM3MSAxLjg4OSAwIC43MzctLjEyIDEuMzY0LS4zNjIgMS44OC0uMjQzLjUxNi0uNTcyLjkxLS45ODkgMS4xOC0uNDE3LjI3MS0uODg5LjQwNy0xLjQxNi40MDctLjM4NSAwLS43MDQtLjA2NC0uOTU4LS4xOTJhMS45NSAxLjk1IDAgMCAxLS42MTItLjQ2NCAyLjk5NyAyLjk5NyAwIDAgMS0uMzU0LS41MmgtLjA5MnYxLjA1OGgtMS41NTdabTEuNTUzLTMuMzU4YzAgLjQzNC4wNi44MTUuMTgzIDEuMTQxLjEyNS4zMjcuMzA1LjU4Mi41MzguNzY1LjIzNi4xODEuNTIyLjI3MS44NTcuMjcxLjM1IDAgLjY0My0uMDkzLjg3OS0uMjguMjM2LS4xODkuNDE0LS40NDcuNTMzLS43NzMuMTIzLS4zMy4xODQtLjcwNC4xODQtMS4xMjQgMC0uNDE3LS4wNi0uNzg3LS4xOC0xLjExYTEuNjY4IDEuNjY4IDAgMCAwLS41MzMtLjc2MmMtLjIzNi0uMTgzLS41My0uMjc1LS44ODMtLjI3NWExLjM5IDEuMzkgMCAwIDAtLjg2MS4yNjcgMS42NCAxLjY0IDAgMCAwLS41MzguNzQ3Yy0uMTIuMzIxLS4xOC42OTgtLjE4IDEuMTMzWiIgZmlsbD0iIzAwMCIvPjxkZWZzPjxjbGlwUGF0aCBpZD0iYSI+PHBhdGggZmlsbD0iI2ZmZiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOS45MiAxLjI4KSIgZD0iTTAgMGgzMS4zNnYzMC43MkgweiIvPjwvY2xpcFBhdGg+PC9kZWZzPjwvc3ZnPg==);mask-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iMzIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHJlY3QgeD0iLjgiIHk9Ii44IiB3aWR0aD0iOTQuNCIgaGVpZ2h0PSIzMC40IiByeD0iMTUuMiIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utd2lkdGg9IjEuNiIvPjxnIGNsaXAtcGF0aD0idXJsKCNhKSI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yMC42NDkgNS40NEMxNC43MTYgNS40NCA5LjkyIDEwLjI3MSA5LjkyIDE2LjI1YTEwLjggMTAuOCAwIDAgMCA3LjMzNiAxMC4yNTNjLjUzMy4xMDguNzI4LS4yMzIuNzI4LS41MTggMC0uMjUxLS4wMTctMS4xMS0uMDE3LTIuMDA1LTIuOTg1LjY0NS0zLjYwNi0xLjI4OC0zLjYwNi0xLjI4OC0uNDgtMS4yNTMtMS4xOS0xLjU3NS0xLjE5LTEuNTc1LS45NzctLjY2Mi4wNy0uNjYyLjA3LS42NjIgMS4wODQuMDcyIDEuNjUzIDEuMTEgMS42NTMgMS4xMS45NTkgMS42NDYgMi41MDQgMS4xOCAzLjEyNi44OTQuMDg5LS42OTguMzczLTEuMTguNjc1LTEuNDUtMi4zOC0uMjUtNC44ODUtMS4xOC00Ljg4NS01LjMzMiAwLTEuMTgxLjQyNi0yLjE0NyAxLjEwMS0yLjg5OS0uMTA2LS4yNjgtLjQ4LTEuMzc4LjEwNy0yLjg2MyAwIDAgLjkwNi0uMjg3IDIuOTQ4IDEuMTFhMTAuMzE0IDEwLjMxNCAwIDAgMSAyLjY4My0uMzU5Yy45MDYgMCAxLjgzLjEyNiAyLjY4Mi4zNTggMi4wNDMtMS4zOTYgMi45NDktMS4xMSAyLjk0OS0xLjExLjU4NiAxLjQ4Ni4yMTMgMi41OTYuMTA2IDIuODY0LjY5My43NTIgMS4xMDIgMS43MTggMS4xMDIgMi44OTkgMCA0LjE1Mi0yLjUwNSA1LjA2NC00LjkwMyA1LjMzMy4zOS4zNC43MjguOTg0LjcyOCAyLjAwNCAwIDEuNDUtLjAxNyAyLjYxMy0uMDE3IDIuOTcgMCAuMjg3LjE5NS42MjcuNzI4LjUyYTEwLjggMTAuOCAwIDAgMCA3LjMzNi0xMC4yNTRjLjAxOC01Ljk3Ny00Ljc5Ni0xMC44MDktMTAuNzExLTEwLjgwOVoiIGZpbGw9IiMwMDAiLz48L2c+PHBhdGggZD0iTTQzLjY4MiAxNC41NDVhMi4zMTMgMi4zMTMgMCAwIDAtLjMwMS0uNjM0IDEuOTUgMS45NSAwIDAgMC0uNDU1LS40ODYgMS44MzQgMS44MzQgMCAwIDAtLjYwNC0uMzAxIDIuNTE2IDIuNTE2IDAgMCAwLS43NDMtLjEwNWMtLjQ4IDAtLjkxLjEyLTEuMjg1LjM2My0uMzc2LjI0Mi0uNjcyLjU5Ny0uODg4IDEuMDY2LS4yMTMuNDY3LS4zMiAxLjAzNS0uMzIgMS43MDYgMCAuNjc2LjEwNyAxLjI0OS4zMiAxLjcxOC4yMTMuNDcuNTA5LjgyNy44ODggMS4wNzEuMzc5LjI0Mi44MTkuMzYzIDEuMzIuMzYzLjQ1NSAwIC44NDgtLjA4NyAxLjE4LS4yNjJhMS44NSAxLjg1IDAgMCAwIC43NzUtLjc0M2MuMTgtLjMyNC4yNy0uNzAzLjI3LTEuMTM3bC4zNjguMDU3aC0yLjQzMXYtMS4yNjhoMy42MzN2MS4wNzVjMCAuNzY3LS4xNjMgMS40My0uNDkgMS45OS0uMzI2LjU2LS43NzUuOTktMS4zNDYgMS4yOTQtLjU3MS4zLTEuMjI3LjQ1LTEuOTY4LjQ1LS44MjUgMC0xLjU0OS0uMTg1LTIuMTczLS41NTVhMy44NDIgMy44NDIgMCAwIDEtMS40NTYtMS41ODdjLS4zNDctLjY4OC0uNTItMS41MDQtLjUyLTIuNDQ5IDAtLjcyMy4xMDItMS4zNjguMzA2LTEuOTM3LjIwNy0uNTY4LjQ5NS0xLjA1Ljg2Ni0xLjQ0Ny4zNy0uNC44MDQtLjcwMyAxLjMwMy0uOTFhNC4xNSA0LjE1IDAgMCAxIDEuNjI2LS4zMTRjLjQ5NiAwIC45NTguMDcyIDEuMzg2LjIxOC40MjkuMTQzLjgxLjM0NyAxLjE0Mi42MTIuMzM1LjI2Ni42MS41OC44MjYuOTQ1LjIxNi4zNjQuMzU3Ljc2Ny40MjQgMS4yMDdoLTEuNjUzWm0zLjY0NyA2LjA5NXYtNi43MTZoMS41ODN2Ni43MTZoLTEuNTgzWm0uNzk2LTcuNjdhLjkyMy45MjMgMCAwIDEtLjY0Ny0uMjQ5LjgwMy44MDMgMCAwIDEtLjI3MS0uNjA3YzAtLjI0LjA5LS40NDIuMjctLjYwOGEuOTE0LjkxNCAwIDAgMSAuNjQ4LS4yNTRjLjI1MyAwIC40Ny4wODUuNjQ3LjI1NC4xOC4xNjYuMjcxLjM2OC4yNzEuNjA4IDAgLjIzNi0uMDkuNDM4LS4yNzEuNjA3YS45MTMuOTEzIDAgMCAxLS42NDcuMjVabTUuNzY4Ljk1NHYxLjIyNGgtMy44NnYtMS4yMjRoMy44NlptLTIuOTA3LTEuNjFoMS41ODJ2Ni4zMDZjMCAuMjEzLjAzMi4zNzYuMDk3LjQ5YS41Mi41MiAwIDAgMCAuMjYyLjIyN2MuMTA4LjA0LjIyNy4wNjEuMzU4LjA2MS4xIDAgLjE5LS4wMDcuMjcyLS4wMjIuMDg0LS4wMTQuMTQ4LS4wMjcuMTkyLS4wMzlsLjI2NyAxLjIzN2EyLjk2OCAyLjk2OCAwIDAgMS0uOTMxLjE1NyAyLjU4IDIuNTggMCAwIDEtMS4wNzItLjE3OCAxLjY2NiAxLjY2NiAwIDAgMS0uNzU2LS42MjFjLS4xODQtLjI4LS4yNzQtLjYzLS4yNzEtMS4wNXYtNi41NjdabTQuNDQ1IDguMzI2di04Ljk1NWgxLjYyM3YzLjc5MWg0LjE1di0zLjc5MWgxLjYyNnY4Ljk1NWgtMS42Mjd2LTMuODA0aC00LjE1djMuODA0aC0xLjYyMlptMTMuMzc0LTIuODI1di0zLjg5MWgxLjU4M3Y2LjcxNmgtMS41MzV2LTEuMTk0aC0uMDdhMi4wMiAyLjAyIDAgMCAxLS43NDguOTIzYy0uMzQ0LjIzOS0uNzY4LjM1OC0xLjI3Mi4zNTgtLjQ0IDAtLjgzLS4wOTctMS4xNjgtLjI5M2EyLjAzNyAyLjAzNyAwIDAgMS0uNzg3LS44NmMtLjE5LS4zOC0uMjg0LS44MzgtLjI4NC0xLjM3NHYtNC4yNzZoMS41ODN2NC4wMzFjMCAuNDI2LjExNy43NjQuMzUgMS4wMTUuMjMzLjI1LjUzOS4zNzYuOTE4LjM3Ni4yMzMgMCAuNDU5LS4wNTcuNjc4LS4xNy4yMTgtLjExNC4zOTgtLjI4NC41MzgtLjUwOC4xNDItLjIyNy4yMTQtLjUxMi4yMTQtLjg1M1ptMy4yOCAyLjgyNXYtOC45NTVoMS41ODN2My4zNWguMDY2YTIuOTEgMi45MSAwIDAgMSAuMzQ1LS41MiAxLjgzIDEuODMgMCAwIDEgLjYwNC0uNDc4Yy4yNTMtLjEzNC41NzctLjIuOTctLjIuNTIgMCAuOTg3LjEzMiAxLjQwNC4zOTcuNDIuMjYzLjc1Mi42NTIuOTk3IDEuMTY4LjI0OC41MTMuMzcxIDEuMTQyLjM3MSAxLjg4OSAwIC43MzctLjEyIDEuMzY0LS4zNjIgMS44OC0uMjQzLjUxNi0uNTcyLjkxLS45ODkgMS4xOC0uNDE3LjI3MS0uODg5LjQwNy0xLjQxNi40MDctLjM4NSAwLS43MDQtLjA2NC0uOTU4LS4xOTJhMS45NSAxLjk1IDAgMCAxLS42MTItLjQ2NCAyLjk5NyAyLjk5NyAwIDAgMS0uMzU0LS41MmgtLjA5MnYxLjA1OGgtMS41NTdabTEuNTUzLTMuMzU4YzAgLjQzNC4wNi44MTUuMTgzIDEuMTQxLjEyNS4zMjcuMzA1LjU4Mi41MzguNzY1LjIzNi4xODEuNTIyLjI3MS44NTcuMjcxLjM1IDAgLjY0My0uMDkzLjg3OS0uMjguMjM2LS4xODkuNDE0LS40NDcuNTMzLS43NzMuMTIzLS4zMy4xODQtLjcwNC4xODQtMS4xMjQgMC0uNDE3LS4wNi0uNzg3LS4xOC0xLjExYTEuNjY4IDEuNjY4IDAgMCAwLS41MzMtLjc2MmMtLjIzNi0uMTgzLS41My0uMjc1LS44ODMtLjI3NWExLjM5IDEuMzkgMCAwIDAtLjg2MS4yNjcgMS42NCAxLjY0IDAgMCAwLS41MzguNzQ3Yy0uMTIuMzIxLS4xOC42OTgtLjE4IDEuMTMzWiIgZmlsbD0iIzAwMCIvPjxkZWZzPjxjbGlwUGF0aCBpZD0iYSI+PHBhdGggZmlsbD0iI2ZmZiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOS45MiAxLjI4KSIgZD0iTTAgMGgzMS4zNnYzMC43MkgweiIvPjwvY2xpcFBhdGg+PC9kZWZzPjwvc3ZnPg==)}.navbar-docs-link:hover:before,.navbar-github-link:hover:before{background-color:var(--ifm-navbar-link-hover-color)}.navbar-docs-link:before{-webkit-mask-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iMzIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTQ1LjE5OCAyMC4zN2gtMy4wMzV2LTguOTU1aDMuMDk2Yy44OSAwIDEuNjUzLjE4IDIuMjkxLjUzOGEzLjU5NSAzLjU5NSAwIDAgMSAxLjQ3OCAxLjUzNWMuMzQ0LjY2Ny41MTYgMS40NjYuNTE2IDIuMzk2IDAgLjkzMy0uMTczIDEuNzM0LS41MiAyLjQwNWEzLjU5NyAzLjU5NyAwIDAgMS0xLjQ5MSAxLjU0M2MtLjY0Ny4zNTktMS40MjYuNTM4LTIuMzM1LjUzOFptLTEuNDEzLTEuNDA0aDEuMzM0Yy42MjQgMCAxLjE0NC0uMTEzIDEuNTYxLS4zNC40MTctLjIzLjczLS41NzQuOTQtMS4wMjguMjEtLjQ1OC4zMTUtMS4wMy4zMTUtMS43MTQgMC0uNjg1LS4xMDUtMS4yNTQtLjMxNS0xLjcwNmEyLjE0NiAyLjE0NiAwIDAgMC0uOTMxLTEuMDE4Yy0uNDA4LS4yMjgtLjkxNi0uMzQxLTEuNTIyLS4zNDFoLTEuMzgydjYuMTQ3Wm0xMC4xNiAxLjUzNWMtLjY1NiAwLTEuMjI0LS4xNDQtMS43MDUtLjQzM2EyLjk0IDIuOTQgMCAwIDEtMS4xMi0xLjIxYy0uMjYyLS41Mi0uMzkzLTEuMTI2LS4zOTMtMS44MiAwLS42OTQuMTMxLTEuMzAxLjM5My0xLjgyM2EyLjkzNCAyLjkzNCAwIDAgMSAxLjEyLTEuMjE2Yy40OC0uMjg4IDEuMDUtLjQzMyAxLjcwNS0uNDMzLjY1NiAwIDEuMjI0LjE0NSAxLjcwNS40MzMuNDgxLjI4OS44NTMuNjk0IDEuMTE1IDEuMjE2LjI2Ni41MjIuMzk4IDEuMTMuMzk4IDEuODIzIDAgLjY5NC0uMTMyIDEuMy0uMzk4IDEuODJhMi45MSAyLjkxIDAgMCAxLTEuMTE1IDEuMjFjLS40OC4yODktMS4wNS40MzMtMS43MDUuNDMzWm0uMDA5LTEuMjY4Yy4zNTUgMCAuNjUzLS4wOTguODkyLS4yOTMuMjM5LS4xOTguNDE3LS40NjMuNTMzLS43OTYuMTItLjMzMi4xOC0uNzAyLjE4LTEuMTEgMC0uNDExLS4wNi0uNzgzLS4xOC0xLjExNWExLjc2NCAxLjc2NCAwIDAgMC0uNTMzLS44Yy0uMjQtLjE5OS0uNTM3LS4yOTgtLjg5Mi0uMjk4LS4zNjUgMC0uNjY4LjEtLjkxLjI5OC0uMjM5LjE5OC0uNDE4LjQ2NS0uNTM4LjhhMy4zNTIgMy4zNTIgMCAwIDAtLjE3NSAxLjExNWMwIC40MDguMDU5Ljc3OC4xNzUgMS4xMS4xMi4zMzMuMy41OTguNTM4Ljc5Ni4yNDIuMTk1LjU0NS4yOTMuOTEuMjkzWm03LjQ4MiAxLjI2OGMtLjY3IDAtMS4yNDYtLjE0Ny0xLjcyNy0uNDQyYTIuOTQ5IDIuOTQ5IDAgMCAxLTEuMTA2LTEuMjJjLS4yNTctLjUyMS0uMzg1LTEuMTIyLS4zODUtMS44IDAtLjY4My4xMzEtMS4yODUuMzk0LTEuODA3YTIuOTM3IDIuOTM3IDAgMCAxIDEuMTEtMS4yMjRjLjQ4MS0uMjk0IDEuMDUtLjQ0MiAxLjcwNi0uNDQyLjU0NSAwIDEuMDI3LjEgMS40NDcuMzAyLjQyMi4xOTguNzYuNDggMS4wMS44NDQuMjUuMzYxLjM5My43ODQuNDI4IDEuMjY4SDYyLjhhMS40NDcgMS40NDcgMCAwIDAtLjQzNy0uODA5Yy0uMjI3LS4yMTktLjUzMi0uMzI4LS45MTQtLjMyOGExLjQzIDEuNDMgMCAwIDAtLjg1Mi4yNjJjLS4yNDUuMTcyLS40MzYuNDItLjU3My43NDQtLjEzNC4zMjMtLjIwMS43MTEtLjIwMSAxLjE2MyAwIC40NTcuMDY3Ljg1MS4yIDEuMTguMTM1LjMyNy4zMjMuNTguNTY1Ljc1Ny4yNDUuMTc1LjUzMi4yNjIuODYxLjI2Mi4yMzQgMCAuNDQyLS4wNDMuNjI2LS4xMy4xODYtLjA5MS4zNDItLjIyMS40NjctLjM5LjEyNi0uMTcuMjEyLS4zNzUuMjU4LS42MTdoMS41MTNhMi42MzkgMi42MzkgMCAwIDEtLjQyIDEuMjY0Yy0uMjQxLjM2NC0uNTcuNjUtLjk4OC44NTctLjQxNi4yMDQtLjkwNi4zMDYtMS40NjkuMzA2Wm05LjQ4NS01LjA3Mi0xLjQ0My4xNTdhMS4xNiAxLjE2IDAgMCAwLS4yMTQtLjQxIDEuMDY1IDEuMDY1IDAgMCAwLS40MDItLjMxMSAxLjQ2NiAxLjQ2NiAwIDAgMC0uNjIxLS4xMThjLS4zMyAwLS42MDYuMDcxLS44My4yMTQtLjIyMi4xNDMtLjMzMi4zMjgtLjMyOS41NTZhLjU4MS41ODEgMCAwIDAgLjIxNS40NzZjLjE0OC4xMjMuMzkzLjIyMy43MzQuMzAybDEuMTQ2LjI0NWMuNjM1LjEzNyAxLjEwNy4zNTQgMS40MTYuNjUxLjMxMi4yOTcuNDcuNjg3LjQ3MyAxLjE2OGExLjgyNyAxLjgyNyAwIDAgMS0uMzcyIDEuMTE5Yy0uMjQyLjMyLS41NzkuNTcxLTEuMDEuNzUyLS40MzEuMTgtLjkyNy4yNzEtMS40ODcuMjcxLS44MjIgMC0xLjQ4NC0uMTcyLTEuOTg1LS41MTYtLjUwMS0uMzQ3LS44LS44My0uODk2LTEuNDQ3bDEuNTQzLS4xNDljLjA3LjMwMy4yMTkuNTMyLjQ0Ni42ODcuMjI4LjE1NC41MjMuMjMyLjg4OC4yMzIuMzc2IDAgLjY3OC0uMDc4LjkwNS0uMjMyLjIzLS4xNTUuMzQ1LS4zNDYuMzQ1LS41NzNhLjU5Ni41OTYgMCAwIDAtLjIyMy0uNDc3Yy0uMTQ1LS4xMjUtLjM3My0uMjIxLS42ODItLjI4OGwtMS4xNDUtLjI0Yy0uNjQ0LS4xMzUtMS4xMjEtLjM2LTEuNDMtLjY3OC0uMzEtLjMyMS0uNDYyLS43MjYtLjQ2LTEuMjE2YTEuNzIgMS43MiAwIDAgMSAuMzM4LTEuMDc2Yy4yMy0uMzA2LjU0OS0uNTQyLjk1Ny0uNzA4LjQxMS0uMTcuODg1LS4yNTQgMS40MjEtLjI1NC43ODcgMCAxLjQwNy4xNjggMS44NTguNTAzLjQ1NS4zMzUuNzM3Ljc4OS44NDQgMS4zNloiIGZpbGw9IiMwMDAiLz48cmVjdCB4PSIuOCIgeT0iLjgiIHdpZHRoPSI5NC40IiBoZWlnaHQ9IjI5LjQiIHJ4PSIxNC43IiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS42Ii8+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNi4xMTEgMjIuOTU2YTIuODYyIDIuODYyIDAgMCAxLTMuMzQxLTIuNjM3di04LjcxYTIuMTEgMi4xMSAwIDAgMSAxLjM3Ni0yLjA2NCA2LjU0MiA2LjU0MiAwIDAgMSA3LjEzNiAxLjc4NlYyMy43NmMtMS4xOTgtMS4wMDctMy4yNjgtMS4wNjgtNS4xNy0uODA0Wk0yNi40NTIgMjIuOTU2YTIuODYyIDIuODYyIDAgMCAwIDMuMzQyLTIuNjM3di04LjcxYTIuMTEgMi4xMSAwIDAgMC0xLjM3Ny0yLjA2NCA2LjU0MiA2LjU0MiAwIDAgMC03LjEzNSAxLjc4NlYyMy43NmMxLjE5OC0xLjAwNyAzLjI2Ny0xLjA2OCA1LjE3LS44MDRaIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMi43MjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPjxwYXRoIGQ9Ik0xOC4yNDIgMTYuMTZhLjkxMi45MTIgMCAxIDAgMC0xLjgyNHYxLjgyNFptLTIuNDMyLTEuODI0YS45MTIuOTEyIDAgMCAwIDAgMS44MjR2LTEuODI0Wm0yLjQzMiA0LjI1NmEuOTEyLjkxMiAwIDEgMCAwLTEuODI0djEuODI0Wm0tMi40MzItMS44MjRhLjkxMi45MTIgMCAwIDAgMCAxLjgyNHYtMS44MjRabTEwLjk0NC0uNjA4YS45MTIuOTEyIDAgMSAwIDAtMS44MjR2MS44MjRabS0yLjQzMi0xLjgyNGEuOTEyLjkxMiAwIDAgMCAwIDEuODI0di0xLjgyNFptMi40MzIgNC4yNTZhLjkxMi45MTIgMCAxIDAgMC0xLjgyNHYxLjgyNFptLTIuNDMyLTEuODI0YS45MTIuOTEyIDAgMCAwIDAgMS44MjR2LTEuODI0Wm0tNi4wOC0yLjQzMkgxNS44MXYxLjgyNGgyLjQzMnYtMS44MjRabTAgMi40MzJIMTUuODF2MS44MjRoMi40MzJ2LTEuODI0Wm04LjUxMi0yLjQzMmgtMi40MzJ2MS44MjRoMi40MzJ2LTEuODI0Wm0wIDIuNDMyaC0yLjQzMnYxLjgyNGgyLjQzMnYtMS44MjRaIiBmaWxsPSIjMDAwIi8+PC9nPjxkZWZzPjxjbGlwUGF0aCBpZD0iYSI+PHBhdGggZmlsbD0iI2ZmZiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOS45MiAxLjI0KSIgZD0iTTAgMGgzMS4zNnYyOS43NkgweiIvPjwvY2xpcFBhdGg+PC9kZWZzPjwvc3ZnPg==);mask-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iMzIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTQ1LjE5OCAyMC4zN2gtMy4wMzV2LTguOTU1aDMuMDk2Yy44OSAwIDEuNjUzLjE4IDIuMjkxLjUzOGEzLjU5NSAzLjU5NSAwIDAgMSAxLjQ3OCAxLjUzNWMuMzQ0LjY2Ny41MTYgMS40NjYuNTE2IDIuMzk2IDAgLjkzMy0uMTczIDEuNzM0LS41MiAyLjQwNWEzLjU5NyAzLjU5NyAwIDAgMS0xLjQ5MSAxLjU0M2MtLjY0Ny4zNTktMS40MjYuNTM4LTIuMzM1LjUzOFptLTEuNDEzLTEuNDA0aDEuMzM0Yy42MjQgMCAxLjE0NC0uMTEzIDEuNTYxLS4zNC40MTctLjIzLjczLS41NzQuOTQtMS4wMjguMjEtLjQ1OC4zMTUtMS4wMy4zMTUtMS43MTQgMC0uNjg1LS4xMDUtMS4yNTQtLjMxNS0xLjcwNmEyLjE0NiAyLjE0NiAwIDAgMC0uOTMxLTEuMDE4Yy0uNDA4LS4yMjgtLjkxNi0uMzQxLTEuNTIyLS4zNDFoLTEuMzgydjYuMTQ3Wm0xMC4xNiAxLjUzNWMtLjY1NiAwLTEuMjI0LS4xNDQtMS43MDUtLjQzM2EyLjk0IDIuOTQgMCAwIDEtMS4xMi0xLjIxYy0uMjYyLS41Mi0uMzkzLTEuMTI2LS4zOTMtMS44MiAwLS42OTQuMTMxLTEuMzAxLjM5My0xLjgyM2EyLjkzNCAyLjkzNCAwIDAgMSAxLjEyLTEuMjE2Yy40OC0uMjg4IDEuMDUtLjQzMyAxLjcwNS0uNDMzLjY1NiAwIDEuMjI0LjE0NSAxLjcwNS40MzMuNDgxLjI4OS44NTMuNjk0IDEuMTE1IDEuMjE2LjI2Ni41MjIuMzk4IDEuMTMuMzk4IDEuODIzIDAgLjY5NC0uMTMyIDEuMy0uMzk4IDEuODJhMi45MSAyLjkxIDAgMCAxLTEuMTE1IDEuMjFjLS40OC4yODktMS4wNS40MzMtMS43MDUuNDMzWm0uMDA5LTEuMjY4Yy4zNTUgMCAuNjUzLS4wOTguODkyLS4yOTMuMjM5LS4xOTguNDE3LS40NjMuNTMzLS43OTYuMTItLjMzMi4xOC0uNzAyLjE4LTEuMTEgMC0uNDExLS4wNi0uNzgzLS4xOC0xLjExNWExLjc2NCAxLjc2NCAwIDAgMC0uNTMzLS44Yy0uMjQtLjE5OS0uNTM3LS4yOTgtLjg5Mi0uMjk4LS4zNjUgMC0uNjY4LjEtLjkxLjI5OC0uMjM5LjE5OC0uNDE4LjQ2NS0uNTM4LjhhMy4zNTIgMy4zNTIgMCAwIDAtLjE3NSAxLjExNWMwIC40MDguMDU5Ljc3OC4xNzUgMS4xMS4xMi4zMzMuMy41OTguNTM4Ljc5Ni4yNDIuMTk1LjU0NS4yOTMuOTEuMjkzWm03LjQ4MiAxLjI2OGMtLjY3IDAtMS4yNDYtLjE0Ny0xLjcyNy0uNDQyYTIuOTQ5IDIuOTQ5IDAgMCAxLTEuMTA2LTEuMjJjLS4yNTctLjUyMS0uMzg1LTEuMTIyLS4zODUtMS44IDAtLjY4My4xMzEtMS4yODUuMzk0LTEuODA3YTIuOTM3IDIuOTM3IDAgMCAxIDEuMTEtMS4yMjRjLjQ4MS0uMjk0IDEuMDUtLjQ0MiAxLjcwNi0uNDQyLjU0NSAwIDEuMDI3LjEgMS40NDcuMzAyLjQyMi4xOTguNzYuNDggMS4wMS44NDQuMjUuMzYxLjM5My43ODQuNDI4IDEuMjY4SDYyLjhhMS40NDcgMS40NDcgMCAwIDAtLjQzNy0uODA5Yy0uMjI3LS4yMTktLjUzMi0uMzI4LS45MTQtLjMyOGExLjQzIDEuNDMgMCAwIDAtLjg1Mi4yNjJjLS4yNDUuMTcyLS40MzYuNDItLjU3My43NDQtLjEzNC4zMjMtLjIwMS43MTEtLjIwMSAxLjE2MyAwIC40NTcuMDY3Ljg1MS4yIDEuMTguMTM1LjMyNy4zMjMuNTguNTY1Ljc1Ny4yNDUuMTc1LjUzMi4yNjIuODYxLjI2Mi4yMzQgMCAuNDQyLS4wNDMuNjI2LS4xMy4xODYtLjA5MS4zNDItLjIyMS40NjctLjM5LjEyNi0uMTcuMjEyLS4zNzUuMjU4LS42MTdoMS41MTNhMi42MzkgMi42MzkgMCAwIDEtLjQyIDEuMjY0Yy0uMjQxLjM2NC0uNTcuNjUtLjk4OC44NTctLjQxNi4yMDQtLjkwNi4zMDYtMS40NjkuMzA2Wm05LjQ4NS01LjA3Mi0xLjQ0My4xNTdhMS4xNiAxLjE2IDAgMCAwLS4yMTQtLjQxIDEuMDY1IDEuMDY1IDAgMCAwLS40MDItLjMxMSAxLjQ2NiAxLjQ2NiAwIDAgMC0uNjIxLS4xMThjLS4zMyAwLS42MDYuMDcxLS44My4yMTQtLjIyMi4xNDMtLjMzMi4zMjgtLjMyOS41NTZhLjU4MS41ODEgMCAwIDAgLjIxNS40NzZjLjE0OC4xMjMuMzkzLjIyMy43MzQuMzAybDEuMTQ2LjI0NWMuNjM1LjEzNyAxLjEwNy4zNTQgMS40MTYuNjUxLjMxMi4yOTcuNDcuNjg3LjQ3MyAxLjE2OGExLjgyNyAxLjgyNyAwIDAgMS0uMzcyIDEuMTE5Yy0uMjQyLjMyLS41NzkuNTcxLTEuMDEuNzUyLS40MzEuMTgtLjkyNy4yNzEtMS40ODcuMjcxLS44MjIgMC0xLjQ4NC0uMTcyLTEuOTg1LS41MTYtLjUwMS0uMzQ3LS44LS44My0uODk2LTEuNDQ3bDEuNTQzLS4xNDljLjA3LjMwMy4yMTkuNTMyLjQ0Ni42ODcuMjI4LjE1NC41MjMuMjMyLjg4OC4yMzIuMzc2IDAgLjY3OC0uMDc4LjkwNS0uMjMyLjIzLS4xNTUuMzQ1LS4zNDYuMzQ1LS41NzNhLjU5Ni41OTYgMCAwIDAtLjIyMy0uNDc3Yy0uMTQ1LS4xMjUtLjM3My0uMjIxLS42ODItLjI4OGwtMS4xNDUtLjI0Yy0uNjQ0LS4xMzUtMS4xMjEtLjM2LTEuNDMtLjY3OC0uMzEtLjMyMS0uNDYyLS43MjYtLjQ2LTEuMjE2YTEuNzIgMS43MiAwIDAgMSAuMzM4LTEuMDc2Yy4yMy0uMzA2LjU0OS0uNTQyLjk1Ny0uNzA4LjQxMS0uMTcuODg1LS4yNTQgMS40MjEtLjI1NC43ODcgMCAxLjQwNy4xNjggMS44NTguNTAzLjQ1NS4zMzUuNzM3Ljc4OS44NDQgMS4zNloiIGZpbGw9IiMwMDAiLz48cmVjdCB4PSIuOCIgeT0iLjgiIHdpZHRoPSI5NC40IiBoZWlnaHQ9IjI5LjQiIHJ4PSIxNC43IiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS42Ii8+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNi4xMTEgMjIuOTU2YTIuODYyIDIuODYyIDAgMCAxLTMuMzQxLTIuNjM3di04LjcxYTIuMTEgMi4xMSAwIDAgMSAxLjM3Ni0yLjA2NCA2LjU0MiA2LjU0MiAwIDAgMSA3LjEzNiAxLjc4NlYyMy43NmMtMS4xOTgtMS4wMDctMy4yNjgtMS4wNjgtNS4xNy0uODA0Wk0yNi40NTIgMjIuOTU2YTIuODYyIDIuODYyIDAgMCAwIDMuMzQyLTIuNjM3di04LjcxYTIuMTEgMi4xMSAwIDAgMC0xLjM3Ny0yLjA2NCA2LjU0MiA2LjU0MiAwIDAgMC03LjEzNSAxLjc4NlYyMy43NmMxLjE5OC0xLjAwNyAzLjI2Ny0xLjA2OCA1LjE3LS44MDRaIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMi43MjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPjxwYXRoIGQ9Ik0xOC4yNDIgMTYuMTZhLjkxMi45MTIgMCAxIDAgMC0xLjgyNHYxLjgyNFptLTIuNDMyLTEuODI0YS45MTIuOTEyIDAgMCAwIDAgMS44MjR2LTEuODI0Wm0yLjQzMiA0LjI1NmEuOTEyLjkxMiAwIDEgMCAwLTEuODI0djEuODI0Wm0tMi40MzItMS44MjRhLjkxMi45MTIgMCAwIDAgMCAxLjgyNHYtMS44MjRabTEwLjk0NC0uNjA4YS45MTIuOTEyIDAgMSAwIDAtMS44MjR2MS44MjRabS0yLjQzMi0xLjgyNGEuOTEyLjkxMiAwIDAgMCAwIDEuODI0di0xLjgyNFptMi40MzIgNC4yNTZhLjkxMi45MTIgMCAxIDAgMC0xLjgyNHYxLjgyNFptLTIuNDMyLTEuODI0YS45MTIuOTEyIDAgMCAwIDAgMS44MjR2LTEuODI0Wm0tNi4wOC0yLjQzMkgxNS44MXYxLjgyNGgyLjQzMnYtMS44MjRabTAgMi40MzJIMTUuODF2MS44MjRoMi40MzJ2LTEuODI0Wm04LjUxMi0yLjQzMmgtMi40MzJ2MS44MjRoMi40MzJ2LTEuODI0Wm0wIDIuNDMyaC0yLjQzMnYxLjgyNGgyLjQzMnYtMS44MjRaIiBmaWxsPSIjMDAwIi8+PC9nPjxkZWZzPjxjbGlwUGF0aCBpZD0iYSI+PHBhdGggZmlsbD0iI2ZmZiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOS45MiAxLjI0KSIgZD0iTTAgMGgzMS4zNnYyOS43NkgweiIvPjwvY2xpcFBhdGg+PC9kZWZzPjwvc3ZnPg==)}*,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused:hover>.contents>.main>.right>.readMore,.visible,tr.jsoneditor-selected.jsoneditor-first button.jsoneditor-contextmenu-button,tr.jsoneditor-selected.jsoneditor-first button.jsoneditor-dragarea{visibility:visible}.core-styles-module_fixed__pcSol,.fixed{position:fixed}.bottom-0{bottom:0}.left-0{left:0}.m-2{margin:.5rem}.block,.tocCollapsibleContent_vkbj a{display:block}.grid{display:grid}.hidden{display:none}.h-8{height:2rem}.h-\[40px\]{height:40px}.max-h-full{max-height:100%}.min-h-\[120px\]{min-height:120px}.min-h-\[300px\]{min-height:300px}.min-h-\[500px\]{min-height:500px}.w-screen{width:100vw}.min-w-5{min-width:1.25rem}.min-w-\[300px\]{min-width:300px}.max-w-\[332px\]{max-width:332px}.max-w-\[max\(0px\2c calc\(\(100\%_-_40px\)\*999\)\)\]{max-width:max(0px,calc(99900% - 39960px))}.flex-1{flex:1 1 0%}.flex-\[0_0_10\%\]{flex:0 0 10%}.flex-\[0_0_20\%\]{flex:0 0 20%}.flex-\[0_0_70\%\]{flex:0 0 70%}.grid-cols-\[auto_32px\]{grid-template-columns:auto 32px}.grid-rows-\[auto_auto_auto\]{grid-template-rows:auto auto auto}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.gap-3{gap:.75rem}.gap-4{gap:1rem}.divide-x-0>:not([hidden])~:not([hidden]){--tw-divide-x-reverse:0;border-left-width:calc(0px*(1 - var(--tw-divide-x-reverse)));border-right-width:calc(0px*var(--tw-divide-x-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-bottom-width:calc(1px*var(--tw-divide-y-reverse));border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)))}.border-solid,.divide-solid>:not([hidden])~:not([hidden]){border-style:solid}.divide-\[var\(--ifm-color-emphasis-300\)\]>:not([hidden])~:not([hidden]){border-color:var(--ifm-color-emphasis-300)}.self-center{align-self:center}.rounded{border-radius:.25rem}.rounded-md{border-radius:.375rem}.border{border-width:1px}.border-0{border-width:0}.border-2,.hc-black .monaco-editor .parameter-hints-widget,.hc-light .monaco-editor .parameter-hints-widget,.monaco-editor.hc-black .monaco-editor-overlaymessage .message,.monaco-editor.hc-black .suggest-details,.monaco-editor.hc-black .suggest-widget,.monaco-editor.hc-black .tokens-inspect-widget,.monaco-editor.hc-light .monaco-editor-overlaymessage .message,.monaco-editor.hc-light .suggest-details,.monaco-editor.hc-light .suggest-widget,.monaco-editor.hc-light .tokens-inspect-widget{border-width:2px}.border-t-2{border-top-width:2px}.border-\[var\(--ifm-color-primary\)\]{border-color:var(--ifm-color-primary)}.border-gray-400{--tw-border-opacity:1;border-color:rgb(156 163 175/var(--tw-border-opacity))}.border-white{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity))}.border-t-white{--tw-border-opacity:1;border-top-color:rgb(255 255 255/var(--tw-border-opacity))}.bg-\[var\(--docsearch-primary-color\)\]{background-color:var(--docsearch-primary-color)}.bg-transparent,.jsoneditor-search button:hover{background-color:initial}.bg-white\/20{background-color:#fff3}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-\[\#EA336F\]{--tw-gradient-from:#ea336f var(--tw-gradient-from-position);--tw-gradient-to:#ea336f00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.to-\[\#4A01A7\]{--tw-gradient-to:#4a01a7 var(--tw-gradient-to-position)}.object-contain{object-fit:contain}.p-8{padding:2rem}.monaco-tree-type-filter-input .monaco-inputbox>.ibwrapper>.input,.monaco-tree-type-filter-input .monaco-inputbox>.ibwrapper>.mirror,.p-\[2px_4px_2px_4px\]{padding:2px 4px}.px-2{padding-left:.5rem;padding-right:.5rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-6{padding-bottom:1.5rem;padding-top:1.5rem}.monaco-action-bar.vertical,.text-left{text-align:left}.text-center{text-align:center}.text-\[18px\]\/6{font-size:18px;line-height:1.5rem}.text-base\/6{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.font-bold,.monaco-editor .suggest-widget:not(.frozen) .monaco-highlighted-label .highlight,.monaco-editor.hc-black .reference-zone-widget .ref-tree .reference-file,.monaco-editor.hc-light .reference-zone-widget .ref-tree .reference-file{font-weight:700}.font-semibold,.quick-input-list .quick-input-list-separator-as-item .label-name{font-weight:600}.not-italic{font-style:normal}.text-\[var\(--ifm-color-emphasis-0\)\]{color:var(--ifm-color-emphasis-0)}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.\[column-gap\:16px\]{column-gap:16px}.\[grid-area\:button\]{grid-area:c}.\[grid-area\:close\]{grid-area:d}.\[grid-area\:decoration\]{grid-area:e}.\[grid-area\:logo\]{grid-area:f}.\[grid-area\:text\]{grid-area:g}.\[grid-template-areas\:\'logo_close\'_\'text_close\'_\'button_button\'\]{grid-template-areas:"f d" "g d" "c c"}.\[row-gap\:16px\]{row-gap:16px}.iconEdit_Z9Sw{margin-right:.3em;vertical-align:sub}.tag_zVej{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_zVej:hover{--docusaurus-tag-list-border:var(--ifm-link-color);text-decoration:none}.tagRegular_sFm0{border-radius:var(--ifm-global-radius);font-size:90%;padding:.2rem .5rem .3rem}.tagWithCount_h2kH{align-items:center;border-left:0;display:flex;padding:0 .5rem 0 1rem;position:relative}.tagWithCount_h2kH:after,.tagWithCount_h2kH:before{border:1px solid var(--docusaurus-tag-list-border);content:"";position:absolute;top:50%;transition:inherit}.tagWithCount_h2kH:before{border-bottom:0;border-right:0;height:1.18rem;right:100%;transform:translate(50%,-50%) rotate(-45deg);width:1.18rem}.tagWithCount_h2kH:after{border-radius:50%;height:.5rem;left:0;transform:translateY(-50%);width:.5rem}.tagWithCount_h2kH span{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.7rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.string-label)>.contents>.main>.right>.details-label,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label>.monaco-tokenized-source,.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row.focused:not(.string-label)>.contents>.main>.right>.details-label,.monaco-editor .suggest-widget:not(.shows-details) .monaco-list .monaco-list-row.focused>.contents>.main>.right>.details-label,.quick-input-widget.show-checkboxes .quick-input-list .quick-input-list-checkbox,.tags_jXut{display:inline}.tag_QGVx{display:inline-block;margin:0 .4rem .5rem 0}.lastUpdated_vwxv{font-size:smaller;font-style:italic;margin-top:.2rem}.tocCollapsibleButton_TO0P{align-items:center;display:flex;font-size:inherit;justify-content:space-between;padding:.4rem .8rem;width:100%}.DocSearch-Button,.DocSearch-Button-Container{align-items:center;display:flex}.tocCollapsibleButton_TO0P:after{background:var(--ifm-menu-link-sublist-icon) 50% 50%/2rem 2rem no-repeat;content:"";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast);width:1.25rem}.tocCollapsibleButtonExpanded_MG3E:after,.tocCollapsibleExpanded_sAul{transform:none}.tocCollapsible_ETCw{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_vkbj>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);font-size:15px;padding:.2rem 0}.tocCollapsibleContent_vkbj ul li{margin:.4rem .8rem}.tableOfContents_bqdL{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.backToTopButton_sjWU{background-color:var(--ifm-color-emphasis-200);border-radius:50%;bottom:1.3rem;box-shadow:var(--ifm-global-shadow-lw);height:3rem;opacity:0;position:fixed;right:1.3rem;transform:scale(0);transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default);visibility:hidden;width:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1)}.backToTopButton_sjWU:after{background-color:var(--ifm-color-emphasis-1000);content:" ";display:inline-block;height:100%;-webkit-mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;width:100%}.backToTopButtonShow_xfvO{opacity:1;transform:scale(1);visibility:visible}.DocSearch-Button{background:var(--docsearch-searchbox-background);border:0;border-radius:40px;color:var(--docsearch-muted-color);cursor:pointer;font-weight:500;height:36px;justify-content:space-between;padding:0 8px;-webkit-user-select:none;user-select:none}.DocSearch-Button:active,.DocSearch-Button:focus,.DocSearch-Button:hover{background:var(--docsearch-searchbox-focus-background);box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:0}.DocSearch-Search-Icon{stroke-width:1.6}.DocSearch-Hit-Tree,.DocSearch-Hit-action,.DocSearch-Hit-icon,.DocSearch-Reset{stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Button .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{font-size:1rem;padding:0 12px 0 6px}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-gradient);border:0;border-radius:3px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 2px;position:relative;top:-1px;width:20px}.DocSearch-Button-Key--pressed{box-shadow:var(--docsearch-key-pressed-shadow);transform:translate3d(0,1px,0)}.DocSearch--active{overflow:hidden!important}.DocSearch-Container{background-color:var(--docsearch-container-background);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:200}.DocSearch-Container a,.monaco-editor .codelens-decoration>a{text-decoration:none}.DocSearch-Link{appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;font:inherit;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:6px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width);position:relative}.DocSearch-SearchBar{display:flex;padding:var(--docsearch-spacing) var(--docsearch-spacing) 0}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Input{appearance:none;background:#0000;border:0;color:var(--docsearch-text-color);flex:1;font:inherit;font-size:1.2em;height:100%;outline:0;padding:0 0 0 8px;width:80%}.DocSearch-Input::placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::-webkit-search-cancel-button,.DocSearch-Input::-webkit-search-decoration,.DocSearch-Input::-webkit-search-results-button,.DocSearch-Input::-webkit-search-results-decoration{display:none}.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset,div.jsoneditor td,div.jsoneditor th,div.jsoneditor tr{margin:0;padding:0}.DocSearch-Container--Stalled .DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Cancel,.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator,.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset{animation:.1s ease-in forwards j;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;padding:2px;right:0}.DocSearch-Help,.DocSearch-HitsFooter,.DocSearch-Label{color:var(--docsearch-muted-color)}.DocSearch-Reset:hover{color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{height:24px;width:24px}.DocSearch-Dropdown{max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));min-height:var(--docsearch-spacing);overflow-y:auto;overflow-y:overlay;padding:0 var(--docsearch-spacing);scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background);scrollbar-width:thin}.DocSearch-Dropdown::-webkit-scrollbar{width:12px}.DocSearch-Dropdown::-webkit-scrollbar-track{background:#0000}.DocSearch-Dropdown::-webkit-scrollbar-thumb{background-color:var(--docsearch-muted-color);border:3px solid var(--docsearch-modal-background);border-radius:20px}.DocSearch-Dropdown ul{list-style:none;margin:0;padding:0}.DocSearch-Label{font-size:.75em;line-height:1.6em}.DocSearch-Help{font-size:.9em;margin:0;-webkit-user-select:none;user-select:none}.DocSearch-Title{font-size:1.2em}.DocSearch-Logo a,.monaco-action-bar .action-item.action-dropdown-item,.monaco-editor .find-widget.replaceToggled>.replace-part,.monaco-editor .monaco-hover .hover-row,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right,.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar,.quick-input-list .monaco-list-row.focused .quick-input-list-entry-action-bar .action-label,.quick-input-list .monaco-list-row.passive-focused .quick-input-list-entry-action-bar .action-label,.quick-input-list .quick-input-list-entry .quick-input-list-entry-action-bar .action-label.always-visible,.quick-input-list .quick-input-list-entry.focus-inside .quick-input-list-entry-action-bar .action-label,.quick-input-list .quick-input-list-entry:hover .quick-input-list-entry-action-bar .action-label{display:flex}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-left:8px}.DocSearch-Hits:last-of-type{margin-bottom:24px}.DocSearch-Hits mark{background:none;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{display:flex;font-size:.85em;justify-content:center;margin-bottom:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-bottom:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;display:flex;padding-bottom:4px;position:relative}.DocSearch-Hit--deleting{opacity:0;transition:.25s linear}.DocSearch-Hit--favoriting{transform:scale(0);transform-origin:top center;transition:.25s linear .25s}.DocSearch-Hit a{background:var(--docsearch-hit-background);border-radius:4px;box-shadow:var(--docsearch-hit-shadow);display:block;padding-left:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-highlight-color);font-size:.85em;font-weight:600;line-height:32px;margin:0 -4px;padding:8px 4px 0;position:sticky;top:0;z-index:10}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;width:24px}.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-highlight-color)}.DocSearch-Hit[aria-selected=true] mark,.selectr-match{text-decoration:underline}.DocSearch-Hit-Container{align-items:center;color:var(--docsearch-hit-color);display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{height:20px;width:20px}.DocSearch-Hit-action,.DocSearch-Hit-icon{color:var(--docsearch-muted-color)}.DocSearch-Hit-action{align-items:center;display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action,.quick-input-action,.secondary-actions .monaco-action-bar .action-label{margin-left:6px}.DocSearch-Hit-action-button{appearance:none;background:none;border:0;border-radius:50%;color:inherit;cursor:pointer;padding:2px}#__docusaurus-base-url-issue-banner-container,.core-styles-module_noArrow__xock6,.docSidebarContainer_YfHR,.sidebarLogo_isFc,.themedComponent_mlkZ,[data-theme=dark] .lightToggleIcon_pyhR,[data-theme=light] .darkToggleIcon_wfgR,html[data-announcement-bar-initially-dismissed=true] .announcementBar_mb4j,svg.DocSearch-Hit-Select-Icon{display:none}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon,.has-selected .selectr-label,.monaco-action-bar .action-item .codicon,.monaco-action-bar .action-item .icon,.monaco-action-bar.vertical .action-item,.selectr-container.has-selected .selectr-clear,.selectr-container.notice .selectr-notice,.selectr-container.notice .selectr-options-container,.selectr-container.open .selectr-input-container,.selectr-container.open .selectr-options,.selectr-container.open .selectr-options-container,.selectr-input-container.active,.selectr-input-container.active .selectr-clear,.selectr-input-container.active .selectr-input-clear,div.jsoneditor-tree .jsoneditor-button{display:block}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:background-color .1s ease-in}.DocSearch-Hit-action-button:focus path,.DocSearch-Hit-action-button:hover path{fill:#fff}.DocSearch-Hit-content-wrapper{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;line-height:1.2em;margin:0 8px;overflow-x:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;width:80%}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-muted-color);font-size:.75em}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-hit-active-color)!important}.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{font-size:.9em;margin:0 auto;padding:36px 0;text-align:center;width:80%}.DocSearch-Screen-Icon{color:var(--docsearch-muted-color);padding-bottom:12px}.DocSearch-NoResults-Prefill-List{display:inline-block;padding-bottom:24px;text-align:left}.DocSearch-NoResults-Prefill-List ul{display:inline-block;padding:8px 0 0}.DocSearch-NoResults-Prefill-List li{list-style-position:inside;list-style-type:"» "}.DocSearch-Prefill{appearance:none;background:none;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;font-size:1em;font-weight:700;padding:0}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:0;text-decoration:underline}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 8px 8px;box-shadow:var(--docsearch-footer-shadow);display:flex;flex-direction:row-reverse;flex-shrink:0;height:var(--docsearch-footer-height);justify-content:space-between;padding:0 var(--docsearch-spacing);position:relative;-webkit-user-select:none;user-select:none;width:100%;z-index:300}.DocSearch-Commands li,.DocSearch-Commands-Key,.monaco-action-bar .checkbox-action-item,.quick-input-list .quick-input-list-rows>.quick-input-list-row{align-items:center;display:flex}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;list-style:none;margin:0;padding:0}.DocSearch-Commands li:not(:last-of-type){margin-right:.8em}.DocSearch-Commands-Key{background:var(--docsearch-key-gradient);border:0;border-radius:2px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);height:18px;justify-content:center;margin-right:.4em;padding:0 0 1px;width:20px}.DocSearch-VisuallyHiddenForAccessibility{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.DocSearch-Button{margin:0;transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.DocSearch-Container,.skipToContent_fXgn{z-index:calc(var(--ifm-z-index-fixed) + 1)}.skipToContent_fXgn{background-color:var(--ifm-background-surface-color);color:var(--ifm-color-emphasis-900);left:100%;padding:calc(var(--ifm-global-spacing)/2) var(--ifm-global-spacing);position:fixed;top:1rem}.skipToContent_fXgn:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_CVFx{line-height:0;padding:0}.content_knG7{font-size:85%;padding:5px 0;text-align:center}.content_knG7 a{color:inherit;text-decoration:underline}.announcementBar_mb4j{align-items:center;background-color:var(--ifm-color-white);border-bottom:1px solid var(--ifm-color-emphasis-100);color:var(--ifm-color-black);display:flex;height:var(--docusaurus-announcement-bar-height)}.announcementBarPlaceholder_vyr4{flex:0 0 10px}.announcementBarClose_gvF7{align-self:stretch;flex:0 0 30px}.toggle_vylO{height:2rem;width:2rem}.toggleButton_gllP{align-items:center;border-radius:50%;display:flex;height:100%;justify-content:center;transition:background var(--ifm-transition-fast);width:100%}.toggleButton_gllP:hover{background:var(--ifm-color-emphasis-200)}.toggleButtonDisabled_aARS{cursor:not-allowed}.darkNavbarColorModeToggle_X3D1:hover{background:var(--ifm-color-gray-800)}[data-theme=dark] .themedComponent--dark_xIcU,[data-theme=light] .themedComponent--light_NVdE,html:not([data-theme]) .themedComponent--light_NVdE{display:initial}[data-theme=dark]:root{--docusaurus-collapse-button-bg:#ffffff0d;--docusaurus-collapse-button-bg-hover:#ffffff1a}.collapseSidebarButton_PEFL{display:none;margin:0}.iconExternalLink_nPIU{margin-left:.3rem}.docMainContainer_TBSr,.docRoot_UBD9{display:flex;width:100%}.docsWrapper_hBAB{display:flex;flex:1 0 auto}.dropdownNavbarItemMobile_S0Fm,.jsoneditor-anchor,.jsoneditor-modal input,.jsoneditor-modal select,.monaco-component.diff-review .revertButton,.monaco-editor .arrow-revert-change:hover,.monaco-editor .codelens-decoration>a:hover,.monaco-editor .codelens-decoration>a:hover .codicon:before,.monaco-editor .diff-hidden-lines div.breadcrumb-item,.monaco-editor .fold-unchanged,.monaco-editor .lightBulbWidget:hover,.monaco-editor .margin-view-zones .lightbulb-glyph:hover,.monaco-editor .peekview-widget .head .peekview-title.clickable,.monaco-hover a:hover:not(.disabled),.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row{cursor:pointer}.iconLanguage_nlXk{margin-right:5px;vertical-align:text-bottom}@supports selector(:has(*)){.navbarSearchContainer_Bca1:not(:has(>*)){display:none}}.navbarHideable_m1mJ{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_jGov{transform:translate3d(0,calc(-100% - 2px),0)}.errorBoundaryError_a6uf{color:red;white-space:pre-wrap}.errorBoundaryFallback_VBag{color:red;padding:.55rem}.invalidInput_X8vI:focus,.monaco-editor .rename-box .rename-input:focus,.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container[tabindex="0"]:focus,body:not(.navigation-with-keyboard) :not(input):focus,div.jsoneditor-tree :focus{outline:0}.footerLogoLink_BH7S{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.footerLogoLink_BH7S:hover,.hash-link:focus,.jsoneditor-menu a:hover,.minimap.autohide:hover,.monaco-diff-editor.hc-black .delete-sign,.monaco-diff-editor.hc-black .insert-sign,.monaco-diff-editor.hc-light .delete-sign,.monaco-diff-editor.hc-light .insert-sign,.monaco-editor .margin-view-overlays .codicon.alwaysShowFoldIcons,.monaco-editor .margin-view-overlays .codicon.codicon-folding-collapsed,.monaco-editor .margin-view-overlays .codicon.codicon-folding-manual-collapsed,.monaco-editor .margin-view-overlays:hover .codicon,.monaco-editor .minimap.slider-mouseover .minimap-slider.active,.monaco-editor .minimap.slider-mouseover:hover .minimap-slider,.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close:hover,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore:hover,.monaco-editor.hc-black .delete-sign,.monaco-editor.hc-black .insert-sign,.monaco-editor.hc-light .delete-sign,.monaco-editor.hc-light .insert-sign,.quick-input-list .quick-input-list-rows .monaco-highlighted-label>span,:hover>.hash-link{opacity:1}.anchorWithStickyNavbar_LWe7{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorWithHideOnScrollNavbar_WYt5{scroll-margin-top:.5rem}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;user-select:none}.hash-link:before{content:"#"}.mainWrapper_z2l0{display:flex;flex:1 0 auto;flex-direction:column}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{display:flex;flex-direction:column;min-height:100%}.core-styles-module_tooltip__3vRRp{left:0;opacity:0;pointer-events:none;position:absolute;top:0;will-change:opacity}.core-styles-module_arrow__cvMwQ{background:inherit;position:absolute}.core-styles-module_clickable__ZuTTB,.monaco-split-view2>.sash-container>.monaco-sash{pointer-events:auto}.core-styles-module_show__Nt9eE{opacity:var(--rt-opacity);transition:opacity var(--rt-transition-show-delay) ease-out}.core-styles-module_closing__sGnxF{opacity:0;transition:opacity var(--rt-transition-closing-delay) ease-in}.styles-module_tooltip__mnnfp{border-radius:3px;font-size:90%;padding:8px 16px;width:max-content}.styles-module_arrow__K0L3T{height:8px;width:8px}.monaco-workbench .workbench-hover-pointer.bottom:after,.selectr-clear:before,.selectr-input-clear:before,.selectr-tag-remove:before,[class*=react-tooltip__place-top]>.styles-module_arrow__K0L3T{transform:rotate(45deg)}.monaco-workbench .workbench-hover-pointer.left:after,[class*=react-tooltip__place-right]>.styles-module_arrow__K0L3T{transform:rotate(135deg)}.monaco-workbench .workbench-hover-pointer.top:after,[class*=react-tooltip__place-bottom]>.styles-module_arrow__K0L3T{transform:rotate(225deg)}.monaco-workbench .workbench-hover-pointer.right:after,[class*=react-tooltip__place-left]>.styles-module_arrow__K0L3T{transform:rotate(315deg)}.styles-module_dark__xNqje{background:var(--rt-color-dark);color:var(--rt-color-white)}.styles-module_light__Z6W-X{background-color:var(--rt-color-white);color:var(--rt-color-dark)}.styles-module_success__A2AKt{background-color:var(--rt-color-success);color:var(--rt-color-white)}.styles-module_warning__SCK0X{background-color:var(--rt-color-warning);color:var(--rt-color-white)}.styles-module_error__JvumD{background-color:var(--rt-color-error);color:var(--rt-color-white)}.styles-module_info__BWdHW{background-color:var(--rt-color-info);color:var(--rt-color-white)}.jsoneditor,.jsoneditor-modal{-webkit-text-size-adjust:none;text-size-adjust:none}.jsoneditor input,.jsoneditor input:not([type]),.jsoneditor input[type=search],.jsoneditor input[type=text],.jsoneditor-modal input,.jsoneditor-modal input:not([type]),.jsoneditor-modal input[type=search],.jsoneditor-modal input[type=text]{border:inherit;box-shadow:none;box-sizing:inherit;font-family:inherit;font-size:inherit;height:auto;line-height:inherit;padding:inherit;transition:none}.jsoneditor input:focus,.jsoneditor input:not([type]):focus,.jsoneditor input[type=search]:focus,.jsoneditor input[type=text]:focus,.jsoneditor-modal input:focus,.jsoneditor-modal input:not([type]):focus,.jsoneditor-modal input[type=search]:focus,.jsoneditor-modal input[type=text]:focus{border:inherit;box-shadow:inherit}.jsoneditor textarea,.jsoneditor-modal textarea{height:inherit}.jsoneditor select,.jsoneditor-modal select{display:inherit;height:inherit}.jsoneditor label,.jsoneditor-modal label{color:inherit;font-size:inherit;font-weight:inherit}.jsoneditor table,.jsoneditor-modal table{border-collapse:collapse;width:auto}.jsoneditor td,.jsoneditor th,.jsoneditor-modal td,.jsoneditor-modal th{border-radius:inherit;display:table-cell;padding:0;text-align:left;vertical-align:inherit}.jsoneditor .autocomplete.dropdown,.jsoneditor-contextmenu .jsoneditor-menu{background:#fff;border:1px solid #d3d3d3;margin:0;box-shadow:2px 2px 12px #8080804d}.jsoneditor .autocomplete.dropdown{cursor:default;font-family:consolas,menlo,monaco,Ubuntu Mono,source-code-pro,monospace;font-size:14px;outline:0;overflow-x:hidden;overflow-y:auto;padding:5px;position:absolute;text-align:left}.jsoneditor .autocomplete.dropdown .item,div.jsoneditor-value.jsoneditor-color-value,div.jsoneditor-value.jsoneditor-invalid{color:#1a1a1a}.jsoneditor .autocomplete.dropdown .item.hover{background-color:#ebebeb}.jsoneditor .autocomplete.hint{color:#a1a1a1;left:4px;top:4px}.jsoneditor-contextmenu-root{height:0;position:relative;width:0}.jsoneditor-contextmenu{box-sizing:initial;position:absolute;z-index:2}.jsoneditor-contextmenu .jsoneditor-menu{height:auto;left:0;list-style:none;padding:0;position:relative;top:0;width:128px}.jsoneditor-contextmenu .jsoneditor-menu button{background:#0000;border:none;box-sizing:border-box;color:#4d4d4d;cursor:pointer;font-family:arial,sans-serif;font-size:14px;height:auto;margin:0;padding:0 8px 0 0;position:relative;text-align:left;width:128px}.jsoneditor-contextmenu .jsoneditor-menu button::-moz-focus-inner{border:0;padding:0}.jsoneditor-contextmenu .jsoneditor-menu button.jsoneditor-default{width:96px}.jsoneditor-contextmenu .jsoneditor-menu button.jsoneditor-expand{border-left:1px solid #e5e5e5;float:right;height:24px;width:32px}.jsoneditor-contextmenu .jsoneditor-menu li{overflow:hidden}.jsoneditor-contextmenu .jsoneditor-menu li ul{border:none;box-shadow:inset 0 0 10px #80808080;display:none;left:-10px;padding:0 10px;position:relative;top:0;transition:.3s ease-out}.jsoneditor-contextmenu .jsoneditor-menu li ul .jsoneditor-icon{margin-left:24px}.jsoneditor-contextmenu .jsoneditor-menu li ul li button{animation:1s ease-in-out all;padding-left:24px}.jsoneditor-contextmenu .jsoneditor-menu li button .jsoneditor-expand{background-position:0 -72px;margin:0 4px 0 0;right:0}.jsoneditor-contextmenu .jsoneditor-icon,.jsoneditor-contextmenu .jsoneditor-menu li button .jsoneditor-expand{background-image:url(/assets/images/jsoneditor-icons-15f2789dd231f36d43a4839306b3a2cb.svg);height:24px;padding:0;position:absolute;top:0;width:24px}.jsoneditor-contextmenu .jsoneditor-icon{border:none;left:0;margin:0}.jsoneditor-contextmenu .jsoneditor-text{word-wrap:break-word;padding:4px 0 4px 24px}.jsoneditor-contextmenu .jsoneditor-text.jsoneditor-right-margin{padding-right:24px}.jsoneditor-contextmenu .jsoneditor-separator{border-top:1px solid #e5e5e5;height:0;margin-top:5px;padding-top:5px}.jsoneditor-contextmenu button.jsoneditor-remove .jsoneditor-icon{background-position:-24px 0}.jsoneditor-contextmenu button.jsoneditor-append .jsoneditor-icon,.jsoneditor-contextmenu button.jsoneditor-insert .jsoneditor-icon{background-position:0 0}.jsoneditor-contextmenu button.jsoneditor-duplicate .jsoneditor-icon{background-position:-48px 0}.jsoneditor-contextmenu button.jsoneditor-sort-asc .jsoneditor-icon{background-position:-168px 0}.jsoneditor-contextmenu button.jsoneditor-sort-desc .jsoneditor-icon{background-position:-192px 0}.jsoneditor-contextmenu button.jsoneditor-transform .jsoneditor-icon{background-position:-216px 0}.jsoneditor-contextmenu button.jsoneditor-extract .jsoneditor-icon{background-position:0 -24px}.jsoneditor-contextmenu button.jsoneditor-type-string .jsoneditor-icon{background-position:-144px 0}.jsoneditor-contextmenu button.jsoneditor-type-auto .jsoneditor-icon{background-position:-120px 0}.jsoneditor-contextmenu button.jsoneditor-type-object .jsoneditor-icon{background-position:-72px 0}.jsoneditor-contextmenu button.jsoneditor-type-array .jsoneditor-icon{background-position:-96px 0}.jsoneditor-contextmenu button.jsoneditor-type-modes .jsoneditor-icon{background-image:none;width:6px}.jsoneditor-contextmenu li,.jsoneditor-contextmenu ul{box-sizing:initial;position:relative}.jsoneditor-contextmenu .jsoneditor-menu button:focus,.jsoneditor-contextmenu .jsoneditor-menu button:hover{background-color:#f5f5f5;color:#1a1a1a;outline:0}.jsoneditor-contextmenu .jsoneditor-menu li button.jsoneditor-selected,.jsoneditor-contextmenu .jsoneditor-menu li button.jsoneditor-selected:focus,.jsoneditor-contextmenu .jsoneditor-menu li button.jsoneditor-selected:hover{background-color:#ee422e;color:#fff}.jsoneditor-contextmenu .jsoneditor-menu li ul li button:focus,.jsoneditor-contextmenu .jsoneditor-menu li ul li button:hover{background-color:#f5f5f5}.jsoneditor-modal{border-radius:2px!important;box-shadow:2px 2px 12px #8080804d;color:#4d4d4d;line-height:1.3em;max-width:95%;padding:45px 15px 15px!important}.jsoneditor-modal.jsoneditor-modal-transform{width:600px!important}.jsoneditor-modal .pico-modal-header{background:#3883fa;box-sizing:border-box;color:#fff;font-family:arial,sans-serif;font-size:11pt;height:30px;left:0;line-height:30px;padding:0 10px;position:absolute;top:0;width:100%}.jsoneditor-modal .jsoneditor-jmespath-select-fields,.jsoneditor-modal table,.monaco-editor .diff-hidden-lines-widget,.monaco-editor .find-widget .monaco-findInput .monaco-scrollable-element,.monaco-editor .suggest-widget.with-status-bar:not(.docs-side) .monaco-list .monaco-list-row:hover>.contents>.main>.right.can-expand-details>.details-label,.monaco-editor .tokens-inspect-widget .tm-metadata-table,.monaco-progress-container.discrete.done .progress-bit,.monaco-split-view2.vertical>.monaco-scrollable-element>.split-view-container>.split-view-view{width:100%}.jsoneditor-modal table td{padding:3px 0}.jsoneditor-modal table td.jsoneditor-modal-input{padding-right:0;text-align:right;white-space:nowrap}.jsoneditor-modal table td.jsoneditor-modal-actions{padding-top:15px}.jsoneditor-modal a{color:#3883fa}.jsoneditor-modal .jsoneditor-jmespath-block{margin-bottom:10px}.jsoneditor-modal .pico-close{background:none!important;color:#fff;font-size:24px!important;right:7px!important;top:7px!important}.jsoneditor-modal input[type=text],div.jsoneditor-tree div.jsoneditor-color.jsoneditor-color-readonly{cursor:inherit}.jsoneditor-modal input[disabled]{background:#d3d3d3;color:grey}.jsoneditor-modal .jsoneditor-select-wrapper{display:inline-block;position:relative}.jsoneditor-modal .jsoneditor-select-wrapper:after{border-left:5px solid #0000;border-right:5px solid #0000;border-top:6px solid #666;content:"";height:0;pointer-events:none;position:absolute;right:8px;top:14px;width:0}.jsoneditor-modal select{appearance:none;line-height:1.5em;max-width:350px;min-width:180px;text-indent:0;text-overflow:""}.jsoneditor-modal select::-ms-expand{display:none}.jsoneditor-modal .jsoneditor-button-group input{border-left-style:none;border-radius:0;margin:0;padding:4px 10px}.jsoneditor-modal .jsoneditor-button-group input.jsoneditor-button-first{border-bottom-left-radius:3px;border-left-style:solid;border-top-left-radius:3px}.jsoneditor-modal .jsoneditor-button-group input.jsoneditor-button-last{border-bottom-right-radius:3px;border-top-right-radius:3px}.jsoneditor-modal .jsoneditor-transform-preview{background:#f5f5f5;height:200px}.jsoneditor-modal .jsoneditor-transform-preview.jsoneditor-error,a.jsoneditor-value.jsoneditor-url:focus,a.jsoneditor-value.jsoneditor-url:hover,div.jsoneditor-tree div.jsoneditor-show-more a:focus,div.jsoneditor-tree div.jsoneditor-show-more a:hover,div.jsoneditor-value.jsoneditor-number{color:#ee422e}.jsoneditor-modal .jsoneditor-jmespath-wizard{border-radius:3px;line-height:1.2em;padding:0;width:100%}.jsoneditor-modal .jsoneditor-jmespath-label{color:#1e90ff;font-weight:700;margin-bottom:5px;margin-top:20px}.jsoneditor-modal .jsoneditor-jmespath-wizard-table{border-collapse:collapse;width:100%}.jsoneditor-modal .jsoneditor-jmespath-wizard-label{font-style:italic;margin:4px 0 2px}.jsoneditor-modal .jsoneditor-inline{display:inline-block;padding-bottom:2px;padding-top:2px;position:relative;width:100%}.jsoneditor-modal .jsoneditor-inline:not(:last-child){padding-right:2px}.jsoneditor-modal .jsoneditor-jmespath-filter{display:flex;flex-wrap:wrap}.jsoneditor-modal .jsoneditor-jmespath-filter-field{width:180px}.jsoneditor-modal .jsoneditor-jmespath-filter-relation{width:100px}.jsoneditor-modal .jsoneditor-jmespath-filter-value{flex:1;min-width:180px}.jsoneditor-modal .jsoneditor-jmespath-sort-field{width:170px}.jsoneditor-modal .jsoneditor-jmespath-sort-order{width:150px}.jsoneditor-modal .selectr-selected{border-color:#d3d3d3;padding:4px 28px 4px 8px}.jsoneditor-modal .selectr-selected .selectr-tag{background-color:#3883fa;border-radius:5px}.jsoneditor-modal table td,.jsoneditor-modal table th{border-collapse:collapse;border-spacing:0;color:#4d4d4d;font-weight:400;text-align:left;vertical-align:middle}.jsoneditor-modal #query,.jsoneditor-modal input,.jsoneditor-modal input[type=text],.jsoneditor-modal input[type=text]:focus,.jsoneditor-modal select,.jsoneditor-modal textarea{background:#fff;border:1px solid #d3d3d3;border-radius:3px;color:#4d4d4d;padding:4px}.jsoneditor-modal #query,.jsoneditor-modal textarea{border-radius:unset}.jsoneditor-modal,.jsoneditor-modal #query,.jsoneditor-modal input,.jsoneditor-modal input[type=text],.jsoneditor-modal option,.jsoneditor-modal select,.jsoneditor-modal table td,.jsoneditor-modal table th,.jsoneditor-modal textarea{font-family:arial,sans-serif;font-size:10.5pt}.jsoneditor-modal #query,.jsoneditor-modal .jsoneditor-transform-preview{box-sizing:border-box;font-family:consolas,menlo,monaco,Ubuntu Mono,source-code-pro,monospace;font-size:14px;width:100%}.jsoneditor-modal input[type=button],.jsoneditor-modal input[type=submit]{background:#f5f5f5;padding:4px 20px}.jsoneditor-modal .jsoneditor-button-group.jsoneditor-button-group-value-asc input.jsoneditor-button-asc,.jsoneditor-modal .jsoneditor-button-group.jsoneditor-button-group-value-desc input.jsoneditor-button-desc{background:#3883fa;border-color:#3883fa;color:#fff}.jsoneditor{border:thin solid #3883fa;box-sizing:border-box;height:100%;line-height:100%;padding:0;position:relative;width:100%}a.jsoneditor-value,div.jsoneditor-default,div.jsoneditor-field,div.jsoneditor-readonly,div.jsoneditor-value{word-wrap:break-word;border:1px solid #0000;float:left;line-height:16px;margin:1px;min-height:16px;min-width:32px;overflow-wrap:break-word;padding:2px;word-break:break-word}div.jsoneditor-value.jsoneditor-empty:after{content:"value"}div.jsoneditor-value.jsoneditor-string{color:#006000}div.jsoneditor-value.jsoneditor-boolean{color:#ff8c00}div.jsoneditor-value.jsoneditor-null{color:#004ed0}div.jsoneditor-readonly{color:grey;min-width:16px}div.jsoneditor-empty{border-color:#d3d3d3;border-radius:2px;border-style:dashed}div.jsoneditor-field.jsoneditor-empty:after{content:"field"}div.jsoneditor td,div.jsoneditor td.jsoneditor-tree{vertical-align:top}div.jsoneditor td.jsoneditor-separator{color:grey;padding:3px 0;vertical-align:top}div.jsoneditor.busy pre.jsoneditor-preview{background:#f5f5f5;color:grey}.monaco-editor .rename-box.preview .rename-label,.monaco-progress-container.active .progress-bit,div.jsoneditor.busy div.jsoneditor-busy{display:inherit}.ace-jsoneditor .ace_indent-guide,.hc-black .monaco-custom-toggle,.hc-black .monaco-custom-toggle:hover,.hc-light .monaco-custom-toggle,.hc-light .monaco-custom-toggle:hover,.modified-in-monaco-diff-editor.hc-black .slider.active,.modified-in-monaco-diff-editor.hc-light .slider.active,.monaco-scrollable-element.modified-in-monaco-diff-editor.hc-black .scrollbar,.monaco-scrollable-element.modified-in-monaco-diff-editor.hc-light .scrollbar,.quick-input-list .monaco-list-row.focused .monaco-keybinding-key,div.jsoneditor code.jsoneditor-preview{background:none}div.jsoneditor.jsoneditor-mode-preview pre.jsoneditor-preview{box-sizing:border-box;height:100%;margin:0;overflow:auto;padding:2px;white-space:pre-wrap;width:100%;word-break:break-all}div.jsoneditor-default{color:grey;padding-left:10px}div.jsoneditor-tree{background:#fff;height:100%;overflow:auto;position:relative;width:100%}div.jsoneditor-tree button.jsoneditor-button{background-color:initial;background-image:url(/assets/images/jsoneditor-icons-15f2789dd231f36d43a4839306b3a2cb.svg);border:none;cursor:pointer;height:24px;margin:0;padding:0;width:24px}div.jsoneditor-tree button.jsoneditor-button:focus{background-color:#f5f5f5;outline:#e5e5e5 solid 1px}div.jsoneditor-tree button.jsoneditor-collapsed{background-position:0 -48px}div.jsoneditor-tree button.jsoneditor-expanded{background-position:0 -72px}div.jsoneditor-tree button.jsoneditor-contextmenu-button{background-position:-48px -72px}div.jsoneditor-tree button.jsoneditor-invisible{background:none;visibility:hidden}div.jsoneditor-tree button.jsoneditor-dragarea{background-image:url(/assets/images/jsoneditor-icons-15f2789dd231f36d43a4839306b3a2cb.svg);background-position:-72px -72px;cursor:move}div.jsoneditor-tree div.jsoneditor-show-more{background-color:#e5e5e5;border-radius:3px;color:grey;display:inline-block;font-family:arial,sans-serif;font-size:14px;margin:2px 0;padding:3px 4px}div.jsoneditor-tree div.jsoneditor-show-more a{color:grey;display:inline-block}div.jsoneditor-tree div.jsoneditor-color{border:1px solid grey;cursor:pointer;display:inline-block;height:12px;margin:4px;width:12px}div.jsoneditor-tree div.jsoneditor-date{background:#a1a1a1;border-radius:3px;color:#fff;display:inline-block;font-family:arial,sans-serif;margin:0 3px;padding:3px}div.jsoneditor-tree table.jsoneditor-tree{border-collapse:collapse;border-spacing:0;width:100%}div.jsoneditor-tree .jsoneditor-button.jsoneditor-schema-error{background-color:initial;background-image:url(/assets/images/jsoneditor-icons-15f2789dd231f36d43a4839306b3a2cb.svg);background-position:-168px -48px;height:24px;margin:0 4px 0 0;padding:0;width:24px}div.jsoneditor-outer{box-sizing:border-box;height:100%;margin:0;padding:0;position:static;width:100%}div.jsoneditor-outer.has-nav-bar{margin-top:-26px;padding-top:26px}div.jsoneditor-outer.has-nav-bar.has-main-menu-bar{margin-top:-61px;padding-top:61px}div.jsoneditor-outer.has-status-bar{margin-bottom:-26px;padding-bottom:26px}div.jsoneditor-outer.has-main-menu-bar{margin-top:-35px;padding-top:35px}div.jsoneditor-busy{box-sizing:border-box;display:none;left:0;position:absolute;text-align:center;top:15%;width:100%}div.jsoneditor-busy span{background-color:#ffffab;border:1px solid #fe0;border-radius:3px;box-shadow:0 0 5px #0006;padding:5px 15px}div.jsoneditor-field.jsoneditor-empty:after,div.jsoneditor-value.jsoneditor-empty:after{color:#d3d3d3;font-size:8pt;pointer-events:none}a.jsoneditor-value.jsoneditor-url,div.jsoneditor-value.jsoneditor-url{color:#006000;text-decoration:underline}a.jsoneditor-value.jsoneditor-url{display:inline-block;margin:2px;padding:2px}div.jsoneditor-field.jsoneditor-highlight,div.jsoneditor-field[contenteditable=true]:focus,div.jsoneditor-field[contenteditable=true]:hover,div.jsoneditor-value.jsoneditor-highlight,div.jsoneditor-value[contenteditable=true]:focus,div.jsoneditor-value[contenteditable=true]:hover{background-color:#ffffab;border:1px solid #fe0;border-radius:2px}div.jsoneditor-field.jsoneditor-highlight-active,div.jsoneditor-field.jsoneditor-highlight-active:focus,div.jsoneditor-field.jsoneditor-highlight-active:hover,div.jsoneditor-value.jsoneditor-highlight-active,div.jsoneditor-value.jsoneditor-highlight-active:focus,div.jsoneditor-value.jsoneditor-highlight-active:hover{background-color:#fe0;border:1px solid #ffc700;border-radius:2px}div.jsoneditor-value.jsoneditor-array,div.jsoneditor-value.jsoneditor-object{min-width:16px}div.jsoneditor-tree button.jsoneditor-contextmenu-button.jsoneditor-selected,div.jsoneditor-tree button.jsoneditor-contextmenu-button:focus,div.jsoneditor-tree button.jsoneditor-contextmenu-button:hover,tr.jsoneditor-selected.jsoneditor-first button.jsoneditor-contextmenu-button{background-position:-48px -48px}.ace-jsoneditor,textarea.jsoneditor-text{min-height:150px}.ace-jsoneditor.ace_editor,textarea.jsoneditor-text.ace_editor{font-family:consolas,menlo,monaco,Ubuntu Mono,source-code-pro,monospace}textarea.jsoneditor-text{background-color:#fff;border:none;box-sizing:border-box;height:100%;margin:0;outline-width:0;resize:none;width:100%}tr.jsoneditor-highlight,tr.jsoneditor-selected{background-color:#d3d3d3}.monaco-custom-toggle.monaco-checkbox:not(.checked):before,tr.jsoneditor-selected button.jsoneditor-contextmenu-button,tr.jsoneditor-selected button.jsoneditor-dragarea{visibility:hidden}div.jsoneditor-tree button.jsoneditor-dragarea:focus,div.jsoneditor-tree button.jsoneditor-dragarea:hover,tr.jsoneditor-selected.jsoneditor-first button.jsoneditor-dragarea{background-position:-72px -48px}.jsoneditor-popover,.jsoneditor-schema-error,div.jsoneditor td,div.jsoneditor textarea,div.jsoneditor th,div.jsoneditor-field,div.jsoneditor-value,pre.jsoneditor-preview{color:#1a1a1a;font-family:consolas,menlo,monaco,Ubuntu Mono,source-code-pro,monospace;font-size:14px}.jsoneditor-schema-error{cursor:default;display:inline-block;height:24px;line-height:24px;position:relative;text-align:center;width:24px}.jsoneditor-popover{background-color:#4c4c4c;border-radius:3px;box-shadow:0 0 5px #0006;color:#fff;cursor:auto;padding:7px 10px;position:absolute;width:200px}.jsoneditor-popover.jsoneditor-above{bottom:32px;left:-98px}.jsoneditor-popover.jsoneditor-above:before{border-top:7px solid #4c4c4c;bottom:-7px}.jsoneditor-popover.jsoneditor-below{left:-98px;top:32px}.jsoneditor-popover.jsoneditor-below:before{border-bottom:7px solid #4c4c4c;top:-7px}.jsoneditor-popover.jsoneditor-left:before,.jsoneditor-popover.jsoneditor-right:before{border-bottom:7px solid #0000;border-top:7px solid #0000;margin-left:inherit;margin-top:-7px;top:19px;position:absolute;content:""}.jsoneditor-popover.jsoneditor-left{right:32px;top:-7px}.jsoneditor-popover.jsoneditor-left:before{border-left:7px solid #4c4c4c;left:inherit;right:-14px}.jsoneditor-popover.jsoneditor-right{left:32px;top:-7px}.jsoneditor-popover.jsoneditor-right:before{border-right:7px solid #4c4c4c;left:-14px}.jsoneditor-popover:before{border-left:7px solid #0000;border-right:7px solid #0000;content:"";display:block;left:50%;margin-left:-7px;position:absolute}.jsoneditor-text-errors tr.jump-to-line:hover,.jsoneditor-treepath span.jsoneditor-treepath-element:hover,.jsoneditor-treepath span.jsoneditor-treepath-seperator:hover{cursor:pointer;text-decoration:underline}.jsoneditor-schema-error:focus .jsoneditor-popover,.jsoneditor-schema-error:hover .jsoneditor-popover{animation:.3s linear j,.3s linear move-up;display:block}.jsoneditor .jsoneditor-validation-errors-container{max-height:130px;overflow-y:auto}.jsoneditor .jsoneditor-validation-errors{overflow:hidden;width:100%}.jsoneditor .jsoneditor-additional-errors{background-color:#ebebeb;border-radius:8px;bottom:31px;color:grey;left:calc(50% - 92px);margin:auto;padding:7px 15px;position:absolute}.jsoneditor .jsoneditor-additional-errors.visible{opacity:1;transition:opacity 2s linear;visibility:visible}.jsoneditor .jsoneditor-additional-errors.hidden{opacity:0;transition:visibility 0s 2s,opacity 2s linear;visibility:hidden}.jsoneditor .jsoneditor-text-errors{border-collapse:collapse;border-top:1px solid #ffc700;width:100%}.jsoneditor .jsoneditor-text-errors td{padding:3px 6px;vertical-align:middle}.jsoneditor .jsoneditor-text-errors td pre{margin:0;white-space:pre-wrap}.jsoneditor .jsoneditor-text-errors tr{background-color:#ffffab}.jsoneditor .jsoneditor-text-errors tr.parse-error{background-color:rgba(238,46,46,.439)}.jsoneditor-menu>.jsoneditor-modes>button,.jsoneditor-menu>button,.jsoneditor-text-errors tr .jsoneditor-schema-error,.jsoneditor-text-errors tr.parse-error .jsoneditor-schema-error{background-color:initial;background-image:url(/assets/images/jsoneditor-icons-15f2789dd231f36d43a4839306b3a2cb.svg)}.jsoneditor-text-errors .jsoneditor-schema-error{border:none;cursor:pointer;height:24px;margin:0 4px 0 0;padding:0;width:24px}.jsoneditor-text-errors tr .jsoneditor-schema-error{background-position:-168px -48px}.jsoneditor-text-errors tr.parse-error .jsoneditor-schema-error{background-position:-25px 0}.jsoneditor-anchor .picker_wrapper.popup.popup_bottom{left:-10px;top:28px}.fadein{animation:.3s l;-moz-animation:.3s l;-o-animation:.3s l}.jsoneditor-modal input[type=search].selectr-input{border:1px solid #d3d3d3;box-sizing:border-box;margin:2px;padding:4px;width:calc(100% - 4px)}.jsoneditor-modal button.selectr-input-clear{right:8px}.jsoneditor-menu{background-color:#3883fa;border-bottom:1px solid #3883fa;box-sizing:border-box;color:#fff;height:35px;margin:0;padding:2px;width:100%}.jsoneditor-menu>.jsoneditor-modes>button,.jsoneditor-menu>button{border:1px solid #0000;border-radius:2px;color:#fff;float:left;font-family:arial,sans-serif;font-size:14px;height:26px;margin:2px;opacity:.8;padding:0;width:26px}.jsoneditor-menu>.jsoneditor-modes>button:hover,.jsoneditor-menu>button:hover{background-color:#fff3;border:1px solid #fff6}.jsoneditor-menu>.jsoneditor-modes>button:active,.jsoneditor-menu>.jsoneditor-modes>button:focus,.jsoneditor-menu>button:active,.jsoneditor-menu>button:focus{background-color:#ffffff4d}.jsoneditor-menu>.jsoneditor-modes>button:disabled,.jsoneditor-menu>button:disabled{background-color:initial;border:none;opacity:.5}.jsoneditor-menu>button.jsoneditor-collapse-all{background-position:0 -96px}.jsoneditor-menu>button.jsoneditor-expand-all{background-position:0 -120px}.jsoneditor-menu>button.jsoneditor-sort{background-position:-120px -96px}.jsoneditor-menu>button.jsoneditor-transform{background-position:-144px -96px}.has-selected .selectr-placeholder,.jsoneditor-treepath.show-all span.jsoneditor-treepath-show-all-btn,.jsoneditor.jsoneditor-mode-form>.jsoneditor-menu>button.jsoneditor-sort,.jsoneditor.jsoneditor-mode-form>.jsoneditor-menu>button.jsoneditor-transform,.jsoneditor.jsoneditor-mode-view>.jsoneditor-menu>button.jsoneditor-sort,.jsoneditor.jsoneditor-mode-view>.jsoneditor-menu>button.jsoneditor-transform,.selectr-clear,.selectr-desktop.multiple .selectr-visible,.selectr-empty,.selectr-input-clear,.selectr-option.excluded,.taggable .selectr-placeholder{display:none}.jsoneditor-menu>button.jsoneditor-undo{background-position:-24px -96px}.jsoneditor-menu>button.jsoneditor-undo:disabled{background-position:-24px -120px}.jsoneditor-menu>button.jsoneditor-redo{background-position:-48px -96px}.jsoneditor-menu>button.jsoneditor-redo:disabled{background-position:-48px -120px}.jsoneditor-menu>button.jsoneditor-compact{background-position:-72px -96px}.jsoneditor-menu>button.jsoneditor-format{background-position:-72px -120px}.jsoneditor-menu>button.jsoneditor-repair{background-position:-96px -96px}.jsoneditor-menu>.jsoneditor-modes{display:inline-block;float:left}.jsoneditor-menu>.jsoneditor-modes>button{background-image:none;padding-left:6px;padding-right:6px;width:auto}.jsoneditor-menu>.jsoneditor-modes>button.jsoneditor-separator,.jsoneditor-menu>button.jsoneditor-separator,.quick-input-widget.show-checkboxes .quick-input-list .quick-input-list-rows{margin-left:10px}.jsoneditor-menu a{color:#fff;font-family:arial,sans-serif;font-size:14px;opacity:.8;vertical-align:middle}.jsoneditor-menu a.jsoneditor-poweredBy{font-size:8pt;padding:10px;position:absolute;right:0;top:0}.jsoneditor-navigation-bar{background-color:#ebebeb;border-bottom:1px solid #d3d3d3;box-sizing:border-box;color:grey;font-family:arial,sans-serif;font-size:14px;height:26px;line-height:26px;margin:0;overflow:hidden;padding:0;width:100%}.jsoneditor-search{border-collapse:collapse;border-spacing:0;display:flex;font-family:arial,sans-serif;position:absolute;right:4px;top:4px}.jsoneditor-search input{border:none;color:#1a1a1a;font-family:arial,sans-serif;line-height:20px;margin:1px;outline:0;width:120px}.jsoneditor-search button{background:url(/assets/images/jsoneditor-icons-15f2789dd231f36d43a4839306b3a2cb.svg);border:none;height:24px;margin:0;padding:0;vertical-align:top;width:16px}.jsoneditor-search button.jsoneditor-refresh{background-position:-99px -73px;width:18px}.jsoneditor-search button.jsoneditor-next{background-position:-124px -73px;cursor:pointer}.jsoneditor-search button.jsoneditor-next:hover{background-position:-124px -49px}.jsoneditor-search button.jsoneditor-previous{background-position:-148px -73px;cursor:pointer;margin-right:2px}.jsoneditor-search button.jsoneditor-previous:hover{background-position:-148px -49px}.jsoneditor-results{color:#fff;font-family:arial,sans-serif;line-height:26px;padding-right:5px}.jsoneditor-frame{background-color:#fff;border:1px solid #0000;margin:0;padding:0 2px}.jsoneditor-statusbar{background-color:#ebebeb;border-top:1px solid #d3d3d3;box-sizing:border-box;color:grey;font-size:14px;height:26px;line-height:26px}.jsoneditor-statusbar>.jsoneditor-curserinfo-val{margin-right:12px}.jsoneditor-statusbar>.jsoneditor-curserinfo-count,.monaco-tree-type-filter-actionbar{margin-left:4px}.jsoneditor-statusbar>.jsoneditor-validation-error-icon{background-image:url(/assets/images/jsoneditor-icons-15f2789dd231f36d43a4839306b3a2cb.svg);background-position:-168px -48px;cursor:pointer;float:right;height:24px;margin-top:1px;padding:0;width:24px}.jsoneditor-statusbar>.jsoneditor-validation-error-count{cursor:pointer;float:right;margin:0 4px 0 0}.jsoneditor-statusbar>.jsoneditor-parse-error-icon{background-image:url(/assets/images/jsoneditor-icons-15f2789dd231f36d43a4839306b3a2cb.svg);background-position:-25px 0;float:right;height:24px;margin:1px;padding:0;width:24px}div.jsoneditor-statusbar>.jsoneditor-curserinfo-label,div.jsoneditor-statusbar>.jsoneditor-size-info{margin:0 4px}.jsoneditor-treepath{outline:0;overflow:hidden;padding:0 5px;white-space:nowrap}.jsoneditor-treepath.show-all{word-wrap:break-word;background-color:#ebebeb;box-shadow:2px 2px 12px #8080804d;position:absolute;white-space:normal;z-index:1}.imagePreviewDescriptionContainer_H4hc code,.monaco-editor .suggest-preview-additional-widget,.monaco-editor .view-lines,.monaco-icon-label.nowrap>.monaco-icon-label-container>.monaco-icon-description-container>.label-description,.monaco-inputbox>.ibwrapper>textarea.input.empty,.selectr-label{white-space:nowrap}.jsoneditor-treepath div.jsoneditor-contextmenu-root{left:0;position:absolute}.jsoneditor-treepath .jsoneditor-treepath-show-all-btn{background-color:#ebebeb;cursor:pointer;height:20px;left:0;padding:0 3px;position:absolute}.jsoneditor-treepath .jsoneditor-treepath-element{font-family:arial,sans-serif;font-size:14px;margin:1px}.jsoneditor-treepath .jsoneditor-treepath-seperator{font-family:arial,sans-serif;font-size:9pt;margin:2px}.monaco-findInput,.quick-input-progress.monaco-progress-container,.selectr-container{position:relative}.containsTaskList_mC6p,.selectr-container li{list-style:none}.selectr-hidden{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.selectr-visible{height:100%;left:0;opacity:0;position:absolute;top:0;width:100%;z-index:11}.selectr-desktop.multiple.native-open .selectr-visible{display:block;height:auto;min-height:200px!important;opacity:1;top:100%}.selectr-container.multiple.selectr-mobile .selectr-selected{z-index:0}.selectr-selected{background-color:#fff;border:1px solid #999;border-radius:3px;box-sizing:border-box;cursor:pointer;padding:7px 28px 7px 14px;position:relative;width:100%;z-index:1}.selectr-selected:before{border-color:#6c7a86 #0000 #0000;border-style:solid;border-width:4px 4px 0;content:"";height:0;position:absolute;right:10px;top:50%;transform:rotate(0) translate3d(0,-50%,0);width:0}.selectr-container.native-open .selectr-selected:before,.selectr-container.open .selectr-selected:before{border-color:#0000 #0000 #6c7a86;border-style:solid;border-width:0 4px 4px}.selectr-label{display:none;overflow:hidden;text-overflow:ellipsis;width:100%}.selectr-placeholder{color:#6c7a86}.selectr-tags{margin:0;padding:0;white-space:normal}.has-selected .selectr-tags{margin:0 0 -2px}.selectr-tag{background:#acb7bf;border:none;border-radius:10px;color:#fff;cursor:default;float:left;list-style:none;margin:0 2px 2px 0;padding:2px 25px 2px 8px;position:relative}.selectr-container.multiple.has-selected .selectr-selected{padding:5px 28px 5px 5px}.selectr-options-container{background-color:#fff;border:1px solid #999;border-radius:0 0 3px 3px;border-top:0 solid #0000;box-sizing:border-box;display:none;left:0;position:absolute;top:calc(100% - 1px);width:100%;z-index:10000}.selectr-input-container{display:none;position:relative}.selectr-clear,.selectr-input-clear,.selectr-tag-remove{background-color:initial;border:none;cursor:pointer;height:20px;padding:0;position:absolute;right:22px;top:50%;transform:translate3d(0,-50%,0);width:20px;z-index:11}.selectr-selected .selectr-tag-remove{right:2px}.selectr-clear:after,.selectr-clear:before,.selectr-input-clear:after,.selectr-input-clear:before,.selectr-tag-remove:after,.selectr-tag-remove:before{background-color:#6c7a86;content:" ";height:10px;left:9px;position:absolute;top:5px;width:2px}.selectr-tag-remove:after,.selectr-tag-remove:before{background-color:#fff;height:12px;top:4px;width:3px}.selectr-clear:after,.selectr-input-clear:after,.selectr-tag-remove:after{transform:rotate(-45deg)}.selectr-input{border:1px solid #999;border-radius:3px;box-sizing:border-box;left:5px;margin:10px 15px;padding:7px 30px 7px 9px;top:5px;width:calc(100% - 30px)}.selectr-notice{background-color:#fff;border-radius:0 0 3px 3px;border-top:1px solid #999;box-sizing:border-box;display:none;padding:8px 16px;width:100%}.input-tag,.taggable .selectr-label{width:auto}.selectr-container.notice .selectr-selected{border-radius:3px 3px 0 0}.selectr-options{display:none;margin:0;max-height:200px;overflow-x:auto;overflow-y:scroll;padding:0;position:relative;top:calc(100% + 2px)}.selectr-option{cursor:pointer;display:block;font-weight:400;list-style:none;padding:5px 20px;position:relative}.selectr-options.optgroups>.selectr-option{padding-left:25px}.selectr-optgroup{font-weight:700;padding:0}.selectr-optgroup--label{font-weight:700;margin-top:10px;padding:5px 15px}.selectr-option.selected{background-color:#ddd}.selectr-option.active{background-color:#5897fb;color:#fff}.codicon-modifier-disabled,.selectr-option.disabled{opacity:.4}.selectr-container.open .selectr-selected{border-color:#999 #999 #0000;border-radius:3px 3px 0 0}.selectr-container.open .selectr-selected:after{transform:rotate(180deg) translate3d(0,50%,0)}.monaco-editor .marker-widget .descriptioncontainer .message .source,.monaco-editor .marker-widget .descriptioncontainer .message span.code,.monaco-editor .monaco-hover .hover-row .verbosity-actions .codicon.disabled,.selectr-disabled{opacity:.6}.taggable .selectr-selected{padding:4px 28px 4px 4px}.taggable .selectr-selected:after{clear:both;content:" ";display:table}.taggable .selectr-tags{display:block;float:left}.input-tag{float:left;min-width:90px}.selectr-tag-input{border:none;font-family:inherit;font-size:inherit;font-weight:inherit;padding:3px 10px;width:100%}.selectr-input-container.loading:after{animation:.5s linear infinite forwards a;border:3px solid #ddd;border-radius:50%;border-top-color:#aaa;content:"";height:20px;position:absolute;right:20px;top:50%;transform:translate3d(0,-50%,0);transform-origin:50% 0 0;width:20px}@keyframes a{0%{transform:rotate(0) translate3d(0,-50%,0)}to{transform:rotate(1turn) translate3d(0,-50%,0)}}.selectr-container.open.inverted .selectr-selected{border-color:#0000 #999 #999;border-radius:0 0 3px 3px}.selectr-container.inverted .selectr-options-container{background-color:#fff;border-color:#999 #999 #0000;border-radius:3px 3px 0 0;border-width:1px 1px 0;bottom:calc(100% - 1px);top:auto}.selectr-container ::placeholder{color:#6c7a86;opacity:1}.jsoneditor{color:none}.quick-input-list .monaco-list-row,div.jsoneditor{border-radius:3px}div.jsoneditor,div.jsoneditor-menu{border-color:#4b4b4b;color:#fcf5f5}div.jsoneditor-menu{background-color:#4b4b4b}[data-theme=dark] .ace_editor{color:#6c6783;font-size:16px}[data-theme=light] .ace_editor{color:#000;font-size:16px}[data-theme=dark] .ace_editor .ace_gutter{background:#2a2734;color:#6c6783}[data-theme=light] .ace_editor .ace_gutter{background:#fff;color:#616161}[data-theme=dark] .ace_content{background-color:#2a2734}[data-theme=light] .ace_content{background-color:#fff}[data-theme=dark] .ace_content .ace_variable{color:#9a86fd}[data-theme=light] .ace_content .ace_variable{color:#6f54fa}[data-theme=dark] .ace_line{color:#6c6783}[data-theme=light] .ace_line{color:#616161}[data-theme=dark] .ace_editor .ace_content .ace_string{color:#fc9}[data-theme=light] .ace_editor .ace_content .ace_string{color:#f93}.ace_editor .ace_content .ace_numeric,[data-theme=dark] .ace_editor .ace_content .ace_bool{color:#e09142}.ace_editor .ace_content .ace_numeric,[data-theme=light] .ace_editor .ace_content .ace_bool{color:#e07000}[data-theme=dark] .ace-jsoneditor .ace_gutter-active-line,[data-theme=dark] .ace-jsoneditor .ace_marker-layer .ace_active-line{background-color:#3e3a4c;color:#6c6783}[data-theme=light] .ace-jsoneditor .ace_gutter-active-line,[data-theme=light] .ace-jsoneditor .ace_marker-layer .ace_active-line{background-color:#ebebeb;color:#6c6783}[data-theme=dark] .ace_content .ace_cursor{border-color:#949494}[data-theme=light] .ace_content .ace_cursor{border-color:#000}[data-theme=dark] .ace_editor .ace_marker-layer .ace_selection{background:#625e71}[data-theme=light] .ace_editor .ace_marker-layer .ace_selection{background:#dedede}.ace-jsoneditor .ace_marker-layer .ace_selected-word,.ace_editor .ace_ .ace_editor .ace_marker-layer .ace_selected-word{border:none}.monaco-editor.hc-black .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-editor.hc-light .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-menu .monaco-action-bar.vertical .action-item .action-menu-item:focus .action-label{stroke-width:1.2px}.monaco-aria-container{clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;top:0;width:1px;left:-999em}.monaco-diff-editor .synthetic-focus,.monaco-diff-editor [tabindex="-1"]:focus,.monaco-diff-editor [tabindex="0"]:focus,.monaco-diff-editor button:focus,.monaco-diff-editor input[type=button]:focus,.monaco-diff-editor input[type=checkbox]:focus,.monaco-diff-editor input[type=search]:focus,.monaco-diff-editor input[type=text]:focus,.monaco-diff-editor select:focus,.monaco-diff-editor textarea:focus,.monaco-editor{opacity:1;outline-color:var(--vscode-focusBorder);outline-offset:-1px;outline-style:solid;outline-width:1px}::-ms-clear{display:none}.monaco-editor{--monaco-monospace-font:"SF Mono",Monaco,Menlo,Consolas,"Ubuntu Mono","Liberation Mono","DejaVu Sans Mono","Courier New",monospace;font-family:-apple-system,BlinkMacSystemFont,Segoe WPC,Segoe UI,HelveticaNeue-Light,system-ui,Ubuntu,Droid Sans,sans-serif;-webkit-text-size-adjust:100%;color:var(--vscode-editor-foreground);overflow:visible;position:relative}.monaco-editor,.monaco-editor-background{background-color:var(--vscode-editor-background)}.monaco-editor .rangeHighlight{background-color:var(--vscode-editor-rangeHighlightBackground);border:1px solid var(--vscode-editor-rangeHighlightBorder);box-sizing:border-box}.monaco-editor.hc-black .focused .selectionHighlight,.monaco-editor.hc-black .rangeHighlight,.monaco-editor.hc-black .symbolHighlight,.monaco-editor.hc-black .wordHighlight,.monaco-editor.hc-black .wordHighlightStrong,.monaco-editor.hc-black .wordHighlightText,.monaco-editor.hc-light .focused .selectionHighlight,.monaco-editor.hc-light .rangeHighlight,.monaco-editor.hc-light .symbolHighlight,.monaco-editor.hc-light .wordHighlight,.monaco-editor.hc-light .wordHighlightStrong,.monaco-editor.hc-light .wordHighlightText{border-style:dotted}.monaco-editor .symbolHighlight{background-color:var(--vscode-editor-symbolHighlightBackground);border:1px solid var(--vscode-editor-symbolHighlightBorder);box-sizing:border-box}.monaco-editor .overflow-guard{overflow:hidden;position:relative}.monaco-editor .cursors-layer,.monaco-editor .glyph-margin,.monaco-editor .view-overlays{position:absolute;top:0}.monaco-editor .margin-view-overlays>div,.monaco-editor .view-line,.monaco-editor .view-overlays>div{position:absolute;width:100%}.monaco-editor .squiggly-error{border-bottom:4px double var(--vscode-editorError-border)}.monaco-editor .squiggly-error:before{background:var(--vscode-editorError-background);content:"";display:block;height:100%;width:100%}.monaco-editor .squiggly-warning{border-bottom:4px double var(--vscode-editorWarning-border)}.monaco-editor .squiggly-warning:before{background:var(--vscode-editorWarning-background);content:"";display:block;height:100%;width:100%}.monaco-editor .squiggly-info{border-bottom:4px double var(--vscode-editorInfo-border)}.monaco-editor .squiggly-info:before{background:var(--vscode-editorInfo-background);content:"";display:block;height:100%;width:100%}.monaco-editor .squiggly-hint{border-bottom:2px dotted var(--vscode-editorHint-border)}.monaco-editor.showUnused .squiggly-unnecessary{border-bottom:2px dashed var(--vscode-editorUnnecessaryCode-border)}.monaco-editor.showDeprecated .squiggly-inline-deprecated{text-decoration:line-through;text-decoration-color:var(--vscode-editor-foreground,inherit)}.monaco-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.monaco-scrollable-element>.visible{background:#0000;opacity:1;transition:opacity .1s linear;z-index:11}.monaco-scrollable-element>.invisible{opacity:0;pointer-events:none}.monaco-scrollable-element>.invisible.fade{transition:opacity .8s linear}.monaco-scrollable-element>.shadow{display:none;position:absolute}.monaco-scrollable-element>.shadow.top{box-shadow:var(--vscode-scrollbar-shadow) 0 6px 6px -6px inset;display:block;height:3px;left:3px;top:0;width:100%}.monaco-scrollable-element>.shadow.left,.monaco-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow) 6px 0 6px -6px inset}.monaco-scrollable-element>.shadow.left{display:block;height:100%;left:0;top:3px;width:3px}.monaco-scrollable-element>.shadow.top-left-corner{display:block;height:3px;left:0;top:0;width:3px}.monaco-diff-editor .diffViewport,.monaco-scrollable-element>.scrollbar>.slider{background:var(--vscode-scrollbarSlider-background)}.monaco-diff-editor .diffViewport:hover,.monaco-scrollable-element>.scrollbar>.slider:hover{background:var(--vscode-scrollbarSlider-hoverBackground)}.monaco-diff-editor .diffViewport:active,.monaco-scrollable-element>.scrollbar>.slider.active{background:var(--vscode-scrollbarSlider-activeBackground)}.monaco-editor .inputarea{background-color:initial;border:none;color:#0000;margin:0;min-height:0;min-width:0;outline:0!important;overflow:hidden;padding:0;position:absolute;resize:none;z-index:-10}.monaco-editor .inputarea.ime-input{caret-color:var(--vscode-editorCursor-foreground);color:var(--vscode-editor-foreground);z-index:10}.monaco-editor .margin-view-overlays .line-numbers{bottom:0;box-sizing:border-box;cursor:default;display:inline-block;font-variant-numeric:tabular-nums;position:absolute;text-align:right;vertical-align:middle}.monaco-editor .relative-current-line-number{display:inline-block;text-align:left;width:100%}.monaco-editor .margin-view-overlays .line-numbers.lh-odd{margin-top:1px}.monaco-editor .line-numbers{color:var(--vscode-editorLineNumber-foreground)}.monaco-editor .mtkw,.monaco-editor .mtkz,.monaco-editor .mwh{color:var(--vscode-editorWhitespace-foreground)!important}.monaco-editor .line-numbers.active-line-number{color:var(--vscode-editorLineNumber-activeForeground)}.monaco-editor .margin{background-color:var(--vscode-editorGutter-background)}.monaco-mouse-cursor-text{cursor:text}.monaco-editor .blockDecorations-container{pointer-events:none;position:absolute;top:0}.monaco-editor .blockDecorations-block{box-sizing:border-box;position:absolute}.monaco-editor .margin-view-overlays .current-line,.monaco-editor .view-overlays .current-line{box-sizing:border-box;display:block;height:100%;left:0;position:absolute;top:0}.monaco-editor +.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}body,ol ol,ol ul,ul ol,ul ul{margin:0}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,code{vertical-align:middle}.button--outline.button--active,.button--outline:active,.button--outline:hover,:root{--ifm-button-color:var(--ifm-font-color-base-inverse)}.menu__link:hover,a{transition:color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.navbar--dark,:root{--ifm-navbar-link-hover-color:var(--ifm-color-primary)}.menu,.navbar-sidebar{overflow-x:hidden}:root,html[data-theme=dark]{--ifm-color-emphasis-500:var(--ifm-color-gray-500)}*,.DocSearch-Container,.DocSearch-Container *{box-sizing:border-box}.toggleButton_gllP,html{-webkit-tap-highlight-color:transparent}.codicon[class*=codicon-],.monaco-icon-label:before{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:#0000;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:0.4rem;--ifm-hover-overlay:#0000000d;--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:200ms;--ifm-transition-slow:400ms;--ifm-transition-timing-default:cubic-bezier(0.08,0.52,0.52,1);--ifm-global-shadow-lw:0 1px 2px 0 #0000001a;--ifm-global-shadow-md:0 5px 40px #0003;--ifm-global-shadow-tl:0 12px 28px 0 #0003,0 2px 4px 0 #0000001a;--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:0.1rem;--ifm-code-padding-vertical:0.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:0.875rem;--ifm-h6-font-size:0.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:0.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:0.75rem;--ifm-table-background:#0000;--ifm-table-stripe-background:#00000008;--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*0.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:0.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:0.8rem;--ifm-breadcrumb-padding-vertical:0.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url('data:image/svg+xml;utf8,');--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:0.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:0.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:0.5rem;--ifm-toc-padding-horizontal:0.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:0.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:0.75rem;--ifm-menu-link-padding-vertical:0.375rem;--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,');--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:0.75rem;--ifm-navbar-item-padding-vertical:0.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*0.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url('data:image/svg+xml;utf8,');--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:0.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:0.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem;--docusaurus-progress-bar-color:var(--ifm-color-primary);--ifm-color-primary:#5e45e6;--ifm-color-primary-dark:#5137cb;--ifm-color-primary-darker:#432fa4;--ifm-color-primary-darkest:#392e81;--ifm-color-primary-light:#675bf1;--ifm-color-primary-lighter:#8080f9;--ifm-color-primary-lightest:#a5abfc;--ifm-code-font-size:95%;--ifm-h1-font-size:2.25rem;--ifm-h2-font-size:2rem;--ifm-h3-font-size:1.5rem;--docusaurus-highlighted-code-line-bg:#0000001a;--ifm-footer-padding-vertical:10px;--docusaurus-tag-list-border:var(--ifm-color-emphasis-300);--docsearch-primary-color:#5468ff;--docsearch-text-color:#1c1e21;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-highlight-color:var(--docsearch-primary-color);--docsearch-muted-color:#969faf;--docsearch-container-background:#656c85cc;--docsearch-logo-color:#5468ff;--docsearch-modal-width:560px;--docsearch-modal-height:600px;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:inset 1px 1px 0 0 #ffffff80,0 3px 8px 0 #555a64;--docsearch-searchbox-height:56px;--docsearch-searchbox-background:#ebedf0;--docsearch-searchbox-focus-background:#fff;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-active-color:#fff;--docsearch-hit-background:#fff;--docsearch-hit-shadow:0 1px 3px 0 #d4d9e1;--docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8);--docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px #1e235a66;--docsearch-key-pressed-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 1px 0 #1e235a66;--docsearch-footer-height:44px;--docsearch-footer-background:#fff;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 #45629b1f;--docsearch-primary-color:var(--ifm-color-primary);--docsearch-text-color:var(--ifm-font-color-base);--docusaurus-announcement-bar-height:auto;--docusaurus-collapse-button-bg:#0000;--docusaurus-collapse-button-bg-hover:#0000001a;--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px;--rt-color-white:#fff;--rt-color-dark:#222;--rt-color-success:#8dc572;--rt-color-error:#be6464;--rt-color-warning:#f0ad4e;--rt-color-info:#337ab7;--rt-opacity:0.9;--rt-transition-show-delay:0.15s;--rt-transition-closing-delay:0.15s;--vscode-sash-size:4px;--vscode-sash-hover-size:4px}.badge--danger,.badge--info,.badge--primary,.badge--secondary,.badge--success,.badge--warning{--ifm-badge-border-color:var(--ifm-badge-background-color)}.button--link,.button--outline{--ifm-button-background-color:#0000}html{-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;text-size-adjust:100%;background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base) var(--ifm-font-family-base);text-rendering:optimizelegibility}body{word-wrap:break-word}iframe{border:0;color-scheme:auto}.container{margin:0 auto;max-width:var(--ifm-container-width)}.container--fluid{max-width:inherit}.row{display:flex;flex-wrap:wrap;margin:0 calc(var(--ifm-spacing-horizontal)*-1)}.list_eTzJ article:last-child,.margin-bottom--none,.margin-vert--none,.markdown>:last-child{margin-bottom:0!important}.margin-top--none,.margin-vert--none,.tabItem_LNqP{margin-top:0!important}.row--no-gutters{margin-left:0;margin-right:0}.margin-horiz--none,.margin-right--none{margin-right:0!important}.row--no-gutters>.col{padding-left:0;padding-right:0}.items-start,.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.items-center,.menuExternalLink_NmtK,.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;flex:1 0;margin-left:0;max-width:var(--ifm-col-width)}.padding-bottom--none,.padding-vert--none{padding-bottom:0!important}.padding-top--none,.padding-vert--none{padding-top:0!important}.padding-horiz--none,.padding-left--none{padding-left:0!important}.padding-horiz--none,.padding-right--none{padding-right:0!important}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:8.33333%}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:16.66667%}.col--offset-2{margin-left:16.66667%}.col--3{--ifm-col-width:25%}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:33.33333%}.col--offset-4{margin-left:33.33333%}.col--5{--ifm-col-width:41.66667%}.col--offset-5{margin-left:41.66667%}.col--6{--ifm-col-width:50%}.col--offset-6{margin-left:50%}.col--7{--ifm-col-width:58.33333%}.col--offset-7{margin-left:58.33333%}.col--8{--ifm-col-width:66.66667%}.col--offset-8{margin-left:66.66667%}.col--9{--ifm-col-width:75%}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:83.33333%}.col--offset-10{margin-left:83.33333%}.col--11{--ifm-col-width:91.66667%}.col--offset-11{margin-left:91.66667%}.col--12{--ifm-col-width:100%}.col--offset-12{margin-left:100%}.margin-horiz--none,.margin-left--none{margin-left:0!important}.margin--none{margin:0!important}.margin-bottom--xs,.margin-vert--xs{margin-bottom:.25rem!important}.margin-top--xs,.margin-vert--xs{margin-top:.25rem!important}.margin-horiz--xs,.margin-left--xs{margin-left:.25rem!important}.margin-horiz--xs,.margin-right--xs{margin-right:.25rem!important}.margin--xs{margin:.25rem!important}.margin-bottom--sm,.margin-vert--sm{margin-bottom:.5rem!important}.margin-top--sm,.margin-vert--sm{margin-top:.5rem!important}.margin-horiz--sm,.margin-left--sm{margin-left:.5rem!important}.margin-horiz--sm,.margin-right--sm{margin-right:.5rem!important}.margin--sm{margin:.5rem!important}.margin-bottom--md,.margin-vert--md{margin-bottom:1rem!important}.margin-top--md,.margin-vert--md{margin-top:1rem!important}.margin-horiz--md,.margin-left--md{margin-left:1rem!important}.margin-horiz--md,.margin-right--md{margin-right:1rem!important}.margin--md{margin:1rem!important}.margin-bottom--lg,.margin-vert--lg{margin-bottom:2rem!important}.margin-top--lg,.margin-vert--lg{margin-top:2rem!important}.margin-horiz--lg,.margin-left--lg{margin-left:2rem!important}.margin-horiz--lg,.margin-right--lg{margin-right:2rem!important}.margin--lg{margin:2rem!important}.margin-bottom--xl,.margin-vert--xl{margin-bottom:5rem!important}.margin-top--xl,.margin-vert--xl{margin-top:5rem!important}.margin-horiz--xl,.margin-left--xl{margin-left:5rem!important}.margin-horiz--xl,.margin-right--xl{margin-right:5rem!important}.margin--xl{margin:5rem!important}.padding--none{padding:0!important}.padding-bottom--xs,.padding-vert--xs{padding-bottom:.25rem!important}.padding-top--xs,.padding-vert--xs{padding-top:.25rem!important}.padding-horiz--xs,.padding-left--xs{padding-left:.25rem!important}.padding-horiz--xs,.padding-right--xs{padding-right:.25rem!important}.padding--xs{padding:.25rem!important}.padding-bottom--sm,.padding-vert--sm{padding-bottom:.5rem!important}.padding-top--sm,.padding-vert--sm{padding-top:.5rem!important}.padding-horiz--sm,.padding-left--sm{padding-left:.5rem!important}.padding-horiz--sm,.padding-right--sm{padding-right:.5rem!important}.padding--sm{padding:.5rem!important}.padding-bottom--md,.padding-vert--md{padding-bottom:1rem!important}.padding-top--md,.padding-vert--md{padding-top:1rem!important}.padding-horiz--md,.padding-left--md{padding-left:1rem!important}.padding-horiz--md,.padding-right--md{padding-right:1rem!important}.padding--md{padding:1rem!important}.padding-bottom--lg,.padding-vert--lg{padding-bottom:2rem!important}.padding-top--lg,.padding-vert--lg{padding-top:2rem!important}.padding-horiz--lg,.padding-left--lg{padding-left:2rem!important}.padding-horiz--lg,.padding-right--lg{padding-right:2rem!important}.padding--lg{padding:2rem!important}.padding-bottom--xl,.padding-vert--xl{padding-bottom:5rem!important}.padding-top--xl,.padding-vert--xl{padding-top:5rem!important}.padding-horiz--xl,.padding-left--xl{padding-left:5rem!important}.padding-horiz--xl,.padding-right--xl{padding-right:5rem!important}.padding--xl{padding:5rem!important}code{background-color:var(--ifm-code-background);border:.1rem solid #0000001a;border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal)}.action-widget .monaco-list-row.action:not(.option-disabled) .codicon,.jsoneditor-statusbar .jsoneditor-array-info a,.monaco-editor .editor-widget input,.monaco-hover .hover-contents a.code-link,.monaco-hover .hover-contents a.code-link:hover,.quick-input-list .monaco-list-row.focused .monaco-keybinding-key,.quick-input-list .monaco-list-row.focused .quick-input-list-entry .quick-input-list-separator,.quick-input-message a,a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height) var(--ifm-font-family-monospace);padding:var(--ifm-pre-padding)}pre code{background-color:initial;border:none;font-size:100%;line-height:inherit;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);border-radius:.2rem;box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top) 0 var(--ifm-heading-margin-bottom) 0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}.max-w-full,.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.string-label)>.contents>.main>.left>.monaco-icon-label,img{max-width:100%}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:after,.markdown:before{content:"";display:table}.markdown:after{clear:both}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>p,.markdown>pre,.markdown>ul,.tabList__CuJ{margin-bottom:var(--ifm-leading)}.markdown li{word-wrap:break-word}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ol,ul{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}table{border-collapse:collapse;display:block;margin-bottom:var(--ifm-spacing-vertical)}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead,table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width) solid var(--ifm-table-border-color)}table td,table th{border:var(--ifm-table-border-width) solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}a:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button:hover,.text--no-decoration,.text--no-decoration:hover,a:not([href]){text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:var(--ifm-blockquote-border-left-width) solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);padding:var(--ifm-blockquote-padding-vertical) var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);border:0;height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical) 0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary,.wordWrapButtonEnabled_EoeP .wordWrapButtonIcon_Bwma{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.monaco-editor .inline-added-margin-view-zone,.monaco-editor .inline-deleted-margin-view-zone,.monaco-inputbox-container,.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.alert__heading,.text--uppercase,.uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.monaco-editor .ghost-text-decoration,.monaco-editor .inline-edit-decoration,.monaco-editor .suggest-preview-text .ghost-text,.monaco-editor .suggest-preview-text .inline-edit,.monaco-icon-label.italic:after,.monaco-icon-label.italic>.monaco-icon-label-container>.monaco-icon-description-container>.label-description,.monaco-icon-label.italic>.monaco-icon-label-container>.monaco-icon-name-container>.label-name,.text--italic{font-style:italic}.monaco-editor .peekview-widget .head .peekview-title .dirname,.monaco-editor .peekview-widget .head .peekview-title .filename,.monaco-editor .peekview-widget .head .peekview-title .meta,.text--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text--break{word-wrap:break-word!important;word-break:break-word!important}.clean-btn{background:none;border:none;color:inherit;cursor:pointer;font-family:inherit;padding:0}.alert,.alert .close{color:var(--ifm-alert-foreground-color)}.clean-list{list-style:none;padding-left:0}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:#3578e526;--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:#ebedf026;--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:#00a40026;--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:#54c7ec26;--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:#ffba0026;--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:#fa383e26;--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width) solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.alert__heading{align-items:center;display:flex;font:700 var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.5rem}.alert__icon{display:inline-flex;margin-right:.4em}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{margin:calc(var(--ifm-alert-padding-vertical)*-1) calc(var(--ifm-alert-padding-horizontal)*-1) 0 0;opacity:.75}.alert .close:focus,.alert .close:hover{opacity:1}.alert a{text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{border-radius:50%;display:block;height:var(--ifm-avatar-photo-size);overflow:hidden;width:var(--ifm-avatar-photo-size)}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:var(--ifm-avatar-intro-alignment)}.badge,.breadcrumbs__item,.breadcrumbs__link,.button,.dropdown>.navbar__link:after,.monaco-action-bar.vertical .actions-container,.monaco-editor .mtkz,.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar,.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused.string-label>.contents>.main>.right>.readMore,.monaco-editor .view-zones .view-lines .view-line span,.monaco-keybinding>.monaco-keybinding-key-separator{display:inline-block}.avatar__name{font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:0.5rem;align-items:center;flex-direction:column}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);line-height:1;padding:var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal)}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);color:var(--ifm-color-black)}.breadcrumbs__link,.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator) center;content:" ";display:inline-block;filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier))}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier)) calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-duration:var(--ifm-transition-fast);transition-property:background,color}.breadcrumbs__link:any-link:hover,.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area[href].breadcrumbs__link:hover{background:var(--ifm-breadcrumb-item-background-active);text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:0.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width) solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);line-height:1.5;padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition-duration:var(--ifm-button-transition-duration);transition-property:color,background,border-color;-webkit-user-select:none;user-select:none;white-space:nowrap}.button,.button:hover{color:var(--ifm-button-color)}.button--outline{--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--link{--ifm-button-border-color:#0000;color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}.button--link.button--active,.button--link:active,.button--link:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:0.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{display:block;width:100%}.button.button--secondary{color:var(--ifm-color-gray-900)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary.button--active,.button--primary:active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary.button--active,.button--secondary:active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success.button--active,.button--success:active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info.button--active,.button--info:active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning.button--active,.button--warning:active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger.button--active,.button--danger:active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{display:inline-flex;gap:var(--ifm-button-group-spacing)}.button-group>.button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.button-group>.button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.button-group--block{display:flex;justify-content:stretch}.button-group--block>.button,.quick-input-box{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);display:flex;flex-direction:column;overflow:hidden}.card--full-height{height:100%}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__body,.card__footer,.card__header{padding:var(--ifm-card-vertical-spacing) var(--ifm-card-horizontal-spacing)}.card__body:not(:last-child),.card__footer:not(:last-child),.card__header:not(:last-child){padding-bottom:0}.card__body>:last-child,.card__footer>:last-child,.card__header>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{font-size:.8rem;margin-bottom:0;padding:var(--ifm-toc-padding-vertical) 0}.table-of-contents,.table-of-contents ul{list-style:none;padding-left:var(--ifm-toc-padding-horizontal)}.table-of-contents li{margin:var(--ifm-toc-padding-vertical) var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link--active,.table-of-contents__link--active code,.table-of-contents__link:hover,.table-of-contents__link:hover code{color:var(--ifm-color-primary);text-decoration:none}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);line-height:1;opacity:.5;padding:1rem;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.close:hover,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label{opacity:.7}.close:focus,.monaco-list-row.focused.selected .label-description,.monaco-list-row.selected .label-description,.theme-code-block-highlighted-line .codeLineNumber_Tfdd:before{opacity:.8}.dropdown{display:inline-flex;font-weight:var(--ifm-dropdown-font-weight);position:relative;vertical-align:top}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;transform:translateY(-1px);visibility:visible}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);left:0;list-style:none;max-height:80vh;min-width:10rem;opacity:0;overflow-y:auto;padding:.5rem;pointer-events:none;position:absolute;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);transform:translateY(-.625rem);transition-duration:var(--ifm-transition-fast);transition-property:opacity,transform,visibility;transition-timing-function:var(--ifm-transition-timing-default);visibility:hidden;z-index:var(--ifm-z-index-dropdown)}.menu__caret,.menu__link,.menu__list-item-collapsible{border-radius:.25rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.dropdown__link{border-radius:.25rem;color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem;margin-top:.2rem;padding:.25rem .5rem;white-space:nowrap}.dropdown__link--active,.dropdown__link:hover{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentcolor #0000;border-style:solid;border-width:.4em .4em 0;content:"";margin-left:.3em;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{margin-top:1rem;max-width:var(--ifm-footer-logo-max-width)}.footer__title{color:var(--ifm-footer-title-color);font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.menu,.navbar__link{font-weight:var(--ifm-font-weight-semibold)}.docItemContainer_Djhp article>:first-child,.docItemContainer_Djhp header+*,.footer__item,.jsoneditor-modal p:first-child,.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div>p:first-child,.monaco-hover .code:first-child,.monaco-hover li>ul,.monaco-hover p:first-child,.monaco-hover ul:first-child{margin-top:0}.admonitionContent_BuS1>:last-child,.cardContainer_fWXF :last-child,.collapsibleContent_i85q p:last-child,.details_lb9f>summary>p:last-child,.footer__items,.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div>p:last-child,.monaco-hover .code:last-child,.monaco-hover li>p,.monaco-hover p:last-child,.monaco-hover ul:last-child,.tabItem_Ymn6>:last-child{margin-bottom:0}.codeBlockStandalone_MEMb,[type=checkbox]{padding:0}.hero{align-items:center;background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);display:flex;padding:4rem 2rem}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu__list{list-style:none;margin:0;padding-left:0}.menu__caret,.menu__link{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu__list .menu__list{flex:0 0 100%;margin-top:.25rem;padding-left:var(--ifm-menu-link-padding-horizontal)}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.details_lb9f[data-collapsed=false].isBrowser_bmU9>summary:before,.details_lb9f[open]:not(.isBrowser_bmU9)>summary:before,.menu__list-item--collapsed .menu__caret:before,.menu__list-item--collapsed .menu__link--sublist:after{transform:rotate(90deg)}.menu__list-item-collapsible{display:flex;flex-wrap:wrap;position:relative}.menu__caret:hover,.menu__link:hover,.menu__list-item-collapsible--active,.menu__list-item-collapsible:hover{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link--active,.menu__list-item-collapsible .menu__link:hover{background:none!important}.menu__caret,.menu__link{align-items:center;display:flex}.menu__link{color:var(--ifm-menu-color);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color);text-decoration:none}.menu__caret:before,.menu__link--sublist-caret:after{content:"";height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem;filter:var(--ifm-menu-link-sublist-icon-filter)}.menu__link--sublist-caret:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;margin-left:auto;min-width:1.25rem}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.navbar__brand,.navbar__link{color:var(--ifm-navbar-link-color)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret:before{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem}.navbar--dark,html[data-theme=dark]{--ifm-menu-link-sublist-icon-filter:invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.flex,.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.navbar-sidebar,.navbar-sidebar__backdrop{opacity:0;position:fixed;transition-duration:var(--ifm-transition-fast);transition-timing-function:ease-in-out;visibility:hidden;top:0;bottom:0;left:0}.navbar__inner{display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.navbar__brand{align-items:center;display:flex;margin-right:1rem;min-width:0}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.announcementBarContent_xLdY,.navbar__title{flex:1 1 auto}.navbar__toggle{display:none;margin-right:.5rem}.navbar__logo{flex:0 0 auto;height:2rem;margin-right:.5rem}.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar,.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar>.actions-container,.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label:before,.monaco-list>.monaco-scrollable-element,.monaco-split-view2.horizontal>.monaco-scrollable-element>.split-view-container>.split-view-view,.monaco-tl-contents,.monaco-tl-twistie,.monaco-toolbar,.navbar__logo img,body,html{height:100%}.navbar__items{align-items:center;display:flex;flex:1;min-width:0}.navbar__items--center{flex:0 0 auto}.monaco-editor .find-widget textarea,.monaco-select-box-dropdown-container>.select-box-details-pane>.select-box-description-markdown *,.navbar__items--center .navbar__brand,.post-edit-widget .monaco-button .codicon,div.jsoneditor-field p,div.jsoneditor-value p{margin:0}.editorContainer,.monaco-editor .suggest-details>.monaco-scrollable-element,.monaco-table>.monaco-list,.monaco-tree-type-filter-input,.navbar__items--center+.navbar__items--right,.quick-input-list .quick-input-list-rows>.quick-input-list-row .monaco-icon-label,.quick-input-list .quick-input-list-rows>.quick-input-list-row .monaco-icon-label .monaco-icon-label-container>.monaco-icon-name-container{flex:1}.navbar__items--right{flex:0 0 auto;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{display:inline-block;padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}#nprogress,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.navbar__link--active,.navbar__link:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:#ffffff1a;--ifm-navbar-search-input-placeholder-color:#ffffff80;color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-menu-color-background-active:#ffffff0d;--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{appearance:none;background:var(--ifm-navbar-search-input-background-color) var(--ifm-navbar-search-input-icon) no-repeat .75rem center/1rem 1rem;border:none;border-radius:2rem;color:var(--ifm-navbar-search-input-color);cursor:text;display:inline-block;font-size:.9rem;height:2rem;padding:0 .5rem 0 2.25rem;width:12.5rem}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);transform:translate3d(-100%,0,0);transition-property:opacity,visibility,transform;width:var(--ifm-navbar-sidebar-width)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar__items{transform:translateZ(0)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar__backdrop{background-color:#0009;right:0;transition-property:opacity,visibility}.navbar-sidebar__brand{align-items:center;box-shadow:var(--ifm-navbar-shadow);display:flex;flex:1;height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar-sidebar__items{display:flex;height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast) ease-in-out}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{flex-shrink:0;padding:.5rem;width:calc(var(--ifm-navbar-sidebar-width))}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;text-align:left;top:-.5rem;width:calc(100% + 1rem)}.navbar-sidebar__close{display:flex;margin-left:auto}.pagination{column-gap:var(--ifm-pagination-page-spacing);display:flex;font-size:var(--ifm-pagination-font-size);padding-left:0}.pagination--sm{--ifm-pagination-font-size:0.8rem;--ifm-pagination-padding-horizontal:0.8rem;--ifm-pagination-padding-vertical:0.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:0.3rem}.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{color:var(--ifm-pagination-color-active)}.pagination__item--active .pagination__link,.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);display:inline-block;padding:var(--ifm-pagination-padding-vertical) var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination__link:hover{text-decoration:none}.pagination-nav{grid-gap:var(--ifm-spacing-horizontal);display:grid;gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr)}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);display:block;height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);text-decoration:none}.pagination-nav__link--next{grid-column:2/3;text-align:right}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills__item,.tabs{font-weight:var(--ifm-font-weight-bold)}.pills{display:flex;gap:var(--ifm-pills-spacing);padding-left:0}.pills__item{border-radius:.5rem;cursor:pointer;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pills__item--active{color:var(--ifm-pills-color-active)}.pills__item--active,.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{flex-grow:1;text-align:center}.tabs{color:var(--ifm-tabs-color);display:flex;margin-bottom:0;overflow-x:auto;padding-left:0}.tabs__item{border-bottom:3px solid #0000;border-radius:var(--ifm-global-radius);cursor:pointer;display:inline-flex;padding:var(--ifm-tabs-padding-vertical) var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);border-bottom-left-radius:0;border-bottom-right-radius:0;color:var(--ifm-tabs-color-active)}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.navbar-docs-link:before,.navbar-github-link:before{background-color:var(--ifm-navbar-link-color);display:flex;height:32px;transition:background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default);width:96px;content:""}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:#ffffff0d;--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%) sepia(11%) saturate(0%) hue-rotate(149deg) brightness(99%) contrast(95%);--ifm-code-background:#ffffff1a;--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:#ffffff12;--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec;--docsearch-text-color:#f5f6f7;--docsearch-container-background:#090a11cc;--docsearch-modal-background:#15172a;--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--docsearch-searchbox-background:#090a11;--docsearch-searchbox-focus-background:#000;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b);--docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 #0304094d;--docsearch-key-pressed-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 1px 1px 0 rgba(3,4,9,.302);--docsearch-footer-background:#1e2136;--docsearch-footer-shadow:inset 0 1px 0 0 #494c6a80,0 -4px 8px 0 #0003;--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497}#nprogress .bar{background:var(--docusaurus-progress-bar-color);height:2px;left:0;position:fixed;top:0;width:100%;z-index:1031}#nprogress .peg{box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}[data-theme=dark]{--ifm-color-primary:#675bf1;--ifm-color-primary-dark:#5e45e6;--ifm-color-primary-darker:#5137cb;--ifm-color-primary-darkest:#432fa4;--ifm-color-primary-light:#8080f9;--ifm-color-primary-lighter:#a5abfc;--ifm-color-primary-lightest:#c7ccfe;--docusaurus-highlighted-code-line-bg:#0000004d}.navbar-docs-link,.navbar-github-link{margin-right:10px;padding:0}.navbar-github-link:before{-webkit-mask-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iMzIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHJlY3QgeD0iLjgiIHk9Ii44IiB3aWR0aD0iOTQuNCIgaGVpZ2h0PSIzMC40IiByeD0iMTUuMiIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utd2lkdGg9IjEuNiIvPjxnIGNsaXAtcGF0aD0idXJsKCNhKSI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yMC42NDkgNS40NEMxNC43MTYgNS40NCA5LjkyIDEwLjI3MSA5LjkyIDE2LjI1YTEwLjggMTAuOCAwIDAgMCA3LjMzNiAxMC4yNTNjLjUzMy4xMDguNzI4LS4yMzIuNzI4LS41MTggMC0uMjUxLS4wMTctMS4xMS0uMDE3LTIuMDA1LTIuOTg1LjY0NS0zLjYwNi0xLjI4OC0zLjYwNi0xLjI4OC0uNDgtMS4yNTMtMS4xOS0xLjU3NS0xLjE5LTEuNTc1LS45NzctLjY2Mi4wNy0uNjYyLjA3LS42NjIgMS4wODQuMDcyIDEuNjUzIDEuMTEgMS42NTMgMS4xMS45NTkgMS42NDYgMi41MDQgMS4xOCAzLjEyNi44OTQuMDg5LS42OTguMzczLTEuMTguNjc1LTEuNDUtMi4zOC0uMjUtNC44ODUtMS4xOC00Ljg4NS01LjMzMiAwLTEuMTgxLjQyNi0yLjE0NyAxLjEwMS0yLjg5OS0uMTA2LS4yNjgtLjQ4LTEuMzc4LjEwNy0yLjg2MyAwIDAgLjkwNi0uMjg3IDIuOTQ4IDEuMTFhMTAuMzE0IDEwLjMxNCAwIDAgMSAyLjY4My0uMzU5Yy45MDYgMCAxLjgzLjEyNiAyLjY4Mi4zNTggMi4wNDMtMS4zOTYgMi45NDktMS4xMSAyLjk0OS0xLjExLjU4NiAxLjQ4Ni4yMTMgMi41OTYuMTA2IDIuODY0LjY5My43NTIgMS4xMDIgMS43MTggMS4xMDIgMi44OTkgMCA0LjE1Mi0yLjUwNSA1LjA2NC00LjkwMyA1LjMzMy4zOS4zNC43MjguOTg0LjcyOCAyLjAwNCAwIDEuNDUtLjAxNyAyLjYxMy0uMDE3IDIuOTcgMCAuMjg3LjE5NS42MjcuNzI4LjUyYTEwLjggMTAuOCAwIDAgMCA3LjMzNi0xMC4yNTRjLjAxOC01Ljk3Ny00Ljc5Ni0xMC44MDktMTAuNzExLTEwLjgwOVoiIGZpbGw9IiMwMDAiLz48L2c+PHBhdGggZD0iTTQzLjY4MiAxNC41NDVhMi4zMTMgMi4zMTMgMCAwIDAtLjMwMS0uNjM0IDEuOTUgMS45NSAwIDAgMC0uNDU1LS40ODYgMS44MzQgMS44MzQgMCAwIDAtLjYwNC0uMzAxIDIuNTE2IDIuNTE2IDAgMCAwLS43NDMtLjEwNWMtLjQ4IDAtLjkxLjEyLTEuMjg1LjM2My0uMzc2LjI0Mi0uNjcyLjU5Ny0uODg4IDEuMDY2LS4yMTMuNDY3LS4zMiAxLjAzNS0uMzIgMS43MDYgMCAuNjc2LjEwNyAxLjI0OS4zMiAxLjcxOC4yMTMuNDcuNTA5LjgyNy44ODggMS4wNzEuMzc5LjI0Mi44MTkuMzYzIDEuMzIuMzYzLjQ1NSAwIC44NDgtLjA4NyAxLjE4LS4yNjJhMS44NSAxLjg1IDAgMCAwIC43NzUtLjc0M2MuMTgtLjMyNC4yNy0uNzAzLjI3LTEuMTM3bC4zNjguMDU3aC0yLjQzMXYtMS4yNjhoMy42MzN2MS4wNzVjMCAuNzY3LS4xNjMgMS40My0uNDkgMS45OS0uMzI2LjU2LS43NzUuOTktMS4zNDYgMS4yOTQtLjU3MS4zLTEuMjI3LjQ1LTEuOTY4LjQ1LS44MjUgMC0xLjU0OS0uMTg1LTIuMTczLS41NTVhMy44NDIgMy44NDIgMCAwIDEtMS40NTYtMS41ODdjLS4zNDctLjY4OC0uNTItMS41MDQtLjUyLTIuNDQ5IDAtLjcyMy4xMDItMS4zNjguMzA2LTEuOTM3LjIwNy0uNTY4LjQ5NS0xLjA1Ljg2Ni0xLjQ0Ny4zNy0uNC44MDQtLjcwMyAxLjMwMy0uOTFhNC4xNSA0LjE1IDAgMCAxIDEuNjI2LS4zMTRjLjQ5NiAwIC45NTguMDcyIDEuMzg2LjIxOC40MjkuMTQzLjgxLjM0NyAxLjE0Mi42MTIuMzM1LjI2Ni42MS41OC44MjYuOTQ1LjIxNi4zNjQuMzU3Ljc2Ny40MjQgMS4yMDdoLTEuNjUzWm0zLjY0NyA2LjA5NXYtNi43MTZoMS41ODN2Ni43MTZoLTEuNTgzWm0uNzk2LTcuNjdhLjkyMy45MjMgMCAwIDEtLjY0Ny0uMjQ5LjgwMy44MDMgMCAwIDEtLjI3MS0uNjA3YzAtLjI0LjA5LS40NDIuMjctLjYwOGEuOTE0LjkxNCAwIDAgMSAuNjQ4LS4yNTRjLjI1MyAwIC40Ny4wODUuNjQ3LjI1NC4xOC4xNjYuMjcxLjM2OC4yNzEuNjA4IDAgLjIzNi0uMDkuNDM4LS4yNzEuNjA3YS45MTMuOTEzIDAgMCAxLS42NDcuMjVabTUuNzY4Ljk1NHYxLjIyNGgtMy44NnYtMS4yMjRoMy44NlptLTIuOTA3LTEuNjFoMS41ODJ2Ni4zMDZjMCAuMjEzLjAzMi4zNzYuMDk3LjQ5YS41Mi41MiAwIDAgMCAuMjYyLjIyN2MuMTA4LjA0LjIyNy4wNjEuMzU4LjA2MS4xIDAgLjE5LS4wMDcuMjcyLS4wMjIuMDg0LS4wMTQuMTQ4LS4wMjcuMTkyLS4wMzlsLjI2NyAxLjIzN2EyLjk2OCAyLjk2OCAwIDAgMS0uOTMxLjE1NyAyLjU4IDIuNTggMCAwIDEtMS4wNzItLjE3OCAxLjY2NiAxLjY2NiAwIDAgMS0uNzU2LS42MjFjLS4xODQtLjI4LS4yNzQtLjYzLS4yNzEtMS4wNXYtNi41NjdabTQuNDQ1IDguMzI2di04Ljk1NWgxLjYyM3YzLjc5MWg0LjE1di0zLjc5MWgxLjYyNnY4Ljk1NWgtMS42Mjd2LTMuODA0aC00LjE1djMuODA0aC0xLjYyMlptMTMuMzc0LTIuODI1di0zLjg5MWgxLjU4M3Y2LjcxNmgtMS41MzV2LTEuMTk0aC0uMDdhMi4wMiAyLjAyIDAgMCAxLS43NDguOTIzYy0uMzQ0LjIzOS0uNzY4LjM1OC0xLjI3Mi4zNTgtLjQ0IDAtLjgzLS4wOTctMS4xNjgtLjI5M2EyLjAzNyAyLjAzNyAwIDAgMS0uNzg3LS44NmMtLjE5LS4zOC0uMjg0LS44MzgtLjI4NC0xLjM3NHYtNC4yNzZoMS41ODN2NC4wMzFjMCAuNDI2LjExNy43NjQuMzUgMS4wMTUuMjMzLjI1LjUzOS4zNzYuOTE4LjM3Ni4yMzMgMCAuNDU5LS4wNTcuNjc4LS4xNy4yMTgtLjExNC4zOTgtLjI4NC41MzgtLjUwOC4xNDItLjIyNy4yMTQtLjUxMi4yMTQtLjg1M1ptMy4yOCAyLjgyNXYtOC45NTVoMS41ODN2My4zNWguMDY2YTIuOTEgMi45MSAwIDAgMSAuMzQ1LS41MiAxLjgzIDEuODMgMCAwIDEgLjYwNC0uNDc4Yy4yNTMtLjEzNC41NzctLjIuOTctLjIuNTIgMCAuOTg3LjEzMiAxLjQwNC4zOTcuNDIuMjYzLjc1Mi42NTIuOTk3IDEuMTY4LjI0OC41MTMuMzcxIDEuMTQyLjM3MSAxLjg4OSAwIC43MzctLjEyIDEuMzY0LS4zNjIgMS44OC0uMjQzLjUxNi0uNTcyLjkxLS45ODkgMS4xOC0uNDE3LjI3MS0uODg5LjQwNy0xLjQxNi40MDctLjM4NSAwLS43MDQtLjA2NC0uOTU4LS4xOTJhMS45NSAxLjk1IDAgMCAxLS42MTItLjQ2NCAyLjk5NyAyLjk5NyAwIDAgMS0uMzU0LS41MmgtLjA5MnYxLjA1OGgtMS41NTdabTEuNTUzLTMuMzU4YzAgLjQzNC4wNi44MTUuMTgzIDEuMTQxLjEyNS4zMjcuMzA1LjU4Mi41MzguNzY1LjIzNi4xODEuNTIyLjI3MS44NTcuMjcxLjM1IDAgLjY0My0uMDkzLjg3OS0uMjguMjM2LS4xODkuNDE0LS40NDcuNTMzLS43NzMuMTIzLS4zMy4xODQtLjcwNC4xODQtMS4xMjQgMC0uNDE3LS4wNi0uNzg3LS4xOC0xLjExYTEuNjY4IDEuNjY4IDAgMCAwLS41MzMtLjc2MmMtLjIzNi0uMTgzLS41My0uMjc1LS44ODMtLjI3NWExLjM5IDEuMzkgMCAwIDAtLjg2MS4yNjcgMS42NCAxLjY0IDAgMCAwLS41MzguNzQ3Yy0uMTIuMzIxLS4xOC42OTgtLjE4IDEuMTMzWiIgZmlsbD0iIzAwMCIvPjxkZWZzPjxjbGlwUGF0aCBpZD0iYSI+PHBhdGggZmlsbD0iI2ZmZiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOS45MiAxLjI4KSIgZD0iTTAgMGgzMS4zNnYzMC43MkgweiIvPjwvY2xpcFBhdGg+PC9kZWZzPjwvc3ZnPg==);mask-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iMzIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHJlY3QgeD0iLjgiIHk9Ii44IiB3aWR0aD0iOTQuNCIgaGVpZ2h0PSIzMC40IiByeD0iMTUuMiIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utd2lkdGg9IjEuNiIvPjxnIGNsaXAtcGF0aD0idXJsKCNhKSI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yMC42NDkgNS40NEMxNC43MTYgNS40NCA5LjkyIDEwLjI3MSA5LjkyIDE2LjI1YTEwLjggMTAuOCAwIDAgMCA3LjMzNiAxMC4yNTNjLjUzMy4xMDguNzI4LS4yMzIuNzI4LS41MTggMC0uMjUxLS4wMTctMS4xMS0uMDE3LTIuMDA1LTIuOTg1LjY0NS0zLjYwNi0xLjI4OC0zLjYwNi0xLjI4OC0uNDgtMS4yNTMtMS4xOS0xLjU3NS0xLjE5LTEuNTc1LS45NzctLjY2Mi4wNy0uNjYyLjA3LS42NjIgMS4wODQuMDcyIDEuNjUzIDEuMTEgMS42NTMgMS4xMS45NTkgMS42NDYgMi41MDQgMS4xOCAzLjEyNi44OTQuMDg5LS42OTguMzczLTEuMTguNjc1LTEuNDUtMi4zOC0uMjUtNC44ODUtMS4xOC00Ljg4NS01LjMzMiAwLTEuMTgxLjQyNi0yLjE0NyAxLjEwMS0yLjg5OS0uMTA2LS4yNjgtLjQ4LTEuMzc4LjEwNy0yLjg2MyAwIDAgLjkwNi0uMjg3IDIuOTQ4IDEuMTFhMTAuMzE0IDEwLjMxNCAwIDAgMSAyLjY4My0uMzU5Yy45MDYgMCAxLjgzLjEyNiAyLjY4Mi4zNTggMi4wNDMtMS4zOTYgMi45NDktMS4xMSAyLjk0OS0xLjExLjU4NiAxLjQ4Ni4yMTMgMi41OTYuMTA2IDIuODY0LjY5My43NTIgMS4xMDIgMS43MTggMS4xMDIgMi44OTkgMCA0LjE1Mi0yLjUwNSA1LjA2NC00LjkwMyA1LjMzMy4zOS4zNC43MjguOTg0LjcyOCAyLjAwNCAwIDEuNDUtLjAxNyAyLjYxMy0uMDE3IDIuOTcgMCAuMjg3LjE5NS42MjcuNzI4LjUyYTEwLjggMTAuOCAwIDAgMCA3LjMzNi0xMC4yNTRjLjAxOC01Ljk3Ny00Ljc5Ni0xMC44MDktMTAuNzExLTEwLjgwOVoiIGZpbGw9IiMwMDAiLz48L2c+PHBhdGggZD0iTTQzLjY4MiAxNC41NDVhMi4zMTMgMi4zMTMgMCAwIDAtLjMwMS0uNjM0IDEuOTUgMS45NSAwIDAgMC0uNDU1LS40ODYgMS44MzQgMS44MzQgMCAwIDAtLjYwNC0uMzAxIDIuNTE2IDIuNTE2IDAgMCAwLS43NDMtLjEwNWMtLjQ4IDAtLjkxLjEyLTEuMjg1LjM2My0uMzc2LjI0Mi0uNjcyLjU5Ny0uODg4IDEuMDY2LS4yMTMuNDY3LS4zMiAxLjAzNS0uMzIgMS43MDYgMCAuNjc2LjEwNyAxLjI0OS4zMiAxLjcxOC4yMTMuNDcuNTA5LjgyNy44ODggMS4wNzEuMzc5LjI0Mi44MTkuMzYzIDEuMzIuMzYzLjQ1NSAwIC44NDgtLjA4NyAxLjE4LS4yNjJhMS44NSAxLjg1IDAgMCAwIC43NzUtLjc0M2MuMTgtLjMyNC4yNy0uNzAzLjI3LTEuMTM3bC4zNjguMDU3aC0yLjQzMXYtMS4yNjhoMy42MzN2MS4wNzVjMCAuNzY3LS4xNjMgMS40My0uNDkgMS45OS0uMzI2LjU2LS43NzUuOTktMS4zNDYgMS4yOTQtLjU3MS4zLTEuMjI3LjQ1LTEuOTY4LjQ1LS44MjUgMC0xLjU0OS0uMTg1LTIuMTczLS41NTVhMy44NDIgMy44NDIgMCAwIDEtMS40NTYtMS41ODdjLS4zNDctLjY4OC0uNTItMS41MDQtLjUyLTIuNDQ5IDAtLjcyMy4xMDItMS4zNjguMzA2LTEuOTM3LjIwNy0uNTY4LjQ5NS0xLjA1Ljg2Ni0xLjQ0Ny4zNy0uNC44MDQtLjcwMyAxLjMwMy0uOTFhNC4xNSA0LjE1IDAgMCAxIDEuNjI2LS4zMTRjLjQ5NiAwIC45NTguMDcyIDEuMzg2LjIxOC40MjkuMTQzLjgxLjM0NyAxLjE0Mi42MTIuMzM1LjI2Ni42MS41OC44MjYuOTQ1LjIxNi4zNjQuMzU3Ljc2Ny40MjQgMS4yMDdoLTEuNjUzWm0zLjY0NyA2LjA5NXYtNi43MTZoMS41ODN2Ni43MTZoLTEuNTgzWm0uNzk2LTcuNjdhLjkyMy45MjMgMCAwIDEtLjY0Ny0uMjQ5LjgwMy44MDMgMCAwIDEtLjI3MS0uNjA3YzAtLjI0LjA5LS40NDIuMjctLjYwOGEuOTE0LjkxNCAwIDAgMSAuNjQ4LS4yNTRjLjI1MyAwIC40Ny4wODUuNjQ3LjI1NC4xOC4xNjYuMjcxLjM2OC4yNzEuNjA4IDAgLjIzNi0uMDkuNDM4LS4yNzEuNjA3YS45MTMuOTEzIDAgMCAxLS42NDcuMjVabTUuNzY4Ljk1NHYxLjIyNGgtMy44NnYtMS4yMjRoMy44NlptLTIuOTA3LTEuNjFoMS41ODJ2Ni4zMDZjMCAuMjEzLjAzMi4zNzYuMDk3LjQ5YS41Mi41MiAwIDAgMCAuMjYyLjIyN2MuMTA4LjA0LjIyNy4wNjEuMzU4LjA2MS4xIDAgLjE5LS4wMDcuMjcyLS4wMjIuMDg0LS4wMTQuMTQ4LS4wMjcuMTkyLS4wMzlsLjI2NyAxLjIzN2EyLjk2OCAyLjk2OCAwIDAgMS0uOTMxLjE1NyAyLjU4IDIuNTggMCAwIDEtMS4wNzItLjE3OCAxLjY2NiAxLjY2NiAwIDAgMS0uNzU2LS42MjFjLS4xODQtLjI4LS4yNzQtLjYzLS4yNzEtMS4wNXYtNi41NjdabTQuNDQ1IDguMzI2di04Ljk1NWgxLjYyM3YzLjc5MWg0LjE1di0zLjc5MWgxLjYyNnY4Ljk1NWgtMS42Mjd2LTMuODA0aC00LjE1djMuODA0aC0xLjYyMlptMTMuMzc0LTIuODI1di0zLjg5MWgxLjU4M3Y2LjcxNmgtMS41MzV2LTEuMTk0aC0uMDdhMi4wMiAyLjAyIDAgMCAxLS43NDguOTIzYy0uMzQ0LjIzOS0uNzY4LjM1OC0xLjI3Mi4zNTgtLjQ0IDAtLjgzLS4wOTctMS4xNjgtLjI5M2EyLjAzNyAyLjAzNyAwIDAgMS0uNzg3LS44NmMtLjE5LS4zOC0uMjg0LS44MzgtLjI4NC0xLjM3NHYtNC4yNzZoMS41ODN2NC4wMzFjMCAuNDI2LjExNy43NjQuMzUgMS4wMTUuMjMzLjI1LjUzOS4zNzYuOTE4LjM3Ni4yMzMgMCAuNDU5LS4wNTcuNjc4LS4xNy4yMTgtLjExNC4zOTgtLjI4NC41MzgtLjUwOC4xNDItLjIyNy4yMTQtLjUxMi4yMTQtLjg1M1ptMy4yOCAyLjgyNXYtOC45NTVoMS41ODN2My4zNWguMDY2YTIuOTEgMi45MSAwIDAgMSAuMzQ1LS41MiAxLjgzIDEuODMgMCAwIDEgLjYwNC0uNDc4Yy4yNTMtLjEzNC41NzctLjIuOTctLjIuNTIgMCAuOTg3LjEzMiAxLjQwNC4zOTcuNDIuMjYzLjc1Mi42NTIuOTk3IDEuMTY4LjI0OC41MTMuMzcxIDEuMTQyLjM3MSAxLjg4OSAwIC43MzctLjEyIDEuMzY0LS4zNjIgMS44OC0uMjQzLjUxNi0uNTcyLjkxLS45ODkgMS4xOC0uNDE3LjI3MS0uODg5LjQwNy0xLjQxNi40MDctLjM4NSAwLS43MDQtLjA2NC0uOTU4LS4xOTJhMS45NSAxLjk1IDAgMCAxLS42MTItLjQ2NCAyLjk5NyAyLjk5NyAwIDAgMS0uMzU0LS41MmgtLjA5MnYxLjA1OGgtMS41NTdabTEuNTUzLTMuMzU4YzAgLjQzNC4wNi44MTUuMTgzIDEuMTQxLjEyNS4zMjcuMzA1LjU4Mi41MzguNzY1LjIzNi4xODEuNTIyLjI3MS44NTcuMjcxLjM1IDAgLjY0My0uMDkzLjg3OS0uMjguMjM2LS4xODkuNDE0LS40NDcuNTMzLS43NzMuMTIzLS4zMy4xODQtLjcwNC4xODQtMS4xMjQgMC0uNDE3LS4wNi0uNzg3LS4xOC0xLjExYTEuNjY4IDEuNjY4IDAgMCAwLS41MzMtLjc2MmMtLjIzNi0uMTgzLS41My0uMjc1LS44ODMtLjI3NWExLjM5IDEuMzkgMCAwIDAtLjg2MS4yNjcgMS42NCAxLjY0IDAgMCAwLS41MzguNzQ3Yy0uMTIuMzIxLS4xOC42OTgtLjE4IDEuMTMzWiIgZmlsbD0iIzAwMCIvPjxkZWZzPjxjbGlwUGF0aCBpZD0iYSI+PHBhdGggZmlsbD0iI2ZmZiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOS45MiAxLjI4KSIgZD0iTTAgMGgzMS4zNnYzMC43MkgweiIvPjwvY2xpcFBhdGg+PC9kZWZzPjwvc3ZnPg==)}.navbar-docs-link:hover:before,.navbar-github-link:hover:before{background-color:var(--ifm-navbar-link-hover-color)}.navbar-docs-link:before{-webkit-mask-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iMzIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTQ1LjE5OCAyMC4zN2gtMy4wMzV2LTguOTU1aDMuMDk2Yy44OSAwIDEuNjUzLjE4IDIuMjkxLjUzOGEzLjU5NSAzLjU5NSAwIDAgMSAxLjQ3OCAxLjUzNWMuMzQ0LjY2Ny41MTYgMS40NjYuNTE2IDIuMzk2IDAgLjkzMy0uMTczIDEuNzM0LS41MiAyLjQwNWEzLjU5NyAzLjU5NyAwIDAgMS0xLjQ5MSAxLjU0M2MtLjY0Ny4zNTktMS40MjYuNTM4LTIuMzM1LjUzOFptLTEuNDEzLTEuNDA0aDEuMzM0Yy42MjQgMCAxLjE0NC0uMTEzIDEuNTYxLS4zNC40MTctLjIzLjczLS41NzQuOTQtMS4wMjguMjEtLjQ1OC4zMTUtMS4wMy4zMTUtMS43MTQgMC0uNjg1LS4xMDUtMS4yNTQtLjMxNS0xLjcwNmEyLjE0NiAyLjE0NiAwIDAgMC0uOTMxLTEuMDE4Yy0uNDA4LS4yMjgtLjkxNi0uMzQxLTEuNTIyLS4zNDFoLTEuMzgydjYuMTQ3Wm0xMC4xNiAxLjUzNWMtLjY1NiAwLTEuMjI0LS4xNDQtMS43MDUtLjQzM2EyLjk0IDIuOTQgMCAwIDEtMS4xMi0xLjIxYy0uMjYyLS41Mi0uMzkzLTEuMTI2LS4zOTMtMS44MiAwLS42OTQuMTMxLTEuMzAxLjM5My0xLjgyM2EyLjkzNCAyLjkzNCAwIDAgMSAxLjEyLTEuMjE2Yy40OC0uMjg4IDEuMDUtLjQzMyAxLjcwNS0uNDMzLjY1NiAwIDEuMjI0LjE0NSAxLjcwNS40MzMuNDgxLjI4OS44NTMuNjk0IDEuMTE1IDEuMjE2LjI2Ni41MjIuMzk4IDEuMTMuMzk4IDEuODIzIDAgLjY5NC0uMTMyIDEuMy0uMzk4IDEuODJhMi45MSAyLjkxIDAgMCAxLTEuMTE1IDEuMjFjLS40OC4yODktMS4wNS40MzMtMS43MDUuNDMzWm0uMDA5LTEuMjY4Yy4zNTUgMCAuNjUzLS4wOTguODkyLS4yOTMuMjM5LS4xOTguNDE3LS40NjMuNTMzLS43OTYuMTItLjMzMi4xOC0uNzAyLjE4LTEuMTEgMC0uNDExLS4wNi0uNzgzLS4xOC0xLjExNWExLjc2NCAxLjc2NCAwIDAgMC0uNTMzLS44Yy0uMjQtLjE5OS0uNTM3LS4yOTgtLjg5Mi0uMjk4LS4zNjUgMC0uNjY4LjEtLjkxLjI5OC0uMjM5LjE5OC0uNDE4LjQ2NS0uNTM4LjhhMy4zNTIgMy4zNTIgMCAwIDAtLjE3NSAxLjExNWMwIC40MDguMDU5Ljc3OC4xNzUgMS4xMS4xMi4zMzMuMy41OTguNTM4Ljc5Ni4yNDIuMTk1LjU0NS4yOTMuOTEuMjkzWm03LjQ4MiAxLjI2OGMtLjY3IDAtMS4yNDYtLjE0Ny0xLjcyNy0uNDQyYTIuOTQ5IDIuOTQ5IDAgMCAxLTEuMTA2LTEuMjJjLS4yNTctLjUyMS0uMzg1LTEuMTIyLS4zODUtMS44IDAtLjY4My4xMzEtMS4yODUuMzk0LTEuODA3YTIuOTM3IDIuOTM3IDAgMCAxIDEuMTEtMS4yMjRjLjQ4MS0uMjk0IDEuMDUtLjQ0MiAxLjcwNi0uNDQyLjU0NSAwIDEuMDI3LjEgMS40NDcuMzAyLjQyMi4xOTguNzYuNDggMS4wMS44NDQuMjUuMzYxLjM5My43ODQuNDI4IDEuMjY4SDYyLjhhMS40NDcgMS40NDcgMCAwIDAtLjQzNy0uODA5Yy0uMjI3LS4yMTktLjUzMi0uMzI4LS45MTQtLjMyOGExLjQzIDEuNDMgMCAwIDAtLjg1Mi4yNjJjLS4yNDUuMTcyLS40MzYuNDItLjU3My43NDQtLjEzNC4zMjMtLjIwMS43MTEtLjIwMSAxLjE2MyAwIC40NTcuMDY3Ljg1MS4yIDEuMTguMTM1LjMyNy4zMjMuNTguNTY1Ljc1Ny4yNDUuMTc1LjUzMi4yNjIuODYxLjI2Mi4yMzQgMCAuNDQyLS4wNDMuNjI2LS4xMy4xODYtLjA5MS4zNDItLjIyMS40NjctLjM5LjEyNi0uMTcuMjEyLS4zNzUuMjU4LS42MTdoMS41MTNhMi42MzkgMi42MzkgMCAwIDEtLjQyIDEuMjY0Yy0uMjQxLjM2NC0uNTcuNjUtLjk4OC44NTctLjQxNi4yMDQtLjkwNi4zMDYtMS40NjkuMzA2Wm05LjQ4NS01LjA3Mi0xLjQ0My4xNTdhMS4xNiAxLjE2IDAgMCAwLS4yMTQtLjQxIDEuMDY1IDEuMDY1IDAgMCAwLS40MDItLjMxMSAxLjQ2NiAxLjQ2NiAwIDAgMC0uNjIxLS4xMThjLS4zMyAwLS42MDYuMDcxLS44My4yMTQtLjIyMi4xNDMtLjMzMi4zMjgtLjMyOS41NTZhLjU4MS41ODEgMCAwIDAgLjIxNS40NzZjLjE0OC4xMjMuMzkzLjIyMy43MzQuMzAybDEuMTQ2LjI0NWMuNjM1LjEzNyAxLjEwNy4zNTQgMS40MTYuNjUxLjMxMi4yOTcuNDcuNjg3LjQ3MyAxLjE2OGExLjgyNyAxLjgyNyAwIDAgMS0uMzcyIDEuMTE5Yy0uMjQyLjMyLS41NzkuNTcxLTEuMDEuNzUyLS40MzEuMTgtLjkyNy4yNzEtMS40ODcuMjcxLS44MjIgMC0xLjQ4NC0uMTcyLTEuOTg1LS41MTYtLjUwMS0uMzQ3LS44LS44My0uODk2LTEuNDQ3bDEuNTQzLS4xNDljLjA3LjMwMy4yMTkuNTMyLjQ0Ni42ODcuMjI4LjE1NC41MjMuMjMyLjg4OC4yMzIuMzc2IDAgLjY3OC0uMDc4LjkwNS0uMjMyLjIzLS4xNTUuMzQ1LS4zNDYuMzQ1LS41NzNhLjU5Ni41OTYgMCAwIDAtLjIyMy0uNDc3Yy0uMTQ1LS4xMjUtLjM3My0uMjIxLS42ODItLjI4OGwtMS4xNDUtLjI0Yy0uNjQ0LS4xMzUtMS4xMjEtLjM2LTEuNDMtLjY3OC0uMzEtLjMyMS0uNDYyLS43MjYtLjQ2LTEuMjE2YTEuNzIgMS43MiAwIDAgMSAuMzM4LTEuMDc2Yy4yMy0uMzA2LjU0OS0uNTQyLjk1Ny0uNzA4LjQxMS0uMTcuODg1LS4yNTQgMS40MjEtLjI1NC43ODcgMCAxLjQwNy4xNjggMS44NTguNTAzLjQ1NS4zMzUuNzM3Ljc4OS44NDQgMS4zNloiIGZpbGw9IiMwMDAiLz48cmVjdCB4PSIuOCIgeT0iLjgiIHdpZHRoPSI5NC40IiBoZWlnaHQ9IjI5LjQiIHJ4PSIxNC43IiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS42Ii8+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNi4xMTEgMjIuOTU2YTIuODYyIDIuODYyIDAgMCAxLTMuMzQxLTIuNjM3di04LjcxYTIuMTEgMi4xMSAwIDAgMSAxLjM3Ni0yLjA2NCA2LjU0MiA2LjU0MiAwIDAgMSA3LjEzNiAxLjc4NlYyMy43NmMtMS4xOTgtMS4wMDctMy4yNjgtMS4wNjgtNS4xNy0uODA0Wk0yNi40NTIgMjIuOTU2YTIuODYyIDIuODYyIDAgMCAwIDMuMzQyLTIuNjM3di04LjcxYTIuMTEgMi4xMSAwIDAgMC0xLjM3Ny0yLjA2NCA2LjU0MiA2LjU0MiAwIDAgMC03LjEzNSAxLjc4NlYyMy43NmMxLjE5OC0xLjAwNyAzLjI2Ny0xLjA2OCA1LjE3LS44MDRaIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMi43MjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPjxwYXRoIGQ9Ik0xOC4yNDIgMTYuMTZhLjkxMi45MTIgMCAxIDAgMC0xLjgyNHYxLjgyNFptLTIuNDMyLTEuODI0YS45MTIuOTEyIDAgMCAwIDAgMS44MjR2LTEuODI0Wm0yLjQzMiA0LjI1NmEuOTEyLjkxMiAwIDEgMCAwLTEuODI0djEuODI0Wm0tMi40MzItMS44MjRhLjkxMi45MTIgMCAwIDAgMCAxLjgyNHYtMS44MjRabTEwLjk0NC0uNjA4YS45MTIuOTEyIDAgMSAwIDAtMS44MjR2MS44MjRabS0yLjQzMi0xLjgyNGEuOTEyLjkxMiAwIDAgMCAwIDEuODI0di0xLjgyNFptMi40MzIgNC4yNTZhLjkxMi45MTIgMCAxIDAgMC0xLjgyNHYxLjgyNFptLTIuNDMyLTEuODI0YS45MTIuOTEyIDAgMCAwIDAgMS44MjR2LTEuODI0Wm0tNi4wOC0yLjQzMkgxNS44MXYxLjgyNGgyLjQzMnYtMS44MjRabTAgMi40MzJIMTUuODF2MS44MjRoMi40MzJ2LTEuODI0Wm04LjUxMi0yLjQzMmgtMi40MzJ2MS44MjRoMi40MzJ2LTEuODI0Wm0wIDIuNDMyaC0yLjQzMnYxLjgyNGgyLjQzMnYtMS44MjRaIiBmaWxsPSIjMDAwIi8+PC9nPjxkZWZzPjxjbGlwUGF0aCBpZD0iYSI+PHBhdGggZmlsbD0iI2ZmZiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOS45MiAxLjI0KSIgZD0iTTAgMGgzMS4zNnYyOS43NkgweiIvPjwvY2xpcFBhdGg+PC9kZWZzPjwvc3ZnPg==);mask-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iMzIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTQ1LjE5OCAyMC4zN2gtMy4wMzV2LTguOTU1aDMuMDk2Yy44OSAwIDEuNjUzLjE4IDIuMjkxLjUzOGEzLjU5NSAzLjU5NSAwIDAgMSAxLjQ3OCAxLjUzNWMuMzQ0LjY2Ny41MTYgMS40NjYuNTE2IDIuMzk2IDAgLjkzMy0uMTczIDEuNzM0LS41MiAyLjQwNWEzLjU5NyAzLjU5NyAwIDAgMS0xLjQ5MSAxLjU0M2MtLjY0Ny4zNTktMS40MjYuNTM4LTIuMzM1LjUzOFptLTEuNDEzLTEuNDA0aDEuMzM0Yy42MjQgMCAxLjE0NC0uMTEzIDEuNTYxLS4zNC40MTctLjIzLjczLS41NzQuOTQtMS4wMjguMjEtLjQ1OC4zMTUtMS4wMy4zMTUtMS43MTQgMC0uNjg1LS4xMDUtMS4yNTQtLjMxNS0xLjcwNmEyLjE0NiAyLjE0NiAwIDAgMC0uOTMxLTEuMDE4Yy0uNDA4LS4yMjgtLjkxNi0uMzQxLTEuNTIyLS4zNDFoLTEuMzgydjYuMTQ3Wm0xMC4xNiAxLjUzNWMtLjY1NiAwLTEuMjI0LS4xNDQtMS43MDUtLjQzM2EyLjk0IDIuOTQgMCAwIDEtMS4xMi0xLjIxYy0uMjYyLS41Mi0uMzkzLTEuMTI2LS4zOTMtMS44MiAwLS42OTQuMTMxLTEuMzAxLjM5My0xLjgyM2EyLjkzNCAyLjkzNCAwIDAgMSAxLjEyLTEuMjE2Yy40OC0uMjg4IDEuMDUtLjQzMyAxLjcwNS0uNDMzLjY1NiAwIDEuMjI0LjE0NSAxLjcwNS40MzMuNDgxLjI4OS44NTMuNjk0IDEuMTE1IDEuMjE2LjI2Ni41MjIuMzk4IDEuMTMuMzk4IDEuODIzIDAgLjY5NC0uMTMyIDEuMy0uMzk4IDEuODJhMi45MSAyLjkxIDAgMCAxLTEuMTE1IDEuMjFjLS40OC4yODktMS4wNS40MzMtMS43MDUuNDMzWm0uMDA5LTEuMjY4Yy4zNTUgMCAuNjUzLS4wOTguODkyLS4yOTMuMjM5LS4xOTguNDE3LS40NjMuNTMzLS43OTYuMTItLjMzMi4xOC0uNzAyLjE4LTEuMTEgMC0uNDExLS4wNi0uNzgzLS4xOC0xLjExNWExLjc2NCAxLjc2NCAwIDAgMC0uNTMzLS44Yy0uMjQtLjE5OS0uNTM3LS4yOTgtLjg5Mi0uMjk4LS4zNjUgMC0uNjY4LjEtLjkxLjI5OC0uMjM5LjE5OC0uNDE4LjQ2NS0uNTM4LjhhMy4zNTIgMy4zNTIgMCAwIDAtLjE3NSAxLjExNWMwIC40MDguMDU5Ljc3OC4xNzUgMS4xMS4xMi4zMzMuMy41OTguNTM4Ljc5Ni4yNDIuMTk1LjU0NS4yOTMuOTEuMjkzWm03LjQ4MiAxLjI2OGMtLjY3IDAtMS4yNDYtLjE0Ny0xLjcyNy0uNDQyYTIuOTQ5IDIuOTQ5IDAgMCAxLTEuMTA2LTEuMjJjLS4yNTctLjUyMS0uMzg1LTEuMTIyLS4zODUtMS44IDAtLjY4My4xMzEtMS4yODUuMzk0LTEuODA3YTIuOTM3IDIuOTM3IDAgMCAxIDEuMTEtMS4yMjRjLjQ4MS0uMjk0IDEuMDUtLjQ0MiAxLjcwNi0uNDQyLjU0NSAwIDEuMDI3LjEgMS40NDcuMzAyLjQyMi4xOTguNzYuNDggMS4wMS44NDQuMjUuMzYxLjM5My43ODQuNDI4IDEuMjY4SDYyLjhhMS40NDcgMS40NDcgMCAwIDAtLjQzNy0uODA5Yy0uMjI3LS4yMTktLjUzMi0uMzI4LS45MTQtLjMyOGExLjQzIDEuNDMgMCAwIDAtLjg1Mi4yNjJjLS4yNDUuMTcyLS40MzYuNDItLjU3My43NDQtLjEzNC4zMjMtLjIwMS43MTEtLjIwMSAxLjE2MyAwIC40NTcuMDY3Ljg1MS4yIDEuMTguMTM1LjMyNy4zMjMuNTguNTY1Ljc1Ny4yNDUuMTc1LjUzMi4yNjIuODYxLjI2Mi4yMzQgMCAuNDQyLS4wNDMuNjI2LS4xMy4xODYtLjA5MS4zNDItLjIyMS40NjctLjM5LjEyNi0uMTcuMjEyLS4zNzUuMjU4LS42MTdoMS41MTNhMi42MzkgMi42MzkgMCAwIDEtLjQyIDEuMjY0Yy0uMjQxLjM2NC0uNTcuNjUtLjk4OC44NTctLjQxNi4yMDQtLjkwNi4zMDYtMS40NjkuMzA2Wm05LjQ4NS01LjA3Mi0xLjQ0My4xNTdhMS4xNiAxLjE2IDAgMCAwLS4yMTQtLjQxIDEuMDY1IDEuMDY1IDAgMCAwLS40MDItLjMxMSAxLjQ2NiAxLjQ2NiAwIDAgMC0uNjIxLS4xMThjLS4zMyAwLS42MDYuMDcxLS44My4yMTQtLjIyMi4xNDMtLjMzMi4zMjgtLjMyOS41NTZhLjU4MS41ODEgMCAwIDAgLjIxNS40NzZjLjE0OC4xMjMuMzkzLjIyMy43MzQuMzAybDEuMTQ2LjI0NWMuNjM1LjEzNyAxLjEwNy4zNTQgMS40MTYuNjUxLjMxMi4yOTcuNDcuNjg3LjQ3MyAxLjE2OGExLjgyNyAxLjgyNyAwIDAgMS0uMzcyIDEuMTE5Yy0uMjQyLjMyLS41NzkuNTcxLTEuMDEuNzUyLS40MzEuMTgtLjkyNy4yNzEtMS40ODcuMjcxLS44MjIgMC0xLjQ4NC0uMTcyLTEuOTg1LS41MTYtLjUwMS0uMzQ3LS44LS44My0uODk2LTEuNDQ3bDEuNTQzLS4xNDljLjA3LjMwMy4yMTkuNTMyLjQ0Ni42ODcuMjI4LjE1NC41MjMuMjMyLjg4OC4yMzIuMzc2IDAgLjY3OC0uMDc4LjkwNS0uMjMyLjIzLS4xNTUuMzQ1LS4zNDYuMzQ1LS41NzNhLjU5Ni41OTYgMCAwIDAtLjIyMy0uNDc3Yy0uMTQ1LS4xMjUtLjM3My0uMjIxLS42ODItLjI4OGwtMS4xNDUtLjI0Yy0uNjQ0LS4xMzUtMS4xMjEtLjM2LTEuNDMtLjY3OC0uMzEtLjMyMS0uNDYyLS43MjYtLjQ2LTEuMjE2YTEuNzIgMS43MiAwIDAgMSAuMzM4LTEuMDc2Yy4yMy0uMzA2LjU0OS0uNTQyLjk1Ny0uNzA4LjQxMS0uMTcuODg1LS4yNTQgMS40MjEtLjI1NC43ODcgMCAxLjQwNy4xNjggMS44NTguNTAzLjQ1NS4zMzUuNzM3Ljc4OS44NDQgMS4zNloiIGZpbGw9IiMwMDAiLz48cmVjdCB4PSIuOCIgeT0iLjgiIHdpZHRoPSI5NC40IiBoZWlnaHQ9IjI5LjQiIHJ4PSIxNC43IiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMS42Ii8+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNi4xMTEgMjIuOTU2YTIuODYyIDIuODYyIDAgMCAxLTMuMzQxLTIuNjM3di04LjcxYTIuMTEgMi4xMSAwIDAgMSAxLjM3Ni0yLjA2NCA2LjU0MiA2LjU0MiAwIDAgMSA3LjEzNiAxLjc4NlYyMy43NmMtMS4xOTgtMS4wMDctMy4yNjgtMS4wNjgtNS4xNy0uODA0Wk0yNi40NTIgMjIuOTU2YTIuODYyIDIuODYyIDAgMCAwIDMuMzQyLTIuNjM3di04LjcxYTIuMTEgMi4xMSAwIDAgMC0xLjM3Ny0yLjA2NCA2LjU0MiA2LjU0MiAwIDAgMC03LjEzNSAxLjc4NlYyMy43NmMxLjE5OC0xLjAwNyAzLjI2Ny0xLjA2OCA1LjE3LS44MDRaIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMi43MjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPjxwYXRoIGQ9Ik0xOC4yNDIgMTYuMTZhLjkxMi45MTIgMCAxIDAgMC0xLjgyNHYxLjgyNFptLTIuNDMyLTEuODI0YS45MTIuOTEyIDAgMCAwIDAgMS44MjR2LTEuODI0Wm0yLjQzMiA0LjI1NmEuOTEyLjkxMiAwIDEgMCAwLTEuODI0djEuODI0Wm0tMi40MzItMS44MjRhLjkxMi45MTIgMCAwIDAgMCAxLjgyNHYtMS44MjRabTEwLjk0NC0uNjA4YS45MTIuOTEyIDAgMSAwIDAtMS44MjR2MS44MjRabS0yLjQzMi0xLjgyNGEuOTEyLjkxMiAwIDAgMCAwIDEuODI0di0xLjgyNFptMi40MzIgNC4yNTZhLjkxMi45MTIgMCAxIDAgMC0xLjgyNHYxLjgyNFptLTIuNDMyLTEuODI0YS45MTIuOTEyIDAgMCAwIDAgMS44MjR2LTEuODI0Wm0tNi4wOC0yLjQzMkgxNS44MXYxLjgyNGgyLjQzMnYtMS44MjRabTAgMi40MzJIMTUuODF2MS44MjRoMi40MzJ2LTEuODI0Wm04LjUxMi0yLjQzMmgtMi40MzJ2MS44MjRoMi40MzJ2LTEuODI0Wm0wIDIuNDMyaC0yLjQzMnYxLjgyNGgyLjQzMnYtMS44MjRaIiBmaWxsPSIjMDAwIi8+PC9nPjxkZWZzPjxjbGlwUGF0aCBpZD0iYSI+PHBhdGggZmlsbD0iI2ZmZiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOS45MiAxLjI0KSIgZD0iTTAgMGgzMS4zNnYyOS43NkgweiIvPjwvY2xpcFBhdGg+PC9kZWZzPjwvc3ZnPg==)}*,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused:hover>.contents>.main>.right>.readMore,.visible,tr.jsoneditor-selected.jsoneditor-first button.jsoneditor-contextmenu-button,tr.jsoneditor-selected.jsoneditor-first button.jsoneditor-dragarea{visibility:visible}.core-styles-module_fixed__pcSol,.fixed{position:fixed}.bottom-0{bottom:0}.left-0{left:0}.m-2{margin:.5rem}.mx-8{margin-left:2rem;margin-right:2rem}.mt-20{margin-top:5rem}.block,.tocCollapsibleContent_vkbj a{display:block}.grid{display:grid}.hidden{display:none}.h-8{height:2rem}.h-\[40px\]{height:40px}.max-h-full{max-height:100%}.min-h-\[120px\]{min-height:120px}.min-h-\[300px\]{min-height:300px}.min-h-\[500px\]{min-height:500px}.w-screen{width:100vw}.min-w-5{min-width:1.25rem}.min-w-\[300px\]{min-width:300px}.min-w-\[400px\]{min-width:400px}.max-w-\[332px\]{max-width:332px}.max-w-\[max\(0px\2c calc\(\(100\%_-_40px\)\*999\)\)\]{max-width:max(0px,calc(99900% - 39960px))}.flex-1{flex:1 1 0%}.flex-\[0_0_10\%\]{flex:0 0 10%}.flex-\[0_0_20\%\]{flex:0 0 20%}.flex-\[0_0_70\%\]{flex:0 0 70%}.grid-cols-\[auto_32px\]{grid-template-columns:auto 32px}.grid-rows-\[auto_auto_auto\]{grid-template-rows:auto auto auto}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.gap-3{gap:.75rem}.gap-4{gap:1rem}.divide-x-0>:not([hidden])~:not([hidden]){--tw-divide-x-reverse:0;border-left-width:calc(0px*(1 - var(--tw-divide-x-reverse)));border-right-width:calc(0px*var(--tw-divide-x-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-bottom-width:calc(1px*var(--tw-divide-y-reverse));border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)))}.border-solid,.divide-solid>:not([hidden])~:not([hidden]){border-style:solid}.divide-\[var\(--ifm-color-emphasis-300\)\]>:not([hidden])~:not([hidden]){border-color:var(--ifm-color-emphasis-300)}.self-center{align-self:center}.rounded{border-radius:.25rem}.rounded-md{border-radius:.375rem}.border{border-width:1px}.border-0{border-width:0}.border-2,.hc-black .monaco-editor .parameter-hints-widget,.hc-light .monaco-editor .parameter-hints-widget,.monaco-editor.hc-black .monaco-editor-overlaymessage .message,.monaco-editor.hc-black .suggest-details,.monaco-editor.hc-black .suggest-widget,.monaco-editor.hc-black .tokens-inspect-widget,.monaco-editor.hc-light .monaco-editor-overlaymessage .message,.monaco-editor.hc-light .suggest-details,.monaco-editor.hc-light .suggest-widget,.monaco-editor.hc-light .tokens-inspect-widget{border-width:2px}.border-t-2{border-top-width:2px}.border-\[var\(--ifm-color-primary\)\]{border-color:var(--ifm-color-primary)}.border-gray-400{--tw-border-opacity:1;border-color:rgb(156 163 175/var(--tw-border-opacity))}.border-white{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity))}.border-t-white{--tw-border-opacity:1;border-top-color:rgb(255 255 255/var(--tw-border-opacity))}.bg-\[var\(--docsearch-primary-color\)\]{background-color:var(--docsearch-primary-color)}.bg-transparent,.jsoneditor-search button:hover{background-color:initial}.bg-white\/20{background-color:#fff3}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-\[\#EA336F\]{--tw-gradient-from:#ea336f var(--tw-gradient-from-position);--tw-gradient-to:#ea336f00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.to-\[\#4A01A7\]{--tw-gradient-to:#4a01a7 var(--tw-gradient-to-position)}.object-contain{object-fit:contain}.p-8{padding:2rem}.monaco-tree-type-filter-input .monaco-inputbox>.ibwrapper>.input,.monaco-tree-type-filter-input .monaco-inputbox>.ibwrapper>.mirror,.p-\[2px_4px_2px_4px\]{padding:2px 4px}.px-2{padding-left:.5rem;padding-right:.5rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-6{padding-bottom:1.5rem;padding-top:1.5rem}.monaco-action-bar.vertical,.text-left{text-align:left}.text-center{text-align:center}.text-\[18px\]\/6{font-size:18px;line-height:1.5rem}.text-base\/6{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.font-bold,.monaco-editor .suggest-widget:not(.frozen) .monaco-highlighted-label .highlight,.monaco-editor.hc-black .reference-zone-widget .ref-tree .reference-file,.monaco-editor.hc-light .reference-zone-widget .ref-tree .reference-file{font-weight:700}.font-semibold,.quick-input-list .quick-input-list-separator-as-item .label-name{font-weight:600}.not-italic{font-style:normal}.text-\[var\(--ifm-color-emphasis-0\)\]{color:var(--ifm-color-emphasis-0)}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.\[column-gap\:16px\]{column-gap:16px}.\[grid-area\:button\]{grid-area:c}.\[grid-area\:close\]{grid-area:d}.\[grid-area\:decoration\]{grid-area:e}.\[grid-area\:logo\]{grid-area:f}.\[grid-area\:text\]{grid-area:g}.\[grid-template-areas\:\'logo_close\'_\'text_close\'_\'button_button\'\]{grid-template-areas:"f d" "g d" "c c"}.\[row-gap\:16px\]{row-gap:16px}.iconEdit_Z9Sw{margin-right:.3em;vertical-align:sub}.tag_zVej{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_zVej:hover{--docusaurus-tag-list-border:var(--ifm-link-color);text-decoration:none}.tagRegular_sFm0{border-radius:var(--ifm-global-radius);font-size:90%;padding:.2rem .5rem .3rem}.tagWithCount_h2kH{align-items:center;border-left:0;display:flex;padding:0 .5rem 0 1rem;position:relative}.tagWithCount_h2kH:after,.tagWithCount_h2kH:before{border:1px solid var(--docusaurus-tag-list-border);content:"";position:absolute;top:50%;transition:inherit}.tagWithCount_h2kH:before{border-bottom:0;border-right:0;height:1.18rem;right:100%;transform:translate(50%,-50%) rotate(-45deg);width:1.18rem}.tagWithCount_h2kH:after{border-radius:50%;height:.5rem;left:0;transform:translateY(-50%);width:.5rem}.tagWithCount_h2kH span{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.7rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.string-label)>.contents>.main>.right>.details-label,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label>.monaco-tokenized-source,.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row.focused:not(.string-label)>.contents>.main>.right>.details-label,.monaco-editor .suggest-widget:not(.shows-details) .monaco-list .monaco-list-row.focused>.contents>.main>.right>.details-label,.quick-input-widget.show-checkboxes .quick-input-list .quick-input-list-checkbox,.tags_jXut{display:inline}.tag_QGVx{display:inline-block;margin:0 .4rem .5rem 0}.lastUpdated_vwxv{font-size:smaller;font-style:italic;margin-top:.2rem}.tocCollapsibleButton_TO0P{align-items:center;display:flex;font-size:inherit;justify-content:space-between;padding:.4rem .8rem;width:100%}.DocSearch-Button,.DocSearch-Button-Container{align-items:center;display:flex}.tocCollapsibleButton_TO0P:after{background:var(--ifm-menu-link-sublist-icon) 50% 50%/2rem 2rem no-repeat;content:"";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast);width:1.25rem}.tocCollapsibleButtonExpanded_MG3E:after,.tocCollapsibleExpanded_sAul{transform:none}.tocCollapsible_ETCw{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_vkbj>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);font-size:15px;padding:.2rem 0}.tocCollapsibleContent_vkbj ul li{margin:.4rem .8rem}.tableOfContents_bqdL{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.backToTopButton_sjWU{background-color:var(--ifm-color-emphasis-200);border-radius:50%;bottom:1.3rem;box-shadow:var(--ifm-global-shadow-lw);height:3rem;opacity:0;position:fixed;right:1.3rem;transform:scale(0);transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default);visibility:hidden;width:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1)}.backToTopButton_sjWU:after{background-color:var(--ifm-color-emphasis-1000);content:" ";display:inline-block;height:100%;-webkit-mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;width:100%}.backToTopButtonShow_xfvO{opacity:1;transform:scale(1);visibility:visible}.DocSearch-Button{background:var(--docsearch-searchbox-background);border:0;border-radius:40px;color:var(--docsearch-muted-color);cursor:pointer;font-weight:500;height:36px;justify-content:space-between;padding:0 8px;-webkit-user-select:none;user-select:none}.DocSearch-Button:active,.DocSearch-Button:focus,.DocSearch-Button:hover{background:var(--docsearch-searchbox-focus-background);box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:0}.DocSearch-Search-Icon{stroke-width:1.6}.DocSearch-Hit-Tree,.DocSearch-Hit-action,.DocSearch-Hit-icon,.DocSearch-Reset{stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Button .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{font-size:1rem;padding:0 12px 0 6px}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-gradient);border:0;border-radius:3px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 2px;position:relative;top:-1px;width:20px}.DocSearch-Button-Key--pressed{box-shadow:var(--docsearch-key-pressed-shadow);transform:translate3d(0,1px,0)}.DocSearch--active{overflow:hidden!important}.DocSearch-Container{background-color:var(--docsearch-container-background);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:200}.DocSearch-Container a,.monaco-editor .codelens-decoration>a{text-decoration:none}.DocSearch-Link{appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;font:inherit;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:6px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width);position:relative}.DocSearch-SearchBar{display:flex;padding:var(--docsearch-spacing) var(--docsearch-spacing) 0}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Input{appearance:none;background:#0000;border:0;color:var(--docsearch-text-color);flex:1;font:inherit;font-size:1.2em;height:100%;outline:0;padding:0 0 0 8px;width:80%}.DocSearch-Input::placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::-webkit-search-cancel-button,.DocSearch-Input::-webkit-search-decoration,.DocSearch-Input::-webkit-search-results-button,.DocSearch-Input::-webkit-search-results-decoration{display:none}.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset,div.jsoneditor td,div.jsoneditor th,div.jsoneditor tr{margin:0;padding:0}.DocSearch-Container--Stalled .DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Cancel,.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator,.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset{animation:.1s ease-in forwards j;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;padding:2px;right:0}.DocSearch-Help,.DocSearch-HitsFooter,.DocSearch-Label{color:var(--docsearch-muted-color)}.DocSearch-Reset:hover{color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{height:24px;width:24px}.DocSearch-Dropdown{max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));min-height:var(--docsearch-spacing);overflow-y:auto;overflow-y:overlay;padding:0 var(--docsearch-spacing);scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background);scrollbar-width:thin}.DocSearch-Dropdown::-webkit-scrollbar{width:12px}.DocSearch-Dropdown::-webkit-scrollbar-track{background:#0000}.DocSearch-Dropdown::-webkit-scrollbar-thumb{background-color:var(--docsearch-muted-color);border:3px solid var(--docsearch-modal-background);border-radius:20px}.DocSearch-Dropdown ul{list-style:none;margin:0;padding:0}.DocSearch-Label{font-size:.75em;line-height:1.6em}.DocSearch-Help{font-size:.9em;margin:0;-webkit-user-select:none;user-select:none}.DocSearch-Title{font-size:1.2em}.DocSearch-Logo a,.monaco-action-bar .action-item.action-dropdown-item,.monaco-editor .find-widget.replaceToggled>.replace-part,.monaco-editor .monaco-hover .hover-row,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right,.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar,.quick-input-list .monaco-list-row.focused .quick-input-list-entry-action-bar .action-label,.quick-input-list .monaco-list-row.passive-focused .quick-input-list-entry-action-bar .action-label,.quick-input-list .quick-input-list-entry .quick-input-list-entry-action-bar .action-label.always-visible,.quick-input-list .quick-input-list-entry.focus-inside .quick-input-list-entry-action-bar .action-label,.quick-input-list .quick-input-list-entry:hover .quick-input-list-entry-action-bar .action-label{display:flex}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-left:8px}.DocSearch-Hits:last-of-type{margin-bottom:24px}.DocSearch-Hits mark{background:none;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{display:flex;font-size:.85em;justify-content:center;margin-bottom:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-bottom:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;display:flex;padding-bottom:4px;position:relative}.DocSearch-Hit--deleting{opacity:0;transition:.25s linear}.DocSearch-Hit--favoriting{transform:scale(0);transform-origin:top center;transition:.25s linear .25s}.DocSearch-Hit a{background:var(--docsearch-hit-background);border-radius:4px;box-shadow:var(--docsearch-hit-shadow);display:block;padding-left:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-highlight-color);font-size:.85em;font-weight:600;line-height:32px;margin:0 -4px;padding:8px 4px 0;position:sticky;top:0;z-index:10}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;width:24px}.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-highlight-color)}.DocSearch-Hit[aria-selected=true] mark,.selectr-match{text-decoration:underline}.DocSearch-Hit-Container{align-items:center;color:var(--docsearch-hit-color);display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{height:20px;width:20px}.DocSearch-Hit-action,.DocSearch-Hit-icon{color:var(--docsearch-muted-color)}.DocSearch-Hit-action{align-items:center;display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action,.quick-input-action,.secondary-actions .monaco-action-bar .action-label{margin-left:6px}.DocSearch-Hit-action-button{appearance:none;background:none;border:0;border-radius:50%;color:inherit;cursor:pointer;padding:2px}#__docusaurus-base-url-issue-banner-container,.core-styles-module_noArrow__xock6,.docSidebarContainer_YfHR,.sidebarLogo_isFc,.themedComponent_mlkZ,[data-theme=dark] .lightToggleIcon_pyhR,[data-theme=light] .darkToggleIcon_wfgR,html[data-announcement-bar-initially-dismissed=true] .announcementBar_mb4j,svg.DocSearch-Hit-Select-Icon{display:none}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon,.has-selected .selectr-label,.monaco-action-bar .action-item .codicon,.monaco-action-bar .action-item .icon,.monaco-action-bar.vertical .action-item,.selectr-container.has-selected .selectr-clear,.selectr-container.notice .selectr-notice,.selectr-container.notice .selectr-options-container,.selectr-container.open .selectr-input-container,.selectr-container.open .selectr-options,.selectr-container.open .selectr-options-container,.selectr-input-container.active,.selectr-input-container.active .selectr-clear,.selectr-input-container.active .selectr-input-clear,div.jsoneditor-tree .jsoneditor-button{display:block}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:background-color .1s ease-in}.DocSearch-Hit-action-button:focus path,.DocSearch-Hit-action-button:hover path{fill:#fff}.DocSearch-Hit-content-wrapper{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;line-height:1.2em;margin:0 8px;overflow-x:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;width:80%}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-muted-color);font-size:.75em}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-hit-active-color)!important}.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{font-size:.9em;margin:0 auto;padding:36px 0;text-align:center;width:80%}.DocSearch-Screen-Icon{color:var(--docsearch-muted-color);padding-bottom:12px}.DocSearch-NoResults-Prefill-List{display:inline-block;padding-bottom:24px;text-align:left}.DocSearch-NoResults-Prefill-List ul{display:inline-block;padding:8px 0 0}.DocSearch-NoResults-Prefill-List li{list-style-position:inside;list-style-type:"» "}.DocSearch-Prefill{appearance:none;background:none;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;font-size:1em;font-weight:700;padding:0}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:0;text-decoration:underline}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 8px 8px;box-shadow:var(--docsearch-footer-shadow);display:flex;flex-direction:row-reverse;flex-shrink:0;height:var(--docsearch-footer-height);justify-content:space-between;padding:0 var(--docsearch-spacing);position:relative;-webkit-user-select:none;user-select:none;width:100%;z-index:300}.DocSearch-Commands li,.DocSearch-Commands-Key,.monaco-action-bar .checkbox-action-item,.quick-input-list .quick-input-list-rows>.quick-input-list-row{align-items:center;display:flex}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;list-style:none;margin:0;padding:0}.DocSearch-Commands li:not(:last-of-type){margin-right:.8em}.DocSearch-Commands-Key{background:var(--docsearch-key-gradient);border:0;border-radius:2px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);height:18px;justify-content:center;margin-right:.4em;padding:0 0 1px;width:20px}.DocSearch-VisuallyHiddenForAccessibility{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.DocSearch-Button{margin:0;transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.DocSearch-Container,.skipToContent_fXgn{z-index:calc(var(--ifm-z-index-fixed) + 1)}.skipToContent_fXgn{background-color:var(--ifm-background-surface-color);color:var(--ifm-color-emphasis-900);left:100%;padding:calc(var(--ifm-global-spacing)/2) var(--ifm-global-spacing);position:fixed;top:1rem}.skipToContent_fXgn:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_CVFx{line-height:0;padding:0}.content_knG7{font-size:85%;padding:5px 0;text-align:center}.content_knG7 a{color:inherit;text-decoration:underline}.announcementBar_mb4j{align-items:center;background-color:var(--ifm-color-white);border-bottom:1px solid var(--ifm-color-emphasis-100);color:var(--ifm-color-black);display:flex;height:var(--docusaurus-announcement-bar-height)}.announcementBarPlaceholder_vyr4{flex:0 0 10px}.announcementBarClose_gvF7{align-self:stretch;flex:0 0 30px}.toggle_vylO{height:2rem;width:2rem}.toggleButton_gllP{align-items:center;border-radius:50%;display:flex;height:100%;justify-content:center;transition:background var(--ifm-transition-fast);width:100%}.toggleButton_gllP:hover{background:var(--ifm-color-emphasis-200)}.toggleButtonDisabled_aARS{cursor:not-allowed}.darkNavbarColorModeToggle_X3D1:hover{background:var(--ifm-color-gray-800)}[data-theme=dark] .themedComponent--dark_xIcU,[data-theme=light] .themedComponent--light_NVdE,html:not([data-theme]) .themedComponent--light_NVdE{display:initial}[data-theme=dark]:root{--docusaurus-collapse-button-bg:#ffffff0d;--docusaurus-collapse-button-bg-hover:#ffffff1a}.collapseSidebarButton_PEFL{display:none;margin:0}.iconExternalLink_nPIU{margin-left:.3rem}.docMainContainer_TBSr,.docRoot_UBD9{display:flex;width:100%}.docsWrapper_hBAB{display:flex;flex:1 0 auto}.dropdownNavbarItemMobile_S0Fm,.jsoneditor-anchor,.jsoneditor-modal input,.jsoneditor-modal select,.monaco-component.diff-review .revertButton,.monaco-editor .arrow-revert-change:hover,.monaco-editor .codelens-decoration>a:hover,.monaco-editor .codelens-decoration>a:hover .codicon:before,.monaco-editor .diff-hidden-lines div.breadcrumb-item,.monaco-editor .fold-unchanged,.monaco-editor .lightBulbWidget:hover,.monaco-editor .margin-view-zones .lightbulb-glyph:hover,.monaco-editor .peekview-widget .head .peekview-title.clickable,.monaco-hover a:hover:not(.disabled),.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row{cursor:pointer}.iconLanguage_nlXk{margin-right:5px;vertical-align:text-bottom}@supports selector(:has(*)){.navbarSearchContainer_Bca1:not(:has(>*)){display:none}}.navbarHideable_m1mJ{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_jGov{transform:translate3d(0,calc(-100% - 2px),0)}.errorBoundaryError_a6uf{color:red;white-space:pre-wrap}.errorBoundaryFallback_VBag{color:red;padding:.55rem}.invalidInput_X8vI:focus,.monaco-editor .rename-box .rename-input:focus,.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container[tabindex="0"]:focus,body:not(.navigation-with-keyboard) :not(input):focus,div.jsoneditor-tree :focus{outline:0}.footerLogoLink_BH7S{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.footerLogoLink_BH7S:hover,.hash-link:focus,.jsoneditor-menu a:hover,.minimap.autohide:hover,.monaco-diff-editor.hc-black .delete-sign,.monaco-diff-editor.hc-black .insert-sign,.monaco-diff-editor.hc-light .delete-sign,.monaco-diff-editor.hc-light .insert-sign,.monaco-editor .margin-view-overlays .codicon.alwaysShowFoldIcons,.monaco-editor .margin-view-overlays .codicon.codicon-folding-collapsed,.monaco-editor .margin-view-overlays .codicon.codicon-folding-manual-collapsed,.monaco-editor .margin-view-overlays:hover .codicon,.monaco-editor .minimap.slider-mouseover .minimap-slider.active,.monaco-editor .minimap.slider-mouseover:hover .minimap-slider,.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close:hover,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore:hover,.monaco-editor.hc-black .delete-sign,.monaco-editor.hc-black .insert-sign,.monaco-editor.hc-light .delete-sign,.monaco-editor.hc-light .insert-sign,.quick-input-list .quick-input-list-rows .monaco-highlighted-label>span,:hover>.hash-link{opacity:1}.anchorWithStickyNavbar_LWe7{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorWithHideOnScrollNavbar_WYt5{scroll-margin-top:.5rem}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;user-select:none}.hash-link:before{content:"#"}.mainWrapper_z2l0{display:flex;flex:1 0 auto;flex-direction:column}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{display:flex;flex-direction:column;min-height:100%}.core-styles-module_tooltip__3vRRp{left:0;opacity:0;pointer-events:none;position:absolute;top:0;will-change:opacity}.core-styles-module_arrow__cvMwQ{background:inherit;position:absolute}.core-styles-module_clickable__ZuTTB,.monaco-split-view2>.sash-container>.monaco-sash{pointer-events:auto}.core-styles-module_show__Nt9eE{opacity:var(--rt-opacity);transition:opacity var(--rt-transition-show-delay) ease-out}.core-styles-module_closing__sGnxF{opacity:0;transition:opacity var(--rt-transition-closing-delay) ease-in}.styles-module_tooltip__mnnfp{border-radius:3px;font-size:90%;padding:8px 16px;width:max-content}.styles-module_arrow__K0L3T{height:8px;width:8px}.monaco-workbench .workbench-hover-pointer.bottom:after,.selectr-clear:before,.selectr-input-clear:before,.selectr-tag-remove:before,[class*=react-tooltip__place-top]>.styles-module_arrow__K0L3T{transform:rotate(45deg)}.monaco-workbench .workbench-hover-pointer.left:after,[class*=react-tooltip__place-right]>.styles-module_arrow__K0L3T{transform:rotate(135deg)}.monaco-workbench .workbench-hover-pointer.top:after,[class*=react-tooltip__place-bottom]>.styles-module_arrow__K0L3T{transform:rotate(225deg)}.monaco-workbench .workbench-hover-pointer.right:after,[class*=react-tooltip__place-left]>.styles-module_arrow__K0L3T{transform:rotate(315deg)}.styles-module_dark__xNqje{background:var(--rt-color-dark);color:var(--rt-color-white)}.styles-module_light__Z6W-X{background-color:var(--rt-color-white);color:var(--rt-color-dark)}.styles-module_success__A2AKt{background-color:var(--rt-color-success);color:var(--rt-color-white)}.styles-module_warning__SCK0X{background-color:var(--rt-color-warning);color:var(--rt-color-white)}.styles-module_error__JvumD{background-color:var(--rt-color-error);color:var(--rt-color-white)}.styles-module_info__BWdHW{background-color:var(--rt-color-info);color:var(--rt-color-white)}.jsoneditor,.jsoneditor-modal{-webkit-text-size-adjust:none;text-size-adjust:none}.jsoneditor input,.jsoneditor input:not([type]),.jsoneditor input[type=search],.jsoneditor input[type=text],.jsoneditor-modal input,.jsoneditor-modal input:not([type]),.jsoneditor-modal input[type=search],.jsoneditor-modal input[type=text]{border:inherit;box-shadow:none;box-sizing:inherit;font-family:inherit;font-size:inherit;height:auto;line-height:inherit;padding:inherit;transition:none}.jsoneditor input:focus,.jsoneditor input:not([type]):focus,.jsoneditor input[type=search]:focus,.jsoneditor input[type=text]:focus,.jsoneditor-modal input:focus,.jsoneditor-modal input:not([type]):focus,.jsoneditor-modal input[type=search]:focus,.jsoneditor-modal input[type=text]:focus{border:inherit;box-shadow:inherit}.jsoneditor textarea,.jsoneditor-modal textarea{height:inherit}.jsoneditor select,.jsoneditor-modal select{display:inherit;height:inherit}.jsoneditor label,.jsoneditor-modal label{color:inherit;font-size:inherit;font-weight:inherit}.jsoneditor table,.jsoneditor-modal table{border-collapse:collapse;width:auto}.jsoneditor td,.jsoneditor th,.jsoneditor-modal td,.jsoneditor-modal th{border-radius:inherit;display:table-cell;padding:0;text-align:left;vertical-align:inherit}.jsoneditor .autocomplete.dropdown,.jsoneditor-contextmenu .jsoneditor-menu{background:#fff;border:1px solid #d3d3d3;margin:0;box-shadow:2px 2px 12px #8080804d}.jsoneditor .autocomplete.dropdown{cursor:default;font-family:consolas,menlo,monaco,Ubuntu Mono,source-code-pro,monospace;font-size:14px;outline:0;overflow-x:hidden;overflow-y:auto;padding:5px;position:absolute;text-align:left}.jsoneditor .autocomplete.dropdown .item,div.jsoneditor-value.jsoneditor-color-value,div.jsoneditor-value.jsoneditor-invalid{color:#1a1a1a}.jsoneditor .autocomplete.dropdown .item.hover{background-color:#ebebeb}.jsoneditor .autocomplete.hint{color:#a1a1a1;left:4px;top:4px}.jsoneditor-contextmenu-root{height:0;position:relative;width:0}.jsoneditor-contextmenu{box-sizing:initial;position:absolute;z-index:2}.jsoneditor-contextmenu .jsoneditor-menu{height:auto;left:0;list-style:none;padding:0;position:relative;top:0;width:128px}.jsoneditor-contextmenu .jsoneditor-menu button{background:#0000;border:none;box-sizing:border-box;color:#4d4d4d;cursor:pointer;font-family:arial,sans-serif;font-size:14px;height:auto;margin:0;padding:0 8px 0 0;position:relative;text-align:left;width:128px}.jsoneditor-contextmenu .jsoneditor-menu button::-moz-focus-inner{border:0;padding:0}.jsoneditor-contextmenu .jsoneditor-menu button.jsoneditor-default{width:96px}.jsoneditor-contextmenu .jsoneditor-menu button.jsoneditor-expand{border-left:1px solid #e5e5e5;float:right;height:24px;width:32px}.jsoneditor-contextmenu .jsoneditor-menu li{overflow:hidden}.jsoneditor-contextmenu .jsoneditor-menu li ul{border:none;box-shadow:inset 0 0 10px #80808080;display:none;left:-10px;padding:0 10px;position:relative;top:0;transition:.3s ease-out}.jsoneditor-contextmenu .jsoneditor-menu li ul .jsoneditor-icon{margin-left:24px}.jsoneditor-contextmenu .jsoneditor-menu li ul li button{animation:1s ease-in-out all;padding-left:24px}.jsoneditor-contextmenu .jsoneditor-menu li button .jsoneditor-expand{background-position:0 -72px;margin:0 4px 0 0;right:0}.jsoneditor-contextmenu .jsoneditor-icon,.jsoneditor-contextmenu .jsoneditor-menu li button .jsoneditor-expand{background-image:url(/assets/images/jsoneditor-icons-15f2789dd231f36d43a4839306b3a2cb.svg);height:24px;padding:0;position:absolute;top:0;width:24px}.jsoneditor-contextmenu .jsoneditor-icon{border:none;left:0;margin:0}.jsoneditor-contextmenu .jsoneditor-text{word-wrap:break-word;padding:4px 0 4px 24px}.jsoneditor-contextmenu .jsoneditor-text.jsoneditor-right-margin{padding-right:24px}.jsoneditor-contextmenu .jsoneditor-separator{border-top:1px solid #e5e5e5;height:0;margin-top:5px;padding-top:5px}.jsoneditor-contextmenu button.jsoneditor-remove .jsoneditor-icon{background-position:-24px 0}.jsoneditor-contextmenu button.jsoneditor-append .jsoneditor-icon,.jsoneditor-contextmenu button.jsoneditor-insert .jsoneditor-icon{background-position:0 0}.jsoneditor-contextmenu button.jsoneditor-duplicate .jsoneditor-icon{background-position:-48px 0}.jsoneditor-contextmenu button.jsoneditor-sort-asc .jsoneditor-icon{background-position:-168px 0}.jsoneditor-contextmenu button.jsoneditor-sort-desc .jsoneditor-icon{background-position:-192px 0}.jsoneditor-contextmenu button.jsoneditor-transform .jsoneditor-icon{background-position:-216px 0}.jsoneditor-contextmenu button.jsoneditor-extract .jsoneditor-icon{background-position:0 -24px}.jsoneditor-contextmenu button.jsoneditor-type-string .jsoneditor-icon{background-position:-144px 0}.jsoneditor-contextmenu button.jsoneditor-type-auto .jsoneditor-icon{background-position:-120px 0}.jsoneditor-contextmenu button.jsoneditor-type-object .jsoneditor-icon{background-position:-72px 0}.jsoneditor-contextmenu button.jsoneditor-type-array .jsoneditor-icon{background-position:-96px 0}.jsoneditor-contextmenu button.jsoneditor-type-modes .jsoneditor-icon{background-image:none;width:6px}.jsoneditor-contextmenu li,.jsoneditor-contextmenu ul{box-sizing:initial;position:relative}.jsoneditor-contextmenu .jsoneditor-menu button:focus,.jsoneditor-contextmenu .jsoneditor-menu button:hover{background-color:#f5f5f5;color:#1a1a1a;outline:0}.jsoneditor-contextmenu .jsoneditor-menu li button.jsoneditor-selected,.jsoneditor-contextmenu .jsoneditor-menu li button.jsoneditor-selected:focus,.jsoneditor-contextmenu .jsoneditor-menu li button.jsoneditor-selected:hover{background-color:#ee422e;color:#fff}.jsoneditor-contextmenu .jsoneditor-menu li ul li button:focus,.jsoneditor-contextmenu .jsoneditor-menu li ul li button:hover{background-color:#f5f5f5}.jsoneditor-modal{border-radius:2px!important;box-shadow:2px 2px 12px #8080804d;color:#4d4d4d;line-height:1.3em;max-width:95%;padding:45px 15px 15px!important}.jsoneditor-modal.jsoneditor-modal-transform{width:600px!important}.jsoneditor-modal .pico-modal-header{background:#3883fa;box-sizing:border-box;color:#fff;font-family:arial,sans-serif;font-size:11pt;height:30px;left:0;line-height:30px;padding:0 10px;position:absolute;top:0;width:100%}.jsoneditor-modal .jsoneditor-jmespath-select-fields,.jsoneditor-modal table,.monaco-editor .diff-hidden-lines-widget,.monaco-editor .find-widget .monaco-findInput .monaco-scrollable-element,.monaco-editor .suggest-widget.with-status-bar:not(.docs-side) .monaco-list .monaco-list-row:hover>.contents>.main>.right.can-expand-details>.details-label,.monaco-editor .tokens-inspect-widget .tm-metadata-table,.monaco-progress-container.discrete.done .progress-bit,.monaco-split-view2.vertical>.monaco-scrollable-element>.split-view-container>.split-view-view{width:100%}.jsoneditor-modal table td{padding:3px 0}.jsoneditor-modal table td.jsoneditor-modal-input{padding-right:0;text-align:right;white-space:nowrap}.jsoneditor-modal table td.jsoneditor-modal-actions{padding-top:15px}.jsoneditor-modal a{color:#3883fa}.jsoneditor-modal .jsoneditor-jmespath-block{margin-bottom:10px}.jsoneditor-modal .pico-close{background:none!important;color:#fff;font-size:24px!important;right:7px!important;top:7px!important}.jsoneditor-modal input[type=text],div.jsoneditor-tree div.jsoneditor-color.jsoneditor-color-readonly{cursor:inherit}.jsoneditor-modal input[disabled]{background:#d3d3d3;color:grey}.jsoneditor-modal .jsoneditor-select-wrapper{display:inline-block;position:relative}.jsoneditor-modal .jsoneditor-select-wrapper:after{border-left:5px solid #0000;border-right:5px solid #0000;border-top:6px solid #666;content:"";height:0;pointer-events:none;position:absolute;right:8px;top:14px;width:0}.jsoneditor-modal select{appearance:none;line-height:1.5em;max-width:350px;min-width:180px;text-indent:0;text-overflow:""}.jsoneditor-modal select::-ms-expand{display:none}.jsoneditor-modal .jsoneditor-button-group input{border-left-style:none;border-radius:0;margin:0;padding:4px 10px}.jsoneditor-modal .jsoneditor-button-group input.jsoneditor-button-first{border-bottom-left-radius:3px;border-left-style:solid;border-top-left-radius:3px}.jsoneditor-modal .jsoneditor-button-group input.jsoneditor-button-last{border-bottom-right-radius:3px;border-top-right-radius:3px}.jsoneditor-modal .jsoneditor-transform-preview{background:#f5f5f5;height:200px}.jsoneditor-modal .jsoneditor-transform-preview.jsoneditor-error,a.jsoneditor-value.jsoneditor-url:focus,a.jsoneditor-value.jsoneditor-url:hover,div.jsoneditor-tree div.jsoneditor-show-more a:focus,div.jsoneditor-tree div.jsoneditor-show-more a:hover,div.jsoneditor-value.jsoneditor-number{color:#ee422e}.jsoneditor-modal .jsoneditor-jmespath-wizard{border-radius:3px;line-height:1.2em;padding:0;width:100%}.jsoneditor-modal .jsoneditor-jmespath-label{color:#1e90ff;font-weight:700;margin-bottom:5px;margin-top:20px}.jsoneditor-modal .jsoneditor-jmespath-wizard-table{border-collapse:collapse;width:100%}.jsoneditor-modal .jsoneditor-jmespath-wizard-label{font-style:italic;margin:4px 0 2px}.jsoneditor-modal .jsoneditor-inline{display:inline-block;padding-bottom:2px;padding-top:2px;position:relative;width:100%}.jsoneditor-modal .jsoneditor-inline:not(:last-child){padding-right:2px}.jsoneditor-modal .jsoneditor-jmespath-filter{display:flex;flex-wrap:wrap}.jsoneditor-modal .jsoneditor-jmespath-filter-field{width:180px}.jsoneditor-modal .jsoneditor-jmespath-filter-relation{width:100px}.jsoneditor-modal .jsoneditor-jmespath-filter-value{flex:1;min-width:180px}.jsoneditor-modal .jsoneditor-jmespath-sort-field{width:170px}.jsoneditor-modal .jsoneditor-jmespath-sort-order{width:150px}.jsoneditor-modal .selectr-selected{border-color:#d3d3d3;padding:4px 28px 4px 8px}.jsoneditor-modal .selectr-selected .selectr-tag{background-color:#3883fa;border-radius:5px}.jsoneditor-modal table td,.jsoneditor-modal table th{border-collapse:collapse;border-spacing:0;color:#4d4d4d;font-weight:400;text-align:left;vertical-align:middle}.jsoneditor-modal #query,.jsoneditor-modal input,.jsoneditor-modal input[type=text],.jsoneditor-modal input[type=text]:focus,.jsoneditor-modal select,.jsoneditor-modal textarea{background:#fff;border:1px solid #d3d3d3;border-radius:3px;color:#4d4d4d;padding:4px}.jsoneditor-modal #query,.jsoneditor-modal textarea{border-radius:unset}.jsoneditor-modal,.jsoneditor-modal #query,.jsoneditor-modal input,.jsoneditor-modal input[type=text],.jsoneditor-modal option,.jsoneditor-modal select,.jsoneditor-modal table td,.jsoneditor-modal table th,.jsoneditor-modal textarea{font-family:arial,sans-serif;font-size:10.5pt}.jsoneditor-modal #query,.jsoneditor-modal .jsoneditor-transform-preview{box-sizing:border-box;font-family:consolas,menlo,monaco,Ubuntu Mono,source-code-pro,monospace;font-size:14px;width:100%}.jsoneditor-modal input[type=button],.jsoneditor-modal input[type=submit]{background:#f5f5f5;padding:4px 20px}.jsoneditor-modal .jsoneditor-button-group.jsoneditor-button-group-value-asc input.jsoneditor-button-asc,.jsoneditor-modal .jsoneditor-button-group.jsoneditor-button-group-value-desc input.jsoneditor-button-desc{background:#3883fa;border-color:#3883fa;color:#fff}.jsoneditor{border:thin solid #3883fa;box-sizing:border-box;height:100%;line-height:100%;padding:0;position:relative;width:100%}a.jsoneditor-value,div.jsoneditor-default,div.jsoneditor-field,div.jsoneditor-readonly,div.jsoneditor-value{word-wrap:break-word;border:1px solid #0000;float:left;line-height:16px;margin:1px;min-height:16px;min-width:32px;overflow-wrap:break-word;padding:2px;word-break:break-word}div.jsoneditor-value.jsoneditor-empty:after{content:"value"}div.jsoneditor-value.jsoneditor-string{color:#006000}div.jsoneditor-value.jsoneditor-boolean{color:#ff8c00}div.jsoneditor-value.jsoneditor-null{color:#004ed0}div.jsoneditor-readonly{color:grey;min-width:16px}div.jsoneditor-empty{border-color:#d3d3d3;border-radius:2px;border-style:dashed}div.jsoneditor-field.jsoneditor-empty:after{content:"field"}div.jsoneditor td,div.jsoneditor td.jsoneditor-tree{vertical-align:top}div.jsoneditor td.jsoneditor-separator{color:grey;padding:3px 0;vertical-align:top}div.jsoneditor.busy pre.jsoneditor-preview{background:#f5f5f5;color:grey}.monaco-editor .rename-box.preview .rename-label,.monaco-progress-container.active .progress-bit,div.jsoneditor.busy div.jsoneditor-busy{display:inherit}.ace-jsoneditor .ace_indent-guide,.hc-black .monaco-custom-toggle,.hc-black .monaco-custom-toggle:hover,.hc-light .monaco-custom-toggle,.hc-light .monaco-custom-toggle:hover,.modified-in-monaco-diff-editor.hc-black .slider.active,.modified-in-monaco-diff-editor.hc-light .slider.active,.monaco-scrollable-element.modified-in-monaco-diff-editor.hc-black .scrollbar,.monaco-scrollable-element.modified-in-monaco-diff-editor.hc-light .scrollbar,.quick-input-list .monaco-list-row.focused .monaco-keybinding-key,div.jsoneditor code.jsoneditor-preview{background:none}div.jsoneditor.jsoneditor-mode-preview pre.jsoneditor-preview{box-sizing:border-box;height:100%;margin:0;overflow:auto;padding:2px;white-space:pre-wrap;width:100%;word-break:break-all}div.jsoneditor-default{color:grey;padding-left:10px}div.jsoneditor-tree{background:#fff;height:100%;overflow:auto;position:relative;width:100%}div.jsoneditor-tree button.jsoneditor-button{background-color:initial;background-image:url(/assets/images/jsoneditor-icons-15f2789dd231f36d43a4839306b3a2cb.svg);border:none;cursor:pointer;height:24px;margin:0;padding:0;width:24px}div.jsoneditor-tree button.jsoneditor-button:focus{background-color:#f5f5f5;outline:#e5e5e5 solid 1px}div.jsoneditor-tree button.jsoneditor-collapsed{background-position:0 -48px}div.jsoneditor-tree button.jsoneditor-expanded{background-position:0 -72px}div.jsoneditor-tree button.jsoneditor-contextmenu-button{background-position:-48px -72px}div.jsoneditor-tree button.jsoneditor-invisible{background:none;visibility:hidden}div.jsoneditor-tree button.jsoneditor-dragarea{background-image:url(/assets/images/jsoneditor-icons-15f2789dd231f36d43a4839306b3a2cb.svg);background-position:-72px -72px;cursor:move}div.jsoneditor-tree div.jsoneditor-show-more{background-color:#e5e5e5;border-radius:3px;color:grey;display:inline-block;font-family:arial,sans-serif;font-size:14px;margin:2px 0;padding:3px 4px}div.jsoneditor-tree div.jsoneditor-show-more a{color:grey;display:inline-block}div.jsoneditor-tree div.jsoneditor-color{border:1px solid grey;cursor:pointer;display:inline-block;height:12px;margin:4px;width:12px}div.jsoneditor-tree div.jsoneditor-date{background:#a1a1a1;border-radius:3px;color:#fff;display:inline-block;font-family:arial,sans-serif;margin:0 3px;padding:3px}div.jsoneditor-tree table.jsoneditor-tree{border-collapse:collapse;border-spacing:0;width:100%}div.jsoneditor-tree .jsoneditor-button.jsoneditor-schema-error{background-color:initial;background-image:url(/assets/images/jsoneditor-icons-15f2789dd231f36d43a4839306b3a2cb.svg);background-position:-168px -48px;height:24px;margin:0 4px 0 0;padding:0;width:24px}div.jsoneditor-outer{box-sizing:border-box;height:100%;margin:0;padding:0;position:static;width:100%}div.jsoneditor-outer.has-nav-bar{margin-top:-26px;padding-top:26px}div.jsoneditor-outer.has-nav-bar.has-main-menu-bar{margin-top:-61px;padding-top:61px}div.jsoneditor-outer.has-status-bar{margin-bottom:-26px;padding-bottom:26px}div.jsoneditor-outer.has-main-menu-bar{margin-top:-35px;padding-top:35px}div.jsoneditor-busy{box-sizing:border-box;display:none;left:0;position:absolute;text-align:center;top:15%;width:100%}div.jsoneditor-busy span{background-color:#ffffab;border:1px solid #fe0;border-radius:3px;box-shadow:0 0 5px #0006;padding:5px 15px}div.jsoneditor-field.jsoneditor-empty:after,div.jsoneditor-value.jsoneditor-empty:after{color:#d3d3d3;font-size:8pt;pointer-events:none}a.jsoneditor-value.jsoneditor-url,div.jsoneditor-value.jsoneditor-url{color:#006000;text-decoration:underline}a.jsoneditor-value.jsoneditor-url{display:inline-block;margin:2px;padding:2px}div.jsoneditor-field.jsoneditor-highlight,div.jsoneditor-field[contenteditable=true]:focus,div.jsoneditor-field[contenteditable=true]:hover,div.jsoneditor-value.jsoneditor-highlight,div.jsoneditor-value[contenteditable=true]:focus,div.jsoneditor-value[contenteditable=true]:hover{background-color:#ffffab;border:1px solid #fe0;border-radius:2px}div.jsoneditor-field.jsoneditor-highlight-active,div.jsoneditor-field.jsoneditor-highlight-active:focus,div.jsoneditor-field.jsoneditor-highlight-active:hover,div.jsoneditor-value.jsoneditor-highlight-active,div.jsoneditor-value.jsoneditor-highlight-active:focus,div.jsoneditor-value.jsoneditor-highlight-active:hover{background-color:#fe0;border:1px solid #ffc700;border-radius:2px}div.jsoneditor-value.jsoneditor-array,div.jsoneditor-value.jsoneditor-object{min-width:16px}div.jsoneditor-tree button.jsoneditor-contextmenu-button.jsoneditor-selected,div.jsoneditor-tree button.jsoneditor-contextmenu-button:focus,div.jsoneditor-tree button.jsoneditor-contextmenu-button:hover,tr.jsoneditor-selected.jsoneditor-first button.jsoneditor-contextmenu-button{background-position:-48px -48px}.ace-jsoneditor,textarea.jsoneditor-text{min-height:150px}.ace-jsoneditor.ace_editor,textarea.jsoneditor-text.ace_editor{font-family:consolas,menlo,monaco,Ubuntu Mono,source-code-pro,monospace}textarea.jsoneditor-text{background-color:#fff;border:none;box-sizing:border-box;height:100%;margin:0;outline-width:0;resize:none;width:100%}tr.jsoneditor-highlight,tr.jsoneditor-selected{background-color:#d3d3d3}.monaco-custom-toggle.monaco-checkbox:not(.checked):before,tr.jsoneditor-selected button.jsoneditor-contextmenu-button,tr.jsoneditor-selected button.jsoneditor-dragarea{visibility:hidden}div.jsoneditor-tree button.jsoneditor-dragarea:focus,div.jsoneditor-tree button.jsoneditor-dragarea:hover,tr.jsoneditor-selected.jsoneditor-first button.jsoneditor-dragarea{background-position:-72px -48px}.jsoneditor-popover,.jsoneditor-schema-error,div.jsoneditor td,div.jsoneditor textarea,div.jsoneditor th,div.jsoneditor-field,div.jsoneditor-value,pre.jsoneditor-preview{color:#1a1a1a;font-family:consolas,menlo,monaco,Ubuntu Mono,source-code-pro,monospace;font-size:14px}.jsoneditor-schema-error{cursor:default;display:inline-block;height:24px;line-height:24px;position:relative;text-align:center;width:24px}.jsoneditor-popover{background-color:#4c4c4c;border-radius:3px;box-shadow:0 0 5px #0006;color:#fff;cursor:auto;padding:7px 10px;position:absolute;width:200px}.jsoneditor-popover.jsoneditor-above{bottom:32px;left:-98px}.jsoneditor-popover.jsoneditor-above:before{border-top:7px solid #4c4c4c;bottom:-7px}.jsoneditor-popover.jsoneditor-below{left:-98px;top:32px}.jsoneditor-popover.jsoneditor-below:before{border-bottom:7px solid #4c4c4c;top:-7px}.jsoneditor-popover.jsoneditor-left:before,.jsoneditor-popover.jsoneditor-right:before{border-bottom:7px solid #0000;border-top:7px solid #0000;margin-left:inherit;margin-top:-7px;top:19px;position:absolute;content:""}.jsoneditor-popover.jsoneditor-left{right:32px;top:-7px}.jsoneditor-popover.jsoneditor-left:before{border-left:7px solid #4c4c4c;left:inherit;right:-14px}.jsoneditor-popover.jsoneditor-right{left:32px;top:-7px}.jsoneditor-popover.jsoneditor-right:before{border-right:7px solid #4c4c4c;left:-14px}.jsoneditor-popover:before{border-left:7px solid #0000;border-right:7px solid #0000;content:"";display:block;left:50%;margin-left:-7px;position:absolute}.jsoneditor-text-errors tr.jump-to-line:hover,.jsoneditor-treepath span.jsoneditor-treepath-element:hover,.jsoneditor-treepath span.jsoneditor-treepath-seperator:hover{cursor:pointer;text-decoration:underline}.jsoneditor-schema-error:focus .jsoneditor-popover,.jsoneditor-schema-error:hover .jsoneditor-popover{animation:.3s linear j,.3s linear move-up;display:block}.jsoneditor .jsoneditor-validation-errors-container{max-height:130px;overflow-y:auto}.jsoneditor .jsoneditor-validation-errors{overflow:hidden;width:100%}.jsoneditor .jsoneditor-additional-errors{background-color:#ebebeb;border-radius:8px;bottom:31px;color:grey;left:calc(50% - 92px);margin:auto;padding:7px 15px;position:absolute}.jsoneditor .jsoneditor-additional-errors.visible{opacity:1;transition:opacity 2s linear;visibility:visible}.jsoneditor .jsoneditor-additional-errors.hidden{opacity:0;transition:visibility 0s 2s,opacity 2s linear;visibility:hidden}.jsoneditor .jsoneditor-text-errors{border-collapse:collapse;border-top:1px solid #ffc700;width:100%}.jsoneditor .jsoneditor-text-errors td{padding:3px 6px;vertical-align:middle}.jsoneditor .jsoneditor-text-errors td pre{margin:0;white-space:pre-wrap}.jsoneditor .jsoneditor-text-errors tr{background-color:#ffffab}.jsoneditor .jsoneditor-text-errors tr.parse-error{background-color:rgba(238,46,46,.439)}.jsoneditor-menu>.jsoneditor-modes>button,.jsoneditor-menu>button,.jsoneditor-text-errors tr .jsoneditor-schema-error,.jsoneditor-text-errors tr.parse-error .jsoneditor-schema-error{background-color:initial;background-image:url(/assets/images/jsoneditor-icons-15f2789dd231f36d43a4839306b3a2cb.svg)}.jsoneditor-text-errors .jsoneditor-schema-error{border:none;cursor:pointer;height:24px;margin:0 4px 0 0;padding:0;width:24px}.jsoneditor-text-errors tr .jsoneditor-schema-error{background-position:-168px -48px}.jsoneditor-text-errors tr.parse-error .jsoneditor-schema-error{background-position:-25px 0}.jsoneditor-anchor .picker_wrapper.popup.popup_bottom{left:-10px;top:28px}.fadein{animation:.3s l;-moz-animation:.3s l;-o-animation:.3s l}.jsoneditor-modal input[type=search].selectr-input{border:1px solid #d3d3d3;box-sizing:border-box;margin:2px;padding:4px;width:calc(100% - 4px)}.jsoneditor-modal button.selectr-input-clear{right:8px}.jsoneditor-menu{background-color:#3883fa;border-bottom:1px solid #3883fa;box-sizing:border-box;color:#fff;height:35px;margin:0;padding:2px;width:100%}.jsoneditor-menu>.jsoneditor-modes>button,.jsoneditor-menu>button{border:1px solid #0000;border-radius:2px;color:#fff;float:left;font-family:arial,sans-serif;font-size:14px;height:26px;margin:2px;opacity:.8;padding:0;width:26px}.jsoneditor-menu>.jsoneditor-modes>button:hover,.jsoneditor-menu>button:hover{background-color:#fff3;border:1px solid #fff6}.jsoneditor-menu>.jsoneditor-modes>button:active,.jsoneditor-menu>.jsoneditor-modes>button:focus,.jsoneditor-menu>button:active,.jsoneditor-menu>button:focus{background-color:#ffffff4d}.jsoneditor-menu>.jsoneditor-modes>button:disabled,.jsoneditor-menu>button:disabled{background-color:initial;border:none;opacity:.5}.jsoneditor-menu>button.jsoneditor-collapse-all{background-position:0 -96px}.jsoneditor-menu>button.jsoneditor-expand-all{background-position:0 -120px}.jsoneditor-menu>button.jsoneditor-sort{background-position:-120px -96px}.jsoneditor-menu>button.jsoneditor-transform{background-position:-144px -96px}.has-selected .selectr-placeholder,.jsoneditor-treepath.show-all span.jsoneditor-treepath-show-all-btn,.jsoneditor.jsoneditor-mode-form>.jsoneditor-menu>button.jsoneditor-sort,.jsoneditor.jsoneditor-mode-form>.jsoneditor-menu>button.jsoneditor-transform,.jsoneditor.jsoneditor-mode-view>.jsoneditor-menu>button.jsoneditor-sort,.jsoneditor.jsoneditor-mode-view>.jsoneditor-menu>button.jsoneditor-transform,.selectr-clear,.selectr-desktop.multiple .selectr-visible,.selectr-empty,.selectr-input-clear,.selectr-option.excluded,.taggable .selectr-placeholder{display:none}.jsoneditor-menu>button.jsoneditor-undo{background-position:-24px -96px}.jsoneditor-menu>button.jsoneditor-undo:disabled{background-position:-24px -120px}.jsoneditor-menu>button.jsoneditor-redo{background-position:-48px -96px}.jsoneditor-menu>button.jsoneditor-redo:disabled{background-position:-48px -120px}.jsoneditor-menu>button.jsoneditor-compact{background-position:-72px -96px}.jsoneditor-menu>button.jsoneditor-format{background-position:-72px -120px}.jsoneditor-menu>button.jsoneditor-repair{background-position:-96px -96px}.jsoneditor-menu>.jsoneditor-modes{display:inline-block;float:left}.jsoneditor-menu>.jsoneditor-modes>button{background-image:none;padding-left:6px;padding-right:6px;width:auto}.jsoneditor-menu>.jsoneditor-modes>button.jsoneditor-separator,.jsoneditor-menu>button.jsoneditor-separator,.quick-input-widget.show-checkboxes .quick-input-list .quick-input-list-rows{margin-left:10px}.jsoneditor-menu a{color:#fff;font-family:arial,sans-serif;font-size:14px;opacity:.8;vertical-align:middle}.jsoneditor-menu a.jsoneditor-poweredBy{font-size:8pt;padding:10px;position:absolute;right:0;top:0}.jsoneditor-navigation-bar{background-color:#ebebeb;border-bottom:1px solid #d3d3d3;box-sizing:border-box;color:grey;font-family:arial,sans-serif;font-size:14px;height:26px;line-height:26px;margin:0;overflow:hidden;padding:0;width:100%}.jsoneditor-search{border-collapse:collapse;border-spacing:0;display:flex;font-family:arial,sans-serif;position:absolute;right:4px;top:4px}.jsoneditor-search input{border:none;color:#1a1a1a;font-family:arial,sans-serif;line-height:20px;margin:1px;outline:0;width:120px}.jsoneditor-search button{background:url(/assets/images/jsoneditor-icons-15f2789dd231f36d43a4839306b3a2cb.svg);border:none;height:24px;margin:0;padding:0;vertical-align:top;width:16px}.jsoneditor-search button.jsoneditor-refresh{background-position:-99px -73px;width:18px}.jsoneditor-search button.jsoneditor-next{background-position:-124px -73px;cursor:pointer}.jsoneditor-search button.jsoneditor-next:hover{background-position:-124px -49px}.jsoneditor-search button.jsoneditor-previous{background-position:-148px -73px;cursor:pointer;margin-right:2px}.jsoneditor-search button.jsoneditor-previous:hover{background-position:-148px -49px}.jsoneditor-results{color:#fff;font-family:arial,sans-serif;line-height:26px;padding-right:5px}.jsoneditor-frame{background-color:#fff;border:1px solid #0000;margin:0;padding:0 2px}.jsoneditor-statusbar{background-color:#ebebeb;border-top:1px solid #d3d3d3;box-sizing:border-box;color:grey;font-size:14px;height:26px;line-height:26px}.jsoneditor-statusbar>.jsoneditor-curserinfo-val{margin-right:12px}.jsoneditor-statusbar>.jsoneditor-curserinfo-count,.monaco-tree-type-filter-actionbar{margin-left:4px}.jsoneditor-statusbar>.jsoneditor-validation-error-icon{background-image:url(/assets/images/jsoneditor-icons-15f2789dd231f36d43a4839306b3a2cb.svg);background-position:-168px -48px;cursor:pointer;float:right;height:24px;margin-top:1px;padding:0;width:24px}.jsoneditor-statusbar>.jsoneditor-validation-error-count{cursor:pointer;float:right;margin:0 4px 0 0}.jsoneditor-statusbar>.jsoneditor-parse-error-icon{background-image:url(/assets/images/jsoneditor-icons-15f2789dd231f36d43a4839306b3a2cb.svg);background-position:-25px 0;float:right;height:24px;margin:1px;padding:0;width:24px}div.jsoneditor-statusbar>.jsoneditor-curserinfo-label,div.jsoneditor-statusbar>.jsoneditor-size-info{margin:0 4px}.jsoneditor-treepath{outline:0;overflow:hidden;padding:0 5px;white-space:nowrap}.jsoneditor-treepath.show-all{word-wrap:break-word;background-color:#ebebeb;box-shadow:2px 2px 12px #8080804d;position:absolute;white-space:normal;z-index:1}.imagePreviewDescriptionContainer_H4hc code,.monaco-editor .suggest-preview-additional-widget,.monaco-editor .view-lines,.monaco-icon-label.nowrap>.monaco-icon-label-container>.monaco-icon-description-container>.label-description,.monaco-inputbox>.ibwrapper>textarea.input.empty,.selectr-label{white-space:nowrap}.jsoneditor-treepath div.jsoneditor-contextmenu-root{left:0;position:absolute}.jsoneditor-treepath .jsoneditor-treepath-show-all-btn{background-color:#ebebeb;cursor:pointer;height:20px;left:0;padding:0 3px;position:absolute}.jsoneditor-treepath .jsoneditor-treepath-element{font-family:arial,sans-serif;font-size:14px;margin:1px}.jsoneditor-treepath .jsoneditor-treepath-seperator{font-family:arial,sans-serif;font-size:9pt;margin:2px}.monaco-findInput,.quick-input-progress.monaco-progress-container,.selectr-container{position:relative}.containsTaskList_mC6p,.selectr-container li{list-style:none}.selectr-hidden{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.selectr-visible{height:100%;left:0;opacity:0;position:absolute;top:0;width:100%;z-index:11}.selectr-desktop.multiple.native-open .selectr-visible{display:block;height:auto;min-height:200px!important;opacity:1;top:100%}.selectr-container.multiple.selectr-mobile .selectr-selected{z-index:0}.selectr-selected{background-color:#fff;border:1px solid #999;border-radius:3px;box-sizing:border-box;cursor:pointer;padding:7px 28px 7px 14px;position:relative;width:100%;z-index:1}.selectr-selected:before{border-color:#6c7a86 #0000 #0000;border-style:solid;border-width:4px 4px 0;content:"";height:0;position:absolute;right:10px;top:50%;transform:rotate(0) translate3d(0,-50%,0);width:0}.selectr-container.native-open .selectr-selected:before,.selectr-container.open .selectr-selected:before{border-color:#0000 #0000 #6c7a86;border-style:solid;border-width:0 4px 4px}.selectr-label{display:none;overflow:hidden;text-overflow:ellipsis;width:100%}.selectr-placeholder{color:#6c7a86}.selectr-tags{margin:0;padding:0;white-space:normal}.has-selected .selectr-tags{margin:0 0 -2px}.selectr-tag{background:#acb7bf;border:none;border-radius:10px;color:#fff;cursor:default;float:left;list-style:none;margin:0 2px 2px 0;padding:2px 25px 2px 8px;position:relative}.selectr-container.multiple.has-selected .selectr-selected{padding:5px 28px 5px 5px}.selectr-options-container{background-color:#fff;border:1px solid #999;border-radius:0 0 3px 3px;border-top:0 solid #0000;box-sizing:border-box;display:none;left:0;position:absolute;top:calc(100% - 1px);width:100%;z-index:10000}.selectr-input-container{display:none;position:relative}.selectr-clear,.selectr-input-clear,.selectr-tag-remove{background-color:initial;border:none;cursor:pointer;height:20px;padding:0;position:absolute;right:22px;top:50%;transform:translate3d(0,-50%,0);width:20px;z-index:11}.selectr-selected .selectr-tag-remove{right:2px}.selectr-clear:after,.selectr-clear:before,.selectr-input-clear:after,.selectr-input-clear:before,.selectr-tag-remove:after,.selectr-tag-remove:before{background-color:#6c7a86;content:" ";height:10px;left:9px;position:absolute;top:5px;width:2px}.selectr-tag-remove:after,.selectr-tag-remove:before{background-color:#fff;height:12px;top:4px;width:3px}.selectr-clear:after,.selectr-input-clear:after,.selectr-tag-remove:after{transform:rotate(-45deg)}.selectr-input{border:1px solid #999;border-radius:3px;box-sizing:border-box;left:5px;margin:10px 15px;padding:7px 30px 7px 9px;top:5px;width:calc(100% - 30px)}.selectr-notice{background-color:#fff;border-radius:0 0 3px 3px;border-top:1px solid #999;box-sizing:border-box;display:none;padding:8px 16px;width:100%}.input-tag,.taggable .selectr-label{width:auto}.selectr-container.notice .selectr-selected{border-radius:3px 3px 0 0}.selectr-options{display:none;margin:0;max-height:200px;overflow-x:auto;overflow-y:scroll;padding:0;position:relative;top:calc(100% + 2px)}.selectr-option{cursor:pointer;display:block;font-weight:400;list-style:none;padding:5px 20px;position:relative}.selectr-options.optgroups>.selectr-option{padding-left:25px}.selectr-optgroup{font-weight:700;padding:0}.selectr-optgroup--label{font-weight:700;margin-top:10px;padding:5px 15px}.selectr-option.selected{background-color:#ddd}.selectr-option.active{background-color:#5897fb;color:#fff}.codicon-modifier-disabled,.selectr-option.disabled{opacity:.4}.selectr-container.open .selectr-selected{border-color:#999 #999 #0000;border-radius:3px 3px 0 0}.selectr-container.open .selectr-selected:after{transform:rotate(180deg) translate3d(0,50%,0)}.monaco-editor .marker-widget .descriptioncontainer .message .source,.monaco-editor .marker-widget .descriptioncontainer .message span.code,.monaco-editor .monaco-hover .hover-row .verbosity-actions .codicon.disabled,.selectr-disabled{opacity:.6}.taggable .selectr-selected{padding:4px 28px 4px 4px}.taggable .selectr-selected:after{clear:both;content:" ";display:table}.taggable .selectr-tags{display:block;float:left}.input-tag{float:left;min-width:90px}.selectr-tag-input{border:none;font-family:inherit;font-size:inherit;font-weight:inherit;padding:3px 10px;width:100%}.selectr-input-container.loading:after{animation:.5s linear infinite forwards a;border:3px solid #ddd;border-radius:50%;border-top-color:#aaa;content:"";height:20px;position:absolute;right:20px;top:50%;transform:translate3d(0,-50%,0);transform-origin:50% 0 0;width:20px}@keyframes a{0%{transform:rotate(0) translate3d(0,-50%,0)}to{transform:rotate(1turn) translate3d(0,-50%,0)}}.selectr-container.open.inverted .selectr-selected{border-color:#0000 #999 #999;border-radius:0 0 3px 3px}.selectr-container.inverted .selectr-options-container{background-color:#fff;border-color:#999 #999 #0000;border-radius:3px 3px 0 0;border-width:1px 1px 0;bottom:calc(100% - 1px);top:auto}.selectr-container ::placeholder{color:#6c7a86;opacity:1}.jsoneditor{color:none}.quick-input-list .monaco-list-row,div.jsoneditor{border-radius:3px}div.jsoneditor,div.jsoneditor-menu{border-color:#4b4b4b;color:#fcf5f5}div.jsoneditor-menu{background-color:#4b4b4b}[data-theme=dark] .ace_editor{color:#6c6783;font-size:16px}[data-theme=light] .ace_editor{color:#000;font-size:16px}[data-theme=dark] .ace_editor .ace_gutter{background:#2a2734;color:#6c6783}[data-theme=light] .ace_editor .ace_gutter{background:#fff;color:#616161}[data-theme=dark] .ace_content{background-color:#2a2734}[data-theme=light] .ace_content{background-color:#fff}[data-theme=dark] .ace_content .ace_variable{color:#9a86fd}[data-theme=light] .ace_content .ace_variable{color:#6f54fa}[data-theme=dark] .ace_line{color:#6c6783}[data-theme=light] .ace_line{color:#616161}[data-theme=dark] .ace_editor .ace_content .ace_string{color:#fc9}[data-theme=light] .ace_editor .ace_content .ace_string{color:#f93}.ace_editor .ace_content .ace_numeric,[data-theme=dark] .ace_editor .ace_content .ace_bool{color:#e09142}.ace_editor .ace_content .ace_numeric,[data-theme=light] .ace_editor .ace_content .ace_bool{color:#e07000}[data-theme=dark] .ace-jsoneditor .ace_gutter-active-line,[data-theme=dark] .ace-jsoneditor .ace_marker-layer .ace_active-line{background-color:#3e3a4c;color:#6c6783}[data-theme=light] .ace-jsoneditor .ace_gutter-active-line,[data-theme=light] .ace-jsoneditor .ace_marker-layer .ace_active-line{background-color:#ebebeb;color:#6c6783}[data-theme=dark] .ace_content .ace_cursor{border-color:#949494}[data-theme=light] .ace_content .ace_cursor{border-color:#000}[data-theme=dark] .ace_editor .ace_marker-layer .ace_selection{background:#625e71}[data-theme=light] .ace_editor .ace_marker-layer .ace_selection{background:#dedede}.ace-jsoneditor .ace_marker-layer .ace_selected-word,.ace_editor .ace_ .ace_editor .ace_marker-layer .ace_selected-word{border:none}.monaco-editor.hc-black .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-editor.hc-light .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-menu .monaco-action-bar.vertical .action-item .action-menu-item:focus .action-label{stroke-width:1.2px}.monaco-aria-container{clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;top:0;width:1px;left:-999em}.monaco-diff-editor .synthetic-focus,.monaco-diff-editor [tabindex="-1"]:focus,.monaco-diff-editor [tabindex="0"]:focus,.monaco-diff-editor button:focus,.monaco-diff-editor input[type=button]:focus,.monaco-diff-editor input[type=checkbox]:focus,.monaco-diff-editor input[type=search]:focus,.monaco-diff-editor input[type=text]:focus,.monaco-diff-editor select:focus,.monaco-diff-editor textarea:focus,.monaco-editor{opacity:1;outline-color:var(--vscode-focusBorder);outline-offset:-1px;outline-style:solid;outline-width:1px}::-ms-clear{display:none}.monaco-editor{--monaco-monospace-font:"SF Mono",Monaco,Menlo,Consolas,"Ubuntu Mono","Liberation Mono","DejaVu Sans Mono","Courier New",monospace;font-family:-apple-system,BlinkMacSystemFont,Segoe WPC,Segoe UI,HelveticaNeue-Light,system-ui,Ubuntu,Droid Sans,sans-serif;-webkit-text-size-adjust:100%;color:var(--vscode-editor-foreground);overflow:visible;position:relative}.monaco-editor,.monaco-editor-background{background-color:var(--vscode-editor-background)}.monaco-editor .rangeHighlight{background-color:var(--vscode-editor-rangeHighlightBackground);border:1px solid var(--vscode-editor-rangeHighlightBorder);box-sizing:border-box}.monaco-editor.hc-black .focused .selectionHighlight,.monaco-editor.hc-black .rangeHighlight,.monaco-editor.hc-black .symbolHighlight,.monaco-editor.hc-black .wordHighlight,.monaco-editor.hc-black .wordHighlightStrong,.monaco-editor.hc-black .wordHighlightText,.monaco-editor.hc-light .focused .selectionHighlight,.monaco-editor.hc-light .rangeHighlight,.monaco-editor.hc-light .symbolHighlight,.monaco-editor.hc-light .wordHighlight,.monaco-editor.hc-light .wordHighlightStrong,.monaco-editor.hc-light .wordHighlightText{border-style:dotted}.monaco-editor .symbolHighlight{background-color:var(--vscode-editor-symbolHighlightBackground);border:1px solid var(--vscode-editor-symbolHighlightBorder);box-sizing:border-box}.monaco-editor .overflow-guard{overflow:hidden;position:relative}.monaco-editor .cursors-layer,.monaco-editor .glyph-margin,.monaco-editor .view-overlays{position:absolute;top:0}.monaco-editor .margin-view-overlays>div,.monaco-editor .view-line,.monaco-editor .view-overlays>div{position:absolute;width:100%}.monaco-editor .squiggly-error{border-bottom:4px double var(--vscode-editorError-border)}.monaco-editor .squiggly-error:before{background:var(--vscode-editorError-background);content:"";display:block;height:100%;width:100%}.monaco-editor .squiggly-warning{border-bottom:4px double var(--vscode-editorWarning-border)}.monaco-editor .squiggly-warning:before{background:var(--vscode-editorWarning-background);content:"";display:block;height:100%;width:100%}.monaco-editor .squiggly-info{border-bottom:4px double var(--vscode-editorInfo-border)}.monaco-editor .squiggly-info:before{background:var(--vscode-editorInfo-background);content:"";display:block;height:100%;width:100%}.monaco-editor .squiggly-hint{border-bottom:2px dotted var(--vscode-editorHint-border)}.monaco-editor.showUnused .squiggly-unnecessary{border-bottom:2px dashed var(--vscode-editorUnnecessaryCode-border)}.monaco-editor.showDeprecated .squiggly-inline-deprecated{text-decoration:line-through;text-decoration-color:var(--vscode-editor-foreground,inherit)}.monaco-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.monaco-scrollable-element>.visible{background:#0000;opacity:1;transition:opacity .1s linear;z-index:11}.monaco-scrollable-element>.invisible{opacity:0;pointer-events:none}.monaco-scrollable-element>.invisible.fade{transition:opacity .8s linear}.monaco-scrollable-element>.shadow{display:none;position:absolute}.monaco-scrollable-element>.shadow.top{box-shadow:var(--vscode-scrollbar-shadow) 0 6px 6px -6px inset;display:block;height:3px;left:3px;top:0;width:100%}.monaco-scrollable-element>.shadow.left,.monaco-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow) 6px 0 6px -6px inset}.monaco-scrollable-element>.shadow.left{display:block;height:100%;left:0;top:3px;width:3px}.monaco-scrollable-element>.shadow.top-left-corner{display:block;height:3px;left:0;top:0;width:3px}.monaco-diff-editor .diffViewport,.monaco-scrollable-element>.scrollbar>.slider{background:var(--vscode-scrollbarSlider-background)}.monaco-diff-editor .diffViewport:hover,.monaco-scrollable-element>.scrollbar>.slider:hover{background:var(--vscode-scrollbarSlider-hoverBackground)}.monaco-diff-editor .diffViewport:active,.monaco-scrollable-element>.scrollbar>.slider.active{background:var(--vscode-scrollbarSlider-activeBackground)}.monaco-editor .inputarea{background-color:initial;border:none;color:#0000;margin:0;min-height:0;min-width:0;outline:0!important;overflow:hidden;padding:0;position:absolute;resize:none;z-index:-10}.monaco-editor .inputarea.ime-input{caret-color:var(--vscode-editorCursor-foreground);color:var(--vscode-editor-foreground);z-index:10}.monaco-editor .margin-view-overlays .line-numbers{bottom:0;box-sizing:border-box;cursor:default;display:inline-block;font-variant-numeric:tabular-nums;position:absolute;text-align:right;vertical-align:middle}.monaco-editor .relative-current-line-number{display:inline-block;text-align:left;width:100%}.monaco-editor .margin-view-overlays .line-numbers.lh-odd{margin-top:1px}.monaco-editor .line-numbers{color:var(--vscode-editorLineNumber-foreground)}.monaco-editor .mtkw,.monaco-editor .mtkz,.monaco-editor .mwh{color:var(--vscode-editorWhitespace-foreground)!important}.monaco-editor .line-numbers.active-line-number{color:var(--vscode-editorLineNumber-activeForeground)}.monaco-editor .margin{background-color:var(--vscode-editorGutter-background)}.monaco-mouse-cursor-text{cursor:text}.monaco-editor .blockDecorations-container{pointer-events:none;position:absolute;top:0}.monaco-editor .blockDecorations-block{box-sizing:border-box;position:absolute}.monaco-editor .margin-view-overlays .current-line,.monaco-editor .view-overlays .current-line{box-sizing:border-box;display:block;height:100%;left:0;position:absolute;top:0}.monaco-editor .margin-view-overlays - .current-line.current-line-margin.current-line-margin-both{border-right:0}.monaco-editor .lines-content .cdr,.monaco-editor .margin-view-overlays .cldr{height:100%;position:absolute}.monaco-editor .glyph-margin-widgets .cgmr{align-items:center;display:flex;justify-content:center;position:absolute}.monaco-editor .glyph-margin-widgets .cgmr.codicon-modifier-spin:before{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.monaco-editor .lines-content .core-guide{box-sizing:border-box;height:100%;position:absolute}.mtkcontrol{background:#960000!important;color:#fff!important}.mtkoverflow{background-color:var(--vscode-button-background,var(--vscode-editor-background));border-color:var(--vscode-contrastBorder);border-radius:2px;border-style:solid;border-width:1px;color:var(--vscode-button-foreground,var(--vscode-editor-foreground));cursor:pointer;padding:4px}.monaco-button-dropdown.default-colors>.monaco-button:hover,.monaco-button.default-colors:hover,.mtkoverflow:hover{background-color:var(--vscode-button-hoverBackground)}.monaco-editor .suggest-widget .monaco-list,.monaco-editor.no-user-select .lines-content,.monaco-editor.no-user-select .view-line,.monaco-editor.no-user-select .view-lines,.monaco-list.mouse-support{user-select:none;-webkit-user-select:none}.monaco-editor.mac .lines-content:hover,.monaco-editor.mac .view-line:hover,.monaco-editor.mac .view-lines:hover{user-select:text;-webkit-user-select:text;-ms-user-select:text}.monaco-editor.enable-user-select{user-select:auto;-webkit-user-select:initial}.monaco-editor .lines-content>.view-lines>.view-line>span{bottom:0;position:absolute;top:0}.monaco-editor .lines-decorations{background:#fff;position:absolute;top:0}.monaco-editor .margin-view-overlays .cmdr{height:100%;left:0;position:absolute;width:100%}.monaco-editor .minimap.slider-mouseover .minimap-slider{opacity:0;transition:opacity .1s linear}.monaco-editor .minimap-slider .minimap-slider-horizontal{background:var(--vscode-minimapSlider-background)}.monaco-editor .minimap-slider:hover .minimap-slider-horizontal{background:var(--vscode-minimapSlider-hoverBackground)}.monaco-editor .minimap-slider.active .minimap-slider-horizontal{background:var(--vscode-minimapSlider-activeBackground)}.monaco-editor .minimap-shadow-hidden{position:absolute;width:0}.monaco-editor .minimap-shadow-visible{box-shadow:var(--vscode-scrollbar-shadow) -6px 0 6px -6px inset;left:-6px;position:absolute;width:6px}.monaco-editor.no-minimap-shadow .minimap-shadow-visible{left:-1px;position:absolute;width:1px}.minimap.autohide{opacity:0;transition:opacity .5s}.monaco-editor .minimap{z-index:5}.monaco-editor .overlayWidgets{left:0;position:absolute;top:0}.monaco-editor .view-ruler{box-shadow:1px 0 0 0 var(--vscode-editorRuler-foreground) inset;position:absolute;top:0}.monaco-editor .scroll-decoration{box-shadow:var(--vscode-scrollbar-shadow) 0 6px 6px -6px inset;height:6px;left:0;position:absolute;top:0}.context-view,.monaco-diff-editor .diff-review,.monaco-editor .lines-content .cslr{position:absolute}.monaco-editor .focused .selected-text{background-color:var(--vscode-editor-selectionBackground)}.monaco-editor .selected-text{background-color:var(--vscode-editor-inactiveSelectionBackground)}.monaco-editor .top-left-radius{border-top-left-radius:3px}.monaco-editor .bottom-left-radius{border-bottom-left-radius:3px}.monaco-editor .top-right-radius{border-top-right-radius:3px}.monaco-editor .bottom-right-radius{border-bottom-right-radius:3px}.monaco-editor.hc-black .top-left-radius,.monaco-editor.hc-light .top-left-radius{border-top-left-radius:0}.monaco-editor.hc-black .bottom-left-radius,.monaco-editor.hc-light .bottom-left-radius{border-bottom-left-radius:0}.monaco-editor.hc-black .top-right-radius,.monaco-editor.hc-light .top-right-radius{border-top-right-radius:0}.monaco-editor.hc-black .bottom-right-radius,.monaco-editor.hc-light .bottom-right-radius{border-bottom-right-radius:0}.monaco-editor .cursors-layer>.cursor{box-sizing:border-box;overflow:hidden;position:absolute}.monaco-editor .cursors-layer.cursor-smooth-caret-animation>.cursor{transition:80ms}.monaco-editor .cursors-layer.cursor-block-outline-style>.cursor{background:#0000!important;border-style:solid;border-width:1px}.monaco-editor .cursors-layer.cursor-underline-style>.cursor{background:#0000!important;border-bottom-style:solid;border-bottom-width:2px}.monaco-editor .cursors-layer.cursor-underline-thin-style>.cursor{background:#0000!important;border-bottom-style:solid;border-bottom-width:1px}@keyframes b{0%,20%{opacity:1}60%,to{opacity:0}}@keyframes c{0%,20%{opacity:1}90%,to{opacity:0}}@keyframes d{0%,20%{transform:scaleY(1)}80%,to{transform:scaleY(0)}}.cursor-smooth{animation:.5s ease-in-out 20 alternate b}.cursor-phase{animation:.5s ease-in-out 20 alternate c}.monaco-editor .codelens-decoration.fadein,.monaco-hover,.monaco-workbench .workbench-hover:not(.skip-fade-in){animation:.1s linear l}.cursor-expand>.cursor{animation:.5s ease-in-out 20 alternate d}.monaco-editor .mwh{position:absolute}.monaco-workbench .workbench-hover{background:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border);border-radius:3px;box-shadow:0 2px 8px var(--vscode-widget-shadow);color:var(--vscode-editorHoverWidget-foreground);font-size:13px;line-height:19px;max-width:700px;overflow:hidden;position:relative;z-index:40}.colorpicker-header.standalone-colorpicker,.monaco-workbench .workbench-hover hr{border-bottom:none}.monaco-action-bar .checkbox-action-item>.checkbox-label,.monaco-workbench .workbench-hover.compact{font-size:12px}.monaco-workbench .workbench-hover.compact .hover-contents{padding:2px 8px}.monaco-workbench .workbench-hover-container.locked .workbench-hover{outline:1px solid var(--vscode-editorHoverWidget-border)}.monaco-workbench .workbench-hover-container.locked .workbench-hover:focus,.monaco-workbench .workbench-hover-lock:focus{outline:1px solid var(--vscode-focusBorder)}.monaco-workbench .workbench-hover-container.locked .workbench-hover-lock:hover{background:var(--vscode-toolbar-hoverBackground)}.monaco-workbench .workbench-hover-pointer{pointer-events:none;position:absolute;z-index:41}.monaco-workbench .workbench-hover-pointer:after{background-color:var(--vscode-editorHoverWidget-background);border-bottom:1px solid var(--vscode-editorHoverWidget-border);border-right:1px solid var(--vscode-editorHoverWidget-border);content:"";height:5px;position:absolute;width:5px}.monaco-workbench .locked .workbench-hover-pointer:after{border-bottom-width:2px;border-right-width:2px;height:4px;width:4px}.monaco-workbench .workbench-hover-pointer.left{left:-3px}.monaco-workbench .workbench-hover-pointer.right{right:3px}.monaco-workbench .workbench-hover-pointer.top{top:-3px}.monaco-workbench .workbench-hover-pointer.bottom{bottom:3px}.monaco-editor .monaco-editor-overlaymessage .message a,.monaco-editor .monaco-hover .hover-row .verbosity-actions .codicon.enabled,.monaco-editor .monaco-hover a,.monaco-editor .parameter-hints-widget .docs a,.monaco-editor .suggest-details a,.monaco-link,.monaco-workbench .workbench-hover a{color:var(--vscode-textLink-foreground)}.monaco-workbench .workbench-hover a:focus{outline:solid 1px;outline-color:var(--vscode-focusBorder);outline-offset:-1px;text-decoration:underline}.monaco-editor .monaco-editor-overlaymessage .message a:hover,.monaco-editor .monaco-hover a:hover,.monaco-editor .suggest-details a:hover,.monaco-hover .hover-contents a.code-link>span:hover,.monaco-link:hover,.monaco-workbench .workbench-hover a:active,.monaco-workbench .workbench-hover a:hover{color:var(--vscode-textLink-activeForeground)}.monaco-workbench .workbench-hover code{background:var(--vscode-textCodeBlock-background)}.monaco-workbench .workbench-hover .hover-row .actions{background:var(--vscode-editorHoverWidget-statusBarBackground)}.monaco-workbench .workbench-hover.right-aligned{left:1px}.monaco-workbench .workbench-hover.right-aligned .hover-row.status-bar .actions{flex-direction:row-reverse}.monaco-workbench .workbench-hover.right-aligned .hover-row.status-bar .actions .action-container{margin-left:16px;margin-right:0}.monaco-hover{box-sizing:border-box;cursor:default;line-height:1.5em;overflow:hidden;position:absolute;user-select:text;-webkit-user-select:text;white-space:var(--vscode-hover-whiteSpace,normal)}.monaco-hover.hidden,.monaco-list-type-filter-message:empty,.quick-input-list .quick-input-list-entry-action-bar .action-label,.quick-input-widget .quick-input-list .quick-input-list-checkbox{display:none}.monaco-hover .hover-contents:not(.html-hover-contents){padding:4px 8px}.hc-black .monaco-select-box-dropdown-container>.select-box-dropdown-list-container,.monaco-select-box-dropdown-container>.select-box-dropdown-list-container{padding-bottom:var(--dropdown-padding-bottom);padding-top:var(--dropdown-padding-top)}.monaco-hover .markdown-hover>.hover-contents:not(.code-hover-contents){word-wrap:break-word;max-width:var(--vscode-hover-maxWidth,500px)}.monaco-hover .markdown-hover>.hover-contents:not(.code-hover-contents) hr{min-width:100%}.monaco-editor .parameter-hints-widget p,.monaco-editor .parameter-hints-widget ul,.monaco-hover .code,.monaco-hover h1,.monaco-hover h2,.monaco-hover h3,.monaco-hover h4,.monaco-hover h5,.monaco-hover h6,.monaco-hover p,.monaco-hover ul{margin:8px 0}.monaco-hover h1,.monaco-hover h2,.monaco-hover h3,.monaco-hover h4,.monaco-hover h5,.monaco-hover h6{line-height:1.1}.monaco-hover hr{border-left:0;border-right:0;box-sizing:border-box;height:1px;margin:4px -8px -4px}.monaco-editor .suggest-details ol,.monaco-editor .suggest-details ul,.monaco-hover ol,.monaco-hover ul{padding-left:20px}.monaco-hover code{font-family:var(--monaco-monospace-font);border-radius:3px;padding:0 .4em}.monaco-hover .monaco-tokenized-source{white-space:var(--vscode-hover-sourceWhiteSpace,pre-wrap)}.monaco-hover .hover-row.status-bar{font-size:12px;line-height:22px}.monaco-hover .hover-row.status-bar .info{font-style:italic;padding:0 8px}.monaco-hover .hover-row.status-bar .actions{display:flex;padding:0 8px;width:100%}.monaco-hover .hover-row.status-bar .actions .action-container{cursor:pointer;margin-right:16px}.monaco-hover .hover-row.status-bar .actions .action-container .action .icon{padding-right:4px}.monaco-hover .markdown-hover .hover-contents .codicon{color:inherit;font-size:inherit;vertical-align:middle}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link:before,.monaco-hover .hover-contents a.code-link:before{content:"("}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link:after,.monaco-hover .hover-contents a.code-link:after{content:")"}.monaco-hover .hover-contents a.code-link>span{border-bottom:1px solid #0000;color:var(--vscode-textLink-foreground);text-decoration:underline;text-underline-position:under}.monaco-hover .markdown-hover .hover-contents:not(.code-hover-contents):not(.html-hover-contents) span{display:inline-block;margin-bottom:4px}.monaco-hover-content .action-container a{-webkit-user-select:none;user-select:none}.monaco-hover-content .action-container.disabled{cursor:default;opacity:.4;pointer-events:none}.monaco-editor .rendered-markdown kbd{background-color:var(--vscode-keybindingLabel-background);border-color:var(--vscode-keybindingLabel-border);border-bottom-color:var(--vscode-keybindingLabel-bottomBorder);border-radius:3px;border-style:solid;border-width:1px;box-shadow:inset 0 -1px 0 var(--vscode-widget-shadow);color:var(--vscode-keybindingLabel-foreground);padding:1px 3px;vertical-align:middle}.rendered-markdown li:has(input[type=checkbox]){list-style-type:none}.context-view.fixed{all:initial;color:inherit;font-family:inherit;font-size:13px;position:fixed}.mac .monaco-action-bar .action-item .monaco-select-box,.monaco-action-bar .action-label{font-size:11px;border-radius:5px}.monaco-list,.monaco-split-view2>.monaco-scrollable-element>.split-view-container{height:100%;position:relative;white-space:nowrap;width:100%}.monaco-inputbox>.ibwrapper,.monaco-list-rows,.monaco-split-view2{height:100%;position:relative;width:100%}.monaco-list.horizontal-scrolling .monaco-list-rows{min-width:100%;width:auto}.monaco-list-row{box-sizing:border-box;overflow:hidden;position:absolute;width:100%}.monaco-list.mouse-support .monaco-list-row{cursor:pointer;touch-action:none}.monaco-list .monaco-scrollable-element>.scrollbar.vertical,.monaco-pane-view>.monaco-split-view2.vertical>.monaco-scrollable-element>.scrollbar.vertical{z-index:14}.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row>.contents>.main>.right>.readMore,.monaco-list-row.scrolling,.quick-input-list .monaco-tl-twistie{display:none!important}.action-widget .monaco-list:focus:before,.monaco-list.element-focused,.monaco-list.selection-multiple,.monaco-list.selection-single{outline:0!important}.monaco-drag-image{border-radius:10px;display:inline-block;font-size:12px;padding:1px 7px;position:absolute;z-index:1000}.monaco-list-type-filter-message{box-sizing:border-box;height:100%;left:0;opacity:.7;padding:40px 1em 1em;pointer-events:none;position:absolute;text-align:center;top:0;white-space:normal;width:100%}.monaco-select-box-dropdown-padding{--dropdown-padding-top:1px;--dropdown-padding-bottom:1px}.hc-black .monaco-select-box-dropdown-padding,.hc-light .monaco-select-box-dropdown-padding{--dropdown-padding-top:3px;--dropdown-padding-bottom:4px}.monaco-select-box-dropdown-container{box-sizing:border-box;display:none;font-size:13px;font-weight:400;text-transform:none}.monaco-select-box-dropdown-container>.select-box-details-pane>.select-box-description-markdown a:focus{outline:-webkit-focus-ring-color solid 1px;outline-offset:-1px}.monaco-select-box-dropdown-container>.select-box-details-pane>.select-box-description-markdown code{font-family:var(--monaco-monospace-font);line-height:15px}.monaco-select-box-dropdown-container.visible{border-bottom-left-radius:3px;border-bottom-right-radius:3px;display:flex;flex-direction:column;overflow:hidden;text-align:left;width:1px}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container{align-self:flex-start;box-sizing:border-box;flex:0 0 auto;overflow:hidden;padding-left:1px;padding-right:1px;width:100%}.monaco-select-box-dropdown-container>.select-box-details-pane{padding:5px}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row>.option-text{float:left;overflow:hidden;padding-left:3.5px;text-overflow:ellipsis;white-space:nowrap}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row>.option-detail{float:left;opacity:.7;overflow:hidden;padding-left:3.5px;text-overflow:ellipsis;white-space:nowrap}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row>.option-decorator-right{float:right;overflow:hidden;padding-right:10px;text-overflow:ellipsis;white-space:nowrap}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row>.visually-hidden{height:1px;left:-10000px;overflow:hidden;position:absolute;top:auto;width:1px}.monaco-select-box-dropdown-container>.select-box-dropdown-container-width-control{align-self:flex-start;flex:1 1 auto;opacity:0}.monaco-select-box-dropdown-container>.select-box-dropdown-container-width-control>.width-control-div{max-height:0;overflow:hidden}.monaco-select-box-dropdown-container>.select-box-dropdown-container-width-control>.width-control-div>.option-text-width-control{padding-left:4px;padding-right:8px;white-space:nowrap}.monaco-select-box{border-radius:2px;cursor:pointer;width:100%}.monaco-action-bar .action-item.disabled,.monaco-action-bar .action-item.select-container,.monaco-button-dropdown.disabled,.monaco-dropdown>.dropdown-label>.action-label.disabled,.monaco-editor.hc-black.mac.mouse-default .view-lines,.monaco-editor.hc-light.mac.mouse-default .view-lines,.monaco-editor.mouse-default .view-lines,.monaco-editor.vs-dark.mac.mouse-default .view-lines,.monaco-tl-row.disabled{cursor:default}.monaco-action-bar .action-item .monaco-select-box{cursor:pointer;min-height:18px;min-width:100px;padding:2px 23px 2px 8px}.monaco-action-bar{height:100%;white-space:nowrap}.monaco-action-bar .actions-container{align-items:center;display:flex;height:100%;margin:0 auto;padding:0;width:100%}.monaco-action-bar .action-item{align-items:center;cursor:pointer;display:block;justify-content:center;position:relative}.monaco-action-bar .action-item .codicon{align-items:center;display:flex;height:16px;width:16px}.monaco-action-bar .action-label{display:flex;padding:3px}.action-widget .monaco-list-row.action.option-disabled,.action-widget .monaco-list-row.action.option-disabled .codicon,.action-widget .monaco-list:focus .monaco-list-row.focused.action.option-disabled,.action-widget .monaco-list:not(.drop-target):not(.dragging) .monaco-list-row:hover:not(.selected):not(.focused).option-disabled,.monaco-action-bar .action-item.disabled .action-label,.monaco-action-bar .action-item.disabled .action-label:before,.monaco-action-bar .action-item.disabled .action-label:hover,.monaco-icon-label-container.disabled{color:var(--vscode-disabledForeground)}.monaco-action-bar.vertical .action-label.separator{border-bottom:1px solid #bbb;display:block;margin-left:.8em;margin-right:.8em;padding-top:1px}.monaco-action-bar .action-item .action-label.separator{background-color:#bbb;cursor:default;height:16px;margin:5px 4px!important;min-width:1px;padding:0;width:1px}.monaco-action-bar .action-item.select-container{align-items:center;display:flex;flex:1;justify-content:center;margin-right:10px;max-width:170px;min-width:60px;overflow:hidden}.monaco-action-bar .action-item.action-dropdown-item>.action-dropdown-item-separator{align-items:center;cursor:default;display:flex}.monaco-action-bar .action-item.action-dropdown-item>.action-dropdown-item-separator>div{width:1px}.monaco-dropdown{height:100%;padding:0}.monaco-dropdown>.dropdown-label{align-items:center;cursor:pointer;display:flex;height:100%;justify-content:center}.monaco-dropdown-with-default,.monaco-dropdown-with-primary{border-radius:5px;display:flex!important;flex-direction:row}.monaco-dropdown-with-default>.action-container>.action-label,.monaco-dropdown-with-primary>.action-container>.action-label,.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-item:not(:last-of-type) .action-label,.monaco-keybinding>.monaco-keybinding-key:last-child{margin-right:0}.monaco-dropdown-with-default>.dropdown-action-container>.monaco-dropdown>.dropdown-label .codicon[class*=codicon-],.monaco-dropdown-with-primary>.dropdown-action-container>.monaco-dropdown>.dropdown-label .codicon[class*=codicon-]{font-size:12px;line-height:16px;margin-left:-3px;padding-left:0;padding-right:0}.monaco-dropdown-with-default>.dropdown-action-container>.monaco-dropdown>.dropdown-label>.action-label,.monaco-dropdown-with-primary>.dropdown-action-container>.monaco-dropdown>.dropdown-label>.action-label{background-position:50%;background-repeat:no-repeat;background-size:16px;display:block}.monaco-action-bar .action-item.menu-entry .action-label.icon,.monaco-dropdown-with-default>.action-container.menu-entry>.action-label.icon{background-position:50%;background-repeat:no-repeat;background-size:16px;height:16px;width:16px}.colorpicker-header .close-button-inner-div:hover,.monaco-dropdown-with-default:hover,.monaco-editor .rename-box .rename-suggestions-button:hover{background-color:var(--vscode-toolbar-hoverBackground)}.quick-input-widget .monaco-highlighted-label .highlight{color:#0066bf}.vs .quick-input-widget .monaco-list-row.focused .monaco-highlighted-label .highlight{color:#9dddff}.vs-dark .quick-input-widget .monaco-highlighted-label .highlight{color:#0097fb}.hc-black .quick-input-widget .monaco-highlighted-label .highlight{color:#f38518}.hc-light .quick-input-widget .monaco-highlighted-label .highlight{color:#0f4a85}.monaco-keybinding>.monaco-keybinding-key{background-color:#ddd6;border:1px solid;border-color:#ccc6 #ccc6 #bbb6;box-shadow:inset 0 -1px 0 #bbb6;color:#555}.hc-black .monaco-keybinding>.monaco-keybinding-key{background-color:initial;border:1px solid #6fc3df;box-shadow:none;color:#fff}.hc-light .monaco-keybinding>.monaco-keybinding-key{background-color:initial;border:1px solid #0f4a85;box-shadow:none;color:#292929}.vs-dark .monaco-keybinding>.monaco-keybinding-key{background-color:#8080802b;border:1px solid;border-color:#3339 #3339 #4449;box-shadow:inset 0 -1px 0 #4449;color:#ccc}.monaco-custom-toggle{border:1px solid #0000;border-radius:3px;box-sizing:border-box;cursor:pointer;float:left;height:20px;margin-left:2px;overflow:hidden;padding:1px;user-select:none;-webkit-user-select:none;width:20px}.monaco-custom-toggle:hover{background-color:var(--vscode-inputOption-hoverBackground)}.hc-black .monaco-custom-toggle:hover,.hc-light .monaco-custom-toggle:hover{border:1px dashed var(--vscode-focusBorder)}.monaco-custom-toggle.monaco-checkbox{background-size:16px!important;border:1px solid #0000;border-radius:3px;height:18px;margin-left:0;margin-right:9px;opacity:1;padding:0;width:18px}.monaco-action-bar .checkbox-action-item>.monaco-custom-toggle.monaco-checkbox,.quick-input-list .quick-input-list-entry .quick-input-list-separator{margin-right:4px}.quick-input-widget{font-size:13px;-webkit-app-region:no-drag;border-radius:6px;left:50%;margin-left:-300px;position:absolute;width:600px;z-index:2550}.quick-input-titlebar{align-items:center;border-radius:inherit;display:flex}.quick-input-left-action-bar{display:flex;flex:1;margin-left:4px}.quick-input-title{overflow:hidden;padding:3px 0;text-align:center;text-overflow:ellipsis}.quick-input-right-action-bar{display:flex;flex:1;margin-right:4px}.quick-input-right-action-bar>.actions-container{justify-content:flex-end}.quick-input-titlebar .monaco-action-bar .action-label.codicon{background-position:50%;background-repeat:no-repeat;padding:2px}.quick-input-description{margin:6px 6px 6px 11px}.quick-input-header .quick-input-description{flex:1;margin:4px 2px}.quick-input-header{display:flex;padding:8px 6px 2px}.quick-input-widget.hidden-input .quick-input-header{margin-bottom:0;padding:0}.quick-input-and-message{display:flex;flex-direction:column;flex-grow:1;min-width:0;position:relative}.quick-input-check-all,.quick-input-list .quick-input-list-checkbox{align-self:center;margin:0}.quick-input-filter{display:flex;flex-grow:1;position:relative}.quick-input-widget.show-checkboxes .quick-input-box,.quick-input-widget.show-checkboxes .quick-input-message{margin-left:5px}.quick-input-visible-count{left:-10000px;position:absolute}.quick-input-count{align-items:center;align-self:center;display:flex;position:absolute;right:4px}.quick-input-count .monaco-count-badge{border-radius:2px;line-height:normal;min-height:auto;padding:2px 4px;vertical-align:middle}.quick-input-action .monaco-text-button{align-items:center;display:flex;font-size:11px;height:25px;padding:0 6px}.quick-input-message{margin-top:-1px;overflow-wrap:break-word;padding:5px}.quick-input-message>.codicon{margin:0 .2em;vertical-align:text-bottom}.quick-input-list{line-height:22px}.quick-input-widget.hidden-input .quick-input-list{margin-top:4px;padding-bottom:4px}.quick-input-list .monaco-list{max-height:440px;overflow:hidden;padding-bottom:5px}.quick-input-list .monaco-scrollable-element,.quick-input-list .monaco-tree-sticky-row{padding:0 5px}.quick-input-list .quick-input-list-entry{box-sizing:border-box;display:flex;height:100%;overflow:hidden;padding:0 6px}.quick-input-list .quick-input-list-entry.quick-input-list-separator-border{border-top-style:solid;border-top-width:1px}.quick-input-list .monaco-list-row[data-index="0"] .quick-input-list-entry.quick-input-list-separator-border,.quick-input-list .monaco-tree-sticky-row .quick-input-list-entry.quick-input-list-separator-as-item.quick-input-list-separator-border{border-top-style:none}.quick-input-list .quick-input-list-label{display:flex;flex:1;height:100%;overflow:hidden}.quick-input-list .quick-input-list-icon{align-items:center;background-position:0;background-repeat:no-repeat;background-size:16px;display:flex;height:22px;justify-content:center;padding-right:6px;width:16px}.quick-input-list .quick-input-list-rows{display:flex;flex:1;flex-direction:column;height:100%;margin-left:5px;overflow:hidden;text-overflow:ellipsis}.quick-input-list .quick-input-list-rows>.quick-input-list-row .codicon[class*=codicon-]{vertical-align:text-bottom}.quick-input-list .quick-input-list-entry .quick-input-list-entry-keybinding{margin-right:8px}.quick-input-list .quick-input-list-label-meta{line-height:normal;opacity:.7;overflow:hidden;text-overflow:ellipsis}.quick-input-list .monaco-list .monaco-list-row .monaco-highlighted-label .highlight{background-color:unset;color:var(--vscode-list-highlightForeground)!important;font-weight:700}.quick-input-list .monaco-list .monaco-list-row.focused .monaco-highlighted-label .highlight{color:var(--vscode-list-focusHighlightForeground)!important}.quick-input-list .quick-input-list-entry-action-bar{display:flex;flex:0;overflow:visible;margin-right:4px;margin-top:1px}.quick-input-list .quick-input-list-entry-action-bar .action-label.codicon{margin-right:4px;padding:0 2px 2px}.quick-input-list .quick-input-list-separator-as-item{font-size:12px;padding:4px 6px}.quick-input-list .quick-input-list-separator-as-item .label-description{opacity:1!important}.monaco-text-button{align-items:center;border:1px solid var(--vscode-button-border,#0000);border-radius:2px;box-sizing:border-box;cursor:pointer;display:flex;justify-content:center;line-height:18px;padding:4px;text-align:center;width:100%}.monaco-text-button:focus{outline-offset:2px!important}.monaco-text-button:hover{text-decoration:none!important}.monaco-button.disabled,.monaco-button.disabled:focus{cursor:default;opacity:.4!important}.monaco-description-button .monaco-button-description>.codicon,.monaco-description-button .monaco-button-label>.codicon,.monaco-text-button .codicon{color:inherit!important;margin:0 .2em}.monaco-text-button.monaco-text-button-with-short-label{flex-direction:row;flex-wrap:wrap;height:28px;overflow:hidden;padding:0 4px}.monaco-text-button.monaco-text-button-with-short-label>.monaco-button-label{flex-basis:100%}.monaco-text-button.monaco-text-button-with-short-label>.monaco-button-label-short{flex-grow:1;overflow:hidden;width:0}.monaco-text-button.monaco-text-button-with-short-label>.monaco-button-label,.monaco-text-button.monaco-text-button-with-short-label>.monaco-button-label-short{align-items:center;display:flex;font-style:inherit;font-weight:400;justify-content:center;padding:4px 0}.monaco-button-dropdown{cursor:pointer;display:flex}.monaco-button-dropdown>.monaco-button:focus{outline-offset:-1px!important}.monaco-button-dropdown.disabled>.monaco-button-dropdown-separator,.monaco-button-dropdown.disabled>.monaco-button.disabled,.monaco-button-dropdown.disabled>.monaco-button.disabled:focus{opacity:.4!important}.monaco-button-dropdown>.monaco-button.monaco-text-button{border-right-width:0!important}.monaco-button-dropdown .monaco-button-dropdown-separator{cursor:default;padding:4px 0}.monaco-button-dropdown .monaco-button-dropdown-separator>div,.monaco-split-view2.separator-border.horizontal>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{height:100%;width:1px}.monaco-button-dropdown>.monaco-button.monaco-dropdown-button{align-items:center;border:1px solid var(--vscode-button-border,#0000);border-left-width:0!important;border-radius:0 2px 2px 0;display:flex}.monaco-button-dropdown>.monaco-button.monaco-text-button{border-radius:2px 0 0 2px}.monaco-description-button{align-items:center;display:flex;flex-direction:column;margin:4px 5px}.monaco-description-button .monaco-button-description{font-size:11px;font-style:italic;padding:4px 20px}.monaco-description-button .monaco-button-description,.monaco-description-button .monaco-button-label,.monaco-editor .lightBulbWidget{align-items:center;display:flex;justify-content:center}.monaco-button-dropdown.default-colors>.monaco-button,.monaco-button.default-colors{background-color:var(--vscode-button-background);color:var(--vscode-button-foreground)}.monaco-button-dropdown.default-colors>.monaco-button.secondary,.monaco-button.default-colors.secondary{background-color:var(--vscode-button-secondaryBackground);color:var(--vscode-button-secondaryForeground)}.monaco-button-dropdown.default-colors>.monaco-button.secondary:hover,.monaco-button.default-colors.secondary:hover{background-color:var(--vscode-button-secondaryHoverBackground)}.monaco-button-dropdown.default-colors .monaco-button-dropdown-separator{background-color:var(--vscode-button-background);border-bottom:1px solid var(--vscode-button-border);border-top:1px solid var(--vscode-button-border)}.monaco-button-dropdown.default-colors .monaco-button.secondary+.monaco-button-dropdown-separator{background-color:var(--vscode-button-secondaryBackground)}.monaco-button-dropdown.default-colors .monaco-button-dropdown-separator>div{background-color:var(--vscode-button-separator)}.monaco-editor .monaco-hover code,.monaco-editor .parameter-hints-widget .docs code,.monaco-editor .suggest-details code{background-color:var(--vscode-textCodeBlock-background)}.monaco-count-badge{border-radius:11px;box-sizing:border-box;display:inline-block;font-size:11px;font-weight:400;line-height:11px;min-height:18px;min-width:18px;padding:3px 6px;text-align:center}.monaco-count-badge.long{border-radius:2px;line-height:normal;min-height:auto;padding:2px 3px}.monaco-progress-container{height:2px;overflow:hidden;width:100%}.monaco-progress-container .progress-bit{display:none;height:2px;left:0;position:absolute;width:2%}.monaco-progress-container.discrete .progress-bit{left:0;transition:width .1s linear}.monaco-progress-container.infinite .progress-bit{animation-duration:4s;animation-iteration-count:infinite;animation-name:e;animation-timing-function:linear;transform:translateZ(0)}.monaco-progress-container.infinite.infinite-long-running .progress-bit{animation-timing-function:steps(100)}@keyframes e{0%{transform:translateX(0) scaleX(1)}50%{transform:translateX(2500%) scaleX(3)}to{transform:translateX(4900%) scaleX(1)}}.monaco-inputbox{border-radius:2px;box-sizing:border-box;display:block;font-size:inherit;padding:0;position:relative}.monaco-inputbox>.ibwrapper>.input,.monaco-inputbox>.ibwrapper>.mirror{padding:4px 6px}.monaco-inputbox>.ibwrapper>.input{border:none;box-sizing:border-box;color:inherit;display:inline-block;font-family:inherit;font-size:inherit;height:100%;line-height:inherit;resize:none;width:100%}.monaco-inputbox>.ibwrapper>input{text-overflow:ellipsis}.monaco-inputbox>.ibwrapper>textarea.input{display:block;outline:0;scrollbar-width:none}.monaco-inputbox>.ibwrapper>textarea.input::-webkit-scrollbar{display:none}.monaco-inputbox>.ibwrapper>.mirror{word-wrap:break-word;box-sizing:border-box;display:inline-block;left:0;position:absolute;top:0;visibility:hidden;white-space:pre-wrap;width:100%}.monaco-inputbox-container .monaco-inputbox-message{word-wrap:break-word;box-sizing:border-box;display:inline-block;font-size:12px;line-height:17px;margin-top:-1px;overflow:hidden;padding:.4em;text-align:left;width:100%}.monaco-inputbox .monaco-action-bar{position:absolute;right:2px;top:4px}.monaco-inputbox .monaco-action-bar .action-item{margin-left:2px}.monaco-inputbox .monaco-action-bar .action-item .codicon{background-repeat:no-repeat;height:16px;width:16px}.monaco-findInput .monaco-inputbox{font-size:13px;width:100%}.monaco-editor .find-widget>.replace-part>.monaco-findInput>.controls,.monaco-findInput>.controls{position:absolute;right:2px;top:3px}.vs .monaco-findInput.disabled{background-color:#e1e1e1}.vs-dark .monaco-findInput.disabled{background-color:#333}.hc-light .monaco-findInput.highlight-0 .controls,.monaco-findInput.highlight-0 .controls{animation:.1s linear f}.hc-light .monaco-findInput.highlight-1 .controls,.monaco-findInput.highlight-1 .controls{animation:.1s linear g}.hc-black .monaco-findInput.highlight-0 .controls,.vs-dark .monaco-findInput.highlight-0 .controls{animation:.1s linear h}.hc-black .monaco-findInput.highlight-1 .controls,.vs-dark .monaco-findInput.highlight-1 .controls{animation:.1s linear i}@keyframes f{0%{background:#fdff00cc}to{background:#0000}}@keyframes g{0%{background:#fdff00cc}99%{background:#0000}}@keyframes h{0%{background:#ffffff70}to{background:#0000}}@keyframes i{0%{background:#ffffff70}99%{background:#0000}}.monaco-sash{position:absolute;touch-action:none;z-index:35}.monaco-sash.disabled{pointer-events:none;cursor:default!important;pointer-events:none!important}.monaco-sash.mac.vertical{cursor:col-resize}.monaco-sash.vertical.minimum{cursor:e-resize}.monaco-sash.vertical.maximum{cursor:w-resize}.monaco-sash.mac.horizontal{cursor:row-resize}.monaco-sash.horizontal.minimum{cursor:s-resize}.monaco-sash.horizontal.maximum{cursor:n-resize}.monaco-sash.vertical{cursor:ew-resize;height:100%;top:0;width:var(--vscode-sash-size)}.monaco-sash.horizontal{cursor:ns-resize;height:var(--vscode-sash-size);left:0;width:100%}.monaco-sash:not(.disabled)>.orthogonal-drag-handle{content:" ";cursor:all-scroll;display:block;height:calc(var(--vscode-sash-size)*2);position:absolute;width:calc(var(--vscode-sash-size)*2);z-index:100}.monaco-sash.horizontal.orthogonal-edge-north:not(.disabled)>.orthogonal-drag-handle.start,.monaco-sash.horizontal.orthogonal-edge-south:not(.disabled)>.orthogonal-drag-handle.end{cursor:nwse-resize}.monaco-sash.horizontal.orthogonal-edge-north:not(.disabled)>.orthogonal-drag-handle.end,.monaco-sash.horizontal.orthogonal-edge-south:not(.disabled)>.orthogonal-drag-handle.start{cursor:nesw-resize}.monaco-sash.vertical>.orthogonal-drag-handle.start{left:calc(var(--vscode-sash-size)*-.5);top:calc(var(--vscode-sash-size)*-1)}.monaco-sash.vertical>.orthogonal-drag-handle.end{bottom:calc(var(--vscode-sash-size)*-1);left:calc(var(--vscode-sash-size)*-.5)}.monaco-sash.horizontal>.orthogonal-drag-handle.start{left:calc(var(--vscode-sash-size)*-1);top:calc(var(--vscode-sash-size)*-.5)}.monaco-sash.horizontal>.orthogonal-drag-handle.end{right:calc(var(--vscode-sash-size)*-1);top:calc(var(--vscode-sash-size)*-.5)}.monaco-sash:before{background:#0000;content:"";height:100%;pointer-events:none;position:absolute;width:100%}.monaco-workbench:not(.reduce-motion) .monaco-sash:before{transition:background-color .1s ease-out}.monaco-sash.active:before,.monaco-sash.hover:before{background:var(--vscode-sash-hoverBorder)}.monaco-sash.vertical:before{left:calc(50% - var(--vscode-sash-hover-size)/ 2);width:var(--vscode-sash-hover-size)}.monaco-sash.horizontal:before{height:var(--vscode-sash-hover-size);top:calc(50% - var(--vscode-sash-hover-size)/ 2)}.pointer-events-disabled{pointer-events:none!important}.monaco-sash.debug{background:#0ff}.monaco-sash.debug.disabled{background:#0ff3}.monaco-sash.debug:not(.disabled)>.orthogonal-drag-handle{background:red}.monaco-split-view2>.sash-container{height:100%;pointer-events:none;position:absolute;width:100%}.monaco-editor .suggest-widget>.tree,.monaco-split-view2>.monaco-scrollable-element{height:100%;width:100%}.monaco-split-view2>.monaco-scrollable-element>.split-view-container>.split-view-view{position:absolute;white-space:normal}.inactiveTooltip_E43j,.monaco-editor .find-widget .button.toggle.disabled,.monaco-editor .find-widget.collapsed-find-widget .button.next,.monaco-editor .find-widget.collapsed-find-widget .button.previous,.monaco-editor .find-widget.collapsed-find-widget .button.replace,.monaco-editor .find-widget.collapsed-find-widget .button.replace-all,.monaco-editor .find-widget.collapsed-find-widget>.find-part .monaco-findInput .controls,.monaco-editor .find-widget.hiddenEditor,.monaco-editor .find-widget.reduced-find-widget .matchesCount,.monaco-editor .find-widget>.replace-part,.monaco-editor .monaco-editor-overlaymessage.below .anchor.below,.monaco-editor .monaco-editor-overlaymessage:not(.below) .anchor.top,.monaco-editor .parameter-hints-widget .docs.empty,.monaco-editor .suggest-details.no-docs,.monaco-editor .suggest-details>.monaco-scrollable-element>.body>p:empty,.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.hide,.monaco-editor .suggest-widget .monaco-list .monaco-list-row.string-label>.contents>.main>.right>.readMore,.monaco-editor .suggest-widget.no-icons .monaco-list .monaco-list-row .icon,.monaco-editor .suggest-widget.no-icons .monaco-list .monaco-list-row .suggest-icon:before,.monaco-editor .suggest-widget.with-status-bar .monaco-list .monaco-list-row.focused.string-label>.contents>.main>.right>.readMore,.monaco-editor .suggest-widget.with-status-bar .monaco-list .monaco-list-row>.contents>.main>.right>.readMore,.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container.empty,.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container.empty .monaco-tree-sticky-container-shadow,.monaco-split-view2>.monaco-scrollable-element>.split-view-container>.split-view-view:not(.visible){display:none}.monaco-table,.monaco-table-tr,.monaco-tl-row{display:flex;height:100%}.monaco-split-view2.separator-border>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{background-color:var(--separator-border);content:" ";left:0;pointer-events:none;position:absolute;top:0;z-index:5}.monaco-split-view2.separator-border.vertical>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{height:1px;width:100%}.monaco-table{flex-direction:column;overflow:hidden;position:relative;white-space:nowrap;width:100%}.monaco-table>.monaco-split-view2{border-bottom:1px solid #0000}.monaco-table-th{font-weight:700;height:100%;width:100%}.monaco-table-td,.monaco-table-th{box-sizing:border-box;flex-shrink:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.monaco-table>.monaco-split-view2 .monaco-sash.vertical:before{border-left:1px solid #0000;content:"";left:calc(var(--vscode-sash-size)/2);position:absolute;width:0}.monaco-workbench:not(.reduce-motion) .monaco-table>.monaco-split-view2,.monaco-workbench:not(.reduce-motion) .monaco-table>.monaco-split-view2 .monaco-sash.vertical:before{transition:border-color .2s ease-out}.monaco-tl-row{align-items:center;position:relative}.monaco-tl-indent{height:100%;left:16px;pointer-events:none;position:absolute;top:0}.hide-arrows .monaco-tl-indent{left:12px}.monaco-tl-indent>.indent-guide{border-left:1px solid #0000;box-sizing:border-box;display:inline-block;height:100%}.monaco-workbench:not(.reduce-motion) .monaco-tl-indent>.indent-guide{transition:border-color .1s linear}.monaco-tl-twistie{align-items:center;display:flex!important;flex-shrink:0;font-size:10px;justify-content:center;padding-right:6px;text-align:right;transform:translateX(3px);width:16px}.monaco-tl-contents{flex:1;overflow:hidden}.monaco-tl-twistie:before{border-radius:20px}.monaco-tl-twistie.collapsed:before{transform:rotate(-90deg)}.monaco-tl-twistie.codicon-tree-item-loading:before{animation:1.25s steps(30) infinite m}.monaco-tree-type-filter{border:1px solid var(--vscode-widget-border);border-bottom-left-radius:4px;border-bottom-right-radius:4px;display:flex;margin:0 6px;max-width:200px;padding:3px;position:absolute;top:0;z-index:100}.monaco-workbench:not(.reduce-motion) .monaco-tree-type-filter{transition:top .3s}.monaco-tree-type-filter.disabled{top:-40px!important}.monaco-tree-type-filter-grab{align-items:center;cursor:grab;display:flex!important;justify-content:center;margin-right:2px}.colorpicker-body .strip.grabbing,.monaco-tree-type-filter-grab.grabbing{cursor:grabbing}.monaco-tree-type-filter-input .monaco-inputbox{height:23px}.monaco-tree-type-filter-input .monaco-findInput>.controls{top:2px}.monaco-tree-type-filter-actionbar .monaco-action-bar .action-label{padding:2px}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container{background-color:var(--vscode-sideBar-background);height:0;left:0;position:absolute;top:0;width:100%;z-index:13}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-row.monaco-list-row{background-color:var(--vscode-sideBar-background);opacity:1!important;overflow:hidden;position:absolute;width:100%}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-row:hover{background-color:var(--vscode-list-hoverBackground)!important;cursor:pointer}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-container-shadow{bottom:-3px;height:0;left:0;position:absolute;width:100%}.monaco-icon-label{display:flex;overflow:hidden;text-overflow:ellipsis}.monaco-icon-label:before{background-position:0;background-repeat:no-repeat;background-size:16px;display:inline-block;flex-shrink:0;height:22px;line-height:inherit!important;padding-right:6px;vertical-align:top;width:16px}.monaco-icon-label-iconpath{display:flex;height:16px;margin-top:2px;padding-left:2px;width:16px}.monaco-icon-label>.monaco-icon-label-container{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-name-container>.label-name{color:inherit;white-space:pre}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-name-container>.label-name>.label-separator{margin:0 2px;opacity:.5}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-suffix-container>.label-suffix{opacity:.7;white-space:pre}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{font-size:.9em;margin-left:.5em;opacity:.7;white-space:pre}.vs .monaco-icon-label>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{opacity:.95}.monaco-icon-label.deprecated{opacity:.66;text-decoration:line-through}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label.deprecated>.monaco-icon-label-container>.monaco-icon-name-container,.monaco-icon-label.strikethrough>.monaco-icon-label-container>.monaco-icon-description-container>.label-description,.monaco-icon-label.strikethrough>.monaco-icon-label-container>.monaco-icon-name-container>.label-name{text-decoration:line-through}.monaco-icon-label:after{font-size:90%;font-weight:600;margin:auto 16px 0 5px;opacity:.75;text-align:center}.monaco-editor .peekview-widget .monaco-list .monaco-list-row.focused .codicon,.monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .selected .reference-file,.monaco-list:focus .selected .monaco-icon-label,.monaco-list:focus .selected .monaco-icon-label:after{color:inherit!important}.monaco-keybinding{align-items:center;display:flex;line-height:10px}.monaco-keybinding>.monaco-keybinding-key{border-radius:3px;border-style:solid;border-width:1px;display:inline-block;font-size:11px;margin:0 2px;padding:3px 5px;vertical-align:middle}.monaco-keybinding>.monaco-keybinding-key:first-child{margin-left:0}.monaco-keybinding>.monaco-keybinding-key-chord-separator{width:6px}.monaco-editor .diff-hidden-lines{font-size:13px;height:0;line-height:14px;transform:translateY(-10px)}.monaco-editor .diff-hidden-lines .bottom.dragging,.monaco-editor .diff-hidden-lines .top.dragging,.monaco-editor .diff-hidden-lines:not(.dragging) .bottom:hover,.monaco-editor .diff-hidden-lines:not(.dragging) .top:hover{background-color:var(--vscode-focusBorder)}.monaco-editor .diff-hidden-lines .bottom,.monaco-editor .diff-hidden-lines .top{background-clip:padding-box;background-color:initial;border-bottom:2px solid #0000;border-top:4px solid #0000;height:4px;transition:background-color .1s ease-out}.monaco-editor .diff-hidden-lines .bottom.canMoveTop:not(.canMoveBottom),.monaco-editor .diff-hidden-lines .top.canMoveTop:not(.canMoveBottom),.monaco-editor.draggingUnchangedRegion.canMoveTop:not(.canMoveBottom) *{cursor:n-resize!important}.monaco-editor .diff-hidden-lines .bottom:not(.canMoveTop).canMoveBottom,.monaco-editor .diff-hidden-lines .top:not(.canMoveTop).canMoveBottom,.monaco-editor.draggingUnchangedRegion:not(.canMoveTop).canMoveBottom *{cursor:s-resize!important}.monaco-editor .diff-hidden-lines .bottom.canMoveTop.canMoveBottom,.monaco-editor .diff-hidden-lines .top.canMoveTop.canMoveBottom,.monaco-editor.draggingUnchangedRegion.canMoveTop.canMoveBottom *{cursor:ns-resize!important}.monaco-editor .diff-hidden-lines .top{transform:translateY(4px)}.monaco-editor .diff-hidden-lines .bottom{transform:translateY(-6px)}.monaco-editor .diff-unchanged-lines{background:var(--vscode-diffEditor-unchangedCodeBackground)}.monaco-editor .noModificationsOverlay,}.header{background:var(--vscode-editor-background);display:flex}.monaco-editor .noModificationsOverlay{align-items:center;justify-content:center;z-index:1}.monaco-editor .diff-hidden-lines .center{background:var(--vscode-diffEditor-unchangedRegionBackground);box-shadow:inset 0 -5px 5px -7px var(--vscode-diffEditor-unchangedRegionShadow),inset 0 5px 5px -7px var(--vscode-diffEditor-unchangedRegionShadow);color:var(--vscode-diffEditor-unchangedRegionForeground);display:block;height:24px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.monaco-editor .diff-hidden-lines .center span.codicon{vertical-align:middle}.monaco-editor .detected-link-active,.monaco-editor .diff-hidden-lines .center a:hover .codicon{color:var(--vscode-editorLink-activeForeground)!important;cursor:pointer}.monaco-editor .diff-hidden-lines div.breadcrumb-item:hover{color:var(--vscode-editorLink-activeForeground)}.monaco-editor .movedModified,.monaco-editor .movedOriginal{border:2px solid var(--vscode-diffEditor-move-border)}.monaco-editor .movedModified.currentMove,.monaco-editor .movedOriginal.currentMove{border:2px solid var(--vscode-diffEditor-moveActive-border)}.monaco-diff-editor .moved-blocks-lines path.currentMove{stroke:var(--vscode-diffEditor-moveActive-border)}.monaco-diff-editor .moved-blocks-lines path{pointer-events:visiblestroke;fill:none;stroke:var(--vscode-diffEditor-move-border);stroke-width:2}.monaco-diff-editor .moved-blocks-lines .arrow{fill:var(--vscode-diffEditor-move-border)}.monaco-diff-editor .moved-blocks-lines .arrow.currentMove{fill:var(--vscode-diffEditor-moveActive-border)}.monaco-diff-editor .moved-blocks-lines .arrow-rectangle{fill:var(--vscode-editor-background)}.monaco-diff-editor .moved-blocks-lines{pointer-events:none;position:absolute}.monaco-editor .char-delete.diff-range-empty{border-left:3px solid var(--vscode-diffEditor-removedTextBackground);margin-left:-1px}.monaco-editor .char-insert.diff-range-empty{border-left:3px solid var(--vscode-diffEditor-insertedTextBackground)}.monaco-diff-editor .diff-moved-code-block{display:flex;justify-content:flex-end;margin-top:-4px}.monaco-diff-editor .diff-moved-code-block .action-bar .action-label.codicon{font-size:12px;height:12px;width:12px}.monaco-diff-editor .diffOverview{z-index:9}.monaco-diff-editor .diffOverview .diffViewport,.monaco-scrollable-element.modified-in-monaco-diff-editor .slider{z-index:10}.monaco-diff-editor.vs .diffOverview{background:#00000008}.monaco-diff-editor.vs-dark .diffOverview{background:#ffffff03}.monaco-scrollable-element.modified-in-monaco-diff-editor.vs .scrollbar,.monaco-scrollable-element.modified-in-monaco-diff-editor.vs-dark .scrollbar{background:#0000}.modified-in-monaco-diff-editor .slider.active{background:#ababab66}.monaco-diff-editor .delete-sign,.monaco-diff-editor .insert-sign,.monaco-editor .delete-sign,.monaco-editor .insert-sign{align-items:center;display:flex!important;font-size:11px!important;opacity:.7!important}.monaco-editor .arrow-revert-change,.monaco-editor .zone-widget{position:absolute;z-index:10}.monaco-diff-editor .char-insert,.monaco-editor .char-insert{background-color:var(--vscode-diffEditor-insertedTextBackground)}.monaco-diff-editor .line-insert,.monaco-editor .line-insert{background-color:var(--vscode-diffEditor-insertedLineBackground,var(--vscode-diffEditor-insertedTextBackground))}.monaco-editor .char-insert,.monaco-editor .line-insert{border:1px solid var(--vscode-diffEditor-insertedTextBorder);box-sizing:border-box}.monaco-editor.hc-black .char-delete,.monaco-editor.hc-black .char-insert,.monaco-editor.hc-black .line-delete,.monaco-editor.hc-black .line-insert,.monaco-editor.hc-light .char-delete,.monaco-editor.hc-light .char-insert,.monaco-editor.hc-light .line-delete,.monaco-editor.hc-light .line-insert{border-style:dashed}.monaco-editor .char-delete,.monaco-editor .line-delete{border:1px solid var(--vscode-diffEditor-removedTextBorder);box-sizing:border-box}.monaco-diff-editor .gutter-insert,.monaco-editor .gutter-insert,.monaco-editor .inline-added-margin-view-zone{background-color:var(--vscode-diffEditorGutter-insertedLineBackground,var(--vscode-diffEditor-insertedLineBackground),var(--vscode-diffEditor-insertedTextBackground))}.monaco-diff-editor .char-delete,.monaco-editor .char-delete{background-color:var(--vscode-diffEditor-removedTextBackground)}.monaco-diff-editor .line-delete,.monaco-editor .line-delete{background-color:var(--vscode-diffEditor-removedLineBackground,var(--vscode-diffEditor-removedTextBackground))}.monaco-diff-editor .gutter-delete,.monaco-editor .gutter-delete,.monaco-editor .inline-deleted-margin-view-zone{background-color:var(--vscode-diffEditorGutter-removedLineBackground,var(--vscode-diffEditor-removedLineBackground),var(--vscode-diffEditor-removedTextBackground))}.monaco-diff-editor.side-by-side .editor.modified{border-left:1px solid var(--vscode-diffEditor-border);box-shadow:-6px 0 5px -5px var(--vscode-scrollbar-shadow)}.monaco-diff-editor.side-by-side .editor.original{border-right:1px solid var(--vscode-diffEditor-border);box-shadow:6px 0 5px -5px var(--vscode-scrollbar-shadow)}.monaco-editor .diagonal-fill{background-image:linear-gradient(-45deg,var(--vscode-diffEditor-diagonalFill) 12.5%,#0000 12.5%,#0000 50%,var(--vscode-diffEditor-diagonalFill) 50%,var(--vscode-diffEditor-diagonalFill) 62.5%,#0000 62.5%,#0000 100%);background-size:8px 8px}.monaco-diff-editor .gutter{flex-grow:0;flex-shrink:0;overflow:hidden;position:relative}.gutterItem{opacity:0;transition:opacity .7s;height:100%;left:50%;position:absolute;width:1px}&.noTransition,&.showAlways{transition:none}}&:hover .gutterItem{opacity:1;transition:opacity .1s ease-in-out}.buttons{align-items:center;display:flex;justify-content:center;position:absolute;width:100%;border-radius:4px;width:fit-content}}}}}}}}.monaco-component.diff-review{user-select:none;-webkit-user-select:none;z-index:99}.monaco-component.diff-review .diff-review-line-number{color:var(--vscode-editorLineNumber-foreground);display:inline-block;text-align:right}.monaco-component.diff-review .diff-review-summary{padding-left:10px}.monaco-component.diff-review .diff-review-shadow{box-shadow:var(--vscode-scrollbar-shadow) 0 -6px 6px -6px inset;position:absolute}.monaco-component.diff-review .diff-review-table{display:table;min-width:100%}.monaco-component.diff-review .diff-review-row{white-space:pre;display:table-row;width:100%}.monaco-component.diff-review .diff-review-spacer{display:inline-block;vertical-align:middle;width:10px}.monaco-component.diff-review .diff-review-spacer>.codicon{font-size:9px!important}.monaco-component.diff-review .diff-review-actions{display:inline-block;position:absolute;right:10px;top:2px;z-index:100}.monaco-component.diff-review .diff-review-actions .action-label{height:16px;margin:2px 0;width:16px}.monaco-toolbar .toolbar-toggle-more{display:inline-block;padding:0}.monaco-component.multiDiffEditor{background:var(--vscode-multiDiffEditor-background);height:100%;overflow-y:hidden;left:0;position:absolute;top:0;width:100%;place-content:center;place-items:center;visibility:hidden}}}.active{--vscode-multiDiffEditor-border:var(--vscode-focusBorder)}.multiDiffEntry{display:flex;flex:1;flex-direction:column;overflow:hidden;margin:0 5px}}.header{z-index:1000;background:var(--vscode-multiDiffEditor-headerBackground);border-top:1px solid var(--vscode-multiDiffEditor-border);color:var(--vscode-foreground);margin:8px 0 0;padding:4px 5px}.action-widget,.post-edit-widget{background-color:var(--vscode-editorWidget-background)}.file-path{display:flex;flex:1;line-height:22px;min-width:0;text-overflow:ellipsis}}.status{font-weight:600;line-height:22px;margin:0 10px;opacity:.75}.action-widget .action-widget-action-bar .actions-container{padding:0 8px}}}.editorParent{border-bottom:1px solid var(--vscode-multiDiffEditor-border);display:flex;flex:1;flex-direction:column;overflow:hidden}}}.monaco-editor .selection-anchor{background-color:#007acc;width:2px!important}.monaco-editor .bracket-match{background-color:var(--vscode-editorBracketMatch-background);border:1px solid var(--vscode-editorBracketMatch-border);box-sizing:border-box}.inline-editor-progress-decoration{display:inline-block;height:1em;width:1em}.inline-progress-widget{align-items:center;display:flex!important;justify-content:center}.inline-progress-widget .icon{font-size:80%!important}.inline-progress-widget:hover .icon{animation:none;font-size:90%!important}.inline-progress-widget:hover .icon:before{content:var(--vscode-icon-x-content);font-family:var(--vscode-icon-x-font-family)}.monaco-editor .monaco-editor-overlaymessage{padding-bottom:8px;z-index:10000}.monaco-editor .monaco-editor-overlaymessage.below{padding-bottom:0;padding-top:8px;z-index:10000}@keyframes j{0%{opacity:0}to{opacity:1}}.monaco-editor .monaco-editor-overlaymessage.fadeIn{animation:.15s ease-out j}@keyframes k{0%{opacity:1}to{opacity:0}}.monaco-editor .monaco-editor-overlaymessage.fadeOut{animation:.1s ease-out k}.monaco-editor .monaco-editor-overlaymessage .message{background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-inputValidation-infoBorder);border-radius:3px;color:var(--vscode-editorHoverWidget-foreground);padding:2px 4px}.monaco-editor .monaco-editor-overlaymessage .message p{margin-block:0}.monaco-editor .monaco-editor-overlaymessage .anchor{border:8px solid #0000;height:0!important;left:2px;position:absolute;width:0!important;z-index:1000}.monaco-editor .monaco-editor-overlaymessage .anchor.top{border-bottom-color:var(--vscode-inputValidation-infoBorder)}.monaco-editor .monaco-editor-overlaymessage .anchor.below{border-top-color:var(--vscode-inputValidation-infoBorder)}.monaco-editor .monaco-editor-overlaymessage.below .anchor.top{display:inherit;top:-8px}.post-edit-widget{border:1px solid var(--vscode-widget-border,#0000);border-radius:4px;box-shadow:0 0 8px 2px var(--vscode-widget-shadow);overflow:hidden}.post-edit-widget .monaco-button{border:none;border-radius:0;padding:2px}.post-edit-widget .monaco-button:hover{background-color:var(--vscode-button-secondaryHoverBackground)!important}@font-face{font-display:block;font-family:codicon;src:url(/assets/fonts/codicon-f6283f7ccaed1249d9ebbcc5a55d5970.ttf) format("truetype")}.codicon[class*=codicon-]{display:inline-block;font:16px/1 codicon;text-align:center;text-decoration:none;text-rendering:auto;text-transform:none;user-select:none;-webkit-user-select:none}.codicon-wrench-subaction{opacity:.5}.codicon-gear.codicon-modifier-spin,.codicon-loading.codicon-modifier-spin,.codicon-notebook-state-executing.codicon-modifier-spin,.codicon-sync.codicon-modifier-spin{animation:1.5s steps(30) infinite m}.codicon-loading,.codicon-tree-item-loading:before{animation-duration:1s!important;animation-timing-function:cubic-bezier(.53,.21,.29,.67)!important}.monaco-editor .codicon.codicon-symbol-array,.monaco-workbench .codicon.codicon-symbol-array{color:var(--vscode-symbolIcon-arrayForeground)}.monaco-editor .codicon.codicon-symbol-boolean,.monaco-workbench .codicon.codicon-symbol-boolean{color:var(--vscode-symbolIcon-booleanForeground)}.monaco-editor .codicon.codicon-symbol-class,.monaco-workbench .codicon.codicon-symbol-class{color:var(--vscode-symbolIcon-classForeground)}.monaco-editor .codicon.codicon-symbol-method,.monaco-workbench .codicon.codicon-symbol-method{color:var(--vscode-symbolIcon-methodForeground)}.monaco-editor .codicon.codicon-symbol-color,.monaco-workbench .codicon.codicon-symbol-color{color:var(--vscode-symbolIcon-colorForeground)}.monaco-editor .codicon.codicon-symbol-constant,.monaco-workbench .codicon.codicon-symbol-constant{color:var(--vscode-symbolIcon-constantForeground)}.monaco-editor .codicon.codicon-symbol-constructor,.monaco-workbench .codicon.codicon-symbol-constructor{color:var(--vscode-symbolIcon-constructorForeground)}.monaco-editor .codicon.codicon-symbol-enum,.monaco-editor .codicon.codicon-symbol-value,.monaco-workbench .codicon.codicon-symbol-enum,.monaco-workbench .codicon.codicon-symbol-value{color:var(--vscode-symbolIcon-enumeratorForeground)}.monaco-editor .codicon.codicon-symbol-enum-member,.monaco-workbench .codicon.codicon-symbol-enum-member{color:var(--vscode-symbolIcon-enumeratorMemberForeground)}.monaco-editor .codicon.codicon-symbol-event,.monaco-workbench .codicon.codicon-symbol-event{color:var(--vscode-symbolIcon-eventForeground)}.monaco-editor .codicon.codicon-symbol-field,.monaco-workbench .codicon.codicon-symbol-field{color:var(--vscode-symbolIcon-fieldForeground)}.monaco-editor .codicon.codicon-symbol-file,.monaco-workbench .codicon.codicon-symbol-file{color:var(--vscode-symbolIcon-fileForeground)}.monaco-editor .codicon.codicon-symbol-folder,.monaco-workbench .codicon.codicon-symbol-folder{color:var(--vscode-symbolIcon-folderForeground)}.monaco-editor .codicon.codicon-symbol-function,.monaco-workbench .codicon.codicon-symbol-function{color:var(--vscode-symbolIcon-functionForeground)}.monaco-editor .codicon.codicon-symbol-interface,.monaco-workbench .codicon.codicon-symbol-interface{color:var(--vscode-symbolIcon-interfaceForeground)}.monaco-editor .codicon.codicon-symbol-key,.monaco-workbench .codicon.codicon-symbol-key{color:var(--vscode-symbolIcon-keyForeground)}.monaco-editor .codicon.codicon-symbol-keyword,.monaco-workbench .codicon.codicon-symbol-keyword{color:var(--vscode-symbolIcon-keywordForeground)}.monaco-editor .codicon.codicon-symbol-module,.monaco-workbench .codicon.codicon-symbol-module{color:var(--vscode-symbolIcon-moduleForeground)}.monaco-editor .codicon.codicon-symbol-namespace,.monaco-workbench .codicon.codicon-symbol-namespace{color:var(--vscode-symbolIcon-namespaceForeground)}.monaco-editor .codicon.codicon-symbol-null,.monaco-workbench .codicon.codicon-symbol-null{color:var(--vscode-symbolIcon-nullForeground)}.monaco-editor .codicon.codicon-symbol-number,.monaco-workbench .codicon.codicon-symbol-number{color:var(--vscode-symbolIcon-numberForeground)}.monaco-editor .codicon.codicon-symbol-object,.monaco-workbench .codicon.codicon-symbol-object{color:var(--vscode-symbolIcon-objectForeground)}.monaco-editor .codicon.codicon-symbol-operator,.monaco-workbench .codicon.codicon-symbol-operator{color:var(--vscode-symbolIcon-operatorForeground)}.monaco-editor .codicon.codicon-symbol-package,.monaco-workbench .codicon.codicon-symbol-package{color:var(--vscode-symbolIcon-packageForeground)}.monaco-editor .codicon.codicon-symbol-property,.monaco-workbench .codicon.codicon-symbol-property{color:var(--vscode-symbolIcon-propertyForeground)}.monaco-editor .codicon.codicon-symbol-reference,.monaco-workbench .codicon.codicon-symbol-reference{color:var(--vscode-symbolIcon-referenceForeground)}.monaco-editor .codicon.codicon-symbol-snippet,.monaco-workbench .codicon.codicon-symbol-snippet{color:var(--vscode-symbolIcon-snippetForeground)}.monaco-editor .codicon.codicon-symbol-string,.monaco-workbench .codicon.codicon-symbol-string{color:var(--vscode-symbolIcon-stringForeground)}.monaco-editor .codicon.codicon-symbol-struct,.monaco-workbench .codicon.codicon-symbol-struct{color:var(--vscode-symbolIcon-structForeground)}.monaco-editor .codicon.codicon-symbol-text,.monaco-workbench .codicon.codicon-symbol-text{color:var(--vscode-symbolIcon-textForeground)}.monaco-editor .codicon.codicon-symbol-type-parameter,.monaco-workbench .codicon.codicon-symbol-type-parameter{color:var(--vscode-symbolIcon-typeParameterForeground)}.monaco-editor .codicon.codicon-symbol-unit,.monaco-workbench .codicon.codicon-symbol-unit{color:var(--vscode-symbolIcon-unitForeground)}.monaco-editor .codicon.codicon-symbol-variable,.monaco-workbench .codicon.codicon-symbol-variable{color:var(--vscode-symbolIcon-variableForeground)}.monaco-editor .lightBulbWidget.codicon-light-bulb,.monaco-editor .lightBulbWidget.codicon-lightbulb-sparkle{color:var(--vscode-editorLightBulb-foreground)}.monaco-editor .lightBulbWidget.codicon-lightbulb-autofix,.monaco-editor .lightBulbWidget.codicon-lightbulb-sparkle-autofix{color:var(--vscode-editorLightBulbAutoFix-foreground,var(--vscode-editorLightBulb-foreground))}.monaco-editor .lightBulbWidget.codicon-sparkle-filled{color:var(--vscode-editorLightBulbAi-foreground,var(--vscode-icon-foreground))}.monaco-editor .lightBulbWidget:before{position:relative;z-index:2}.monaco-editor .lightBulbWidget:after{background-color:var(--vscode-editor-background);content:"";display:block;height:100%;left:0;opacity:.3;position:absolute;top:0;width:100%;z-index:1}.action-widget{border:1px solid var(--vscode-editorWidget-border)!important;border-radius:2px;color:var(--vscode-editorWidget-foreground);display:block;font-size:13px;max-width:80vw;min-width:160px;width:100%;z-index:40}.context-view-block{z-index:-1}.context-view-block,.context-view-pointerBlock{cursor:auto;height:100%;left:0;position:fixed;top:0;width:100%}.context-view-pointerBlock{z-index:2}.action-widget .monaco-list{border:0!important;user-select:none;-webkit-user-select:none}.action-widget .monaco-list .monaco-scrollable-element{overflow:visible}.action-widget .monaco-list .monaco-list-row{cursor:pointer;padding:0 10px;touch-action:none;white-space:nowrap;width:100%}.action-widget .monaco-list .monaco-list-row.action.focused:not(.option-disabled){background-color:var(--vscode-quickInputList-focusBackground)!important;color:var(--vscode-quickInputList-focusForeground);outline:1px solid var(--vscode-menu-selectionBorder,#0000);outline-offset:-1px}.action-widget .monaco-list-row.group-header{color:var(--vscode-descriptionForeground)!important;font-weight:600}.action-widget .monaco-list .group-header,.action-widget .monaco-list .option-disabled,.action-widget .monaco-list .option-disabled .focused,.action-widget .monaco-list .option-disabled .focused:before,.action-widget .monaco-list .option-disabled:before{-webkit-touch-callout:none;background-color:initial!important;cursor:default!important;outline:solid 0!important;-webkit-user-select:none;user-select:none}.action-widget .monaco-list-row.action{align-items:center;display:flex;gap:6px}.action-widget .monaco-list-row.action .title{flex:1;overflow:hidden;text-overflow:ellipsis}.action-widget .monaco-list-row.action .monaco-keybinding>.monaco-keybinding-key{background-color:var(--vscode-keybindingLabel-background);border-color:var(--vscode-keybindingLabel-border);border-bottom-color:var(--vscode-keybindingLabel-bottomBorder);border-radius:3px;border-style:solid;border-width:1px;box-shadow:inset 0 -1px 0 var(--vscode-widget-shadow);color:var(--vscode-keybindingLabel-foreground)}.action-widget .action-widget-action-bar{background-color:var(--vscode-editorHoverWidget-statusBarBackground);border-top:1px solid var(--vscode-editorHoverWidget-border)}.action-widget .action-widget-action-bar:before{content:"";display:block;width:100%}.action-widget-action-bar .action-label{color:var(--vscode-textLink-activeForeground);font-size:12px;line-height:22px;padding:0;pointer-events:all}.monaco-editor .codelens-decoration,.monaco-editor .codelens-decoration .codicon{font-size:var(--vscode-editorCodeLens-fontSize);line-height:var(--vscode-editorCodeLens-lineHeight)}.action-widget-action-bar .action-item{margin-right:16px;pointer-events:none}.action-widget-action-bar .action-label:hover{background-color:initial!important}.monaco-action-bar .actions-container.highlight-toggled .action-label.checked{background:var(--vscode-actionBar-toggledBackground)!important}.monaco-editor .codelens-decoration{font-feature-settings:var(--vscode-editorCodeLens-fontFeatureSettings);color:var(--vscode-editorCodeLens-foreground);display:inline-block;font-family:var(--vscode-editorCodeLens-fontFamily),var(--vscode-editorCodeLens-fontFamilyDefault);overflow:hidden;padding-right:calc(var(--vscode-editorCodeLens-fontSize)*.5);text-overflow:ellipsis;white-space:nowrap}.monaco-editor .codelens-decoration>a,.monaco-editor .codelens-decoration>span{user-select:none;-webkit-user-select:none;vertical-align:sub;white-space:nowrap}.monaco-editor .codelens-decoration>a:hover,.monaco-editor .codelens-decoration>a:hover .codicon{color:var(--vscode-editorLink-activeForeground)!important}.monaco-editor .codelens-decoration .codicon{color:currentColor!important;color:var(--vscode-editorCodeLens-foreground);vertical-align:middle}@keyframes l{0%{opacity:0;visibility:visible}to{opacity:1}}.colorpicker-widget{height:190px;user-select:none;-webkit-user-select:none}.colorpicker-color-decoration,.hc-light .colorpicker-color-decoration{border:.1em solid #000;box-sizing:border-box;cursor:pointer;display:inline-block;height:.8em;line-height:.8em;margin:.1em .2em 0;width:.8em}.hc-black .colorpicker-color-decoration,.vs-dark .colorpicker-color-decoration{border:.1em solid #eee}.colorpicker-header{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAAHUlEQVQYV2PYvXu3JAi7uLiAMaYAjAGTQBPYLQkAa/0Zef3qRswAAAAASUVORK5CYII=") 0 0/9px 9px;display:flex;height:24px;image-rendering:pixelated;position:relative}.colorpicker-header .close-button,.standalone-colorpicker{background-color:var(--vscode-editorHoverWidget-background)}.colorpicker-header .picked-color{align-items:center;color:#fff;cursor:pointer;display:flex;flex:1;justify-content:center;line-height:24px;overflow:hidden;white-space:nowrap;width:240px}.colorpicker-header .picked-color .picked-color-presentation{margin-left:5px;margin-right:5px;white-space:nowrap}.colorpicker-header .picked-color .codicon{color:inherit;font-size:14px}.colorpicker-header .picked-color.light{color:#000}.colorpicker-header .original-color{cursor:pointer;width:74px;z-index:inherit}.standalone-colorpicker{border:1px solid var(--vscode-editorHoverWidget-border);color:var(--vscode-editorHoverWidget-foreground)}.colorpicker-header .close-button{border-left:1px solid var(--vscode-editorHoverWidget-border);cursor:pointer}.colorpicker-header .close-button-inner-div{height:100%;text-align:center;width:100%}.colorpicker-header .close-icon{padding:3px}.colorpicker-body{display:flex;padding:8px;position:relative}.colorpicker-body .saturation-wrap{flex:1;height:150px;min-width:220px;overflow:hidden;position:relative}.colorpicker-body .saturation-box{height:150px;position:absolute}.colorpicker-body .saturation-selection{border:1px solid #fff;border-radius:100%;box-shadow:0 0 2px #000c;height:9px;margin:-5px 0 0 -5px;position:absolute;width:9px}.colorpicker-body .strip{height:150px;width:25px}.colorpicker-body .standalone-strip{height:122px;width:25px}.colorpicker-body .hue-strip{background:linear-gradient(180deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red);cursor:grab;margin-left:8px;position:relative}.colorpicker-body .opacity-strip{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAAHUlEQVQYV2PYvXu3JAi7uLiAMaYAjAGTQBPYLQkAa/0Zef3qRswAAAAASUVORK5CYII=") 0 0/9px 9px;cursor:grab;image-rendering:pixelated;margin-left:8px;position:relative}.colorpicker-body .slider{border:1px solid #ffffffb5;box-shadow:0 0 1px #000000d9;box-sizing:border-box;height:4px;left:-2px;position:absolute;top:0;width:calc(100% + 4px)}.colorpicker-body .strip .overlay{height:150px;pointer-events:none}.colorpicker-body .standalone-strip .standalone-overlay{height:122px;pointer-events:none}.standalone-colorpicker-body{border:1px solid #0000;border-bottom:1px solid var(--vscode-editorHoverWidget-border);display:block;overflow:hidden}.colorpicker-body .insert-button{background:var(--vscode-button-background);border:none;border-radius:2px;bottom:8px;color:var(--vscode-button-foreground);cursor:pointer;height:20px;padding:0;position:absolute;right:8px;width:58px}.colorpicker-body .insert-button:hover{background:var(--vscode-button-hoverBackground)}.monaco-editor .inlineEditHints.withBorder,.monaco-editor .inlineSuggestionsHints.withBorder{background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border);color:var(--vscode-editorHoverWidget-foreground);z-index:39}.monaco-editor .inlineEditHints a,.monaco-editor .inlineEditHints a:hover,.monaco-editor .inlineSuggestionsHints a,.monaco-editor .inlineSuggestionsHints a:hover{color:var(--vscode-foreground)}.monaco-editor .inlineEditHints .keybinding,.monaco-editor .inlineSuggestionsHints .keybinding{display:flex;margin-left:4px;opacity:.6}.monaco-editor .inlineEditHints .keybinding .monaco-keybinding-key,.monaco-editor .inlineSuggestionsHints .keybinding .monaco-keybinding-key{font-size:8px;padding:2px 3px}.monaco-editor .inlineSuggestionsHints .availableSuggestionCount a{display:flex;justify-content:center;min-width:19px}.monaco-editor .inlineEditStatusBarItemLabel,.monaco-editor .inlineSuggestionStatusBarItemLabel{margin-right:2px}.monaco-editor .peekview-widget .head{box-sizing:border-box;display:flex;flex-wrap:nowrap;justify-content:space-between}.monaco-editor .peekview-widget .head .peekview-title{align-items:baseline;display:flex;font-size:13px;margin-left:20px;min-width:0;overflow:hidden;text-overflow:ellipsis}.monaco-editor .peekview-widget .head .peekview-title .dirname:not(:empty){font-size:.9em;margin-left:.5em}.monaco-editor .peekview-widget .head .peekview-title .meta:not(:empty):before{content:"-";padding:0 .3em}.monaco-editor .peekview-widget .head .peekview-actions{flex:1;padding-right:2px;text-align:right}.monaco-editor .peekview-widget>.body{border-top:1px solid;position:relative}.monaco-editor .peekview-widget .head .peekview-title .codicon{align-self:center;margin-right:4px}.monaco-editor .zone-widget .zone-widget-container{border-bottom-style:solid;border-bottom-width:0;border-top-style:solid;border-top-width:0;position:relative}.monaco-editor .zone-widget .zone-widget-container.reference-zone-widget{border-bottom-width:1px;border-top-width:1px}.monaco-editor .reference-zone-widget .inline{display:inline-block;vertical-align:top}.monaco-editor .reference-zone-widget .messages{height:100%;padding:3em 0;text-align:center;width:100%}.monaco-editor .reference-zone-widget .ref-tree{background-color:var(--vscode-peekViewResult-background);color:var(--vscode-peekViewResult-lineForeground);line-height:23px}.monaco-editor .reference-zone-widget .ref-tree .reference{overflow:hidden;text-overflow:ellipsis}.monaco-editor .reference-zone-widget .ref-tree .reference-file{color:var(--vscode-peekViewResult-fileForeground);display:inline-flex;height:100%;width:100%}.monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .monaco-list-rows>.monaco-list-row.selected:not(.highlighted){background-color:var(--vscode-peekViewResult-selectionBackground);color:var(--vscode-peekViewResult-selectionForeground)!important}.monaco-editor .reference-zone-widget .ref-tree .reference-file .count{margin-left:auto;margin-right:12px}.monaco-editor .reference-zone-widget .ref-tree .referenceMatch .highlight{background-color:var(--vscode-peekViewResult-matchHighlightBackground)}.monaco-editor .reference-zone-widget .preview .reference-decoration{background-color:var(--vscode-peekViewEditor-matchHighlightBackground);border:2px solid var(--vscode-peekViewEditor-matchHighlightBorder);box-sizing:border-box}.monaco-editor .reference-zone-widget .preview .monaco-editor .inputarea.ime-input,.monaco-editor .reference-zone-widget .preview .monaco-editor .monaco-editor-background{background-color:var(--vscode-peekViewEditor-background)}.monaco-editor .reference-zone-widget .preview .monaco-editor .margin{background-color:var(--vscode-peekViewEditorGutter-background)}.monaco-editor.hc-black .reference-zone-widget .ref-tree .referenceMatch .highlight,.monaco-editor.hc-light .reference-zone-widget .ref-tree .referenceMatch .highlight{border:1px dotted var(--vscode-contrastActiveBorder,#0000);box-sizing:border-box}.monaco-editor .hoverHighlight{background-color:var(--vscode-editor-hoverHighlightBackground)}.monaco-editor .monaco-hover-content{box-sizing:border-box;padding-bottom:2px;padding-right:2px}.monaco-editor .monaco-hover{background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border);border-radius:3px;color:var(--vscode-editorHoverWidget-foreground)}.monaco-editor .monaco-hover .hover-row .hover-row-contents{display:flex;flex-direction:column;min-width:0}.monaco-editor .monaco-hover .hover-row .verbosity-actions{border-right:1px solid var(--vscode-editorHoverWidget-border);display:flex;flex-direction:column;justify-content:end;padding-left:5px;padding-right:5px}.monaco-editor .monaco-hover .hover-row .verbosity-actions .codicon{cursor:pointer;font-size:11px}.monaco-editor .monaco-hover .hover-row .actions{background-color:var(--vscode-editorHoverWidget-statusBarBackground)}.monaco-editor.hc-light .dnd-target,.monaco-editor.vs .dnd-target{border-right:2px dotted #000;color:#fff}.monaco-editor.vs-dark .dnd-target{border-right:2px dotted #aeafad;color:#51504f}.monaco-editor.hc-black .dnd-target{border-right:2px dotted #fff;color:#000}.monaco-editor.hc-black.mac.mouse-copy .view-lines,.monaco-editor.hc-light.mac.mouse-copy .view-lines,.monaco-editor.mouse-copy .view-lines,.monaco-editor.vs-dark.mac.mouse-copy .view-lines{cursor:copy}.monaco-editor .findOptionsWidget{border:2px solid var(--vscode-contrastBorder)}.monaco-editor .find-widget,.monaco-editor .findOptionsWidget{background-color:var(--vscode-editorWidget-background);box-shadow:0 0 8px 2px var(--vscode-widget-shadow);color:var(--vscode-editorWidget-foreground)}.monaco-editor .find-widget{border-bottom:1px solid var(--vscode-widget-border);border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-left:1px solid var(--vscode-widget-border);border-right:1px solid var(--vscode-widget-border);box-sizing:border-box;height:33px;line-height:19px;overflow:hidden;padding:0 4px;position:absolute;transform:translateY(calc(-100% - 10px));transition:transform .2s linear;z-index:35}.monaco-workbench.reduce-motion .monaco-editor .find-widget{transition:transform 0ms linear}.monaco-editor .find-widget.visible{transform:translateY(0)}.monaco-editor .find-widget .monaco-inputbox.synthetic-focus{outline:-webkit-focus-ring-color solid 1px;outline-color:var(--vscode-focusBorder);outline-offset:-1px}.monaco-editor .find-widget .monaco-inputbox .input{background-color:initial;min-height:0}.monaco-editor .find-widget .monaco-findInput .input{font-size:13px}.monaco-editor .find-widget>.find-part,.monaco-editor .find-widget>.replace-part{display:flex;font-size:12px;margin:3px 25px 0 17px}.monaco-editor .find-widget>.find-part .monaco-inputbox,.monaco-editor .find-widget>.replace-part .monaco-inputbox{min-height:25px}.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.mirror{padding-right:22px}.monaco-editor .find-widget>.find-part .monaco-inputbox>.ibwrapper>.input,.monaco-editor .find-widget>.find-part .monaco-inputbox>.ibwrapper>.mirror,.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.input,.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.mirror{padding-bottom:2px;padding-top:2px}.monaco-editor .find-widget>.find-part .find-actions,.monaco-editor .find-widget>.replace-part .replace-actions{align-items:center;display:flex;height:25px}.monaco-editor .find-widget .monaco-findInput{display:flex;flex:1;vertical-align:middle}.monaco-editor .find-widget .monaco-findInput .monaco-scrollable-element .scrollbar.vertical{opacity:0}.monaco-editor .find-widget .matchesCount{box-sizing:border-box;display:flex;flex:initial;height:25px;line-height:23px;margin:0 0 0 3px;padding:2px 0 0 2px;text-align:center;vertical-align:middle}.monaco-editor .find-widget .button{align-items:center;background-position:50%;background-repeat:no-repeat;border-radius:5px;cursor:pointer;display:flex;flex:initial;height:16px;justify-content:center;margin-left:3px;padding:3px;width:16px}.monaco-editor .find-widget .codicon-find-selection{border-radius:5px;height:22px;padding:3px;width:22px}.monaco-editor .find-widget .button.left{margin-left:0;margin-right:3px}.monaco-editor .find-widget .button.wide{padding:1px 6px;top:-1px;width:auto}.monaco-editor .find-widget .button.toggle{border-radius:0;box-sizing:border-box;height:100%;left:3px;position:absolute;top:0;width:18px}.monaco-editor .find-widget .disabled{color:var(--vscode-disabledForeground);cursor:default}.monaco-editor .find-widget>.replace-part>.monaco-findInput{display:flex;flex:auto;flex-grow:0;flex-shrink:0;position:relative;vertical-align:middle}.monaco-editor .find-widget.narrow-find-widget{max-width:257px!important}.monaco-editor .find-widget.collapsed-find-widget{max-width:170px!important}.monaco-editor .find-widget.no-results .matchesCount{color:var(--vscode-errorForeground)}.monaco-editor .findMatch{animation-duration:0;animation-name:inherit!important;background-color:var(--vscode-editor-findMatchHighlightBackground)}.monaco-editor .currentFindMatch{background-color:var(--vscode-editor-findMatchBackground);border:2px solid var(--vscode-editor-findMatchBorder);box-sizing:border-box;padding:1px}.monaco-editor .findScope,.monaco-editor.findScope{background-color:var(--vscode-editor-findRangeHighlightBackground)}.monaco-editor .find-widget .monaco-sash{background-color:var(--vscode-editorWidget-resizeBorder,var(--vscode-editorWidget-border));left:0!important}.monaco-editor.hc-black .find-widget .button:before{left:2px;position:relative;top:1px}.monaco-editor .find-widget .button:not(.disabled):hover,.monaco-editor .find-widget .codicon-find-selection:hover{background-color:var(--vscode-toolbar-hoverBackground)!important}.monaco-editor.findMatch{background-color:var(--vscode-editor-findMatchHighlightBackground)}.monaco-editor.currentFindMatch{background-color:var(--vscode-editor-findMatchBackground)}.monaco-editor.findMatch{background-color:var(--vscode-editorWidget-background)}.monaco-editor .find-widget>.button.codicon-widget-close{position:absolute;right:4px;top:5px}.monaco-editor .margin-view-overlays .codicon-folding-collapsed,.monaco-editor .margin-view-overlays .codicon-folding-expanded,.monaco-editor .margin-view-overlays .codicon-folding-manual-collapsed,.monaco-editor .margin-view-overlays .codicon-folding-manual-expanded{align-items:center;cursor:pointer;display:flex;font-size:140%;justify-content:center;margin-left:2px;opacity:0;transition:opacity .5s}.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-collapsed,.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-expanded,.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-manual-collapsed,.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-manual-expanded{transition:initial}.monaco-editor .inline-folded:after{color:grey;content:"\22EF";cursor:pointer;display:inline;line-height:1em;margin:.1em .2em 0}.monaco-editor .folded-background{background-color:var(--vscode-editor-foldBackground)}.monaco-editor .cldr.codicon.codicon-folding-collapsed,.monaco-editor .cldr.codicon.codicon-folding-expanded,.monaco-editor .cldr.codicon.codicon-folding-manual-collapsed,.monaco-editor .cldr.codicon.codicon-folding-manual-expanded{color:var(--vscode-editorGutter-foldingControlForeground)!important}.monaco-editor .suggest-preview-additional-widget .content-spacer{color:#0000;white-space:pre}.monaco-editor .suggest-preview-additional-widget .button{cursor:pointer;display:inline-block;text-decoration:underline;text-underline-position:under}.monaco-editor .ghost-text-hidden,.monaco-editor .inline-edit-hidden{font-size:0;opacity:0}.monaco-editor .ghost-text-decoration,.monaco-editor .ghost-text-decoration-preview,.monaco-editor .inline-edit-decoration,.monaco-editor .inline-edit-decoration-preview,.monaco-editor .suggest-preview-text .ghost-text,.monaco-editor .suggest-preview-text .inline-edit{background-color:var(--vscode-editorGhostText-background);border:1px solid var(--vscode-editorGhostText-border);color:var(--vscode-editorGhostText-foreground)!important}.monaco-editor .suggest-details,.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.focused)>.contents>.main .monaco-icon-label{color:var(--vscode-editorSuggestWidget-foreground)}.monaco-editor .snippet-placeholder{background-color:var(--vscode-editor-snippetTabstopHighlightBackground,#0000);min-width:2px;outline-color:var(--vscode-editor-snippetTabstopHighlightBorder,#0000);outline-style:solid;outline-width:1px}.monaco-editor .finish-snippet-placeholder{background-color:var(--vscode-editor-snippetFinalTabstopHighlightBackground,#0000);outline-color:var(--vscode-editor-snippetFinalTabstopHighlightBorder,#0000);outline-style:solid;outline-width:1px}.monaco-editor .suggest-widget{border-radius:3px;display:flex;flex-direction:column;z-index:40}.monaco-editor .suggest-widget.message{align-items:center;flex-direction:row}.monaco-editor .suggest-details,.monaco-editor .suggest-widget{background-color:var(--vscode-editorSuggestWidget-background);border-color:var(--vscode-editorSuggestWidget-border);border-style:solid;border-width:1px;flex:0 1 auto;width:100%}.monaco-editor .suggest-widget .suggest-status-bar{border-top:1px solid var(--vscode-editorSuggestWidget-border);box-sizing:border-box;display:none;flex-flow:row nowrap;font-size:80%;justify-content:space-between;overflow:hidden;padding:0 4px;width:100%}.monaco-editor .suggest-widget .suggest-status-bar .left{padding-right:8px}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-label{color:var(--vscode-editorSuggestWidgetStatus-foreground)}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-item:not(:last-of-type) .action-label:after{content:", ";margin-right:.3em}.monaco-editor .suggest-widget>.message{padding-left:22px}.monaco-editor .suggest-widget .monaco-list .monaco-list-row{background-position:2px 2px;background-repeat:no-repeat;-mox-box-sizing:border-box;box-sizing:border-box;cursor:pointer;display:flex;padding-right:10px;touch-action:none;white-space:nowrap}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused{color:var(--vscode-editorSuggestWidget-selectedForeground)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused .codicon{color:var(--vscode-editorSuggestWidget-selectedIconForeground)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents{flex:1;height:100%;overflow:hidden;padding-left:2px}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main{display:flex;justify-content:space-between;overflow:hidden;text-overflow:ellipsis;white-space:pre}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main .monaco-highlighted-label .highlight{color:var(--vscode-editorSuggestWidget-highlightForeground)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused>.contents>.main .monaco-highlighted-label .highlight{color:var(--vscode-editorSuggestWidget-focusHighlightForeground)}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore:before{color:inherit;cursor:pointer;font-size:14px;opacity:1}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close{position:absolute;right:2px;top:6px}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.signature-label{opacity:.6;overflow:hidden;text-overflow:ellipsis}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.qualifier-label{align-self:center;font-size:85%;line-height:normal;margin-left:12px;opacity:.4;overflow:hidden;text-overflow:ellipsis}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label{font-size:85%;margin-left:1.1em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:none}.monaco-editor .suggest-widget:not(.docs-side) .monaco-list .monaco-list-row.focused:hover>.contents>.main>.right.can-expand-details>.details-label{width:calc(100% - 26px)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left{flex-grow:1;flex-shrink:1;overflow:hidden}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.monaco-icon-label{flex-shrink:0}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.string-label>.contents>.main>.left>.monaco-icon-label{flex-shrink:1}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right{flex-shrink:4;max-width:70%;overflow:hidden}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore{display:inline-block;height:18px;position:absolute;right:10px;visibility:hidden;width:18px}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label.deprecated{opacity:.66;text-decoration:unset}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon{background-position:50%;background-repeat:no-repeat;background-size:80%;display:block;height:16px;margin-left:2px;width:16px}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .suggest-icon{align-items:center;display:flex;margin-right:4px}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.customcolor .colorspan{border:.1em solid #000;display:inline-block;height:.7em;margin:0 0 0 .3em;width:.7em}.monaco-editor .suggest-details-container{z-index:41}.monaco-editor .suggest-details{cursor:default;display:flex;flex-direction:column}.monaco-editor .suggest-details.focused{border-color:var(--vscode-focusBorder)}.monaco-editor .suggest-details code{border-radius:3px;padding:0 .4em}.monaco-editor .suggest-details>.monaco-scrollable-element>.body{box-sizing:border-box;height:100%;width:100%}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.type{flex:2;margin:0 24px 0 0;opacity:.7;overflow:hidden;padding:4px 0 12px 5px;text-overflow:ellipsis;white-space:pre}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.type.auto-wrap{white-space:normal;word-break:break-all}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs{margin:0;padding:4px 5px;white-space:pre-wrap}.monaco-editor .suggest-details.no-type>.monaco-scrollable-element>.body>.docs{margin-right:24px;overflow:hidden}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs{min-height:calc(1rem + 8px);padding:0;white-space:normal}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div,.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>span:not(:empty){padding:4px 5px}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs .monaco-tokenized-source{white-space:pre}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs .code{word-wrap:break-word;white-space:pre-wrap}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs .codicon{vertical-align:sub}.monaco-editor .suggest-details p code,.monaco-editor .tokens-inspect-widget .tm-token,.monaco-editor .tokens-inspect-widget .tm-token-type{font-family:var(--monaco-monospace-font)}.monaco-editor .goto-definition-link{color:var(--vscode-editorLink-activeForeground)!important;cursor:pointer;text-decoration:underline}.monaco-editor .peekview-widget .head .peekview-title .severity-icon{display:inline-block;margin-right:4px;vertical-align:text-top}.monaco-editor .marker-widget{text-overflow:ellipsis;white-space:nowrap}.monaco-editor .marker-widget>.stale{font-style:italic;opacity:.6}.monaco-editor .marker-widget .title{display:inline-block;padding-right:5px}.monaco-editor .marker-widget .descriptioncontainer{padding:8px 12px 0 20px;position:absolute;user-select:text;-webkit-user-select:text;white-space:pre}.monaco-editor .marker-widget .descriptioncontainer .message{display:flex;flex-direction:column}.monaco-editor .marker-widget .descriptioncontainer .message .details{padding-left:6px}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link{color:inherit;opacity:.6}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link>span{border-bottom:1px solid #0000;color:var(--vscode-textLink-activeForeground);text-decoration:underline;text-underline-position:under}.monaco-editor .marker-widget .descriptioncontainer .filename,.monaco-editor .parameter-hints-widget .docs a:hover{color:var(--vscode-textLink-activeForeground);cursor:pointer}.extension-editor .codicon.codicon-error,.extensions-viewlet>.extensions .codicon.codicon-error,.markers-panel .marker-icon .codicon.codicon-error,.markers-panel .marker-icon.error,.monaco-editor .zone-widget .codicon.codicon-error,.preferences-editor .codicon.codicon-error,.text-search-provider-messages .providerMessage .codicon.codicon-error{color:var(--vscode-problemsErrorIcon-foreground)}.extension-editor .codicon.codicon-warning,.extensions-viewlet>.extensions .codicon.codicon-warning,.markers-panel .marker-icon .codicon.codicon-warning,.markers-panel .marker-icon.warning,.monaco-editor .zone-widget .codicon.codicon-warning,.preferences-editor .codicon.codicon-warning,.text-search-provider-messages .providerMessage .codicon.codicon-warning{color:var(--vscode-problemsWarningIcon-foreground)}.extension-editor .codicon.codicon-info,.extensions-viewlet>.extensions .codicon.codicon-info,.markers-panel .marker-icon .codicon.codicon-info,.markers-panel .marker-icon.info,.monaco-editor .zone-widget .codicon.codicon-info,.preferences-editor .codicon.codicon-info,.text-search-provider-messages .providerMessage .codicon.codicon-info{color:var(--vscode-problemsInfoIcon-foreground)}.monaco-editor.vs .valueSetReplacement{outline:solid 2px var(--vscode-editorBracketMatch-border)}.monaco-editor .linked-editing-decoration{background-color:var(--vscode-editor-linkedEditingBackground);min-width:1px}.monaco-editor .detected-link,.monaco-editor .detected-link-active,.monaco-editor .inline-completion-text-to-replace{text-decoration:underline;text-underline-position:under}.monaco-editor .focused .selectionHighlight{background-color:var(--vscode-editor-selectionHighlightBackground);border:1px solid var(--vscode-editor-selectionHighlightBorder);box-sizing:border-box}.monaco-editor .wordHighlight{background-color:var(--vscode-editor-wordHighlightBackground);border:1px solid var(--vscode-editor-wordHighlightBorder);box-sizing:border-box}.monaco-editor .wordHighlightStrong{background-color:var(--vscode-editor-wordHighlightStrongBackground);border:1px solid var(--vscode-editor-wordHighlightStrongBorder);box-sizing:border-box}.monaco-editor .wordHighlightText{background-color:var(--vscode-editor-wordHighlightTextBackground);border:1px solid var(--vscode-editor-wordHighlightTextBorder);box-sizing:border-box}.monaco-editor .inline-edit-remove{background-color:var(--vscode-editorGhostText-background);font-style:italic;text-decoration:line-through}.monaco-editor .inline-edit-remove.backgroundColoring{background-color:var(--vscode-diffEditor-removedLineBackground)}.monaco-editor .parameter-hints-widget{background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border);color:var(--vscode-editorHoverWidget-foreground);cursor:default;display:flex;flex-direction:column;line-height:1.5em;z-index:39}.monaco-editor .parameter-hints-widget>.phwrapper{display:flex;flex-direction:row;max-width:440px}.monaco-editor .parameter-hints-widget.multiple{min-height:3.3em;padding:0}.monaco-editor .parameter-hints-widget.multiple .body:before{border-left:1px solid var(--vscode-editorHoverWidget-border);content:"";display:block;height:100%;opacity:.5;position:absolute}.monaco-editor .parameter-hints-widget .body,.monaco-editor .parameter-hints-widget .monaco-scrollable-element{display:flex;flex:1;flex-direction:column;min-height:100%}.monaco-editor .parameter-hints-widget .signature{padding:4px 5px;position:relative}.monaco-editor .parameter-hints-widget .signature.has-docs:after{border-bottom:1px solid var(--vscode-editorHoverWidget-border);content:"";display:block;left:0;opacity:.5;padding-top:4px;position:absolute;width:100%}.monaco-editor .parameter-hints-widget .docs{padding:0 10px 0 5px;white-space:pre-wrap}.monaco-editor .parameter-hints-widget .docs .markdown-docs{white-space:normal}.monaco-editor .parameter-hints-widget .docs code{border-radius:3px;font-family:var(--monaco-monospace-font);padding:0 .4em}.monaco-editor .parameter-hints-widget .docs .code,.monaco-editor .parameter-hints-widget .docs .monaco-tokenized-source{white-space:pre-wrap}.monaco-editor .parameter-hints-widget .controls{align-items:center;display:none;flex-direction:column;justify-content:flex-end;min-width:22px}.monaco-editor .parameter-hints-widget.multiple .controls{display:flex;padding:0 2px}.monaco-editor .parameter-hints-widget.multiple .button{background-repeat:no-repeat;cursor:pointer;height:16px;width:16px}.monaco-editor .parameter-hints-widget .button.previous{bottom:24px}.monaco-editor .parameter-hints-widget .overloads{font-family:var(--monaco-monospace-font);height:12px;line-height:12px;text-align:center}.monaco-editor .parameter-hints-widget .signature .parameter.active{color:var(--vscode-editorHoverWidget-highlightForeground);font-weight:700}.monaco-editor .parameter-hints-widget .documentation-parameter>.parameter{font-weight:700;margin-right:.5em}.monaco-editor .rename-box{border-radius:4px;color:inherit;z-index:100}.monaco-editor .rename-box.preview{padding:4px 4px 0}.monaco-editor .rename-box .rename-input-with-button{border-radius:2px;padding:3px;width:calc(100% - 8px)}.monaco-editor .rename-box .rename-input{padding:0;width:calc(100% - 8px)}.monaco-editor .rename-box .rename-suggestions-button{align-items:center;background-color:initial;border:none;border-radius:5px;cursor:pointer;display:flex;padding:3px}.monaco-editor .rename-box .rename-candidate-list-container .monaco-list-row{border-radius:2px}.monaco-editor .rename-box .rename-label{display:none;opacity:.8}.monaco-editor .sticky-widget-line-numbers{background-color:inherit;float:left}.monaco-editor .sticky-widget-lines-scrollable{background-color:inherit;display:inline-block;overflow:hidden;position:absolute;width:var(--vscode-editorStickyScroll-scrollableWidth)}.monaco-editor .sticky-widget-lines{background-color:inherit;position:absolute}.monaco-editor .sticky-line-content,.monaco-editor .sticky-line-number{background-color:inherit;color:var(--vscode-editorLineNumber-foreground);display:inline-block;position:absolute;white-space:nowrap}.monaco-editor .sticky-line-number .codicon-folding-collapsed,.monaco-editor .sticky-line-number .codicon-folding-expanded{float:right;transition:var(--vscode-editorStickyScroll-foldingOpacityTransition)}.monaco-editor .sticky-line-content{background-color:inherit;white-space:nowrap;width:var(--vscode-editorStickyScroll-scrollableWidth)}.monaco-editor .sticky-line-number-inner{display:inline-block;text-align:right}.monaco-editor .sticky-widget{overflow:hidden;border-bottom:1px solid var(--vscode-editorStickyScroll-border);background-color:var(--vscode-editorStickyScroll-background);box-shadow:var(--vscode-editorStickyScroll-shadow) 0 3px 2px -2px;right:auto!important;width:100%;z-index:4}.monaco-editor .sticky-line-content:hover{background-color:var(--vscode-editorStickyScrollHover-background);cursor:pointer}.monaco-editor .sticky-widget.peek{background-color:var(--vscode-peekViewEditorStickyScroll-background)}.monaco-editor .unicode-highlight{background-color:var(--vscode-editorUnicodeHighlight-background);border:1px solid var(--vscode-editorUnicodeHighlight-border);box-sizing:border-box}.editor-banner{background:var(--vscode-banner-background);box-sizing:border-box;cursor:default;display:flex;font-size:12px;height:26px;overflow:visible;width:100%;background-color:var(--vscode-banner-background)}.editor-banner .icon-container{align-items:center;display:flex;flex-shrink:0;padding:0 6px 0 10px}.editor-banner .icon-container.custom-icon{background-position:50%;background-repeat:no-repeat;background-size:16px;margin:0 6px 0 10px;padding:0;width:16px}.editor-banner .message-container{align-items:center;display:flex;line-height:26px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editor-banner .message-container p{margin-block-end:0;margin-block-start:0}.editor-banner .message-actions-container{flex-grow:1;flex-shrink:0;line-height:26px;margin:0 4px}.editor-banner .message-actions-container a.monaco-button{margin:2px 8px;padding:0 12px;width:inherit}.editor-banner .message-actions-container a{margin-left:12px;padding:3px;text-decoration:underline}.editor-banner .action-container{padding:0 10px 0 6px}.editor-banner,.editor-banner .action-container .codicon,.editor-banner .message-actions-container .monaco-link{color:var(--vscode-banner-foreground)}.editor-banner .icon-container .codicon{color:var(--vscode-banner-iconForeground)}.monaco-editor .iPadShowKeyboard{background:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTQ4LjAzNiA0LjAxSDQuMDA4VjMyLjAzaDQ0LjAyOFY0LjAxWk00LjAwOC4wMDhBNC4wMDMgNC4wMDMgMCAwIDAgLjAwNSA0LjAxVjMyLjAzYTQuMDAzIDQuMDAzIDAgMCAwIDQuMDAzIDQuMDAyaDQ0LjAyOGE0LjAwMyA0LjAwMyAwIDAgMCA0LjAwMy00LjAwMlY0LjAxQTQuMDAzIDQuMDAzIDAgMCAwIDQ4LjAzNi4wMDhINC4wMDhaTTguMDEgOC4wMTNoNC4wMDN2NC4wMDNIOC4wMVY4LjAxM1ptMTIuMDA4IDBoLTQuMDAydjQuMDAzaDQuMDAyVjguMDEzWm00LjAwMyAwaDQuMDAydjQuMDAzaC00LjAwMlY4LjAxM1ptMTIuMDA4IDBoLTQuMDAzdjQuMDAzaDQuMDAzVjguMDEzWm00LjAwMiAwaDQuMDAzdjQuMDAzSDQwLjAzVjguMDEzWm0tMjQuMDE1IDguMDA1SDguMDF2NC4wMDNoOC4wMDZ2LTQuMDAzWm00LjAwMiAwaDQuMDAzdjQuMDAzaC00LjAwM3YtNC4wMDNabTEyLjAwOCAwaC00LjAwM3Y0LjAwM2g0LjAwM3YtNC4wMDNabTEyLjAwOCAwdjQuMDAzaC04LjAwNXYtNC4wMDNoOC4wMDVabS0zMi4wMjEgOC4wMDVIOC4wMXY0LjAwM2g0LjAwM3YtNC4wMDNabTQuMDAzIDBoMjAuMDEzdjQuMDAzSDE2LjAxNnYtNC4wMDNabTI4LjAxOCAwSDQwLjAzdjQuMDAzaDQuMDAzdi00LjAwM1oiIGZpbGw9IiM0MjQyNDIiLz48L2c+PGRlZnM+PGNsaXBQYXRoIGlkPSJhIj48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMCAwaDUzdjM2SDB6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+") 50% no-repeat;border:4px solid #f6f6f6;border-radius:4px;height:36px;margin:0;min-height:0;min-width:0;overflow:hidden;padding:0;position:absolute;resize:none;width:58px}.monaco-editor.vs-dark .iPadShowKeyboard{background:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTQ4LjAzNiA0LjAxSDQuMDA4VjMyLjAzaDQ0LjAyOFY0LjAxWk00LjAwOC4wMDhBNC4wMDMgNC4wMDMgMCAwIDAgLjAwNSA0LjAxVjMyLjAzYTQuMDAzIDQuMDAzIDAgMCAwIDQuMDAzIDQuMDAyaDQ0LjAyOGE0LjAwMyA0LjAwMyAwIDAgMCA0LjAwMy00LjAwMlY0LjAxQTQuMDAzIDQuMDAzIDAgMCAwIDQ4LjAzNi4wMDhINC4wMDhaTTguMDEgOC4wMTNoNC4wMDN2NC4wMDNIOC4wMVY4LjAxM1ptMTIuMDA4IDBoLTQuMDAydjQuMDAzaDQuMDAyVjguMDEzWm00LjAwMyAwaDQuMDAydjQuMDAzaC00LjAwMlY4LjAxM1ptMTIuMDA4IDBoLTQuMDAzdjQuMDAzaDQuMDAzVjguMDEzWm00LjAwMiAwaDQuMDAzdjQuMDAzSDQwLjAzVjguMDEzWm0tMjQuMDE1IDguMDA1SDguMDF2NC4wMDNoOC4wMDZ2LTQuMDAzWm00LjAwMiAwaDQuMDAzdjQuMDAzaC00LjAwM3YtNC4wMDNabTEyLjAwOCAwaC00LjAwM3Y0LjAwM2g0LjAwM3YtNC4wMDNabTEyLjAwOCAwdjQuMDAzaC04LjAwNXYtNC4wMDNoOC4wMDVabS0zMi4wMjEgOC4wMDVIOC4wMXY0LjAwM2g0LjAwM3YtNC4wMDNabTQuMDAzIDBoMjAuMDEzdjQuMDAzSDE2LjAxNnYtNC4wMDNabTI4LjAxOCAwSDQwLjAzdjQuMDAzaDQuMDAzdi00LjAwM1oiIGZpbGw9IiNDNUM1QzUiLz48L2c+PGRlZnM+PGNsaXBQYXRoIGlkPSJhIj48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMCAwaDUzdjM2SDB6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+") 50% no-repeat;border:4px solid #252526}.monaco-editor .tokens-inspect-widget{background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border);color:var(--vscode-editorHoverWidget-foreground);padding:10px;user-select:text;-webkit-user-select:text;z-index:50}.monaco-editor .tokens-inspect-widget .tokens-inspect-separator{background-color:var(--vscode-editorHoverWidget-border);border:0;height:1px}.monaco-editor .tokens-inspect-widget .tm-token-length{float:right;font-size:60%;font-weight:400}.monaco-editor .tokens-inspect-widget .tm-metadata-value{font-family:var(--monaco-monospace-font);text-align:right}.modalOverlay_CJal{background-color:#000000a3;bottom:0;left:0;position:fixed;right:0;top:0;z-index:10}.modalContent_jt0x{background-color:var(--ifm-navbar-background-color);border:1px solid var(--ifm-color-emphasis-300);border-radius:4px;left:50%;max-height:75vh;min-width:60vw;overflow-x:visible;overflow-y:auto;padding:20px;position:absolute;top:50%;transform:translate(-50%,-50%);z-index:11}[data-theme=light] .modalContent_jt0x{background-color:var(--ifm-color-emphasis-400)}.settingsPanel_jza1{display:flex;flex-direction:column;height:100%;margin-top:10px;overflow:auto;position:relative;width:100%}.cardsContainer_NApk{display:grid;grid-template-columns:1fr 1fr;justify-content:center}.card_uGw9{border-style:solid;border-width:1px;margin:10px;min-width:300px;padding:10px;text-align:center}[data-theme=dark] .card_uGw9{border-color:var(--ifm-color-emphasis-200)}[data-theme=light] .card_uGw9{background-color:var(--ifm-color-emphasis-100);border-color:var(--ifm-color-emphasis-800)}.cardTitle_YaoG{color:var(--ifm-color-primary);font-size:18px;font-weight:700;margin:0;text-align:"center"}.cardSubtitle_xyBL{font-size:15px;margin:0;text-align:center}[data-theme=dark] .cardSubtitle_xyBL{color:#a1a1aa}[data-theme=light] .cardSubtitle_xyBL{color:#55555d}.hoverPrimary_gtGd,.hoverPrimary_gz6K,.hoverSecondary_mUBE{transition:transform .3s,box-shadow .3s}.hoverPrimary_gtGd:hover,.hoverPrimary_gz6K:hover{box-shadow:0 0 10px var(--ifm-color-primary);transform:scale(1.015)}.bottomContainer_yrg_{align-items:center;bottom:10px;display:flex;justify-content:space-between;padding:10px;position:absolute;width:100%}.submitButton_UfR9{border-radius:12px;font-size:20px;font-weight:700;margin:5px;padding:10px 60px}.submitButtonActive_cYBW{background-color:var(--docsearch-primary-color);border:1px solid var(--ifm-color-primary);color:var(--ifm-color-emphasis-0)}.submitButtonInactive_HYh_{background-color:var(--ifm-color-emphasis-500);border:1px solid var(--ifm-color-emphasis-500);color:var(--ifm-color-emphasis-400)}.submitButtonInactive_HYh_:hover{box-shadow:0 0;transform:scale(1)}.container_SqLM,.container_i76h,.container_skE6{display:flex;flex-direction:column;flex-wrap:nowrap;padding:4px 8px}.imagePreviewIntro_sbso{font-size:18px;margin-bottom:48px;padding:20px}.headerContainer_K6Lx,.headerContainer_Kl0i,.headerContainer_UKog{display:flex;font-size:22px;margin-bottom:6px;padding:0 10px}.headerInputLabel_vsST{flex:0 0 20%;max-width:20%;min-width:160px;padding-right:10px}.headerDescriptionLabel_krIv{flex:0 0 60%;max-width:60%;min-width:320px}.headerPreviewLabel_YwIx{flex:0 0 20%;max-width:20%;min-width:120px;padding-left:10px}.imagePreview_IvWg,.inputSelector_e7oh,.shaderInfo_at8f{align-items:center;border-color:var(--ifm-color-emphasis-300);border-style:solid;border-width:1px 0 0;display:flex;height:100px;margin-top:4px;padding:4px 10px 0}.imagePreviewLabelContainer_N7fZ{align-items:center;display:flex;flex:0 0 20%;height:100%;max-width:20%;min-width:160px;padding-right:10px}.imagePreviewDescriptionContainer_H4hc{align-items:center;display:flex;flex:0 0 60%;max-width:60%;min-width:320px}.imagePreviewImgContainer_CUCn{display:flex;flex:0 0 20%;height:100%;justify-content:center;margin-left:10px;max-width:20%;min-width:120px}.imagePreviewImg_uF29,.inputSelectorImg_OPSi{height:100%;object-fit:contain}.tooltip_fwrq,.tooltip_gKxf,.tooltip_m2Gn,.tooltip_v7oX{background-color:var(--ifm-color-emphasis-700)!important;color:var(--ifm-font-color-base-inverse)!important;opacity:1!important}.tooltip_gKxf:hover,.tooltip_m2Gn:hover,.tooltip_v7oX:hover{opacity:1!important;visibility:visible!important}.tooltipCode_GsLs,.tooltipCode_GvZf,.tooltipCode_d9Wy{background-color:var(--ifm-color-emphasis-600)!important;color:var(--ifm-font-color-base-inverse)!important;cursor:copy!important;display:block;white-space:pre-wrap}.headerInputLabel_OPP0{flex:0 0 30%;max-width:30%;padding-right:10px}.headerResolutionLabel_Xjqq{flex:0 0 40%;max-width:40%;width:200px}.headerPreviewLabel_m8Be{flex:0 0 30%;max-width:30%;padding-left:10px}.inputSelectorLabelContainer_gno5{align-items:center;display:flex;flex:0 0 30%;height:100%;max-width:30%;padding-right:10px}.inputSelectorSelectContainer_NRWD{align-items:center;display:flex;flex:0 0 40%;max-width:40%;width:200px}.inputSelectorSelect_Hgwl{background-color:var(--ifm-color-emphasis-200);border-radius:4px;padding:1px 4px 2px;width:80%}.inputSelectorImgContainer_o2PD{display:flex;flex:0 0 30%;height:100%;justify-content:center;max-width:30%;padding-left:10px}.outputResolutionsContainer_JZdw{align-items:center;display:flex;padding:10px 0}.outputResolutionLabel_UB2e{color:var(--ifm-color-primary);font-size:18px;font-weight:700;margin:5px}.outputResolutionSelect_qGbb{background-color:var(--ifm-card-background-color);border:1px solid var(--ifm-color-emphasis-200);border-radius:10px;padding:8px}.outputResolutionInput_n7T1{background-color:var(--ifm-card-background-color);border:1px solid var(--ifm-color-emphasis-200);border-radius:4px;width:64px}.invalidInput_X8vI{background-color:var(--ifm-color-emphasis-300);border:2px solid #bb3838}.buttonGroup__atx button,.codeBlockContainer_Ckt0{background:var(--prism-background-color);color:var(--prism-color)}.resolutionInputFieldsContainer_W1xy{align-items:center;display:flex;margin:5px}.headerInputLabel_eHOV{flex:0 0 30%;max-width:30%;min-width:200px;padding-right:10px}.headerDescriptionLabel_SvGj{flex:0 0 70%;max-width:70%;min-width:320px}.shaderInfoLabelContainer_tRkD{align-items:center;display:flex;flex:0 0 30%;height:100%;max-width:30%;min-width:200px;padding-right:10px}.shaderInfoDescriptionContainer__ZEp{align-items:center;display:flex;flex:0 0 70%;max-width:70%;min-width:320px}.cardContainer_fWXF{--ifm-link-color:var(--ifm-color-emphasis-800);--ifm-link-hover-color:var(--ifm-color-emphasis-700);--ifm-link-hover-decoration:none;border:1px solid var(--ifm-color-emphasis-200);box-shadow:0 1.5px 3px 0 #00000026;transition:all var(--ifm-transition-fast) ease;transition-property:border,box-shadow}.cardContainer_fWXF:hover{border-color:var(--ifm-color-primary);box-shadow:0 3px 6px 0 #0003}.cardTitle_rnsV{font-size:1.2rem}.cardDescription_PWke{font-size:.8rem}.codeBlockContainer_Ckt0{border-radius:var(--ifm-code-border-radius);box-shadow:var(--ifm-global-shadow-lw);margin-bottom:var(--ifm-leading)}.codeBlockContent_biex{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_Ktv7{border-bottom:1px solid var(--ifm-color-emphasis-300);border-top-left-radius:inherit;border-top-right-radius:inherit;font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlock_bY9V{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockTitle_Ktv7+.codeBlockContent_biex .codeBlock_bY9V{border-top-left-radius:0;border-top-right-radius:0}.codeBlockLines_e6Vv{float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_o6Pm{display:table;padding:var(--ifm-pre-padding) 0}.buttonGroup__atx{column-gap:.2rem;display:flex;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2)}.buttonGroup__atx button{align-items:center;border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);display:flex;line-height:0;opacity:0;padding:.4rem;transition:opacity var(--ifm-transition-fast) ease-in-out}.buttonGroup__atx button:focus-visible,.buttonGroup__atx button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup__atx button{opacity:.4}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.codeLine_lJS_{counter-increment:a;display:table-row}.codeLineNumber_Tfdd{background:var(--ifm-pre-background);display:table-cell;left:0;overflow-wrap:normal;padding:0 var(--ifm-pre-padding);position:sticky;text-align:right;width:1%}.codeLineNumber_Tfdd:before{content:counter(a);opacity:.4}.codeLineContent_feaV{padding-right:var(--ifm-pre-padding)}.theme-code-block:hover .copyButtonCopied_obH4{opacity:1!important}.copyButtonIcons_eSgA{height:1.125rem;position:relative;width:1.125rem}.copyButtonIcon_y97N,.copyButtonSuccessIcon_LjdS{fill:currentColor;height:inherit;left:0;opacity:inherit;position:absolute;top:0;transition:all var(--ifm-transition-fast) ease;width:inherit}.copyButtonSuccessIcon_LjdS{color:#00d600;left:50%;opacity:0;top:50%;transform:translate(-50%,-50%) scale(.33)}.copyButtonCopied_obH4 .copyButtonIcon_y97N{opacity:0;transform:scale(.33)}.copyButtonCopied_obH4 .copyButtonSuccessIcon_LjdS{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:75ms}.wordWrapButtonIcon_Bwma{height:1.2rem;width:1.2rem}.details_lb9f{--docusaurus-details-summary-arrow-size:0.38rem;--docusaurus-details-transition:transform 200ms ease;--docusaurus-details-decoration-color:grey}.details_lb9f>summary{cursor:pointer;list-style:none;padding-left:1rem;position:relative}.details_lb9f>summary::-webkit-details-marker{display:none}.details_lb9f>summary:before{border-color:#0000 #0000 #0000 var(--docusaurus-details-decoration-color);border-style:solid;border-width:var(--docusaurus-details-summary-arrow-size);content:"";left:0;position:absolute;top:.45rem;transform:rotate(0);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2) 50%;transition:var(--docusaurus-details-transition)}.collapsibleContent_i85q{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.details_b_Ee{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast) ease;border:1px solid var(--ifm-alert-border-color);margin:0 0 var(--ifm-spacing-vertical)}:not(.containsTaskList_mC6p>li)>.containsTaskList_mC6p{padding-left:0}.img_ev3q{height:auto}.admonition_xJq3{margin-bottom:1em}.admonitionHeading_Gvgb{font:var(--ifm-heading-font-weight) var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);text-transform:uppercase}.admonitionHeading_Gvgb:not(:last-child){margin-bottom:.3rem}.admonitionHeading_Gvgb code{text-transform:none}.admonitionIcon_Rf37{display:inline-block;margin-right:.4em;vertical-align:middle}.admonitionIcon_Rf37 svg{fill:var(--ifm-alert-foreground-color);display:inline-block;height:1.6em;width:1.6em}.breadcrumbHomeIcon_YNFT{height:1.1rem;position:relative;top:1px;vertical-align:top;width:1.1rem}.breadcrumbsContainer_Z_bl{--ifm-breadcrumb-size-multiplier:0.8;margin-bottom:.8rem}.title_kItE{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-leading)*1.25)}.searchQueryInput_u2C7,.searchVersionInput_m0Ui{background:var(--docsearch-searchbox-focus-background);border:2px solid var(--ifm-toc-border-color);border-radius:var(--ifm-global-radius);color:var(--docsearch-text-color);font:var(--ifm-font-size-base) var(--ifm-font-family-base);margin-bottom:.5rem;padding:.8rem;transition:border var(--ifm-transition-fast) ease;width:100%}.searchQueryInput_u2C7:focus,.searchVersionInput_m0Ui:focus{border-color:var(--docsearch-primary-color);outline:0}.searchQueryInput_u2C7::placeholder{color:var(--docsearch-muted-color)}.searchResultsColumn_JPFH{font-size:.9rem;font-weight:700}.algoliaLogo_rT1R{max-width:150px}.algoliaLogoPathFill_WdUC{fill:var(--ifm-font-color-base)}.searchResultItem_Tv2o{border-bottom:1px solid var(--ifm-toc-border-color);padding:1rem 0}.searchResultItemHeading_KbCB{font-weight:400;margin-bottom:0}.searchResultItemPath_lhe1{--ifm-breadcrumb-separator-size-multiplier:1;color:var(--ifm-color-content-secondary);font-size:.8rem}.searchResultItemSummary_AEaO{font-style:italic;margin:.5rem 0 0}.loadingSpinner_XVxU{animation:1s linear infinite m;border:.4em solid #eee;border-radius:50%;border-top:.4em solid var(--ifm-color-primary);height:3rem;margin:0 auto;width:3rem}@keyframes m{to{transform:rotate(1turn)}}.loader_vvXV{margin-top:2rem}.search-result-match{background:#ffd78e40;color:var(--docsearch-hit-color);padding:.09em 0}.icon_p5U1{color:var(--ifm-color-primary);font-size:50px;margin-top:20px}.card_M5pr{border-color:var(--ifm-color-emphasis-200);border-style:solid;border-width:1px;flex:1;margin:10px;min-width:330px;padding-top:20px;text-align:center}.card_M5pr img{border-radius:10px;max-width:400px;width:100%}.heroText_ryRM{flex:5;margin:30px 10px 10px}.heroVideo_l9rg{flex:7;margin:10px}.heroText_ryRM h1{font-size:50px;margin-bottom:25px;min-height:2.5em}.heroText_ryRM p{margin-bottom:50px}.sectionSeparator_HVke{height:150px}.firstSection_wDwr{margin-top:50px}[data-theme=dark] .mainSubheading_HtER{color:#a1a1aa;font-size:20px}[data-theme=light] .mainSubheading_HtER{color:#55555d;font-size:20px}[data-theme=dark] .grayText_CTeF{color:#a1a1aa;font-size:18px}[data-theme=light] .grayText_CTeF{color:#55555d;font-size:18px}.featureIcon_qaBM{margin:10px 30px 20px 20px}.hoverSecondary_mUBE:hover{box-shadow:0 0 10px var(--ifm-color-secondary);transform:scale(1.015)}.sceneExample_MxmD{font-size:100%}@media (min-width:0px){.sm\:grid-cols-\[max-content_auto_32px\]{grid-template-columns:max-content auto 32px}.sm\:grid-rows-\[auto_auto\]{grid-template-rows:auto auto}.sm\:\[column-gap\:16px\]{column-gap:16px}.sm\:\[grid-template-areas\:\'logo_text_close\'_\'button_button_button\'\]{grid-template-areas:"f g d" "c c c"}.sm\:\[row-gap\:16px\]{row-gap:16px}}@media (min-width:997px){.collapseSidebarButton_PEFL,.expandButton_TmdG{background-color:var(--docusaurus-collapse-button-bg)}.lg\:flex{display:flex}.lg\:h-\[85px\]{height:85px}.lg\:h-\[calc\(100vh-110px\)\]{height:calc(100vh - 110px)}.lg\:grid-cols-\[max-content_max-content_auto_max-content_max-content\]{grid-template-columns:max-content max-content auto max-content max-content}.lg\:grid-rows-\[auto\]{grid-template-rows:auto}.lg\:self-center{align-self:center}.lg\:px-10{padding-left:2.5rem;padding-right:2.5rem}.lg\:py-0{padding-bottom:0;padding-top:0}.lg\:text-\[22px\]\/9{font-size:22px;line-height:2.25rem}.lg\:\[column-gap\:16px\]{column-gap:16px}.lg\:\[grid-template-areas\:\"text_logo_decoration_button_close\"\]{grid-template-areas:"g f e c d"}.lastUpdated_vwxv{text-align:right}.tocMobile_ITEo{display:none}:root{--docusaurus-announcement-bar-height:30px}.announcementBarClose_gvF7,.announcementBarPlaceholder_vyr4{flex-basis:50px}.collapseSidebarButton_PEFL{border:1px solid var(--ifm-toc-border-color);border-radius:0;bottom:0;display:block!important;height:40px;position:sticky}.collapseSidebarButtonIcon_kv0_{margin-top:4px;transform:rotate(180deg)}.expandButtonIcon_i1dp,[dir=rtl] .collapseSidebarButtonIcon_kv0_{transform:rotate(0)}.collapseSidebarButton_PEFL:focus,.collapseSidebarButton_PEFL:hover,.expandButton_TmdG:focus,.expandButton_TmdG:hover{background-color:var(--docusaurus-collapse-button-bg-hover)}.menuHtmlItem_M9Kj{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu_SIkG{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_SIkG{padding:.5rem 0 .5rem .5rem;scrollbar-gutter:stable}}.menuWithAnnouncementBar_GW3s{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_njMd{display:flex;flex-direction:column;height:100%;padding-top:var(--ifm-navbar-height);width:var(--doc-sidebar-width)}.sidebarWithHideableNavbar_wUlq{padding-top:0}.sidebarHidden_VK0M{opacity:0;visibility:hidden}.sidebarLogo_isFc{align-items:center;color:inherit!important;display:flex!important;margin:0 var(--ifm-navbar-padding-horizontal);max-height:var(--ifm-navbar-height);min-height:var(--ifm-navbar-height);text-decoration:none!important}.sidebarLogo_isFc img{height:2rem;margin-right:.5rem}.expandButton_TmdG{align-items:center;display:flex;height:100%;justify-content:center;position:absolute;right:0;top:0;transition:background-color var(--ifm-transition-fast) ease;width:100%}[dir=rtl] .expandButtonIcon_i1dp{transform:rotate(180deg)}.docSidebarContainer_YfHR{border-right:1px solid var(--ifm-toc-border-color);clip-path:inset(0);display:block;margin-top:calc(var(--ifm-navbar-height)*-1);transition:width var(--ifm-transition-fast) ease;width:var(--doc-sidebar-width);will-change:width}.docSidebarContainerHidden_DPk8{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.sidebarViewport_aRkj{height:100%;max-height:100vh;position:sticky;top:0}.docMainContainer_TBSr{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_lQrH{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_JWYK{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}.navbarSearchContainer_Bca1{padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.docItemCol_VOVn,.generatedIndexPage_vN6x{max-width:75%!important}.list_eTzJ article:nth-last-child(-n+2){margin-bottom:0!important}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@media screen and (max-width:1440px){.heroText_ryRM h1,.heroText_ryRM p{margin-bottom:5px}}@media only screen and (max-width:1340px){.cardsContainer_NApk{grid-template-columns:1fr}.card_uGw9{margin:5px}.cardSubtitle_xyBL{display:none}.cardTitle_YaoG{font-size:16px}.bottomContainer_yrg_{flex-direction:column;padding:0;position:static}}@media screen and (max-width:1200px){.heroText_ryRM{margin-top:0}.heroText_ryRM,.heroVideo_l9rg{flex:unset;width:100%}.heroText_ryRM h1,.heroText_ryRM p{margin-bottom:0}.card_M5pr{flex:unset;height:unset;width:100%}.firstSection_wDwr{margin-top:20px}.sectionSeparator_HVke{height:30px}}@media (max-width:996px){.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.colorModeToggle_DEke,.footer__link-separator,.navbar__item,.tableOfContents_bqdL{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{display:block}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}.docItemContainer_F8PC{padding:0 .3rem}.navbarSearchContainer_Bca1{position:absolute;right:var(--ifm-navbar-padding-horizontal)}}@media only screen and (max-width:996px){.searchQueryColumn_RTkw,.searchResultsColumn_JPFH{max-width:60%!important}.searchLogoColumn_rJIA,.searchVersionColumn_ypXd{max-width:40%!important}.searchLogoColumn_rJIA{padding-left:0!important}}@media screen and (max-width:966px){.featureIcon_qaBM{position:absolute;visibility:hidden}.smallScreenFlexButton_j9_q{flex:1}}@media (max-width:768px){.DocSearch-Button-Keys,.DocSearch-Button-Placeholder,.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}:root{--docsearch-spacing:10px;--docsearch-footer-height:40px}.DocSearch-Dropdown{height:100%;max-height:calc(var(--docsearch-vh,1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))}.DocSearch-Container{height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh,1vh)*100);position:absolute}.DocSearch-Footer{border-radius:0;bottom:0;position:absolute}.DocSearch-Hit-content-wrapper{display:flex;position:relative;width:80%}.DocSearch-Modal{border-radius:0;box-shadow:none;height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh,1vh)*100);margin:0;max-width:100%;width:100%}.DocSearch-Cancel{appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;flex:none;font:inherit;font-size:1em;font-weight:500;margin-left:var(--docsearch-spacing);outline:0;overflow:hidden;padding:0;-webkit-user-select:none;user-select:none;white-space:nowrap}}@media only screen and (max-width:660px){.modalContent_jt0x{top:calc(50% + var(--ifm-navbar-height)/ 2);width:calc(100vw - 10px)}.container_SqLM,.container_i76h,.container_skE6{height:76vh}.imagePreviewDescriptionContainer_H4hc code{white-space:wrap}.headerResolutionLabel_Xjqq,.inputSelectorSelectContainer_NRWD{min-width:0}}@media (max-width:576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}}@media screen and (max-width:576px){.searchQueryColumn_RTkw{max-width:100%!important}.searchVersionColumn_ypXd{max-width:100%!important;padding-left:var(--ifm-spacing-horizontal)!important}}@media screen and (max-width:445px){.heroText_ryRM h1{min-height:5em}}@media (hover:hover){.backToTopButton_sjWU:hover{background-color:var(--ifm-color-emphasis-300)}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media (prefers-reduced-motion:reduce){:root{--ifm-transition-fast:0ms;--ifm-transition-slow:0ms}}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Reset{stroke-width:var(--docsearch-icon-stroke-width);animation:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0}.DocSearch-Hit--deleting,.DocSearch-Hit--favoriting{transition:none}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:none}}@media print{.announcementBar_mb4j,.footer,.menu,.navbar,.pagination-nav,.table-of-contents,.tocMobile_ITEo{display:none}.tabs{page-break-inside:avoid}.codeBlockLines_e6Vv{white-space:pre-wrap}} \ No newline at end of file + .current-line.current-line-margin.current-line-margin-both{border-right:0}.monaco-editor .lines-content .cdr,.monaco-editor .margin-view-overlays .cldr{height:100%;position:absolute}.monaco-editor .glyph-margin-widgets .cgmr{align-items:center;display:flex;justify-content:center;position:absolute}.monaco-editor .glyph-margin-widgets .cgmr.codicon-modifier-spin:before{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.monaco-editor .lines-content .core-guide{box-sizing:border-box;height:100%;position:absolute}.mtkcontrol{background:#960000!important;color:#fff!important}.mtkoverflow{background-color:var(--vscode-button-background,var(--vscode-editor-background));border-color:var(--vscode-contrastBorder);border-radius:2px;border-style:solid;border-width:1px;color:var(--vscode-button-foreground,var(--vscode-editor-foreground));cursor:pointer;padding:4px}.monaco-button-dropdown.default-colors>.monaco-button:hover,.monaco-button.default-colors:hover,.mtkoverflow:hover{background-color:var(--vscode-button-hoverBackground)}.monaco-editor .suggest-widget .monaco-list,.monaco-editor.no-user-select .lines-content,.monaco-editor.no-user-select .view-line,.monaco-editor.no-user-select .view-lines,.monaco-list.mouse-support{user-select:none;-webkit-user-select:none}.monaco-editor.mac .lines-content:hover,.monaco-editor.mac .view-line:hover,.monaco-editor.mac .view-lines:hover{user-select:text;-webkit-user-select:text;-ms-user-select:text}.monaco-editor.enable-user-select{user-select:auto;-webkit-user-select:initial}.monaco-editor .lines-content>.view-lines>.view-line>span{bottom:0;position:absolute;top:0}.monaco-editor .lines-decorations{background:#fff;position:absolute;top:0}.monaco-editor .margin-view-overlays .cmdr{height:100%;left:0;position:absolute;width:100%}.monaco-editor .minimap.slider-mouseover .minimap-slider{opacity:0;transition:opacity .1s linear}.monaco-editor .minimap-slider .minimap-slider-horizontal{background:var(--vscode-minimapSlider-background)}.monaco-editor .minimap-slider:hover .minimap-slider-horizontal{background:var(--vscode-minimapSlider-hoverBackground)}.monaco-editor .minimap-slider.active .minimap-slider-horizontal{background:var(--vscode-minimapSlider-activeBackground)}.monaco-editor .minimap-shadow-hidden{position:absolute;width:0}.monaco-editor .minimap-shadow-visible{box-shadow:var(--vscode-scrollbar-shadow) -6px 0 6px -6px inset;left:-6px;position:absolute;width:6px}.monaco-editor.no-minimap-shadow .minimap-shadow-visible{left:-1px;position:absolute;width:1px}.minimap.autohide{opacity:0;transition:opacity .5s}.monaco-editor .minimap{z-index:5}.monaco-editor .overlayWidgets{left:0;position:absolute;top:0}.monaco-editor .view-ruler{box-shadow:1px 0 0 0 var(--vscode-editorRuler-foreground) inset;position:absolute;top:0}.monaco-editor .scroll-decoration{box-shadow:var(--vscode-scrollbar-shadow) 0 6px 6px -6px inset;height:6px;left:0;position:absolute;top:0}.context-view,.monaco-diff-editor .diff-review,.monaco-editor .lines-content .cslr{position:absolute}.monaco-editor .focused .selected-text{background-color:var(--vscode-editor-selectionBackground)}.monaco-editor .selected-text{background-color:var(--vscode-editor-inactiveSelectionBackground)}.monaco-editor .top-left-radius{border-top-left-radius:3px}.monaco-editor .bottom-left-radius{border-bottom-left-radius:3px}.monaco-editor .top-right-radius{border-top-right-radius:3px}.monaco-editor .bottom-right-radius{border-bottom-right-radius:3px}.monaco-editor.hc-black .top-left-radius,.monaco-editor.hc-light .top-left-radius{border-top-left-radius:0}.monaco-editor.hc-black .bottom-left-radius,.monaco-editor.hc-light .bottom-left-radius{border-bottom-left-radius:0}.monaco-editor.hc-black .top-right-radius,.monaco-editor.hc-light .top-right-radius{border-top-right-radius:0}.monaco-editor.hc-black .bottom-right-radius,.monaco-editor.hc-light .bottom-right-radius{border-bottom-right-radius:0}.monaco-editor .cursors-layer>.cursor{box-sizing:border-box;overflow:hidden;position:absolute}.monaco-editor .cursors-layer.cursor-smooth-caret-animation>.cursor{transition:80ms}.monaco-editor .cursors-layer.cursor-block-outline-style>.cursor{background:#0000!important;border-style:solid;border-width:1px}.monaco-editor .cursors-layer.cursor-underline-style>.cursor{background:#0000!important;border-bottom-style:solid;border-bottom-width:2px}.monaco-editor .cursors-layer.cursor-underline-thin-style>.cursor{background:#0000!important;border-bottom-style:solid;border-bottom-width:1px}@keyframes b{0%,20%{opacity:1}60%,to{opacity:0}}@keyframes c{0%,20%{opacity:1}90%,to{opacity:0}}@keyframes d{0%,20%{transform:scaleY(1)}80%,to{transform:scaleY(0)}}.cursor-smooth{animation:.5s ease-in-out 20 alternate b}.cursor-phase{animation:.5s ease-in-out 20 alternate c}.monaco-editor .codelens-decoration.fadein,.monaco-hover,.monaco-workbench .workbench-hover:not(.skip-fade-in){animation:.1s linear l}.cursor-expand>.cursor{animation:.5s ease-in-out 20 alternate d}.monaco-editor .mwh{position:absolute}.monaco-workbench .workbench-hover{background:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border);border-radius:3px;box-shadow:0 2px 8px var(--vscode-widget-shadow);color:var(--vscode-editorHoverWidget-foreground);font-size:13px;line-height:19px;max-width:700px;overflow:hidden;position:relative;z-index:40}.colorpicker-header.standalone-colorpicker,.monaco-workbench .workbench-hover hr{border-bottom:none}.monaco-action-bar .checkbox-action-item>.checkbox-label,.monaco-workbench .workbench-hover.compact{font-size:12px}.monaco-workbench .workbench-hover.compact .hover-contents{padding:2px 8px}.monaco-workbench .workbench-hover-container.locked .workbench-hover{outline:1px solid var(--vscode-editorHoverWidget-border)}.monaco-workbench .workbench-hover-container.locked .workbench-hover:focus,.monaco-workbench .workbench-hover-lock:focus{outline:1px solid var(--vscode-focusBorder)}.monaco-workbench .workbench-hover-container.locked .workbench-hover-lock:hover{background:var(--vscode-toolbar-hoverBackground)}.monaco-workbench .workbench-hover-pointer{pointer-events:none;position:absolute;z-index:41}.monaco-workbench .workbench-hover-pointer:after{background-color:var(--vscode-editorHoverWidget-background);border-bottom:1px solid var(--vscode-editorHoverWidget-border);border-right:1px solid var(--vscode-editorHoverWidget-border);content:"";height:5px;position:absolute;width:5px}.monaco-workbench .locked .workbench-hover-pointer:after{border-bottom-width:2px;border-right-width:2px;height:4px;width:4px}.monaco-workbench .workbench-hover-pointer.left{left:-3px}.monaco-workbench .workbench-hover-pointer.right{right:3px}.monaco-workbench .workbench-hover-pointer.top{top:-3px}.monaco-workbench .workbench-hover-pointer.bottom{bottom:3px}.monaco-editor .monaco-editor-overlaymessage .message a,.monaco-editor .monaco-hover .hover-row .verbosity-actions .codicon.enabled,.monaco-editor .monaco-hover a,.monaco-editor .parameter-hints-widget .docs a,.monaco-editor .suggest-details a,.monaco-link,.monaco-workbench .workbench-hover a{color:var(--vscode-textLink-foreground)}.monaco-workbench .workbench-hover a:focus{outline:solid 1px;outline-color:var(--vscode-focusBorder);outline-offset:-1px;text-decoration:underline}.monaco-editor .monaco-editor-overlaymessage .message a:hover,.monaco-editor .monaco-hover a:hover,.monaco-editor .suggest-details a:hover,.monaco-hover .hover-contents a.code-link>span:hover,.monaco-link:hover,.monaco-workbench .workbench-hover a:active,.monaco-workbench .workbench-hover a:hover{color:var(--vscode-textLink-activeForeground)}.monaco-workbench .workbench-hover code{background:var(--vscode-textCodeBlock-background)}.monaco-workbench .workbench-hover .hover-row .actions{background:var(--vscode-editorHoverWidget-statusBarBackground)}.monaco-workbench .workbench-hover.right-aligned{left:1px}.monaco-workbench .workbench-hover.right-aligned .hover-row.status-bar .actions{flex-direction:row-reverse}.monaco-workbench .workbench-hover.right-aligned .hover-row.status-bar .actions .action-container{margin-left:16px;margin-right:0}.monaco-hover{box-sizing:border-box;cursor:default;line-height:1.5em;overflow:hidden;position:absolute;user-select:text;-webkit-user-select:text;white-space:var(--vscode-hover-whiteSpace,normal)}.monaco-hover.hidden,.monaco-list-type-filter-message:empty,.quick-input-list .quick-input-list-entry-action-bar .action-label,.quick-input-widget .quick-input-list .quick-input-list-checkbox{display:none}.monaco-hover .hover-contents:not(.html-hover-contents){padding:4px 8px}.hc-black .monaco-select-box-dropdown-container>.select-box-dropdown-list-container,.monaco-select-box-dropdown-container>.select-box-dropdown-list-container{padding-bottom:var(--dropdown-padding-bottom);padding-top:var(--dropdown-padding-top)}.monaco-hover .markdown-hover>.hover-contents:not(.code-hover-contents){word-wrap:break-word;max-width:var(--vscode-hover-maxWidth,500px)}.monaco-hover .markdown-hover>.hover-contents:not(.code-hover-contents) hr{min-width:100%}.monaco-editor .parameter-hints-widget p,.monaco-editor .parameter-hints-widget ul,.monaco-hover .code,.monaco-hover h1,.monaco-hover h2,.monaco-hover h3,.monaco-hover h4,.monaco-hover h5,.monaco-hover h6,.monaco-hover p,.monaco-hover ul{margin:8px 0}.monaco-hover h1,.monaco-hover h2,.monaco-hover h3,.monaco-hover h4,.monaco-hover h5,.monaco-hover h6{line-height:1.1}.monaco-hover hr{border-left:0;border-right:0;box-sizing:border-box;height:1px;margin:4px -8px -4px}.monaco-editor .suggest-details ol,.monaco-editor .suggest-details ul,.monaco-hover ol,.monaco-hover ul{padding-left:20px}.monaco-hover code{font-family:var(--monaco-monospace-font);border-radius:3px;padding:0 .4em}.monaco-hover .monaco-tokenized-source{white-space:var(--vscode-hover-sourceWhiteSpace,pre-wrap)}.monaco-hover .hover-row.status-bar{font-size:12px;line-height:22px}.monaco-hover .hover-row.status-bar .info{font-style:italic;padding:0 8px}.monaco-hover .hover-row.status-bar .actions{display:flex;padding:0 8px;width:100%}.monaco-hover .hover-row.status-bar .actions .action-container{cursor:pointer;margin-right:16px}.monaco-hover .hover-row.status-bar .actions .action-container .action .icon{padding-right:4px}.monaco-hover .markdown-hover .hover-contents .codicon{color:inherit;font-size:inherit;vertical-align:middle}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link:before,.monaco-hover .hover-contents a.code-link:before{content:"("}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link:after,.monaco-hover .hover-contents a.code-link:after{content:")"}.monaco-hover .hover-contents a.code-link>span{border-bottom:1px solid #0000;color:var(--vscode-textLink-foreground);text-decoration:underline;text-underline-position:under}.monaco-hover .markdown-hover .hover-contents:not(.code-hover-contents):not(.html-hover-contents) span{display:inline-block;margin-bottom:4px}.monaco-hover-content .action-container a{-webkit-user-select:none;user-select:none}.monaco-hover-content .action-container.disabled{cursor:default;opacity:.4;pointer-events:none}.monaco-editor .rendered-markdown kbd{background-color:var(--vscode-keybindingLabel-background);border-color:var(--vscode-keybindingLabel-border);border-bottom-color:var(--vscode-keybindingLabel-bottomBorder);border-radius:3px;border-style:solid;border-width:1px;box-shadow:inset 0 -1px 0 var(--vscode-widget-shadow);color:var(--vscode-keybindingLabel-foreground);padding:1px 3px;vertical-align:middle}.rendered-markdown li:has(input[type=checkbox]){list-style-type:none}.context-view.fixed{all:initial;color:inherit;font-family:inherit;font-size:13px;position:fixed}.mac .monaco-action-bar .action-item .monaco-select-box,.monaco-action-bar .action-label{font-size:11px;border-radius:5px}.monaco-list,.monaco-split-view2>.monaco-scrollable-element>.split-view-container{height:100%;position:relative;white-space:nowrap;width:100%}.monaco-inputbox>.ibwrapper,.monaco-list-rows,.monaco-split-view2{height:100%;position:relative;width:100%}.monaco-list.horizontal-scrolling .monaco-list-rows{min-width:100%;width:auto}.monaco-list-row{box-sizing:border-box;overflow:hidden;position:absolute;width:100%}.monaco-list.mouse-support .monaco-list-row{cursor:pointer;touch-action:none}.monaco-list .monaco-scrollable-element>.scrollbar.vertical,.monaco-pane-view>.monaco-split-view2.vertical>.monaco-scrollable-element>.scrollbar.vertical{z-index:14}.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row>.contents>.main>.right>.readMore,.monaco-list-row.scrolling,.quick-input-list .monaco-tl-twistie{display:none!important}.action-widget .monaco-list:focus:before,.monaco-list.element-focused,.monaco-list.selection-multiple,.monaco-list.selection-single{outline:0!important}.monaco-drag-image{border-radius:10px;display:inline-block;font-size:12px;padding:1px 7px;position:absolute;z-index:1000}.monaco-list-type-filter-message{box-sizing:border-box;height:100%;left:0;opacity:.7;padding:40px 1em 1em;pointer-events:none;position:absolute;text-align:center;top:0;white-space:normal;width:100%}.monaco-select-box-dropdown-padding{--dropdown-padding-top:1px;--dropdown-padding-bottom:1px}.hc-black .monaco-select-box-dropdown-padding,.hc-light .monaco-select-box-dropdown-padding{--dropdown-padding-top:3px;--dropdown-padding-bottom:4px}.monaco-select-box-dropdown-container{box-sizing:border-box;display:none;font-size:13px;font-weight:400;text-transform:none}.monaco-select-box-dropdown-container>.select-box-details-pane>.select-box-description-markdown a:focus{outline:-webkit-focus-ring-color solid 1px;outline-offset:-1px}.monaco-select-box-dropdown-container>.select-box-details-pane>.select-box-description-markdown code{font-family:var(--monaco-monospace-font);line-height:15px}.monaco-select-box-dropdown-container.visible{border-bottom-left-radius:3px;border-bottom-right-radius:3px;display:flex;flex-direction:column;overflow:hidden;text-align:left;width:1px}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container{align-self:flex-start;box-sizing:border-box;flex:0 0 auto;overflow:hidden;padding-left:1px;padding-right:1px;width:100%}.monaco-select-box-dropdown-container>.select-box-details-pane{padding:5px}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row>.option-text{float:left;overflow:hidden;padding-left:3.5px;text-overflow:ellipsis;white-space:nowrap}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row>.option-detail{float:left;opacity:.7;overflow:hidden;padding-left:3.5px;text-overflow:ellipsis;white-space:nowrap}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row>.option-decorator-right{float:right;overflow:hidden;padding-right:10px;text-overflow:ellipsis;white-space:nowrap}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row>.visually-hidden{height:1px;left:-10000px;overflow:hidden;position:absolute;top:auto;width:1px}.monaco-select-box-dropdown-container>.select-box-dropdown-container-width-control{align-self:flex-start;flex:1 1 auto;opacity:0}.monaco-select-box-dropdown-container>.select-box-dropdown-container-width-control>.width-control-div{max-height:0;overflow:hidden}.monaco-select-box-dropdown-container>.select-box-dropdown-container-width-control>.width-control-div>.option-text-width-control{padding-left:4px;padding-right:8px;white-space:nowrap}.monaco-select-box{border-radius:2px;cursor:pointer;width:100%}.monaco-action-bar .action-item.disabled,.monaco-action-bar .action-item.select-container,.monaco-button-dropdown.disabled,.monaco-dropdown>.dropdown-label>.action-label.disabled,.monaco-editor.hc-black.mac.mouse-default .view-lines,.monaco-editor.hc-light.mac.mouse-default .view-lines,.monaco-editor.mouse-default .view-lines,.monaco-editor.vs-dark.mac.mouse-default .view-lines,.monaco-tl-row.disabled{cursor:default}.monaco-action-bar .action-item .monaco-select-box{cursor:pointer;min-height:18px;min-width:100px;padding:2px 23px 2px 8px}.monaco-action-bar{height:100%;white-space:nowrap}.monaco-action-bar .actions-container{align-items:center;display:flex;height:100%;margin:0 auto;padding:0;width:100%}.monaco-action-bar .action-item{align-items:center;cursor:pointer;display:block;justify-content:center;position:relative}.monaco-action-bar .action-item .codicon{align-items:center;display:flex;height:16px;width:16px}.monaco-action-bar .action-label{display:flex;padding:3px}.action-widget .monaco-list-row.action.option-disabled,.action-widget .monaco-list-row.action.option-disabled .codicon,.action-widget .monaco-list:focus .monaco-list-row.focused.action.option-disabled,.action-widget .monaco-list:not(.drop-target):not(.dragging) .monaco-list-row:hover:not(.selected):not(.focused).option-disabled,.monaco-action-bar .action-item.disabled .action-label,.monaco-action-bar .action-item.disabled .action-label:before,.monaco-action-bar .action-item.disabled .action-label:hover,.monaco-icon-label-container.disabled{color:var(--vscode-disabledForeground)}.monaco-action-bar.vertical .action-label.separator{border-bottom:1px solid #bbb;display:block;margin-left:.8em;margin-right:.8em;padding-top:1px}.monaco-action-bar .action-item .action-label.separator{background-color:#bbb;cursor:default;height:16px;margin:5px 4px!important;min-width:1px;padding:0;width:1px}.monaco-action-bar .action-item.select-container{align-items:center;display:flex;flex:1;justify-content:center;margin-right:10px;max-width:170px;min-width:60px;overflow:hidden}.monaco-action-bar .action-item.action-dropdown-item>.action-dropdown-item-separator{align-items:center;cursor:default;display:flex}.monaco-action-bar .action-item.action-dropdown-item>.action-dropdown-item-separator>div{width:1px}.monaco-dropdown{height:100%;padding:0}.monaco-dropdown>.dropdown-label{align-items:center;cursor:pointer;display:flex;height:100%;justify-content:center}.monaco-dropdown-with-default,.monaco-dropdown-with-primary{border-radius:5px;display:flex!important;flex-direction:row}.monaco-dropdown-with-default>.action-container>.action-label,.monaco-dropdown-with-primary>.action-container>.action-label,.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-item:not(:last-of-type) .action-label,.monaco-keybinding>.monaco-keybinding-key:last-child{margin-right:0}.monaco-dropdown-with-default>.dropdown-action-container>.monaco-dropdown>.dropdown-label .codicon[class*=codicon-],.monaco-dropdown-with-primary>.dropdown-action-container>.monaco-dropdown>.dropdown-label .codicon[class*=codicon-]{font-size:12px;line-height:16px;margin-left:-3px;padding-left:0;padding-right:0}.monaco-dropdown-with-default>.dropdown-action-container>.monaco-dropdown>.dropdown-label>.action-label,.monaco-dropdown-with-primary>.dropdown-action-container>.monaco-dropdown>.dropdown-label>.action-label{background-position:50%;background-repeat:no-repeat;background-size:16px;display:block}.monaco-action-bar .action-item.menu-entry .action-label.icon,.monaco-dropdown-with-default>.action-container.menu-entry>.action-label.icon{background-position:50%;background-repeat:no-repeat;background-size:16px;height:16px;width:16px}.colorpicker-header .close-button-inner-div:hover,.monaco-dropdown-with-default:hover,.monaco-editor .rename-box .rename-suggestions-button:hover{background-color:var(--vscode-toolbar-hoverBackground)}.quick-input-widget .monaco-highlighted-label .highlight{color:#0066bf}.vs .quick-input-widget .monaco-list-row.focused .monaco-highlighted-label .highlight{color:#9dddff}.vs-dark .quick-input-widget .monaco-highlighted-label .highlight{color:#0097fb}.hc-black .quick-input-widget .monaco-highlighted-label .highlight{color:#f38518}.hc-light .quick-input-widget .monaco-highlighted-label .highlight{color:#0f4a85}.monaco-keybinding>.monaco-keybinding-key{background-color:#ddd6;border:1px solid;border-color:#ccc6 #ccc6 #bbb6;box-shadow:inset 0 -1px 0 #bbb6;color:#555}.hc-black .monaco-keybinding>.monaco-keybinding-key{background-color:initial;border:1px solid #6fc3df;box-shadow:none;color:#fff}.hc-light .monaco-keybinding>.monaco-keybinding-key{background-color:initial;border:1px solid #0f4a85;box-shadow:none;color:#292929}.vs-dark .monaco-keybinding>.monaco-keybinding-key{background-color:#8080802b;border:1px solid;border-color:#3339 #3339 #4449;box-shadow:inset 0 -1px 0 #4449;color:#ccc}.monaco-custom-toggle{border:1px solid #0000;border-radius:3px;box-sizing:border-box;cursor:pointer;float:left;height:20px;margin-left:2px;overflow:hidden;padding:1px;user-select:none;-webkit-user-select:none;width:20px}.monaco-custom-toggle:hover{background-color:var(--vscode-inputOption-hoverBackground)}.hc-black .monaco-custom-toggle:hover,.hc-light .monaco-custom-toggle:hover{border:1px dashed var(--vscode-focusBorder)}.monaco-custom-toggle.monaco-checkbox{background-size:16px!important;border:1px solid #0000;border-radius:3px;height:18px;margin-left:0;margin-right:9px;opacity:1;padding:0;width:18px}.monaco-action-bar .checkbox-action-item>.monaco-custom-toggle.monaco-checkbox,.quick-input-list .quick-input-list-entry .quick-input-list-separator{margin-right:4px}.quick-input-widget{font-size:13px;-webkit-app-region:no-drag;border-radius:6px;left:50%;margin-left:-300px;position:absolute;width:600px;z-index:2550}.quick-input-titlebar{align-items:center;border-radius:inherit;display:flex}.quick-input-left-action-bar{display:flex;flex:1;margin-left:4px}.quick-input-title{overflow:hidden;padding:3px 0;text-align:center;text-overflow:ellipsis}.quick-input-right-action-bar{display:flex;flex:1;margin-right:4px}.quick-input-right-action-bar>.actions-container{justify-content:flex-end}.quick-input-titlebar .monaco-action-bar .action-label.codicon{background-position:50%;background-repeat:no-repeat;padding:2px}.quick-input-description{margin:6px 6px 6px 11px}.quick-input-header .quick-input-description{flex:1;margin:4px 2px}.quick-input-header{display:flex;padding:8px 6px 2px}.quick-input-widget.hidden-input .quick-input-header{margin-bottom:0;padding:0}.quick-input-and-message{display:flex;flex-direction:column;flex-grow:1;min-width:0;position:relative}.quick-input-check-all,.quick-input-list .quick-input-list-checkbox{align-self:center;margin:0}.quick-input-filter{display:flex;flex-grow:1;position:relative}.quick-input-widget.show-checkboxes .quick-input-box,.quick-input-widget.show-checkboxes .quick-input-message{margin-left:5px}.quick-input-visible-count{left:-10000px;position:absolute}.quick-input-count{align-items:center;align-self:center;display:flex;position:absolute;right:4px}.quick-input-count .monaco-count-badge{border-radius:2px;line-height:normal;min-height:auto;padding:2px 4px;vertical-align:middle}.quick-input-action .monaco-text-button{align-items:center;display:flex;font-size:11px;height:25px;padding:0 6px}.quick-input-message{margin-top:-1px;overflow-wrap:break-word;padding:5px}.quick-input-message>.codicon{margin:0 .2em;vertical-align:text-bottom}.quick-input-list{line-height:22px}.quick-input-widget.hidden-input .quick-input-list{margin-top:4px;padding-bottom:4px}.quick-input-list .monaco-list{max-height:440px;overflow:hidden;padding-bottom:5px}.quick-input-list .monaco-scrollable-element,.quick-input-list .monaco-tree-sticky-row{padding:0 5px}.quick-input-list .quick-input-list-entry{box-sizing:border-box;display:flex;height:100%;overflow:hidden;padding:0 6px}.quick-input-list .quick-input-list-entry.quick-input-list-separator-border{border-top-style:solid;border-top-width:1px}.quick-input-list .monaco-list-row[data-index="0"] .quick-input-list-entry.quick-input-list-separator-border,.quick-input-list .monaco-tree-sticky-row .quick-input-list-entry.quick-input-list-separator-as-item.quick-input-list-separator-border{border-top-style:none}.quick-input-list .quick-input-list-label{display:flex;flex:1;height:100%;overflow:hidden}.quick-input-list .quick-input-list-icon{align-items:center;background-position:0;background-repeat:no-repeat;background-size:16px;display:flex;height:22px;justify-content:center;padding-right:6px;width:16px}.quick-input-list .quick-input-list-rows{display:flex;flex:1;flex-direction:column;height:100%;margin-left:5px;overflow:hidden;text-overflow:ellipsis}.quick-input-list .quick-input-list-rows>.quick-input-list-row .codicon[class*=codicon-]{vertical-align:text-bottom}.quick-input-list .quick-input-list-entry .quick-input-list-entry-keybinding{margin-right:8px}.quick-input-list .quick-input-list-label-meta{line-height:normal;opacity:.7;overflow:hidden;text-overflow:ellipsis}.quick-input-list .monaco-list .monaco-list-row .monaco-highlighted-label .highlight{background-color:unset;color:var(--vscode-list-highlightForeground)!important;font-weight:700}.quick-input-list .monaco-list .monaco-list-row.focused .monaco-highlighted-label .highlight{color:var(--vscode-list-focusHighlightForeground)!important}.quick-input-list .quick-input-list-entry-action-bar{display:flex;flex:0;overflow:visible;margin-right:4px;margin-top:1px}.quick-input-list .quick-input-list-entry-action-bar .action-label.codicon{margin-right:4px;padding:0 2px 2px}.quick-input-list .quick-input-list-separator-as-item{font-size:12px;padding:4px 6px}.quick-input-list .quick-input-list-separator-as-item .label-description{opacity:1!important}.monaco-text-button{align-items:center;border:1px solid var(--vscode-button-border,#0000);border-radius:2px;box-sizing:border-box;cursor:pointer;display:flex;justify-content:center;line-height:18px;padding:4px;text-align:center;width:100%}.monaco-text-button:focus{outline-offset:2px!important}.monaco-text-button:hover{text-decoration:none!important}.monaco-button.disabled,.monaco-button.disabled:focus{cursor:default;opacity:.4!important}.monaco-description-button .monaco-button-description>.codicon,.monaco-description-button .monaco-button-label>.codicon,.monaco-text-button .codicon{color:inherit!important;margin:0 .2em}.monaco-text-button.monaco-text-button-with-short-label{flex-direction:row;flex-wrap:wrap;height:28px;overflow:hidden;padding:0 4px}.monaco-text-button.monaco-text-button-with-short-label>.monaco-button-label{flex-basis:100%}.monaco-text-button.monaco-text-button-with-short-label>.monaco-button-label-short{flex-grow:1;overflow:hidden;width:0}.monaco-text-button.monaco-text-button-with-short-label>.monaco-button-label,.monaco-text-button.monaco-text-button-with-short-label>.monaco-button-label-short{align-items:center;display:flex;font-style:inherit;font-weight:400;justify-content:center;padding:4px 0}.monaco-button-dropdown{cursor:pointer;display:flex}.monaco-button-dropdown>.monaco-button:focus{outline-offset:-1px!important}.monaco-button-dropdown.disabled>.monaco-button-dropdown-separator,.monaco-button-dropdown.disabled>.monaco-button.disabled,.monaco-button-dropdown.disabled>.monaco-button.disabled:focus{opacity:.4!important}.monaco-button-dropdown>.monaco-button.monaco-text-button{border-right-width:0!important}.monaco-button-dropdown .monaco-button-dropdown-separator{cursor:default;padding:4px 0}.monaco-button-dropdown .monaco-button-dropdown-separator>div,.monaco-split-view2.separator-border.horizontal>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{height:100%;width:1px}.monaco-button-dropdown>.monaco-button.monaco-dropdown-button{align-items:center;border:1px solid var(--vscode-button-border,#0000);border-left-width:0!important;border-radius:0 2px 2px 0;display:flex}.monaco-button-dropdown>.monaco-button.monaco-text-button{border-radius:2px 0 0 2px}.monaco-description-button{align-items:center;display:flex;flex-direction:column;margin:4px 5px}.monaco-description-button .monaco-button-description{font-size:11px;font-style:italic;padding:4px 20px}.monaco-description-button .monaco-button-description,.monaco-description-button .monaco-button-label,.monaco-editor .lightBulbWidget{align-items:center;display:flex;justify-content:center}.monaco-button-dropdown.default-colors>.monaco-button,.monaco-button.default-colors{background-color:var(--vscode-button-background);color:var(--vscode-button-foreground)}.monaco-button-dropdown.default-colors>.monaco-button.secondary,.monaco-button.default-colors.secondary{background-color:var(--vscode-button-secondaryBackground);color:var(--vscode-button-secondaryForeground)}.monaco-button-dropdown.default-colors>.monaco-button.secondary:hover,.monaco-button.default-colors.secondary:hover{background-color:var(--vscode-button-secondaryHoverBackground)}.monaco-button-dropdown.default-colors .monaco-button-dropdown-separator{background-color:var(--vscode-button-background);border-bottom:1px solid var(--vscode-button-border);border-top:1px solid var(--vscode-button-border)}.monaco-button-dropdown.default-colors .monaco-button.secondary+.monaco-button-dropdown-separator{background-color:var(--vscode-button-secondaryBackground)}.monaco-button-dropdown.default-colors .monaco-button-dropdown-separator>div{background-color:var(--vscode-button-separator)}.monaco-editor .monaco-hover code,.monaco-editor .parameter-hints-widget .docs code,.monaco-editor .suggest-details code{background-color:var(--vscode-textCodeBlock-background)}.monaco-count-badge{border-radius:11px;box-sizing:border-box;display:inline-block;font-size:11px;font-weight:400;line-height:11px;min-height:18px;min-width:18px;padding:3px 6px;text-align:center}.monaco-count-badge.long{border-radius:2px;line-height:normal;min-height:auto;padding:2px 3px}.monaco-progress-container{height:2px;overflow:hidden;width:100%}.monaco-progress-container .progress-bit{display:none;height:2px;left:0;position:absolute;width:2%}.monaco-progress-container.discrete .progress-bit{left:0;transition:width .1s linear}.monaco-progress-container.infinite .progress-bit{animation-duration:4s;animation-iteration-count:infinite;animation-name:e;animation-timing-function:linear;transform:translateZ(0)}.monaco-progress-container.infinite.infinite-long-running .progress-bit{animation-timing-function:steps(100)}@keyframes e{0%{transform:translateX(0) scaleX(1)}50%{transform:translateX(2500%) scaleX(3)}to{transform:translateX(4900%) scaleX(1)}}.monaco-inputbox{border-radius:2px;box-sizing:border-box;display:block;font-size:inherit;padding:0;position:relative}.monaco-inputbox>.ibwrapper>.input,.monaco-inputbox>.ibwrapper>.mirror{padding:4px 6px}.monaco-inputbox>.ibwrapper>.input{border:none;box-sizing:border-box;color:inherit;display:inline-block;font-family:inherit;font-size:inherit;height:100%;line-height:inherit;resize:none;width:100%}.monaco-inputbox>.ibwrapper>input{text-overflow:ellipsis}.monaco-inputbox>.ibwrapper>textarea.input{display:block;outline:0;scrollbar-width:none}.monaco-inputbox>.ibwrapper>textarea.input::-webkit-scrollbar{display:none}.monaco-inputbox>.ibwrapper>.mirror{word-wrap:break-word;box-sizing:border-box;display:inline-block;left:0;position:absolute;top:0;visibility:hidden;white-space:pre-wrap;width:100%}.monaco-inputbox-container .monaco-inputbox-message{word-wrap:break-word;box-sizing:border-box;display:inline-block;font-size:12px;line-height:17px;margin-top:-1px;overflow:hidden;padding:.4em;text-align:left;width:100%}.monaco-inputbox .monaco-action-bar{position:absolute;right:2px;top:4px}.monaco-inputbox .monaco-action-bar .action-item{margin-left:2px}.monaco-inputbox .monaco-action-bar .action-item .codicon{background-repeat:no-repeat;height:16px;width:16px}.monaco-findInput .monaco-inputbox{font-size:13px;width:100%}.monaco-editor .find-widget>.replace-part>.monaco-findInput>.controls,.monaco-findInput>.controls{position:absolute;right:2px;top:3px}.vs .monaco-findInput.disabled{background-color:#e1e1e1}.vs-dark .monaco-findInput.disabled{background-color:#333}.hc-light .monaco-findInput.highlight-0 .controls,.monaco-findInput.highlight-0 .controls{animation:.1s linear f}.hc-light .monaco-findInput.highlight-1 .controls,.monaco-findInput.highlight-1 .controls{animation:.1s linear g}.hc-black .monaco-findInput.highlight-0 .controls,.vs-dark .monaco-findInput.highlight-0 .controls{animation:.1s linear h}.hc-black .monaco-findInput.highlight-1 .controls,.vs-dark .monaco-findInput.highlight-1 .controls{animation:.1s linear i}@keyframes f{0%{background:#fdff00cc}to{background:#0000}}@keyframes g{0%{background:#fdff00cc}99%{background:#0000}}@keyframes h{0%{background:#ffffff70}to{background:#0000}}@keyframes i{0%{background:#ffffff70}99%{background:#0000}}.monaco-sash{position:absolute;touch-action:none;z-index:35}.monaco-sash.disabled{pointer-events:none;cursor:default!important;pointer-events:none!important}.monaco-sash.mac.vertical{cursor:col-resize}.monaco-sash.vertical.minimum{cursor:e-resize}.monaco-sash.vertical.maximum{cursor:w-resize}.monaco-sash.mac.horizontal{cursor:row-resize}.monaco-sash.horizontal.minimum{cursor:s-resize}.monaco-sash.horizontal.maximum{cursor:n-resize}.monaco-sash.vertical{cursor:ew-resize;height:100%;top:0;width:var(--vscode-sash-size)}.monaco-sash.horizontal{cursor:ns-resize;height:var(--vscode-sash-size);left:0;width:100%}.monaco-sash:not(.disabled)>.orthogonal-drag-handle{content:" ";cursor:all-scroll;display:block;height:calc(var(--vscode-sash-size)*2);position:absolute;width:calc(var(--vscode-sash-size)*2);z-index:100}.monaco-sash.horizontal.orthogonal-edge-north:not(.disabled)>.orthogonal-drag-handle.start,.monaco-sash.horizontal.orthogonal-edge-south:not(.disabled)>.orthogonal-drag-handle.end{cursor:nwse-resize}.monaco-sash.horizontal.orthogonal-edge-north:not(.disabled)>.orthogonal-drag-handle.end,.monaco-sash.horizontal.orthogonal-edge-south:not(.disabled)>.orthogonal-drag-handle.start{cursor:nesw-resize}.monaco-sash.vertical>.orthogonal-drag-handle.start{left:calc(var(--vscode-sash-size)*-.5);top:calc(var(--vscode-sash-size)*-1)}.monaco-sash.vertical>.orthogonal-drag-handle.end{bottom:calc(var(--vscode-sash-size)*-1);left:calc(var(--vscode-sash-size)*-.5)}.monaco-sash.horizontal>.orthogonal-drag-handle.start{left:calc(var(--vscode-sash-size)*-1);top:calc(var(--vscode-sash-size)*-.5)}.monaco-sash.horizontal>.orthogonal-drag-handle.end{right:calc(var(--vscode-sash-size)*-1);top:calc(var(--vscode-sash-size)*-.5)}.monaco-sash:before{background:#0000;content:"";height:100%;pointer-events:none;position:absolute;width:100%}.monaco-workbench:not(.reduce-motion) .monaco-sash:before{transition:background-color .1s ease-out}.monaco-sash.active:before,.monaco-sash.hover:before{background:var(--vscode-sash-hoverBorder)}.monaco-sash.vertical:before{left:calc(50% - var(--vscode-sash-hover-size)/ 2);width:var(--vscode-sash-hover-size)}.monaco-sash.horizontal:before{height:var(--vscode-sash-hover-size);top:calc(50% - var(--vscode-sash-hover-size)/ 2)}.pointer-events-disabled{pointer-events:none!important}.monaco-sash.debug{background:#0ff}.monaco-sash.debug.disabled{background:#0ff3}.monaco-sash.debug:not(.disabled)>.orthogonal-drag-handle{background:red}.monaco-split-view2>.sash-container{height:100%;pointer-events:none;position:absolute;width:100%}.monaco-editor .suggest-widget>.tree,.monaco-split-view2>.monaco-scrollable-element{height:100%;width:100%}.monaco-split-view2>.monaco-scrollable-element>.split-view-container>.split-view-view{position:absolute;white-space:normal}.inactiveTooltip_E43j,.monaco-editor .find-widget .button.toggle.disabled,.monaco-editor .find-widget.collapsed-find-widget .button.next,.monaco-editor .find-widget.collapsed-find-widget .button.previous,.monaco-editor .find-widget.collapsed-find-widget .button.replace,.monaco-editor .find-widget.collapsed-find-widget .button.replace-all,.monaco-editor .find-widget.collapsed-find-widget>.find-part .monaco-findInput .controls,.monaco-editor .find-widget.hiddenEditor,.monaco-editor .find-widget.reduced-find-widget .matchesCount,.monaco-editor .find-widget>.replace-part,.monaco-editor .monaco-editor-overlaymessage.below .anchor.below,.monaco-editor .monaco-editor-overlaymessage:not(.below) .anchor.top,.monaco-editor .parameter-hints-widget .docs.empty,.monaco-editor .suggest-details.no-docs,.monaco-editor .suggest-details>.monaco-scrollable-element>.body>p:empty,.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.hide,.monaco-editor .suggest-widget .monaco-list .monaco-list-row.string-label>.contents>.main>.right>.readMore,.monaco-editor .suggest-widget.no-icons .monaco-list .monaco-list-row .icon,.monaco-editor .suggest-widget.no-icons .monaco-list .monaco-list-row .suggest-icon:before,.monaco-editor .suggest-widget.with-status-bar .monaco-list .monaco-list-row.focused.string-label>.contents>.main>.right>.readMore,.monaco-editor .suggest-widget.with-status-bar .monaco-list .monaco-list-row>.contents>.main>.right>.readMore,.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container.empty,.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container.empty .monaco-tree-sticky-container-shadow,.monaco-split-view2>.monaco-scrollable-element>.split-view-container>.split-view-view:not(.visible){display:none}.monaco-table,.monaco-table-tr,.monaco-tl-row{display:flex;height:100%}.monaco-split-view2.separator-border>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{background-color:var(--separator-border);content:" ";left:0;pointer-events:none;position:absolute;top:0;z-index:5}.monaco-split-view2.separator-border.vertical>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{height:1px;width:100%}.monaco-table{flex-direction:column;overflow:hidden;position:relative;white-space:nowrap;width:100%}.monaco-table>.monaco-split-view2{border-bottom:1px solid #0000}.monaco-table-th{font-weight:700;height:100%;width:100%}.monaco-table-td,.monaco-table-th{box-sizing:border-box;flex-shrink:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.monaco-table>.monaco-split-view2 .monaco-sash.vertical:before{border-left:1px solid #0000;content:"";left:calc(var(--vscode-sash-size)/2);position:absolute;width:0}.monaco-workbench:not(.reduce-motion) .monaco-table>.monaco-split-view2,.monaco-workbench:not(.reduce-motion) .monaco-table>.monaco-split-view2 .monaco-sash.vertical:before{transition:border-color .2s ease-out}.monaco-tl-row{align-items:center;position:relative}.monaco-tl-indent{height:100%;left:16px;pointer-events:none;position:absolute;top:0}.hide-arrows .monaco-tl-indent{left:12px}.monaco-tl-indent>.indent-guide{border-left:1px solid #0000;box-sizing:border-box;display:inline-block;height:100%}.monaco-workbench:not(.reduce-motion) .monaco-tl-indent>.indent-guide{transition:border-color .1s linear}.monaco-tl-twistie{align-items:center;display:flex!important;flex-shrink:0;font-size:10px;justify-content:center;padding-right:6px;text-align:right;transform:translateX(3px);width:16px}.monaco-tl-contents{flex:1;overflow:hidden}.monaco-tl-twistie:before{border-radius:20px}.monaco-tl-twistie.collapsed:before{transform:rotate(-90deg)}.monaco-tl-twistie.codicon-tree-item-loading:before{animation:1.25s steps(30) infinite m}.monaco-tree-type-filter{border:1px solid var(--vscode-widget-border);border-bottom-left-radius:4px;border-bottom-right-radius:4px;display:flex;margin:0 6px;max-width:200px;padding:3px;position:absolute;top:0;z-index:100}.monaco-workbench:not(.reduce-motion) .monaco-tree-type-filter{transition:top .3s}.monaco-tree-type-filter.disabled{top:-40px!important}.monaco-tree-type-filter-grab{align-items:center;cursor:grab;display:flex!important;justify-content:center;margin-right:2px}.colorpicker-body .strip.grabbing,.monaco-tree-type-filter-grab.grabbing{cursor:grabbing}.monaco-tree-type-filter-input .monaco-inputbox{height:23px}.monaco-tree-type-filter-input .monaco-findInput>.controls{top:2px}.monaco-tree-type-filter-actionbar .monaco-action-bar .action-label{padding:2px}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container{background-color:var(--vscode-sideBar-background);height:0;left:0;position:absolute;top:0;width:100%;z-index:13}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-row.monaco-list-row{background-color:var(--vscode-sideBar-background);opacity:1!important;overflow:hidden;position:absolute;width:100%}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-row:hover{background-color:var(--vscode-list-hoverBackground)!important;cursor:pointer}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-container-shadow{bottom:-3px;height:0;left:0;position:absolute;width:100%}.monaco-icon-label{display:flex;overflow:hidden;text-overflow:ellipsis}.monaco-icon-label:before{background-position:0;background-repeat:no-repeat;background-size:16px;display:inline-block;flex-shrink:0;height:22px;line-height:inherit!important;padding-right:6px;vertical-align:top;width:16px}.monaco-icon-label-iconpath{display:flex;height:16px;margin-top:2px;padding-left:2px;width:16px}.monaco-icon-label>.monaco-icon-label-container{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-name-container>.label-name{color:inherit;white-space:pre}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-name-container>.label-name>.label-separator{margin:0 2px;opacity:.5}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-suffix-container>.label-suffix{opacity:.7;white-space:pre}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{font-size:.9em;margin-left:.5em;opacity:.7;white-space:pre}.vs .monaco-icon-label>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{opacity:.95}.monaco-icon-label.deprecated{opacity:.66;text-decoration:line-through}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label.deprecated>.monaco-icon-label-container>.monaco-icon-name-container,.monaco-icon-label.strikethrough>.monaco-icon-label-container>.monaco-icon-description-container>.label-description,.monaco-icon-label.strikethrough>.monaco-icon-label-container>.monaco-icon-name-container>.label-name{text-decoration:line-through}.monaco-icon-label:after{font-size:90%;font-weight:600;margin:auto 16px 0 5px;opacity:.75;text-align:center}.monaco-editor .peekview-widget .monaco-list .monaco-list-row.focused .codicon,.monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .selected .reference-file,.monaco-list:focus .selected .monaco-icon-label,.monaco-list:focus .selected .monaco-icon-label:after{color:inherit!important}.monaco-keybinding{align-items:center;display:flex;line-height:10px}.monaco-keybinding>.monaco-keybinding-key{border-radius:3px;border-style:solid;border-width:1px;display:inline-block;font-size:11px;margin:0 2px;padding:3px 5px;vertical-align:middle}.monaco-keybinding>.monaco-keybinding-key:first-child{margin-left:0}.monaco-keybinding>.monaco-keybinding-key-chord-separator{width:6px}.monaco-editor .diff-hidden-lines{font-size:13px;height:0;line-height:14px;transform:translateY(-10px)}.monaco-editor .diff-hidden-lines .bottom.dragging,.monaco-editor .diff-hidden-lines .top.dragging,.monaco-editor .diff-hidden-lines:not(.dragging) .bottom:hover,.monaco-editor .diff-hidden-lines:not(.dragging) .top:hover{background-color:var(--vscode-focusBorder)}.monaco-editor .diff-hidden-lines .bottom,.monaco-editor .diff-hidden-lines .top{background-clip:padding-box;background-color:initial;border-bottom:2px solid #0000;border-top:4px solid #0000;height:4px;transition:background-color .1s ease-out}.monaco-editor .diff-hidden-lines .bottom.canMoveTop:not(.canMoveBottom),.monaco-editor .diff-hidden-lines .top.canMoveTop:not(.canMoveBottom),.monaco-editor.draggingUnchangedRegion.canMoveTop:not(.canMoveBottom) *{cursor:n-resize!important}.monaco-editor .diff-hidden-lines .bottom:not(.canMoveTop).canMoveBottom,.monaco-editor .diff-hidden-lines .top:not(.canMoveTop).canMoveBottom,.monaco-editor.draggingUnchangedRegion:not(.canMoveTop).canMoveBottom *{cursor:s-resize!important}.monaco-editor .diff-hidden-lines .bottom.canMoveTop.canMoveBottom,.monaco-editor .diff-hidden-lines .top.canMoveTop.canMoveBottom,.monaco-editor.draggingUnchangedRegion.canMoveTop.canMoveBottom *{cursor:ns-resize!important}.monaco-editor .diff-hidden-lines .top{transform:translateY(4px)}.monaco-editor .diff-hidden-lines .bottom{transform:translateY(-6px)}.monaco-editor .diff-unchanged-lines{background:var(--vscode-diffEditor-unchangedCodeBackground)}.monaco-editor .noModificationsOverlay,}.header{background:var(--vscode-editor-background);display:flex}.monaco-editor .noModificationsOverlay{align-items:center;justify-content:center;z-index:1}.monaco-editor .diff-hidden-lines .center{background:var(--vscode-diffEditor-unchangedRegionBackground);box-shadow:inset 0 -5px 5px -7px var(--vscode-diffEditor-unchangedRegionShadow),inset 0 5px 5px -7px var(--vscode-diffEditor-unchangedRegionShadow);color:var(--vscode-diffEditor-unchangedRegionForeground);display:block;height:24px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.monaco-editor .diff-hidden-lines .center span.codicon{vertical-align:middle}.monaco-editor .detected-link-active,.monaco-editor .diff-hidden-lines .center a:hover .codicon{color:var(--vscode-editorLink-activeForeground)!important;cursor:pointer}.monaco-editor .diff-hidden-lines div.breadcrumb-item:hover{color:var(--vscode-editorLink-activeForeground)}.monaco-editor .movedModified,.monaco-editor .movedOriginal{border:2px solid var(--vscode-diffEditor-move-border)}.monaco-editor .movedModified.currentMove,.monaco-editor .movedOriginal.currentMove{border:2px solid var(--vscode-diffEditor-moveActive-border)}.monaco-diff-editor .moved-blocks-lines path.currentMove{stroke:var(--vscode-diffEditor-moveActive-border)}.monaco-diff-editor .moved-blocks-lines path{pointer-events:visiblestroke;fill:none;stroke:var(--vscode-diffEditor-move-border);stroke-width:2}.monaco-diff-editor .moved-blocks-lines .arrow{fill:var(--vscode-diffEditor-move-border)}.monaco-diff-editor .moved-blocks-lines .arrow.currentMove{fill:var(--vscode-diffEditor-moveActive-border)}.monaco-diff-editor .moved-blocks-lines .arrow-rectangle{fill:var(--vscode-editor-background)}.monaco-diff-editor .moved-blocks-lines{pointer-events:none;position:absolute}.monaco-editor .char-delete.diff-range-empty{border-left:3px solid var(--vscode-diffEditor-removedTextBackground);margin-left:-1px}.monaco-editor .char-insert.diff-range-empty{border-left:3px solid var(--vscode-diffEditor-insertedTextBackground)}.monaco-diff-editor .diff-moved-code-block{display:flex;justify-content:flex-end;margin-top:-4px}.monaco-diff-editor .diff-moved-code-block .action-bar .action-label.codicon{font-size:12px;height:12px;width:12px}.monaco-diff-editor .diffOverview{z-index:9}.monaco-diff-editor .diffOverview .diffViewport,.monaco-scrollable-element.modified-in-monaco-diff-editor .slider{z-index:10}.monaco-diff-editor.vs .diffOverview{background:#00000008}.monaco-diff-editor.vs-dark .diffOverview{background:#ffffff03}.monaco-scrollable-element.modified-in-monaco-diff-editor.vs .scrollbar,.monaco-scrollable-element.modified-in-monaco-diff-editor.vs-dark .scrollbar{background:#0000}.modified-in-monaco-diff-editor .slider.active{background:#ababab66}.monaco-diff-editor .delete-sign,.monaco-diff-editor .insert-sign,.monaco-editor .delete-sign,.monaco-editor .insert-sign{align-items:center;display:flex!important;font-size:11px!important;opacity:.7!important}.monaco-editor .arrow-revert-change,.monaco-editor .zone-widget{position:absolute;z-index:10}.monaco-diff-editor .char-insert,.monaco-editor .char-insert{background-color:var(--vscode-diffEditor-insertedTextBackground)}.monaco-diff-editor .line-insert,.monaco-editor .line-insert{background-color:var(--vscode-diffEditor-insertedLineBackground,var(--vscode-diffEditor-insertedTextBackground))}.monaco-editor .char-insert,.monaco-editor .line-insert{border:1px solid var(--vscode-diffEditor-insertedTextBorder);box-sizing:border-box}.monaco-editor.hc-black .char-delete,.monaco-editor.hc-black .char-insert,.monaco-editor.hc-black .line-delete,.monaco-editor.hc-black .line-insert,.monaco-editor.hc-light .char-delete,.monaco-editor.hc-light .char-insert,.monaco-editor.hc-light .line-delete,.monaco-editor.hc-light .line-insert{border-style:dashed}.monaco-editor .char-delete,.monaco-editor .line-delete{border:1px solid var(--vscode-diffEditor-removedTextBorder);box-sizing:border-box}.monaco-diff-editor .gutter-insert,.monaco-editor .gutter-insert,.monaco-editor .inline-added-margin-view-zone{background-color:var(--vscode-diffEditorGutter-insertedLineBackground,var(--vscode-diffEditor-insertedLineBackground),var(--vscode-diffEditor-insertedTextBackground))}.monaco-diff-editor .char-delete,.monaco-editor .char-delete{background-color:var(--vscode-diffEditor-removedTextBackground)}.monaco-diff-editor .line-delete,.monaco-editor .line-delete{background-color:var(--vscode-diffEditor-removedLineBackground,var(--vscode-diffEditor-removedTextBackground))}.monaco-diff-editor .gutter-delete,.monaco-editor .gutter-delete,.monaco-editor .inline-deleted-margin-view-zone{background-color:var(--vscode-diffEditorGutter-removedLineBackground,var(--vscode-diffEditor-removedLineBackground),var(--vscode-diffEditor-removedTextBackground))}.monaco-diff-editor.side-by-side .editor.modified{border-left:1px solid var(--vscode-diffEditor-border);box-shadow:-6px 0 5px -5px var(--vscode-scrollbar-shadow)}.monaco-diff-editor.side-by-side .editor.original{border-right:1px solid var(--vscode-diffEditor-border);box-shadow:6px 0 5px -5px var(--vscode-scrollbar-shadow)}.monaco-editor .diagonal-fill{background-image:linear-gradient(-45deg,var(--vscode-diffEditor-diagonalFill) 12.5%,#0000 12.5%,#0000 50%,var(--vscode-diffEditor-diagonalFill) 50%,var(--vscode-diffEditor-diagonalFill) 62.5%,#0000 62.5%,#0000 100%);background-size:8px 8px}.monaco-diff-editor .gutter{flex-grow:0;flex-shrink:0;overflow:hidden;position:relative}.gutterItem{opacity:0;transition:opacity .7s;height:100%;left:50%;position:absolute;width:1px}&.noTransition,&.showAlways{transition:none}}&:hover .gutterItem{opacity:1;transition:opacity .1s ease-in-out}.buttons{align-items:center;display:flex;justify-content:center;position:absolute;width:100%;border-radius:4px;width:fit-content}}}}}}}}.monaco-component.diff-review{user-select:none;-webkit-user-select:none;z-index:99}.monaco-component.diff-review .diff-review-line-number{color:var(--vscode-editorLineNumber-foreground);display:inline-block;text-align:right}.monaco-component.diff-review .diff-review-summary{padding-left:10px}.monaco-component.diff-review .diff-review-shadow{box-shadow:var(--vscode-scrollbar-shadow) 0 -6px 6px -6px inset;position:absolute}.monaco-component.diff-review .diff-review-table{display:table;min-width:100%}.monaco-component.diff-review .diff-review-row{white-space:pre;display:table-row;width:100%}.monaco-component.diff-review .diff-review-spacer{display:inline-block;vertical-align:middle;width:10px}.monaco-component.diff-review .diff-review-spacer>.codicon{font-size:9px!important}.monaco-component.diff-review .diff-review-actions{display:inline-block;position:absolute;right:10px;top:2px;z-index:100}.monaco-component.diff-review .diff-review-actions .action-label{height:16px;margin:2px 0;width:16px}.monaco-toolbar .toolbar-toggle-more{display:inline-block;padding:0}.monaco-component.multiDiffEditor{background:var(--vscode-multiDiffEditor-background);height:100%;overflow-y:hidden;left:0;position:absolute;top:0;width:100%;place-content:center;place-items:center;visibility:hidden}}}.active{--vscode-multiDiffEditor-border:var(--vscode-focusBorder)}.multiDiffEntry{display:flex;flex:1;flex-direction:column;overflow:hidden;margin:0 5px}}.header{z-index:1000;background:var(--vscode-multiDiffEditor-headerBackground);border-top:1px solid var(--vscode-multiDiffEditor-border);color:var(--vscode-foreground);margin:8px 0 0;padding:4px 5px}.action-widget,.post-edit-widget{background-color:var(--vscode-editorWidget-background)}.file-path{display:flex;flex:1;line-height:22px;min-width:0;text-overflow:ellipsis}}.status{font-weight:600;line-height:22px;margin:0 10px;opacity:.75}.action-widget .action-widget-action-bar .actions-container{padding:0 8px}}}.editorParent{border-bottom:1px solid var(--vscode-multiDiffEditor-border);display:flex;flex:1;flex-direction:column;overflow:hidden}}}.monaco-editor .selection-anchor{background-color:#007acc;width:2px!important}.monaco-editor .bracket-match{background-color:var(--vscode-editorBracketMatch-background);border:1px solid var(--vscode-editorBracketMatch-border);box-sizing:border-box}.inline-editor-progress-decoration{display:inline-block;height:1em;width:1em}.inline-progress-widget{align-items:center;display:flex!important;justify-content:center}.inline-progress-widget .icon{font-size:80%!important}.inline-progress-widget:hover .icon{animation:none;font-size:90%!important}.inline-progress-widget:hover .icon:before{content:var(--vscode-icon-x-content);font-family:var(--vscode-icon-x-font-family)}.monaco-editor .monaco-editor-overlaymessage{padding-bottom:8px;z-index:10000}.monaco-editor .monaco-editor-overlaymessage.below{padding-bottom:0;padding-top:8px;z-index:10000}@keyframes j{0%{opacity:0}to{opacity:1}}.monaco-editor .monaco-editor-overlaymessage.fadeIn{animation:.15s ease-out j}@keyframes k{0%{opacity:1}to{opacity:0}}.monaco-editor .monaco-editor-overlaymessage.fadeOut{animation:.1s ease-out k}.monaco-editor .monaco-editor-overlaymessage .message{background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-inputValidation-infoBorder);border-radius:3px;color:var(--vscode-editorHoverWidget-foreground);padding:2px 4px}.monaco-editor .monaco-editor-overlaymessage .message p{margin-block:0}.monaco-editor .monaco-editor-overlaymessage .anchor{border:8px solid #0000;height:0!important;left:2px;position:absolute;width:0!important;z-index:1000}.monaco-editor .monaco-editor-overlaymessage .anchor.top{border-bottom-color:var(--vscode-inputValidation-infoBorder)}.monaco-editor .monaco-editor-overlaymessage .anchor.below{border-top-color:var(--vscode-inputValidation-infoBorder)}.monaco-editor .monaco-editor-overlaymessage.below .anchor.top{display:inherit;top:-8px}.post-edit-widget{border:1px solid var(--vscode-widget-border,#0000);border-radius:4px;box-shadow:0 0 8px 2px var(--vscode-widget-shadow);overflow:hidden}.post-edit-widget .monaco-button{border:none;border-radius:0;padding:2px}.post-edit-widget .monaco-button:hover{background-color:var(--vscode-button-secondaryHoverBackground)!important}@font-face{font-display:block;font-family:codicon;src:url(/assets/fonts/codicon-f6283f7ccaed1249d9ebbcc5a55d5970.ttf) format("truetype")}.codicon[class*=codicon-]{display:inline-block;font:16px/1 codicon;text-align:center;text-decoration:none;text-rendering:auto;text-transform:none;user-select:none;-webkit-user-select:none}.codicon-wrench-subaction{opacity:.5}.codicon-gear.codicon-modifier-spin,.codicon-loading.codicon-modifier-spin,.codicon-notebook-state-executing.codicon-modifier-spin,.codicon-sync.codicon-modifier-spin{animation:1.5s steps(30) infinite m}.codicon-loading,.codicon-tree-item-loading:before{animation-duration:1s!important;animation-timing-function:cubic-bezier(.53,.21,.29,.67)!important}.monaco-editor .codicon.codicon-symbol-array,.monaco-workbench .codicon.codicon-symbol-array{color:var(--vscode-symbolIcon-arrayForeground)}.monaco-editor .codicon.codicon-symbol-boolean,.monaco-workbench .codicon.codicon-symbol-boolean{color:var(--vscode-symbolIcon-booleanForeground)}.monaco-editor .codicon.codicon-symbol-class,.monaco-workbench .codicon.codicon-symbol-class{color:var(--vscode-symbolIcon-classForeground)}.monaco-editor .codicon.codicon-symbol-method,.monaco-workbench .codicon.codicon-symbol-method{color:var(--vscode-symbolIcon-methodForeground)}.monaco-editor .codicon.codicon-symbol-color,.monaco-workbench .codicon.codicon-symbol-color{color:var(--vscode-symbolIcon-colorForeground)}.monaco-editor .codicon.codicon-symbol-constant,.monaco-workbench .codicon.codicon-symbol-constant{color:var(--vscode-symbolIcon-constantForeground)}.monaco-editor .codicon.codicon-symbol-constructor,.monaco-workbench .codicon.codicon-symbol-constructor{color:var(--vscode-symbolIcon-constructorForeground)}.monaco-editor .codicon.codicon-symbol-enum,.monaco-editor .codicon.codicon-symbol-value,.monaco-workbench .codicon.codicon-symbol-enum,.monaco-workbench .codicon.codicon-symbol-value{color:var(--vscode-symbolIcon-enumeratorForeground)}.monaco-editor .codicon.codicon-symbol-enum-member,.monaco-workbench .codicon.codicon-symbol-enum-member{color:var(--vscode-symbolIcon-enumeratorMemberForeground)}.monaco-editor .codicon.codicon-symbol-event,.monaco-workbench .codicon.codicon-symbol-event{color:var(--vscode-symbolIcon-eventForeground)}.monaco-editor .codicon.codicon-symbol-field,.monaco-workbench .codicon.codicon-symbol-field{color:var(--vscode-symbolIcon-fieldForeground)}.monaco-editor .codicon.codicon-symbol-file,.monaco-workbench .codicon.codicon-symbol-file{color:var(--vscode-symbolIcon-fileForeground)}.monaco-editor .codicon.codicon-symbol-folder,.monaco-workbench .codicon.codicon-symbol-folder{color:var(--vscode-symbolIcon-folderForeground)}.monaco-editor .codicon.codicon-symbol-function,.monaco-workbench .codicon.codicon-symbol-function{color:var(--vscode-symbolIcon-functionForeground)}.monaco-editor .codicon.codicon-symbol-interface,.monaco-workbench .codicon.codicon-symbol-interface{color:var(--vscode-symbolIcon-interfaceForeground)}.monaco-editor .codicon.codicon-symbol-key,.monaco-workbench .codicon.codicon-symbol-key{color:var(--vscode-symbolIcon-keyForeground)}.monaco-editor .codicon.codicon-symbol-keyword,.monaco-workbench .codicon.codicon-symbol-keyword{color:var(--vscode-symbolIcon-keywordForeground)}.monaco-editor .codicon.codicon-symbol-module,.monaco-workbench .codicon.codicon-symbol-module{color:var(--vscode-symbolIcon-moduleForeground)}.monaco-editor .codicon.codicon-symbol-namespace,.monaco-workbench .codicon.codicon-symbol-namespace{color:var(--vscode-symbolIcon-namespaceForeground)}.monaco-editor .codicon.codicon-symbol-null,.monaco-workbench .codicon.codicon-symbol-null{color:var(--vscode-symbolIcon-nullForeground)}.monaco-editor .codicon.codicon-symbol-number,.monaco-workbench .codicon.codicon-symbol-number{color:var(--vscode-symbolIcon-numberForeground)}.monaco-editor .codicon.codicon-symbol-object,.monaco-workbench .codicon.codicon-symbol-object{color:var(--vscode-symbolIcon-objectForeground)}.monaco-editor .codicon.codicon-symbol-operator,.monaco-workbench .codicon.codicon-symbol-operator{color:var(--vscode-symbolIcon-operatorForeground)}.monaco-editor .codicon.codicon-symbol-package,.monaco-workbench .codicon.codicon-symbol-package{color:var(--vscode-symbolIcon-packageForeground)}.monaco-editor .codicon.codicon-symbol-property,.monaco-workbench .codicon.codicon-symbol-property{color:var(--vscode-symbolIcon-propertyForeground)}.monaco-editor .codicon.codicon-symbol-reference,.monaco-workbench .codicon.codicon-symbol-reference{color:var(--vscode-symbolIcon-referenceForeground)}.monaco-editor .codicon.codicon-symbol-snippet,.monaco-workbench .codicon.codicon-symbol-snippet{color:var(--vscode-symbolIcon-snippetForeground)}.monaco-editor .codicon.codicon-symbol-string,.monaco-workbench .codicon.codicon-symbol-string{color:var(--vscode-symbolIcon-stringForeground)}.monaco-editor .codicon.codicon-symbol-struct,.monaco-workbench .codicon.codicon-symbol-struct{color:var(--vscode-symbolIcon-structForeground)}.monaco-editor .codicon.codicon-symbol-text,.monaco-workbench .codicon.codicon-symbol-text{color:var(--vscode-symbolIcon-textForeground)}.monaco-editor .codicon.codicon-symbol-type-parameter,.monaco-workbench .codicon.codicon-symbol-type-parameter{color:var(--vscode-symbolIcon-typeParameterForeground)}.monaco-editor .codicon.codicon-symbol-unit,.monaco-workbench .codicon.codicon-symbol-unit{color:var(--vscode-symbolIcon-unitForeground)}.monaco-editor .codicon.codicon-symbol-variable,.monaco-workbench .codicon.codicon-symbol-variable{color:var(--vscode-symbolIcon-variableForeground)}.monaco-editor .lightBulbWidget.codicon-light-bulb,.monaco-editor .lightBulbWidget.codicon-lightbulb-sparkle{color:var(--vscode-editorLightBulb-foreground)}.monaco-editor .lightBulbWidget.codicon-lightbulb-autofix,.monaco-editor .lightBulbWidget.codicon-lightbulb-sparkle-autofix{color:var(--vscode-editorLightBulbAutoFix-foreground,var(--vscode-editorLightBulb-foreground))}.monaco-editor .lightBulbWidget.codicon-sparkle-filled{color:var(--vscode-editorLightBulbAi-foreground,var(--vscode-icon-foreground))}.monaco-editor .lightBulbWidget:before{position:relative;z-index:2}.monaco-editor .lightBulbWidget:after{background-color:var(--vscode-editor-background);content:"";display:block;height:100%;left:0;opacity:.3;position:absolute;top:0;width:100%;z-index:1}.action-widget{border:1px solid var(--vscode-editorWidget-border)!important;border-radius:2px;color:var(--vscode-editorWidget-foreground);display:block;font-size:13px;max-width:80vw;min-width:160px;width:100%;z-index:40}.context-view-block{z-index:-1}.context-view-block,.context-view-pointerBlock{cursor:auto;height:100%;left:0;position:fixed;top:0;width:100%}.context-view-pointerBlock{z-index:2}.action-widget .monaco-list{border:0!important;user-select:none;-webkit-user-select:none}.action-widget .monaco-list .monaco-scrollable-element{overflow:visible}.action-widget .monaco-list .monaco-list-row{cursor:pointer;padding:0 10px;touch-action:none;white-space:nowrap;width:100%}.action-widget .monaco-list .monaco-list-row.action.focused:not(.option-disabled){background-color:var(--vscode-quickInputList-focusBackground)!important;color:var(--vscode-quickInputList-focusForeground);outline:1px solid var(--vscode-menu-selectionBorder,#0000);outline-offset:-1px}.action-widget .monaco-list-row.group-header{color:var(--vscode-descriptionForeground)!important;font-weight:600}.action-widget .monaco-list .group-header,.action-widget .monaco-list .option-disabled,.action-widget .monaco-list .option-disabled .focused,.action-widget .monaco-list .option-disabled .focused:before,.action-widget .monaco-list .option-disabled:before{-webkit-touch-callout:none;background-color:initial!important;cursor:default!important;outline:solid 0!important;-webkit-user-select:none;user-select:none}.action-widget .monaco-list-row.action{align-items:center;display:flex;gap:6px}.action-widget .monaco-list-row.action .title{flex:1;overflow:hidden;text-overflow:ellipsis}.action-widget .monaco-list-row.action .monaco-keybinding>.monaco-keybinding-key{background-color:var(--vscode-keybindingLabel-background);border-color:var(--vscode-keybindingLabel-border);border-bottom-color:var(--vscode-keybindingLabel-bottomBorder);border-radius:3px;border-style:solid;border-width:1px;box-shadow:inset 0 -1px 0 var(--vscode-widget-shadow);color:var(--vscode-keybindingLabel-foreground)}.action-widget .action-widget-action-bar{background-color:var(--vscode-editorHoverWidget-statusBarBackground);border-top:1px solid var(--vscode-editorHoverWidget-border)}.action-widget .action-widget-action-bar:before{content:"";display:block;width:100%}.action-widget-action-bar .action-label{color:var(--vscode-textLink-activeForeground);font-size:12px;line-height:22px;padding:0;pointer-events:all}.monaco-editor .codelens-decoration,.monaco-editor .codelens-decoration .codicon{font-size:var(--vscode-editorCodeLens-fontSize);line-height:var(--vscode-editorCodeLens-lineHeight)}.action-widget-action-bar .action-item{margin-right:16px;pointer-events:none}.action-widget-action-bar .action-label:hover{background-color:initial!important}.monaco-action-bar .actions-container.highlight-toggled .action-label.checked{background:var(--vscode-actionBar-toggledBackground)!important}.monaco-editor .codelens-decoration{font-feature-settings:var(--vscode-editorCodeLens-fontFeatureSettings);color:var(--vscode-editorCodeLens-foreground);display:inline-block;font-family:var(--vscode-editorCodeLens-fontFamily),var(--vscode-editorCodeLens-fontFamilyDefault);overflow:hidden;padding-right:calc(var(--vscode-editorCodeLens-fontSize)*.5);text-overflow:ellipsis;white-space:nowrap}.monaco-editor .codelens-decoration>a,.monaco-editor .codelens-decoration>span{user-select:none;-webkit-user-select:none;vertical-align:sub;white-space:nowrap}.monaco-editor .codelens-decoration>a:hover,.monaco-editor .codelens-decoration>a:hover .codicon{color:var(--vscode-editorLink-activeForeground)!important}.monaco-editor .codelens-decoration .codicon{color:currentColor!important;color:var(--vscode-editorCodeLens-foreground);vertical-align:middle}@keyframes l{0%{opacity:0;visibility:visible}to{opacity:1}}.colorpicker-widget{height:190px;user-select:none;-webkit-user-select:none}.colorpicker-color-decoration,.hc-light .colorpicker-color-decoration{border:.1em solid #000;box-sizing:border-box;cursor:pointer;display:inline-block;height:.8em;line-height:.8em;margin:.1em .2em 0;width:.8em}.hc-black .colorpicker-color-decoration,.vs-dark .colorpicker-color-decoration{border:.1em solid #eee}.colorpicker-header{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAAHUlEQVQYV2PYvXu3JAi7uLiAMaYAjAGTQBPYLQkAa/0Zef3qRswAAAAASUVORK5CYII=") 0 0/9px 9px;display:flex;height:24px;image-rendering:pixelated;position:relative}.colorpicker-header .close-button,.standalone-colorpicker{background-color:var(--vscode-editorHoverWidget-background)}.colorpicker-header .picked-color{align-items:center;color:#fff;cursor:pointer;display:flex;flex:1;justify-content:center;line-height:24px;overflow:hidden;white-space:nowrap;width:240px}.colorpicker-header .picked-color .picked-color-presentation{margin-left:5px;margin-right:5px;white-space:nowrap}.colorpicker-header .picked-color .codicon{color:inherit;font-size:14px}.colorpicker-header .picked-color.light{color:#000}.colorpicker-header .original-color{cursor:pointer;width:74px;z-index:inherit}.standalone-colorpicker{border:1px solid var(--vscode-editorHoverWidget-border);color:var(--vscode-editorHoverWidget-foreground)}.colorpicker-header .close-button{border-left:1px solid var(--vscode-editorHoverWidget-border);cursor:pointer}.colorpicker-header .close-button-inner-div{height:100%;text-align:center;width:100%}.colorpicker-header .close-icon{padding:3px}.colorpicker-body{display:flex;padding:8px;position:relative}.colorpicker-body .saturation-wrap{flex:1;height:150px;min-width:220px;overflow:hidden;position:relative}.colorpicker-body .saturation-box{height:150px;position:absolute}.colorpicker-body .saturation-selection{border:1px solid #fff;border-radius:100%;box-shadow:0 0 2px #000c;height:9px;margin:-5px 0 0 -5px;position:absolute;width:9px}.colorpicker-body .strip{height:150px;width:25px}.colorpicker-body .standalone-strip{height:122px;width:25px}.colorpicker-body .hue-strip{background:linear-gradient(180deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red);cursor:grab;margin-left:8px;position:relative}.colorpicker-body .opacity-strip{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAAHUlEQVQYV2PYvXu3JAi7uLiAMaYAjAGTQBPYLQkAa/0Zef3qRswAAAAASUVORK5CYII=") 0 0/9px 9px;cursor:grab;image-rendering:pixelated;margin-left:8px;position:relative}.colorpicker-body .slider{border:1px solid #ffffffb5;box-shadow:0 0 1px #000000d9;box-sizing:border-box;height:4px;left:-2px;position:absolute;top:0;width:calc(100% + 4px)}.colorpicker-body .strip .overlay{height:150px;pointer-events:none}.colorpicker-body .standalone-strip .standalone-overlay{height:122px;pointer-events:none}.standalone-colorpicker-body{border:1px solid #0000;border-bottom:1px solid var(--vscode-editorHoverWidget-border);display:block;overflow:hidden}.colorpicker-body .insert-button{background:var(--vscode-button-background);border:none;border-radius:2px;bottom:8px;color:var(--vscode-button-foreground);cursor:pointer;height:20px;padding:0;position:absolute;right:8px;width:58px}.colorpicker-body .insert-button:hover{background:var(--vscode-button-hoverBackground)}.monaco-editor .inlineEditHints.withBorder,.monaco-editor .inlineSuggestionsHints.withBorder{background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border);color:var(--vscode-editorHoverWidget-foreground);z-index:39}.monaco-editor .inlineEditHints a,.monaco-editor .inlineEditHints a:hover,.monaco-editor .inlineSuggestionsHints a,.monaco-editor .inlineSuggestionsHints a:hover{color:var(--vscode-foreground)}.monaco-editor .inlineEditHints .keybinding,.monaco-editor .inlineSuggestionsHints .keybinding{display:flex;margin-left:4px;opacity:.6}.monaco-editor .inlineEditHints .keybinding .monaco-keybinding-key,.monaco-editor .inlineSuggestionsHints .keybinding .monaco-keybinding-key{font-size:8px;padding:2px 3px}.monaco-editor .inlineSuggestionsHints .availableSuggestionCount a{display:flex;justify-content:center;min-width:19px}.monaco-editor .inlineEditStatusBarItemLabel,.monaco-editor .inlineSuggestionStatusBarItemLabel{margin-right:2px}.monaco-editor .peekview-widget .head{box-sizing:border-box;display:flex;flex-wrap:nowrap;justify-content:space-between}.monaco-editor .peekview-widget .head .peekview-title{align-items:baseline;display:flex;font-size:13px;margin-left:20px;min-width:0;overflow:hidden;text-overflow:ellipsis}.monaco-editor .peekview-widget .head .peekview-title .dirname:not(:empty){font-size:.9em;margin-left:.5em}.monaco-editor .peekview-widget .head .peekview-title .meta:not(:empty):before{content:"-";padding:0 .3em}.monaco-editor .peekview-widget .head .peekview-actions{flex:1;padding-right:2px;text-align:right}.monaco-editor .peekview-widget>.body{border-top:1px solid;position:relative}.monaco-editor .peekview-widget .head .peekview-title .codicon{align-self:center;margin-right:4px}.monaco-editor .zone-widget .zone-widget-container{border-bottom-style:solid;border-bottom-width:0;border-top-style:solid;border-top-width:0;position:relative}.monaco-editor .zone-widget .zone-widget-container.reference-zone-widget{border-bottom-width:1px;border-top-width:1px}.monaco-editor .reference-zone-widget .inline{display:inline-block;vertical-align:top}.monaco-editor .reference-zone-widget .messages{height:100%;padding:3em 0;text-align:center;width:100%}.monaco-editor .reference-zone-widget .ref-tree{background-color:var(--vscode-peekViewResult-background);color:var(--vscode-peekViewResult-lineForeground);line-height:23px}.monaco-editor .reference-zone-widget .ref-tree .reference{overflow:hidden;text-overflow:ellipsis}.monaco-editor .reference-zone-widget .ref-tree .reference-file{color:var(--vscode-peekViewResult-fileForeground);display:inline-flex;height:100%;width:100%}.monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .monaco-list-rows>.monaco-list-row.selected:not(.highlighted){background-color:var(--vscode-peekViewResult-selectionBackground);color:var(--vscode-peekViewResult-selectionForeground)!important}.monaco-editor .reference-zone-widget .ref-tree .reference-file .count{margin-left:auto;margin-right:12px}.monaco-editor .reference-zone-widget .ref-tree .referenceMatch .highlight{background-color:var(--vscode-peekViewResult-matchHighlightBackground)}.monaco-editor .reference-zone-widget .preview .reference-decoration{background-color:var(--vscode-peekViewEditor-matchHighlightBackground);border:2px solid var(--vscode-peekViewEditor-matchHighlightBorder);box-sizing:border-box}.monaco-editor .reference-zone-widget .preview .monaco-editor .inputarea.ime-input,.monaco-editor .reference-zone-widget .preview .monaco-editor .monaco-editor-background{background-color:var(--vscode-peekViewEditor-background)}.monaco-editor .reference-zone-widget .preview .monaco-editor .margin{background-color:var(--vscode-peekViewEditorGutter-background)}.monaco-editor.hc-black .reference-zone-widget .ref-tree .referenceMatch .highlight,.monaco-editor.hc-light .reference-zone-widget .ref-tree .referenceMatch .highlight{border:1px dotted var(--vscode-contrastActiveBorder,#0000);box-sizing:border-box}.monaco-editor .hoverHighlight{background-color:var(--vscode-editor-hoverHighlightBackground)}.monaco-editor .monaco-hover-content{box-sizing:border-box;padding-bottom:2px;padding-right:2px}.monaco-editor .monaco-hover{background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border);border-radius:3px;color:var(--vscode-editorHoverWidget-foreground)}.monaco-editor .monaco-hover .hover-row .hover-row-contents{display:flex;flex-direction:column;min-width:0}.monaco-editor .monaco-hover .hover-row .verbosity-actions{border-right:1px solid var(--vscode-editorHoverWidget-border);display:flex;flex-direction:column;justify-content:end;padding-left:5px;padding-right:5px}.monaco-editor .monaco-hover .hover-row .verbosity-actions .codicon{cursor:pointer;font-size:11px}.monaco-editor .monaco-hover .hover-row .actions{background-color:var(--vscode-editorHoverWidget-statusBarBackground)}.monaco-editor.hc-light .dnd-target,.monaco-editor.vs .dnd-target{border-right:2px dotted #000;color:#fff}.monaco-editor.vs-dark .dnd-target{border-right:2px dotted #aeafad;color:#51504f}.monaco-editor.hc-black .dnd-target{border-right:2px dotted #fff;color:#000}.monaco-editor.hc-black.mac.mouse-copy .view-lines,.monaco-editor.hc-light.mac.mouse-copy .view-lines,.monaco-editor.mouse-copy .view-lines,.monaco-editor.vs-dark.mac.mouse-copy .view-lines{cursor:copy}.monaco-editor .findOptionsWidget{border:2px solid var(--vscode-contrastBorder)}.monaco-editor .find-widget,.monaco-editor .findOptionsWidget{background-color:var(--vscode-editorWidget-background);box-shadow:0 0 8px 2px var(--vscode-widget-shadow);color:var(--vscode-editorWidget-foreground)}.monaco-editor .find-widget{border-bottom:1px solid var(--vscode-widget-border);border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-left:1px solid var(--vscode-widget-border);border-right:1px solid var(--vscode-widget-border);box-sizing:border-box;height:33px;line-height:19px;overflow:hidden;padding:0 4px;position:absolute;transform:translateY(calc(-100% - 10px));transition:transform .2s linear;z-index:35}.monaco-workbench.reduce-motion .monaco-editor .find-widget{transition:transform 0ms linear}.monaco-editor .find-widget.visible{transform:translateY(0)}.monaco-editor .find-widget .monaco-inputbox.synthetic-focus{outline:-webkit-focus-ring-color solid 1px;outline-color:var(--vscode-focusBorder);outline-offset:-1px}.monaco-editor .find-widget .monaco-inputbox .input{background-color:initial;min-height:0}.monaco-editor .find-widget .monaco-findInput .input{font-size:13px}.monaco-editor .find-widget>.find-part,.monaco-editor .find-widget>.replace-part{display:flex;font-size:12px;margin:3px 25px 0 17px}.monaco-editor .find-widget>.find-part .monaco-inputbox,.monaco-editor .find-widget>.replace-part .monaco-inputbox{min-height:25px}.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.mirror{padding-right:22px}.monaco-editor .find-widget>.find-part .monaco-inputbox>.ibwrapper>.input,.monaco-editor .find-widget>.find-part .monaco-inputbox>.ibwrapper>.mirror,.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.input,.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.mirror{padding-bottom:2px;padding-top:2px}.monaco-editor .find-widget>.find-part .find-actions,.monaco-editor .find-widget>.replace-part .replace-actions{align-items:center;display:flex;height:25px}.monaco-editor .find-widget .monaco-findInput{display:flex;flex:1;vertical-align:middle}.monaco-editor .find-widget .monaco-findInput .monaco-scrollable-element .scrollbar.vertical{opacity:0}.monaco-editor .find-widget .matchesCount{box-sizing:border-box;display:flex;flex:initial;height:25px;line-height:23px;margin:0 0 0 3px;padding:2px 0 0 2px;text-align:center;vertical-align:middle}.monaco-editor .find-widget .button{align-items:center;background-position:50%;background-repeat:no-repeat;border-radius:5px;cursor:pointer;display:flex;flex:initial;height:16px;justify-content:center;margin-left:3px;padding:3px;width:16px}.monaco-editor .find-widget .codicon-find-selection{border-radius:5px;height:22px;padding:3px;width:22px}.monaco-editor .find-widget .button.left{margin-left:0;margin-right:3px}.monaco-editor .find-widget .button.wide{padding:1px 6px;top:-1px;width:auto}.monaco-editor .find-widget .button.toggle{border-radius:0;box-sizing:border-box;height:100%;left:3px;position:absolute;top:0;width:18px}.monaco-editor .find-widget .disabled{color:var(--vscode-disabledForeground);cursor:default}.monaco-editor .find-widget>.replace-part>.monaco-findInput{display:flex;flex:auto;flex-grow:0;flex-shrink:0;position:relative;vertical-align:middle}.monaco-editor .find-widget.narrow-find-widget{max-width:257px!important}.monaco-editor .find-widget.collapsed-find-widget{max-width:170px!important}.monaco-editor .find-widget.no-results .matchesCount{color:var(--vscode-errorForeground)}.monaco-editor .findMatch{animation-duration:0;animation-name:inherit!important;background-color:var(--vscode-editor-findMatchHighlightBackground)}.monaco-editor .currentFindMatch{background-color:var(--vscode-editor-findMatchBackground);border:2px solid var(--vscode-editor-findMatchBorder);box-sizing:border-box;padding:1px}.monaco-editor .findScope,.monaco-editor.findScope{background-color:var(--vscode-editor-findRangeHighlightBackground)}.monaco-editor .find-widget .monaco-sash{background-color:var(--vscode-editorWidget-resizeBorder,var(--vscode-editorWidget-border));left:0!important}.monaco-editor.hc-black .find-widget .button:before{left:2px;position:relative;top:1px}.monaco-editor .find-widget .button:not(.disabled):hover,.monaco-editor .find-widget .codicon-find-selection:hover{background-color:var(--vscode-toolbar-hoverBackground)!important}.monaco-editor.findMatch{background-color:var(--vscode-editor-findMatchHighlightBackground)}.monaco-editor.currentFindMatch{background-color:var(--vscode-editor-findMatchBackground)}.monaco-editor.findMatch{background-color:var(--vscode-editorWidget-background)}.monaco-editor .find-widget>.button.codicon-widget-close{position:absolute;right:4px;top:5px}.monaco-editor .margin-view-overlays .codicon-folding-collapsed,.monaco-editor .margin-view-overlays .codicon-folding-expanded,.monaco-editor .margin-view-overlays .codicon-folding-manual-collapsed,.monaco-editor .margin-view-overlays .codicon-folding-manual-expanded{align-items:center;cursor:pointer;display:flex;font-size:140%;justify-content:center;margin-left:2px;opacity:0;transition:opacity .5s}.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-collapsed,.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-expanded,.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-manual-collapsed,.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-manual-expanded{transition:initial}.monaco-editor .inline-folded:after{color:grey;content:"\22EF";cursor:pointer;display:inline;line-height:1em;margin:.1em .2em 0}.monaco-editor .folded-background{background-color:var(--vscode-editor-foldBackground)}.monaco-editor .cldr.codicon.codicon-folding-collapsed,.monaco-editor .cldr.codicon.codicon-folding-expanded,.monaco-editor .cldr.codicon.codicon-folding-manual-collapsed,.monaco-editor .cldr.codicon.codicon-folding-manual-expanded{color:var(--vscode-editorGutter-foldingControlForeground)!important}.monaco-editor .suggest-preview-additional-widget .content-spacer{color:#0000;white-space:pre}.monaco-editor .suggest-preview-additional-widget .button{cursor:pointer;display:inline-block;text-decoration:underline;text-underline-position:under}.monaco-editor .ghost-text-hidden,.monaco-editor .inline-edit-hidden{font-size:0;opacity:0}.monaco-editor .ghost-text-decoration,.monaco-editor .ghost-text-decoration-preview,.monaco-editor .inline-edit-decoration,.monaco-editor .inline-edit-decoration-preview,.monaco-editor .suggest-preview-text .ghost-text,.monaco-editor .suggest-preview-text .inline-edit{background-color:var(--vscode-editorGhostText-background);border:1px solid var(--vscode-editorGhostText-border);color:var(--vscode-editorGhostText-foreground)!important}.monaco-editor .suggest-details,.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.focused)>.contents>.main .monaco-icon-label{color:var(--vscode-editorSuggestWidget-foreground)}.monaco-editor .snippet-placeholder{background-color:var(--vscode-editor-snippetTabstopHighlightBackground,#0000);min-width:2px;outline-color:var(--vscode-editor-snippetTabstopHighlightBorder,#0000);outline-style:solid;outline-width:1px}.monaco-editor .finish-snippet-placeholder{background-color:var(--vscode-editor-snippetFinalTabstopHighlightBackground,#0000);outline-color:var(--vscode-editor-snippetFinalTabstopHighlightBorder,#0000);outline-style:solid;outline-width:1px}.monaco-editor .suggest-widget{border-radius:3px;display:flex;flex-direction:column;z-index:40}.monaco-editor .suggest-widget.message{align-items:center;flex-direction:row}.monaco-editor .suggest-details,.monaco-editor .suggest-widget{background-color:var(--vscode-editorSuggestWidget-background);border-color:var(--vscode-editorSuggestWidget-border);border-style:solid;border-width:1px;flex:0 1 auto;width:100%}.monaco-editor .suggest-widget .suggest-status-bar{border-top:1px solid var(--vscode-editorSuggestWidget-border);box-sizing:border-box;display:none;flex-flow:row nowrap;font-size:80%;justify-content:space-between;overflow:hidden;padding:0 4px;width:100%}.monaco-editor .suggest-widget .suggest-status-bar .left{padding-right:8px}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-label{color:var(--vscode-editorSuggestWidgetStatus-foreground)}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-item:not(:last-of-type) .action-label:after{content:", ";margin-right:.3em}.monaco-editor .suggest-widget>.message{padding-left:22px}.monaco-editor .suggest-widget .monaco-list .monaco-list-row{background-position:2px 2px;background-repeat:no-repeat;-mox-box-sizing:border-box;box-sizing:border-box;cursor:pointer;display:flex;padding-right:10px;touch-action:none;white-space:nowrap}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused{color:var(--vscode-editorSuggestWidget-selectedForeground)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused .codicon{color:var(--vscode-editorSuggestWidget-selectedIconForeground)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents{flex:1;height:100%;overflow:hidden;padding-left:2px}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main{display:flex;justify-content:space-between;overflow:hidden;text-overflow:ellipsis;white-space:pre}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main .monaco-highlighted-label .highlight{color:var(--vscode-editorSuggestWidget-highlightForeground)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused>.contents>.main .monaco-highlighted-label .highlight{color:var(--vscode-editorSuggestWidget-focusHighlightForeground)}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore:before{color:inherit;cursor:pointer;font-size:14px;opacity:1}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close{position:absolute;right:2px;top:6px}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.signature-label{opacity:.6;overflow:hidden;text-overflow:ellipsis}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.qualifier-label{align-self:center;font-size:85%;line-height:normal;margin-left:12px;opacity:.4;overflow:hidden;text-overflow:ellipsis}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label{font-size:85%;margin-left:1.1em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:none}.monaco-editor .suggest-widget:not(.docs-side) .monaco-list .monaco-list-row.focused:hover>.contents>.main>.right.can-expand-details>.details-label{width:calc(100% - 26px)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left{flex-grow:1;flex-shrink:1;overflow:hidden}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.monaco-icon-label{flex-shrink:0}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.string-label>.contents>.main>.left>.monaco-icon-label{flex-shrink:1}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right{flex-shrink:4;max-width:70%;overflow:hidden}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore{display:inline-block;height:18px;position:absolute;right:10px;visibility:hidden;width:18px}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label.deprecated{opacity:.66;text-decoration:unset}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon{background-position:50%;background-repeat:no-repeat;background-size:80%;display:block;height:16px;margin-left:2px;width:16px}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .suggest-icon{align-items:center;display:flex;margin-right:4px}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.customcolor .colorspan{border:.1em solid #000;display:inline-block;height:.7em;margin:0 0 0 .3em;width:.7em}.monaco-editor .suggest-details-container{z-index:41}.monaco-editor .suggest-details{cursor:default;display:flex;flex-direction:column}.monaco-editor .suggest-details.focused{border-color:var(--vscode-focusBorder)}.monaco-editor .suggest-details code{border-radius:3px;padding:0 .4em}.monaco-editor .suggest-details>.monaco-scrollable-element>.body{box-sizing:border-box;height:100%;width:100%}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.type{flex:2;margin:0 24px 0 0;opacity:.7;overflow:hidden;padding:4px 0 12px 5px;text-overflow:ellipsis;white-space:pre}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.type.auto-wrap{white-space:normal;word-break:break-all}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs{margin:0;padding:4px 5px;white-space:pre-wrap}.monaco-editor .suggest-details.no-type>.monaco-scrollable-element>.body>.docs{margin-right:24px;overflow:hidden}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs{min-height:calc(1rem + 8px);padding:0;white-space:normal}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div,.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>span:not(:empty){padding:4px 5px}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs .monaco-tokenized-source{white-space:pre}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs .code{word-wrap:break-word;white-space:pre-wrap}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs .codicon{vertical-align:sub}.monaco-editor .suggest-details p code,.monaco-editor .tokens-inspect-widget .tm-token,.monaco-editor .tokens-inspect-widget .tm-token-type{font-family:var(--monaco-monospace-font)}.monaco-editor .goto-definition-link{color:var(--vscode-editorLink-activeForeground)!important;cursor:pointer;text-decoration:underline}.monaco-editor .peekview-widget .head .peekview-title .severity-icon{display:inline-block;margin-right:4px;vertical-align:text-top}.monaco-editor .marker-widget{text-overflow:ellipsis;white-space:nowrap}.monaco-editor .marker-widget>.stale{font-style:italic;opacity:.6}.monaco-editor .marker-widget .title{display:inline-block;padding-right:5px}.monaco-editor .marker-widget .descriptioncontainer{padding:8px 12px 0 20px;position:absolute;user-select:text;-webkit-user-select:text;white-space:pre}.monaco-editor .marker-widget .descriptioncontainer .message{display:flex;flex-direction:column}.monaco-editor .marker-widget .descriptioncontainer .message .details{padding-left:6px}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link{color:inherit;opacity:.6}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link>span{border-bottom:1px solid #0000;color:var(--vscode-textLink-activeForeground);text-decoration:underline;text-underline-position:under}.monaco-editor .marker-widget .descriptioncontainer .filename,.monaco-editor .parameter-hints-widget .docs a:hover{color:var(--vscode-textLink-activeForeground);cursor:pointer}.extension-editor .codicon.codicon-error,.extensions-viewlet>.extensions .codicon.codicon-error,.markers-panel .marker-icon .codicon.codicon-error,.markers-panel .marker-icon.error,.monaco-editor .zone-widget .codicon.codicon-error,.preferences-editor .codicon.codicon-error,.text-search-provider-messages .providerMessage .codicon.codicon-error{color:var(--vscode-problemsErrorIcon-foreground)}.extension-editor .codicon.codicon-warning,.extensions-viewlet>.extensions .codicon.codicon-warning,.markers-panel .marker-icon .codicon.codicon-warning,.markers-panel .marker-icon.warning,.monaco-editor .zone-widget .codicon.codicon-warning,.preferences-editor .codicon.codicon-warning,.text-search-provider-messages .providerMessage .codicon.codicon-warning{color:var(--vscode-problemsWarningIcon-foreground)}.extension-editor .codicon.codicon-info,.extensions-viewlet>.extensions .codicon.codicon-info,.markers-panel .marker-icon .codicon.codicon-info,.markers-panel .marker-icon.info,.monaco-editor .zone-widget .codicon.codicon-info,.preferences-editor .codicon.codicon-info,.text-search-provider-messages .providerMessage .codicon.codicon-info{color:var(--vscode-problemsInfoIcon-foreground)}.monaco-editor.vs .valueSetReplacement{outline:solid 2px var(--vscode-editorBracketMatch-border)}.monaco-editor .linked-editing-decoration{background-color:var(--vscode-editor-linkedEditingBackground);min-width:1px}.monaco-editor .detected-link,.monaco-editor .detected-link-active,.monaco-editor .inline-completion-text-to-replace{text-decoration:underline;text-underline-position:under}.monaco-editor .focused .selectionHighlight{background-color:var(--vscode-editor-selectionHighlightBackground);border:1px solid var(--vscode-editor-selectionHighlightBorder);box-sizing:border-box}.monaco-editor .wordHighlight{background-color:var(--vscode-editor-wordHighlightBackground);border:1px solid var(--vscode-editor-wordHighlightBorder);box-sizing:border-box}.monaco-editor .wordHighlightStrong{background-color:var(--vscode-editor-wordHighlightStrongBackground);border:1px solid var(--vscode-editor-wordHighlightStrongBorder);box-sizing:border-box}.monaco-editor .wordHighlightText{background-color:var(--vscode-editor-wordHighlightTextBackground);border:1px solid var(--vscode-editor-wordHighlightTextBorder);box-sizing:border-box}.monaco-editor .inline-edit-remove{background-color:var(--vscode-editorGhostText-background);font-style:italic;text-decoration:line-through}.monaco-editor .inline-edit-remove.backgroundColoring{background-color:var(--vscode-diffEditor-removedLineBackground)}.monaco-editor .parameter-hints-widget{background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border);color:var(--vscode-editorHoverWidget-foreground);cursor:default;display:flex;flex-direction:column;line-height:1.5em;z-index:39}.monaco-editor .parameter-hints-widget>.phwrapper{display:flex;flex-direction:row;max-width:440px}.monaco-editor .parameter-hints-widget.multiple{min-height:3.3em;padding:0}.monaco-editor .parameter-hints-widget.multiple .body:before{border-left:1px solid var(--vscode-editorHoverWidget-border);content:"";display:block;height:100%;opacity:.5;position:absolute}.monaco-editor .parameter-hints-widget .body,.monaco-editor .parameter-hints-widget .monaco-scrollable-element{display:flex;flex:1;flex-direction:column;min-height:100%}.monaco-editor .parameter-hints-widget .signature{padding:4px 5px;position:relative}.monaco-editor .parameter-hints-widget .signature.has-docs:after{border-bottom:1px solid var(--vscode-editorHoverWidget-border);content:"";display:block;left:0;opacity:.5;padding-top:4px;position:absolute;width:100%}.monaco-editor .parameter-hints-widget .docs{padding:0 10px 0 5px;white-space:pre-wrap}.monaco-editor .parameter-hints-widget .docs .markdown-docs{white-space:normal}.monaco-editor .parameter-hints-widget .docs code{border-radius:3px;font-family:var(--monaco-monospace-font);padding:0 .4em}.monaco-editor .parameter-hints-widget .docs .code,.monaco-editor .parameter-hints-widget .docs .monaco-tokenized-source{white-space:pre-wrap}.monaco-editor .parameter-hints-widget .controls{align-items:center;display:none;flex-direction:column;justify-content:flex-end;min-width:22px}.monaco-editor .parameter-hints-widget.multiple .controls{display:flex;padding:0 2px}.monaco-editor .parameter-hints-widget.multiple .button{background-repeat:no-repeat;cursor:pointer;height:16px;width:16px}.monaco-editor .parameter-hints-widget .button.previous{bottom:24px}.monaco-editor .parameter-hints-widget .overloads{font-family:var(--monaco-monospace-font);height:12px;line-height:12px;text-align:center}.monaco-editor .parameter-hints-widget .signature .parameter.active{color:var(--vscode-editorHoverWidget-highlightForeground);font-weight:700}.monaco-editor .parameter-hints-widget .documentation-parameter>.parameter{font-weight:700;margin-right:.5em}.monaco-editor .rename-box{border-radius:4px;color:inherit;z-index:100}.monaco-editor .rename-box.preview{padding:4px 4px 0}.monaco-editor .rename-box .rename-input-with-button{border-radius:2px;padding:3px;width:calc(100% - 8px)}.monaco-editor .rename-box .rename-input{padding:0;width:calc(100% - 8px)}.monaco-editor .rename-box .rename-suggestions-button{align-items:center;background-color:initial;border:none;border-radius:5px;cursor:pointer;display:flex;padding:3px}.monaco-editor .rename-box .rename-candidate-list-container .monaco-list-row{border-radius:2px}.monaco-editor .rename-box .rename-label{display:none;opacity:.8}.monaco-editor .sticky-widget-line-numbers{background-color:inherit;float:left}.monaco-editor .sticky-widget-lines-scrollable{background-color:inherit;display:inline-block;overflow:hidden;position:absolute;width:var(--vscode-editorStickyScroll-scrollableWidth)}.monaco-editor .sticky-widget-lines{background-color:inherit;position:absolute}.monaco-editor .sticky-line-content,.monaco-editor .sticky-line-number{background-color:inherit;color:var(--vscode-editorLineNumber-foreground);display:inline-block;position:absolute;white-space:nowrap}.monaco-editor .sticky-line-number .codicon-folding-collapsed,.monaco-editor .sticky-line-number .codicon-folding-expanded{float:right;transition:var(--vscode-editorStickyScroll-foldingOpacityTransition)}.monaco-editor .sticky-line-content{background-color:inherit;white-space:nowrap;width:var(--vscode-editorStickyScroll-scrollableWidth)}.monaco-editor .sticky-line-number-inner{display:inline-block;text-align:right}.monaco-editor .sticky-widget{overflow:hidden;border-bottom:1px solid var(--vscode-editorStickyScroll-border);background-color:var(--vscode-editorStickyScroll-background);box-shadow:var(--vscode-editorStickyScroll-shadow) 0 3px 2px -2px;right:auto!important;width:100%;z-index:4}.monaco-editor .sticky-line-content:hover{background-color:var(--vscode-editorStickyScrollHover-background);cursor:pointer}.monaco-editor .sticky-widget.peek{background-color:var(--vscode-peekViewEditorStickyScroll-background)}.monaco-editor .unicode-highlight{background-color:var(--vscode-editorUnicodeHighlight-background);border:1px solid var(--vscode-editorUnicodeHighlight-border);box-sizing:border-box}.editor-banner{background:var(--vscode-banner-background);box-sizing:border-box;cursor:default;display:flex;font-size:12px;height:26px;overflow:visible;width:100%;background-color:var(--vscode-banner-background)}.editor-banner .icon-container{align-items:center;display:flex;flex-shrink:0;padding:0 6px 0 10px}.editor-banner .icon-container.custom-icon{background-position:50%;background-repeat:no-repeat;background-size:16px;margin:0 6px 0 10px;padding:0;width:16px}.editor-banner .message-container{align-items:center;display:flex;line-height:26px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editor-banner .message-container p{margin-block-end:0;margin-block-start:0}.editor-banner .message-actions-container{flex-grow:1;flex-shrink:0;line-height:26px;margin:0 4px}.editor-banner .message-actions-container a.monaco-button{margin:2px 8px;padding:0 12px;width:inherit}.editor-banner .message-actions-container a{margin-left:12px;padding:3px;text-decoration:underline}.editor-banner .action-container{padding:0 10px 0 6px}.editor-banner,.editor-banner .action-container .codicon,.editor-banner .message-actions-container .monaco-link{color:var(--vscode-banner-foreground)}.editor-banner .icon-container .codicon{color:var(--vscode-banner-iconForeground)}.monaco-editor .iPadShowKeyboard{background:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTQ4LjAzNiA0LjAxSDQuMDA4VjMyLjAzaDQ0LjAyOFY0LjAxWk00LjAwOC4wMDhBNC4wMDMgNC4wMDMgMCAwIDAgLjAwNSA0LjAxVjMyLjAzYTQuMDAzIDQuMDAzIDAgMCAwIDQuMDAzIDQuMDAyaDQ0LjAyOGE0LjAwMyA0LjAwMyAwIDAgMCA0LjAwMy00LjAwMlY0LjAxQTQuMDAzIDQuMDAzIDAgMCAwIDQ4LjAzNi4wMDhINC4wMDhaTTguMDEgOC4wMTNoNC4wMDN2NC4wMDNIOC4wMVY4LjAxM1ptMTIuMDA4IDBoLTQuMDAydjQuMDAzaDQuMDAyVjguMDEzWm00LjAwMyAwaDQuMDAydjQuMDAzaC00LjAwMlY4LjAxM1ptMTIuMDA4IDBoLTQuMDAzdjQuMDAzaDQuMDAzVjguMDEzWm00LjAwMiAwaDQuMDAzdjQuMDAzSDQwLjAzVjguMDEzWm0tMjQuMDE1IDguMDA1SDguMDF2NC4wMDNoOC4wMDZ2LTQuMDAzWm00LjAwMiAwaDQuMDAzdjQuMDAzaC00LjAwM3YtNC4wMDNabTEyLjAwOCAwaC00LjAwM3Y0LjAwM2g0LjAwM3YtNC4wMDNabTEyLjAwOCAwdjQuMDAzaC04LjAwNXYtNC4wMDNoOC4wMDVabS0zMi4wMjEgOC4wMDVIOC4wMXY0LjAwM2g0LjAwM3YtNC4wMDNabTQuMDAzIDBoMjAuMDEzdjQuMDAzSDE2LjAxNnYtNC4wMDNabTI4LjAxOCAwSDQwLjAzdjQuMDAzaDQuMDAzdi00LjAwM1oiIGZpbGw9IiM0MjQyNDIiLz48L2c+PGRlZnM+PGNsaXBQYXRoIGlkPSJhIj48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMCAwaDUzdjM2SDB6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+") 50% no-repeat;border:4px solid #f6f6f6;border-radius:4px;height:36px;margin:0;min-height:0;min-width:0;overflow:hidden;padding:0;position:absolute;resize:none;width:58px}.monaco-editor.vs-dark .iPadShowKeyboard{background:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTQ4LjAzNiA0LjAxSDQuMDA4VjMyLjAzaDQ0LjAyOFY0LjAxWk00LjAwOC4wMDhBNC4wMDMgNC4wMDMgMCAwIDAgLjAwNSA0LjAxVjMyLjAzYTQuMDAzIDQuMDAzIDAgMCAwIDQuMDAzIDQuMDAyaDQ0LjAyOGE0LjAwMyA0LjAwMyAwIDAgMCA0LjAwMy00LjAwMlY0LjAxQTQuMDAzIDQuMDAzIDAgMCAwIDQ4LjAzNi4wMDhINC4wMDhaTTguMDEgOC4wMTNoNC4wMDN2NC4wMDNIOC4wMVY4LjAxM1ptMTIuMDA4IDBoLTQuMDAydjQuMDAzaDQuMDAyVjguMDEzWm00LjAwMyAwaDQuMDAydjQuMDAzaC00LjAwMlY4LjAxM1ptMTIuMDA4IDBoLTQuMDAzdjQuMDAzaDQuMDAzVjguMDEzWm00LjAwMiAwaDQuMDAzdjQuMDAzSDQwLjAzVjguMDEzWm0tMjQuMDE1IDguMDA1SDguMDF2NC4wMDNoOC4wMDZ2LTQuMDAzWm00LjAwMiAwaDQuMDAzdjQuMDAzaC00LjAwM3YtNC4wMDNabTEyLjAwOCAwaC00LjAwM3Y0LjAwM2g0LjAwM3YtNC4wMDNabTEyLjAwOCAwdjQuMDAzaC04LjAwNXYtNC4wMDNoOC4wMDVabS0zMi4wMjEgOC4wMDVIOC4wMXY0LjAwM2g0LjAwM3YtNC4wMDNabTQuMDAzIDBoMjAuMDEzdjQuMDAzSDE2LjAxNnYtNC4wMDNabTI4LjAxOCAwSDQwLjAzdjQuMDAzaDQuMDAzdi00LjAwM1oiIGZpbGw9IiNDNUM1QzUiLz48L2c+PGRlZnM+PGNsaXBQYXRoIGlkPSJhIj48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMCAwaDUzdjM2SDB6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+") 50% no-repeat;border:4px solid #252526}.monaco-editor .tokens-inspect-widget{background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border);color:var(--vscode-editorHoverWidget-foreground);padding:10px;user-select:text;-webkit-user-select:text;z-index:50}.monaco-editor .tokens-inspect-widget .tokens-inspect-separator{background-color:var(--vscode-editorHoverWidget-border);border:0;height:1px}.monaco-editor .tokens-inspect-widget .tm-token-length{float:right;font-size:60%;font-weight:400}.monaco-editor .tokens-inspect-widget .tm-metadata-value{font-family:var(--monaco-monospace-font);text-align:right}.modalOverlay_CJal{background-color:#000000a3;bottom:0;left:0;position:fixed;right:0;top:0;z-index:10}.modalContent_jt0x{background-color:var(--ifm-navbar-background-color);border:1px solid var(--ifm-color-emphasis-300);border-radius:4px;left:50%;max-height:75vh;min-width:60vw;overflow-x:visible;overflow-y:auto;padding:20px;position:absolute;top:50%;transform:translate(-50%,-50%);z-index:11}[data-theme=light] .modalContent_jt0x{background-color:var(--ifm-color-emphasis-400)}.settingsPanel_jza1{display:flex;flex-direction:column;height:100%;margin-top:10px;overflow:auto;position:relative;width:100%}.cardsContainer_NApk{display:grid;grid-template-columns:1fr 1fr;justify-content:center}.card_uGw9{border-style:solid;border-width:1px;margin:10px;min-width:300px;padding:10px;text-align:center}[data-theme=dark] .card_uGw9{border-color:var(--ifm-color-emphasis-200)}[data-theme=light] .card_uGw9{background-color:var(--ifm-color-emphasis-100);border-color:var(--ifm-color-emphasis-800)}.cardTitle_YaoG{color:var(--ifm-color-primary);font-size:18px;font-weight:700;margin:0;text-align:"center"}.cardSubtitle_xyBL{font-size:15px;margin:0;text-align:center}[data-theme=dark] .cardSubtitle_xyBL{color:#a1a1aa}[data-theme=light] .cardSubtitle_xyBL{color:#55555d}.hoverPrimary_gtGd,.hoverPrimary_gz6K,.hoverSecondary_mUBE{transition:transform .3s,box-shadow .3s}.hoverPrimary_gtGd:hover,.hoverPrimary_gz6K:hover{box-shadow:0 0 10px var(--ifm-color-primary);transform:scale(1.015)}.bottomContainer_yrg_{align-items:center;bottom:10px;display:flex;justify-content:space-between;padding:10px;position:absolute;width:100%}.submitButton_UfR9{border-radius:12px;font-size:20px;font-weight:700;margin:5px;padding:10px 60px}.submitButtonActive_cYBW{background-color:var(--docsearch-primary-color);border:1px solid var(--ifm-color-primary);color:var(--ifm-color-emphasis-0)}.submitButtonInactive_HYh_{background-color:var(--ifm-color-emphasis-500);border:1px solid var(--ifm-color-emphasis-500);color:var(--ifm-color-emphasis-400)}.submitButtonInactive_HYh_:hover{box-shadow:0 0;transform:scale(1)}.container_SqLM,.container_i76h,.container_skE6{display:flex;flex-direction:column;flex-wrap:nowrap;padding:4px 8px}.imagePreviewIntro_sbso{font-size:18px;margin-bottom:48px;padding:20px}.headerContainer_K6Lx,.headerContainer_Kl0i,.headerContainer_UKog{display:flex;font-size:22px;margin-bottom:6px;padding:0 10px}.headerInputLabel_vsST{flex:0 0 20%;max-width:20%;min-width:160px;padding-right:10px}.headerDescriptionLabel_krIv{flex:0 0 60%;max-width:60%;min-width:320px}.headerPreviewLabel_YwIx{flex:0 0 20%;max-width:20%;min-width:120px;padding-left:10px}.imagePreview_IvWg,.inputSelector_e7oh,.shaderInfo_at8f{align-items:center;border-color:var(--ifm-color-emphasis-300);border-style:solid;border-width:1px 0 0;display:flex;height:100px;margin-top:4px;padding:4px 10px 0}.imagePreviewLabelContainer_N7fZ{align-items:center;display:flex;flex:0 0 20%;height:100%;max-width:20%;min-width:160px;padding-right:10px}.imagePreviewDescriptionContainer_H4hc{align-items:center;display:flex;flex:0 0 60%;max-width:60%;min-width:320px}.imagePreviewImgContainer_CUCn{display:flex;flex:0 0 20%;height:100%;justify-content:center;margin-left:10px;max-width:20%;min-width:120px}.imagePreviewImg_uF29,.inputSelectorImg_OPSi{height:100%;object-fit:contain}.tooltip_fwrq,.tooltip_gKxf,.tooltip_m2Gn,.tooltip_v7oX{background-color:var(--ifm-color-emphasis-700)!important;color:var(--ifm-font-color-base-inverse)!important;opacity:1!important}.tooltip_gKxf:hover,.tooltip_m2Gn:hover,.tooltip_v7oX:hover{opacity:1!important;visibility:visible!important}.tooltipCode_GsLs,.tooltipCode_GvZf,.tooltipCode_d9Wy{background-color:var(--ifm-color-emphasis-600)!important;color:var(--ifm-font-color-base-inverse)!important;cursor:copy!important;display:block;white-space:pre-wrap}.headerInputLabel_OPP0{flex:0 0 30%;max-width:30%;padding-right:10px}.headerResolutionLabel_Xjqq{flex:0 0 40%;max-width:40%;width:200px}.headerPreviewLabel_m8Be{flex:0 0 30%;max-width:30%;padding-left:10px}.inputSelectorLabelContainer_gno5{align-items:center;display:flex;flex:0 0 30%;height:100%;max-width:30%;padding-right:10px}.inputSelectorSelectContainer_NRWD{align-items:center;display:flex;flex:0 0 40%;max-width:40%;width:200px}.inputSelectorSelect_Hgwl{background-color:var(--ifm-color-emphasis-200);border-radius:4px;padding:1px 4px 2px;width:80%}.inputSelectorImgContainer_o2PD{display:flex;flex:0 0 30%;height:100%;justify-content:center;max-width:30%;padding-left:10px}.outputResolutionsContainer_JZdw{align-items:center;display:flex;padding:10px 0}.outputResolutionLabel_UB2e{color:var(--ifm-color-primary);font-size:18px;font-weight:700;margin:5px}.outputResolutionSelect_qGbb{background-color:var(--ifm-card-background-color);border:1px solid var(--ifm-color-emphasis-200);border-radius:10px;padding:8px}.outputResolutionInput_n7T1{background-color:var(--ifm-card-background-color);border:1px solid var(--ifm-color-emphasis-200);border-radius:4px;width:64px}.invalidInput_X8vI{background-color:var(--ifm-color-emphasis-300);border:2px solid #bb3838}.resolutionInputFieldsContainer_W1xy{align-items:center;display:flex;margin:5px}.headerInputLabel_eHOV{flex:0 0 30%;max-width:30%;min-width:200px;padding-right:10px}.headerDescriptionLabel_SvGj{flex:0 0 70%;max-width:70%;min-width:320px}.shaderInfoLabelContainer_tRkD{align-items:center;display:flex;flex:0 0 30%;height:100%;max-width:30%;min-width:200px;padding-right:10px}.shaderInfoDescriptionContainer__ZEp{align-items:center;display:flex;flex:0 0 70%;max-width:70%;min-width:320px}.cardContainer_fWXF{--ifm-link-color:var(--ifm-color-emphasis-800);--ifm-link-hover-color:var(--ifm-color-emphasis-700);--ifm-link-hover-decoration:none;border:1px solid var(--ifm-color-emphasis-200);box-shadow:0 1.5px 3px 0 #00000026;transition:all var(--ifm-transition-fast) ease;transition-property:border,box-shadow}.cardContainer_fWXF:hover{border-color:var(--ifm-color-primary);box-shadow:0 3px 6px 0 #0003}.cardTitle_rnsV{font-size:1.2rem}.cardDescription_PWke{font-size:.8rem}.searchQueryInput_u2C7,.searchVersionInput_m0Ui{background:var(--docsearch-searchbox-focus-background);border:2px solid var(--ifm-toc-border-color);border-radius:var(--ifm-global-radius);color:var(--docsearch-text-color);font:var(--ifm-font-size-base) var(--ifm-font-family-base);margin-bottom:.5rem;padding:.8rem;transition:border var(--ifm-transition-fast) ease;width:100%}.searchQueryInput_u2C7:focus,.searchVersionInput_m0Ui:focus{border-color:var(--docsearch-primary-color);outline:0}.searchQueryInput_u2C7::placeholder{color:var(--docsearch-muted-color)}.searchResultsColumn_JPFH{font-size:.9rem;font-weight:700}.algoliaLogo_rT1R{max-width:150px}.algoliaLogoPathFill_WdUC{fill:var(--ifm-font-color-base)}.searchResultItem_Tv2o{border-bottom:1px solid var(--ifm-toc-border-color);padding:1rem 0}.searchResultItemHeading_KbCB{font-weight:400;margin-bottom:0}.searchResultItemPath_lhe1{--ifm-breadcrumb-separator-size-multiplier:1;color:var(--ifm-color-content-secondary);font-size:.8rem}.searchResultItemSummary_AEaO{font-style:italic;margin:.5rem 0 0}.loadingSpinner_XVxU{animation:1s linear infinite m;border:.4em solid #eee;border-radius:50%;border-top:.4em solid var(--ifm-color-primary);height:3rem;margin:0 auto;width:3rem}@keyframes m{to{transform:rotate(1turn)}}.loader_vvXV{margin-top:2rem}.search-result-match{background:#ffd78e40;color:var(--docsearch-hit-color);padding:.09em 0}.buttonGroup__atx button,.codeBlockContainer_Ckt0{background:var(--prism-background-color);color:var(--prism-color)}.codeBlockContainer_Ckt0{border-radius:var(--ifm-code-border-radius);box-shadow:var(--ifm-global-shadow-lw);margin-bottom:var(--ifm-leading)}.codeBlockContent_biex{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_Ktv7{border-bottom:1px solid var(--ifm-color-emphasis-300);border-top-left-radius:inherit;border-top-right-radius:inherit;font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlock_bY9V{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockTitle_Ktv7+.codeBlockContent_biex .codeBlock_bY9V{border-top-left-radius:0;border-top-right-radius:0}.codeBlockLines_e6Vv{float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_o6Pm{display:table;padding:var(--ifm-pre-padding) 0}.buttonGroup__atx{column-gap:.2rem;display:flex;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2)}.buttonGroup__atx button{align-items:center;border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);display:flex;line-height:0;opacity:0;padding:.4rem;transition:opacity var(--ifm-transition-fast) ease-in-out}.buttonGroup__atx button:focus-visible,.buttonGroup__atx button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup__atx button{opacity:.4}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.codeLine_lJS_{counter-increment:a;display:table-row}.codeLineNumber_Tfdd{background:var(--ifm-pre-background);display:table-cell;left:0;overflow-wrap:normal;padding:0 var(--ifm-pre-padding);position:sticky;text-align:right;width:1%}.codeLineNumber_Tfdd:before{content:counter(a);opacity:.4}.codeLineContent_feaV{padding-right:var(--ifm-pre-padding)}.theme-code-block:hover .copyButtonCopied_obH4{opacity:1!important}.copyButtonIcons_eSgA{height:1.125rem;position:relative;width:1.125rem}.copyButtonIcon_y97N,.copyButtonSuccessIcon_LjdS{fill:currentColor;height:inherit;left:0;opacity:inherit;position:absolute;top:0;transition:all var(--ifm-transition-fast) ease;width:inherit}.copyButtonSuccessIcon_LjdS{color:#00d600;left:50%;opacity:0;top:50%;transform:translate(-50%,-50%) scale(.33)}.copyButtonCopied_obH4 .copyButtonIcon_y97N{opacity:0;transform:scale(.33)}.copyButtonCopied_obH4 .copyButtonSuccessIcon_LjdS{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:75ms}.wordWrapButtonIcon_Bwma{height:1.2rem;width:1.2rem}.details_lb9f{--docusaurus-details-summary-arrow-size:0.38rem;--docusaurus-details-transition:transform 200ms ease;--docusaurus-details-decoration-color:grey}.details_lb9f>summary{cursor:pointer;list-style:none;padding-left:1rem;position:relative}.details_lb9f>summary::-webkit-details-marker{display:none}.details_lb9f>summary:before{border-color:#0000 #0000 #0000 var(--docusaurus-details-decoration-color);border-style:solid;border-width:var(--docusaurus-details-summary-arrow-size);content:"";left:0;position:absolute;top:.45rem;transform:rotate(0);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2) 50%;transition:var(--docusaurus-details-transition)}.collapsibleContent_i85q{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.details_b_Ee{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast) ease;border:1px solid var(--ifm-alert-border-color);margin:0 0 var(--ifm-spacing-vertical)}:not(.containsTaskList_mC6p>li)>.containsTaskList_mC6p{padding-left:0}.img_ev3q{height:auto}.admonition_xJq3{margin-bottom:1em}.admonitionHeading_Gvgb{font:var(--ifm-heading-font-weight) var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);text-transform:uppercase}.admonitionHeading_Gvgb:not(:last-child){margin-bottom:.3rem}.admonitionHeading_Gvgb code{text-transform:none}.admonitionIcon_Rf37{display:inline-block;margin-right:.4em;vertical-align:middle}.admonitionIcon_Rf37 svg{fill:var(--ifm-alert-foreground-color);display:inline-block;height:1.6em;width:1.6em}.breadcrumbHomeIcon_YNFT{height:1.1rem;position:relative;top:1px;vertical-align:top;width:1.1rem}.breadcrumbsContainer_Z_bl{--ifm-breadcrumb-size-multiplier:0.8;margin-bottom:.8rem}.title_kItE{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-leading)*1.25)}.icon_p5U1{color:var(--ifm-color-primary);font-size:50px;margin-top:20px}.card_M5pr{border-color:var(--ifm-color-emphasis-200);border-style:solid;border-width:1px;flex:1;margin:10px;min-width:330px;padding-top:20px;text-align:center}.card_M5pr img{border-radius:10px;max-width:400px;width:100%}.heroText_ryRM{flex:5;margin:30px 10px 10px}.heroVideo_l9rg{flex:7;margin:10px}.heroText_ryRM h1{font-size:50px;margin-bottom:25px;min-height:2.5em}.heroText_ryRM p{margin-bottom:50px}.sectionSeparator_HVke{height:150px}.firstSection_wDwr{margin-top:50px}[data-theme=dark] .mainSubheading_HtER{color:#a1a1aa;font-size:20px}[data-theme=light] .mainSubheading_HtER{color:#55555d;font-size:20px}[data-theme=dark] .grayText_CTeF{color:#a1a1aa;font-size:18px}[data-theme=light] .grayText_CTeF{color:#55555d;font-size:18px}.featureIcon_qaBM{margin:10px 30px 20px 20px}.hoverSecondary_mUBE:hover{box-shadow:0 0 10px var(--ifm-color-secondary);transform:scale(1.015)}.sceneExample_MxmD{font-size:100%}@media (min-width:0px){.sm\:grid-cols-\[max-content_auto_32px\]{grid-template-columns:max-content auto 32px}.sm\:grid-rows-\[auto_auto\]{grid-template-rows:auto auto}.sm\:\[column-gap\:16px\]{column-gap:16px}.sm\:\[grid-template-areas\:\'logo_text_close\'_\'button_button_button\'\]{grid-template-areas:"f g d" "c c c"}.sm\:\[row-gap\:16px\]{row-gap:16px}}@media (min-width:997px){.collapseSidebarButton_PEFL,.expandButton_TmdG{background-color:var(--docusaurus-collapse-button-bg)}.lg\:flex{display:flex}.lg\:h-\[85px\]{height:85px}.lg\:h-\[calc\(100vh-110px\)\]{height:calc(100vh - 110px)}.lg\:grid-cols-\[max-content_max-content_auto_max-content_max-content\]{grid-template-columns:max-content max-content auto max-content max-content}.lg\:grid-rows-\[auto\]{grid-template-rows:auto}.lg\:self-center{align-self:center}.lg\:px-10{padding-left:2.5rem;padding-right:2.5rem}.lg\:py-0{padding-bottom:0;padding-top:0}.lg\:text-\[22px\]\/9{font-size:22px;line-height:2.25rem}.lg\:\[column-gap\:16px\]{column-gap:16px}.lg\:\[grid-template-areas\:\"text_logo_decoration_button_close\"\]{grid-template-areas:"g f e c d"}.lastUpdated_vwxv{text-align:right}.tocMobile_ITEo{display:none}:root{--docusaurus-announcement-bar-height:30px}.announcementBarClose_gvF7,.announcementBarPlaceholder_vyr4{flex-basis:50px}.collapseSidebarButton_PEFL{border:1px solid var(--ifm-toc-border-color);border-radius:0;bottom:0;display:block!important;height:40px;position:sticky}.collapseSidebarButtonIcon_kv0_{margin-top:4px;transform:rotate(180deg)}.expandButtonIcon_i1dp,[dir=rtl] .collapseSidebarButtonIcon_kv0_{transform:rotate(0)}.collapseSidebarButton_PEFL:focus,.collapseSidebarButton_PEFL:hover,.expandButton_TmdG:focus,.expandButton_TmdG:hover{background-color:var(--docusaurus-collapse-button-bg-hover)}.menuHtmlItem_M9Kj{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu_SIkG{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_SIkG{padding:.5rem 0 .5rem .5rem;scrollbar-gutter:stable}}.menuWithAnnouncementBar_GW3s{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_njMd{display:flex;flex-direction:column;height:100%;padding-top:var(--ifm-navbar-height);width:var(--doc-sidebar-width)}.sidebarWithHideableNavbar_wUlq{padding-top:0}.sidebarHidden_VK0M{opacity:0;visibility:hidden}.sidebarLogo_isFc{align-items:center;color:inherit!important;display:flex!important;margin:0 var(--ifm-navbar-padding-horizontal);max-height:var(--ifm-navbar-height);min-height:var(--ifm-navbar-height);text-decoration:none!important}.sidebarLogo_isFc img{height:2rem;margin-right:.5rem}.expandButton_TmdG{align-items:center;display:flex;height:100%;justify-content:center;position:absolute;right:0;top:0;transition:background-color var(--ifm-transition-fast) ease;width:100%}[dir=rtl] .expandButtonIcon_i1dp{transform:rotate(180deg)}.docSidebarContainer_YfHR{border-right:1px solid var(--ifm-toc-border-color);clip-path:inset(0);display:block;margin-top:calc(var(--ifm-navbar-height)*-1);transition:width var(--ifm-transition-fast) ease;width:var(--doc-sidebar-width);will-change:width}.docSidebarContainerHidden_DPk8{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.sidebarViewport_aRkj{height:100%;max-height:100vh;position:sticky;top:0}.docMainContainer_TBSr{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_lQrH{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_JWYK{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}.navbarSearchContainer_Bca1{padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.docItemCol_VOVn,.generatedIndexPage_vN6x{max-width:75%!important}.list_eTzJ article:nth-last-child(-n+2){margin-bottom:0!important}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@media screen and (max-width:1440px){.heroText_ryRM h1,.heroText_ryRM p{margin-bottom:5px}}@media only screen and (max-width:1340px){.cardsContainer_NApk{grid-template-columns:1fr}.card_uGw9{margin:5px}.cardSubtitle_xyBL{display:none}.cardTitle_YaoG{font-size:16px}.bottomContainer_yrg_{flex-direction:column;padding:0;position:static}}@media screen and (max-width:1200px){.heroText_ryRM{margin-top:0}.heroText_ryRM,.heroVideo_l9rg{flex:unset;width:100%}.heroText_ryRM h1,.heroText_ryRM p{margin-bottom:0}.card_M5pr{flex:unset;height:unset;width:100%}.firstSection_wDwr{margin-top:20px}.sectionSeparator_HVke{height:30px}}@media (max-width:996px){.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.colorModeToggle_DEke,.footer__link-separator,.navbar__item,.tableOfContents_bqdL{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{display:block}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}.docItemContainer_F8PC{padding:0 .3rem}.navbarSearchContainer_Bca1{position:absolute;right:var(--ifm-navbar-padding-horizontal)}}@media only screen and (max-width:996px){.searchQueryColumn_RTkw,.searchResultsColumn_JPFH{max-width:60%!important}.searchLogoColumn_rJIA,.searchVersionColumn_ypXd{max-width:40%!important}.searchLogoColumn_rJIA{padding-left:0!important}}@media screen and (max-width:966px){.featureIcon_qaBM{position:absolute;visibility:hidden}.smallScreenFlexButton_j9_q{flex:1}}@media (max-width:768px){.DocSearch-Button-Keys,.DocSearch-Button-Placeholder,.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}:root{--docsearch-spacing:10px;--docsearch-footer-height:40px}.DocSearch-Dropdown{height:100%;max-height:calc(var(--docsearch-vh,1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))}.DocSearch-Container{height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh,1vh)*100);position:absolute}.DocSearch-Footer{border-radius:0;bottom:0;position:absolute}.DocSearch-Hit-content-wrapper{display:flex;position:relative;width:80%}.DocSearch-Modal{border-radius:0;box-shadow:none;height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh,1vh)*100);margin:0;max-width:100%;width:100%}.DocSearch-Cancel{appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;flex:none;font:inherit;font-size:1em;font-weight:500;margin-left:var(--docsearch-spacing);outline:0;overflow:hidden;padding:0;-webkit-user-select:none;user-select:none;white-space:nowrap}}@media only screen and (max-width:660px){.modalContent_jt0x{top:calc(50% + var(--ifm-navbar-height)/ 2);width:calc(100vw - 10px)}.container_SqLM,.container_i76h,.container_skE6{height:76vh}.imagePreviewDescriptionContainer_H4hc code{white-space:wrap}.headerResolutionLabel_Xjqq,.inputSelectorSelectContainer_NRWD{min-width:0}}@media (max-width:576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}}@media screen and (max-width:576px){.searchQueryColumn_RTkw{max-width:100%!important}.searchVersionColumn_ypXd{max-width:100%!important;padding-left:var(--ifm-spacing-horizontal)!important}}@media screen and (max-width:445px){.heroText_ryRM h1{min-height:5em}}@media (hover:hover){.backToTopButton_sjWU:hover{background-color:var(--ifm-color-emphasis-300)}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media (prefers-reduced-motion:reduce){:root{--ifm-transition-fast:0ms;--ifm-transition-slow:0ms}}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Reset{stroke-width:var(--docsearch-icon-stroke-width);animation:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0}.DocSearch-Hit--deleting,.DocSearch-Hit--favoriting{transition:none}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:none}}@media print{.announcementBar_mb4j,.footer,.menu,.navbar,.pagination-nav,.table-of-contents,.tocMobile_ITEo{display:none}.tabs{page-break-inside:avoid}.codeBlockLines_e6Vv{white-space:pre-wrap}} \ No newline at end of file diff --git a/assets/js/04914800.bd12bd90.js b/assets/js/04914800.bd12bd90.js new file mode 100644 index 000000000..01dfb87cf --- /dev/null +++ b/assets/js/04914800.bd12bd90.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcompositor_live=self.webpackChunkcompositor_live||[]).push([[1349],{98185:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>r,default:()=>m,frontMatter:()=>o,metadata:()=>c,toc:()=>p});var i=t(74848),s=t(28453);const o={sidebar_position:7},r="Image",c={id:"typescript/components/Image",title:"Image",description:"A component for rendering images.",source:"@site/pages/typescript/components/Image.md",sourceDirName:"typescript/components",slug:"/typescript/components/Image",permalink:"/docs/typescript/components/Image",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:7,frontMatter:{sidebar_position:7},sidebar:"sidebar",previous:{title:"Shader",permalink:"/docs/typescript/components/Shader"},next:{title:"WebView",permalink:"/docs/typescript/components/WebView"}},a={},p=[{value:"ImageProps",id:"imageprops",level:2},{value:"Properties",id:"properties",level:4}];function d(e){const n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h4:"h4",li:"li",p:"p",pre:"pre",ul:"ul",...(0,s.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"image",children:"Image"}),"\n",(0,i.jsx)(n.p,{children:"A component for rendering images."}),"\n",(0,i.jsx)(n.admonition,{type:"note",children:(0,i.jsxs)(n.p,{children:["To use this component, you need to first register the image with matching ",(0,i.jsx)(n.code,{children:"imageId"})," using ",(0,i.jsx)(n.a,{href:"/docs/typescript/instance#register-image",children:(0,i.jsx)(n.code,{children:"LiveCompositor.registerImage"})})," request."]})}),"\n",(0,i.jsx)(n.h2,{id:"imageprops",children:"ImageProps"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-typescript",children:"type ImageProps = {\n id?: string;\n imageId: string;\n}\n\n"})}),"\n",(0,i.jsx)(n.h4,{id:"properties",children:"Properties"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"id"})," - Id of a component. Defaults to value produced by ",(0,i.jsx)(n.code,{children:"useId"})," hook."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"imageId"})," - Id of an image. It identifies an image registered using a ",(0,i.jsx)(n.a,{href:"/docs/typescript/instance#register-image",children:(0,i.jsx)(n.code,{children:"LiveCompositor.registerImage"})})," method."]}),"\n"]})]})}function m(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},28453:(e,n,t)=>{t.d(n,{R:()=>r,x:()=>c});var i=t(96540);const s={},o=i.createContext(s);function r(e){const n=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),i.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/04914800.bf395506.js b/assets/js/04914800.bf395506.js deleted file mode 100644 index f21c04fdd..000000000 --- a/assets/js/04914800.bf395506.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcompositor_live=self.webpackChunkcompositor_live||[]).push([[1349],{98185:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>r,default:()=>m,frontMatter:()=>o,metadata:()=>c,toc:()=>a});var i=t(74848),s=t(28453);const o={sidebar_position:7},r="Image",c={id:"typescript/components/Image",title:"Image",description:"A component for rendering images.",source:"@site/pages/typescript/components/Image.md",sourceDirName:"typescript/components",slug:"/typescript/components/Image",permalink:"/docs/typescript/components/Image",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:7,frontMatter:{sidebar_position:7},sidebar:"sidebar",previous:{title:"Shader",permalink:"/docs/typescript/components/Shader"},next:{title:"WebView",permalink:"/docs/typescript/components/WebView"}},p={},a=[{value:"ImageProps",id:"imageprops",level:2},{value:"Properties",id:"properties",level:4}];function d(e){const n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h4:"h4",li:"li",p:"p",pre:"pre",ul:"ul",...(0,s.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"image",children:"Image"}),"\n",(0,i.jsx)(n.p,{children:"A component for rendering images."}),"\n",(0,i.jsx)(n.admonition,{type:"note",children:(0,i.jsxs)(n.p,{children:["To use this component, you need to first register the image with matching ",(0,i.jsx)(n.code,{children:"imageId"})," using ",(0,i.jsx)(n.a,{href:"/docs/typescript/api#register-image",children:(0,i.jsx)(n.code,{children:"LiveCompositor.registerImage"})})," request."]})}),"\n",(0,i.jsx)(n.h2,{id:"imageprops",children:"ImageProps"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-typescript",children:"type ImageProps = {\n id?: string;\n imageId: string;\n}\n\n"})}),"\n",(0,i.jsx)(n.h4,{id:"properties",children:"Properties"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"id"})," - Id of a component. Defaults to value produced by ",(0,i.jsx)(n.code,{children:"useId"})," hook."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"imageId"})," - Id of an image. It identifies an image registered using a ",(0,i.jsx)(n.a,{href:"/docs/typescript/api#register-image",children:(0,i.jsx)(n.code,{children:"LiveCompositor.registerImage"})})," method."]}),"\n"]})]})}function m(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},28453:(e,n,t)=>{t.d(n,{R:()=>r,x:()=>c});var i=t(96540);const s={},o=i.createContext(s);function r(e){const n=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),i.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/1df93b7f.0724bd3c.js b/assets/js/1df93b7f.0724bd3c.js deleted file mode 100644 index aef724be8..000000000 --- a/assets/js/1df93b7f.0724bd3c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcompositor_live=self.webpackChunkcompositor_live||[]).push([[4583],{99894:(e,t,s)=>{s.r(t),s.d(t,{default:()=>Q});var a=s(28774),i=s(51107),n=s(79201),r=s(20053),l=s(1612),o=s(27008),c=s(37609),d=s(9826),m=s(59644),h=s(95293);const v=s.p+"assets/images/broadcasting-cabc3722a5713ef1644e157af4fe6de4.webp",x=s.p+"assets/images/how_it_works-a4f9e7086f2a401b563e48181871b6a8.webp";var u=s(96540);function g(){return g=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:s,...a}=e;return u.createElement("svg",g({xmlns:"http://www.w3.org/2000/svg",width:500,height:552.326,viewBox:"0 0 85.44 94.69","aria-labelledby":s},a),t?u.createElement("title",{id:s},t):null,u.createElement("path",{d:"M37.28 1.44 5.42 19.73c-1.65.95-3.02 2.31-3.97 3.95C.5 25.32 0 27.17 0 29.07v36.56c0 1.89.5 3.75 1.46 5.39.95 1.64 2.32 3 3.97 3.95l31.86 18.28c1.65.95 3.52 1.45 5.43 1.45s3.78-.5 5.43-1.45l31.86-18.28c1.65-.95 3.02-2.31 3.97-3.95.95-1.64 1.46-3.5 1.46-5.39V29.07c0-1.89-.5-3.75-1.46-5.39-.95-1.64-2.32-3-3.97-3.95L48.14 1.44C46.49.49 44.62 0 42.71 0s-3.78.5-5.43 1.44Z",style:{fill:"#87cce8"}}),u.createElement("path",{d:"M57.51 21.35a20.45 20.45 0 0 0-15.07-2.2c-5.12 1.24-9.56 4.4-12.37 8.82-.88 1.34-11.94 20.26-11.94 20.26-.11.19-.18.39-.22.61-.03.22-.02.43.04.65.06.21.15.41.28.58.13.17.3.32.49.43.19.11.4.19.61.22.22.03.44.02.65-.04.21-.05.41-.15.59-.28.17-.13.32-.3.43-.49l8.32-14.11c.7.69 1.55 1.22 2.49 1.54L15.23 65.19c-.22.38-.29.83-.18 1.25a1.648 1.648 0 0 0 1.59 1.24 1.698 1.698 0 0 0 1.46-.82l17.01-28.6 1.11.25 1.78.4L25.82 59.5c-.22.38-.28.83-.17 1.25.11.42.39.79.77 1.01.25.15.54.23.83.23.29 0 .58-.07.84-.21.26-.14.47-.35.62-.6l12.63-21.37c.93.3 1.85.66 2.74 1.08l-8.53 14.25a1.647 1.647 0 0 0 .63 2.2c.37.22.81.28 1.23.18.42-.1.78-.35 1.02-.71l8.49-14.19c.78.56 1.52 1.17 2.22 1.82L36.2 66.3c-.12.19-.21.4-.25.62a1.651 1.651 0 0 0 .3 1.27c.13.18.3.33.5.45.19.11.41.19.63.21.22.03.45.01.67-.05.22-.06.42-.17.59-.31.18-.14.32-.32.42-.52l12.49-21.09 1.19 1.3.85.95-16.98 28.55c-.12.19-.21.4-.25.62a1.651 1.651 0 0 0 .3 1.27c.13.18.3.33.5.45.19.11.41.19.63.22.22.03.45.01.67-.05.22-.06.42-.17.59-.31.18-.14.32-.32.42-.52l16.56-27.85c.72.62 1.56 1.07 2.48 1.33l-8.4 14.28c-.12.19-.19.4-.23.61-.03.22-.02.44.03.65.05.21.15.41.28.59.13.18.3.32.49.44.19.11.4.18.62.21.22.03.44.02.66-.04.21-.06.41-.15.59-.29.18-.13.32-.3.43-.49l11.73-19.89a20.075 20.075 0 0 0 2.11-15.28 20.192 20.192 0 0 0-9.36-12.3Zm4.62 25.43-.57.97c-.81 1.3-1.36 1.74-1.92 1.76-.95.03-2.76-1.78-4.35-3.55-2.06-2.31-4.63-5.18-8.07-7.18-3.44-1.99-7.22-2.84-10.25-3.52-2.33-.51-4.82-1.1-5.27-1.94-.31-.57-.08-1.47.93-3.15 1.1-1.93 2.56-3.62 4.32-4.98 1.75-1.36 3.76-2.37 5.91-2.96 2.15-.59 4.39-.76 6.6-.49s4.34.97 6.28 2.06 3.64 2.55 5.01 4.29c1.37 1.74 2.38 3.74 2.98 5.87.6 2.13.76 4.36.49 6.55-.27 2.2-.97 4.32-2.07 6.24l-.02.03Zm-9.08-15.81c-.54.12-1.1.09-1.61-.11-.51-.19-.96-.53-1.28-.98-.32-.44-.5-.97-.52-1.52-.02-.55.13-1.09.42-1.55.29-.46.71-.83 1.21-1.06.5-.23 1.06-.3 1.6-.21s1.05.34 1.45.71.68.86.81 1.39c.08.35.1.72.04 1.08-.06.36-.19.7-.38 1.01-.19.31-.45.58-.74.79-.3.21-.63.36-.99.45Zm-7.77.73c-.42.1-.87.06-1.27-.09-.41-.15-.76-.42-1.01-.77-.25-.35-.4-.77-.41-1.2-.02-.43.1-.86.33-1.23s.56-.66.95-.84c.39-.18.83-.24 1.26-.18.43.07.83.26 1.15.55s.55.67.65 1.09c.07.28.08.58.04.86-.05.29-.15.56-.3.81s-.36.46-.6.63c-.24.17-.51.29-.8.35v.02Zm14.6 9.33c-.44.1-.9.07-1.32-.09-.42-.16-.79-.44-1.05-.8-.26-.36-.41-.8-.42-1.24-.01-.45.11-.89.34-1.27.24-.38.58-.68.99-.86.41-.18.87-.24 1.31-.17a2.27 2.27 0 0 1 1.84 1.72c.13.58.03 1.19-.29 1.7-.32.5-.83.86-1.41 1v.02Zm-.69-5.34c-.34.08-.7.06-1.03-.06-.33-.12-.62-.33-.82-.62-.21-.28-.33-.62-.34-.97-.01-.35.08-.69.26-.99.18-.3.45-.53.77-.68a1.785 1.785 0 0 1 1.95.31c.26.24.44.55.52.88.1.45.02.92-.22 1.31s-.63.67-1.08.78v.02Zm-4 1.76c-.25.06-.51.04-.75-.06a1.298 1.298 0 0 1-.84-1.17c0-.26.06-.51.2-.72.14-.22.33-.39.57-.49.23-.11.49-.14.75-.1.25.04.49.16.68.33.19.17.32.4.38.65.04.17.05.34.02.51-.03.17-.09.33-.18.48-.09.15-.21.27-.35.37s-.3.17-.47.21Zm-14.66-8.79c-.25.06-.51.04-.75-.06-.24-.09-.45-.25-.59-.46-.15-.21-.23-.45-.24-.71 0-.25.06-.51.2-.72.14-.22.33-.39.57-.49.23-.11.49-.14.75-.1s.49.15.68.33c.19.17.32.4.38.64.08.33.01.69-.17.98-.18.29-.48.5-.81.57v.03Z",style:{fill:"#001a72"}}))},j=s.p+"assets/images/streaming-e634eaea0df8af2affa0adc8d26ca646.webp";var y,f;function b(){return b=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:s,...a}=e;return u.createElement("svg",b({width:229,height:116,viewBox:"0 0 229 116",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":s},a),t?u.createElement("title",{id:s},t):null,y||(y=u.createElement("g",{clipPath:"url(#a)"},u.createElement("path",{d:"M26.8 1.7h200.1v87.5l-25 25.1H1.7l.1-87.6 25-25Z",fill:"#fff"}),u.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M26.179.2H228.4v89.62l-25.877 25.98H.198l.103-89.722L26.179.2ZM3.299 27.322l22.001-22v83.257L3.204 110.674 3.3 27.322ZM5.321 112.8h195.956l22.012-22.1H27.421l-22.1 22.1ZM225.4 3.2v84.5H28.3V3.2h197.1Z",fill:"#001A72"}),u.createElement("path",{d:"M63.7 36.6c0 3-2 5.6-6.8 5.6-2.1 0-3.8-.5-5.3-1.1v-4.2c1.6.8 3.5 1.3 5.2 1.3 1.6 0 2.4-.5 2.4-1.4 0-2.8-7.6-1.9-7.6-7.6 0-3.5 2.8-5.6 6.7-5.6 1.6 0 3.1.4 4.7 1.3v4.3c-2.1-1.3-3.6-1.7-4.8-1.7-1.4 0-2.2.5-2.2 1.4-.1 2.7 7.7 1.7 7.7 7.7ZM67.5 32.9c0-5.1 4.2-9.3 9.3-9.3 5.1 0 9.3 4.2 9.3 9.3 0 5.1-4.2 9.3-9.3 9.3-5.1 0-9.3-4.2-9.3-9.3Zm14 0c0-2.8-2.1-4.9-4.7-4.9S72 30.1 72 32.9c0 2.8 2.1 4.9 4.7 4.9s4.8-2.1 4.8-4.9ZM96.5 22.5V24h5.9l-2 4.2h-3.8v13.6h-4.3V28.2h-3V24h3v-1.7c0-5.4 2.8-8.1 7.2-8.1 1.1 0 2.1.2 3 .4v4.2c-.8-.3-1.7-.4-2.6-.4-2.5-.1-3.4 1.5-3.4 4.1ZM111.3 28.2v7.1c0 1.9 1.1 2.7 2.8 2.7 1.1 0 2.2-.3 3.1-.9v4.3c-1.2.5-2.3.8-3.9.8-3.9 0-6.3-2.1-6.3-6.4v-7.6h-2.6V24h2.6v-4.5l4.3-1.1V24h5.9v4.2h-5.9ZM148.4 24l-5.7 17.8h-4.3l-3.9-12.2-4 12.2H126L120.3 24h4.9l3.2 11.9 3.8-11.9h4.3l3.8 11.9 3.2-11.9h4.9ZM150.6 32.9c0-5.1 3.7-9.3 8.8-9.3 2 0 3.6.6 4.8 1.6V24h4.3v17.8h-4.2v-1.4c-1.2 1.1-2.9 1.8-5 1.8-4.9 0-8.7-4.2-8.7-9.3Zm14 0c0-2.8-2.1-4.9-4.7-4.9s-4.7 2.1-4.7 4.9c0 2.8 2.1 4.9 4.7 4.9s4.7-2.1 4.7-4.9ZM174.6 24h4.2v2.5c1.3-2.4 3.7-2.8 5.8-2.8v5.1c-3-.8-5.7.9-5.7 4.7v8.3h-4.3V24ZM198.1 38c1.7 0 3.7-.3 5.7-1.1l-2.2 4.5c-1 .4-2.5.8-4.3.8-6.3 0-10.1-3.9-10.1-9.3 0-5.1 3.8-9.3 9.3-9.3 3.7 0 6.7 1.9 7.9 4.3v6.4h-12.6c.7 2.2 2.7 3.7 6.3 3.7Zm-6.3-7h9.3c-.6-2.1-2.4-3.4-4.7-3.4-2.2 0-3.9 1.4-4.6 3.4ZM76.5 56.8v11.7h-4.3v-11c0-1.9-1.4-3-2.8-3-1.5 0-2.8 1.1-2.8 3v11h-4.3v-11c0-1.9-1.4-3-2.8-3-1.5 0-2.8 1.1-2.8 3v11h-4.3V50.8h4.2v1.3c1.3-1.3 2.6-1.7 4.3-1.7 1.9 0 3.5.8 4.6 2.3 1.5-1.6 3.3-2.3 5.4-2.3 3 0 5.6 2.7 5.6 6.4ZM81 59.7c0-5.1 3.7-9.3 8.8-9.3 2 0 3.6.6 4.8 1.6v-1.2H99v17.8h-4.2v-1.4c-1.2 1.1-2.9 1.8-5 1.8-5.1-.1-8.8-4.2-8.8-9.3Zm14 0c0-2.8-2.1-4.9-4.7-4.9s-4.7 2.1-4.7 4.9c0 2.8 2.1 4.9 4.7 4.9s4.7-2.1 4.7-4.9ZM104.8 50.8h4.2v1.3c1.3-1.3 3-1.7 4.7-1.7 3.7 0 6.7 2.8 6.7 6.6v11.5h-4.3V58c0-1.9-1.5-3.4-3.4-3.4s-3.4 1.5-3.4 3.4v10.6H105V50.8h-.2ZM137.6 63.4c0 3-2 5.6-6.8 5.6-2.1 0-3.8-.5-5.3-1.1v-4.2c1.6.8 3.5 1.3 5.2 1.3 1.6 0 2.4-.5 2.4-1.4 0-2.8-7.6-1.9-7.6-7.6 0-3.5 2.8-5.6 6.7-5.6 1.6 0 3.1.4 4.7 1.3V56c-2.1-1.3-3.6-1.7-4.8-1.7-1.4 0-2.2.5-2.2 1.4 0 2.6 7.7 1.6 7.7 7.7ZM147 50.8v17.8h-4.3V50.8h4.3ZM151.5 59.7c0-5.1 4.2-9.3 9.3-9.3 5.1 0 9.3 4.2 9.3 9.3 0 5.1-4.2 9.3-9.3 9.3-5.1 0-9.3-4.2-9.3-9.3Zm14 0c0-2.8-2.1-4.9-4.7-4.9s-4.7 2.1-4.7 4.9c0 2.8 2.1 4.9 4.7 4.9s4.7-2.1 4.7-4.9ZM174.5 50.8h4.2v1.3c1.3-1.3 3-1.7 4.7-1.7 3.7 0 6.7 2.8 6.7 6.6v11.5h-4.3V58c0-1.9-1.5-3.4-3.4-3.4S179 56.1 179 58v10.6h-4.3V50.8h-.2ZM198.6 63.7v.7H197v4.2h-.8v-4.2h-1.5v-.7h3.9ZM200.3 63.7l1.6 3.9 1.5-3.9h1v4.9h-.8V65l-1.5 3.6h-.7l-1.5-3.6v3.6h-.8v-4.9h1.2Z",fill:"#001A72"}))),f||(f=u.createElement("defs",null,u.createElement("clipPath",{id:"a"},u.createElement("path",{fill:"#fff",d:"M0 0h229v116H0z"})))))},N=s.p+"assets/images/videoconferencing-dfe816f05884badb437b9db884db2024.webp";function _(){return _=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:s,...a}=e;return u.createElement("svg",_({xmlns:"http://www.w3.org/2000/svg",width:768,height:768,viewBox:"0 0 768 768","aria-labelledby":s},a),t?u.createElement("title",{id:s},t):null,u.createElement("path",{"data-name":"Triangle 4",d:"m626.63 295.5-60.189-104.25h120.55z",style:{fill:"#0086e8",stroke:"#0086e8",fillRule:"evenodd",strokeLinejoin:"round"}}),u.createElement("path",{"data-name":"Triangle 5",d:"m626.63 87.001-60.189 104.25h120.55z",style:{fill:"#0093ff",stroke:"#0093ff",fillRule:"evenodd",strokeLinejoin:"round"}}),u.createElement("path",{"data-name":"Triangle 3",d:"M506.26 504 385.88 295.5l240.76-.002z",style:{fill:"#0076cc",stroke:"#0076cc",fillRule:"evenodd",strokeLinejoin:"round"}}),u.createElement("path",{"data-name":"Triangle 2",d:"M506.26 87 385.88 295.5l240.76-.002z",style:{fill:"#0066b0",stroke:"#0066b0",fillRule:"evenodd",strokeLinejoin:"round"}}),u.createElement("path",{"data-name":"Triangle 1",d:"M265.5 504 24.74 87h481.51z",style:{fill:"#005a9c",stroke:"#005a9c",fillRule:"evenodd",strokeLinejoin:"round"}}),u.createElement("path",{d:"m168.627 547.469-25.7 98.943-26.877-98.943H98.913l-28.221 99.279-25.534-99.279H28.864l32.757 117.253 16.966-.168 28.221-94.239 27.214 94.239h17.134l33.933-117.085h-16.462ZM285.879 615a46.371 46.371 0 0 0-5.459-22.594 39.572 39.572 0 0 0-15.539-15.706 46.213 46.213 0 0 0-23.181-5.711 47.756 47.756 0 0 0-23.77 5.8 40.093 40.093 0 0 0-16.043 16.547q-5.712 10.752-5.711 25.029t5.879 25.114a41.6 41.6 0 0 0 16.211 16.714 46.506 46.506 0 0 0 23.434 5.88q16.461 0 27.549-8.315a39.581 39.581 0 0 0 14.783-21.586h-16.463a24.459 24.459 0 0 1-9.323 12.347q-6.637 4.621-16.546 4.619a29.643 29.643 0 0 1-20.579-7.643q-8.484-7.643-9.323-21.25h73.578a90.2 90.2 0 0 0 .5-9.239Zm-15.79-3.192h-58.123q1.174-13.1 9.323-20.494a28.334 28.334 0 0 1 19.739-7.391 32.747 32.747 0 0 1 14.7 3.275 25.141 25.141 0 0 1 10.5 9.575 28.211 28.211 0 0 1 3.864 15.035Zm51.234-22.174v-49.388h-15.286v124.308h15.286v-16.966a35.4 35.4 0 0 0 13.523 13.27 40.944 40.944 0 0 0 20.914 5.208 41.878 41.878 0 0 0 37.965-23.014 52.85 52.85 0 0 0 5.711-24.862q0-14.111-5.711-24.777a41.656 41.656 0 0 0-15.625-16.547 42.963 42.963 0 0 0-22.342-5.879 40.769 40.769 0 0 0-20.662 5.207 36.153 36.153 0 0 0-13.775 13.439Zm62.491 28.557a38.312 38.312 0 0 1-4.2 18.395 29.538 29.538 0 0 1-11.339 11.927 30.881 30.881 0 0 1-15.707 4.115 30.554 30.554 0 0 1-15.538-4.115 30.081 30.081 0 0 1-11.423-11.927 40.557 40.557 0 0 1 0-36.285 30.1 30.1 0 0 1 11.423-11.927 30.574 30.574 0 0 1 15.538-4.115 31.392 31.392 0 0 1 15.707 4.031 29.1 29.1 0 0 1 11.339 11.759 37.449 37.449 0 0 1 4.2 18.142ZM526.6 581.4a52.873 52.873 0 0 0-20.914-26.038q-14.363-9.236-33.008-9.239a59.1 59.1 0 0 0-29.734 7.643 55.966 55.966 0 0 0-21.25 21.334 64.565 64.565 0 0 0 0 61.567 56.107 56.107 0 0 0 21.25 21.25 59.068 59.068 0 0 0 29.734 7.643 56.956 56.956 0 0 0 28.053-6.971 56.039 56.039 0 0 0 20.326-18.983 58.146 58.146 0 0 0 9.071-26.457v-11.757h-62.995v12.431h46.7Q511.982 631.3 500.9 641.54t-28.221 10.247a43.637 43.637 0 0 1-22.091-5.627 39.867 39.867 0 0 1-15.454-16.043q-5.629-10.413-5.627-24.189t5.627-24.274a39.775 39.775 0 0 1 15.454-16.127 43.657 43.657 0 0 1 22.091-5.627 40.519 40.519 0 0 1 21.5 5.627 36.439 36.439 0 0 1 14.11 15.873H526.6Zm101.967.336q0-15.119-10.331-24.694t-30.153-9.575h-37.8v117.087h15.287v-48.883h22.51q20.493 0 30.489-9.659t10-24.274Zm-40.484 21.334h-22.51v-43h22.51q24.858 0 24.861 21.67 0 10.248-6.047 15.79t-18.814 5.544Zm59.129-55.6v73.913q0 14.615 5.8 24.61a36.383 36.383 0 0 0 15.79 14.866 54.05 54.05 0 0 0 44.852 0 36.913 36.913 0 0 0 15.875-14.866Q735.4 636 735.4 621.382v-73.913h-15.283v74.081q0 15.623-7.644 23.182t-21.082 7.559q-13.606 0-21.25-7.559T662.5 621.55v-74.081h-15.289Z",style:{fill:"#eee",fillRule:"evenodd"}}))};function S(){return S=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:s,...a}=e;return u.createElement("svg",S({xmlns:"http://www.w3.org/2000/svg",width:768,height:768,viewBox:"0 0 768 768","aria-labelledby":s},a),t?u.createElement("title",{id:s},t):null,u.createElement("path",{"data-name":"Triangle 4",d:"m626.63 295.5-60.189-104.25h120.55z",style:{fill:"#0086e8",stroke:"#0086e8",fillRule:"evenodd",strokeLinejoin:"round"}}),u.createElement("path",{"data-name":"Triangle 5",d:"m626.63 87.001-60.189 104.25h120.55z",style:{fill:"#0093ff",stroke:"#0093ff",fillRule:"evenodd",strokeLinejoin:"round"}}),u.createElement("path",{"data-name":"Triangle 3",d:"M506.26 504 385.88 295.5l240.76-.002z",style:{fill:"#0076cc",stroke:"#0076cc",fillRule:"evenodd",strokeLinejoin:"round"}}),u.createElement("path",{"data-name":"Triangle 2",d:"M506.26 87 385.88 295.5l240.76-.002z",style:{fill:"#0066b0",stroke:"#0066b0",fillRule:"evenodd",strokeLinejoin:"round"}}),u.createElement("path",{"data-name":"Triangle 1",d:"M265.5 504 24.74 87h481.51z",style:{fill:"#005a9c",stroke:"#005a9c",fillRule:"evenodd",strokeLinejoin:"round"}}),u.createElement("path",{d:"m168.627 547.469-25.7 98.943-26.877-98.943H98.913l-28.221 99.279-25.534-99.279H28.864l32.757 117.253 16.966-.168 28.221-94.239 27.214 94.239h17.134l33.933-117.085h-16.462ZM285.879 615a46.371 46.371 0 0 0-5.459-22.594 39.572 39.572 0 0 0-15.539-15.706 46.213 46.213 0 0 0-23.181-5.711 47.756 47.756 0 0 0-23.77 5.8 40.093 40.093 0 0 0-16.043 16.547q-5.712 10.752-5.711 25.029t5.879 25.114a41.6 41.6 0 0 0 16.211 16.714 46.506 46.506 0 0 0 23.434 5.88q16.461 0 27.549-8.315a39.581 39.581 0 0 0 14.783-21.586h-16.463a24.459 24.459 0 0 1-9.323 12.347q-6.637 4.621-16.546 4.619a29.643 29.643 0 0 1-20.579-7.643q-8.484-7.643-9.323-21.25h73.578a90.2 90.2 0 0 0 .5-9.239Zm-15.79-3.192h-58.123q1.174-13.1 9.323-20.494a28.334 28.334 0 0 1 19.739-7.391 32.747 32.747 0 0 1 14.7 3.275 25.141 25.141 0 0 1 10.5 9.575 28.211 28.211 0 0 1 3.864 15.035Zm51.234-22.174v-49.388h-15.286v124.308h15.286v-16.966a35.4 35.4 0 0 0 13.523 13.27 40.944 40.944 0 0 0 20.914 5.208 41.878 41.878 0 0 0 37.965-23.014 52.85 52.85 0 0 0 5.711-24.862q0-14.111-5.711-24.777a41.656 41.656 0 0 0-15.625-16.547 42.963 42.963 0 0 0-22.342-5.879 40.769 40.769 0 0 0-20.662 5.207 36.153 36.153 0 0 0-13.775 13.439Zm62.491 28.557a38.312 38.312 0 0 1-4.2 18.395 29.538 29.538 0 0 1-11.339 11.927 30.881 30.881 0 0 1-15.707 4.115 30.554 30.554 0 0 1-15.538-4.115 30.081 30.081 0 0 1-11.423-11.927 40.557 40.557 0 0 1 0-36.285 30.1 30.1 0 0 1 11.423-11.927 30.574 30.574 0 0 1 15.538-4.115 31.392 31.392 0 0 1 15.707 4.031 29.1 29.1 0 0 1 11.339 11.759 37.449 37.449 0 0 1 4.2 18.142ZM526.6 581.4a52.873 52.873 0 0 0-20.914-26.038q-14.363-9.236-33.008-9.239a59.1 59.1 0 0 0-29.734 7.643 55.966 55.966 0 0 0-21.25 21.334 64.565 64.565 0 0 0 0 61.567 56.107 56.107 0 0 0 21.25 21.25 59.068 59.068 0 0 0 29.734 7.643 56.956 56.956 0 0 0 28.053-6.971 56.039 56.039 0 0 0 20.326-18.983 58.146 58.146 0 0 0 9.071-26.457v-11.757h-62.995v12.431h46.7Q511.982 631.3 500.9 641.54t-28.221 10.247a43.637 43.637 0 0 1-22.091-5.627 39.867 39.867 0 0 1-15.454-16.043q-5.629-10.413-5.627-24.189t5.627-24.274a39.775 39.775 0 0 1 15.454-16.127 43.657 43.657 0 0 1 22.091-5.627 40.519 40.519 0 0 1 21.5 5.627 36.439 36.439 0 0 1 14.11 15.873H526.6Zm101.967.336q0-15.119-10.331-24.694t-30.153-9.575h-37.8v117.087h15.287v-48.883h22.51q20.493 0 30.489-9.659t10-24.274Zm-40.484 21.334h-22.51v-43h22.51q24.858 0 24.861 21.67 0 10.248-6.047 15.79t-18.814 5.544Zm59.129-55.6v73.913q0 14.615 5.8 24.61a36.383 36.383 0 0 0 15.79 14.866 54.05 54.05 0 0 0 44.852 0 36.913 36.913 0 0 0 15.875-14.866Q735.4 636 735.4 621.382v-73.913h-15.283v74.081q0 15.623-7.644 23.182t-21.082 7.559q-13.606 0-21.25-7.559T662.5 621.55v-74.081h-15.289Z",style:{fillRule:"evenodd"}}))};var M=s(10383),k=s(8242),E=s.n(k),T=s(21432),L=s(74848);function C(){return(0,L.jsx)(T.A,{language:"typescript",children:'{\n "type": "view",\n "children": [\n {\n "type": "shader",\n "shader_id": "replace_green_screen",\n "resolution": { "width": 1920, "height": 1080 },\n "children": [\n { "type": "input_stream", "input_id": "tv" },\n { "type": "image", "image_id": "background" }\n ]\n },\n {\n "type": "rescaler",\n "width": 640, "height": 360,\n "top": 20, "left": 20,\n "child": { \n "type": "input_stream", "input_id": "bunny"\n }\n },\n {\n "type": "view",\n "height": 120,\n "left": 0, "bottom": 0, \n "background_color_rgba": "#B3B3B3FF",\n "children": [\n { "type": "view" },\n {\n "type": "text", \n "text": "LiveCompositor \ud83d\ude03\ud83d\ude0d",\n "font_size": 100,\n "weight": "bold",\n "color_rgba": "#000000FF",\n },\n { "type": "view" }\n ]\n }\n ]\n}'})}const P={icon:"icon_p5U1",card:"card_M5pr",heroText:"heroText_ryRM",heroVideo:"heroVideo_l9rg",sectionSeparator:"sectionSeparator_HVke",firstSection:"firstSection_wDwr",mainSubheading:"mainSubheading_HtER",grayText:"grayText_CTeF",featureIcon:"featureIcon_qaBM",smallScreenFlexButton:"smallScreenFlexButton_j9_q",hoverPrimary:"hoverPrimary_gz6K",hoverSecondary:"hoverSecondary_mUBE",sceneExample:"sceneExample_MxmD"};function q(){return(0,L.jsx)("div",{className:(0,r.A)("container",P.firstSection),children:(0,L.jsxs)("div",{className:"row",children:[(0,L.jsx)("div",{className:P.heroText,children:(0,L.jsxs)("div",{className:"container",children:[(0,L.jsxs)(i.A,{as:"h1",children:[(0,L.jsx)("span",{className:"text--primary",children:"Mix video and audio "}),(0,L.jsx)("div",{className:P.typewriter,children:(0,L.jsx)(E(),{options:{strings:["in real-time.","using code.","with low latency."],autoStart:!0,loop:!0,deleteSpeed:50,delay:80}})})]}),(0,L.jsx)("p",{className:P.mainSubheading,children:"Media server for real-time, low latency, programmable video and audio mixing."}),(0,L.jsxs)("div",{className:"row",children:[(0,L.jsx)(a.A,{className:(0,r.A)("button button--primary button--lg col col-6 margin--sm",P.hoverPrimary),to:"/docs/intro",children:(0,L.jsxs)(M.Vx.Provider,{value:{style:{verticalAlign:"middle"}},children:[(0,L.jsx)(o.vd0,{style:{marginRight:3}}),"Docs"]})}),(0,L.jsx)(a.A,{className:(0,r.A)("button button--secondary button--outline button--lg col col-6 margin--sm",P.hoverSecondary),to:"https://github.com/software-mansion/live-compositor",children:(0,L.jsxs)(M.Vx.Provider,{value:{style:{verticalAlign:"middle"}},children:[(0,L.jsx)(o.hL4,{style:{marginRight:5}}),"View on GitHub"]})})]})]})}),(0,L.jsx)("div",{className:P.heroVideo,children:(0,L.jsx)("div",{style:{borderRadius:"15px",overflow:"hidden",boxShadow:"0px 0px 20px 1px #4332a6"},children:(0,L.jsx)("video",{loop:!0,autoPlay:!0,muted:!0,src:"/video/showcase.mp4",poster:"/img/showcase_poster.webp",style:{width:"100%",display:"block"}})})})]})})}function R(){return(0,L.jsxs)("div",{className:"container margin-top--md",children:[(0,L.jsx)(i.A,{as:"h2",className:"margin-bottom--md text--center text--primary",children:"How it works?"}),(0,L.jsxs)("p",{className:(0,r.A)("text--center",P.grayText),children:["1. Send inputs as RTP streams or MP4 files",(0,L.jsx)("br",{}),"2. Configure mixing with HTTP requests",(0,L.jsx)("br",{}),"3. Get the mixed streams via RTP"]}),(0,L.jsxs)("div",{className:"row",style:{alignItems:"center"},children:[(0,L.jsx)("div",{className:"col col--6",children:(0,L.jsx)("img",{src:x,alt:"Composing"})}),(0,L.jsx)("div",{className:(0,r.A)("col col--6",P.sceneExample),children:(0,L.jsx)(C,{})})]})]})}function V(){return(0,L.jsxs)("div",{className:"container margin-top--md",children:[(0,L.jsx)(i.A,{as:"h2",className:"margin-bottom--md text--center text--primary",children:"Use cases"}),(0,L.jsx)("p",{className:(0,r.A)("text--center",P.grayText),children:"Use LiveCompositor for video conferencing, live-streaming, broadcasting, and more."}),(0,L.jsxs)("div",{className:"row",children:[(0,L.jsx)(I,{title:"Video conferencing",subtitle:"Stream or record video conferences",img:N}),(0,L.jsx)(I,{title:"Broadcasting",subtitle:"Compose broadcasts",img:v}),(0,L.jsx)(I,{title:"Live-streaming",subtitle:"Create awesome live-streams",img:j})]})]})}function I(e){return(0,L.jsxs)("div",{className:(0,r.A)("card",P.card,P.hoverPrimary),children:[(0,L.jsx)("div",{className:"text--primary",children:(0,L.jsx)(i.A,{as:"h3",style:{textAlign:"center",margin:0},children:e.title})}),(0,L.jsx)("p",{className:(0,r.A)("text--center",P.grayText),style:{margin:0},children:e.subtitle}),(0,L.jsx)("div",{className:"card__body",children:(0,L.jsx)("img",{src:e.img,alt:e.title})})]})}function H(){return(0,L.jsxs)("div",{className:"container margin-top--md",children:[(0,L.jsx)(i.A,{as:"h2",className:"margin-bottom--md text--center text--primary",children:"Vision"}),(0,L.jsx)("p",{className:(0,r.A)("text--center",P.grayText),children:"Make mixing live streams as simple as building a website."}),(0,L.jsxs)("div",{className:"row",children:[(0,L.jsx)(z,{title:"Simple declarative API",icon:o.FSj,children:(0,L.jsx)("p",{className:"padding--md",children:"Mixing is specified using simple component tree, easy to pick up for anyone familiar with web development."})}),(0,L.jsx)(z,{title:"Easy integration",icon:o.AnD,children:(0,L.jsx)("p",{className:"padding--md",children:"API is language agnostic. You can leverage tech stack of your choice and easily integrate it with your own solutions."})}),(0,L.jsx)(z,{title:"Real-time and low latency",icon:c.W5P,children:(0,L.jsx)("p",{className:"padding--md",children:"LiveCompositor targets real-time use cases, with a significant focus on situations where latency is critical."})})]})]})}function z(e){const t=e.icon;return(0,L.jsxs)("div",{className:(0,r.A)("card",P.card,P.hoverPrimary),children:[(0,L.jsx)("div",{style:{display:"flex",justifyContent:"center"},children:(0,L.jsx)(t,{className:P.icon})}),(0,L.jsx)("div",{className:"card__header",children:(0,L.jsx)(i.A,{as:"h3",style:{textAlign:"center"},children:e.title})}),(0,L.jsx)("div",{className:"card__body",children:e.children})]})}function B(e){const t=(0,L.jsxs)("div",{className:"col",children:[(0,L.jsx)(i.A,{as:"h3",className:"margin-top--sm",children:e.text}),(0,L.jsx)("p",{children:e.secondaryText})]});return(0,L.jsxs)("div",{className:"row margin-right--lg margin-left--lg",style:{alignItems:"center"},children:[e.image,(0,L.jsxs)("div",{className:"col",children:[t,e.children]})]})}function O(){const{colorMode:e}=(0,h.G)(),t="dark"===e?(0,L.jsx)(A,{className:P.featureIcon,width:80,height:80}):(0,L.jsx)(Z,{className:P.featureIcon,width:80,height:80});return(0,L.jsxs)("div",{className:"container margin-top--lg margin-bottom--md",children:[(0,L.jsx)(i.A,{as:"h2",className:"margin-bottom--md text--center text--primary",children:"Capabilities"}),(0,L.jsx)("p",{className:(0,r.A)("text--center",P.grayText),children:"Simple, powerful, fast. Pick three."}),(0,L.jsx)(B,{text:"Batteries included",secondaryText:"Process streams, render text, images, GIFs or websites, and combine them into output streams using high-level components.",image:(0,L.jsx)(c.Dhs,{className:P.featureIcon,style:{fontSize:80}})}),(0,L.jsx)(B,{text:"Highly customizable",secondaryText:"Create custom effects with WGSL shaders and directly leverage GPU parallel processing capabilities.",image:(0,L.jsx)(o.wZu,{className:P.featureIcon,style:{fontSize:80}})}),(0,L.jsx)(B,{text:"Audio support",secondaryText:"Mix audio directly in LiveCompositor.",image:(0,L.jsx)(m.bXv,{className:P.featureIcon,style:{fontSize:80}})}),(0,L.jsx)(B,{text:"WebGPU and Rust",secondaryText:"Leverage Rust and WebGPU rendering for great performance.",image:t}),(0,L.jsx)(B,{text:"Animated transitions",secondaryText:"Change layouts on the fly with animated transitions.",image:(0,L.jsx)(c.Iff,{className:P.featureIcon,style:{fontSize:80}})}),(0,L.jsx)(B,{text:"Real-time processing",secondaryText:"Process live streams in real-time with low latency.",image:(0,L.jsx)(m.Md6,{className:P.featureIcon,style:{fontSize:80}})}),(0,L.jsx)(B,{text:"Offline processing",secondaryText:"Use LiveCompositor for non-real-time use cases with offline processing mode.",image:(0,L.jsx)(d.doL,{className:P.featureIcon,style:{fontSize:80}})})]})}function F(){return(0,L.jsxs)("div",{className:"row",style:{justifyContent:"center"},children:[(0,L.jsx)(l.vwk,{className:"margin--lg",style:{fontSize:150,alignSelf:"center"}}),(0,L.jsx)("div",{className:"col",children:(0,L.jsxs)("div",{className:"card",children:[(0,L.jsx)("div",{className:"card__header",children:(0,L.jsx)(i.A,{as:"h3",className:"margin-top--sm",children:"Standalone server"})}),(0,L.jsxs)("div",{className:"card__body container",children:[(0,L.jsx)("p",{children:"LiveCompositor can be deployed as a standalone server. Language-agnostic API allows you to seamlessly integrate it into your existing solutions. Dockerfiles and deployment section in docs are meant to make the deployment process as easy as possible."}),(0,L.jsxs)("div",{className:"row margin--sm",style:{justifyContent:"end"},children:[(0,L.jsx)(a.A,{className:(0,r.A)("button button--secondary button--outline button--lg margin--sm",P.hoverSecondary,P.smallScreenFlexButton),to:"/docs/deployment/overview",children:(0,L.jsxs)(M.Vx.Provider,{value:{style:{verticalAlign:"middle"}},children:[(0,L.jsx)(o.vd0,{style:{marginRight:5}}),"Docs"]})}),(0,L.jsx)(a.A,{className:(0,r.A)("button button--secondary button--outline button--lg margin--sm",P.hoverSecondary,P.smallScreenFlexButton),to:"https://github.com/software-mansion/live-compositor/tree/master/build_tools/docker",children:(0,L.jsxs)(M.Vx.Provider,{value:{style:{verticalAlign:"middle"}},children:[(0,L.jsx)(o.q_t,{style:{marginRight:5}}),"Dockerfiles"]})})]})]})]})})]})}function W(){return(0,L.jsxs)("div",{className:"row",style:{justifyContent:"center"},children:[(0,L.jsx)(p,{width:150,height:150,className:"margin--lg",style:{alignSelf:"center"}}),(0,L.jsx)("div",{className:"col",children:(0,L.jsxs)("div",{className:"card",children:[(0,L.jsx)("div",{className:"card__header",children:(0,L.jsx)(i.A,{as:"h3",className:"margin-top--sm",children:"Membrane plugin"})}),(0,L.jsxs)("div",{className:"card__body container",children:[(0,L.jsx)("p",{children:"Membrane is a developer-friendly multimedia framework for Elixir. You can easily add video and audio composing functionality into your multimedia pipeline using Membrane LiveCompositor Plugin."}),(0,L.jsxs)("div",{className:"row margin--sm",style:{justifyContent:"end"},children:[(0,L.jsx)(a.A,{className:(0,r.A)("button button--secondary button--outline button--lg margin--sm",P.hoverSecondary,P.smallScreenFlexButton),to:"https://hexdocs.pm/membrane_live_compositor_plugin/0.9.0/Membrane.LiveCompositor.html",children:(0,L.jsxs)(M.Vx.Provider,{value:{style:{verticalAlign:"middle"}},children:[(0,L.jsx)(o.vd0,{style:{marginRight:5}}),"Docs"]})}),(0,L.jsx)(a.A,{className:(0,r.A)("button","button--secondary","button--outline","button--lg","margin--sm",P.hoverSecondary,P.smallScreenFlexButton),to:"https://github.com/membraneframework/membrane_live_compositor_plugin",children:(0,L.jsxs)(M.Vx.Provider,{value:{style:{verticalAlign:"middle"}},children:[(0,L.jsx)(o.hL4,{style:{marginRight:5}}),"Repository"]})})]})]})]})})]})}function D(){return(0,L.jsxs)("div",{className:"container",children:[(0,L.jsx)(i.A,{as:"h2",className:"margin-bottom--md text--center text--primary",children:"Usage"}),(0,L.jsx)(F,{}),(0,L.jsx)("br",{}),(0,L.jsx)(W,{})]})}function U(){return(0,L.jsxs)("div",{className:"container margin-top--lg margin-bottom--md",children:[(0,L.jsx)(i.A,{as:"h2",className:"margin-bottom--md text--center text--primary",children:"Licensing"}),(0,L.jsx)("div",{className:"card container",children:(0,L.jsxs)("div",{className:"card__body",children:[(0,L.jsxs)("p",{className:P.grayText,children:["LiveCompositor is licensed under"," ",(0,L.jsx)(a.A,{to:"https://github.com/software-mansion/live-compositor/blob/master/LICENSE",children:"Business Source License 1.1"})]}),(0,L.jsx)("p",{className:P.grayText,children:"Currently, allowed usage is limited to non-production use cases. If you are interested in the production usage contact us (see the section below)."}),(0,L.jsxs)("span",{className:P.grayText,children:["What is the goal of those limitations?",(0,L.jsxs)("ul",{children:[(0,L.jsx)("li",{children:"We want to have insight into where and how LiveCompositor is used."}),(0,L.jsx)("li",{children:"We want to block third parties from re-packaging and providing it as a SaaS."}),(0,L.jsx)("li",{children:"In the future, we will add additional grants for free production usage (including commercial ones). However, at least for now, we want to keep the ability to decide that on a case-by-case basis."})]})]}),(0,L.jsxs)("span",{className:P.grayText,children:["What is ",(0,L.jsx)("b",{children:"not"})," our goal?",(0,L.jsxs)("ul",{children:[(0,L.jsx)("li",{children:"We do not want to vendor-lock or provide predatory per-seat/per-core/per-instance pricing. Exact conditions will be discussed case-by-case, but you can expect terms you are comfortable with and that do not threaten your business model."}),(0,L.jsx)("li",{children:"We do not want to block use cases already achievable with existing open-source tooling. You can expect that in most cases like that we will allow free production and commercial use."})]})]})]})})]})}function G(){return(0,L.jsx)("div",{className:"container margin-bottom--lg",children:(0,L.jsx)("div",{className:"card container",children:(0,L.jsxs)("div",{className:"row",style:{justifyContent:"center"},children:[(0,L.jsx)(w,{width:220,className:"margin--lg",style:{alignSelf:"center"}}),(0,L.jsxs)("div",{className:"col",children:[(0,L.jsx)("div",{className:"card__header margin-top--md",children:(0,L.jsxs)(i.A,{as:"h2",children:[(0,L.jsx)("span",{className:"text--primary",children:"Contact"})," us"]})}),(0,L.jsx)("div",{className:"card__body",children:(0,L.jsxs)("p",{className:(0,r.A)(P.grayText,"margin-bottom--md"),children:["LiveCompositor is developed by Software Mansion - a software company that is specialized in building tools for developers. At Software Mansion, we work on multiple multimedia projects, like Membrane Framework, Elixir WebRTC, FishJam, and more. We also work on custom solutions for clients. Email us at"," ",(0,L.jsx)(a.A,{to:"mailto:projects@swmansion.com",children:"projects@swmansion.com"})," or contact us via ",(0,L.jsx)(a.A,{to:"https://swmansion.com/contact",children:"this form"}),"."]})})]})]})})})}function Q(){return(0,L.jsxs)(n.A,{children:[(0,L.jsx)(q,{}),(0,L.jsx)("div",{className:P.sectionSeparator}),(0,L.jsx)(R,{}),(0,L.jsx)("div",{className:P.sectionSeparator}),(0,L.jsx)(V,{}),(0,L.jsx)("div",{className:P.sectionSeparator}),(0,L.jsx)(H,{}),(0,L.jsx)("div",{className:P.sectionSeparator}),(0,L.jsx)(O,{}),(0,L.jsx)("div",{className:P.sectionSeparator}),(0,L.jsx)(D,{}),(0,L.jsx)("div",{className:P.sectionSeparator}),(0,L.jsx)(U,{}),(0,L.jsx)("div",{className:P.sectionSeparator}),(0,L.jsx)(G,{})]})}}}]); \ No newline at end of file diff --git a/assets/js/1df93b7f.adc62ed0.js b/assets/js/1df93b7f.adc62ed0.js new file mode 100644 index 000000000..139b7380c --- /dev/null +++ b/assets/js/1df93b7f.adc62ed0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcompositor_live=self.webpackChunkcompositor_live||[]).push([[4583],{66343:(e,t,s)=>{s.r(t),s.d(t,{default:()=>X});var a=s(28774),n=s(51107),i=s(79201),r=s(11470),l=s(19365),o=s(20053),c=s(1612),d=s(27008),m=s(37609),h=s(9826),x=s(59644),v=s(95293);const u=s.p+"assets/images/broadcasting-cabc3722a5713ef1644e157af4fe6de4.webp",g=s.p+"assets/images/how_it_works-a4f9e7086f2a401b563e48181871b6a8.webp";var p=s(96540);function j(){return j=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:s,...a}=e;return p.createElement("svg",j({xmlns:"http://www.w3.org/2000/svg",width:500,height:552.326,viewBox:"0 0 85.44 94.69","aria-labelledby":s},a),t?p.createElement("title",{id:s},t):null,p.createElement("path",{d:"M37.28 1.44 5.42 19.73c-1.65.95-3.02 2.31-3.97 3.95C.5 25.32 0 27.17 0 29.07v36.56c0 1.89.5 3.75 1.46 5.39.95 1.64 2.32 3 3.97 3.95l31.86 18.28c1.65.95 3.52 1.45 5.43 1.45s3.78-.5 5.43-1.45l31.86-18.28c1.65-.95 3.02-2.31 3.97-3.95.95-1.64 1.46-3.5 1.46-5.39V29.07c0-1.89-.5-3.75-1.46-5.39-.95-1.64-2.32-3-3.97-3.95L48.14 1.44C46.49.49 44.62 0 42.71 0s-3.78.5-5.43 1.44Z",style:{fill:"#87cce8"}}),p.createElement("path",{d:"M57.51 21.35a20.45 20.45 0 0 0-15.07-2.2c-5.12 1.24-9.56 4.4-12.37 8.82-.88 1.34-11.94 20.26-11.94 20.26-.11.19-.18.39-.22.61-.03.22-.02.43.04.65.06.21.15.41.28.58.13.17.3.32.49.43.19.11.4.19.61.22.22.03.44.02.65-.04.21-.05.41-.15.59-.28.17-.13.32-.3.43-.49l8.32-14.11c.7.69 1.55 1.22 2.49 1.54L15.23 65.19c-.22.38-.29.83-.18 1.25a1.648 1.648 0 0 0 1.59 1.24 1.698 1.698 0 0 0 1.46-.82l17.01-28.6 1.11.25 1.78.4L25.82 59.5c-.22.38-.28.83-.17 1.25.11.42.39.79.77 1.01.25.15.54.23.83.23.29 0 .58-.07.84-.21.26-.14.47-.35.62-.6l12.63-21.37c.93.3 1.85.66 2.74 1.08l-8.53 14.25a1.647 1.647 0 0 0 .63 2.2c.37.22.81.28 1.23.18.42-.1.78-.35 1.02-.71l8.49-14.19c.78.56 1.52 1.17 2.22 1.82L36.2 66.3c-.12.19-.21.4-.25.62a1.651 1.651 0 0 0 .3 1.27c.13.18.3.33.5.45.19.11.41.19.63.21.22.03.45.01.67-.05.22-.06.42-.17.59-.31.18-.14.32-.32.42-.52l12.49-21.09 1.19 1.3.85.95-16.98 28.55c-.12.19-.21.4-.25.62a1.651 1.651 0 0 0 .3 1.27c.13.18.3.33.5.45.19.11.41.19.63.22.22.03.45.01.67-.05.22-.06.42-.17.59-.31.18-.14.32-.32.42-.52l16.56-27.85c.72.62 1.56 1.07 2.48 1.33l-8.4 14.28c-.12.19-.19.4-.23.61-.03.22-.02.44.03.65.05.21.15.41.28.59.13.18.3.32.49.44.19.11.4.18.62.21.22.03.44.02.66-.04.21-.06.41-.15.59-.29.18-.13.32-.3.43-.49l11.73-19.89a20.075 20.075 0 0 0 2.11-15.28 20.192 20.192 0 0 0-9.36-12.3Zm4.62 25.43-.57.97c-.81 1.3-1.36 1.74-1.92 1.76-.95.03-2.76-1.78-4.35-3.55-2.06-2.31-4.63-5.18-8.07-7.18-3.44-1.99-7.22-2.84-10.25-3.52-2.33-.51-4.82-1.1-5.27-1.94-.31-.57-.08-1.47.93-3.15 1.1-1.93 2.56-3.62 4.32-4.98 1.75-1.36 3.76-2.37 5.91-2.96 2.15-.59 4.39-.76 6.6-.49s4.34.97 6.28 2.06 3.64 2.55 5.01 4.29c1.37 1.74 2.38 3.74 2.98 5.87.6 2.13.76 4.36.49 6.55-.27 2.2-.97 4.32-2.07 6.24l-.02.03Zm-9.08-15.81c-.54.12-1.1.09-1.61-.11-.51-.19-.96-.53-1.28-.98-.32-.44-.5-.97-.52-1.52-.02-.55.13-1.09.42-1.55.29-.46.71-.83 1.21-1.06.5-.23 1.06-.3 1.6-.21s1.05.34 1.45.71.68.86.81 1.39c.08.35.1.72.04 1.08-.06.36-.19.7-.38 1.01-.19.31-.45.58-.74.79-.3.21-.63.36-.99.45Zm-7.77.73c-.42.1-.87.06-1.27-.09-.41-.15-.76-.42-1.01-.77-.25-.35-.4-.77-.41-1.2-.02-.43.1-.86.33-1.23s.56-.66.95-.84c.39-.18.83-.24 1.26-.18.43.07.83.26 1.15.55s.55.67.65 1.09c.07.28.08.58.04.86-.05.29-.15.56-.3.81s-.36.46-.6.63c-.24.17-.51.29-.8.35v.02Zm14.6 9.33c-.44.1-.9.07-1.32-.09-.42-.16-.79-.44-1.05-.8-.26-.36-.41-.8-.42-1.24-.01-.45.11-.89.34-1.27.24-.38.58-.68.99-.86.41-.18.87-.24 1.31-.17a2.27 2.27 0 0 1 1.84 1.72c.13.58.03 1.19-.29 1.7-.32.5-.83.86-1.41 1v.02Zm-.69-5.34c-.34.08-.7.06-1.03-.06-.33-.12-.62-.33-.82-.62-.21-.28-.33-.62-.34-.97-.01-.35.08-.69.26-.99.18-.3.45-.53.77-.68a1.785 1.785 0 0 1 1.95.31c.26.24.44.55.52.88.1.45.02.92-.22 1.31s-.63.67-1.08.78v.02Zm-4 1.76c-.25.06-.51.04-.75-.06a1.298 1.298 0 0 1-.84-1.17c0-.26.06-.51.2-.72.14-.22.33-.39.57-.49.23-.11.49-.14.75-.1.25.04.49.16.68.33.19.17.32.4.38.65.04.17.05.34.02.51-.03.17-.09.33-.18.48-.09.15-.21.27-.35.37s-.3.17-.47.21Zm-14.66-8.79c-.25.06-.51.04-.75-.06-.24-.09-.45-.25-.59-.46-.15-.21-.23-.45-.24-.71 0-.25.06-.51.2-.72.14-.22.33-.39.57-.49.23-.11.49-.14.75-.1s.49.15.68.33c.19.17.32.4.38.64.08.33.01.69-.17.98-.18.29-.48.5-.81.57v.03Z",style:{fill:"#001a72"}}))},y=s.p+"assets/images/streaming-e634eaea0df8af2affa0adc8d26ca646.webp";var b,w;function N(){return N=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:s,...a}=e;return p.createElement("svg",N({width:229,height:116,viewBox:"0 0 229 116",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":s},a),t?p.createElement("title",{id:s},t):null,b||(b=p.createElement("g",{clipPath:"url(#a)"},p.createElement("path",{d:"M26.8 1.7h200.1v87.5l-25 25.1H1.7l.1-87.6 25-25Z",fill:"#fff"}),p.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M26.179.2H228.4v89.62l-25.877 25.98H.198l.103-89.722L26.179.2ZM3.299 27.322l22.001-22v83.257L3.204 110.674 3.3 27.322ZM5.321 112.8h195.956l22.012-22.1H27.421l-22.1 22.1ZM225.4 3.2v84.5H28.3V3.2h197.1Z",fill:"#001A72"}),p.createElement("path",{d:"M63.7 36.6c0 3-2 5.6-6.8 5.6-2.1 0-3.8-.5-5.3-1.1v-4.2c1.6.8 3.5 1.3 5.2 1.3 1.6 0 2.4-.5 2.4-1.4 0-2.8-7.6-1.9-7.6-7.6 0-3.5 2.8-5.6 6.7-5.6 1.6 0 3.1.4 4.7 1.3v4.3c-2.1-1.3-3.6-1.7-4.8-1.7-1.4 0-2.2.5-2.2 1.4-.1 2.7 7.7 1.7 7.7 7.7ZM67.5 32.9c0-5.1 4.2-9.3 9.3-9.3 5.1 0 9.3 4.2 9.3 9.3 0 5.1-4.2 9.3-9.3 9.3-5.1 0-9.3-4.2-9.3-9.3Zm14 0c0-2.8-2.1-4.9-4.7-4.9S72 30.1 72 32.9c0 2.8 2.1 4.9 4.7 4.9s4.8-2.1 4.8-4.9ZM96.5 22.5V24h5.9l-2 4.2h-3.8v13.6h-4.3V28.2h-3V24h3v-1.7c0-5.4 2.8-8.1 7.2-8.1 1.1 0 2.1.2 3 .4v4.2c-.8-.3-1.7-.4-2.6-.4-2.5-.1-3.4 1.5-3.4 4.1ZM111.3 28.2v7.1c0 1.9 1.1 2.7 2.8 2.7 1.1 0 2.2-.3 3.1-.9v4.3c-1.2.5-2.3.8-3.9.8-3.9 0-6.3-2.1-6.3-6.4v-7.6h-2.6V24h2.6v-4.5l4.3-1.1V24h5.9v4.2h-5.9ZM148.4 24l-5.7 17.8h-4.3l-3.9-12.2-4 12.2H126L120.3 24h4.9l3.2 11.9 3.8-11.9h4.3l3.8 11.9 3.2-11.9h4.9ZM150.6 32.9c0-5.1 3.7-9.3 8.8-9.3 2 0 3.6.6 4.8 1.6V24h4.3v17.8h-4.2v-1.4c-1.2 1.1-2.9 1.8-5 1.8-4.9 0-8.7-4.2-8.7-9.3Zm14 0c0-2.8-2.1-4.9-4.7-4.9s-4.7 2.1-4.7 4.9c0 2.8 2.1 4.9 4.7 4.9s4.7-2.1 4.7-4.9ZM174.6 24h4.2v2.5c1.3-2.4 3.7-2.8 5.8-2.8v5.1c-3-.8-5.7.9-5.7 4.7v8.3h-4.3V24ZM198.1 38c1.7 0 3.7-.3 5.7-1.1l-2.2 4.5c-1 .4-2.5.8-4.3.8-6.3 0-10.1-3.9-10.1-9.3 0-5.1 3.8-9.3 9.3-9.3 3.7 0 6.7 1.9 7.9 4.3v6.4h-12.6c.7 2.2 2.7 3.7 6.3 3.7Zm-6.3-7h9.3c-.6-2.1-2.4-3.4-4.7-3.4-2.2 0-3.9 1.4-4.6 3.4ZM76.5 56.8v11.7h-4.3v-11c0-1.9-1.4-3-2.8-3-1.5 0-2.8 1.1-2.8 3v11h-4.3v-11c0-1.9-1.4-3-2.8-3-1.5 0-2.8 1.1-2.8 3v11h-4.3V50.8h4.2v1.3c1.3-1.3 2.6-1.7 4.3-1.7 1.9 0 3.5.8 4.6 2.3 1.5-1.6 3.3-2.3 5.4-2.3 3 0 5.6 2.7 5.6 6.4ZM81 59.7c0-5.1 3.7-9.3 8.8-9.3 2 0 3.6.6 4.8 1.6v-1.2H99v17.8h-4.2v-1.4c-1.2 1.1-2.9 1.8-5 1.8-5.1-.1-8.8-4.2-8.8-9.3Zm14 0c0-2.8-2.1-4.9-4.7-4.9s-4.7 2.1-4.7 4.9c0 2.8 2.1 4.9 4.7 4.9s4.7-2.1 4.7-4.9ZM104.8 50.8h4.2v1.3c1.3-1.3 3-1.7 4.7-1.7 3.7 0 6.7 2.8 6.7 6.6v11.5h-4.3V58c0-1.9-1.5-3.4-3.4-3.4s-3.4 1.5-3.4 3.4v10.6H105V50.8h-.2ZM137.6 63.4c0 3-2 5.6-6.8 5.6-2.1 0-3.8-.5-5.3-1.1v-4.2c1.6.8 3.5 1.3 5.2 1.3 1.6 0 2.4-.5 2.4-1.4 0-2.8-7.6-1.9-7.6-7.6 0-3.5 2.8-5.6 6.7-5.6 1.6 0 3.1.4 4.7 1.3V56c-2.1-1.3-3.6-1.7-4.8-1.7-1.4 0-2.2.5-2.2 1.4 0 2.6 7.7 1.6 7.7 7.7ZM147 50.8v17.8h-4.3V50.8h4.3ZM151.5 59.7c0-5.1 4.2-9.3 9.3-9.3 5.1 0 9.3 4.2 9.3 9.3 0 5.1-4.2 9.3-9.3 9.3-5.1 0-9.3-4.2-9.3-9.3Zm14 0c0-2.8-2.1-4.9-4.7-4.9s-4.7 2.1-4.7 4.9c0 2.8 2.1 4.9 4.7 4.9s4.7-2.1 4.7-4.9ZM174.5 50.8h4.2v1.3c1.3-1.3 3-1.7 4.7-1.7 3.7 0 6.7 2.8 6.7 6.6v11.5h-4.3V58c0-1.9-1.5-3.4-3.4-3.4S179 56.1 179 58v10.6h-4.3V50.8h-.2ZM198.6 63.7v.7H197v4.2h-.8v-4.2h-1.5v-.7h3.9ZM200.3 63.7l1.6 3.9 1.5-3.9h1v4.9h-.8V65l-1.5 3.6h-.7l-1.5-3.6v3.6h-.8v-4.9h1.2Z",fill:"#001A72"}))),w||(w=p.createElement("defs",null,p.createElement("clipPath",{id:"a"},p.createElement("path",{fill:"#fff",d:"M0 0h229v116H0z"})))))},_=s.p+"assets/images/videoconferencing-dfe816f05884badb437b9db884db2024.webp";function A(){return A=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:s,...a}=e;return p.createElement("svg",A({xmlns:"http://www.w3.org/2000/svg",width:768,height:768,viewBox:"0 0 768 768","aria-labelledby":s},a),t?p.createElement("title",{id:s},t):null,p.createElement("path",{"data-name":"Triangle 4",d:"m626.63 295.5-60.189-104.25h120.55z",style:{fill:"#0086e8",stroke:"#0086e8",fillRule:"evenodd",strokeLinejoin:"round"}}),p.createElement("path",{"data-name":"Triangle 5",d:"m626.63 87.001-60.189 104.25h120.55z",style:{fill:"#0093ff",stroke:"#0093ff",fillRule:"evenodd",strokeLinejoin:"round"}}),p.createElement("path",{"data-name":"Triangle 3",d:"M506.26 504 385.88 295.5l240.76-.002z",style:{fill:"#0076cc",stroke:"#0076cc",fillRule:"evenodd",strokeLinejoin:"round"}}),p.createElement("path",{"data-name":"Triangle 2",d:"M506.26 87 385.88 295.5l240.76-.002z",style:{fill:"#0066b0",stroke:"#0066b0",fillRule:"evenodd",strokeLinejoin:"round"}}),p.createElement("path",{"data-name":"Triangle 1",d:"M265.5 504 24.74 87h481.51z",style:{fill:"#005a9c",stroke:"#005a9c",fillRule:"evenodd",strokeLinejoin:"round"}}),p.createElement("path",{d:"m168.627 547.469-25.7 98.943-26.877-98.943H98.913l-28.221 99.279-25.534-99.279H28.864l32.757 117.253 16.966-.168 28.221-94.239 27.214 94.239h17.134l33.933-117.085h-16.462ZM285.879 615a46.371 46.371 0 0 0-5.459-22.594 39.572 39.572 0 0 0-15.539-15.706 46.213 46.213 0 0 0-23.181-5.711 47.756 47.756 0 0 0-23.77 5.8 40.093 40.093 0 0 0-16.043 16.547q-5.712 10.752-5.711 25.029t5.879 25.114a41.6 41.6 0 0 0 16.211 16.714 46.506 46.506 0 0 0 23.434 5.88q16.461 0 27.549-8.315a39.581 39.581 0 0 0 14.783-21.586h-16.463a24.459 24.459 0 0 1-9.323 12.347q-6.637 4.621-16.546 4.619a29.643 29.643 0 0 1-20.579-7.643q-8.484-7.643-9.323-21.25h73.578a90.2 90.2 0 0 0 .5-9.239Zm-15.79-3.192h-58.123q1.174-13.1 9.323-20.494a28.334 28.334 0 0 1 19.739-7.391 32.747 32.747 0 0 1 14.7 3.275 25.141 25.141 0 0 1 10.5 9.575 28.211 28.211 0 0 1 3.864 15.035Zm51.234-22.174v-49.388h-15.286v124.308h15.286v-16.966a35.4 35.4 0 0 0 13.523 13.27 40.944 40.944 0 0 0 20.914 5.208 41.878 41.878 0 0 0 37.965-23.014 52.85 52.85 0 0 0 5.711-24.862q0-14.111-5.711-24.777a41.656 41.656 0 0 0-15.625-16.547 42.963 42.963 0 0 0-22.342-5.879 40.769 40.769 0 0 0-20.662 5.207 36.153 36.153 0 0 0-13.775 13.439Zm62.491 28.557a38.312 38.312 0 0 1-4.2 18.395 29.538 29.538 0 0 1-11.339 11.927 30.881 30.881 0 0 1-15.707 4.115 30.554 30.554 0 0 1-15.538-4.115 30.081 30.081 0 0 1-11.423-11.927 40.557 40.557 0 0 1 0-36.285 30.1 30.1 0 0 1 11.423-11.927 30.574 30.574 0 0 1 15.538-4.115 31.392 31.392 0 0 1 15.707 4.031 29.1 29.1 0 0 1 11.339 11.759 37.449 37.449 0 0 1 4.2 18.142ZM526.6 581.4a52.873 52.873 0 0 0-20.914-26.038q-14.363-9.236-33.008-9.239a59.1 59.1 0 0 0-29.734 7.643 55.966 55.966 0 0 0-21.25 21.334 64.565 64.565 0 0 0 0 61.567 56.107 56.107 0 0 0 21.25 21.25 59.068 59.068 0 0 0 29.734 7.643 56.956 56.956 0 0 0 28.053-6.971 56.039 56.039 0 0 0 20.326-18.983 58.146 58.146 0 0 0 9.071-26.457v-11.757h-62.995v12.431h46.7Q511.982 631.3 500.9 641.54t-28.221 10.247a43.637 43.637 0 0 1-22.091-5.627 39.867 39.867 0 0 1-15.454-16.043q-5.629-10.413-5.627-24.189t5.627-24.274a39.775 39.775 0 0 1 15.454-16.127 43.657 43.657 0 0 1 22.091-5.627 40.519 40.519 0 0 1 21.5 5.627 36.439 36.439 0 0 1 14.11 15.873H526.6Zm101.967.336q0-15.119-10.331-24.694t-30.153-9.575h-37.8v117.087h15.287v-48.883h22.51q20.493 0 30.489-9.659t10-24.274Zm-40.484 21.334h-22.51v-43h22.51q24.858 0 24.861 21.67 0 10.248-6.047 15.79t-18.814 5.544Zm59.129-55.6v73.913q0 14.615 5.8 24.61a36.383 36.383 0 0 0 15.79 14.866 54.05 54.05 0 0 0 44.852 0 36.913 36.913 0 0 0 15.875-14.866Q735.4 636 735.4 621.382v-73.913h-15.283v74.081q0 15.623-7.644 23.182t-21.082 7.559q-13.606 0-21.25-7.559T662.5 621.55v-74.081h-15.289Z",style:{fill:"#eee",fillRule:"evenodd"}}))};function k(){return k=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:s,...a}=e;return p.createElement("svg",k({xmlns:"http://www.w3.org/2000/svg",width:768,height:768,viewBox:"0 0 768 768","aria-labelledby":s},a),t?p.createElement("title",{id:s},t):null,p.createElement("path",{"data-name":"Triangle 4",d:"m626.63 295.5-60.189-104.25h120.55z",style:{fill:"#0086e8",stroke:"#0086e8",fillRule:"evenodd",strokeLinejoin:"round"}}),p.createElement("path",{"data-name":"Triangle 5",d:"m626.63 87.001-60.189 104.25h120.55z",style:{fill:"#0093ff",stroke:"#0093ff",fillRule:"evenodd",strokeLinejoin:"round"}}),p.createElement("path",{"data-name":"Triangle 3",d:"M506.26 504 385.88 295.5l240.76-.002z",style:{fill:"#0076cc",stroke:"#0076cc",fillRule:"evenodd",strokeLinejoin:"round"}}),p.createElement("path",{"data-name":"Triangle 2",d:"M506.26 87 385.88 295.5l240.76-.002z",style:{fill:"#0066b0",stroke:"#0066b0",fillRule:"evenodd",strokeLinejoin:"round"}}),p.createElement("path",{"data-name":"Triangle 1",d:"M265.5 504 24.74 87h481.51z",style:{fill:"#005a9c",stroke:"#005a9c",fillRule:"evenodd",strokeLinejoin:"round"}}),p.createElement("path",{d:"m168.627 547.469-25.7 98.943-26.877-98.943H98.913l-28.221 99.279-25.534-99.279H28.864l32.757 117.253 16.966-.168 28.221-94.239 27.214 94.239h17.134l33.933-117.085h-16.462ZM285.879 615a46.371 46.371 0 0 0-5.459-22.594 39.572 39.572 0 0 0-15.539-15.706 46.213 46.213 0 0 0-23.181-5.711 47.756 47.756 0 0 0-23.77 5.8 40.093 40.093 0 0 0-16.043 16.547q-5.712 10.752-5.711 25.029t5.879 25.114a41.6 41.6 0 0 0 16.211 16.714 46.506 46.506 0 0 0 23.434 5.88q16.461 0 27.549-8.315a39.581 39.581 0 0 0 14.783-21.586h-16.463a24.459 24.459 0 0 1-9.323 12.347q-6.637 4.621-16.546 4.619a29.643 29.643 0 0 1-20.579-7.643q-8.484-7.643-9.323-21.25h73.578a90.2 90.2 0 0 0 .5-9.239Zm-15.79-3.192h-58.123q1.174-13.1 9.323-20.494a28.334 28.334 0 0 1 19.739-7.391 32.747 32.747 0 0 1 14.7 3.275 25.141 25.141 0 0 1 10.5 9.575 28.211 28.211 0 0 1 3.864 15.035Zm51.234-22.174v-49.388h-15.286v124.308h15.286v-16.966a35.4 35.4 0 0 0 13.523 13.27 40.944 40.944 0 0 0 20.914 5.208 41.878 41.878 0 0 0 37.965-23.014 52.85 52.85 0 0 0 5.711-24.862q0-14.111-5.711-24.777a41.656 41.656 0 0 0-15.625-16.547 42.963 42.963 0 0 0-22.342-5.879 40.769 40.769 0 0 0-20.662 5.207 36.153 36.153 0 0 0-13.775 13.439Zm62.491 28.557a38.312 38.312 0 0 1-4.2 18.395 29.538 29.538 0 0 1-11.339 11.927 30.881 30.881 0 0 1-15.707 4.115 30.554 30.554 0 0 1-15.538-4.115 30.081 30.081 0 0 1-11.423-11.927 40.557 40.557 0 0 1 0-36.285 30.1 30.1 0 0 1 11.423-11.927 30.574 30.574 0 0 1 15.538-4.115 31.392 31.392 0 0 1 15.707 4.031 29.1 29.1 0 0 1 11.339 11.759 37.449 37.449 0 0 1 4.2 18.142ZM526.6 581.4a52.873 52.873 0 0 0-20.914-26.038q-14.363-9.236-33.008-9.239a59.1 59.1 0 0 0-29.734 7.643 55.966 55.966 0 0 0-21.25 21.334 64.565 64.565 0 0 0 0 61.567 56.107 56.107 0 0 0 21.25 21.25 59.068 59.068 0 0 0 29.734 7.643 56.956 56.956 0 0 0 28.053-6.971 56.039 56.039 0 0 0 20.326-18.983 58.146 58.146 0 0 0 9.071-26.457v-11.757h-62.995v12.431h46.7Q511.982 631.3 500.9 641.54t-28.221 10.247a43.637 43.637 0 0 1-22.091-5.627 39.867 39.867 0 0 1-15.454-16.043q-5.629-10.413-5.627-24.189t5.627-24.274a39.775 39.775 0 0 1 15.454-16.127 43.657 43.657 0 0 1 22.091-5.627 40.519 40.519 0 0 1 21.5 5.627 36.439 36.439 0 0 1 14.11 15.873H526.6Zm101.967.336q0-15.119-10.331-24.694t-30.153-9.575h-37.8v117.087h15.287v-48.883h22.51q20.493 0 30.489-9.659t10-24.274Zm-40.484 21.334h-22.51v-43h22.51q24.858 0 24.861 21.67 0 10.248-6.047 15.79t-18.814 5.544Zm59.129-55.6v73.913q0 14.615 5.8 24.61a36.383 36.383 0 0 0 15.79 14.866 54.05 54.05 0 0 0 44.852 0 36.913 36.913 0 0 0 15.875-14.866Q735.4 636 735.4 621.382v-73.913h-15.283v74.081q0 15.623-7.644 23.182t-21.082 7.559q-13.606 0-21.25-7.559T662.5 621.55v-74.081h-15.289Z",style:{fillRule:"evenodd"}}))};var T=s(10383),E=s(8242),L=s.n(E),V=s(21432),C=s(74848);function R(){return(0,C.jsx)(V.A,{language:"typescript",children:'{\n "type": "view",\n "children": [\n {\n "type": "shader",\n "shader_id": "replace_green_screen",\n "resolution": { "width": 1920, "height": 1080 },\n "children": [\n { "type": "input_stream", "input_id": "tv" },\n { "type": "image", "image_id": "background" }\n ]\n },\n {\n "type": "rescaler",\n "width": 640, "height": 360,\n "top": 20, "left": 20,\n "child": { \n "type": "input_stream", "input_id": "bunny"\n }\n },\n {\n "type": "view",\n "height": 120,\n "left": 0, "bottom": 0, \n "background_color_rgba": "#B3B3B3FF",\n "children": [\n { "type": "view" },\n {\n "type": "text", \n "text": "LiveCompositor \ud83d\ude03\ud83d\ude0d",\n "font_size": 100,\n "weight": "bold",\n "color_rgba": "#000000FF",\n },\n { "type": "view" }\n ]\n }\n ]\n}'})}const P='import {\n InputStream,\n Image,\n Rescaler,\n Shader,\n Text,\n View,\n} from "live-compositor"\n\nfunction Example() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n LiveCompositor \ud83d\ude03\ud83d\ude0d\n \n \n \n \n );\n}\n';function q(){return(0,C.jsx)(V.A,{language:"tsx",children:P})}const I={icon:"icon_p5U1",card:"card_M5pr",heroText:"heroText_ryRM",heroVideo:"heroVideo_l9rg",sectionSeparator:"sectionSeparator_HVke",firstSection:"firstSection_wDwr",mainSubheading:"mainSubheading_HtER",grayText:"grayText_CTeF",featureIcon:"featureIcon_qaBM",smallScreenFlexButton:"smallScreenFlexButton_j9_q",hoverPrimary:"hoverPrimary_gz6K",hoverSecondary:"hoverSecondary_mUBE",sceneExample:"sceneExample_MxmD"};function z(){return(0,C.jsx)("div",{className:(0,o.A)("container",I.firstSection),children:(0,C.jsxs)("div",{className:"row",children:[(0,C.jsx)("div",{className:I.heroText,children:(0,C.jsxs)("div",{className:"container",children:[(0,C.jsxs)(n.A,{as:"h1",children:[(0,C.jsx)("span",{className:"text--primary",children:"Mix video and audio "}),(0,C.jsx)("div",{className:I.typewriter,children:(0,C.jsx)(L(),{options:{strings:["in real-time.","using code.","with low latency."],autoStart:!0,loop:!0,deleteSpeed:50,delay:80}})})]}),(0,C.jsx)("p",{className:I.mainSubheading,children:"Media server for real-time, low latency, programmable video and audio mixing."}),(0,C.jsxs)("div",{className:"row",children:[(0,C.jsx)(a.A,{className:(0,o.A)("button button--primary button--lg col col-6 margin--sm",I.hoverPrimary),to:"/docs/intro",children:(0,C.jsxs)(T.Vx.Provider,{value:{style:{verticalAlign:"middle"}},children:[(0,C.jsx)(d.vd0,{style:{marginRight:3}}),"Docs"]})}),(0,C.jsx)(a.A,{className:(0,o.A)("button button--secondary button--outline button--lg col col-6 margin--sm",I.hoverSecondary),to:"https://github.com/software-mansion/live-compositor",children:(0,C.jsxs)(T.Vx.Provider,{value:{style:{verticalAlign:"middle"}},children:[(0,C.jsx)(d.hL4,{style:{marginRight:5}}),"View on GitHub"]})})]})]})}),(0,C.jsx)("div",{className:I.heroVideo,children:(0,C.jsx)("div",{style:{borderRadius:"15px",overflow:"hidden",boxShadow:"0px 0px 20px 1px #4332a6"},children:(0,C.jsx)("video",{loop:!0,autoPlay:!0,muted:!0,src:"/video/showcase.mp4",poster:"/img/showcase_poster.webp",style:{width:"100%",display:"block"}})})})]})})}function H(){return(0,C.jsxs)("div",{className:"container margin-top--md",children:[(0,C.jsx)(n.A,{as:"h2",className:"margin-bottom--md text--center text--primary",children:"How it works?"}),(0,C.jsxs)("p",{className:(0,o.A)("text--center",I.grayText),children:["1. Send inputs as RTP streams or MP4 files",(0,C.jsx)("br",{}),"2. Configure mixing with HTTP requests",(0,C.jsx)("br",{}),"3. Get the mixed streams via RTP"]}),(0,C.jsxs)("div",{className:"flex flex-row flex-wrap",children:[(0,C.jsx)("div",{className:"flex-1 mx-8 mt-20 min-w-[400px]",children:(0,C.jsx)("img",{src:g,alt:"Composing"})}),(0,C.jsx)("div",{className:"flex-1",children:(0,C.jsxs)(r.A,{children:[(0,C.jsx)(l.A,{value:"react",label:"React",default:!0,children:(0,C.jsx)(q,{})}),(0,C.jsx)(l.A,{value:"json",label:"JSON",children:(0,C.jsx)(R,{})})]})})]})]})}function B(){return(0,C.jsxs)("div",{className:"container margin-top--md",children:[(0,C.jsx)(n.A,{as:"h2",className:"margin-bottom--md text--center text--primary",children:"Use cases"}),(0,C.jsx)("p",{className:(0,o.A)("text--center",I.grayText),children:"Use LiveCompositor for video conferencing, live-streaming, broadcasting, and more."}),(0,C.jsxs)("div",{className:"row",children:[(0,C.jsx)(O,{title:"Video conferencing",subtitle:"Stream or record video conferences",img:_}),(0,C.jsx)(O,{title:"Broadcasting",subtitle:"Compose broadcasts",img:u}),(0,C.jsx)(O,{title:"Live-streaming",subtitle:"Create awesome live-streams",img:y})]})]})}function O(e){return(0,C.jsxs)("div",{className:(0,o.A)("card",I.card,I.hoverPrimary),children:[(0,C.jsx)("div",{className:"text--primary",children:(0,C.jsx)(n.A,{as:"h3",style:{textAlign:"center",margin:0},children:e.title})}),(0,C.jsx)("p",{className:(0,o.A)("text--center",I.grayText),style:{margin:0},children:e.subtitle}),(0,C.jsx)("div",{className:"card__body",children:(0,C.jsx)("img",{src:e.img,alt:e.title})})]})}function F(){return(0,C.jsxs)("div",{className:"container margin-top--md",children:[(0,C.jsx)(n.A,{as:"h2",className:"margin-bottom--md text--center text--primary",children:"Vision"}),(0,C.jsx)("p",{className:(0,o.A)("text--center",I.grayText),children:"Make mixing live streams as simple as building a website."}),(0,C.jsxs)("div",{className:"row",children:[(0,C.jsx)(W,{title:"Simple declarative API",icon:d.FSj,children:(0,C.jsx)("p",{className:"padding--md",children:"Mixing is specified using simple component tree, easy to pick up for anyone familiar with web development."})}),(0,C.jsx)(W,{title:"Easy integration",icon:d.AnD,children:(0,C.jsx)("p",{className:"padding--md",children:"API is language agnostic. You can leverage tech stack of your choice and easily integrate it with your own solutions."})}),(0,C.jsx)(W,{title:"Real-time and low latency",icon:m.W5P,children:(0,C.jsx)("p",{className:"padding--md",children:"LiveCompositor targets real-time use cases, with a significant focus on situations where latency is critical."})})]})]})}function W(e){const t=e.icon;return(0,C.jsxs)("div",{className:(0,o.A)("card",I.card,I.hoverPrimary),children:[(0,C.jsx)("div",{style:{display:"flex",justifyContent:"center"},children:(0,C.jsx)(t,{className:I.icon})}),(0,C.jsx)("div",{className:"card__header",children:(0,C.jsx)(n.A,{as:"h3",style:{textAlign:"center"},children:e.title})}),(0,C.jsx)("div",{className:"card__body",children:e.children})]})}function D(e){const t=(0,C.jsxs)("div",{className:"col",children:[(0,C.jsx)(n.A,{as:"h3",className:"margin-top--sm",children:e.text}),(0,C.jsx)("p",{children:e.secondaryText})]});return(0,C.jsxs)("div",{className:"row margin-right--lg margin-left--lg",style:{alignItems:"center"},children:[e.image,(0,C.jsxs)("div",{className:"col",children:[t,e.children]})]})}function U(){const{colorMode:e}=(0,v.G)(),t="dark"===e?(0,C.jsx)(Z,{className:I.featureIcon,width:80,height:80}):(0,C.jsx)(M,{className:I.featureIcon,width:80,height:80});return(0,C.jsxs)("div",{className:"container margin-top--lg margin-bottom--md",children:[(0,C.jsx)(n.A,{as:"h2",className:"margin-bottom--md text--center text--primary",children:"Capabilities"}),(0,C.jsx)("p",{className:(0,o.A)("text--center",I.grayText),children:"Simple, powerful, fast. Pick three."}),(0,C.jsx)(D,{text:"Batteries included",secondaryText:"Process streams, render text, images, GIFs or websites, and combine them into output streams using high-level components.",image:(0,C.jsx)(m.Dhs,{className:I.featureIcon,style:{fontSize:80}})}),(0,C.jsx)(D,{text:"Highly customizable",secondaryText:"Create custom effects with WGSL shaders and directly leverage GPU parallel processing capabilities.",image:(0,C.jsx)(d.wZu,{className:I.featureIcon,style:{fontSize:80}})}),(0,C.jsx)(D,{text:"Audio support",secondaryText:"Mix audio directly in LiveCompositor.",image:(0,C.jsx)(x.bXv,{className:I.featureIcon,style:{fontSize:80}})}),(0,C.jsx)(D,{text:"WebGPU and Rust",secondaryText:"Leverage Rust and WebGPU rendering for great performance.",image:t}),(0,C.jsx)(D,{text:"Animated transitions",secondaryText:"Change layouts on the fly with animated transitions.",image:(0,C.jsx)(m.Iff,{className:I.featureIcon,style:{fontSize:80}})}),(0,C.jsx)(D,{text:"Real-time processing",secondaryText:"Process live streams in real-time with low latency.",image:(0,C.jsx)(x.Md6,{className:I.featureIcon,style:{fontSize:80}})}),(0,C.jsx)(D,{text:"Offline processing",secondaryText:"Use LiveCompositor for non-real-time use cases with offline processing mode.",image:(0,C.jsx)(h.doL,{className:I.featureIcon,style:{fontSize:80}})})]})}function G(){return(0,C.jsxs)("div",{className:"row",style:{justifyContent:"center"},children:[(0,C.jsx)(c.vwk,{className:"margin--lg",style:{fontSize:150,alignSelf:"center"}}),(0,C.jsx)("div",{className:"col",children:(0,C.jsxs)("div",{className:"card",children:[(0,C.jsx)("div",{className:"card__header",children:(0,C.jsx)(n.A,{as:"h3",className:"margin-top--sm",children:"Standalone server"})}),(0,C.jsxs)("div",{className:"card__body container",children:[(0,C.jsx)("p",{children:"LiveCompositor can be deployed as a standalone server. Language-agnostic API allows you to seamlessly integrate it into your existing solutions. Dockerfiles and deployment section in docs are meant to make the deployment process as easy as possible."}),(0,C.jsxs)("div",{className:"row margin--sm",style:{justifyContent:"end"},children:[(0,C.jsx)(a.A,{className:(0,o.A)("button button--secondary button--outline button--lg margin--sm",I.hoverSecondary,I.smallScreenFlexButton),to:"/docs/deployment/overview",children:(0,C.jsxs)(T.Vx.Provider,{value:{style:{verticalAlign:"middle"}},children:[(0,C.jsx)(d.vd0,{style:{marginRight:5}}),"Docs"]})}),(0,C.jsx)(a.A,{className:(0,o.A)("button button--secondary button--outline button--lg margin--sm",I.hoverSecondary,I.smallScreenFlexButton),to:"https://github.com/software-mansion/live-compositor/tree/master/build_tools/docker",children:(0,C.jsxs)(T.Vx.Provider,{value:{style:{verticalAlign:"middle"}},children:[(0,C.jsx)(d.q_t,{style:{marginRight:5}}),"Dockerfiles"]})})]})]})]})})]})}function Q(){return(0,C.jsxs)("div",{className:"row",style:{justifyContent:"center"},children:[(0,C.jsx)(f,{width:150,height:150,className:"margin--lg",style:{alignSelf:"center"}}),(0,C.jsx)("div",{className:"col",children:(0,C.jsxs)("div",{className:"card",children:[(0,C.jsx)("div",{className:"card__header",children:(0,C.jsx)(n.A,{as:"h3",className:"margin-top--sm",children:"Membrane plugin"})}),(0,C.jsxs)("div",{className:"card__body container",children:[(0,C.jsx)("p",{children:"Membrane is a developer-friendly multimedia framework for Elixir. You can easily add video and audio composing functionality into your multimedia pipeline using Membrane LiveCompositor Plugin."}),(0,C.jsxs)("div",{className:"row margin--sm",style:{justifyContent:"end"},children:[(0,C.jsx)(a.A,{className:(0,o.A)("button button--secondary button--outline button--lg margin--sm",I.hoverSecondary,I.smallScreenFlexButton),to:"https://hexdocs.pm/membrane_live_compositor_plugin/0.9.0/Membrane.LiveCompositor.html",children:(0,C.jsxs)(T.Vx.Provider,{value:{style:{verticalAlign:"middle"}},children:[(0,C.jsx)(d.vd0,{style:{marginRight:5}}),"Docs"]})}),(0,C.jsx)(a.A,{className:(0,o.A)("button","button--secondary","button--outline","button--lg","margin--sm",I.hoverSecondary,I.smallScreenFlexButton),to:"https://github.com/membraneframework/membrane_live_compositor_plugin",children:(0,C.jsxs)(T.Vx.Provider,{value:{style:{verticalAlign:"middle"}},children:[(0,C.jsx)(d.hL4,{style:{marginRight:5}}),"Repository"]})})]})]})]})})]})}function Y(){return(0,C.jsxs)("div",{className:"container",children:[(0,C.jsx)(n.A,{as:"h2",className:"margin-bottom--md text--center text--primary",children:"Usage"}),(0,C.jsx)(G,{}),(0,C.jsx)("br",{}),(0,C.jsx)(Q,{})]})}function J(){return(0,C.jsxs)("div",{className:"container margin-top--lg margin-bottom--md",children:[(0,C.jsx)(n.A,{as:"h2",className:"margin-bottom--md text--center text--primary",children:"Licensing"}),(0,C.jsx)("div",{className:"card container",children:(0,C.jsxs)("div",{className:"card__body",children:[(0,C.jsxs)("p",{className:I.grayText,children:["LiveCompositor is licensed under"," ",(0,C.jsx)(a.A,{to:"https://github.com/software-mansion/live-compositor/blob/master/LICENSE",children:"Business Source License 1.1"})]}),(0,C.jsx)("p",{className:I.grayText,children:"Currently, allowed usage is limited to non-production use cases. If you are interested in the production usage contact us (see the section below)."}),(0,C.jsxs)("span",{className:I.grayText,children:["What is the goal of those limitations?",(0,C.jsxs)("ul",{children:[(0,C.jsx)("li",{children:"We want to have insight into where and how LiveCompositor is used."}),(0,C.jsx)("li",{children:"We want to block third parties from re-packaging and providing it as a SaaS."}),(0,C.jsx)("li",{children:"In the future, we will add additional grants for free production usage (including commercial ones). However, at least for now, we want to keep the ability to decide that on a case-by-case basis."})]})]}),(0,C.jsxs)("span",{className:I.grayText,children:["What is ",(0,C.jsx)("b",{children:"not"})," our goal?",(0,C.jsxs)("ul",{children:[(0,C.jsx)("li",{children:"We do not want to vendor-lock or provide predatory per-seat/per-core/per-instance pricing. Exact conditions will be discussed case-by-case, but you can expect terms you are comfortable with and that do not threaten your business model."}),(0,C.jsx)("li",{children:"We do not want to block use cases already achievable with existing open-source tooling. You can expect that in most cases like that we will allow free production and commercial use."})]})]})]})})]})}function K(){return(0,C.jsx)("div",{className:"container margin-bottom--lg",children:(0,C.jsx)("div",{className:"card container",children:(0,C.jsxs)("div",{className:"row",style:{justifyContent:"center"},children:[(0,C.jsx)(S,{width:220,className:"margin--lg",style:{alignSelf:"center"}}),(0,C.jsxs)("div",{className:"col",children:[(0,C.jsx)("div",{className:"card__header margin-top--md",children:(0,C.jsxs)(n.A,{as:"h2",children:[(0,C.jsx)("span",{className:"text--primary",children:"Contact"})," us"]})}),(0,C.jsx)("div",{className:"card__body",children:(0,C.jsxs)("p",{className:(0,o.A)(I.grayText,"margin-bottom--md"),children:["LiveCompositor is developed by Software Mansion - a software company that is specialized in building tools for developers. At Software Mansion, we work on multiple multimedia projects, like Membrane Framework, Elixir WebRTC, FishJam, and more. We also work on custom solutions for clients. Email us at"," ",(0,C.jsx)(a.A,{to:"mailto:projects@swmansion.com",children:"projects@swmansion.com"})," or contact us via ",(0,C.jsx)(a.A,{to:"https://swmansion.com/contact",children:"this form"}),"."]})})]})]})})})}function X(){return(0,C.jsxs)(i.A,{children:[(0,C.jsx)(z,{}),(0,C.jsx)("div",{className:I.sectionSeparator}),(0,C.jsx)(H,{}),(0,C.jsx)("div",{className:I.sectionSeparator}),(0,C.jsx)(B,{}),(0,C.jsx)("div",{className:I.sectionSeparator}),(0,C.jsx)(F,{}),(0,C.jsx)("div",{className:I.sectionSeparator}),(0,C.jsx)(U,{}),(0,C.jsx)("div",{className:I.sectionSeparator}),(0,C.jsx)(Y,{}),(0,C.jsx)("div",{className:I.sectionSeparator}),(0,C.jsx)(J,{}),(0,C.jsx)("div",{className:I.sectionSeparator}),(0,C.jsx)(K,{})]})}}}]); \ No newline at end of file diff --git a/assets/js/1ec835e1.5dc4ab0e.js b/assets/js/1ec835e1.5dc4ab0e.js deleted file mode 100644 index fc3ba8999..000000000 --- a/assets/js/1ec835e1.5dc4ab0e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcompositor_live=self.webpackChunkcompositor_live||[]).push([[6002],{77371:(n,e,t)=>{t.r(e),t.d(e,{assets:()=>_,contentTitle:()=>p,default:()=>m,frontMatter:()=>u,metadata:()=>h,toc:()=>f});var i=t(74848),r=t(28453),s=t(11470),a=t(19365);const o=t.p+"assets/images/view_transition_1-28a1c86c833294d036082d4b4bc7af46.webp",d=t.p+"assets/images/view_transition_2-c1afc516562434973e3e847009ccf801.webp",l=t.p+"assets/images/view_transition_3-c3bf0e98e0ac53e801aefe065717c771.webp",c=t.p+"assets/images/view_transition_4-6d54cf14f1afdc6654a50c29572a02d0.webp",u={},p="Transitions (View/Rescaler)",h={id:"guides/view-transition",title:"Transitions (View/Rescaler)",description:"This guide will show a few basic examples of animated transitions on View/Rescaler components.",source:"@site/pages/guides/view-transition.md",sourceDirName:"guides",slug:"/guides/view-transition",permalink:"/docs/guides/view-transition",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"sidebar",previous:{title:"Basic Layouts",permalink:"/docs/guides/basic-layouts"},next:{title:"Concepts",permalink:"/docs/concept/overview"}},_={},f=[{value:"Configure inputs and output",id:"configure-inputs-and-output",level:3},{value:"Transition that changes the width of an input stream",id:"transition-that-changes-the-width-of-an-input-stream",level:3},{value:"Transition on one of the sibling components",id:"transition-on-one-of-the-sibling-components",level:3},{value:"Transition between different modes",id:"transition-between-different-modes",level:3},{value:"Different interpolation functions",id:"different-interpolation-functions",level:3}];function g(n){const e={a:"a",code:"code",h1:"h1",h3:"h3",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.R)(),...n.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(e.h1,{id:"transitions-viewrescaler",children:"Transitions (View/Rescaler)"}),"\n",(0,i.jsxs)(e.p,{children:["This guide will show a few basic examples of animated transitions on ",(0,i.jsx)(e.code,{children:"View"}),"/",(0,i.jsx)(e.code,{children:"Rescaler"})," components."]}),"\n",(0,i.jsx)(e.h3,{id:"configure-inputs-and-output",children:"Configure inputs and output"}),"\n",(0,i.jsxs)(e.p,{children:['Start the compositor and configure 2 input streams and a single output stream as described in the "Simple scene"\nguide in the ',(0,i.jsx)(e.a,{href:"/docs/guides/quick-start#configure-inputs-and-output",children:'"Configure inputs and output"'})," section."]}),"\n",(0,i.jsxs)(e.h3,{id:"transition-that-changes-the-width-of-an-input-stream",children:["Transition that changes the ",(0,i.jsx)(e.code,{children:"width"})," of an input stream"]}),"\n",(0,i.jsxs)(s.A,{queryString:"lang",children:[(0,i.jsxs)(a.A,{value:"http",label:"HTTP",children:[(0,i.jsx)(e.p,{children:"Set initial scene for the transition:"}),(0,i.jsx)(e.pre,{children:(0,i.jsx)(e.code,{className:"language-http",children:'POST: /api/output/output_1/update\nContent-Type: application/json\n\n{\n "video": {\n "root": {\n "type": "view",\n "background_color_rgba": "#4d4d4dff",\n "children": [\n {\n "type": "rescaler",\n "id": "rescaler_1",\n // highlight-start\n "width": 480,\n // highlight-end\n "child": { "type": "input_stream", "input_id": "input_1" },\n }\n ]\n }\n }\n}\n'})}),(0,i.jsxs)(e.p,{children:["A few seconds latter update a scene with a different ",(0,i.jsx)(e.code,{children:"width"}),":"]}),(0,i.jsx)(e.pre,{children:(0,i.jsx)(e.code,{className:"language-http",children:'POST: /api/output/output_1/update\nContent-Type: application/json\n\n{\n "video": {\n "root": {\n "type": "view",\n "background_color_rgba": "#4d4d4dff",\n "children": [\n {\n "type": "rescaler",\n "id": "rescaler_1",\n // highlight-start\n "width": 1280,\n "transition": { "duration_ms": 2000 },\n // highlight-end\n "child": { "type": "input_stream", "input_id": "input_1" },\n }\n ]\n }\n }\n}\n'})})]}),(0,i.jsxs)(a.A,{value:"membrane",label:"Membrane Framework",children:[(0,i.jsxs)(e.p,{children:["Set initial scene for the transition and after few seconds update a component\nwith a different ",(0,i.jsx)(e.code,{children:"width"}),":"]}),(0,i.jsx)(e.pre,{children:(0,i.jsx)(e.code,{className:"language-elixir",children:'def handle_setup(ctx, state) do\n request = %LiveCompositor.Request.UpdateVideoOutput{\n output_id: "output_1",\n root: %{\n type: :view,\n background_color_rgba: "#4d4d4dff",\n children: [\n %{\n type: :rescaler,\n id: "rescaler_1",\n // highlight-start\n width: 480,\n // highlight-end\n child: %{ type: :input_stream, input_id: :input_1 },\n }\n ]\n }\n }\n Process.send_after(self(), :start_transition, 2000)\n {[notify_child: {:live_compositor, request}], state}\nend\n\ndef handle_info(:start_transition, _ctx, state)\n request = %LiveCompositor.Request.UpdateVideoOutput{\n output_id: "output_1",\n root: %{\n type: :view,\n background_color_rgba: "#4d4d4dff",\n children: [\n %{\n type: :rescaler,\n id: "rescaler_1",\n // highlight-start\n width: 1280,\n transition: %{ duration_ms: 2000 },\n // highlight-end\n child: %{ type: :input_stream, input_id: :input_1 },\n }\n ]\n }\n }\n {[notify_child: {:live_compositor, request}], state}\nend\n'})})]})]}),"\n",(0,i.jsxs)(e.p,{children:["In the first update request, you can see that the rescaler has a width of 480, and in the second one, it is changed\nto 1280 and ",(0,i.jsx)(e.code,{children:"transition.duration_ms: 2000"})," was added."]}),"\n",(0,i.jsxs)(e.p,{children:["The component must have the same ",(0,i.jsx)(e.code,{children:'"id"'})," in both the initial state and the update that starts the\ntransition, otherwise it will switch immediately to the new state without a transition."]}),"\n",(0,i.jsxs)("div",{style:{textAlign:"center"},children:[(0,i.jsx)("img",{src:o,style:{width:600}}),(0,i.jsx)(e.p,{children:"Output stream"})]}),"\n",(0,i.jsx)(e.h3,{id:"transition-on-one-of-the-sibling-components",children:"Transition on one of the sibling components"}),"\n",(0,i.jsx)(e.p,{children:"In the above scenario you saw how transition on a single component behaves, but let's see what happens with\ncomponents that are not a part of the transition, but their size and position still depend on other components."}),"\n",(0,i.jsxs)(e.p,{children:["Add a second input stream wrapped with ",(0,i.jsx)(e.code,{children:"Rescaler"}),", but without any transition options."]}),"\n",(0,i.jsxs)(s.A,{queryString:"lang",children:[(0,i.jsxs)(a.A,{value:"http",label:"HTTP",children:[(0,i.jsx)(e.pre,{children:(0,i.jsx)(e.code,{className:"language-http",children:'POST: /api/output/output_1/update\nContent-Type: application/json\n\n{\n "video": {\n "root": {\n "type": "view",\n "background_color_rgba": "#4d4d4dff",\n "children": [\n {\n "type": "rescaler",\n "id": "rescaler_1",\n // highlight-start\n "width": 480,\n // highlight-end\n "child": { "type": "input_stream", "input_id": "input_1" },\n },\n {\n "type": "rescaler",\n "child": { "type": "input_stream", "input_id": "input_2" },\n }\n ]\n }\n }\n}\n'})}),(0,i.jsxs)(e.p,{children:["Update a scene with a different ",(0,i.jsx)(e.code,{children:"width"}),":"]}),(0,i.jsx)(e.pre,{children:(0,i.jsx)(e.code,{className:"language-http",children:'POST: /api/output/output_1/update\nContent-Type: application/json\n\n{\n "video": {\n "root": {\n "type": "view",\n "background_color_rgba": "#4d4d4dff",\n "children": [\n {\n "type": "rescaler",\n "id": "rescaler_1",\n // highlight-start\n "width": 1280,\n "transition": { "duration_ms": 2000 },\n // highlight-end\n "child": { "type": "input_stream", "input_id": "input_1" },\n },\n {\n "type": "rescaler",\n "child": { "type": "input_stream", "input_id": "input_2" },\n }\n ]\n }\n }\n}\n'})})]}),(0,i.jsx)(a.A,{value:"membrane",label:"Membrane Framework",children:(0,i.jsx)(e.pre,{children:(0,i.jsx)(e.code,{className:"language-elixir",children:'def handle_setup(ctx, state) do\n request = %LiveCompositor.Request.UpdateVideoOutput{\n output_id: "output_1",\n root: %{\n type: :view,\n background_color_rgba: "#4d4d4dff",\n children: [\n %{\n type: :rescaler,\n id: "rescaler_1",\n // highlight-start\n width: 480,\n // highlight-end\n child: %{ type: :input_stream, input_id: :input_1 },\n },\n %{\n type: :rescaler,\n child: %{ type: :input_stream, input_id: :input_2 },\n }\n ]\n }\n }\n Process.send_after(self(), :start_transition, 2000)\n {[notify_child: {:live_compositor, request}], state}\nend\n\ndef handle_info(:start_transition, _ctx, state)\n request = %LiveCompositor.Request.UpdateVideoOutput{\n output_id: "output_1",\n root: %{\n type: :view,\n background_color_rgba: "#4d4d4dff",\n children: [\n %{\n type: :rescaler,\n id: "rescaler_1",\n // highlight-start\n width: 1280,\n transition: %{ duration_ms: 2000 },\n // highlight-end\n child: %{ type: :input_stream, input_id: :input_1 },\n },\n %{\n type: :rescaler,\n child: %{ type: :input_stream, input_id: :input_2 },\n }\n ]\n }\n }\n {[notify_child: {:live_compositor, request}], state}\nend\n'})})})]}),"\n",(0,i.jsxs)("div",{style:{textAlign:"center"},children:[(0,i.jsx)("img",{src:d,style:{width:600}}),(0,i.jsx)(e.p,{children:"Output stream"})]}),"\n",(0,i.jsx)(e.h3,{id:"transition-between-different-modes",children:"Transition between different modes"}),"\n",(0,i.jsx)(e.p,{children:"Currently, a state before the transition and after needs to use the same type of configuration. In particular:"}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"It is not possible to transition a component between static and absolute positioning."}),"\n",(0,i.jsxs)(e.li,{children:["It is not possible to transition a component between using ",(0,i.jsx)(e.code,{children:"top"})," and ",(0,i.jsx)(e.code,{children:"bottom"})," fields (the same for ",(0,i.jsx)(e.code,{children:"left"}),"/",(0,i.jsx)(e.code,{children:"right"}),")."]}),"\n",(0,i.jsxs)(e.li,{children:["It is not possible to transition a component with known ",(0,i.jsx)(e.code,{children:"width"}),"/",(0,i.jsx)(e.code,{children:"height"})," to a state with dynamic ",(0,i.jsx)(e.code,{children:"width"}),"/",(0,i.jsx)(e.code,{children:"height"})," based\non the parent layout."]}),"\n"]}),"\n",(0,i.jsxs)(e.p,{children:["Let's try the same example as in the first scenario with a single input, but instead, change the ",(0,i.jsx)(e.code,{children:"Rescaler"})," component to be absolutely positioned in the second update."]}),"\n",(0,i.jsxs)(s.A,{queryString:"lang",children:[(0,i.jsxs)(a.A,{value:"http",label:"HTTP",children:[(0,i.jsx)(e.pre,{children:(0,i.jsx)(e.code,{className:"language-http",children:'POST: /api/output/output_1/update\nContent-Type: application/json\n\n{\n "video": {\n "root": {\n "type": "view",\n "background_color_rgba": "#4d4d4dff",\n "children": [\n {\n "type": "rescaler",\n "id": "rescaler_1",\n // highlight-start\n "width": 480,\n // highlight-end\n "child": { "type": "input_stream", "input_id": "input_1" },\n }\n ]\n }\n }\n}\n'})}),(0,i.jsx)(e.pre,{children:(0,i.jsx)(e.code,{className:"language-http",children:'POST: /api/output/output_1/update\nContent-Type: application/json\n\n{\n "video": {\n "root": {\n "type": "view",\n "background_color_rgba": "#4d4d4dff",\n "children": [\n {\n "type": "rescaler",\n "id": "rescaler_1",\n // highlight-start\n "width": 1280,\n "top": 0,\n "left": 0,\n "transition": { "duration_ms": 2000 },\n // highlight-end\n "child": { "type": "input_stream", "input_id": "input_1" },\n }\n ]\n }\n }\n}\n'})})]}),(0,i.jsx)(a.A,{value:"membrane",label:"Membrane Framework",children:(0,i.jsx)(e.pre,{children:(0,i.jsx)(e.code,{className:"language-elixir",children:'def handle_setup(ctx, state) do\n request = %LiveCompositor.Request.UpdateVideoOutput{\n output_id: "output_1",\n root: %{\n type: :view,\n background_color_rgba: "#4d4d4dff",\n children: [\n %{\n type: :rescaler,\n id: "rescaler_1",\n // highlight-start\n width: 480,\n // highlight-end\n child: %{ type: :input_stream, input_id: :input_1 },\n }\n ]\n }\n }\n Process.send_after(self(), :start_transition, 2000)\n {[notify_child: {:live_compositor, request}], state}\nend\n\ndef handle_info(:start_transition, _ctx, state)\n request = %LiveCompositor.Request.UpdateVideoOutput{\n output_id: "output_1",\n root: %{\n type: :view,\n background_color_rgba: "#4d4d4dff",\n children: [\n %{\n type: :rescaler,\n id: "rescaler_1",\n // highlight-start\n width: 1280,\n top: 0,\n left: 0,\n transition: %{ duration_ms: 2000 },\n // highlight-end\n child: %{ type: :input_stream, input_id: :input_1 },\n }\n ]\n }\n }\n {[notify_child: {:live_compositor, request}], state}\nend\n'})})})]}),"\n",(0,i.jsxs)(e.p,{children:["As you can see on the resulting stream, the transition did not happen because the ",(0,i.jsx)(e.code,{children:"Rescaler"})," component\nin the initial scene was using static positioning and after the update it was positioned absolutely."]}),"\n",(0,i.jsxs)("div",{style:{textAlign:"center"},children:[(0,i.jsx)("img",{src:l,style:{width:600}}),(0,i.jsx)(e.p,{children:"Output stream"})]}),"\n",(0,i.jsx)(e.h3,{id:"different-interpolation-functions",children:"Different interpolation functions"}),"\n",(0,i.jsx)(e.p,{children:"All of the above examples use default linear interpolation, but there are also a few other\nmodes available."}),"\n",(0,i.jsxs)(s.A,{queryString:"lang",children:[(0,i.jsxs)(a.A,{value:"http",label:"HTTP",children:[(0,i.jsx)(e.pre,{children:(0,i.jsx)(e.code,{className:"language-http",children:'POST: /api/output/output_1/update\nContent-Type: application/json\n\n{\n "video": {\n "root": {\n "type": "view",\n "background_color_rgba": "#4d4d4dff",\n "children": [\n {\n "type": "rescaler",\n "id": "rescaler_1",\n "width": 320, "height": 180, "top": 0, "left": 0,\n "child": { "type": "input_stream", "input_id": "input_1" },\n },\n {\n "type": "rescaler",\n "id": "rescaler_2",\n "width": 320, "height": 180, "top": 0, "left": 320,\n "child": { "type": "input_stream", "input_id": "input_2" },\n },\n {\n "type": "rescaler",\n "id": "rescaler_3",\n "width": 320, "height": 180, "top": 0, "left": 640,\n "child": { "type": "input_stream", "input_id": "input_3" },\n },\n {\n "type": "rescaler",\n "id": "rescaler_4",\n "width": 320, "height": 180, "top": 0, "left": 960,\n "child": { "type": "input_stream", "input_id": "input_4" },\n },\n ]\n }\n }\n}\n'})}),(0,i.jsx)(e.pre,{children:(0,i.jsx)(e.code,{className:"language-http",children:'POST: /api/output/output_1/update\nContent-Type: application/json\n\n{\n "video": {\n "root": {\n "type": "view",\n "background_color_rgba": "#4d4d4dff",\n "children": [\n {\n "type": "rescaler",\n "id": "rescaler_1",\n "width": 320, "height": 180, "top": 540, "left": 0,\n "child": { "type": "input_stream", "input_id": "input_1" },\n "transition": { "duration_ms": 2000 },\n },\n {\n "type": "rescaler",\n "id": "rescaler_2",\n "width": 320, "height": 180, "top": 540, "left": 320,\n "child": { "type": "input_stream", "input_id": "input_2" },\n "transition": {\n "duration_ms": 2000, "easing_function": {"function_name": "bounce"}\n },\n },\n {\n "type": "rescaler",\n "id": "rescaler_3",\n "width": 320, "height": 180, "top": 540, "left": 640,\n "child": { "type": "input_stream", "input_id": "input_3" },\n "transition": {\n "duration_ms": 2000,\n "easing_function": {\n "function_name": "cubic_bezier",\n "points": [0.65, 0, 0.35, 1]\n }\n }\n },\n {\n "type": "rescaler",\n "id": "rescaler_4",\n "width": 320, "height": 180, "top": 540, "left": 960,\n "child": { "type": "input_stream", "input_id": "input_4" },\n "transition": {\n "duration_ms": 2000,\n "easing_function": {\n "function_name": "cubic_bezier",\n "points": [0.33, 1, 0.68, 1]\n }\n }\n }\n ]\n }\n }\n}\n'})})]}),(0,i.jsx)(a.A,{value:"membrane",label:"Membrane Framework",children:(0,i.jsx)(e.pre,{children:(0,i.jsx)(e.code,{className:"language-elixir",children:'def handle_setup(ctx, state) do\n request = %LiveCompositor.Request.UpdateVideoOutput{\n output_id: "output_1",\n root: %{\n type: :view,\n background_color_rgba: "#4d4d4dff",\n children: [\n %{\n type: :rescaler,\n id: "rescaler_1",\n width: 320, height: 180, top: 0, left: 0,\n child: %{ type: :input_stream, input_id: :input_1 },\n },\n %{\n type: :rescaler,\n id: "rescaler_2",\n width: 320, height: 180, top: 0, left: 320,\n child: %{ type: :input_stream, input_id: :input_2 },\n },\n %{\n type: :rescaler,\n id: "rescaler_3",\n width: 320, height: 180, top: 0, left: 640,\n child: %{ type: :input_stream, input_id: :input_3 },\n },\n %{\n type: :rescaler,\n id: "rescaler_4",\n width: 320, height: 180, top: 0, left: 960,\n child: %{ type: :input_stream, input_id: :input_4 },\n }\n ]\n }\n }\n Process.send_after(self(), :start_transition, 2000)\n {[notify_child: {:live_compositor, request}], state}\nend\n\ndef handle_info(:start_transition, _ctx, state)\n request = %LiveCompositor.Request.UpdateVideoOutput{\n output_id: "output_1",\n root: %{\n type: :view,\n background_color_rgba: "#4d4d4dff",\n children: [\n %{\n type: :rescaler,\n id: "rescaler_1",\n width: 320, height: 180, top: 0, left: 0,\n child: %{ type: :input_stream, input_id: :input_1 },\n transition: %{ duration_ms: 2000 },\n },\n %{\n type: :rescaler,\n id: "rescaler_2",\n width: 320, height: 180, top: 0, left: 320,\n child: %{ type: :input_stream, input_id: :input_2 },\n transition: %{\n duration_ms: 2000\n easing_function: %{ function_name: :bounce}\n },\n },\n %{\n type: :rescaler,\n id: "rescaler_3",\n width: 320, height: 180, top: 0, left: 640,\n child: %{ type: :input_stream, input_id: :input_3 },\n transition: %{\n duration_ms: 2000\n easing_function: %{\n function_name: :cubic_bezier,\n points: [0.65, 0, 0.35, 1]\n }\n }\n },\n %{\n type: :rescaler,\n id: "rescaler_4",\n width: 320, height: 180, top: 0, left: 960,\n child: %{ type: :input_stream, input_id: :input_4 },\n transition: %{\n duration_ms: 2000\n easing_function: %{\n function_name: :cubic_bezier,\n points: [0.33, 1, 0.68, 1]\n }\n }\n }\n ]\n }\n }\n {[notify_child: {:live_compositor, request}], state}\nend\n'})})})]}),"\n",(0,i.jsxs)("div",{style:{textAlign:"center"},children:[(0,i.jsx)("img",{src:c,style:{width:600}}),(0,i.jsx)(e.p,{children:"Output stream"})]}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.code,{children:"Input 1"})," - Linear transition"]}),"\n",(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.code,{children:"Input 2"})," - Bounce transition"]}),"\n",(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.code,{children:"Input 3"})," - Cubic B\xe9zier transition with ",(0,i.jsx)(e.code,{children:"[0.65, 0, 0.35, 1]"})," points (",(0,i.jsx)(e.a,{href:"https://easings.net/#easeInOutCubic",children:(0,i.jsx)(e.code,{children:"easeInOutCubic"})}),")"]}),"\n",(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.code,{children:"Input 4"})," - Cubic B\xe9zier transition with ",(0,i.jsx)(e.code,{children:"[0.33, 1, 0.68, 1]"})," points (",(0,i.jsx)(e.a,{href:"https://easings.net/#easeOutCubic",children:(0,i.jsx)(e.code,{children:"easeOutCubic"})}),")"]}),"\n"]}),"\n",(0,i.jsxs)(e.p,{children:["Check out other popular Cubic B\xe9zier curves on ",(0,i.jsx)(e.a,{href:"https://easings.net",children:"https://easings.net"}),"."]})]})}function m(n={}){const{wrapper:e}={...(0,r.R)(),...n.components};return e?(0,i.jsx)(e,{...n,children:(0,i.jsx)(g,{...n})}):g(n)}},19365:(n,e,t)=>{t.d(e,{A:()=>a});t(96540);var i=t(18215);const r={tabItem:"tabItem_Ymn6"};var s=t(74848);function a(n){let{children:e,hidden:t,className:a}=n;return(0,s.jsx)("div",{role:"tabpanel",className:(0,i.A)(r.tabItem,a),hidden:t,children:e})}},11470:(n,e,t)=>{t.d(e,{A:()=>j});var i=t(96540),r=t(18215),s=t(23104),a=t(56347),o=t(205),d=t(57485),l=t(31682),c=t(89466);function u(n){return i.Children.toArray(n).filter((n=>"\n"!==n)).map((n=>{if(!n||(0,i.isValidElement)(n)&&function(n){const{props:e}=n;return!!e&&"object"==typeof e&&"value"in e}(n))return n;throw new Error(`Docusaurus error: Bad child <${"string"==typeof n.type?n.type:n.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function p(n){const{values:e,children:t}=n;return(0,i.useMemo)((()=>{const n=e??function(n){return u(n).map((n=>{let{props:{value:e,label:t,attributes:i,default:r}}=n;return{value:e,label:t,attributes:i,default:r}}))}(t);return function(n){const e=(0,l.X)(n,((n,e)=>n.value===e.value));if(e.length>0)throw new Error(`Docusaurus error: Duplicate values "${e.map((n=>n.value)).join(", ")}" found in . Every value needs to be unique.`)}(n),n}),[e,t])}function h(n){let{value:e,tabValues:t}=n;return t.some((n=>n.value===e))}function _(n){let{queryString:e=!1,groupId:t}=n;const r=(0,a.W6)(),s=function(n){let{queryString:e=!1,groupId:t}=n;if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!t)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:e,groupId:t});return[(0,d.aZ)(s),(0,i.useCallback)((n=>{if(!s)return;const e=new URLSearchParams(r.location.search);e.set(s,n),r.replace({...r.location,search:e.toString()})}),[s,r])]}function f(n){const{defaultValue:e,queryString:t=!1,groupId:r}=n,s=p(n),[a,d]=(0,i.useState)((()=>function(n){let{defaultValue:e,tabValues:t}=n;if(0===t.length)throw new Error("Docusaurus error: the component requires at least one children component");if(e){if(!h({value:e,tabValues:t}))throw new Error(`Docusaurus error: The has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${t.map((n=>n.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}const i=t.find((n=>n.default))??t[0];if(!i)throw new Error("Unexpected error: 0 tabValues");return i.value}({defaultValue:e,tabValues:s}))),[l,u]=_({queryString:t,groupId:r}),[f,g]=function(n){let{groupId:e}=n;const t=function(n){return n?`docusaurus.tab.${n}`:null}(e),[r,s]=(0,c.Dv)(t);return[r,(0,i.useCallback)((n=>{t&&s.set(n)}),[t,s])]}({groupId:r}),m=(()=>{const n=l??f;return h({value:n,tabValues:s})?n:null})();(0,o.A)((()=>{m&&d(m)}),[m]);return{selectedValue:a,selectValue:(0,i.useCallback)((n=>{if(!h({value:n,tabValues:s}))throw new Error(`Can't select invalid tab value=${n}`);d(n),u(n),g(n)}),[u,g,s]),tabValues:s}}var g=t(92303);const m={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var b=t(74848);function x(n){let{className:e,block:t,selectedValue:i,selectValue:a,tabValues:o}=n;const d=[],{blockElementScrollPositionUntilNextRender:l}=(0,s.a_)(),c=n=>{const e=n.currentTarget,t=d.indexOf(e),r=o[t].value;r!==i&&(l(e),a(r))},u=n=>{let e=null;switch(n.key){case"Enter":c(n);break;case"ArrowRight":{const t=d.indexOf(n.currentTarget)+1;e=d[t]??d[0];break}case"ArrowLeft":{const t=d.indexOf(n.currentTarget)-1;e=d[t]??d[d.length-1];break}}e?.focus()};return(0,b.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,r.A)("tabs",{"tabs--block":t},e),children:o.map((n=>{let{value:e,label:t,attributes:s}=n;return(0,b.jsx)("li",{role:"tab",tabIndex:i===e?0:-1,"aria-selected":i===e,ref:n=>d.push(n),onKeyDown:u,onClick:c,...s,className:(0,r.A)("tabs__item",m.tabItem,s?.className,{"tabs__item--active":i===e}),children:t??e},e)}))})}function y(n){let{lazy:e,children:t,selectedValue:r}=n;const s=(Array.isArray(t)?t:[t]).filter(Boolean);if(e){const n=s.find((n=>n.props.value===r));return n?(0,i.cloneElement)(n,{className:"margin-top--md"}):null}return(0,b.jsx)("div",{className:"margin-top--md",children:s.map(((n,e)=>(0,i.cloneElement)(n,{key:e,hidden:n.props.value!==r})))})}function w(n){const e=f(n);return(0,b.jsxs)("div",{className:(0,r.A)("tabs-container",m.tabList),children:[(0,b.jsx)(x,{...n,...e}),(0,b.jsx)(y,{...n,...e})]})}function j(n){const e=(0,g.A)();return(0,b.jsx)(w,{...n,children:u(n.children)},String(e))}},28453:(n,e,t)=>{t.d(e,{R:()=>a,x:()=>o});var i=t(96540);const r={},s=i.createContext(r);function a(n){const e=i.useContext(s);return i.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function o(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(r):n.components||r:a(n.components),i.createElement(s.Provider,{value:e},n.children)}}}]); \ No newline at end of file diff --git a/assets/js/1ec835e1.75ea26f4.js b/assets/js/1ec835e1.75ea26f4.js new file mode 100644 index 000000000..bc5a1ea79 --- /dev/null +++ b/assets/js/1ec835e1.75ea26f4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcompositor_live=self.webpackChunkcompositor_live||[]).push([[6002],{77371:(n,e,t)=>{t.r(e),t.d(e,{assets:()=>_,contentTitle:()=>p,default:()=>m,frontMatter:()=>u,metadata:()=>h,toc:()=>f});var i=t(74848),r=t(28453),s=t(11470),a=t(19365);const o=t.p+"assets/images/view_transition_1-28a1c86c833294d036082d4b4bc7af46.webp",l=t.p+"assets/images/view_transition_2-c1afc516562434973e3e847009ccf801.webp",d=t.p+"assets/images/view_transition_3-c3bf0e98e0ac53e801aefe065717c771.webp",c=t.p+"assets/images/view_transition_4-6d54cf14f1afdc6654a50c29572a02d0.webp",u={},p="Transitions (View/Rescaler)",h={id:"guides/view-transition",title:"Transitions (View/Rescaler)",description:"This guide will show a few basic examples of animated transitions on View/Rescaler components.",source:"@site/pages/guides/view-transition.md",sourceDirName:"guides",slug:"/guides/view-transition",permalink:"/docs/guides/view-transition",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"sidebar",previous:{title:"Basic Layouts",permalink:"/docs/guides/basic-layouts"},next:{title:"Concepts",permalink:"/docs/concept/overview"}},_={},f=[{value:"Configure inputs and output",id:"configure-inputs-and-output",level:3},{value:"Transition that changes the width of an input stream",id:"transition-that-changes-the-width-of-an-input-stream",level:3},{value:"Transition on one of the sibling components",id:"transition-on-one-of-the-sibling-components",level:3},{value:"Transition between different modes",id:"transition-between-different-modes",level:3},{value:"Different interpolation functions",id:"different-interpolation-functions",level:3}];function g(n){const e={a:"a",code:"code",h1:"h1",h3:"h3",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.R)(),...n.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(e.h1,{id:"transitions-viewrescaler",children:"Transitions (View/Rescaler)"}),"\n",(0,i.jsxs)(e.p,{children:["This guide will show a few basic examples of animated transitions on ",(0,i.jsx)(e.code,{children:"View"}),"/",(0,i.jsx)(e.code,{children:"Rescaler"})," components."]}),"\n",(0,i.jsx)(e.h3,{id:"configure-inputs-and-output",children:"Configure inputs and output"}),"\n",(0,i.jsxs)(e.p,{children:['Start the compositor and configure 2 input streams and a single output stream as described in the "Simple scene"\nguide in the ',(0,i.jsx)(e.a,{href:"/docs/guides/quick-start#configure-inputs-and-output",children:'"Configure inputs and output"'})," section."]}),"\n",(0,i.jsxs)(e.h3,{id:"transition-that-changes-the-width-of-an-input-stream",children:["Transition that changes the ",(0,i.jsx)(e.code,{children:"width"})," of an input stream"]}),"\n",(0,i.jsxs)(s.A,{queryString:"lang",children:[(0,i.jsx)(a.A,{value:"react",label:"React",children:(0,i.jsx)(e.pre,{children:(0,i.jsx)(e.code,{className:"language-tsx",children:'function App() {\n const [beforeTransition, setBeforeTransition] = useState(true);\n useEffect(() => {\n setTimeout(() => setBeforeTransition(false), 2000);\n }, []);\n\n return (\n \n \n \n \n \n )\n}\n'})})}),(0,i.jsxs)(a.A,{value:"http",label:"HTTP",children:[(0,i.jsx)(e.p,{children:"Set initial scene for the transition:"}),(0,i.jsx)(e.pre,{children:(0,i.jsx)(e.code,{className:"language-http",children:'POST: /api/output/output_1/update\nContent-Type: application/json\n\n{\n "video": {\n "root": {\n "type": "view",\n "background_color_rgba": "#4d4d4dff",\n "children": [\n {\n "type": "rescaler",\n "id": "rescaler_1",\n // highlight-start\n "width": 480,\n // highlight-end\n "child": { "type": "input_stream", "input_id": "input_1" },\n }\n ]\n }\n }\n}\n'})}),(0,i.jsxs)(e.p,{children:["A few seconds latter update a scene with a different ",(0,i.jsx)(e.code,{children:"width"}),":"]}),(0,i.jsx)(e.pre,{children:(0,i.jsx)(e.code,{className:"language-http",children:'POST: /api/output/output_1/update\nContent-Type: application/json\n\n{\n "video": {\n "root": {\n "type": "view",\n "background_color_rgba": "#4d4d4dff",\n "children": [\n {\n "type": "rescaler",\n "id": "rescaler_1",\n // highlight-start\n "width": 1280,\n "transition": { "duration_ms": 2000 },\n // highlight-end\n "child": { "type": "input_stream", "input_id": "input_1" },\n }\n ]\n }\n }\n}\n'})})]}),(0,i.jsxs)(a.A,{value:"membrane",label:"Membrane Framework",children:[(0,i.jsxs)(e.p,{children:["Set initial scene for the transition and after few seconds update a component\nwith a different ",(0,i.jsx)(e.code,{children:"width"}),":"]}),(0,i.jsx)(e.pre,{children:(0,i.jsx)(e.code,{className:"language-elixir",children:'def handle_setup(ctx, state) do\n request = %LiveCompositor.Request.UpdateVideoOutput{\n output_id: "output_1",\n root: %{\n type: :view,\n background_color_rgba: "#4d4d4dff",\n children: [\n %{\n type: :rescaler,\n id: "rescaler_1",\n // highlight-start\n width: 480,\n // highlight-end\n child: %{ type: :input_stream, input_id: :input_1 },\n }\n ]\n }\n }\n Process.send_after(self(), :start_transition, 2000)\n {[notify_child: {:live_compositor, request}], state}\nend\n\ndef handle_info(:start_transition, _ctx, state)\n request = %LiveCompositor.Request.UpdateVideoOutput{\n output_id: "output_1",\n root: %{\n type: :view,\n background_color_rgba: "#4d4d4dff",\n children: [\n %{\n type: :rescaler,\n id: "rescaler_1",\n // highlight-start\n width: 1280,\n transition: %{ duration_ms: 2000 },\n // highlight-end\n child: %{ type: :input_stream, input_id: :input_1 },\n }\n ]\n }\n }\n {[notify_child: {:live_compositor, request}], state}\nend\n'})})]})]}),"\n",(0,i.jsxs)(e.p,{children:["In the first update request, you can see that the rescaler has a width of 480, and in the second one, it is changed\nto 1280 and ",(0,i.jsx)(e.code,{children:"transition.duration_ms: 2000"})," was added."]}),"\n",(0,i.jsxs)(e.p,{children:["The component must have the same ",(0,i.jsx)(e.code,{children:'"id"'})," in both the initial state and the update that starts the\ntransition, otherwise it will switch immediately to the new state without a transition."]}),"\n",(0,i.jsxs)("div",{style:{textAlign:"center"},children:[(0,i.jsx)("img",{src:o,style:{width:600}}),(0,i.jsx)(e.p,{children:"Output stream"})]}),"\n",(0,i.jsx)(e.h3,{id:"transition-on-one-of-the-sibling-components",children:"Transition on one of the sibling components"}),"\n",(0,i.jsx)(e.p,{children:"In the above scenario you saw how transition on a single component behaves, but let's see what happens with\ncomponents that are not a part of the transition, but their size and position still depend on other components."}),"\n",(0,i.jsxs)(e.p,{children:["Add a second input stream wrapped with ",(0,i.jsx)(e.code,{children:"Rescaler"}),", but without any transition options."]}),"\n",(0,i.jsxs)(s.A,{queryString:"lang",children:[(0,i.jsx)(a.A,{value:"react",label:"React",children:(0,i.jsx)(e.pre,{children:(0,i.jsx)(e.code,{className:"language-tsx",children:'function App() {\n const [beforeTransition, setBeforeTransition] = useState(true);\n useEffect(() => {\n setTimeout(() => setBeforeTransition(false), 2000);\n }, []);\n\n return (\n \n \n \n \n \n \n \n \n )\n}\n'})})}),(0,i.jsxs)(a.A,{value:"http",label:"HTTP",children:[(0,i.jsx)(e.pre,{children:(0,i.jsx)(e.code,{className:"language-http",children:'POST: /api/output/output_1/update\nContent-Type: application/json\n\n{\n "video": {\n "root": {\n "type": "view",\n "background_color_rgba": "#4d4d4dff",\n "children": [\n {\n "type": "rescaler",\n "id": "rescaler_1",\n // highlight-start\n "width": 480,\n // highlight-end\n "child": { "type": "input_stream", "input_id": "input_1" },\n },\n {\n "type": "rescaler",\n "child": { "type": "input_stream", "input_id": "input_2" },\n }\n ]\n }\n }\n}\n'})}),(0,i.jsxs)(e.p,{children:["Update a scene with a different ",(0,i.jsx)(e.code,{children:"width"}),":"]}),(0,i.jsx)(e.pre,{children:(0,i.jsx)(e.code,{className:"language-http",children:'POST: /api/output/output_1/update\nContent-Type: application/json\n\n{\n "video": {\n "root": {\n "type": "view",\n "background_color_rgba": "#4d4d4dff",\n "children": [\n {\n "type": "rescaler",\n "id": "rescaler_1",\n // highlight-start\n "width": 1280,\n "transition": { "duration_ms": 2000 },\n // highlight-end\n "child": { "type": "input_stream", "input_id": "input_1" },\n },\n {\n "type": "rescaler",\n "child": { "type": "input_stream", "input_id": "input_2" },\n }\n ]\n }\n }\n}\n'})})]}),(0,i.jsx)(a.A,{value:"membrane",label:"Membrane Framework",children:(0,i.jsx)(e.pre,{children:(0,i.jsx)(e.code,{className:"language-elixir",children:'def handle_setup(ctx, state) do\n request = %LiveCompositor.Request.UpdateVideoOutput{\n output_id: "output_1",\n root: %{\n type: :view,\n background_color_rgba: "#4d4d4dff",\n children: [\n %{\n type: :rescaler,\n id: "rescaler_1",\n // highlight-start\n width: 480,\n // highlight-end\n child: %{ type: :input_stream, input_id: :input_1 },\n },\n %{\n type: :rescaler,\n child: %{ type: :input_stream, input_id: :input_2 },\n }\n ]\n }\n }\n Process.send_after(self(), :start_transition, 2000)\n {[notify_child: {:live_compositor, request}], state}\nend\n\ndef handle_info(:start_transition, _ctx, state)\n request = %LiveCompositor.Request.UpdateVideoOutput{\n output_id: "output_1",\n root: %{\n type: :view,\n background_color_rgba: "#4d4d4dff",\n children: [\n %{\n type: :rescaler,\n id: "rescaler_1",\n // highlight-start\n width: 1280,\n transition: %{ duration_ms: 2000 },\n // highlight-end\n child: %{ type: :input_stream, input_id: :input_1 },\n },\n %{\n type: :rescaler,\n child: %{ type: :input_stream, input_id: :input_2 },\n }\n ]\n }\n }\n {[notify_child: {:live_compositor, request}], state}\nend\n'})})})]}),"\n",(0,i.jsxs)("div",{style:{textAlign:"center"},children:[(0,i.jsx)("img",{src:l,style:{width:600}}),(0,i.jsx)(e.p,{children:"Output stream"})]}),"\n",(0,i.jsx)(e.h3,{id:"transition-between-different-modes",children:"Transition between different modes"}),"\n",(0,i.jsx)(e.p,{children:"Currently, a state before the transition and after needs to use the same type of configuration. In particular:"}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"It is not possible to transition a component between static and absolute positioning."}),"\n",(0,i.jsxs)(e.li,{children:["It is not possible to transition a component between using ",(0,i.jsx)(e.code,{children:"top"})," and ",(0,i.jsx)(e.code,{children:"bottom"})," fields (the same for ",(0,i.jsx)(e.code,{children:"left"}),"/",(0,i.jsx)(e.code,{children:"right"}),")."]}),"\n",(0,i.jsxs)(e.li,{children:["It is not possible to transition a component with known ",(0,i.jsx)(e.code,{children:"width"}),"/",(0,i.jsx)(e.code,{children:"height"})," to a state with dynamic ",(0,i.jsx)(e.code,{children:"width"}),"/",(0,i.jsx)(e.code,{children:"height"})," based\non the parent layout."]}),"\n"]}),"\n",(0,i.jsxs)(e.p,{children:["Let's try the same example as in the first scenario with a single input, but instead, change the ",(0,i.jsx)(e.code,{children:"Rescaler"})," component to be absolutely positioned in the second update."]}),"\n",(0,i.jsxs)(s.A,{queryString:"lang",children:[(0,i.jsx)(a.A,{value:"react",label:"React",children:(0,i.jsx)(e.pre,{children:(0,i.jsx)(e.code,{className:"language-tsx",children:'function App() {\n const [beforeTransition, setBeforeTransition] = useState(true);\n useEffect(() => {\n setTimeout(() => setBeforeTransition(false), 2000);\n }, []);\n\n return (\n \n {beforeTransition ? (\n \n \n \n ) : (\n \n \n \n )}\n \n );\n}\n'})})}),(0,i.jsxs)(a.A,{value:"http",label:"HTTP",children:[(0,i.jsx)(e.pre,{children:(0,i.jsx)(e.code,{className:"language-http",children:'POST: /api/output/output_1/update\nContent-Type: application/json\n\n{\n "video": {\n "root": {\n "type": "view",\n "background_color_rgba": "#4d4d4dff",\n "children": [\n {\n "type": "rescaler",\n "id": "rescaler_1",\n // highlight-start\n "width": 480,\n // highlight-end\n "child": { "type": "input_stream", "input_id": "input_1" },\n }\n ]\n }\n }\n}\n'})}),(0,i.jsx)(e.pre,{children:(0,i.jsx)(e.code,{className:"language-http",children:'POST: /api/output/output_1/update\nContent-Type: application/json\n\n{\n "video": {\n "root": {\n "type": "view",\n "background_color_rgba": "#4d4d4dff",\n "children": [\n {\n "type": "rescaler",\n "id": "rescaler_1",\n // highlight-start\n "width": 1280,\n "top": 0,\n "left": 0,\n "transition": { "duration_ms": 2000 },\n // highlight-end\n "child": { "type": "input_stream", "input_id": "input_1" },\n }\n ]\n }\n }\n}\n'})})]}),(0,i.jsx)(a.A,{value:"membrane",label:"Membrane Framework",children:(0,i.jsx)(e.pre,{children:(0,i.jsx)(e.code,{className:"language-elixir",children:'def handle_setup(ctx, state) do\n request = %LiveCompositor.Request.UpdateVideoOutput{\n output_id: "output_1",\n root: %{\n type: :view,\n background_color_rgba: "#4d4d4dff",\n children: [\n %{\n type: :rescaler,\n id: "rescaler_1",\n // highlight-start\n width: 480,\n // highlight-end\n child: %{ type: :input_stream, input_id: :input_1 },\n }\n ]\n }\n }\n Process.send_after(self(), :start_transition, 2000)\n {[notify_child: {:live_compositor, request}], state}\nend\n\ndef handle_info(:start_transition, _ctx, state)\n request = %LiveCompositor.Request.UpdateVideoOutput{\n output_id: "output_1",\n root: %{\n type: :view,\n background_color_rgba: "#4d4d4dff",\n children: [\n %{\n type: :rescaler,\n id: "rescaler_1",\n // highlight-start\n width: 1280,\n top: 0,\n left: 0,\n transition: %{ duration_ms: 2000 },\n // highlight-end\n child: %{ type: :input_stream, input_id: :input_1 },\n }\n ]\n }\n }\n {[notify_child: {:live_compositor, request}], state}\nend\n'})})})]}),"\n",(0,i.jsxs)(e.p,{children:["As you can see on the resulting stream, the transition did not happen because the ",(0,i.jsx)(e.code,{children:"Rescaler"})," component\nin the initial scene was using static positioning and after the update it was positioned absolutely."]}),"\n",(0,i.jsxs)("div",{style:{textAlign:"center"},children:[(0,i.jsx)("img",{src:d,style:{width:600}}),(0,i.jsx)(e.p,{children:"Output stream"})]}),"\n",(0,i.jsx)(e.h3,{id:"different-interpolation-functions",children:"Different interpolation functions"}),"\n",(0,i.jsx)(e.p,{children:"All of the above examples use default linear interpolation, but there are also a few other\nmodes available."}),"\n",(0,i.jsxs)(s.A,{queryString:"lang",children:[(0,i.jsx)(a.A,{value:"react",label:"React",children:(0,i.jsx)(e.pre,{children:(0,i.jsx)(e.code,{className:"language-tsx",children:'function App() {\n const [beforeTransition, setBeforeTransition] = useState(true);\n useEffect(() => {\n setTimeout(() => setBeforeTransition(false), 2000);\n }, []);\n\n const top = beforeTransition ? 0 : 540;\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n'})})}),(0,i.jsxs)(a.A,{value:"http",label:"HTTP",children:[(0,i.jsx)(e.pre,{children:(0,i.jsx)(e.code,{className:"language-http",children:'POST: /api/output/output_1/update\nContent-Type: application/json\n\n{\n "video": {\n "root": {\n "type": "view",\n "background_color_rgba": "#4d4d4dff",\n "children": [\n {\n "type": "rescaler",\n "id": "rescaler_1",\n "width": 320, "height": 180, "top": 0, "left": 0,\n "child": { "type": "input_stream", "input_id": "input_1" },\n },\n {\n "type": "rescaler",\n "id": "rescaler_2",\n "width": 320, "height": 180, "top": 0, "left": 320,\n "child": { "type": "input_stream", "input_id": "input_2" },\n },\n {\n "type": "rescaler",\n "id": "rescaler_3",\n "width": 320, "height": 180, "top": 0, "left": 640,\n "child": { "type": "input_stream", "input_id": "input_3" },\n },\n {\n "type": "rescaler",\n "id": "rescaler_4",\n "width": 320, "height": 180, "top": 0, "left": 960,\n "child": { "type": "input_stream", "input_id": "input_4" },\n },\n ]\n }\n }\n}\n'})}),(0,i.jsx)(e.pre,{children:(0,i.jsx)(e.code,{className:"language-http",children:'POST: /api/output/output_1/update\nContent-Type: application/json\n\n{\n "video": {\n "root": {\n "type": "view",\n "background_color_rgba": "#4d4d4dff",\n "children": [\n {\n "type": "rescaler",\n "id": "rescaler_1",\n "width": 320, "height": 180, "top": 540, "left": 0,\n "child": { "type": "input_stream", "input_id": "input_1" },\n "transition": { "duration_ms": 2000 },\n },\n {\n "type": "rescaler",\n "id": "rescaler_2",\n "width": 320, "height": 180, "top": 540, "left": 320,\n "child": { "type": "input_stream", "input_id": "input_2" },\n "transition": {\n "duration_ms": 2000, "easing_function": {"function_name": "bounce"}\n },\n },\n {\n "type": "rescaler",\n "id": "rescaler_3",\n "width": 320, "height": 180, "top": 540, "left": 640,\n "child": { "type": "input_stream", "input_id": "input_3" },\n "transition": {\n "duration_ms": 2000,\n "easing_function": {\n "function_name": "cubic_bezier",\n "points": [0.65, 0, 0.35, 1]\n }\n }\n },\n {\n "type": "rescaler",\n "id": "rescaler_4",\n "width": 320, "height": 180, "top": 540, "left": 960,\n "child": { "type": "input_stream", "input_id": "input_4" },\n "transition": {\n "duration_ms": 2000,\n "easing_function": {\n "function_name": "cubic_bezier",\n "points": [0.33, 1, 0.68, 1]\n }\n }\n }\n ]\n }\n }\n}\n'})})]}),(0,i.jsx)(a.A,{value:"membrane",label:"Membrane Framework",children:(0,i.jsx)(e.pre,{children:(0,i.jsx)(e.code,{className:"language-elixir",children:'def handle_setup(ctx, state) do\n request = %LiveCompositor.Request.UpdateVideoOutput{\n output_id: "output_1",\n root: %{\n type: :view,\n background_color_rgba: "#4d4d4dff",\n children: [\n %{\n type: :rescaler,\n id: "rescaler_1",\n width: 320, height: 180, top: 0, left: 0,\n child: %{ type: :input_stream, input_id: :input_1 },\n },\n %{\n type: :rescaler,\n id: "rescaler_2",\n width: 320, height: 180, top: 0, left: 320,\n child: %{ type: :input_stream, input_id: :input_2 },\n },\n %{\n type: :rescaler,\n id: "rescaler_3",\n width: 320, height: 180, top: 0, left: 640,\n child: %{ type: :input_stream, input_id: :input_3 },\n },\n %{\n type: :rescaler,\n id: "rescaler_4",\n width: 320, height: 180, top: 0, left: 960,\n child: %{ type: :input_stream, input_id: :input_4 },\n }\n ]\n }\n }\n Process.send_after(self(), :start_transition, 2000)\n {[notify_child: {:live_compositor, request}], state}\nend\n\ndef handle_info(:start_transition, _ctx, state)\n request = %LiveCompositor.Request.UpdateVideoOutput{\n output_id: "output_1",\n root: %{\n type: :view,\n background_color_rgba: "#4d4d4dff",\n children: [\n %{\n type: :rescaler,\n id: "rescaler_1",\n width: 320, height: 180, top: 0, left: 0,\n child: %{ type: :input_stream, input_id: :input_1 },\n transition: %{ duration_ms: 2000 },\n },\n %{\n type: :rescaler,\n id: "rescaler_2",\n width: 320, height: 180, top: 0, left: 320,\n child: %{ type: :input_stream, input_id: :input_2 },\n transition: %{\n duration_ms: 2000\n easing_function: %{ function_name: :bounce}\n },\n },\n %{\n type: :rescaler,\n id: "rescaler_3",\n width: 320, height: 180, top: 0, left: 640,\n child: %{ type: :input_stream, input_id: :input_3 },\n transition: %{\n duration_ms: 2000\n easing_function: %{\n function_name: :cubic_bezier,\n points: [0.65, 0, 0.35, 1]\n }\n }\n },\n %{\n type: :rescaler,\n id: "rescaler_4",\n width: 320, height: 180, top: 0, left: 960,\n child: %{ type: :input_stream, input_id: :input_4 },\n transition: %{\n duration_ms: 2000\n easing_function: %{\n function_name: :cubic_bezier,\n points: [0.33, 1, 0.68, 1]\n }\n }\n }\n ]\n }\n }\n {[notify_child: {:live_compositor, request}], state}\nend\n'})})})]}),"\n",(0,i.jsxs)("div",{style:{textAlign:"center"},children:[(0,i.jsx)("img",{src:c,style:{width:600}}),(0,i.jsx)(e.p,{children:"Output stream"})]}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.code,{children:"Input 1"})," - Linear transition"]}),"\n",(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.code,{children:"Input 2"})," - Bounce transition"]}),"\n",(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.code,{children:"Input 3"})," - Cubic B\xe9zier transition with ",(0,i.jsx)(e.code,{children:"[0.65, 0, 0.35, 1]"})," points (",(0,i.jsx)(e.a,{href:"https://easings.net/#easeInOutCubic",children:(0,i.jsx)(e.code,{children:"easeInOutCubic"})}),")"]}),"\n",(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.code,{children:"Input 4"})," - Cubic B\xe9zier transition with ",(0,i.jsx)(e.code,{children:"[0.33, 1, 0.68, 1]"})," points (",(0,i.jsx)(e.a,{href:"https://easings.net/#easeOutCubic",children:(0,i.jsx)(e.code,{children:"easeOutCubic"})}),")"]}),"\n"]}),"\n",(0,i.jsxs)(e.p,{children:["Check out other popular Cubic B\xe9zier curves on ",(0,i.jsx)(e.a,{href:"https://easings.net",children:"https://easings.net"}),"."]})]})}function m(n={}){const{wrapper:e}={...(0,r.R)(),...n.components};return e?(0,i.jsx)(e,{...n,children:(0,i.jsx)(g,{...n})}):g(n)}},19365:(n,e,t)=>{t.d(e,{A:()=>a});t(96540);var i=t(18215);const r={tabItem:"tabItem_Ymn6"};var s=t(74848);function a(n){let{children:e,hidden:t,className:a}=n;return(0,s.jsx)("div",{role:"tabpanel",className:(0,i.A)(r.tabItem,a),hidden:t,children:e})}},11470:(n,e,t)=>{t.d(e,{A:()=>j});var i=t(96540),r=t(18215),s=t(23104),a=t(56347),o=t(205),l=t(57485),d=t(31682),c=t(89466);function u(n){return i.Children.toArray(n).filter((n=>"\n"!==n)).map((n=>{if(!n||(0,i.isValidElement)(n)&&function(n){const{props:e}=n;return!!e&&"object"==typeof e&&"value"in e}(n))return n;throw new Error(`Docusaurus error: Bad child <${"string"==typeof n.type?n.type:n.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function p(n){const{values:e,children:t}=n;return(0,i.useMemo)((()=>{const n=e??function(n){return u(n).map((n=>{let{props:{value:e,label:t,attributes:i,default:r}}=n;return{value:e,label:t,attributes:i,default:r}}))}(t);return function(n){const e=(0,d.X)(n,((n,e)=>n.value===e.value));if(e.length>0)throw new Error(`Docusaurus error: Duplicate values "${e.map((n=>n.value)).join(", ")}" found in . Every value needs to be unique.`)}(n),n}),[e,t])}function h(n){let{value:e,tabValues:t}=n;return t.some((n=>n.value===e))}function _(n){let{queryString:e=!1,groupId:t}=n;const r=(0,a.W6)(),s=function(n){let{queryString:e=!1,groupId:t}=n;if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!t)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:e,groupId:t});return[(0,l.aZ)(s),(0,i.useCallback)((n=>{if(!s)return;const e=new URLSearchParams(r.location.search);e.set(s,n),r.replace({...r.location,search:e.toString()})}),[s,r])]}function f(n){const{defaultValue:e,queryString:t=!1,groupId:r}=n,s=p(n),[a,l]=(0,i.useState)((()=>function(n){let{defaultValue:e,tabValues:t}=n;if(0===t.length)throw new Error("Docusaurus error: the component requires at least one children component");if(e){if(!h({value:e,tabValues:t}))throw new Error(`Docusaurus error: The has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${t.map((n=>n.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}const i=t.find((n=>n.default))??t[0];if(!i)throw new Error("Unexpected error: 0 tabValues");return i.value}({defaultValue:e,tabValues:s}))),[d,u]=_({queryString:t,groupId:r}),[f,g]=function(n){let{groupId:e}=n;const t=function(n){return n?`docusaurus.tab.${n}`:null}(e),[r,s]=(0,c.Dv)(t);return[r,(0,i.useCallback)((n=>{t&&s.set(n)}),[t,s])]}({groupId:r}),m=(()=>{const n=d??f;return h({value:n,tabValues:s})?n:null})();(0,o.A)((()=>{m&&l(m)}),[m]);return{selectedValue:a,selectValue:(0,i.useCallback)((n=>{if(!h({value:n,tabValues:s}))throw new Error(`Can't select invalid tab value=${n}`);l(n),u(n),g(n)}),[u,g,s]),tabValues:s}}var g=t(92303);const m={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var b=t(74848);function x(n){let{className:e,block:t,selectedValue:i,selectValue:a,tabValues:o}=n;const l=[],{blockElementScrollPositionUntilNextRender:d}=(0,s.a_)(),c=n=>{const e=n.currentTarget,t=l.indexOf(e),r=o[t].value;r!==i&&(d(e),a(r))},u=n=>{let e=null;switch(n.key){case"Enter":c(n);break;case"ArrowRight":{const t=l.indexOf(n.currentTarget)+1;e=l[t]??l[0];break}case"ArrowLeft":{const t=l.indexOf(n.currentTarget)-1;e=l[t]??l[l.length-1];break}}e?.focus()};return(0,b.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,r.A)("tabs",{"tabs--block":t},e),children:o.map((n=>{let{value:e,label:t,attributes:s}=n;return(0,b.jsx)("li",{role:"tab",tabIndex:i===e?0:-1,"aria-selected":i===e,ref:n=>l.push(n),onKeyDown:u,onClick:c,...s,className:(0,r.A)("tabs__item",m.tabItem,s?.className,{"tabs__item--active":i===e}),children:t??e},e)}))})}function w(n){let{lazy:e,children:t,selectedValue:r}=n;const s=(Array.isArray(t)?t:[t]).filter(Boolean);if(e){const n=s.find((n=>n.props.value===r));return n?(0,i.cloneElement)(n,{className:"margin-top--md"}):null}return(0,b.jsx)("div",{className:"margin-top--md",children:s.map(((n,e)=>(0,i.cloneElement)(n,{key:e,hidden:n.props.value!==r})))})}function y(n){const e=f(n);return(0,b.jsxs)("div",{className:(0,r.A)("tabs-container",m.tabList),children:[(0,b.jsx)(x,{...n,...e}),(0,b.jsx)(w,{...n,...e})]})}function j(n){const e=(0,g.A)();return(0,b.jsx)(y,{...n,children:u(n.children)},String(e))}},28453:(n,e,t)=>{t.d(e,{R:()=>a,x:()=>o});var i=t(96540);const r={},s=i.createContext(r);function a(n){const e=i.useContext(s);return i.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function o(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(r):n.components||r:a(n.components),i.createElement(s.Provider,{value:e},n.children)}}}]); \ No newline at end of file diff --git a/assets/js/26033596.128cbc36.js b/assets/js/26033596.128cbc36.js new file mode 100644 index 000000000..a06e5c8e3 --- /dev/null +++ b/assets/js/26033596.128cbc36.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcompositor_live=self.webpackChunkcompositor_live||[]).push([[6993],{73321:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>a,contentTitle:()=>s,default:()=>h,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var i=r(74848),t=r(28453);const o={},s="Example: AWS EC2",l={id:"deployment/aws-ec2",title:"Example: AWS EC2",description:"This is an example configuration that shows how to deploy LiveCompositor to an AWS EC2 instance with Terraform configuration.",source:"@site/pages/deployment/aws-ec2.md",sourceDirName:"deployment",slug:"/deployment/aws-ec2",permalink:"/docs/deployment/aws-ec2",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"sidebar",previous:{title:"Configuration",permalink:"/docs/deployment/configuration"},next:{title:"TypeScript SDK Reference",permalink:"/docs/typescript/api"}},a={},c=[{value:"Prerequisites",id:"prerequisites",level:3},{value:"CPU vs GPU rendering trade-off",id:"cpu-vs-gpu-rendering-trade-off",level:3},{value:"How to deploy",id:"how-to-deploy",level:3},{value:"CPU-only",id:"cpu-only",level:3},{value:"CPU+GPU",id:"cpugpu",level:3},{value:"How to use",id:"how-to-use",level:3}];function d(e){const n={a:"a",admonition:"admonition",blockquote:"blockquote",code:"code",h1:"h1",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,t.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"example-aws-ec2",children:"Example: AWS EC2"}),"\n",(0,i.jsx)(n.p,{children:"This is an example configuration that shows how to deploy LiveCompositor to an AWS EC2 instance with Terraform configuration."}),"\n",(0,i.jsxs)(n.p,{children:["All examples are located in the ",(0,i.jsx)(n.a,{href:"https://github.com/membraneframework-labs/live_compositor_deployment",children:"github.com/membraneframework-labs/live_compositor_deployment"})," repository:"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"project"})," directory includes an example Membrane project that can consume multiple streams over RTMP and host the composed stream as an HLS playlist."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"aws-ec2-terraform"})," directory includes an example Terraform+Packer configuration for building an AMI (Amazon Machine Image) and deploying it to EC2."]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Terraform"}),"\n",(0,i.jsx)(n.li,{children:"Packer"}),"\n",(0,i.jsx)(n.li,{children:"Elixir - required to build an example project"}),"\n",(0,i.jsx)(n.li,{children:"FFmpeg - used to send/receive streams from/to the compositor"}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"cpu-vs-gpu-rendering-trade-off",children:"CPU vs GPU rendering trade-off"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"GPU+CPU"})," - LiveCompositor uses ",(0,i.jsx)(n.code,{children:"wgpu"})," (implementation of WebGPU standard written in Rust) for rendering. However, all decoding and\nencoding still happens on the CPU. When running on GPU the rendering cost should be negligible compared to the decoding/encoding."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"CPU-only"})," - When running on a CPU-only instance, all ",(0,i.jsx)(n.code,{children:"WebGPU"})," code is emulated on the CPU. Unless your encoder quality is set very\nhigh, rendering will use most of the CPU processing time."]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"Actual price-to-performance can vary, but in general, CPU+GPU instances make more sense for fast encoder presets and complex rendering\npipelines. However, CPU-only can be more optimal when using simple layouts and prioritizing quality over performance with slower preset."}),"\n",(0,i.jsx)(n.h3,{id:"how-to-deploy",children:"How to deploy"}),"\n",(0,i.jsx)(n.admonition,{type:"warning",children:(0,i.jsxs)(n.p,{children:["The example configuration is using ",(0,i.jsx)(n.code,{children:"us-east-1"})," region. If you want to use a different one make sure to change it both in Packer\nand Terraform configuration. Specifically, if you use EC2 instances with GPU, you might only have them available in some regions."]})}),"\n",(0,i.jsx)(n.h3,{id:"cpu-only",children:(0,i.jsx)(n.code,{children:"CPU-only"})}),"\n",(0,i.jsxs)(n.p,{children:["Go to ",(0,i.jsx)(n.strong,{children:"aws-ec2-terraform/packer"})," directory and run"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"packer build membrane.pkr.hcl\n"})}),"\n",(0,i.jsxs)(n.p,{children:["to build an AMI image with an example Membrane project. At the end of the process, the terminal will print the AMI ID, that will\nbe needed in the next step (something like ",(0,i.jsx)(n.code,{children:"ami-0e18e9d7b8c037ec2"}),")."]}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:["The other ",(0,i.jsx)(n.code,{children:"pkr.hcl"})," file in this directory (",(0,i.jsx)(n.strong,{children:"standalone.pkr.hcl"}),") includes configuration for deploying just a standalone LiveCompositor\ninstance, so you can also go that route, but the rest of this guide assumes you are using the provided Membrane project."]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["Open ",(0,i.jsx)(n.strong,{children:"aws-ec2-terraform/main.tf"}),", find ",(0,i.jsx)(n.code,{children:"aws_instance.demo_instance"})," definition and update the ",(0,i.jsx)(n.code,{children:"ami"})," field with the AMI ID from the previous step."]}),"\n",(0,i.jsxs)(n.p,{children:["In ",(0,i.jsx)(n.strong,{children:"aws-ec2-terraform"})," directory run:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"terraform apply\n"})}),"\n",(0,i.jsx)(n.h3,{id:"cpugpu",children:(0,i.jsx)(n.code,{children:"CPU+GPU"})}),"\n",(0,i.jsxs)(n.p,{children:["Go to ",(0,i.jsx)(n.strong,{children:"aws-ec2-terraform/packer"})," directory and run"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:'packer build -var "with-gpu=true" membrane.pkr.hcl\n'})}),"\n",(0,i.jsxs)(n.p,{children:["to build an AMI image with an example Membrane project. At the end of the process, the terminal will print the AMI ID that, will\nbe needed in the next step (something like ",(0,i.jsx)(n.code,{children:"ami-0e18e9d7b8c037ec2"}),")."]}),"\n",(0,i.jsxs)(n.p,{children:["Open ",(0,i.jsx)(n.strong,{children:"aws-ec2-terraform/main.tf"}),", find ",(0,i.jsx)(n.code,{children:"aws_instance.demo_instance"})," definition and update the ",(0,i.jsx)(n.code,{children:"ami"})," field with the AMI ID from the previous step."]}),"\n",(0,i.jsxs)(n.p,{children:["In ",(0,i.jsx)(n.strong,{children:"aws-ec2-terraform"})," directory run:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:'terraform apply -var="with-gpu=true"\n'})}),"\n",(0,i.jsx)(n.admonition,{type:"note",children:(0,i.jsxs)(n.p,{children:["Instances with GPU like ",(0,i.jsx)(n.code,{children:"g4dn.xlarge"})," are not available by default on AWS. You will need to request a quota increase from the AWS team to use them."]})}),"\n",(0,i.jsx)(n.h3,{id:"how-to-use",children:"How to use"}),"\n",(0,i.jsx)(n.p,{children:"After everything is deployed you can open your AWS dashboard and find the public IP of the newly deployed instance."}),"\n",(0,i.jsx)(n.p,{children:"To test the service, run in separate terminals:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["To receive the output stream","\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"ffplay http://YOUR_INSTANCE_IP:9001/index.m3u8\n"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["To send an example input stream","\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"ffmpeg -re -f lavfi -i testsrc\n -vf scale=1280:720 -vcodec libx264 \\\n -profile:v baseline -preset fast -pix_fmt yuv420p \\\n -f flv rtmp://YOUR_INSTANCE_IP:9000/app/stream_key\n"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["You can run this command multiple times with different paths instead of ",(0,i.jsx)(n.code,{children:"app/stream_key"})," to connect multiple streams."]}),"\n"]}),"\n"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},28453:(e,n,r)=>{r.d(n,{R:()=>s,x:()=>l});var i=r(96540);const t={},o=i.createContext(t);function s(e){const n=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:s(e.components),i.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/26033596.22fd6132.js b/assets/js/26033596.22fd6132.js deleted file mode 100644 index f6d5bffb5..000000000 --- a/assets/js/26033596.22fd6132.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcompositor_live=self.webpackChunkcompositor_live||[]).push([[6993],{73321:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>a,contentTitle:()=>s,default:()=>h,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var i=r(74848),t=r(28453);const o={},s="Example: AWS EC2",l={id:"deployment/aws-ec2",title:"Example: AWS EC2",description:"This is an example configuration that shows how to deploy LiveCompositor to an AWS EC2 instance with Terraform configuration.",source:"@site/pages/deployment/aws-ec2.md",sourceDirName:"deployment",slug:"/deployment/aws-ec2",permalink:"/docs/deployment/aws-ec2",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"sidebar",previous:{title:"Configuration",permalink:"/docs/deployment/configuration"},next:{title:"Reference",permalink:"/docs/typescript/api"}},a={},c=[{value:"Prerequisites",id:"prerequisites",level:3},{value:"CPU vs GPU rendering trade-off",id:"cpu-vs-gpu-rendering-trade-off",level:3},{value:"How to deploy",id:"how-to-deploy",level:3},{value:"CPU-only",id:"cpu-only",level:3},{value:"CPU+GPU",id:"cpugpu",level:3},{value:"How to use",id:"how-to-use",level:3}];function d(e){const n={a:"a",admonition:"admonition",blockquote:"blockquote",code:"code",h1:"h1",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,t.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"example-aws-ec2",children:"Example: AWS EC2"}),"\n",(0,i.jsx)(n.p,{children:"This is an example configuration that shows how to deploy LiveCompositor to an AWS EC2 instance with Terraform configuration."}),"\n",(0,i.jsxs)(n.p,{children:["All examples are located in the ",(0,i.jsx)(n.a,{href:"https://github.com/membraneframework-labs/live_compositor_deployment",children:"github.com/membraneframework-labs/live_compositor_deployment"})," repository:"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"project"})," directory includes an example Membrane project that can consume multiple streams over RTMP and host the composed stream as an HLS playlist."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"aws-ec2-terraform"})," directory includes an example Terraform+Packer configuration for building an AMI (Amazon Machine Image) and deploying it to EC2."]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Terraform"}),"\n",(0,i.jsx)(n.li,{children:"Packer"}),"\n",(0,i.jsx)(n.li,{children:"Elixir - required to build an example project"}),"\n",(0,i.jsx)(n.li,{children:"FFmpeg - used to send/receive streams from/to the compositor"}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"cpu-vs-gpu-rendering-trade-off",children:"CPU vs GPU rendering trade-off"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"GPU+CPU"})," - LiveCompositor uses ",(0,i.jsx)(n.code,{children:"wgpu"})," (implementation of WebGPU standard written in Rust) for rendering. However, all decoding and\nencoding still happens on the CPU. When running on GPU the rendering cost should be negligible compared to the decoding/encoding."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"CPU-only"})," - When running on a CPU-only instance, all ",(0,i.jsx)(n.code,{children:"WebGPU"})," code is emulated on the CPU. Unless your encoder quality is set very\nhigh, rendering will use most of the CPU processing time."]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"Actual price-to-performance can vary, but in general, CPU+GPU instances make more sense for fast encoder presets and complex rendering\npipelines. However, CPU-only can be more optimal when using simple layouts and prioritizing quality over performance with slower preset."}),"\n",(0,i.jsx)(n.h3,{id:"how-to-deploy",children:"How to deploy"}),"\n",(0,i.jsx)(n.admonition,{type:"warning",children:(0,i.jsxs)(n.p,{children:["The example configuration is using ",(0,i.jsx)(n.code,{children:"us-east-1"})," region. If you want to use a different one make sure to change it both in Packer\nand Terraform configuration. Specifically, if you use EC2 instances with GPU, you might only have them available in some regions."]})}),"\n",(0,i.jsx)(n.h3,{id:"cpu-only",children:(0,i.jsx)(n.code,{children:"CPU-only"})}),"\n",(0,i.jsxs)(n.p,{children:["Go to ",(0,i.jsx)(n.strong,{children:"aws-ec2-terraform/packer"})," directory and run"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"packer build membrane.pkr.hcl\n"})}),"\n",(0,i.jsxs)(n.p,{children:["to build an AMI image with an example Membrane project. At the end of the process, the terminal will print the AMI ID, that will\nbe needed in the next step (something like ",(0,i.jsx)(n.code,{children:"ami-0e18e9d7b8c037ec2"}),")."]}),"\n",(0,i.jsxs)(n.blockquote,{children:["\n",(0,i.jsxs)(n.p,{children:["The other ",(0,i.jsx)(n.code,{children:"pkr.hcl"})," file in this directory (",(0,i.jsx)(n.strong,{children:"standalone.pkr.hcl"}),") includes configuration for deploying just a standalone LiveCompositor\ninstance, so you can also go that route, but the rest of this guide assumes you are using the provided Membrane project."]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["Open ",(0,i.jsx)(n.strong,{children:"aws-ec2-terraform/main.tf"}),", find ",(0,i.jsx)(n.code,{children:"aws_instance.demo_instance"})," definition and update the ",(0,i.jsx)(n.code,{children:"ami"})," field with the AMI ID from the previous step."]}),"\n",(0,i.jsxs)(n.p,{children:["In ",(0,i.jsx)(n.strong,{children:"aws-ec2-terraform"})," directory run:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:"terraform apply\n"})}),"\n",(0,i.jsx)(n.h3,{id:"cpugpu",children:(0,i.jsx)(n.code,{children:"CPU+GPU"})}),"\n",(0,i.jsxs)(n.p,{children:["Go to ",(0,i.jsx)(n.strong,{children:"aws-ec2-terraform/packer"})," directory and run"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:'packer build -var "with-gpu=true" membrane.pkr.hcl\n'})}),"\n",(0,i.jsxs)(n.p,{children:["to build an AMI image with an example Membrane project. At the end of the process, the terminal will print the AMI ID that, will\nbe needed in the next step (something like ",(0,i.jsx)(n.code,{children:"ami-0e18e9d7b8c037ec2"}),")."]}),"\n",(0,i.jsxs)(n.p,{children:["Open ",(0,i.jsx)(n.strong,{children:"aws-ec2-terraform/main.tf"}),", find ",(0,i.jsx)(n.code,{children:"aws_instance.demo_instance"})," definition and update the ",(0,i.jsx)(n.code,{children:"ami"})," field with the AMI ID from the previous step."]}),"\n",(0,i.jsxs)(n.p,{children:["In ",(0,i.jsx)(n.strong,{children:"aws-ec2-terraform"})," directory run:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-bash",children:'terraform apply -var="with-gpu=true"\n'})}),"\n",(0,i.jsx)(n.admonition,{type:"note",children:(0,i.jsxs)(n.p,{children:["Instances with GPU like ",(0,i.jsx)(n.code,{children:"g4dn.xlarge"})," are not available by default on AWS. You will need to request a quota increase from the AWS team to use them."]})}),"\n",(0,i.jsx)(n.h3,{id:"how-to-use",children:"How to use"}),"\n",(0,i.jsx)(n.p,{children:"After everything is deployed you can open your AWS dashboard and find the public IP of the newly deployed instance."}),"\n",(0,i.jsx)(n.p,{children:"To test the service, run in separate terminals:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["To receive the output stream","\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"ffplay http://YOUR_INSTANCE_IP:9001/index.m3u8\n"})}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["To send an example input stream","\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{children:"ffmpeg -re -f lavfi -i testsrc\n -vf scale=1280:720 -vcodec libx264 \\\n -profile:v baseline -preset fast -pix_fmt yuv420p \\\n -f flv rtmp://YOUR_INSTANCE_IP:9000/app/stream_key\n"})}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["You can run this command multiple times with different paths instead of ",(0,i.jsx)(n.code,{children:"app/stream_key"})," to connect multiple streams."]}),"\n"]}),"\n"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},28453:(e,n,r)=>{r.d(n,{R:()=>s,x:()=>l});var i=r(96540);const t={},o=i.createContext(t);function s(e){const n=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:s(e.components),i.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/30f5821a.2ae71d7f.js b/assets/js/30f5821a.2ae71d7f.js deleted file mode 100644 index 195e59221..000000000 --- a/assets/js/30f5821a.2ae71d7f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcompositor_live=self.webpackChunkcompositor_live||[]).push([[5829],{8050:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>f,contentTitle:()=>p,default:()=>A,frontMatter:()=>h,metadata:()=>y,toc:()=>b});var s=t(74848),i=t(28453),r=t(11470),a=t(19365);const o="data:image/webp;base64,UklGRpwGAABXRUJQVlA4IJAGAADwxACdASoABdACPu12tlMko6KhIAgAlh2J6W7hd2EbQAnsA99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvrAAA/v+dGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",c=t.p+"assets/images/basic_layouts_2-c5dfc4a7bc5c3c8cf38700ab270c2321.webp",l=t.p+"assets/images/basic_layouts_3-cd23fc29a3c6ba9fc0afb5400925926c.webp",u=t.p+"assets/images/basic_layouts_4-52e18a12081cc90cdac41e805195ef07.webp",d=t.p+"assets/images/basic_layouts_5-b417f13c80a11598f443eafcc7518041.webp",h={},p="Basic Layouts",y={id:"guides/basic-layouts",title:"Basic Layouts",description:"This guide will explain how to create simple scene that is combining input streams in a simple layout into single output stream.",source:"@site/pages/guides/basic-layouts.md",sourceDirName:"guides",slug:"/guides/basic-layouts",permalink:"/docs/guides/basic-layouts",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"sidebar",previous:{title:"How to receive output streams",permalink:"/docs/guides/receive-output"},next:{title:"Transitions (View/Rescaler)",permalink:"/docs/guides/view-transition"}},f={},b=[{value:"Configure inputs and output",id:"configure-inputs-and-output",level:3},{value:"Update scene to show an input",id:"update-scene-to-show-an-input",level:2},{value:"Resize input stream to fit inside the output",id:"resize-input-stream-to-fit-inside-the-output",level:2},{value:"Show both inputs side by side",id:"show-both-inputs-side-by-side",level:2},{value:"Place one of the inputs in the top right corner",id:"place-one-of-the-inputs-in-the-top-right-corner",level:2}];function m(e){const n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h1,{id:"basic-layouts",children:"Basic Layouts"}),"\n",(0,s.jsx)(n.p,{children:"This guide will explain how to create simple scene that is combining input streams in a simple layout into single output stream."}),"\n",(0,s.jsx)(n.h3,{id:"configure-inputs-and-output",children:"Configure inputs and output"}),"\n",(0,s.jsxs)(n.p,{children:['Start the compositor and configure 2 input streams and a single output stream as described in the "Simple scene"\nguide in the ',(0,s.jsx)(n.a,{href:"/docs/guides/quick-start#configure-inputs-and-output",children:'"Configure inputs and output"'})," section."]}),"\n",(0,s.jsx)(n.p,{children:"After configuration you should see the following output:"}),"\n",(0,s.jsxs)("div",{style:{textAlign:"center"},children:[(0,s.jsx)("img",{src:o,style:{width:600}}),(0,s.jsx)(n.p,{children:"Output stream"})]}),"\n",(0,s.jsx)(n.h2,{id:"update-scene-to-show-an-input",children:"Update scene to show an input"}),"\n",(0,s.jsxs)(n.p,{children:["Update output to render a ",(0,s.jsx)(n.a,{href:"/docs/api/components/View",children:(0,s.jsx)(n.code,{children:"View"})})," component with an ",(0,s.jsx)(n.a,{href:"/docs/api/components/InputStream",children:(0,s.jsx)(n.code,{children:"InputStream"})})," as its child."]}),"\n",(0,s.jsxs)(r.A,{queryString:"lang",children:[(0,s.jsx)(a.A,{value:"http",label:"HTTP",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-http",children:'POST: /api/output/output_1/update\nContent-Type: application/json\n\n{\n "video": {\n "root": {\n "type": "view",\n "background_color_rgba": "#4d4d4dff",\n "children": [\n { "type": "input_stream", "input_id": "input_1" }\n ]\n }\n }\n}\n'})})}),(0,s.jsx)(a.A,{value:"membrane",label:"Membrane Framework",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-elixir",children:'def handle_setup(ctx, state) do\n request = %LiveCompositor.Request.UpdateVideoOutput{\n output_id: "output_1",\n root: %{\n type: :view,\n background_color_rgba: "#4d4d4dff",\n children: [\n %{ type: :input_stream, input_id: :input_1 }\n ]\n }\n }\n {[notify_child: {:live_compositor, request}], state}\nend\n'})})})]}),"\n",(0,s.jsxs)(n.p,{children:["The input stream in the example has a resolution ",(0,s.jsx)(n.code,{children:"1920x1080"})," and it is rendered on the ",(0,s.jsx)(n.code,{children:"1270x720"})," output. As a result only part of the stream is visible."]}),"\n",(0,s.jsxs)("div",{style:{textAlign:"center"},children:[(0,s.jsx)("img",{src:c,style:{width:600}}),(0,s.jsx)(n.p,{children:"Output stream"})]}),"\n",(0,s.jsx)(n.h2,{id:"resize-input-stream-to-fit-inside-the-output",children:"Resize input stream to fit inside the output"}),"\n",(0,s.jsxs)(n.p,{children:["Wrap an ",(0,s.jsx)(n.a,{href:"/docs/api/components/InputStream",children:(0,s.jsx)(n.code,{children:"InputStream"})})," component with a ",(0,s.jsx)(n.a,{href:"/docs/api/components/Rescaler",children:(0,s.jsx)(n.code,{children:"Rescaler"})}),"."]}),"\n",(0,s.jsxs)(r.A,{queryString:"lang",children:[(0,s.jsx)(a.A,{value:"http",label:"HTTP",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-http",children:'POST: /api/output/output_1/update\nContent-Type: application/json\n\n{\n "video": {\n "root": {\n "type": "view",\n "background_color_rgba": "#4d4d4dff",\n "children": [\n {\n "type": "rescaler",\n "child": { "type": "input_stream", "input_id": "input_1" }\n }\n ]\n }\n }\n}\n'})})}),(0,s.jsx)(a.A,{value:"membrane",label:"Membrane Framework",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-elixir",children:'def handle_setup(ctx, state) do\n request = %LiveCompositor.Request.UpdateVideoOutput{\n output_id: "output_1",\n root: %{\n type: :view,\n background_color_rgba: "#4d4d4dff",\n children: [\n %{\n type: :rescaler,\n child: %{ type: :input_stream, input_id: :input_1 }\n }\n ]\n }\n }\n {[notify_child: {:live_compositor, request}], state}\nend\n'})})})]}),"\n",(0,s.jsx)(n.p,{children:"Input stream now fully fits inside the output."}),"\n",(0,s.jsxs)("div",{style:{textAlign:"center"},children:[(0,s.jsx)("img",{src:l,style:{width:600}}),(0,s.jsx)(n.p,{children:"Output stream"})]}),"\n",(0,s.jsxs)(n.admonition,{type:"note",children:[(0,s.jsx)(n.p,{children:"The same effect (for single input) could be achieved by either:"}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Setting ",(0,s.jsx)(n.code,{children:"InputStream"})," as a root directly. It would only work if aspect ratio of input and output is the same."]}),"\n",(0,s.jsxs)(n.li,{children:["Replacing ",(0,s.jsx)(n.code,{children:"View"})," component with a ",(0,s.jsx)(n.code,{children:"Rescaler"}),"."]}),"\n"]})]}),"\n",(0,s.jsx)(n.h2,{id:"show-both-inputs-side-by-side",children:"Show both inputs side by side"}),"\n",(0,s.jsxs)(n.p,{children:["Add another ",(0,s.jsx)(n.a,{href:"/docs/api/components/InputStream",children:(0,s.jsx)(n.code,{children:"InputStream"})})," wrapped with ",(0,s.jsx)(n.a,{href:"/docs/api/components/Rescaler",children:(0,s.jsx)(n.code,{children:"Rescaler"})}),"."]}),"\n",(0,s.jsxs)(r.A,{queryString:"lang",children:[(0,s.jsx)(a.A,{value:"http",label:"HTTP",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-http",children:'POST: /api/output/output_1/update\nContent-Type: application/json\n\n{\n "video": {\n "root": {\n "type": "view",\n "background_color_rgba": "#4d4d4dff",\n "children": [\n {\n "type": "rescaler",\n "child": { "type": "input_stream", "input_id": "input_1" }\n },\n {\n "type": "rescaler",\n "child": { "type": "input_stream", "input_id": "input_2" }\n }\n ]\n }\n }\n}\n'})})}),(0,s.jsx)(a.A,{value:"membrane",label:"Membrane Framework",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-elixir",children:'def handle_setup(ctx, state) do\n request = %LiveCompositor.Request.UpdateVideoOutput{\n output_id: "output_1",\n root: %{\n type: :view,\n background_color_rgba: "#4d4d4dff",\n children: [\n %{\n type: :rescaler,\n child: %{ type: :input_stream, input_id: :input_1 }\n },\n %{\n type: :rescaler,\n child: %{ type: :input_stream, input_id: :input_2 }\n }\n ]\n }\n }\n {[notify_child: {:live_compositor, request}], state}\nend\n'})})})]}),"\n",(0,s.jsxs)(n.p,{children:["By default, a ",(0,s.jsx)(n.code,{children:"View"})," component positions its children next to each other in a row. Each child without a defined width or\nheight fills available space inside the parent component. To place them in a column, set a ",(0,s.jsx)(n.code,{children:'direction: "column"'})," option."]}),"\n",(0,s.jsx)(n.p,{children:"In an example below we can see that:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"View"})," has 2 children components with unspecified dimensions, so they will divide available width exactly in half."]}),"\n",(0,s.jsxs)(n.li,{children:["Each ",(0,s.jsx)(n.code,{children:"Rescaler"})," component has a size ",(0,s.jsx)(n.code,{children:"640x720"})," (half of ",(0,s.jsx)(n.code,{children:"1280x720"}),"), but it needs to fit an input stream with ",(0,s.jsx)(n.code,{children:"16:9"})," aspect ratio."]}),"\n"]}),"\n",(0,s.jsxs)("div",{style:{textAlign:"center"},children:[(0,s.jsx)("img",{src:u,style:{width:600}}),(0,s.jsx)(n.p,{children:"Output stream"})]}),"\n",(0,s.jsx)(n.h2,{id:"place-one-of-the-inputs-in-the-top-right-corner",children:"Place one of the inputs in the top right corner"}),"\n",(0,s.jsxs)(n.p,{children:["Specify ",(0,s.jsx)(n.code,{children:"width"})," and ",(0,s.jsx)(n.code,{children:"height"})," of one of the ",(0,s.jsx)(n.code,{children:"Rescaler"})," components and position it using ",(0,s.jsx)(n.code,{children:"top"}),"/",(0,s.jsx)(n.code,{children:"right"})," options in the corner."]}),"\n",(0,s.jsxs)(r.A,{queryString:"lang",children:[(0,s.jsx)(a.A,{value:"http",label:"HTTP",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-http",children:'POST: /api/output/output_1/update\nContent-Type: application/json\n\n{\n "video": {\n "root": {\n "type": "view",\n "background_color_rgba": "#4d4d4dff",\n "children": [\n {\n "type": "rescaler",\n "child": { "type": "input_stream", "input_id": "input_1" }\n },\n {\n "type": "rescaler",\n "width": 320,\n "height": 180,\n "top": 20,\n "right": 20,\n "child": { "type": "input_stream", "input_id": "input_2" }\n }\n ]\n }\n }\n}\n'})})}),(0,s.jsx)(a.A,{value:"membrane",label:"Membrane Framework",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-elixir",children:'def handle_setup(ctx, state) do\n request = %LiveCompositor.Request.UpdateVideoOutput{\n output_id: "output_1",\n root: %{\n type: :view,\n background_color_rgba: "#4d4d4dff",\n children: [\n %{\n type: :rescaler,\n child: %{ type: :input_stream, input_id: :input_1 }\n },\n %{\n type: :rescaler,\n width: 320,\n height: 180,\n top: 20,\n right: 20,\n child: %{ type: :input_stream, input_id: :input_2 }\n }\n ]\n }\n }\n {[notify_child: {:live_compositor, request}], state}\nend\n'})})})]}),"\n",(0,s.jsxs)(n.p,{children:["When you specify ",(0,s.jsx)(n.code,{children:"top"}),"/",(0,s.jsx)(n.code,{children:"right"})," options on the ",(0,s.jsx)(n.code,{children:"Rescaler"})," component, the ",(0,s.jsx)(n.code,{children:"View"})," component does not take that component\ninto account when calculating the row layout of its children. See ",(0,s.jsx)(n.a,{href:"/docs/api/components/View#absolute-positioning",children:"absolute positioning"})," to learn more."]}),"\n",(0,s.jsx)(n.p,{children:"As a result:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"The first child extends to the full width of a parent."}),"\n",(0,s.jsx)(n.li,{children:"The second component takes the specified size, and it is positioned in the top-right corner (20px from border)."}),"\n"]}),"\n",(0,s.jsxs)("div",{style:{textAlign:"center"},children:[(0,s.jsx)("img",{src:d,style:{width:600}}),(0,s.jsx)(n.p,{children:"Output stream"})]})]})}function A(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(m,{...e})}):m(e)}},19365:(e,n,t)=>{t.d(n,{A:()=>a});t(96540);var s=t(18215);const i={tabItem:"tabItem_Ymn6"};var r=t(74848);function a(e){let{children:n,hidden:t,className:a}=e;return(0,r.jsx)("div",{role:"tabpanel",className:(0,s.A)(i.tabItem,a),hidden:t,children:n})}},11470:(e,n,t)=>{t.d(n,{A:()=>g});var s=t(96540),i=t(18215),r=t(23104),a=t(56347),o=t(205),c=t(57485),l=t(31682),u=t(89466);function d(e){return s.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,s.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function h(e){const{values:n,children:t}=e;return(0,s.useMemo)((()=>{const e=n??function(e){return d(e).map((e=>{let{props:{value:n,label:t,attributes:s,default:i}}=e;return{value:n,label:t,attributes:s,default:i}}))}(t);return function(e){const n=(0,l.X)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[n,t])}function p(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function y(e){let{queryString:n=!1,groupId:t}=e;const i=(0,a.W6)(),r=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,c.aZ)(r),(0,s.useCallback)((e=>{if(!r)return;const n=new URLSearchParams(i.location.search);n.set(r,e),i.replace({...i.location,search:n.toString()})}),[r,i])]}function f(e){const{defaultValue:n,queryString:t=!1,groupId:i}=e,r=h(e),[a,c]=(0,s.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the component requires at least one children component");if(n){if(!p({value:n,tabValues:t}))throw new Error(`Docusaurus error: The has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const s=t.find((e=>e.default))??t[0];if(!s)throw new Error("Unexpected error: 0 tabValues");return s.value}({defaultValue:n,tabValues:r}))),[l,d]=y({queryString:t,groupId:i}),[f,b]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[i,r]=(0,u.Dv)(t);return[i,(0,s.useCallback)((e=>{t&&r.set(e)}),[t,r])]}({groupId:i}),m=(()=>{const e=l??f;return p({value:e,tabValues:r})?e:null})();(0,o.A)((()=>{m&&c(m)}),[m]);return{selectedValue:a,selectValue:(0,s.useCallback)((e=>{if(!p({value:e,tabValues:r}))throw new Error(`Can't select invalid tab value=${e}`);c(e),d(e),b(e)}),[d,b,r]),tabValues:r}}var b=t(92303);const m={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var A=t(74848);function k(e){let{className:n,block:t,selectedValue:s,selectValue:a,tabValues:o}=e;const c=[],{blockElementScrollPositionUntilNextRender:l}=(0,r.a_)(),u=e=>{const n=e.currentTarget,t=c.indexOf(n),i=o[t].value;i!==s&&(l(n),a(i))},d=e=>{let n=null;switch(e.key){case"Enter":u(e);break;case"ArrowRight":{const t=c.indexOf(e.currentTarget)+1;n=c[t]??c[0];break}case"ArrowLeft":{const t=c.indexOf(e.currentTarget)-1;n=c[t]??c[c.length-1];break}}n?.focus()};return(0,A.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,i.A)("tabs",{"tabs--block":t},n),children:o.map((e=>{let{value:n,label:t,attributes:r}=e;return(0,A.jsx)("li",{role:"tab",tabIndex:s===n?0:-1,"aria-selected":s===n,ref:e=>c.push(e),onKeyDown:d,onClick:u,...r,className:(0,i.A)("tabs__item",m.tabItem,r?.className,{"tabs__item--active":s===n}),children:t??n},n)}))})}function v(e){let{lazy:n,children:t,selectedValue:i}=e;const r=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=r.find((e=>e.props.value===i));return e?(0,s.cloneElement)(e,{className:"margin-top--md"}):null}return(0,A.jsx)("div",{className:"margin-top--md",children:r.map(((e,n)=>(0,s.cloneElement)(e,{key:n,hidden:e.props.value!==i})))})}function x(e){const n=f(e);return(0,A.jsxs)("div",{className:(0,i.A)("tabs-container",m.tabList),children:[(0,A.jsx)(k,{...e,...n}),(0,A.jsx)(v,{...e,...n})]})}function g(e){const n=(0,b.A)();return(0,A.jsx)(x,{...e,children:d(e.children)},String(n))}},28453:(e,n,t)=>{t.d(n,{R:()=>a,x:()=>o});var s=t(96540);const i={},r=s.createContext(i);function a(e){const n=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/30f5821a.b6a9293d.js b/assets/js/30f5821a.b6a9293d.js new file mode 100644 index 000000000..91433d90f --- /dev/null +++ b/assets/js/30f5821a.b6a9293d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcompositor_live=self.webpackChunkcompositor_live||[]).push([[5829],{8050:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>f,contentTitle:()=>p,default:()=>A,frontMatter:()=>h,metadata:()=>y,toc:()=>b});var s=t(74848),i=t(28453),r=t(11470),a=t(19365);const c="data:image/webp;base64,UklGRpwGAABXRUJQVlA4IJAGAADwxACdASoABdACPu12tlMko6KhIAgAlh2J6W7hd2EbQAnsA99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvrAAA/v+dGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",o=t.p+"assets/images/basic_layouts_2-c5dfc4a7bc5c3c8cf38700ab270c2321.webp",l=t.p+"assets/images/basic_layouts_3-cd23fc29a3c6ba9fc0afb5400925926c.webp",u=t.p+"assets/images/basic_layouts_4-52e18a12081cc90cdac41e805195ef07.webp",d=t.p+"assets/images/basic_layouts_5-b417f13c80a11598f443eafcc7518041.webp",h={},p="Basic Layouts",y={id:"guides/basic-layouts",title:"Basic Layouts",description:"This guide will explain how to create simple scene that is combining input streams in a simple layout into single output stream.",source:"@site/pages/guides/basic-layouts.md",sourceDirName:"guides",slug:"/guides/basic-layouts",permalink:"/docs/guides/basic-layouts",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"sidebar",previous:{title:"How to receive output streams",permalink:"/docs/guides/receive-output"},next:{title:"Transitions (View/Rescaler)",permalink:"/docs/guides/view-transition"}},f={},b=[{value:"Configure inputs and output",id:"configure-inputs-and-output",level:3},{value:"Update scene to show an input",id:"update-scene-to-show-an-input",level:2},{value:"Resize input stream to fit inside the output",id:"resize-input-stream-to-fit-inside-the-output",level:2},{value:"Show both inputs side by side",id:"show-both-inputs-side-by-side",level:2},{value:"Place one of the inputs in the top right corner",id:"place-one-of-the-inputs-in-the-top-right-corner",level:2}];function m(e){const n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h1,{id:"basic-layouts",children:"Basic Layouts"}),"\n",(0,s.jsx)(n.p,{children:"This guide will explain how to create simple scene that is combining input streams in a simple layout into single output stream."}),"\n",(0,s.jsx)(n.h3,{id:"configure-inputs-and-output",children:"Configure inputs and output"}),"\n",(0,s.jsxs)(n.p,{children:['Start the compositor and configure 2 input streams and a single output stream as described in the "Simple scene"\nguide in the ',(0,s.jsx)(n.a,{href:"/docs/guides/quick-start#configure-inputs-and-output",children:'"Configure inputs and output"'})," section."]}),"\n",(0,s.jsx)(n.p,{children:"After configuration you should see the following output:"}),"\n",(0,s.jsxs)("div",{style:{textAlign:"center"},children:[(0,s.jsx)("img",{src:c,style:{width:600}}),(0,s.jsx)(n.p,{children:"Output stream"})]}),"\n",(0,s.jsx)(n.h2,{id:"update-scene-to-show-an-input",children:"Update scene to show an input"}),"\n",(0,s.jsxs)(n.p,{children:["Update output to render a ",(0,s.jsx)(n.a,{href:"/docs/api/components/View",children:(0,s.jsx)(n.code,{children:"View"})})," component with an ",(0,s.jsx)(n.a,{href:"/docs/api/components/InputStream",children:(0,s.jsx)(n.code,{children:"InputStream"})})," as its child."]}),"\n",(0,s.jsxs)(r.A,{queryString:"lang",children:[(0,s.jsx)(a.A,{value:"react",label:"React",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-tsx",children:'function App() {\n return (\n \n \n \n )\n}\n'})})}),(0,s.jsx)(a.A,{value:"http",label:"HTTP",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-http",children:'POST: /api/output/output_1/update\nContent-Type: application/json\n\n{\n "video": {\n "root": {\n "type": "view",\n "background_color_rgba": "#4d4d4dff",\n "children": [\n { "type": "input_stream", "input_id": "input_1" }\n ]\n }\n }\n}\n'})})}),(0,s.jsx)(a.A,{value:"membrane",label:"Membrane Framework",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-elixir",children:'def handle_setup(ctx, state) do\n request = %LiveCompositor.Request.UpdateVideoOutput{\n output_id: "output_1",\n root: %{\n type: :view,\n background_color_rgba: "#4d4d4dff",\n children: [\n %{ type: :input_stream, input_id: :input_1 }\n ]\n }\n }\n {[notify_child: {:live_compositor, request}], state}\nend\n'})})})]}),"\n",(0,s.jsxs)(n.p,{children:["The input stream in the example has a resolution ",(0,s.jsx)(n.code,{children:"1920x1080"})," and it is rendered on the ",(0,s.jsx)(n.code,{children:"1270x720"})," output. As a result only part of the stream is visible."]}),"\n",(0,s.jsxs)("div",{style:{textAlign:"center"},children:[(0,s.jsx)("img",{src:o,style:{width:600}}),(0,s.jsx)(n.p,{children:"Output stream"})]}),"\n",(0,s.jsx)(n.h2,{id:"resize-input-stream-to-fit-inside-the-output",children:"Resize input stream to fit inside the output"}),"\n",(0,s.jsxs)(n.p,{children:["Wrap an ",(0,s.jsx)(n.a,{href:"/docs/api/components/InputStream",children:(0,s.jsx)(n.code,{children:"InputStream"})})," component with a ",(0,s.jsx)(n.a,{href:"/docs/api/components/Rescaler",children:(0,s.jsx)(n.code,{children:"Rescaler"})}),"."]}),"\n",(0,s.jsxs)(r.A,{queryString:"lang",children:[(0,s.jsx)(a.A,{value:"react",label:"React",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-tsx",children:'function App() {\n return (\n \n \n \n \n \n )\n}\n'})})}),(0,s.jsx)(a.A,{value:"http",label:"HTTP",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-http",children:'POST: /api/output/output_1/update\nContent-Type: application/json\n\n{\n "video": {\n "root": {\n "type": "view",\n "background_color_rgba": "#4d4d4dff",\n "children": [\n {\n "type": "rescaler",\n "child": { "type": "input_stream", "input_id": "input_1" }\n }\n ]\n }\n }\n}\n'})})}),(0,s.jsx)(a.A,{value:"membrane",label:"Membrane Framework",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-elixir",children:'def handle_setup(ctx, state) do\n request = %LiveCompositor.Request.UpdateVideoOutput{\n output_id: "output_1",\n root: %{\n type: :view,\n background_color_rgba: "#4d4d4dff",\n children: [\n %{\n type: :rescaler,\n child: %{ type: :input_stream, input_id: :input_1 }\n }\n ]\n }\n }\n {[notify_child: {:live_compositor, request}], state}\nend\n'})})})]}),"\n",(0,s.jsx)(n.p,{children:"Input stream now fully fits inside the output."}),"\n",(0,s.jsxs)("div",{style:{textAlign:"center"},children:[(0,s.jsx)("img",{src:l,style:{width:600}}),(0,s.jsx)(n.p,{children:"Output stream"})]}),"\n",(0,s.jsxs)(n.admonition,{type:"note",children:[(0,s.jsx)(n.p,{children:"The same effect (for single input) could be achieved by either:"}),(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Setting ",(0,s.jsx)(n.code,{children:"InputStream"})," as a root directly. It would only work if aspect ratio of input and output is the same."]}),"\n",(0,s.jsxs)(n.li,{children:["Replacing ",(0,s.jsx)(n.code,{children:"View"})," component with a ",(0,s.jsx)(n.code,{children:"Rescaler"}),"."]}),"\n"]})]}),"\n",(0,s.jsx)(n.h2,{id:"show-both-inputs-side-by-side",children:"Show both inputs side by side"}),"\n",(0,s.jsxs)(n.p,{children:["Add another ",(0,s.jsx)(n.a,{href:"/docs/api/components/InputStream",children:(0,s.jsx)(n.code,{children:"InputStream"})})," wrapped with ",(0,s.jsx)(n.a,{href:"/docs/api/components/Rescaler",children:(0,s.jsx)(n.code,{children:"Rescaler"})}),"."]}),"\n",(0,s.jsxs)(r.A,{queryString:"lang",children:[(0,s.jsx)(a.A,{value:"react",label:"React",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-tsx",children:'function App() {\n return (\n \n \n \n \n \n \n \n \n )\n}\n'})})}),(0,s.jsx)(a.A,{value:"http",label:"HTTP",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-http",children:'POST: /api/output/output_1/update\nContent-Type: application/json\n\n{\n "video": {\n "root": {\n "type": "view",\n "background_color_rgba": "#4d4d4dff",\n "children": [\n {\n "type": "rescaler",\n "child": { "type": "input_stream", "input_id": "input_1" }\n },\n {\n "type": "rescaler",\n "child": { "type": "input_stream", "input_id": "input_2" }\n }\n ]\n }\n }\n}\n'})})}),(0,s.jsx)(a.A,{value:"membrane",label:"Membrane Framework",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-elixir",children:'def handle_setup(ctx, state) do\n request = %LiveCompositor.Request.UpdateVideoOutput{\n output_id: "output_1",\n root: %{\n type: :view,\n background_color_rgba: "#4d4d4dff",\n children: [\n %{\n type: :rescaler,\n child: %{ type: :input_stream, input_id: :input_1 }\n },\n %{\n type: :rescaler,\n child: %{ type: :input_stream, input_id: :input_2 }\n }\n ]\n }\n }\n {[notify_child: {:live_compositor, request}], state}\nend\n'})})})]}),"\n",(0,s.jsxs)(n.p,{children:["By default, a ",(0,s.jsx)(n.code,{children:"View"})," component positions its children next to each other in a row. Each child without a defined width or\nheight fills available space inside the parent component. To place them in a column, set a ",(0,s.jsx)(n.code,{children:'direction: "column"'})," option."]}),"\n",(0,s.jsx)(n.p,{children:"In an example below we can see that:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"View"})," has 2 children components with unspecified dimensions, so they will divide available width exactly in half."]}),"\n",(0,s.jsxs)(n.li,{children:["Each ",(0,s.jsx)(n.code,{children:"Rescaler"})," component has a size ",(0,s.jsx)(n.code,{children:"640x720"})," (half of ",(0,s.jsx)(n.code,{children:"1280x720"}),"), but it needs to fit an input stream with ",(0,s.jsx)(n.code,{children:"16:9"})," aspect ratio."]}),"\n"]}),"\n",(0,s.jsxs)("div",{style:{textAlign:"center"},children:[(0,s.jsx)("img",{src:u,style:{width:600}}),(0,s.jsx)(n.p,{children:"Output stream"})]}),"\n",(0,s.jsx)(n.h2,{id:"place-one-of-the-inputs-in-the-top-right-corner",children:"Place one of the inputs in the top right corner"}),"\n",(0,s.jsxs)(n.p,{children:["Specify ",(0,s.jsx)(n.code,{children:"width"})," and ",(0,s.jsx)(n.code,{children:"height"})," of one of the ",(0,s.jsx)(n.code,{children:"Rescaler"})," components and position it using ",(0,s.jsx)(n.code,{children:"top"}),"/",(0,s.jsx)(n.code,{children:"right"})," options in the corner."]}),"\n",(0,s.jsxs)(r.A,{queryString:"lang",children:[(0,s.jsx)(a.A,{value:"react",label:"React",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-tsx",children:'function App() {\n return (\n \n \n \n \n \n \n \n \n )\n}\n'})})}),(0,s.jsx)(a.A,{value:"http",label:"HTTP",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-http",children:'POST: /api/output/output_1/update\nContent-Type: application/json\n\n{\n "video": {\n "root": {\n "type": "view",\n "background_color_rgba": "#4d4d4dff",\n "children": [\n {\n "type": "rescaler",\n "child": { "type": "input_stream", "input_id": "input_1" }\n },\n {\n "type": "rescaler",\n "width": 320,\n "height": 180,\n "top": 20,\n "right": 20,\n "child": { "type": "input_stream", "input_id": "input_2" }\n }\n ]\n }\n }\n}\n'})})}),(0,s.jsx)(a.A,{value:"membrane",label:"Membrane Framework",children:(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-elixir",children:'def handle_setup(ctx, state) do\n request = %LiveCompositor.Request.UpdateVideoOutput{\n output_id: "output_1",\n root: %{\n type: :view,\n background_color_rgba: "#4d4d4dff",\n children: [\n %{\n type: :rescaler,\n child: %{ type: :input_stream, input_id: :input_1 }\n },\n %{\n type: :rescaler,\n width: 320,\n height: 180,\n top: 20,\n right: 20,\n child: %{ type: :input_stream, input_id: :input_2 }\n }\n ]\n }\n }\n {[notify_child: {:live_compositor, request}], state}\nend\n'})})})]}),"\n",(0,s.jsxs)(n.p,{children:["When you specify ",(0,s.jsx)(n.code,{children:"top"}),"/",(0,s.jsx)(n.code,{children:"right"})," options on the ",(0,s.jsx)(n.code,{children:"Rescaler"})," component, the ",(0,s.jsx)(n.code,{children:"View"})," component does not take that component\ninto account when calculating the row layout of its children. See ",(0,s.jsx)(n.a,{href:"/docs/api/components/View#absolute-positioning",children:"absolute positioning"})," to learn more."]}),"\n",(0,s.jsx)(n.p,{children:"As a result:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"The first child extends to the full width of a parent."}),"\n",(0,s.jsx)(n.li,{children:"The second component takes the specified size, and it is positioned in the top-right corner (20px from border)."}),"\n"]}),"\n",(0,s.jsxs)("div",{style:{textAlign:"center"},children:[(0,s.jsx)("img",{src:d,style:{width:600}}),(0,s.jsx)(n.p,{children:"Output stream"})]})]})}function A(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(m,{...e})}):m(e)}},19365:(e,n,t)=>{t.d(n,{A:()=>a});t(96540);var s=t(18215);const i={tabItem:"tabItem_Ymn6"};var r=t(74848);function a(e){let{children:n,hidden:t,className:a}=e;return(0,r.jsx)("div",{role:"tabpanel",className:(0,s.A)(i.tabItem,a),hidden:t,children:n})}},11470:(e,n,t)=>{t.d(n,{A:()=>g});var s=t(96540),i=t(18215),r=t(23104),a=t(56347),c=t(205),o=t(57485),l=t(31682),u=t(89466);function d(e){return s.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,s.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function h(e){const{values:n,children:t}=e;return(0,s.useMemo)((()=>{const e=n??function(e){return d(e).map((e=>{let{props:{value:n,label:t,attributes:s,default:i}}=e;return{value:n,label:t,attributes:s,default:i}}))}(t);return function(e){const n=(0,l.X)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[n,t])}function p(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function y(e){let{queryString:n=!1,groupId:t}=e;const i=(0,a.W6)(),r=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,o.aZ)(r),(0,s.useCallback)((e=>{if(!r)return;const n=new URLSearchParams(i.location.search);n.set(r,e),i.replace({...i.location,search:n.toString()})}),[r,i])]}function f(e){const{defaultValue:n,queryString:t=!1,groupId:i}=e,r=h(e),[a,o]=(0,s.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the component requires at least one children component");if(n){if(!p({value:n,tabValues:t}))throw new Error(`Docusaurus error: The has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const s=t.find((e=>e.default))??t[0];if(!s)throw new Error("Unexpected error: 0 tabValues");return s.value}({defaultValue:n,tabValues:r}))),[l,d]=y({queryString:t,groupId:i}),[f,b]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[i,r]=(0,u.Dv)(t);return[i,(0,s.useCallback)((e=>{t&&r.set(e)}),[t,r])]}({groupId:i}),m=(()=>{const e=l??f;return p({value:e,tabValues:r})?e:null})();(0,c.A)((()=>{m&&o(m)}),[m]);return{selectedValue:a,selectValue:(0,s.useCallback)((e=>{if(!p({value:e,tabValues:r}))throw new Error(`Can't select invalid tab value=${e}`);o(e),d(e),b(e)}),[d,b,r]),tabValues:r}}var b=t(92303);const m={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var A=t(74848);function k(e){let{className:n,block:t,selectedValue:s,selectValue:a,tabValues:c}=e;const o=[],{blockElementScrollPositionUntilNextRender:l}=(0,r.a_)(),u=e=>{const n=e.currentTarget,t=o.indexOf(n),i=c[t].value;i!==s&&(l(n),a(i))},d=e=>{let n=null;switch(e.key){case"Enter":u(e);break;case"ArrowRight":{const t=o.indexOf(e.currentTarget)+1;n=o[t]??o[0];break}case"ArrowLeft":{const t=o.indexOf(e.currentTarget)-1;n=o[t]??o[o.length-1];break}}n?.focus()};return(0,A.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,i.A)("tabs",{"tabs--block":t},n),children:c.map((e=>{let{value:n,label:t,attributes:r}=e;return(0,A.jsx)("li",{role:"tab",tabIndex:s===n?0:-1,"aria-selected":s===n,ref:e=>o.push(e),onKeyDown:d,onClick:u,...r,className:(0,i.A)("tabs__item",m.tabItem,r?.className,{"tabs__item--active":s===n}),children:t??n},n)}))})}function v(e){let{lazy:n,children:t,selectedValue:i}=e;const r=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=r.find((e=>e.props.value===i));return e?(0,s.cloneElement)(e,{className:"margin-top--md"}):null}return(0,A.jsx)("div",{className:"margin-top--md",children:r.map(((e,n)=>(0,s.cloneElement)(e,{key:n,hidden:e.props.value!==i})))})}function x(e){const n=f(e);return(0,A.jsxs)("div",{className:(0,i.A)("tabs-container",m.tabList),children:[(0,A.jsx)(k,{...e,...n}),(0,A.jsx)(v,{...e,...n})]})}function g(e){const n=(0,b.A)();return(0,A.jsx)(x,{...e,children:d(e.children)},String(n))}},28453:(e,n,t)=>{t.d(n,{R:()=>a,x:()=>c});var s=t(96540);const i={},r=s.createContext(i);function a(e){const n=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/3ad3ec66.d339cb2b.js b/assets/js/3ad3ec66.d339cb2b.js new file mode 100644 index 000000000..767ab4d3e --- /dev/null +++ b/assets/js/3ad3ec66.d339cb2b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcompositor_live=self.webpackChunkcompositor_live||[]).push([[1244],{28703:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>c,toc:()=>d});var s=i(74848),t=i(28453);const o={},r="Where to go next?",c={id:"intro/where-next",title:"Where to go next?",description:"Guides",source:"@site/pages/intro/where-next.md",sourceDirName:"intro",slug:"/intro/where-next",permalink:"/docs/intro/where-next",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"sidebar",previous:{title:"How to use it?",permalink:"/docs/intro/how-to-use"},next:{title:"Guides",permalink:"/docs/category/guides"}},a={},d=[{value:"Guides",id:"guides",level:2},{value:"Language specific documentation",id:"language-specific-documentation",level:2},{value:"TypeScript/React",id:"typescriptreact",level:3},{value:"Standalone",id:"standalone",level:3},{value:"Membrane Framework plugin",id:"membrane-framework-plugin",level:3}];function l(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,t.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h1,{id:"where-to-go-next",children:"Where to go next?"}),"\n",(0,s.jsx)(n.h2,{id:"guides",children:"Guides"}),"\n",(0,s.jsxs)(n.p,{children:["To get started check out our ",(0,s.jsx)(n.a,{href:"../category/guides",children:(0,s.jsx)(n.code,{children:"Guides"})})," section that will walk you through common scenarios."]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"/docs/guides/quick-start",children:(0,s.jsx)(n.code,{children:"Quick start"})})," basic video composing and audio mixing setup."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"/docs/guides/deliver-input",children:(0,s.jsx)(n.code,{children:"Deliver input streams"})})," explains and shows examples of streaming multimedia to the LiveCompositor and use them for mixing/composition."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"/docs/guides/receive-output",children:(0,s.jsx)(n.code,{children:"Receive output streams"})})," explains and shows examples of receiving streams with results of mixing/composition from the LiveCompositor"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"/docs/guides/basic-layouts",children:(0,s.jsx)(n.code,{children:"Basic Layouts"})})," describes how to achieve a few of the most basic layouts when composing video."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"/docs/guides/view-transition",children:(0,s.jsx)(n.code,{children:"Transitions (View/Rescaler)"})})," shows a few basic examples of animated transitions on ",(0,s.jsx)(n.code,{children:"View"}),"/",(0,s.jsx)(n.code,{children:"Rescaler"})," components."]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["The main concept and basic abstractions that the LiveCompositor operates on are described in the ",(0,s.jsx)(n.a,{href:"/docs/concept/overview",children:(0,s.jsx)(n.code,{children:"Concepts"})})," section."]}),"\n",(0,s.jsx)(n.h2,{id:"language-specific-documentation",children:"Language specific documentation"}),"\n",(0,s.jsx)(n.p,{children:"There are a few resources that are specific to language/method of deployment. Check out sections below that apply to you."}),"\n",(0,s.jsx)(n.h3,{id:"typescriptreact",children:"TypeScript/React"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"/docs/typescript/api",children:"SDK Reference"})}),"\n",(0,s.jsxs)(n.li,{children:["Check out examples in our ",(0,s.jsx)(n.a,{href:"https://github.com/software-mansion/live-compositor/tree/master/ts/examples",children:"repo"}),"."]}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"standalone",children:"Standalone"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"/docs/api/routes",children:"HTTP API Reference"})}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"membrane-framework-plugin",children:"Membrane Framework plugin"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://hexdocs.pm/membrane_live_compositor_plugin/readme.html",children:"HexDocs documentation"})}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},28453:(e,n,i)=>{i.d(n,{R:()=>r,x:()=>c});var s=i(96540);const t={},o=s.createContext(t);function r(e){const n=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),s.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/4762.bae6a07b.js b/assets/js/4762.bae6a07b.js deleted file mode 100644 index aedb0398a..000000000 --- a/assets/js/4762.bae6a07b.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkcompositor_live=self.webpackChunkcompositor_live||[]).push([[4762],{20053:(t,e,r)=>{"use strict";function n(t){var e,r,o="";if("string"==typeof t||"number"==typeof t)o+=t;else if("object"==typeof t)if(Array.isArray(t))for(e=0;eo});const o=function(){for(var t,e,r=0,o="";r{"use strict";r.d(e,{vwk:()=>o});var n=r(10383);function o(t){return(0,n.k5)({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M480 160H32c-17.673 0-32-14.327-32-32V64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24z"}}]})(t)}},27008:(t,e,r)=>{"use strict";r.d(e,{AnD:()=>u,FSj:()=>c,hL4:()=>a,q_t:()=>o,vd0:()=>i,wZu:()=>s});var n=r(10383);function o(t){return(0,n.k5)({tag:"svg",attr:{viewBox:"0 0 640 512"},child:[{tag:"path",attr:{d:"M349.9 236.3h-66.1v-59.4h66.1v59.4zm0-204.3h-66.1v60.7h66.1V32zm78.2 144.8H362v59.4h66.1v-59.4zm-156.3-72.1h-66.1v60.1h66.1v-60.1zm78.1 0h-66.1v60.1h66.1v-60.1zm276.8 100c-14.4-9.7-47.6-13.2-73.1-8.4-3.3-24-16.7-44.9-41.1-63.7l-14-9.3-9.3 14c-18.4 27.8-23.4 73.6-3.7 103.8-8.7 4.7-25.8 11.1-48.4 10.7H2.4c-8.7 50.8 5.8 116.8 44 162.1 37.1 43.9 92.7 66.2 165.4 66.2 157.4 0 273.9-72.5 328.4-204.2 21.4.4 67.6.1 91.3-45.2 1.5-2.5 6.6-13.2 8.5-17.1l-13.3-8.9zm-511.1-27.9h-66v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm-78.1-72.1h-66.1v60.1h66.1v-60.1z"}}]})(t)}function a(t){return(0,n.k5)({tag:"svg",attr:{viewBox:"0 0 496 512"},child:[{tag:"path",attr:{d:"M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"}}]})(t)}function i(t){return(0,n.k5)({tag:"svg",attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M96 0C43 0 0 43 0 96V416c0 53 43 96 96 96H384h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V384c17.7 0 32-14.3 32-32V32c0-17.7-14.3-32-32-32H384 96zm0 384H352v64H96c-17.7 0-32-14.3-32-32s14.3-32 32-32zm32-240c0-8.8 7.2-16 16-16H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H144c-8.8 0-16-7.2-16-16zm16 48H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H144c-8.8 0-16-7.2-16-16s7.2-16 16-16z"}}]})(t)}function c(t){return(0,n.k5)({tag:"svg",attr:{viewBox:"0 0 640 512"},child:[{tag:"path",attr:{d:"M392.8 1.2c-17-4.9-34.7 5-39.6 22l-128 448c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l128-448c4.9-17-5-34.7-22-39.6zm80.6 120.1c-12.5 12.5-12.5 32.8 0 45.3L562.7 256l-89.4 89.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-112-112c-12.5-12.5-32.8-12.5-45.3 0zm-306.7 0c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l112 112c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256l89.4-89.4c12.5-12.5 12.5-32.8 0-45.3z"}}]})(t)}function s(t){return(0,n.k5)({tag:"svg",attr:{viewBox:"0 0 640 512"},child:[{tag:"path",attr:{d:"M308.5 135.3c7.1-6.3 9.9-16.2 6.2-25c-2.3-5.3-4.8-10.5-7.6-15.5L304 89.4c-3-5-6.3-9.9-9.8-14.6c-5.7-7.6-15.7-10.1-24.7-7.1l-28.2 9.3c-10.7-8.8-23-16-36.2-20.9L199 27.1c-1.9-9.3-9.1-16.7-18.5-17.8C173.9 8.4 167.2 8 160.4 8h-.7c-6.8 0-13.5 .4-20.1 1.2c-9.4 1.1-16.6 8.6-18.5 17.8L115 56.1c-13.3 5-25.5 12.1-36.2 20.9L50.5 67.8c-9-3-19-.5-24.7 7.1c-3.5 4.7-6.8 9.6-9.9 14.6l-3 5.3c-2.8 5-5.3 10.2-7.6 15.6c-3.7 8.7-.9 18.6 6.2 25l22.2 19.8C32.6 161.9 32 168.9 32 176s.6 14.1 1.7 20.9L11.5 216.7c-7.1 6.3-9.9 16.2-6.2 25c2.3 5.3 4.8 10.5 7.6 15.6l3 5.2c3 5.1 6.3 9.9 9.9 14.6c5.7 7.6 15.7 10.1 24.7 7.1l28.2-9.3c10.7 8.8 23 16 36.2 20.9l6.1 29.1c1.9 9.3 9.1 16.7 18.5 17.8c6.7 .8 13.5 1.2 20.4 1.2s13.7-.4 20.4-1.2c9.4-1.1 16.6-8.6 18.5-17.8l6.1-29.1c13.3-5 25.5-12.1 36.2-20.9l28.2 9.3c9 3 19 .5 24.7-7.1c3.5-4.7 6.8-9.5 9.8-14.6l3.1-5.4c2.8-5 5.3-10.2 7.6-15.5c3.7-8.7 .9-18.6-6.2-25l-22.2-19.8c1.1-6.8 1.7-13.8 1.7-20.9s-.6-14.1-1.7-20.9l22.2-19.8zM112 176a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM504.7 500.5c6.3 7.1 16.2 9.9 25 6.2c5.3-2.3 10.5-4.8 15.5-7.6l5.4-3.1c5-3 9.9-6.3 14.6-9.8c7.6-5.7 10.1-15.7 7.1-24.7l-9.3-28.2c8.8-10.7 16-23 20.9-36.2l29.1-6.1c9.3-1.9 16.7-9.1 17.8-18.5c.8-6.7 1.2-13.5 1.2-20.4s-.4-13.7-1.2-20.4c-1.1-9.4-8.6-16.6-17.8-18.5L583.9 307c-5-13.3-12.1-25.5-20.9-36.2l9.3-28.2c3-9 .5-19-7.1-24.7c-4.7-3.5-9.6-6.8-14.6-9.9l-5.3-3c-5-2.8-10.2-5.3-15.6-7.6c-8.7-3.7-18.6-.9-25 6.2l-19.8 22.2c-6.8-1.1-13.8-1.7-20.9-1.7s-14.1 .6-20.9 1.7l-19.8-22.2c-6.3-7.1-16.2-9.9-25-6.2c-5.3 2.3-10.5 4.8-15.6 7.6l-5.2 3c-5.1 3-9.9 6.3-14.6 9.9c-7.6 5.7-10.1 15.7-7.1 24.7l9.3 28.2c-8.8 10.7-16 23-20.9 36.2L315.1 313c-9.3 1.9-16.7 9.1-17.8 18.5c-.8 6.7-1.2 13.5-1.2 20.4s.4 13.7 1.2 20.4c1.1 9.4 8.6 16.6 17.8 18.5l29.1 6.1c5 13.3 12.1 25.5 20.9 36.2l-9.3 28.2c-3 9-.5 19 7.1 24.7c4.7 3.5 9.5 6.8 14.6 9.8l5.4 3.1c5 2.8 10.2 5.3 15.5 7.6c8.7 3.7 18.6 .9 25-6.2l19.8-22.2c6.8 1.1 13.8 1.7 20.9 1.7s14.1-.6 20.9-1.7l19.8 22.2zM464 304a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"}}]})(t)}function u(t){return(0,n.k5)({tag:"svg",attr:{viewBox:"0 0 640 512"},child:[{tag:"path",attr:{d:"M579.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C206.5 251.2 213 330 263 380c56.5 56.5 148 56.5 204.5 0L579.8 267.7zM60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5L217.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C433.5 260.8 427 182 377 132c-56.5-56.5-148-56.5-204.5 0L60.2 244.3z"}}]})(t)}},37609:(t,e,r)=>{"use strict";r.d(e,{Dhs:()=>o,Iff:()=>a,W5P:()=>i});var n=r(10383);function o(t){return(0,n.k5)({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M201 16c-15 0-20 3.38-20 20v15h-45c-29.547 0-35 5.453-35 35v375c0 29.547 5.453 35 35 35h240c29.547 0 35-5.453 35-35V86c0-29.547-5.453-35-35-35h-45V36c0-16.62-5-20-20-20H201zm-48.094 69.813c4.666.02 10.594.187 18.094.187h170c40 0 35-5 35 35v305c0 40 5 35-35 35H171c-40 0-35 5-35-35V121c0-32.5-3.31-35.283 16.906-35.188zM161 101c-5.54 0-10 4.46-10 10v55c0 5.54 4.46 10 10 10h190c5.54 0 10-4.46 10-10v-55c0-5.54-4.46-10-10-10H161zm0 90c-5.54 0-10 4.46-10 10v55c0 5.54 4.46 10 10 10h190c5.54 0 10-4.46 10-10v-55c0-5.54-4.46-10-10-10H161zm0 90c-5.54 0-10 4.46-10 10v55c0 5.54 4.46 10 10 10h190c5.54 0 10-4.46 10-10v-55c0-5.54-4.46-10-10-10H161zm0 90c-5.54 0-10 4.46-10 10v55c0 5.54 4.46 10 10 10h190c5.54 0 10-4.46 10-10v-55c0-5.54-4.46-10-10-10H161z"}}]})(t)}function a(t){return(0,n.k5)({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M470.7 20L368.2 49.81l41.5-28.09c-26.2 5.92-59.3 17.5-100.9 36.19l-67.9 70.79L265 79.25c-23.3 12.96-48 29.95-71.8 49.85l-15.8 64.3-3.4-47.6c-23.5 21.6-45.6 45.6-63.9 70.9-19.23 26.5-34.26 54.5-41.79 82.4l-28.12-18.8c2.52 23.7 10.31 44.3 23.09 63.2l-33.62-10.3c7.64 23.5 20.13 38.7 41.25 51-11.83 33.3-17.38 68.1-23.34 102.8l18.4 3.1C87.31 277.4 237.9 141.8 374 81.72l6.9 17.38c-121.7 54.5-216.3 146.5-265.8 279.1 18.1.1 35.8-2.1 52.2-6.3l4.9-60.9 13.1 55.5c10.9-4 20.9-8.8 29.8-14.4l-20.7-43.5 32.8 34.8c8-6.4 14.6-13.6 19.6-21.5 30.4-47.5 62.2-94.7 124.8-134.2l-45.7-16.2 70.1 2.1c11.4-5.8 23.4-12.9 32.5-19.6l-49.7-4 74.7-17.6c5.8-5.8 11.2-11.9 16.1-18 17.3-21.94 29-44.78 26.2-65.55-1.3-10.39-7.5-20.16-17.6-25.63-2.5-1.3-5.2-2.45-7.5-3.22z"}}]})(t)}function i(t){return(0,n.k5)({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M256 54.28c-124.603 0-226 101.398-226 226 0 47.864 14.975 92.293 40.465 128.876l29.79-19.86c-17.188-24.545-28.708-53.362-32.696-84.577H96v-18H66.115c-.07-2.14-.115-4.284-.115-6.44 0-45.378 15.816-86.97 42.236-119.598l17.4 17.4 12.727-12.727-18.133-18.132C152.735 114.057 197.335 92.8 247 90.498v29.22h18V90.5c49.665 2.302 94.265 23.56 126.77 56.725l-18.133 18.132 12.726 12.727 17.4-17.4c26.42 32.63 42.237 74.22 42.237 119.6 0 2.154-.044 4.3-.115 6.437H416v18h28.44c-3.987 31.214-15.507 60.03-32.694 84.575l29.79 19.86C467.025 372.574 482 328.146 482 280.282c0-124.602-101.397-226-226-226zm15.83 66.23a144 160 0 0 1 74.608 100.062l49.966-17.568a160 160 0 0 0-4.3-7.012l-5.135 5.153-30.368-30.29-5.76-5.746 7.85-7.874a160 160 0 0 0-86.862-36.726zm156.15 89.844l-175.332 60.6C240.505 272.618 231 283.155 231 295.72c0 13.7 11.3 25 25 25 6.77 0 12.95-2.764 17.473-7.208L427.98 210.354zm-16.513 32.322l-60.713 40.72a144 160 0 0 1-56.6 108.323h76.057a160 160 0 0 0 39.763-68.572H398.48v-52.515h17.022a160 160 0 0 0-4.035-27.957zM128 421.72v36h256v-36H128z"}}]})(t)}},9826:(t,e,r)=>{"use strict";r.d(e,{doL:()=>o});var n=r(10383);function o(t){return(0,n.k5)({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M448 464a15.92 15.92 0 01-11.31-4.69l-384-384a16 16 0 0122.62-22.62l384 384A16 16 0 01448 464zM38.72 196.78C13.39 219.88 0 251.42 0 288c0 36 14.38 68.88 40.49 92.59C65.64 403.43 99.56 416 136 416h192.8a8 8 0 005.66-13.66L100.88 168.76a8 8 0 00-8-2C72 173.15 53.4 183.38 38.72 196.78zm437.87 194.45C499.76 372.78 512 345.39 512 312c0-57.57-42-90.58-87.56-100.75a16 16 0 01-12.12-12.39c-7.68-36.68-24.45-68.15-49.18-92A153.57 153.57 0 00256 64c-31.12 0-60.12 9-84.62 26.1a8 8 0 00-1.14 12.26L461.68 393.8a8 8 0 0010.2.93q2.43-1.68 4.71-3.5z"}}]})(t)}},10383:(t,e,r)=>{"use strict";r.d(e,{k5:()=>u,Vx:()=>a});var n=r(96540),o={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},a=n.createContext&&n.createContext(o),i=function(){return i=Object.assign||function(t){for(var e,r=1,n=arguments.length;r{"use strict";r.d(e,{Md6:()=>a,bXv:()=>o});var n=r(10383);function o(t){return(0,n.k5)({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"}},{tag:"path",attr:{d:"M12 3v9.28a4.39 4.39 0 00-1.5-.28C8.01 12 6 14.01 6 16.5S8.01 21 10.5 21c2.31 0 4.2-1.75 4.45-4H15V6h4V3h-7z"}}]})(t)}function a(t){return(0,n.k5)({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0V0z"}},{tag:"path",attr:{d:"M21 6h-7.59l3.29-3.29L16 2l-4 4-4-4-.71.71L10.59 6H3a2 2 0 00-2 2v12c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V8a2 2 0 00-2-2zm0 14H3V8h18v12zM9 10v8l7-4z"}}]})(t)}},8242:function(t,e,r){var n;"undefined"!=typeof self&&self,n=t=>(()=>{var e={7403:(t,e,r)=>{"use strict";r.d(e,{default:()=>z});var n=r(4087),o=r.n(n);const a=function(t){return new RegExp(/<[a-z][\s\S]*>/i).test(t)},i=function(t,e){return Math.floor(Math.random()*(e-t+1))+t};var c="TYPE_CHARACTER",s="REMOVE_CHARACTER",u="REMOVE_ALL",l="REMOVE_LAST_VISIBLE_NODE",p="PAUSE_FOR",f="CALL_FUNCTION",v="ADD_HTML_TAG_ELEMENT",h="CHANGE_DELETE_SPEED",d="CHANGE_DELAY",y="CHANGE_CURSOR",m="PASTE_STRING",b="HTML_TAG";function g(t){return g="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},g(t)}function _(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function w(t){for(var e=1;et.length)&&(e=t.length);for(var r=0,n=new Array(e);r1&&void 0!==arguments[1]?arguments[1]:null;if(a(t))return g.typeOutHTMLString(t,e);if(t){var r=(g.options||{}).stringSplitter,n="function"==typeof r?r(t):t.split("");g.typeCharacters(n,e)}return g})),O(this,"pasteString",(function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return a(t)?g.typeOutHTMLString(t,e,!0):(t&&g.addEventToQueue(m,{character:t,node:e}),g)})),O(this,"typeOutHTMLString",(function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2?arguments[2]:void 0,n=function(t){var e=document.createElement("div");return e.innerHTML=t,e.childNodes}(t);if(n.length>0)for(var o=0;o0&&void 0!==arguments[0]?arguments[0]:"natural";return g.addEventToQueue(u,{speed:t}),g})),O(this,"changeDeleteSpeed",(function(t){if(!t)throw new Error("Must provide new delete speed");return g.addEventToQueue(h,{speed:t}),g})),O(this,"changeDelay",(function(t){if(!t)throw new Error("Must provide new delay");return g.addEventToQueue(d,{delay:t}),g})),O(this,"changeCursor",(function(t){if(!t)throw new Error("Must provide new cursor");return g.addEventToQueue(y,{cursor:t}),g})),O(this,"deleteChars",(function(t){if(!t)throw new Error("Must provide amount of characters to delete");for(var e=0;e1&&void 0!==arguments[1]?arguments[1]:null;if(!t||!Array.isArray(t))throw new Error("Characters must be an array");return t.forEach((function(t){g.addEventToQueue(c,{character:t,node:e})})),g})),O(this,"removeCharacters",(function(t){if(!t||!Array.isArray(t))throw new Error("Characters must be an array");return t.forEach((function(){g.addEventToQueue(s)})),g})),O(this,"addEventToQueue",(function(t,e){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return g.addEventToStateProperty(t,e,r,"eventQueue")})),O(this,"addReverseCalledEvent",(function(t,e){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return g.options.loop?g.addEventToStateProperty(t,e,r,"reverseCalledEvents"):g})),O(this,"addEventToStateProperty",(function(t,e){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3?arguments[3]:void 0,o={eventName:t,eventArgs:e||{}};return g.state[n]=r?[o].concat(x(g.state[n])):[].concat(x(g.state[n]),[o]),g})),O(this,"runEventLoop",(function(){g.state.lastFrameTime||(g.state.lastFrameTime=Date.now());var t=Date.now(),e=t-g.state.lastFrameTime;if(!g.state.eventQueue.length){if(!g.options.loop)return;g.state.eventQueue=x(g.state.calledEvents),g.state.calledEvents=[],g.options=w({},g.state.initialOptions)}if(g.state.eventLoop=o()(g.runEventLoop),!g.state.eventLoopPaused){if(g.state.pauseUntil){if(t{var n=r(852)(r(5639),"DataView");t.exports=n},1989:(t,e,r)=>{var n=r(1789),o=r(401),a=r(7667),i=r(1327),c=r(1866);function s(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e{var n=r(7040),o=r(4125),a=r(2117),i=r(7518),c=r(4705);function s(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e{var n=r(852)(r(5639),"Map");t.exports=n},3369:(t,e,r)=>{var n=r(4785),o=r(1285),a=r(6e3),i=r(9916),c=r(5265);function s(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e{var n=r(852)(r(5639),"Promise");t.exports=n},8525:(t,e,r)=>{var n=r(852)(r(5639),"Set");t.exports=n},8668:(t,e,r)=>{var n=r(3369),o=r(619),a=r(2385);function i(t){var e=-1,r=null==t?0:t.length;for(this.__data__=new n;++e{var n=r(8407),o=r(7465),a=r(3779),i=r(7599),c=r(4758),s=r(4309);function u(t){var e=this.__data__=new n(t);this.size=e.size}u.prototype.clear=o,u.prototype.delete=a,u.prototype.get=i,u.prototype.has=c,u.prototype.set=s,t.exports=u},2705:(t,e,r)=>{var n=r(5639).Symbol;t.exports=n},1149:(t,e,r)=>{var n=r(5639).Uint8Array;t.exports=n},577:(t,e,r)=>{var n=r(852)(r(5639),"WeakMap");t.exports=n},4963:t=>{t.exports=function(t,e){for(var r=-1,n=null==t?0:t.length,o=0,a=[];++r{var n=r(2545),o=r(5694),a=r(1469),i=r(4144),c=r(5776),s=r(6719),u=Object.prototype.hasOwnProperty;t.exports=function(t,e){var r=a(t),l=!r&&o(t),p=!r&&!l&&i(t),f=!r&&!l&&!p&&s(t),v=r||l||p||f,h=v?n(t.length,String):[],d=h.length;for(var y in t)!e&&!u.call(t,y)||v&&("length"==y||p&&("offset"==y||"parent"==y)||f&&("buffer"==y||"byteLength"==y||"byteOffset"==y)||c(y,d))||h.push(y);return h}},2488:t=>{t.exports=function(t,e){for(var r=-1,n=e.length,o=t.length;++r{t.exports=function(t,e){for(var r=-1,n=null==t?0:t.length;++r{var n=r(7813);t.exports=function(t,e){for(var r=t.length;r--;)if(n(t[r][0],e))return r;return-1}},8866:(t,e,r)=>{var n=r(2488),o=r(1469);t.exports=function(t,e,r){var a=e(t);return o(t)?a:n(a,r(t))}},4239:(t,e,r)=>{var n=r(2705),o=r(9607),a=r(2333),i=n?n.toStringTag:void 0;t.exports=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":i&&i in Object(t)?o(t):a(t)}},9454:(t,e,r)=>{var n=r(4239),o=r(7005);t.exports=function(t){return o(t)&&"[object Arguments]"==n(t)}},939:(t,e,r)=>{var n=r(2492),o=r(7005);t.exports=function t(e,r,a,i,c){return e===r||(null==e||null==r||!o(e)&&!o(r)?e!=e&&r!=r:n(e,r,a,i,t,c))}},2492:(t,e,r)=>{var n=r(6384),o=r(7114),a=r(8351),i=r(6096),c=r(4160),s=r(1469),u=r(4144),l=r(6719),p="[object Arguments]",f="[object Array]",v="[object Object]",h=Object.prototype.hasOwnProperty;t.exports=function(t,e,r,d,y,m){var b=s(t),g=s(e),_=b?f:c(t),w=g?f:c(e),x=(_=_==p?v:_)==v,j=(w=w==p?v:w)==v,O=_==w;if(O&&u(t)){if(!u(e))return!1;b=!0,x=!1}if(O&&!x)return m||(m=new n),b||l(t)?o(t,e,r,d,y,m):a(t,e,_,r,d,y,m);if(!(1&r)){var E=x&&h.call(t,"__wrapped__"),z=j&&h.call(e,"__wrapped__");if(E||z){var A=E?t.value():t,S=z?e.value():e;return m||(m=new n),y(A,S,r,d,m)}}return!!O&&(m||(m=new n),i(t,e,r,d,y,m))}},8458:(t,e,r)=>{var n=r(3560),o=r(5346),a=r(3218),i=r(346),c=/^\[object .+?Constructor\]$/,s=Function.prototype,u=Object.prototype,l=s.toString,p=u.hasOwnProperty,f=RegExp("^"+l.call(p).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=function(t){return!(!a(t)||o(t))&&(n(t)?f:c).test(i(t))}},8749:(t,e,r)=>{var n=r(4239),o=r(1780),a=r(7005),i={};i["[object Float32Array]"]=i["[object Float64Array]"]=i["[object Int8Array]"]=i["[object Int16Array]"]=i["[object Int32Array]"]=i["[object Uint8Array]"]=i["[object Uint8ClampedArray]"]=i["[object Uint16Array]"]=i["[object Uint32Array]"]=!0,i["[object Arguments]"]=i["[object Array]"]=i["[object ArrayBuffer]"]=i["[object Boolean]"]=i["[object DataView]"]=i["[object Date]"]=i["[object Error]"]=i["[object Function]"]=i["[object Map]"]=i["[object Number]"]=i["[object Object]"]=i["[object RegExp]"]=i["[object Set]"]=i["[object String]"]=i["[object WeakMap]"]=!1,t.exports=function(t){return a(t)&&o(t.length)&&!!i[n(t)]}},280:(t,e,r)=>{var n=r(5726),o=r(6916),a=Object.prototype.hasOwnProperty;t.exports=function(t){if(!n(t))return o(t);var e=[];for(var r in Object(t))a.call(t,r)&&"constructor"!=r&&e.push(r);return e}},2545:t=>{t.exports=function(t,e){for(var r=-1,n=Array(t);++r{t.exports=function(t){return function(e){return t(e)}}},4757:t=>{t.exports=function(t,e){return t.has(e)}},4429:(t,e,r)=>{var n=r(5639)["__core-js_shared__"];t.exports=n},7114:(t,e,r)=>{var n=r(8668),o=r(2908),a=r(4757);t.exports=function(t,e,r,i,c,s){var u=1&r,l=t.length,p=e.length;if(l!=p&&!(u&&p>l))return!1;var f=s.get(t),v=s.get(e);if(f&&v)return f==e&&v==t;var h=-1,d=!0,y=2&r?new n:void 0;for(s.set(t,e),s.set(e,t);++h{var n=r(2705),o=r(1149),a=r(7813),i=r(7114),c=r(8776),s=r(1814),u=n?n.prototype:void 0,l=u?u.valueOf:void 0;t.exports=function(t,e,r,n,u,p,f){switch(r){case"[object DataView]":if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case"[object ArrayBuffer]":return!(t.byteLength!=e.byteLength||!p(new o(t),new o(e)));case"[object Boolean]":case"[object Date]":case"[object Number]":return a(+t,+e);case"[object Error]":return t.name==e.name&&t.message==e.message;case"[object RegExp]":case"[object String]":return t==e+"";case"[object Map]":var v=c;case"[object Set]":var h=1&n;if(v||(v=s),t.size!=e.size&&!h)return!1;var d=f.get(t);if(d)return d==e;n|=2,f.set(t,e);var y=i(v(t),v(e),n,u,p,f);return f.delete(t),y;case"[object Symbol]":if(l)return l.call(t)==l.call(e)}return!1}},6096:(t,e,r)=>{var n=r(8234),o=Object.prototype.hasOwnProperty;t.exports=function(t,e,r,a,i,c){var s=1&r,u=n(t),l=u.length;if(l!=n(e).length&&!s)return!1;for(var p=l;p--;){var f=u[p];if(!(s?f in e:o.call(e,f)))return!1}var v=c.get(t),h=c.get(e);if(v&&h)return v==e&&h==t;var d=!0;c.set(t,e),c.set(e,t);for(var y=s;++p{var n="object"==typeof r.g&&r.g&&r.g.Object===Object&&r.g;t.exports=n},8234:(t,e,r)=>{var n=r(8866),o=r(9551),a=r(3674);t.exports=function(t){return n(t,a,o)}},5050:(t,e,r)=>{var n=r(7019);t.exports=function(t,e){var r=t.__data__;return n(e)?r["string"==typeof e?"string":"hash"]:r.map}},852:(t,e,r)=>{var n=r(8458),o=r(7801);t.exports=function(t,e){var r=o(t,e);return n(r)?r:void 0}},9607:(t,e,r)=>{var n=r(2705),o=Object.prototype,a=o.hasOwnProperty,i=o.toString,c=n?n.toStringTag:void 0;t.exports=function(t){var e=a.call(t,c),r=t[c];try{t[c]=void 0;var n=!0}catch(t){}var o=i.call(t);return n&&(e?t[c]=r:delete t[c]),o}},9551:(t,e,r)=>{var n=r(4963),o=r(479),a=Object.prototype.propertyIsEnumerable,i=Object.getOwnPropertySymbols,c=i?function(t){return null==t?[]:(t=Object(t),n(i(t),(function(e){return a.call(t,e)})))}:o;t.exports=c},4160:(t,e,r)=>{var n=r(8552),o=r(7071),a=r(3818),i=r(8525),c=r(577),s=r(4239),u=r(346),l="[object Map]",p="[object Promise]",f="[object Set]",v="[object WeakMap]",h="[object DataView]",d=u(n),y=u(o),m=u(a),b=u(i),g=u(c),_=s;(n&&_(new n(new ArrayBuffer(1)))!=h||o&&_(new o)!=l||a&&_(a.resolve())!=p||i&&_(new i)!=f||c&&_(new c)!=v)&&(_=function(t){var e=s(t),r="[object Object]"==e?t.constructor:void 0,n=r?u(r):"";if(n)switch(n){case d:return h;case y:return l;case m:return p;case b:return f;case g:return v}return e}),t.exports=_},7801:t=>{t.exports=function(t,e){return null==t?void 0:t[e]}},1789:(t,e,r)=>{var n=r(4536);t.exports=function(){this.__data__=n?n(null):{},this.size=0}},401:t=>{t.exports=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}},7667:(t,e,r)=>{var n=r(4536),o=Object.prototype.hasOwnProperty;t.exports=function(t){var e=this.__data__;if(n){var r=e[t];return"__lodash_hash_undefined__"===r?void 0:r}return o.call(e,t)?e[t]:void 0}},1327:(t,e,r)=>{var n=r(4536),o=Object.prototype.hasOwnProperty;t.exports=function(t){var e=this.__data__;return n?void 0!==e[t]:o.call(e,t)}},1866:(t,e,r)=>{var n=r(4536);t.exports=function(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=n&&void 0===e?"__lodash_hash_undefined__":e,this}},5776:t=>{var e=/^(?:0|[1-9]\d*)$/;t.exports=function(t,r){var n=typeof t;return!!(r=null==r?9007199254740991:r)&&("number"==n||"symbol"!=n&&e.test(t))&&t>-1&&t%1==0&&t{t.exports=function(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t}},5346:(t,e,r)=>{var n,o=r(4429),a=(n=/[^.]+$/.exec(o&&o.keys&&o.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"";t.exports=function(t){return!!a&&a in t}},5726:t=>{var e=Object.prototype;t.exports=function(t){var r=t&&t.constructor;return t===("function"==typeof r&&r.prototype||e)}},7040:t=>{t.exports=function(){this.__data__=[],this.size=0}},4125:(t,e,r)=>{var n=r(8470),o=Array.prototype.splice;t.exports=function(t){var e=this.__data__,r=n(e,t);return!(r<0||(r==e.length-1?e.pop():o.call(e,r,1),--this.size,0))}},2117:(t,e,r)=>{var n=r(8470);t.exports=function(t){var e=this.__data__,r=n(e,t);return r<0?void 0:e[r][1]}},7518:(t,e,r)=>{var n=r(8470);t.exports=function(t){return n(this.__data__,t)>-1}},4705:(t,e,r)=>{var n=r(8470);t.exports=function(t,e){var r=this.__data__,o=n(r,t);return o<0?(++this.size,r.push([t,e])):r[o][1]=e,this}},4785:(t,e,r)=>{var n=r(1989),o=r(8407),a=r(7071);t.exports=function(){this.size=0,this.__data__={hash:new n,map:new(a||o),string:new n}}},1285:(t,e,r)=>{var n=r(5050);t.exports=function(t){var e=n(this,t).delete(t);return this.size-=e?1:0,e}},6e3:(t,e,r)=>{var n=r(5050);t.exports=function(t){return n(this,t).get(t)}},9916:(t,e,r)=>{var n=r(5050);t.exports=function(t){return n(this,t).has(t)}},5265:(t,e,r)=>{var n=r(5050);t.exports=function(t,e){var r=n(this,t),o=r.size;return r.set(t,e),this.size+=r.size==o?0:1,this}},8776:t=>{t.exports=function(t){var e=-1,r=Array(t.size);return t.forEach((function(t,n){r[++e]=[n,t]})),r}},4536:(t,e,r)=>{var n=r(852)(Object,"create");t.exports=n},6916:(t,e,r)=>{var n=r(5569)(Object.keys,Object);t.exports=n},1167:(t,e,r)=>{t=r.nmd(t);var n=r(1957),o=e&&!e.nodeType&&e,a=o&&t&&!t.nodeType&&t,i=a&&a.exports===o&&n.process,c=function(){try{return a&&a.require&&a.require("util").types||i&&i.binding&&i.binding("util")}catch(t){}}();t.exports=c},2333:t=>{var e=Object.prototype.toString;t.exports=function(t){return e.call(t)}},5569:t=>{t.exports=function(t,e){return function(r){return t(e(r))}}},5639:(t,e,r)=>{var n=r(1957),o="object"==typeof self&&self&&self.Object===Object&&self,a=n||o||Function("return this")();t.exports=a},619:t=>{t.exports=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this}},2385:t=>{t.exports=function(t){return this.__data__.has(t)}},1814:t=>{t.exports=function(t){var e=-1,r=Array(t.size);return t.forEach((function(t){r[++e]=t})),r}},7465:(t,e,r)=>{var n=r(8407);t.exports=function(){this.__data__=new n,this.size=0}},3779:t=>{t.exports=function(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r}},7599:t=>{t.exports=function(t){return this.__data__.get(t)}},4758:t=>{t.exports=function(t){return this.__data__.has(t)}},4309:(t,e,r)=>{var n=r(8407),o=r(7071),a=r(3369);t.exports=function(t,e){var r=this.__data__;if(r instanceof n){var i=r.__data__;if(!o||i.length<199)return i.push([t,e]),this.size=++r.size,this;r=this.__data__=new a(i)}return r.set(t,e),this.size=r.size,this}},346:t=>{var e=Function.prototype.toString;t.exports=function(t){if(null!=t){try{return e.call(t)}catch(t){}try{return t+""}catch(t){}}return""}},7813:t=>{t.exports=function(t,e){return t===e||t!=t&&e!=e}},5694:(t,e,r)=>{var n=r(9454),o=r(7005),a=Object.prototype,i=a.hasOwnProperty,c=a.propertyIsEnumerable,s=n(function(){return arguments}())?n:function(t){return o(t)&&i.call(t,"callee")&&!c.call(t,"callee")};t.exports=s},1469:t=>{var e=Array.isArray;t.exports=e},8612:(t,e,r)=>{var n=r(3560),o=r(1780);t.exports=function(t){return null!=t&&o(t.length)&&!n(t)}},4144:(t,e,r)=>{t=r.nmd(t);var n=r(5639),o=r(5062),a=e&&!e.nodeType&&e,i=a&&t&&!t.nodeType&&t,c=i&&i.exports===a?n.Buffer:void 0,s=(c?c.isBuffer:void 0)||o;t.exports=s},8446:(t,e,r)=>{var n=r(939);t.exports=function(t,e){return n(t,e)}},3560:(t,e,r)=>{var n=r(4239),o=r(3218);t.exports=function(t){if(!o(t))return!1;var e=n(t);return"[object Function]"==e||"[object GeneratorFunction]"==e||"[object AsyncFunction]"==e||"[object Proxy]"==e}},1780:t=>{t.exports=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991}},3218:t=>{t.exports=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}},7005:t=>{t.exports=function(t){return null!=t&&"object"==typeof t}},6719:(t,e,r)=>{var n=r(8749),o=r(1717),a=r(1167),i=a&&a.isTypedArray,c=i?o(i):n;t.exports=c},3674:(t,e,r)=>{var n=r(4636),o=r(280),a=r(8612);t.exports=function(t){return a(t)?n(t):o(t)}},479:t=>{t.exports=function(){return[]}},5062:t=>{t.exports=function(){return!1}},75:function(t){(function(){var e,r,n,o,a,i;"undefined"!=typeof performance&&null!==performance&&performance.now?t.exports=function(){return performance.now()}:"undefined"!=typeof process&&null!==process&&process.hrtime?(t.exports=function(){return(e()-a)/1e6},r=process.hrtime,o=(e=function(){var t;return 1e9*(t=r())[0]+t[1]})(),i=1e9*process.uptime(),a=o-i):Date.now?(t.exports=function(){return Date.now()-n},n=Date.now()):(t.exports=function(){return(new Date).getTime()-n},n=(new Date).getTime())}).call(this)},4087:(t,e,r)=>{for(var n=r(75),o="undefined"==typeof window?r.g:window,a=["moz","webkit"],i="AnimationFrame",c=o["request"+i],s=o["cancel"+i]||o["cancelRequest"+i],u=0;!c&&u{"use strict";e.exports=t}},r={};function n(t){var o=r[t];if(void 0!==o)return o.exports;var a=r[t]={id:t,loaded:!1,exports:{}};return e[t].call(a.exports,a,a.exports,n),a.loaded=!0,a.exports}n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n.nmd=t=>(t.paths=[],t.children||(t.children=[]),t);var o={};return(()=>{"use strict";n.d(o,{default:()=>v});var t=n(8156),e=n.n(t),r=n(7403),a=n(8446),i=n.n(a);function c(t){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},c(t)}function s(t,e){return s=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},s(t,e)}function u(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function l(t){return l=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},l(t)}function p(t){var e=function(t){if("object"!==c(t)||null===t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!==c(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"===c(e)?e:String(e)}var f=function(t){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&s(t,e)}(h,t);var n,o,a,f,v=(a=h,f=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}(),function(){var t,e=l(a);if(f){var r=l(this).constructor;t=Reflect.construct(e,arguments,r)}else t=e.apply(this,arguments);return function(t,e){if(e&&("object"===c(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return u(t)}(this,t)});function h(){var t,e,r,n;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,h);for(var o=arguments.length,a=new Array(o),i=0;i{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>c,toc:()=>d});var s=n(74848),r=n(28453);const i={sidebar_position:1},o="InputStream",c={id:"typescript/components/InputStream",title:"InputStream",description:"InputStream component represents a registered input.",source:"@site/pages/typescript/components/InputStream.md",sourceDirName:"typescript/components",slug:"/typescript/components/InputStream",permalink:"/docs/typescript/components/InputStream",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"sidebar",previous:{title:"Hooks",permalink:"/docs/typescript/hooks"},next:{title:"View",permalink:"/docs/typescript/components/View"}},p={},d=[{value:"Props",id:"props",level:2}];function a(e){const t={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h1,{id:"inputstream",children:"InputStream"}),"\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.code,{children:"InputStream"})," component represents a registered input."]}),"\n",(0,s.jsx)(t.admonition,{type:"note",children:(0,s.jsxs)(t.p,{children:["To use this component, you need to first register the stream with matching ",(0,s.jsx)(t.code,{children:"inputId"})," using ",(0,s.jsx)(t.a,{href:"/docs/typescript/instance#register-input",children:(0,s.jsx)(t.code,{children:"LiveCompositor.registerInput"})})," method."]})}),"\n",(0,s.jsx)(t.h2,{id:"props",children:"Props"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-typescript",children:"type InputStreamProps = {\n id?: string;\n inputId: string;\n volume?: number;\n mute?: boolean;\n}\n"})}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"id"})," - Id of a component. Defaults to value produced by ",(0,s.jsx)(t.code,{children:"useId"})," hook."]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"inputId"})," - Id of an input. It identifies a stream registered using a ",(0,s.jsx)(t.a,{href:"/docs/typescript/instance#register-input",children:(0,s.jsx)(t.code,{children:"LiveCompositor.registerInput"})})," method."]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"volume"})," - (",(0,s.jsxs)(t.strong,{children:["default=",(0,s.jsx)(t.code,{children:"1"})]}),") Audio volume represented by a number between 0 and 1."]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"mute"})," - (",(0,s.jsxs)(t.strong,{children:["default=",(0,s.jsx)(t.code,{children:"false"})]}),") Mute audio."]}),"\n"]})]})}function u(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},28453:(e,t,n)=>{n.d(t,{R:()=>o,x:()=>c});var s=n(96540);const r={},i=s.createContext(r);function o(e){const t=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),s.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/4ec823d0.f2d48fd1.js b/assets/js/4ec823d0.f2d48fd1.js deleted file mode 100644 index e254fac44..000000000 --- a/assets/js/4ec823d0.f2d48fd1.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcompositor_live=self.webpackChunkcompositor_live||[]).push([[6990],{20260:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>c,toc:()=>d});var s=n(74848),r=n(28453);const i={sidebar_position:1},o="InputStream",c={id:"typescript/components/InputStream",title:"InputStream",description:"InputStream component represents a registered input.",source:"@site/pages/typescript/components/InputStream.md",sourceDirName:"typescript/components",slug:"/typescript/components/InputStream",permalink:"/docs/typescript/components/InputStream",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"sidebar",previous:{title:"Hooks",permalink:"/docs/typescript/hooks"},next:{title:"View",permalink:"/docs/typescript/components/View"}},p={},d=[{value:"Props",id:"props",level:2}];function a(e){const t={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h1,{id:"inputstream",children:"InputStream"}),"\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.code,{children:"InputStream"})," component represents a registered input."]}),"\n",(0,s.jsx)(t.admonition,{type:"note",children:(0,s.jsxs)(t.p,{children:["To use this component, you need to first register the stream with matching ",(0,s.jsx)(t.code,{children:"inputId"})," using ",(0,s.jsx)(t.a,{href:"/docs/typescript/api#register-input",children:(0,s.jsx)(t.code,{children:"LiveCompositor.registerInput"})})," method."]})}),"\n",(0,s.jsx)(t.h2,{id:"props",children:"Props"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-typescript",children:"type InputStreamProps = {\n id?: string;\n inputId: string;\n volume?: number;\n mute?: boolean;\n}\n"})}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"id"})," - Id of a component. Defaults to value produced by ",(0,s.jsx)(t.code,{children:"useId"})," hook."]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"inputId"})," - Id of an input. It identifies a stream registered using a ",(0,s.jsx)(t.a,{href:"/docs/typescript/api#register-input",children:(0,s.jsx)(t.code,{children:"LiveCompositor.registerInput"})})," method."]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"volume"})," - (",(0,s.jsxs)(t.strong,{children:["default=",(0,s.jsx)(t.code,{children:"1"})]}),") Audio volume represented by a number between 0 and 1."]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"mute"})," - (",(0,s.jsxs)(t.strong,{children:["default=",(0,s.jsx)(t.code,{children:"false"})]}),") Mute audio."]}),"\n"]})]})}function u(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},28453:(e,t,n)=>{n.d(t,{R:()=>o,x:()=>c});var s=n(96540);const r={},i=s.createContext(r);function o(e){const t=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),s.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/5883.ef1e46d0.js b/assets/js/5883.ef1e46d0.js new file mode 100644 index 000000000..59f1e046e --- /dev/null +++ b/assets/js/5883.ef1e46d0.js @@ -0,0 +1 @@ +(self.webpackChunkcompositor_live=self.webpackChunkcompositor_live||[]).push([[5883],{19365:(t,e,r)=>{"use strict";r.d(e,{A:()=>i});r(96540);var n=r(18215);const o={tabItem:"tabItem_Ymn6"};var a=r(74848);function i(t){let{children:e,hidden:r,className:i}=t;return(0,a.jsx)("div",{role:"tabpanel",className:(0,n.A)(o.tabItem,i),hidden:r,children:e})}},11470:(t,e,r)=>{"use strict";r.d(e,{A:()=>x});var n=r(96540),o=r(18215),a=r(23104),i=r(56347),s=r(205),c=r(57485),u=r(31682),l=r(89466);function p(t){return n.Children.toArray(t).filter((t=>"\n"!==t)).map((t=>{if(!t||(0,n.isValidElement)(t)&&function(t){const{props:e}=t;return!!e&&"object"==typeof e&&"value"in e}(t))return t;throw new Error(`Docusaurus error: Bad child <${"string"==typeof t.type?t.type:t.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function f(t){const{values:e,children:r}=t;return(0,n.useMemo)((()=>{const t=e??function(t){return p(t).map((t=>{let{props:{value:e,label:r,attributes:n,default:o}}=t;return{value:e,label:r,attributes:n,default:o}}))}(r);return function(t){const e=(0,u.X)(t,((t,e)=>t.value===e.value));if(e.length>0)throw new Error(`Docusaurus error: Duplicate values "${e.map((t=>t.value)).join(", ")}" found in . Every value needs to be unique.`)}(t),t}),[e,r])}function v(t){let{value:e,tabValues:r}=t;return r.some((t=>t.value===e))}function d(t){let{queryString:e=!1,groupId:r}=t;const o=(0,i.W6)(),a=function(t){let{queryString:e=!1,groupId:r}=t;if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!r)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return r??null}({queryString:e,groupId:r});return[(0,c.aZ)(a),(0,n.useCallback)((t=>{if(!a)return;const e=new URLSearchParams(o.location.search);e.set(a,t),o.replace({...o.location,search:e.toString()})}),[a,o])]}function h(t){const{defaultValue:e,queryString:r=!1,groupId:o}=t,a=f(t),[i,c]=(0,n.useState)((()=>function(t){let{defaultValue:e,tabValues:r}=t;if(0===r.length)throw new Error("Docusaurus error: the component requires at least one children component");if(e){if(!v({value:e,tabValues:r}))throw new Error(`Docusaurus error: The has a defaultValue "${e}" but none of its children has the corresponding value. Available values are: ${r.map((t=>t.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return e}const n=r.find((t=>t.default))??r[0];if(!n)throw new Error("Unexpected error: 0 tabValues");return n.value}({defaultValue:e,tabValues:a}))),[u,p]=d({queryString:r,groupId:o}),[h,y]=function(t){let{groupId:e}=t;const r=function(t){return t?`docusaurus.tab.${t}`:null}(e),[o,a]=(0,l.Dv)(r);return[o,(0,n.useCallback)((t=>{r&&a.set(t)}),[r,a])]}({groupId:o}),b=(()=>{const t=u??h;return v({value:t,tabValues:a})?t:null})();(0,s.A)((()=>{b&&c(b)}),[b]);return{selectedValue:i,selectValue:(0,n.useCallback)((t=>{if(!v({value:t,tabValues:a}))throw new Error(`Can't select invalid tab value=${t}`);c(t),p(t),y(t)}),[p,y,a]),tabValues:a}}var y=r(92303);const b={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var m=r(74848);function g(t){let{className:e,block:r,selectedValue:n,selectValue:i,tabValues:s}=t;const c=[],{blockElementScrollPositionUntilNextRender:u}=(0,a.a_)(),l=t=>{const e=t.currentTarget,r=c.indexOf(e),o=s[r].value;o!==n&&(u(e),i(o))},p=t=>{let e=null;switch(t.key){case"Enter":l(t);break;case"ArrowRight":{const r=c.indexOf(t.currentTarget)+1;e=c[r]??c[0];break}case"ArrowLeft":{const r=c.indexOf(t.currentTarget)-1;e=c[r]??c[c.length-1];break}}e?.focus()};return(0,m.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.A)("tabs",{"tabs--block":r},e),children:s.map((t=>{let{value:e,label:r,attributes:a}=t;return(0,m.jsx)("li",{role:"tab",tabIndex:n===e?0:-1,"aria-selected":n===e,ref:t=>c.push(t),onKeyDown:p,onClick:l,...a,className:(0,o.A)("tabs__item",b.tabItem,a?.className,{"tabs__item--active":n===e}),children:r??e},e)}))})}function _(t){let{lazy:e,children:r,selectedValue:o}=t;const a=(Array.isArray(r)?r:[r]).filter(Boolean);if(e){const t=a.find((t=>t.props.value===o));return t?(0,n.cloneElement)(t,{className:"margin-top--md"}):null}return(0,m.jsx)("div",{className:"margin-top--md",children:a.map(((t,e)=>(0,n.cloneElement)(t,{key:e,hidden:t.props.value!==o})))})}function w(t){const e=h(t);return(0,m.jsxs)("div",{className:(0,o.A)("tabs-container",b.tabList),children:[(0,m.jsx)(g,{...t,...e}),(0,m.jsx)(_,{...t,...e})]})}function x(t){const e=(0,y.A)();return(0,m.jsx)(w,{...t,children:p(t.children)},String(e))}},20053:(t,e,r)=>{"use strict";function n(t){var e,r,o="";if("string"==typeof t||"number"==typeof t)o+=t;else if("object"==typeof t)if(Array.isArray(t))for(e=0;eo});const o=function(){for(var t,e,r=0,o="";r{"use strict";r.d(e,{vwk:()=>o});var n=r(10383);function o(t){return(0,n.k5)({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M480 160H32c-17.673 0-32-14.327-32-32V64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24z"}}]})(t)}},27008:(t,e,r)=>{"use strict";r.d(e,{AnD:()=>u,FSj:()=>s,hL4:()=>a,q_t:()=>o,vd0:()=>i,wZu:()=>c});var n=r(10383);function o(t){return(0,n.k5)({tag:"svg",attr:{viewBox:"0 0 640 512"},child:[{tag:"path",attr:{d:"M349.9 236.3h-66.1v-59.4h66.1v59.4zm0-204.3h-66.1v60.7h66.1V32zm78.2 144.8H362v59.4h66.1v-59.4zm-156.3-72.1h-66.1v60.1h66.1v-60.1zm78.1 0h-66.1v60.1h66.1v-60.1zm276.8 100c-14.4-9.7-47.6-13.2-73.1-8.4-3.3-24-16.7-44.9-41.1-63.7l-14-9.3-9.3 14c-18.4 27.8-23.4 73.6-3.7 103.8-8.7 4.7-25.8 11.1-48.4 10.7H2.4c-8.7 50.8 5.8 116.8 44 162.1 37.1 43.9 92.7 66.2 165.4 66.2 157.4 0 273.9-72.5 328.4-204.2 21.4.4 67.6.1 91.3-45.2 1.5-2.5 6.6-13.2 8.5-17.1l-13.3-8.9zm-511.1-27.9h-66v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm-78.1-72.1h-66.1v60.1h66.1v-60.1z"}}]})(t)}function a(t){return(0,n.k5)({tag:"svg",attr:{viewBox:"0 0 496 512"},child:[{tag:"path",attr:{d:"M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"}}]})(t)}function i(t){return(0,n.k5)({tag:"svg",attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M96 0C43 0 0 43 0 96V416c0 53 43 96 96 96H384h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V384c17.7 0 32-14.3 32-32V32c0-17.7-14.3-32-32-32H384 96zm0 384H352v64H96c-17.7 0-32-14.3-32-32s14.3-32 32-32zm32-240c0-8.8 7.2-16 16-16H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H144c-8.8 0-16-7.2-16-16zm16 48H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H144c-8.8 0-16-7.2-16-16s7.2-16 16-16z"}}]})(t)}function s(t){return(0,n.k5)({tag:"svg",attr:{viewBox:"0 0 640 512"},child:[{tag:"path",attr:{d:"M392.8 1.2c-17-4.9-34.7 5-39.6 22l-128 448c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l128-448c4.9-17-5-34.7-22-39.6zm80.6 120.1c-12.5 12.5-12.5 32.8 0 45.3L562.7 256l-89.4 89.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-112-112c-12.5-12.5-32.8-12.5-45.3 0zm-306.7 0c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l112 112c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256l89.4-89.4c12.5-12.5 12.5-32.8 0-45.3z"}}]})(t)}function c(t){return(0,n.k5)({tag:"svg",attr:{viewBox:"0 0 640 512"},child:[{tag:"path",attr:{d:"M308.5 135.3c7.1-6.3 9.9-16.2 6.2-25c-2.3-5.3-4.8-10.5-7.6-15.5L304 89.4c-3-5-6.3-9.9-9.8-14.6c-5.7-7.6-15.7-10.1-24.7-7.1l-28.2 9.3c-10.7-8.8-23-16-36.2-20.9L199 27.1c-1.9-9.3-9.1-16.7-18.5-17.8C173.9 8.4 167.2 8 160.4 8h-.7c-6.8 0-13.5 .4-20.1 1.2c-9.4 1.1-16.6 8.6-18.5 17.8L115 56.1c-13.3 5-25.5 12.1-36.2 20.9L50.5 67.8c-9-3-19-.5-24.7 7.1c-3.5 4.7-6.8 9.6-9.9 14.6l-3 5.3c-2.8 5-5.3 10.2-7.6 15.6c-3.7 8.7-.9 18.6 6.2 25l22.2 19.8C32.6 161.9 32 168.9 32 176s.6 14.1 1.7 20.9L11.5 216.7c-7.1 6.3-9.9 16.2-6.2 25c2.3 5.3 4.8 10.5 7.6 15.6l3 5.2c3 5.1 6.3 9.9 9.9 14.6c5.7 7.6 15.7 10.1 24.7 7.1l28.2-9.3c10.7 8.8 23 16 36.2 20.9l6.1 29.1c1.9 9.3 9.1 16.7 18.5 17.8c6.7 .8 13.5 1.2 20.4 1.2s13.7-.4 20.4-1.2c9.4-1.1 16.6-8.6 18.5-17.8l6.1-29.1c13.3-5 25.5-12.1 36.2-20.9l28.2 9.3c9 3 19 .5 24.7-7.1c3.5-4.7 6.8-9.5 9.8-14.6l3.1-5.4c2.8-5 5.3-10.2 7.6-15.5c3.7-8.7 .9-18.6-6.2-25l-22.2-19.8c1.1-6.8 1.7-13.8 1.7-20.9s-.6-14.1-1.7-20.9l22.2-19.8zM112 176a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM504.7 500.5c6.3 7.1 16.2 9.9 25 6.2c5.3-2.3 10.5-4.8 15.5-7.6l5.4-3.1c5-3 9.9-6.3 14.6-9.8c7.6-5.7 10.1-15.7 7.1-24.7l-9.3-28.2c8.8-10.7 16-23 20.9-36.2l29.1-6.1c9.3-1.9 16.7-9.1 17.8-18.5c.8-6.7 1.2-13.5 1.2-20.4s-.4-13.7-1.2-20.4c-1.1-9.4-8.6-16.6-17.8-18.5L583.9 307c-5-13.3-12.1-25.5-20.9-36.2l9.3-28.2c3-9 .5-19-7.1-24.7c-4.7-3.5-9.6-6.8-14.6-9.9l-5.3-3c-5-2.8-10.2-5.3-15.6-7.6c-8.7-3.7-18.6-.9-25 6.2l-19.8 22.2c-6.8-1.1-13.8-1.7-20.9-1.7s-14.1 .6-20.9 1.7l-19.8-22.2c-6.3-7.1-16.2-9.9-25-6.2c-5.3 2.3-10.5 4.8-15.6 7.6l-5.2 3c-5.1 3-9.9 6.3-14.6 9.9c-7.6 5.7-10.1 15.7-7.1 24.7l9.3 28.2c-8.8 10.7-16 23-20.9 36.2L315.1 313c-9.3 1.9-16.7 9.1-17.8 18.5c-.8 6.7-1.2 13.5-1.2 20.4s.4 13.7 1.2 20.4c1.1 9.4 8.6 16.6 17.8 18.5l29.1 6.1c5 13.3 12.1 25.5 20.9 36.2l-9.3 28.2c-3 9-.5 19 7.1 24.7c4.7 3.5 9.5 6.8 14.6 9.8l5.4 3.1c5 2.8 10.2 5.3 15.5 7.6c8.7 3.7 18.6 .9 25-6.2l19.8-22.2c6.8 1.1 13.8 1.7 20.9 1.7s14.1-.6 20.9-1.7l19.8 22.2zM464 304a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"}}]})(t)}function u(t){return(0,n.k5)({tag:"svg",attr:{viewBox:"0 0 640 512"},child:[{tag:"path",attr:{d:"M579.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C206.5 251.2 213 330 263 380c56.5 56.5 148 56.5 204.5 0L579.8 267.7zM60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5L217.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C433.5 260.8 427 182 377 132c-56.5-56.5-148-56.5-204.5 0L60.2 244.3z"}}]})(t)}},37609:(t,e,r)=>{"use strict";r.d(e,{Dhs:()=>o,Iff:()=>a,W5P:()=>i});var n=r(10383);function o(t){return(0,n.k5)({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M201 16c-15 0-20 3.38-20 20v15h-45c-29.547 0-35 5.453-35 35v375c0 29.547 5.453 35 35 35h240c29.547 0 35-5.453 35-35V86c0-29.547-5.453-35-35-35h-45V36c0-16.62-5-20-20-20H201zm-48.094 69.813c4.666.02 10.594.187 18.094.187h170c40 0 35-5 35 35v305c0 40 5 35-35 35H171c-40 0-35 5-35-35V121c0-32.5-3.31-35.283 16.906-35.188zM161 101c-5.54 0-10 4.46-10 10v55c0 5.54 4.46 10 10 10h190c5.54 0 10-4.46 10-10v-55c0-5.54-4.46-10-10-10H161zm0 90c-5.54 0-10 4.46-10 10v55c0 5.54 4.46 10 10 10h190c5.54 0 10-4.46 10-10v-55c0-5.54-4.46-10-10-10H161zm0 90c-5.54 0-10 4.46-10 10v55c0 5.54 4.46 10 10 10h190c5.54 0 10-4.46 10-10v-55c0-5.54-4.46-10-10-10H161zm0 90c-5.54 0-10 4.46-10 10v55c0 5.54 4.46 10 10 10h190c5.54 0 10-4.46 10-10v-55c0-5.54-4.46-10-10-10H161z"}}]})(t)}function a(t){return(0,n.k5)({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M470.7 20L368.2 49.81l41.5-28.09c-26.2 5.92-59.3 17.5-100.9 36.19l-67.9 70.79L265 79.25c-23.3 12.96-48 29.95-71.8 49.85l-15.8 64.3-3.4-47.6c-23.5 21.6-45.6 45.6-63.9 70.9-19.23 26.5-34.26 54.5-41.79 82.4l-28.12-18.8c2.52 23.7 10.31 44.3 23.09 63.2l-33.62-10.3c7.64 23.5 20.13 38.7 41.25 51-11.83 33.3-17.38 68.1-23.34 102.8l18.4 3.1C87.31 277.4 237.9 141.8 374 81.72l6.9 17.38c-121.7 54.5-216.3 146.5-265.8 279.1 18.1.1 35.8-2.1 52.2-6.3l4.9-60.9 13.1 55.5c10.9-4 20.9-8.8 29.8-14.4l-20.7-43.5 32.8 34.8c8-6.4 14.6-13.6 19.6-21.5 30.4-47.5 62.2-94.7 124.8-134.2l-45.7-16.2 70.1 2.1c11.4-5.8 23.4-12.9 32.5-19.6l-49.7-4 74.7-17.6c5.8-5.8 11.2-11.9 16.1-18 17.3-21.94 29-44.78 26.2-65.55-1.3-10.39-7.5-20.16-17.6-25.63-2.5-1.3-5.2-2.45-7.5-3.22z"}}]})(t)}function i(t){return(0,n.k5)({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M256 54.28c-124.603 0-226 101.398-226 226 0 47.864 14.975 92.293 40.465 128.876l29.79-19.86c-17.188-24.545-28.708-53.362-32.696-84.577H96v-18H66.115c-.07-2.14-.115-4.284-.115-6.44 0-45.378 15.816-86.97 42.236-119.598l17.4 17.4 12.727-12.727-18.133-18.132C152.735 114.057 197.335 92.8 247 90.498v29.22h18V90.5c49.665 2.302 94.265 23.56 126.77 56.725l-18.133 18.132 12.726 12.727 17.4-17.4c26.42 32.63 42.237 74.22 42.237 119.6 0 2.154-.044 4.3-.115 6.437H416v18h28.44c-3.987 31.214-15.507 60.03-32.694 84.575l29.79 19.86C467.025 372.574 482 328.146 482 280.282c0-124.602-101.397-226-226-226zm15.83 66.23a144 160 0 0 1 74.608 100.062l49.966-17.568a160 160 0 0 0-4.3-7.012l-5.135 5.153-30.368-30.29-5.76-5.746 7.85-7.874a160 160 0 0 0-86.862-36.726zm156.15 89.844l-175.332 60.6C240.505 272.618 231 283.155 231 295.72c0 13.7 11.3 25 25 25 6.77 0 12.95-2.764 17.473-7.208L427.98 210.354zm-16.513 32.322l-60.713 40.72a144 160 0 0 1-56.6 108.323h76.057a160 160 0 0 0 39.763-68.572H398.48v-52.515h17.022a160 160 0 0 0-4.035-27.957zM128 421.72v36h256v-36H128z"}}]})(t)}},9826:(t,e,r)=>{"use strict";r.d(e,{doL:()=>o});var n=r(10383);function o(t){return(0,n.k5)({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M448 464a15.92 15.92 0 01-11.31-4.69l-384-384a16 16 0 0122.62-22.62l384 384A16 16 0 01448 464zM38.72 196.78C13.39 219.88 0 251.42 0 288c0 36 14.38 68.88 40.49 92.59C65.64 403.43 99.56 416 136 416h192.8a8 8 0 005.66-13.66L100.88 168.76a8 8 0 00-8-2C72 173.15 53.4 183.38 38.72 196.78zm437.87 194.45C499.76 372.78 512 345.39 512 312c0-57.57-42-90.58-87.56-100.75a16 16 0 01-12.12-12.39c-7.68-36.68-24.45-68.15-49.18-92A153.57 153.57 0 00256 64c-31.12 0-60.12 9-84.62 26.1a8 8 0 00-1.14 12.26L461.68 393.8a8 8 0 0010.2.93q2.43-1.68 4.71-3.5z"}}]})(t)}},10383:(t,e,r)=>{"use strict";r.d(e,{k5:()=>u,Vx:()=>a});var n=r(96540),o={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},a=n.createContext&&n.createContext(o),i=function(){return i=Object.assign||function(t){for(var e,r=1,n=arguments.length;r{"use strict";r.d(e,{Md6:()=>a,bXv:()=>o});var n=r(10383);function o(t){return(0,n.k5)({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0z"}},{tag:"path",attr:{d:"M12 3v9.28a4.39 4.39 0 00-1.5-.28C8.01 12 6 14.01 6 16.5S8.01 21 10.5 21c2.31 0 4.2-1.75 4.45-4H15V6h4V3h-7z"}}]})(t)}function a(t){return(0,n.k5)({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",d:"M0 0h24v24H0V0z"}},{tag:"path",attr:{d:"M21 6h-7.59l3.29-3.29L16 2l-4 4-4-4-.71.71L10.59 6H3a2 2 0 00-2 2v12c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V8a2 2 0 00-2-2zm0 14H3V8h18v12zM9 10v8l7-4z"}}]})(t)}},8242:function(t,e,r){var n;"undefined"!=typeof self&&self,n=t=>(()=>{var e={7403:(t,e,r)=>{"use strict";r.d(e,{default:()=>A});var n=r(4087),o=r.n(n);const a=function(t){return new RegExp(/<[a-z][\s\S]*>/i).test(t)},i=function(t,e){return Math.floor(Math.random()*(e-t+1))+t};var s="TYPE_CHARACTER",c="REMOVE_CHARACTER",u="REMOVE_ALL",l="REMOVE_LAST_VISIBLE_NODE",p="PAUSE_FOR",f="CALL_FUNCTION",v="ADD_HTML_TAG_ELEMENT",d="CHANGE_DELETE_SPEED",h="CHANGE_DELAY",y="CHANGE_CURSOR",b="PASTE_STRING",m="HTML_TAG";function g(t){return g="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},g(t)}function _(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function w(t){for(var e=1;et.length)&&(e=t.length);for(var r=0,n=new Array(e);r1&&void 0!==arguments[1]?arguments[1]:null;if(a(t))return g.typeOutHTMLString(t,e);if(t){var r=(g.options||{}).stringSplitter,n="function"==typeof r?r(t):t.split("");g.typeCharacters(n,e)}return g})),E(this,"pasteString",(function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return a(t)?g.typeOutHTMLString(t,e,!0):(t&&g.addEventToQueue(b,{character:t,node:e}),g)})),E(this,"typeOutHTMLString",(function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2?arguments[2]:void 0,n=function(t){var e=document.createElement("div");return e.innerHTML=t,e.childNodes}(t);if(n.length>0)for(var o=0;o0&&void 0!==arguments[0]?arguments[0]:"natural";return g.addEventToQueue(u,{speed:t}),g})),E(this,"changeDeleteSpeed",(function(t){if(!t)throw new Error("Must provide new delete speed");return g.addEventToQueue(d,{speed:t}),g})),E(this,"changeDelay",(function(t){if(!t)throw new Error("Must provide new delay");return g.addEventToQueue(h,{delay:t}),g})),E(this,"changeCursor",(function(t){if(!t)throw new Error("Must provide new cursor");return g.addEventToQueue(y,{cursor:t}),g})),E(this,"deleteChars",(function(t){if(!t)throw new Error("Must provide amount of characters to delete");for(var e=0;e1&&void 0!==arguments[1]?arguments[1]:null;if(!t||!Array.isArray(t))throw new Error("Characters must be an array");return t.forEach((function(t){g.addEventToQueue(s,{character:t,node:e})})),g})),E(this,"removeCharacters",(function(t){if(!t||!Array.isArray(t))throw new Error("Characters must be an array");return t.forEach((function(){g.addEventToQueue(c)})),g})),E(this,"addEventToQueue",(function(t,e){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return g.addEventToStateProperty(t,e,r,"eventQueue")})),E(this,"addReverseCalledEvent",(function(t,e){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return g.options.loop?g.addEventToStateProperty(t,e,r,"reverseCalledEvents"):g})),E(this,"addEventToStateProperty",(function(t,e){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3?arguments[3]:void 0,o={eventName:t,eventArgs:e||{}};return g.state[n]=r?[o].concat(x(g.state[n])):[].concat(x(g.state[n]),[o]),g})),E(this,"runEventLoop",(function(){g.state.lastFrameTime||(g.state.lastFrameTime=Date.now());var t=Date.now(),e=t-g.state.lastFrameTime;if(!g.state.eventQueue.length){if(!g.options.loop)return;g.state.eventQueue=x(g.state.calledEvents),g.state.calledEvents=[],g.options=w({},g.state.initialOptions)}if(g.state.eventLoop=o()(g.runEventLoop),!g.state.eventLoopPaused){if(g.state.pauseUntil){if(t{var n=r(852)(r(5639),"DataView");t.exports=n},1989:(t,e,r)=>{var n=r(1789),o=r(401),a=r(7667),i=r(1327),s=r(1866);function c(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e{var n=r(7040),o=r(4125),a=r(2117),i=r(7518),s=r(4705);function c(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e{var n=r(852)(r(5639),"Map");t.exports=n},3369:(t,e,r)=>{var n=r(4785),o=r(1285),a=r(6e3),i=r(9916),s=r(5265);function c(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e{var n=r(852)(r(5639),"Promise");t.exports=n},8525:(t,e,r)=>{var n=r(852)(r(5639),"Set");t.exports=n},8668:(t,e,r)=>{var n=r(3369),o=r(619),a=r(2385);function i(t){var e=-1,r=null==t?0:t.length;for(this.__data__=new n;++e{var n=r(8407),o=r(7465),a=r(3779),i=r(7599),s=r(4758),c=r(4309);function u(t){var e=this.__data__=new n(t);this.size=e.size}u.prototype.clear=o,u.prototype.delete=a,u.prototype.get=i,u.prototype.has=s,u.prototype.set=c,t.exports=u},2705:(t,e,r)=>{var n=r(5639).Symbol;t.exports=n},1149:(t,e,r)=>{var n=r(5639).Uint8Array;t.exports=n},577:(t,e,r)=>{var n=r(852)(r(5639),"WeakMap");t.exports=n},4963:t=>{t.exports=function(t,e){for(var r=-1,n=null==t?0:t.length,o=0,a=[];++r{var n=r(2545),o=r(5694),a=r(1469),i=r(4144),s=r(5776),c=r(6719),u=Object.prototype.hasOwnProperty;t.exports=function(t,e){var r=a(t),l=!r&&o(t),p=!r&&!l&&i(t),f=!r&&!l&&!p&&c(t),v=r||l||p||f,d=v?n(t.length,String):[],h=d.length;for(var y in t)!e&&!u.call(t,y)||v&&("length"==y||p&&("offset"==y||"parent"==y)||f&&("buffer"==y||"byteLength"==y||"byteOffset"==y)||s(y,h))||d.push(y);return d}},2488:t=>{t.exports=function(t,e){for(var r=-1,n=e.length,o=t.length;++r{t.exports=function(t,e){for(var r=-1,n=null==t?0:t.length;++r{var n=r(7813);t.exports=function(t,e){for(var r=t.length;r--;)if(n(t[r][0],e))return r;return-1}},8866:(t,e,r)=>{var n=r(2488),o=r(1469);t.exports=function(t,e,r){var a=e(t);return o(t)?a:n(a,r(t))}},4239:(t,e,r)=>{var n=r(2705),o=r(9607),a=r(2333),i=n?n.toStringTag:void 0;t.exports=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":i&&i in Object(t)?o(t):a(t)}},9454:(t,e,r)=>{var n=r(4239),o=r(7005);t.exports=function(t){return o(t)&&"[object Arguments]"==n(t)}},939:(t,e,r)=>{var n=r(2492),o=r(7005);t.exports=function t(e,r,a,i,s){return e===r||(null==e||null==r||!o(e)&&!o(r)?e!=e&&r!=r:n(e,r,a,i,t,s))}},2492:(t,e,r)=>{var n=r(6384),o=r(7114),a=r(8351),i=r(6096),s=r(4160),c=r(1469),u=r(4144),l=r(6719),p="[object Arguments]",f="[object Array]",v="[object Object]",d=Object.prototype.hasOwnProperty;t.exports=function(t,e,r,h,y,b){var m=c(t),g=c(e),_=m?f:s(t),w=g?f:s(e),x=(_=_==p?v:_)==v,j=(w=w==p?v:w)==v,E=_==w;if(E&&u(t)){if(!u(e))return!1;m=!0,x=!1}if(E&&!x)return b||(b=new n),m||l(t)?o(t,e,r,h,y,b):a(t,e,_,r,h,y,b);if(!(1&r)){var O=x&&d.call(t,"__wrapped__"),A=j&&d.call(e,"__wrapped__");if(O||A){var S=O?t.value():t,T=A?e.value():e;return b||(b=new n),y(S,T,r,h,b)}}return!!E&&(b||(b=new n),i(t,e,r,h,y,b))}},8458:(t,e,r)=>{var n=r(3560),o=r(5346),a=r(3218),i=r(346),s=/^\[object .+?Constructor\]$/,c=Function.prototype,u=Object.prototype,l=c.toString,p=u.hasOwnProperty,f=RegExp("^"+l.call(p).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=function(t){return!(!a(t)||o(t))&&(n(t)?f:s).test(i(t))}},8749:(t,e,r)=>{var n=r(4239),o=r(1780),a=r(7005),i={};i["[object Float32Array]"]=i["[object Float64Array]"]=i["[object Int8Array]"]=i["[object Int16Array]"]=i["[object Int32Array]"]=i["[object Uint8Array]"]=i["[object Uint8ClampedArray]"]=i["[object Uint16Array]"]=i["[object Uint32Array]"]=!0,i["[object Arguments]"]=i["[object Array]"]=i["[object ArrayBuffer]"]=i["[object Boolean]"]=i["[object DataView]"]=i["[object Date]"]=i["[object Error]"]=i["[object Function]"]=i["[object Map]"]=i["[object Number]"]=i["[object Object]"]=i["[object RegExp]"]=i["[object Set]"]=i["[object String]"]=i["[object WeakMap]"]=!1,t.exports=function(t){return a(t)&&o(t.length)&&!!i[n(t)]}},280:(t,e,r)=>{var n=r(5726),o=r(6916),a=Object.prototype.hasOwnProperty;t.exports=function(t){if(!n(t))return o(t);var e=[];for(var r in Object(t))a.call(t,r)&&"constructor"!=r&&e.push(r);return e}},2545:t=>{t.exports=function(t,e){for(var r=-1,n=Array(t);++r{t.exports=function(t){return function(e){return t(e)}}},4757:t=>{t.exports=function(t,e){return t.has(e)}},4429:(t,e,r)=>{var n=r(5639)["__core-js_shared__"];t.exports=n},7114:(t,e,r)=>{var n=r(8668),o=r(2908),a=r(4757);t.exports=function(t,e,r,i,s,c){var u=1&r,l=t.length,p=e.length;if(l!=p&&!(u&&p>l))return!1;var f=c.get(t),v=c.get(e);if(f&&v)return f==e&&v==t;var d=-1,h=!0,y=2&r?new n:void 0;for(c.set(t,e),c.set(e,t);++d{var n=r(2705),o=r(1149),a=r(7813),i=r(7114),s=r(8776),c=r(1814),u=n?n.prototype:void 0,l=u?u.valueOf:void 0;t.exports=function(t,e,r,n,u,p,f){switch(r){case"[object DataView]":if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case"[object ArrayBuffer]":return!(t.byteLength!=e.byteLength||!p(new o(t),new o(e)));case"[object Boolean]":case"[object Date]":case"[object Number]":return a(+t,+e);case"[object Error]":return t.name==e.name&&t.message==e.message;case"[object RegExp]":case"[object String]":return t==e+"";case"[object Map]":var v=s;case"[object Set]":var d=1&n;if(v||(v=c),t.size!=e.size&&!d)return!1;var h=f.get(t);if(h)return h==e;n|=2,f.set(t,e);var y=i(v(t),v(e),n,u,p,f);return f.delete(t),y;case"[object Symbol]":if(l)return l.call(t)==l.call(e)}return!1}},6096:(t,e,r)=>{var n=r(8234),o=Object.prototype.hasOwnProperty;t.exports=function(t,e,r,a,i,s){var c=1&r,u=n(t),l=u.length;if(l!=n(e).length&&!c)return!1;for(var p=l;p--;){var f=u[p];if(!(c?f in e:o.call(e,f)))return!1}var v=s.get(t),d=s.get(e);if(v&&d)return v==e&&d==t;var h=!0;s.set(t,e),s.set(e,t);for(var y=c;++p{var n="object"==typeof r.g&&r.g&&r.g.Object===Object&&r.g;t.exports=n},8234:(t,e,r)=>{var n=r(8866),o=r(9551),a=r(3674);t.exports=function(t){return n(t,a,o)}},5050:(t,e,r)=>{var n=r(7019);t.exports=function(t,e){var r=t.__data__;return n(e)?r["string"==typeof e?"string":"hash"]:r.map}},852:(t,e,r)=>{var n=r(8458),o=r(7801);t.exports=function(t,e){var r=o(t,e);return n(r)?r:void 0}},9607:(t,e,r)=>{var n=r(2705),o=Object.prototype,a=o.hasOwnProperty,i=o.toString,s=n?n.toStringTag:void 0;t.exports=function(t){var e=a.call(t,s),r=t[s];try{t[s]=void 0;var n=!0}catch(t){}var o=i.call(t);return n&&(e?t[s]=r:delete t[s]),o}},9551:(t,e,r)=>{var n=r(4963),o=r(479),a=Object.prototype.propertyIsEnumerable,i=Object.getOwnPropertySymbols,s=i?function(t){return null==t?[]:(t=Object(t),n(i(t),(function(e){return a.call(t,e)})))}:o;t.exports=s},4160:(t,e,r)=>{var n=r(8552),o=r(7071),a=r(3818),i=r(8525),s=r(577),c=r(4239),u=r(346),l="[object Map]",p="[object Promise]",f="[object Set]",v="[object WeakMap]",d="[object DataView]",h=u(n),y=u(o),b=u(a),m=u(i),g=u(s),_=c;(n&&_(new n(new ArrayBuffer(1)))!=d||o&&_(new o)!=l||a&&_(a.resolve())!=p||i&&_(new i)!=f||s&&_(new s)!=v)&&(_=function(t){var e=c(t),r="[object Object]"==e?t.constructor:void 0,n=r?u(r):"";if(n)switch(n){case h:return d;case y:return l;case b:return p;case m:return f;case g:return v}return e}),t.exports=_},7801:t=>{t.exports=function(t,e){return null==t?void 0:t[e]}},1789:(t,e,r)=>{var n=r(4536);t.exports=function(){this.__data__=n?n(null):{},this.size=0}},401:t=>{t.exports=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}},7667:(t,e,r)=>{var n=r(4536),o=Object.prototype.hasOwnProperty;t.exports=function(t){var e=this.__data__;if(n){var r=e[t];return"__lodash_hash_undefined__"===r?void 0:r}return o.call(e,t)?e[t]:void 0}},1327:(t,e,r)=>{var n=r(4536),o=Object.prototype.hasOwnProperty;t.exports=function(t){var e=this.__data__;return n?void 0!==e[t]:o.call(e,t)}},1866:(t,e,r)=>{var n=r(4536);t.exports=function(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=n&&void 0===e?"__lodash_hash_undefined__":e,this}},5776:t=>{var e=/^(?:0|[1-9]\d*)$/;t.exports=function(t,r){var n=typeof t;return!!(r=null==r?9007199254740991:r)&&("number"==n||"symbol"!=n&&e.test(t))&&t>-1&&t%1==0&&t{t.exports=function(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t}},5346:(t,e,r)=>{var n,o=r(4429),a=(n=/[^.]+$/.exec(o&&o.keys&&o.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"";t.exports=function(t){return!!a&&a in t}},5726:t=>{var e=Object.prototype;t.exports=function(t){var r=t&&t.constructor;return t===("function"==typeof r&&r.prototype||e)}},7040:t=>{t.exports=function(){this.__data__=[],this.size=0}},4125:(t,e,r)=>{var n=r(8470),o=Array.prototype.splice;t.exports=function(t){var e=this.__data__,r=n(e,t);return!(r<0||(r==e.length-1?e.pop():o.call(e,r,1),--this.size,0))}},2117:(t,e,r)=>{var n=r(8470);t.exports=function(t){var e=this.__data__,r=n(e,t);return r<0?void 0:e[r][1]}},7518:(t,e,r)=>{var n=r(8470);t.exports=function(t){return n(this.__data__,t)>-1}},4705:(t,e,r)=>{var n=r(8470);t.exports=function(t,e){var r=this.__data__,o=n(r,t);return o<0?(++this.size,r.push([t,e])):r[o][1]=e,this}},4785:(t,e,r)=>{var n=r(1989),o=r(8407),a=r(7071);t.exports=function(){this.size=0,this.__data__={hash:new n,map:new(a||o),string:new n}}},1285:(t,e,r)=>{var n=r(5050);t.exports=function(t){var e=n(this,t).delete(t);return this.size-=e?1:0,e}},6e3:(t,e,r)=>{var n=r(5050);t.exports=function(t){return n(this,t).get(t)}},9916:(t,e,r)=>{var n=r(5050);t.exports=function(t){return n(this,t).has(t)}},5265:(t,e,r)=>{var n=r(5050);t.exports=function(t,e){var r=n(this,t),o=r.size;return r.set(t,e),this.size+=r.size==o?0:1,this}},8776:t=>{t.exports=function(t){var e=-1,r=Array(t.size);return t.forEach((function(t,n){r[++e]=[n,t]})),r}},4536:(t,e,r)=>{var n=r(852)(Object,"create");t.exports=n},6916:(t,e,r)=>{var n=r(5569)(Object.keys,Object);t.exports=n},1167:(t,e,r)=>{t=r.nmd(t);var n=r(1957),o=e&&!e.nodeType&&e,a=o&&t&&!t.nodeType&&t,i=a&&a.exports===o&&n.process,s=function(){try{return a&&a.require&&a.require("util").types||i&&i.binding&&i.binding("util")}catch(t){}}();t.exports=s},2333:t=>{var e=Object.prototype.toString;t.exports=function(t){return e.call(t)}},5569:t=>{t.exports=function(t,e){return function(r){return t(e(r))}}},5639:(t,e,r)=>{var n=r(1957),o="object"==typeof self&&self&&self.Object===Object&&self,a=n||o||Function("return this")();t.exports=a},619:t=>{t.exports=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this}},2385:t=>{t.exports=function(t){return this.__data__.has(t)}},1814:t=>{t.exports=function(t){var e=-1,r=Array(t.size);return t.forEach((function(t){r[++e]=t})),r}},7465:(t,e,r)=>{var n=r(8407);t.exports=function(){this.__data__=new n,this.size=0}},3779:t=>{t.exports=function(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r}},7599:t=>{t.exports=function(t){return this.__data__.get(t)}},4758:t=>{t.exports=function(t){return this.__data__.has(t)}},4309:(t,e,r)=>{var n=r(8407),o=r(7071),a=r(3369);t.exports=function(t,e){var r=this.__data__;if(r instanceof n){var i=r.__data__;if(!o||i.length<199)return i.push([t,e]),this.size=++r.size,this;r=this.__data__=new a(i)}return r.set(t,e),this.size=r.size,this}},346:t=>{var e=Function.prototype.toString;t.exports=function(t){if(null!=t){try{return e.call(t)}catch(t){}try{return t+""}catch(t){}}return""}},7813:t=>{t.exports=function(t,e){return t===e||t!=t&&e!=e}},5694:(t,e,r)=>{var n=r(9454),o=r(7005),a=Object.prototype,i=a.hasOwnProperty,s=a.propertyIsEnumerable,c=n(function(){return arguments}())?n:function(t){return o(t)&&i.call(t,"callee")&&!s.call(t,"callee")};t.exports=c},1469:t=>{var e=Array.isArray;t.exports=e},8612:(t,e,r)=>{var n=r(3560),o=r(1780);t.exports=function(t){return null!=t&&o(t.length)&&!n(t)}},4144:(t,e,r)=>{t=r.nmd(t);var n=r(5639),o=r(5062),a=e&&!e.nodeType&&e,i=a&&t&&!t.nodeType&&t,s=i&&i.exports===a?n.Buffer:void 0,c=(s?s.isBuffer:void 0)||o;t.exports=c},8446:(t,e,r)=>{var n=r(939);t.exports=function(t,e){return n(t,e)}},3560:(t,e,r)=>{var n=r(4239),o=r(3218);t.exports=function(t){if(!o(t))return!1;var e=n(t);return"[object Function]"==e||"[object GeneratorFunction]"==e||"[object AsyncFunction]"==e||"[object Proxy]"==e}},1780:t=>{t.exports=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991}},3218:t=>{t.exports=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}},7005:t=>{t.exports=function(t){return null!=t&&"object"==typeof t}},6719:(t,e,r)=>{var n=r(8749),o=r(1717),a=r(1167),i=a&&a.isTypedArray,s=i?o(i):n;t.exports=s},3674:(t,e,r)=>{var n=r(4636),o=r(280),a=r(8612);t.exports=function(t){return a(t)?n(t):o(t)}},479:t=>{t.exports=function(){return[]}},5062:t=>{t.exports=function(){return!1}},75:function(t){(function(){var e,r,n,o,a,i;"undefined"!=typeof performance&&null!==performance&&performance.now?t.exports=function(){return performance.now()}:"undefined"!=typeof process&&null!==process&&process.hrtime?(t.exports=function(){return(e()-a)/1e6},r=process.hrtime,o=(e=function(){var t;return 1e9*(t=r())[0]+t[1]})(),i=1e9*process.uptime(),a=o-i):Date.now?(t.exports=function(){return Date.now()-n},n=Date.now()):(t.exports=function(){return(new Date).getTime()-n},n=(new Date).getTime())}).call(this)},4087:(t,e,r)=>{for(var n=r(75),o="undefined"==typeof window?r.g:window,a=["moz","webkit"],i="AnimationFrame",s=o["request"+i],c=o["cancel"+i]||o["cancelRequest"+i],u=0;!s&&u{"use strict";e.exports=t}},r={};function n(t){var o=r[t];if(void 0!==o)return o.exports;var a=r[t]={id:t,loaded:!1,exports:{}};return e[t].call(a.exports,a,a.exports,n),a.loaded=!0,a.exports}n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n.nmd=t=>(t.paths=[],t.children||(t.children=[]),t);var o={};return(()=>{"use strict";n.d(o,{default:()=>v});var t=n(8156),e=n.n(t),r=n(7403),a=n(8446),i=n.n(a);function s(t){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},s(t)}function c(t,e){return c=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},c(t,e)}function u(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function l(t){return l=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},l(t)}function p(t){var e=function(t){if("object"!==s(t)||null===t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!==s(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"===s(e)?e:String(e)}var f=function(t){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&c(t,e)}(d,t);var n,o,a,f,v=(a=d,f=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}(),function(){var t,e=l(a);if(f){var r=l(this).constructor;t=Reflect.construct(e,arguments,r)}else t=e.apply(this,arguments);return function(t,e){if(e&&("object"===s(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return u(t)}(this,t)});function d(){var t,e,r,n;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,d);for(var o=arguments.length,a=new Array(o),i=0;i{i.r(r),i.d(r,{assets:()=>d,contentTitle:()=>o,default:()=>p,frontMatter:()=>t,metadata:()=>c,toc:()=>l});var n=i(74848),s=i(28453);const t={description:"TypeScript SDK Reference"},o="Reference",c={id:"typescript/api",title:"Reference",description:"TypeScript SDK Reference",source:"@site/pages/typescript/api.md",sourceDirName:"typescript",slug:"/typescript/api",permalink:"/docs/typescript/api",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{description:"TypeScript SDK Reference"},sidebar:"sidebar",previous:{title:"Example: AWS EC2",permalink:"/docs/deployment/aws-ec2"},next:{title:"Hooks",permalink:"/docs/typescript/hooks"}},d={},l=[{value:"LiveCompositor",id:"livecompositor",level:2},{value:"new LiveCompositor()",id:"new-livecompositor",level:3},{value:"init()",id:"init",level:3},{value:"start()",id:"start",level:3},{value:"Outputs configuration",id:"outputs-configuration",level:3},{value:"Register output",id:"register-output",level:4},{value:"Unregister output",id:"unregister-output",level:4},{value:"Inputs configuration",id:"inputs-configuration",level:3},{value:"Register input",id:"register-input",level:4},{value:"Unregister input",id:"unregister-input",level:4},{value:"Renderers configuration",id:"renderers-configuration",level:3},{value:"Register image",id:"register-image",level:4},{value:"Unregister image",id:"unregister-image",level:4},{value:"Register shader",id:"register-shader",level:4},{value:"Unregister shader",id:"unregister-shader",level:4},{value:"Register web renderer instance",id:"register-web-renderer-instance",level:4},{value:"Unregister web renderer instance",id:"unregister-web-renderer-instance",level:4}];function a(e){const r={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",hr:"hr",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,s.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(r.h1,{id:"reference",children:"Reference"}),"\n",(0,n.jsxs)(r.p,{children:["Packages like ",(0,n.jsx)(r.code,{children:"@live-compositor/node"})," export ",(0,n.jsx)(r.code,{children:"LiveCompositor"})," class that is a main entity used to interact with or control Live Compositor server instance."]}),"\n",(0,n.jsx)(r.h2,{id:"livecompositor",children:(0,n.jsx)(r.code,{children:"LiveCompositor"})}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-tsx",children:'import LiveCompositor from "@live-compositor/node"\n'})}),"\n",(0,n.jsx)(r.h3,{id:"new-livecompositor",children:(0,n.jsx)(r.code,{children:"new LiveCompositor()"})}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-tsx",children:"new LiveCompositor(manager?: CompositorManager)\n"})}),"\n",(0,n.jsxs)(r.p,{children:["Creates new compositor configuration. You have to call ",(0,n.jsx)(r.code,{children:"init"})," first before this object can be used."]}),"\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.code,{children:"CompositorManager"})," configures how the client code will connect and manage the LiveCompositor server."]}),"\n",(0,n.jsxs)(r.ul,{children:["\n",(0,n.jsxs)(r.li,{children:["(",(0,n.jsx)(r.strong,{children:"default"}),") ",(0,n.jsx)(r.code,{children:"LocallySpawnedInstance"})," from ",(0,n.jsx)(r.code,{children:"@live-compositor/node"})," downloads LiveCompositor binaries and starts the server on the local machine."]}),"\n",(0,n.jsxs)(r.li,{children:[(0,n.jsx)(r.code,{children:"ExistingInstance"})," from ",(0,n.jsx)(r.code,{children:"@live-compositor/node"})," connects to already existing compositor instance."]}),"\n"]}),"\n",(0,n.jsx)(r.h3,{id:"init",children:(0,n.jsx)(r.code,{children:"init()"})}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-tsx",children:"LiveCompositor.init(): Promise\n"})}),"\n",(0,n.jsxs)(r.p,{children:["Initialize the LiveCompositor instance, depending on which ",(0,n.jsx)(r.code,{children:"CompositorManager"})," you are using it might mean spawning\nnew instance or just establishing connection."]}),"\n",(0,n.jsxs)(r.p,{children:["After this request you can start connecting inputs/outputs or register other elements. However, no output stream will\nbe produced until ",(0,n.jsx)(r.code,{children:"start()"})," method is called."]}),"\n",(0,n.jsx)(r.h3,{id:"start",children:(0,n.jsx)(r.code,{children:"start()"})}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-tsx",children:"LiveCompositor.start(): Promise\n"})}),"\n",(0,n.jsx)(r.p,{children:"Starts the processing pipeline. Any previously registered output will start producing the video/audio stream."}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"outputs-configuration",children:"Outputs configuration"}),"\n",(0,n.jsx)(r.h4,{id:"register-output",children:"Register output"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-tsx",children:'import { Outputs } from "live-compositor"\n\nLiveCompositor.registerOutput(\n outputId: string,\n output: Outputs.RegisterOutput,\n): Promise\n'})}),"\n",(0,n.jsx)(r.p,{children:"Register external destination that can be used as a compositor output. See outputs documentation to learn more:"}),"\n",(0,n.jsxs)(r.ul,{children:["\n",(0,n.jsx)(r.li,{children:(0,n.jsx)(r.a,{href:"/docs/typescript/outputs/rtp",children:"Rtp"})}),"\n",(0,n.jsx)(r.li,{children:(0,n.jsx)(r.a,{href:"/docs/typescript/outputs/mp4",children:"Mp4"})}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"unregister-output",children:"Unregister output"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-tsx",children:"LiveCompositor.unregisterOutput(outputId: string): Promise\n"})}),"\n",(0,n.jsx)(r.p,{children:"Unregister previously registered output."}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"inputs-configuration",children:"Inputs configuration"}),"\n",(0,n.jsx)(r.h4,{id:"register-input",children:"Register input"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-tsx",children:'import { Inputs } from "live-compositor"\n\nLiveCompositor.registerInput(\n inputId: string,\n input: Inputs.RegisterInput,\n): Promise\n'})}),"\n",(0,n.jsx)(r.p,{children:"Register external source that can be used as a compositor input. See inputs documentation to learn more:"}),"\n",(0,n.jsxs)(r.ul,{children:["\n",(0,n.jsx)(r.li,{children:(0,n.jsx)(r.a,{href:"/docs/typescript/inputs/rtp",children:"RTP"})}),"\n",(0,n.jsx)(r.li,{children:(0,n.jsx)(r.a,{href:"/docs/typescript/inputs/mp4",children:"MP4"})}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"unregister-input",children:"Unregister input"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-tsx",children:"LiveCompositor.unregisterInput(inputId: string): Promise\n"})}),"\n",(0,n.jsx)(r.p,{children:"Unregister a previously registered input."}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"renderers-configuration",children:"Renderers configuration"}),"\n",(0,n.jsx)(r.h4,{id:"register-image",children:"Register image"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-tsx",children:'import { Renderers } from "live-compositor"\n\nLiveCompositor.registerImage(\n imageId: string,\n image: Renderers.RegisterImage,\n): Promise\n'})}),"\n",(0,n.jsxs)(r.p,{children:["Register an image asset. See ",(0,n.jsx)(r.a,{href:"/docs/typescript/renderers/image",children:(0,n.jsx)(r.code,{children:"Renderers.RegisterImage"})})," to learn more."]}),"\n",(0,n.jsx)(r.h4,{id:"unregister-image",children:"Unregister image"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-tsx",children:"LiveCompositor.unregisterImage(imageId: string): Promise\n"})}),"\n",(0,n.jsx)(r.p,{children:"Unregister a previously registered image asset."}),"\n",(0,n.jsx)(r.h4,{id:"register-shader",children:"Register shader"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-tsx",children:'import { Renderers } from "live-compositor"\n\nLiveCompositor.registerShader(\n shaderId: string,\n shader: Renderers.RegisterShader,\n): Promise\n'})}),"\n",(0,n.jsxs)(r.p,{children:["Register a shader. See ",(0,n.jsx)(r.a,{href:"/docs/typescript/renderers/shader",children:(0,n.jsx)(r.code,{children:"Renderers.RegisterShader"})})," to learn more."]}),"\n",(0,n.jsx)(r.h4,{id:"unregister-shader",children:"Unregister shader"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-tsx",children:"LiveCompositor.unregisterShader(shaderId: string): Promise\n"})}),"\n",(0,n.jsx)(r.p,{children:"Unregister a previously registered shader."}),"\n",(0,n.jsx)(r.h4,{id:"register-web-renderer-instance",children:"Register web renderer instance"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-tsx",children:'import { Renderers } from "live-compositor"\n\nLiveCompositor.registerWebRenderer(\n instanceId: string,\n instance: Renderers.RegisterWebRenderer,\n): Promise\n'})}),"\n",(0,n.jsxs)(r.p,{children:["Register a web renderer instance. See ",(0,n.jsx)(r.a,{href:"/docs/typescript/renderers/web",children:(0,n.jsx)(r.code,{children:"Renderer.RegisterWebRenderer"})})," to learn more."]}),"\n",(0,n.jsx)(r.h4,{id:"unregister-web-renderer-instance",children:"Unregister web renderer instance"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-tsx",children:"LiveCompositor.unregisterWebRenderer(instanceId: string): Promise\n"})}),"\n",(0,n.jsx)(r.p,{children:"Unregister a previously registered web renderer."})]})}function p(e={}){const{wrapper:r}={...(0,s.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(a,{...e})}):a(e)}},28453:(e,r,i)=>{i.d(r,{R:()=>o,x:()=>c});var n=i(96540);const s={},t=n.createContext(s);function o(e){const r=n.useContext(t);return n.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function c(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),n.createElement(t.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/8149da16.716ba1ad.js b/assets/js/8149da16.716ba1ad.js new file mode 100644 index 000000000..145ac9433 --- /dev/null +++ b/assets/js/8149da16.716ba1ad.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcompositor_live=self.webpackChunkcompositor_live||[]).push([[9551],{33475:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>d,contentTitle:()=>c,default:()=>h,frontMatter:()=>t,metadata:()=>o,toc:()=>l});var i=n(74848),r=n(28453);const t={},c="TypeScript SDK Reference",o={id:"typescript/api",title:"TypeScript SDK Reference",description:"new LiveCompositor()",source:"@site/pages/typescript/api.md",sourceDirName:"typescript",slug:"/typescript/api",permalink:"/docs/typescript/api",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"sidebar",previous:{title:"Example: AWS EC2",permalink:"/docs/deployment/aws-ec2"},next:{title:"LiveCompositor",permalink:"/docs/typescript/instance"}},d={},l=[{value:"new LiveCompositor()",id:"new-livecompositor",level:2},{value:"Components",id:"components",level:2},{value:"Hooks",id:"hooks",level:2},{value:"Renderers",id:"renderers",level:2},{value:"Inputs",id:"inputs",level:2},{value:"Outputs",id:"outputs",level:2}];function p(e){const s={a:"a",code:"code",h1:"h1",h2:"h2",li:"li",p:"p",ul:"ul",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(s.h1,{id:"typescript-sdk-reference",children:"TypeScript SDK Reference"}),"\n",(0,i.jsx)(s.h2,{id:"new-livecompositor",children:(0,i.jsx)(s.code,{children:"new LiveCompositor()"})}),"\n",(0,i.jsxs)(s.p,{children:["Packages like ",(0,i.jsx)(s.code,{children:"@live-compositor/node"})," export ",(0,i.jsx)(s.code,{children:"LiveCompositor"})," class that is a main entity used to interact with or control Live Compositor server instance."]}),"\n",(0,i.jsxs)(s.p,{children:["See ",(0,i.jsx)(s.a,{href:"/docs/typescript/instance",children:"LiveCompositor API"}),"."]}),"\n",(0,i.jsx)(s.h2,{id:"components",children:"Components"}),"\n",(0,i.jsx)(s.p,{children:"React components that can be used to define how input streams should be composed."}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"/docs/typescript/components/InputStream",children:(0,i.jsx)(s.code,{children:"InputStream"})})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"/docs/typescript/components/View",children:(0,i.jsx)(s.code,{children:"View"})})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"/docs/typescript/components/Rescaler",children:(0,i.jsx)(s.code,{children:"Rescaler"})})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"/docs/typescript/components/Tiles",children:(0,i.jsx)(s.code,{children:"Tiles"})})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"/docs/typescript/components/Text",children:(0,i.jsx)(s.code,{children:"Text"})})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"/docs/typescript/components/Shader",children:(0,i.jsx)(s.code,{children:"Shader"})})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"/docs/typescript/components/Image",children:(0,i.jsx)(s.code,{children:"Image"})})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"/docs/typescript/components/WebView",children:(0,i.jsx)(s.code,{children:"InputStream"})})}),"\n"]}),"\n",(0,i.jsxs)(s.p,{children:["You can't use DOM components like ",(0,i.jsx)(s.code,{children:"
"})," when composing streams. React code can only use LiveCompositor specific components."]}),"\n",(0,i.jsx)(s.h2,{id:"hooks",children:"Hooks"}),"\n",(0,i.jsx)(s.p,{children:"React hooks that can be used in React code that controls stream composition."}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"/docs/typescript/hooks#useinputstreams",children:(0,i.jsx)(s.code,{children:"useInputStreams"})})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"/docs/typescript/hooks#useinputaudio",children:(0,i.jsx)(s.code,{children:"useInputAudio"})})}),"\n"]}),"\n",(0,i.jsxs)(s.p,{children:["You can also use regular React hooks like ",(0,i.jsx)(s.code,{children:"useState"}),", ",(0,i.jsx)(s.code,{children:"useEffect"})," and others."]}),"\n",(0,i.jsx)(s.h2,{id:"renderers",children:"Renderers"}),"\n",(0,i.jsxs)(s.p,{children:["Functionality that can be used when composing streams, but it has to be registered first e.g. ",(0,i.jsx)(s.code,{children:"Shader"})," needs to be registered first before you use ",(0,i.jsx)(s.code,{children:""})," component."]}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"/docs/typescript/renderers/shader",children:(0,i.jsx)(s.code,{children:"Shader"})})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"/docs/typescript/renderers/image",children:(0,i.jsx)(s.code,{children:"Image"})})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"/docs/typescript/renderers/web",children:(0,i.jsx)(s.code,{children:"WebRenderer"})})}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"inputs",children:"Inputs"}),"\n",(0,i.jsxs)(s.p,{children:["To deliver video/audio to the compositor you need to register some inputs. Registered stream can be used in composition using ",(0,i.jsx)(s.code,{children:''})," component."]}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"/docs/typescript/inputs/rtp",children:(0,i.jsx)(s.code,{children:"RTP"})})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"/docs/typescript/inputs/mp4",children:(0,i.jsx)(s.code,{children:"MP4"})})}),"\n"]}),"\n",(0,i.jsxs)(s.p,{children:["You can register an input with ",(0,i.jsx)(s.a,{href:"./instance#register-input",children:(0,i.jsx)(s.code,{children:"LiveCompositor.registerInput"})})]}),"\n",(0,i.jsx)(s.h2,{id:"outputs",children:"Outputs"}),"\n",(0,i.jsx)(s.p,{children:"Defines protocol, format and destination of the composed video and mixed audio streams."}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"/docs/typescript/outputs/rtp",children:(0,i.jsx)(s.code,{children:"RTP"})})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"/docs/typescript/outputs/mp4",children:(0,i.jsx)(s.code,{children:"MP4"})})}),"\n"]}),"\n",(0,i.jsxs)(s.p,{children:["You can register an output with ",(0,i.jsx)(s.a,{href:"./instance#register-output",children:(0,i.jsx)(s.code,{children:"LiveCompositor.registerOutput"})})]})]})}function h(e={}){const{wrapper:s}={...(0,r.R)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(p,{...e})}):p(e)}},28453:(e,s,n)=>{n.d(s,{R:()=>c,x:()=>o});var i=n(96540);const r={},t=i.createContext(r);function c(e){const s=i.useContext(t);return i.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:c(e.components),i.createElement(t.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/8465aa74.4f43d518.js b/assets/js/8465aa74.2ca4c293.js similarity index 50% rename from assets/js/8465aa74.4f43d518.js rename to assets/js/8465aa74.2ca4c293.js index 030a65a68..2cf874fee 100644 --- a/assets/js/8465aa74.4f43d518.js +++ b/assets/js/8465aa74.2ca4c293.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcompositor_live=self.webpackChunkcompositor_live||[]).push([[6519],{68978:e=>{e.exports=JSON.parse('{"title":"Guides","slug":"/category/guides","permalink":"/docs/category/guides","navigation":{"previous":{"title":"Getting started","permalink":"/docs/intro"},"next":{"title":"Quick start","permalink":"/docs/guides/quick-start"}}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkcompositor_live=self.webpackChunkcompositor_live||[]).push([[6519],{68978:e=>{e.exports=JSON.parse('{"title":"Guides","slug":"/category/guides","permalink":"/docs/category/guides","navigation":{"previous":{"title":"Where to go next?","permalink":"/docs/intro/where-next"},"next":{"title":"Quick start","permalink":"/docs/guides/quick-start"}}}')}}]); \ No newline at end of file diff --git a/assets/js/914825a2.451f730a.js b/assets/js/914825a2.451f730a.js new file mode 100644 index 000000000..fe637db12 --- /dev/null +++ b/assets/js/914825a2.451f730a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcompositor_live=self.webpackChunkcompositor_live||[]).push([[9835],{42365:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>i,default:()=>h,frontMatter:()=>s,metadata:()=>c,toc:()=>l});var o=n(74848),r=n(28453);const s={},i="Getting started",c={id:"intro",title:"Getting started",description:"TypeScript/React project is the easiest way to start your journey with the Live Compositor.",source:"@site/pages/intro.md",sourceDirName:".",slug:"/intro",permalink:"/docs/intro",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"sidebar",next:{title:"What is Live Compositor?",permalink:"/docs/intro/what-is-compositor"}},a={},l=[];function d(e){const t={a:"a",code:"code",h1:"h1",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.h1,{id:"getting-started",children:"Getting started"}),"\n",(0,o.jsx)(t.p,{children:"TypeScript/React project is the easiest way to start your journey with the Live Compositor.\nTo generate project run below command and follow the instructions."}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"npm create live-compositor@latest\n"})}),"\n",(0,o.jsx)(t.p,{children:"If you don't want to use TypeScript SDK you can also use Live Compositor as:"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.a,{href:"/docs/intro/how-to-use#standalone",children:"Standalone media server"})}),"\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.a,{href:"/docs/intro/how-to-use#membrane-framework-plugin",children:"Membrane Framework plugin"})}),"\n"]}),"\n",(0,o.jsx)(t.p,{children:"Check out:"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.a,{href:"/docs/intro/what-is-compositor",children:"What is Live Compositor?"})}),"\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.a,{href:"/docs/intro/how-to-use",children:"How to use it?"})}),"\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.a,{href:"/docs/intro/where-next",children:"Where to go next?"})}),"\n"]})]})}function h(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(d,{...e})}):d(e)}},28453:(e,t,n)=>{n.d(t,{R:()=>i,x:()=>c});var o=n(96540);const r={},s=o.createContext(r);function i(e){const t=o.useContext(s);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),o.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/914825a2.5ea72c0b.js b/assets/js/914825a2.5ea72c0b.js deleted file mode 100644 index 61fafa676..000000000 --- a/assets/js/914825a2.5ea72c0b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcompositor_live=self.webpackChunkcompositor_live||[]).push([[9835],{42365:(e,o,i)=>{i.r(o),i.d(o,{assets:()=>c,contentTitle:()=>r,default:()=>h,frontMatter:()=>n,metadata:()=>a,toc:()=>l});var t=i(74848),s=i(28453);const n={},r="Getting started",a={id:"intro",title:"Getting started",description:"What is Live Compositor?",source:"@site/pages/intro.md",sourceDirName:".",slug:"/intro",permalink:"/docs/intro",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"sidebar",next:{title:"Guides",permalink:"/docs/category/guides"}},c={},l=[{value:"What is Live Compositor?",id:"what-is-live-compositor",level:2},{value:"Where to start?",id:"where-to-start",level:2},{value:"How to use it?",id:"how-to-use-it",level:2},{value:"Standalone",id:"standalone",level:3},{value:"Membrane Framework plugin",id:"membrane-framework-plugin",level:3}];function d(e){const o={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,s.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(o.h1,{id:"getting-started",children:"Getting started"}),"\n",(0,t.jsx)(o.h2,{id:"what-is-live-compositor",children:"What is Live Compositor?"}),"\n",(0,t.jsx)(o.p,{children:"LiveCompositor is a media server for real-time, low latency, programmable video and audio mixing."}),"\n",(0,t.jsx)(o.p,{children:"LiveCompositor targets real-time use cases, with a significant focus on situations where latency is critical. It is a great fit\nfor any video conferencing, live-streaming, or broadcasting solutions where you need to combine or modify video on the fly.\nHowever, you can also use it for non-real-time use cases, for example, apply some effect on a video from an MP4 file and write the output\nto file as MP4."}),"\n",(0,t.jsx)(o.h2,{id:"where-to-start",children:"Where to start?"}),"\n",(0,t.jsxs)(o.p,{children:["To get started check out our ",(0,t.jsx)(o.a,{href:"./category/guides",children:(0,t.jsx)(o.code,{children:"Guides"})})," section that will walk you through common scenarios."]}),"\n",(0,t.jsxs)(o.ul,{children:["\n",(0,t.jsxs)(o.li,{children:[(0,t.jsx)(o.a,{href:"/docs/guides/quick-start",children:(0,t.jsx)(o.code,{children:"Quick start"})})," basic video composing and audio mixing setup."]}),"\n",(0,t.jsxs)(o.li,{children:[(0,t.jsx)(o.a,{href:"/docs/guides/deliver-input",children:(0,t.jsx)(o.code,{children:"Deliver input streams"})})," explains and shows examples of streaming multimedia to the LiveCompositor and use them for mixing/composition."]}),"\n",(0,t.jsxs)(o.li,{children:[(0,t.jsx)(o.a,{href:"/docs/guides/receive-output",children:(0,t.jsx)(o.code,{children:"Receive output streams"})})," explains and shows examples of receiving streams with results of mixing/composition from the LiveCompositor"]}),"\n",(0,t.jsxs)(o.li,{children:[(0,t.jsx)(o.a,{href:"/docs/guides/basic-layouts",children:(0,t.jsx)(o.code,{children:"Basic Layouts"})})," describes how to achieve a few of the most basic layouts when composing video."]}),"\n",(0,t.jsxs)(o.li,{children:[(0,t.jsx)(o.a,{href:"/docs/guides/view-transition",children:(0,t.jsx)(o.code,{children:"Transitions (View/Rescaler)"})})," shows a few basic examples of animated transitions on ",(0,t.jsx)(o.code,{children:"View"}),"/",(0,t.jsx)(o.code,{children:"Rescaler"})," components."]}),"\n"]}),"\n",(0,t.jsxs)(o.p,{children:["The main concept and basic abstractions that the LiveCompositor operates on are described in the ",(0,t.jsx)(o.a,{href:"/docs/concept/overview",children:(0,t.jsx)(o.code,{children:"Concepts"})})," section."]}),"\n",(0,t.jsx)(o.h2,{id:"how-to-use-it",children:"How to use it?"}),"\n",(0,t.jsx)(o.p,{children:"Live Compositor can be used standalone or as a part of a Membrane Framework multimedia pipeline."}),"\n",(0,t.jsx)(o.h3,{id:"standalone",children:"Standalone"}),"\n",(0,t.jsx)(o.p,{children:"You can use LiveCompositor as a standalone multimedia server. The server can be started by:"}),"\n",(0,t.jsxs)(o.ul,{children:["\n",(0,t.jsxs)(o.li,{children:["Building ",(0,t.jsx)(o.a,{href:"https://github.com/software-mansion/live-compositor",children:(0,t.jsx)(o.code,{children:"github.com/software-mansion/live-compositor"})})," from source."]}),"\n",(0,t.jsxs)(o.li,{children:["Using binaries from ",(0,t.jsx)(o.a,{href:"https://github.com/software-mansion/live-compositor/releases",children:"GitHub releases"}),"."]}),"\n",(0,t.jsxs)(o.li,{children:["Using Docker","\n",(0,t.jsxs)(o.ul,{children:["\n",(0,t.jsxs)(o.li,{children:["(recommended) Dockerfile with compositor without web rendering support ",(0,t.jsx)(o.a,{href:"https://github.com/software-mansion/live-compositor/blob/master/build_tools/docker/slim.Dockerfile",children:"https://github.com/software-mansion/live-compositor/blob/master/build_tools/docker/slim.Dockerfile"})]}),"\n",(0,t.jsxs)(o.li,{children:["Dockerfile with compositor with web rendering support ",(0,t.jsx)(o.a,{href:"https://github.com/software-mansion/live-compositor/blob/master/build_tools/docker/full.Dockerfile",children:"https://github.com/software-mansion/live-compositor/blob/master/build_tools/docker/full.Dockerfile"})]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(o.h3,{id:"membrane-framework-plugin",children:"Membrane Framework plugin"}),"\n",(0,t.jsx)(o.p,{children:"Membrane Framework has its own way of handling multimedia, so to fit into that ecosystem some features do not translate one-to-one between standalone compositor and the plugin."}),"\n",(0,t.jsx)(o.p,{children:"Notable differences:"}),"\n",(0,t.jsxs)(o.ul,{children:["\n",(0,t.jsx)(o.li,{children:"Inputs/outputs in LiveCompositor can include both audio and video at the same time, but with the Membrane plugin you need to create separate inputs/outputs for each media type."}),"\n",(0,t.jsx)(o.li,{children:"No support for MP4 files as input. It is more idiomatic to use Membrane plugins to read MP4 files instead."}),"\n",(0,t.jsx)(o.li,{children:"To connect inputs/outputs to LiveCompositor you need to first register them before sending/receiving the stream, but with the Membrane plugin connecting pads covers both those steps."}),"\n"]}),"\n",(0,t.jsxs)(o.p,{children:["Parts of this documentation were written with a standalone scenario in mind, so make sure to always consult ",(0,t.jsx)(o.a,{href:"https://hexdocs.pm/membrane_live_compositor_plugin/0.9.0/Membrane.LiveCompositor.html",children:"the plugin documentation"})," first. For example, to see how to send a scene update check out documentation on ",(0,t.jsx)(o.code,{children:"HexDocs"}),", but if you want to know what options the ",(0,t.jsx)(o.code,{children:"View"})," component supports, then consult the documentation ",(0,t.jsx)(o.a,{href:"/docs/api/components/View",children:"here"}),"."]})]})}function h(e={}){const{wrapper:o}={...(0,s.R)(),...e.components};return o?(0,t.jsx)(o,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},28453:(e,o,i)=>{i.d(o,{R:()=>r,x:()=>a});var t=i(96540);const s={},n=t.createContext(s);function r(e){const o=t.useContext(n);return t.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function a(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),t.createElement(n.Provider,{value:o},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.3226bc45.js b/assets/js/935f2afb.3226bc45.js new file mode 100644 index 000000000..ab35cf6a0 --- /dev/null +++ b/assets/js/935f2afb.3226bc45.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcompositor_live=self.webpackChunkcompositor_live||[]).push([[8581],{35610:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"sidebar":[{"label":"Getting started","type":"category","items":[{"type":"link","label":"What is Live Compositor?","href":"/docs/intro/what-is-compositor","docId":"intro/what-is-compositor","unlisted":false},{"type":"link","label":"How to use it?","href":"/docs/intro/how-to-use","docId":"intro/how-to-use","unlisted":false},{"type":"link","label":"Where to go next?","href":"/docs/intro/where-next","docId":"intro/where-next","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/docs/intro"},{"type":"category","label":"Guides","items":[{"type":"link","label":"Quick start","href":"/docs/guides/quick-start","docId":"guides/quick-start","unlisted":false},{"type":"link","label":"Deliver input streams","href":"/docs/guides/deliver-input","docId":"guides/deliver-input","unlisted":false},{"type":"link","label":"Receive output streams","href":"/docs/guides/receive-output","docId":"guides/receive-output","unlisted":false},{"type":"link","label":"Basic Layouts","href":"/docs/guides/basic-layouts","docId":"guides/basic-layouts","unlisted":false},{"type":"link","label":"Transitions (View/Rescaler)","href":"/docs/guides/view-transition","docId":"guides/view-transition","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/docs/category/guides"},{"type":"category","label":"Concepts","items":[{"type":"link","label":"Overview","href":"/docs/concept/overview","docId":"concept/overview","unlisted":false},{"type":"link","label":"Component","href":"/docs/concept/component","docId":"concept/component","unlisted":false},{"type":"link","label":"Layouts","href":"/docs/concept/layouts","docId":"concept/layouts","unlisted":false},{"type":"link","label":"Shaders","href":"/docs/concept/shaders","docId":"concept/shaders","unlisted":false},{"type":"link","label":"Web Renderer","href":"/docs/concept/web","docId":"concept/web","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/docs/concept/overview"},{"type":"category","label":"Deployment","items":[{"type":"link","label":"Overview","href":"/docs/deployment/overview","docId":"deployment/overview","unlisted":false},{"type":"link","label":"Requirements","href":"/docs/deployment/requirements","docId":"deployment/requirements","unlisted":false},{"type":"link","label":"Configuration","href":"/docs/deployment/configuration","docId":"deployment/configuration","unlisted":false},{"type":"link","label":"Example: AWS EC2","href":"/docs/deployment/aws-ec2","docId":"deployment/aws-ec2","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/docs/deployment/overview"},{"type":"category","label":"TypeScript SDK Reference","items":[{"type":"link","label":"Overview","href":"/docs/typescript/api","docId":"typescript/api","unlisted":false},{"type":"link","label":"new LiveCompositor()","href":"/docs/typescript/instance","docId":"typescript/instance","unlisted":false},{"type":"link","label":"Hooks","href":"/docs/typescript/hooks","docId":"typescript/hooks","unlisted":false},{"type":"category","label":"Components","collapsed":false,"description":"Basic blocks used to define a scene.","items":[{"type":"link","label":"InputStream","href":"/docs/typescript/components/InputStream","docId":"typescript/components/InputStream","unlisted":false},{"type":"link","label":"View","href":"/docs/typescript/components/View","docId":"typescript/components/View","unlisted":false},{"type":"link","label":"Rescaler","href":"/docs/typescript/components/Rescaler","docId":"typescript/components/Rescaler","unlisted":false},{"type":"link","label":"Tiles","href":"/docs/typescript/components/Tiles","docId":"typescript/components/Tiles","unlisted":false},{"type":"link","label":"Text","href":"/docs/typescript/components/Text","docId":"typescript/components/Text","unlisted":false},{"type":"link","label":"Shader","href":"/docs/typescript/components/Shader","docId":"typescript/components/Shader","unlisted":false},{"type":"link","label":"Image","href":"/docs/typescript/components/Image","docId":"typescript/components/Image","unlisted":false},{"type":"link","label":"WebView","href":"/docs/typescript/components/WebView","docId":"typescript/components/WebView","unlisted":false}],"collapsible":true},{"type":"category","label":"Renderers","collapsed":false,"description":"Resources that need to be registered first before they can be used.","items":[{"type":"link","label":"Shader","href":"/docs/typescript/renderers/shader","docId":"typescript/renderers/shader","unlisted":false},{"type":"link","label":"Image","href":"/docs/typescript/renderers/image","docId":"typescript/renderers/image","unlisted":false},{"type":"link","label":"Web Renderer","href":"/docs/typescript/renderers/web","docId":"typescript/renderers/web","unlisted":false}],"collapsible":true},{"type":"category","label":"Outputs","collapsed":false,"description":"Elements that deliver generated media.","items":[{"type":"link","label":"RTP","href":"/docs/typescript/outputs/rtp","docId":"typescript/outputs/rtp","unlisted":false},{"type":"link","label":"MP4","href":"/docs/typescript/outputs/mp4","docId":"typescript/outputs/mp4","unlisted":false}],"collapsible":true},{"type":"category","label":"Inputs","collapsed":false,"description":"Elements that deliver media from external sources.","items":[{"type":"link","label":"RTP","href":"/docs/typescript/inputs/rtp","docId":"typescript/inputs/rtp","unlisted":false},{"type":"link","label":"MP4","href":"/docs/typescript/inputs/mp4","docId":"typescript/inputs/mp4","unlisted":false}],"collapsible":true}],"collapsed":true,"collapsible":true,"href":"/docs/typescript/api"},{"type":"category","label":"HTTP API Reference","items":[{"type":"link","label":"HTTP Routes","href":"/docs/api/routes","docId":"api/routes","unlisted":false},{"type":"link","label":"Events","href":"/docs/api/events","docId":"api/events","unlisted":false},{"type":"category","label":"Components","collapsed":false,"description":"Basic blocks used to define a scene.","items":[{"type":"link","label":"InputStream","href":"/docs/api/components/InputStream","docId":"api/components/InputStream","unlisted":false},{"type":"link","label":"View","href":"/docs/api/components/View","docId":"api/components/View","unlisted":false},{"type":"link","label":"Rescaler","href":"/docs/api/components/Rescaler","docId":"api/components/Rescaler","unlisted":false},{"type":"link","label":"Tiles","href":"/docs/api/components/Tiles","docId":"api/components/Tiles","unlisted":false},{"type":"link","label":"Text","href":"/docs/api/components/Text","docId":"api/components/Text","unlisted":false},{"type":"link","label":"Shader","href":"/docs/api/components/Shader","docId":"api/components/Shader","unlisted":false},{"type":"link","label":"Image","href":"/docs/api/components/Image","docId":"api/components/Image","unlisted":false},{"type":"link","label":"WebView","href":"/docs/api/components/WebView","docId":"api/components/WebView","unlisted":false}],"collapsible":true},{"type":"category","label":"Renderers","description":"Resources that need to be registered first before they can be used.","items":[{"type":"link","label":"Shader","href":"/docs/api/renderers/shader","docId":"api/renderers/shader","unlisted":false},{"type":"link","label":"Image","href":"/docs/api/renderers/image","docId":"api/renderers/image","unlisted":false},{"type":"link","label":"Web Renderer","href":"/docs/api/renderers/web","docId":"api/renderers/web","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Outputs","collapsed":false,"description":"Elements that deliver generated media.","items":[{"type":"link","label":"RTP","href":"/docs/api/outputs/rtp","docId":"api/outputs/rtp","unlisted":false},{"type":"link","label":"MP4","href":"/docs/api/outputs/mp4","docId":"api/outputs/mp4","unlisted":false}],"collapsible":true},{"type":"category","label":"Inputs","collapsed":false,"description":"Elements that deliver media from external sources.","items":[{"type":"link","label":"RTP","href":"/docs/api/inputs/rtp","docId":"api/inputs/rtp","unlisted":false},{"type":"link","label":"MP4","href":"/docs/api/inputs/mp4","docId":"api/inputs/mp4","unlisted":false},{"type":"link","label":"DeckLink","href":"/docs/api/inputs/decklink","docId":"api/inputs/decklink","unlisted":false}],"collapsible":true}],"collapsed":true,"collapsible":true,"href":"/docs/category/http-api-reference"}]},"docs":{"api/components/Image":{"id":"api/components/Image","title":"Image","description":"A component for rendering images.","sidebar":"sidebar"},"api/components/InputStream":{"id":"api/components/InputStream","title":"InputStream","description":"InputStream represents an input.","sidebar":"sidebar"},"api/components/Rescaler":{"id":"api/components/Rescaler","title":"Rescaler","description":"Rescaler is a layout component responsible for rescaling other components.","sidebar":"sidebar"},"api/components/Shader":{"id":"api/components/Shader","title":"Shader","description":"Shader applies transformation defined via WGSL shader on its children. Learn more.","sidebar":"sidebar"},"api/components/Text":{"id":"api/components/Text","title":"Text","description":"A component for rendering text.","sidebar":"sidebar"},"api/components/Tiles":{"id":"api/components/Tiles","title":"Tiles","description":"Tiles is a layout component that places all the child components next to each other while maximizing the use of available space. The component divides its area into multiple rectangles/tiles, one for each child component. All of those rectangles are the same size and do not overlap over each other.","sidebar":"sidebar"},"api/components/View":{"id":"api/components/View","title":"View","description":"View is the compositor\'s core layout mechanism. Its role is analogous to the","sidebar":"sidebar"},"api/components/WebView":{"id":"api/components/WebView","title":"WebView","description":"Required feature: web_renderer","sidebar":"sidebar"},"api/events":{"id":"api/events","title":"Events","description":"WebSocket events","sidebar":"sidebar"},"api/generated/component-Image":{"id":"api/generated/component-Image","title":"component-Image","description":"Image"},"api/generated/component-InputStream":{"id":"api/generated/component-InputStream","title":"component-InputStream","description":"InputStream"},"api/generated/component-Rescaler":{"id":"api/generated/component-Rescaler","title":"component-Rescaler","description":"Rescaler"},"api/generated/component-Shader":{"id":"api/generated/component-Shader","title":"component-Shader","description":"Shader"},"api/generated/component-Text":{"id":"api/generated/component-Text","title":"component-Text","description":"Text"},"api/generated/component-Tiles":{"id":"api/generated/component-Tiles","title":"component-Tiles","description":"Tiles"},"api/generated/component-View":{"id":"api/generated/component-View","title":"component-View","description":"View"},"api/generated/component-WebView":{"id":"api/generated/component-WebView","title":"component-WebView","description":"WebView"},"api/generated/output-Mp4Output":{"id":"api/generated/output-Mp4Output","title":"output-Mp4Output","description":"Mp4Output"},"api/generated/output-RtpOutputStream":{"id":"api/generated/output-RtpOutputStream","title":"output-RtpOutputStream","description":"RtpOutputStream"},"api/generated/renderer-DeckLink":{"id":"api/generated/renderer-DeckLink","title":"renderer-DeckLink","description":"DeckLink"},"api/generated/renderer-Image":{"id":"api/generated/renderer-Image","title":"renderer-Image","description":"Image"},"api/generated/renderer-Mp4Input":{"id":"api/generated/renderer-Mp4Input","title":"renderer-Mp4Input","description":"Mp4Input"},"api/generated/renderer-RtpInputStream":{"id":"api/generated/renderer-RtpInputStream","title":"renderer-RtpInputStream","description":"RtpInputStream"},"api/generated/renderer-Shader":{"id":"api/generated/renderer-Shader","title":"renderer-Shader","description":"Shader"},"api/generated/renderer-WebRenderer":{"id":"api/generated/renderer-WebRenderer","title":"renderer-WebRenderer","description":"WebRenderer"},"api/inputs/decklink":{"id":"api/inputs/decklink","title":"DeckLink","description":"Added in v0.3.0","sidebar":"sidebar"},"api/inputs/mp4":{"id":"api/inputs/mp4","title":"MP4","description":"An input type that allows the compositor to read static MP4 files.","sidebar":"sidebar"},"api/inputs/rtp":{"id":"api/inputs/rtp","title":"RTP","description":"An input type that allows streaming video and audio to the compositor over RTP.","sidebar":"sidebar"},"api/outputs/mp4":{"id":"api/outputs/mp4","title":"MP4","description":"Added in v0.3.0","sidebar":"sidebar"},"api/outputs/rtp":{"id":"api/outputs/rtp","title":"RTP","description":"An output type that allows streaming video and audio from the compositor over RTP.","sidebar":"sidebar"},"api/renderers/image":{"id":"api/renderers/image","title":"Image","description":"Represents an image asset uploaded to the compositor. Used by a Image component.","sidebar":"sidebar"},"api/renderers/shader":{"id":"api/renderers/shader","title":"Shader","description":"Represents compiled shader. Used by a Shader component.","sidebar":"sidebar"},"api/renderers/web":{"id":"api/renderers/web","title":"Web Renderer","description":"Required feature: web_renderer","sidebar":"sidebar"},"api/routes":{"id":"api/routes","title":"Routes","description":"API routes to configure the compositor.","sidebar":"sidebar"},"common/absolute-position":{"id":"common/absolute-position","title":"absolute-position","description":"A component is absolutely positioned if it defines fields like top, left, right, bottom, or rotation."},"concept/component":{"id":"concept/component","title":"Component","description":"A component is a basic block used to define how video streams are composed.","sidebar":"sidebar"},"concept/layouts":{"id":"concept/layouts","title":"Layouts","description":"Layout components define the size, position, and simple styling of other components.","sidebar":"sidebar"},"concept/overview":{"id":"concept/overview","title":"Concepts","description":"Inputs/outputs streams","sidebar":"sidebar"},"concept/shaders":{"id":"concept/shaders","title":"Shaders","description":"Shaders are small programs that we send to a GPU to perform some computation for us. They are used extensively in the LiveCompositor. All builtin transformation are implemented as shaders under the hood. It is also possible to create render nodes that run a custom shader on their input. Since LiveCompositor is implemented using wgpu, the shaders have to be written in WGSL (WebGPU Shading Language). They also have to fulfill some custom requirements that allow them to be run by the LiveCompositor.","sidebar":"sidebar"},"concept/web":{"id":"concept/web","title":"Web Renderer","description":"Web renderer allows you to capture that output of a browser and compose it with other streams.","sidebar":"sidebar"},"deployment/aws-ec2":{"id":"deployment/aws-ec2","title":"Example: AWS EC2","description":"This is an example configuration that shows how to deploy LiveCompositor to an AWS EC2 instance with Terraform configuration.","sidebar":"sidebar"},"deployment/configuration":{"id":"deployment/configuration","title":"Configuration","description":"Environment variables","sidebar":"sidebar"},"deployment/overview":{"id":"deployment/overview","title":"Deployment","description":"LiveCompositor can be deployed in various ways, depending on your platform, used features and whether it is used standalone or via Membrane Framework plugin.","sidebar":"sidebar"},"deployment/requirements":{"id":"deployment/requirements","title":"Requirements","description":"LiveCompositor imposes certain requirements both in the runtime and during a build. Specifics might differ depending on the way you use the compositor and features you are requiring.","sidebar":"sidebar"},"guides/basic-layouts":{"id":"guides/basic-layouts","title":"Basic Layouts","description":"This guide will explain how to create simple scene that is combining input streams in a simple layout into single output stream.","sidebar":"sidebar"},"guides/deliver-input":{"id":"guides/deliver-input","title":"How to deliver input streams","description":"Live Compositor currently supports 2 input types:","sidebar":"sidebar"},"guides/quick-start":{"id":"guides/quick-start","title":"Quick start","description":"This guide will explain basic LiveCompositor setup.","sidebar":"sidebar"},"guides/receive-output":{"id":"guides/receive-output","title":"How to receive output streams","description":"Live Compositor currently supports 2 output types:","sidebar":"sidebar"},"guides/view-transition":{"id":"guides/view-transition","title":"Transitions (View/Rescaler)","description":"This guide will show a few basic examples of animated transitions on View/Rescaler components.","sidebar":"sidebar"},"intro":{"id":"intro","title":"Getting started","description":"TypeScript/React project is the easiest way to start your journey with the Live Compositor.","sidebar":"sidebar"},"intro/how-to-use":{"id":"intro/how-to-use","title":"How to use it?","description":"Live Compositor can be used or deployed in a few ways.","sidebar":"sidebar"},"intro/what-is-compositor":{"id":"intro/what-is-compositor","title":"What is Live Compositor?","description":"LiveCompositor is a media server for real-time, low latency, programmable video and audio mixing.","sidebar":"sidebar"},"intro/where-next":{"id":"intro/where-next","title":"Where to go next?","description":"Guides","sidebar":"sidebar"},"typescript/api":{"id":"typescript/api","title":"TypeScript SDK Reference","description":"new LiveCompositor()","sidebar":"sidebar"},"typescript/components/Image":{"id":"typescript/components/Image","title":"Image","description":"A component for rendering images.","sidebar":"sidebar"},"typescript/components/InputStream":{"id":"typescript/components/InputStream","title":"InputStream","description":"InputStream component represents a registered input.","sidebar":"sidebar"},"typescript/components/Rescaler":{"id":"typescript/components/Rescaler","title":"Rescaler","description":"Rescaler is a layout component responsible for rescaling other components.","sidebar":"sidebar"},"typescript/components/Shader":{"id":"typescript/components/Shader","title":"Shader","description":"Shader applies transformation defined via WGSL shader on its children. Learn more.","sidebar":"sidebar"},"typescript/components/Text":{"id":"typescript/components/Text","title":"Text","description":"A component for rendering text.","sidebar":"sidebar"},"typescript/components/Tiles":{"id":"typescript/components/Tiles","title":"Tiles","description":"Tiles is a layout component that places all the child components next to each other while maximizing the use of available space. The component divides its area into multiple rectangles/tiles, one for each child component. All of those rectangles are the same size and do not overlap over each other.","sidebar":"sidebar"},"typescript/components/View":{"id":"typescript/components/View","title":"View","description":"View is the compositor\'s core layout mechanism. Its role is analogous to the","sidebar":"sidebar"},"typescript/components/WebView":{"id":"typescript/components/WebView","title":"WebView","description":"Required feature: web_renderer","sidebar":"sidebar"},"typescript/hooks":{"id":"typescript/hooks","title":"Hooks","description":"React Hooks available provided by LiveCompositor SDK","sidebar":"sidebar"},"typescript/inputs/mp4":{"id":"typescript/inputs/mp4","title":"MP4","description":"MP4 Output","sidebar":"sidebar"},"typescript/inputs/rtp":{"id":"typescript/inputs/rtp","title":"RTP","description":"RTP Output","sidebar":"sidebar"},"typescript/instance":{"id":"typescript/instance","title":"LiveCompositor","description":"Packages like @live-compositor/node export LiveCompositor class that is a main entity used to interact with or control Live Compositor server instance.","sidebar":"sidebar"},"typescript/outputs/mp4":{"id":"typescript/outputs/mp4","title":"MP4","description":"Added in v0.3.0","sidebar":"sidebar"},"typescript/outputs/rtp":{"id":"typescript/outputs/rtp","title":"RTP","description":"An output type that allows streaming video and audio from the compositor over RTP.","sidebar":"sidebar"},"typescript/renderers/image":{"id":"typescript/renderers/image","title":"Image","description":"Represents an image asset uploaded to the compositor. Used by a Image component.","sidebar":"sidebar"},"typescript/renderers/shader":{"id":"typescript/renderers/shader","title":"Shader","description":"Represents compiled shader. Used by a Shader component.","sidebar":"sidebar"},"typescript/renderers/web":{"id":"typescript/renderers/web","title":"Web Renderer","description":"Required feature: web_renderer","sidebar":"sidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.e2ef5e31.js b/assets/js/935f2afb.e2ef5e31.js deleted file mode 100644 index e1ea7ffdb..000000000 --- a/assets/js/935f2afb.e2ef5e31.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcompositor_live=self.webpackChunkcompositor_live||[]).push([[8581],{35610:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"sidebar":[{"type":"link","label":"Getting started","href":"/docs/intro","docId":"intro","unlisted":false},{"type":"category","label":"Guides","items":[{"type":"link","label":"Quick start","href":"/docs/guides/quick-start","docId":"guides/quick-start","unlisted":false},{"type":"link","label":"Deliver input streams","href":"/docs/guides/deliver-input","docId":"guides/deliver-input","unlisted":false},{"type":"link","label":"Receive output streams","href":"/docs/guides/receive-output","docId":"guides/receive-output","unlisted":false},{"type":"link","label":"Basic Layouts","href":"/docs/guides/basic-layouts","docId":"guides/basic-layouts","unlisted":false},{"type":"link","label":"Transitions (View/Rescaler)","href":"/docs/guides/view-transition","docId":"guides/view-transition","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/docs/category/guides"},{"type":"category","label":"Concepts","items":[{"type":"link","label":"Overview","href":"/docs/concept/overview","docId":"concept/overview","unlisted":false},{"type":"link","label":"Component","href":"/docs/concept/component","docId":"concept/component","unlisted":false},{"type":"link","label":"Layouts","href":"/docs/concept/layouts","docId":"concept/layouts","unlisted":false},{"type":"link","label":"Shaders","href":"/docs/concept/shaders","docId":"concept/shaders","unlisted":false},{"type":"link","label":"Web Renderer","href":"/docs/concept/web","docId":"concept/web","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/docs/concept/overview"},{"type":"category","label":"Deployment","items":[{"type":"link","label":"Overview","href":"/docs/deployment/overview","docId":"deployment/overview","unlisted":false},{"type":"link","label":"Requirements","href":"/docs/deployment/requirements","docId":"deployment/requirements","unlisted":false},{"type":"link","label":"Configuration","href":"/docs/deployment/configuration","docId":"deployment/configuration","unlisted":false},{"type":"link","label":"Example: AWS EC2","href":"/docs/deployment/aws-ec2","docId":"deployment/aws-ec2","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/docs/deployment/overview"},{"type":"category","label":"TypeScript SDK Reference","items":[{"type":"link","label":"LiveCompositor instance","href":"/docs/typescript/api","docId":"typescript/api","unlisted":false},{"type":"link","label":"Hooks","href":"/docs/typescript/hooks","docId":"typescript/hooks","unlisted":false},{"type":"category","label":"Components","collapsed":false,"description":"Basic blocks used to define a scene.","items":[{"type":"link","label":"InputStream","href":"/docs/typescript/components/InputStream","docId":"typescript/components/InputStream","unlisted":false},{"type":"link","label":"View","href":"/docs/typescript/components/View","docId":"typescript/components/View","unlisted":false},{"type":"link","label":"Rescaler","href":"/docs/typescript/components/Rescaler","docId":"typescript/components/Rescaler","unlisted":false},{"type":"link","label":"Tiles","href":"/docs/typescript/components/Tiles","docId":"typescript/components/Tiles","unlisted":false},{"type":"link","label":"Text","href":"/docs/typescript/components/Text","docId":"typescript/components/Text","unlisted":false},{"type":"link","label":"Shader","href":"/docs/typescript/components/Shader","docId":"typescript/components/Shader","unlisted":false},{"type":"link","label":"Image","href":"/docs/typescript/components/Image","docId":"typescript/components/Image","unlisted":false},{"type":"link","label":"WebView","href":"/docs/typescript/components/WebView","docId":"typescript/components/WebView","unlisted":false}],"collapsible":true},{"type":"category","label":"Renderers","collapsed":false,"description":"Resources that need to be registered first before they can be used.","items":[{"type":"link","label":"Shader","href":"/docs/typescript/renderers/shader","docId":"typescript/renderers/shader","unlisted":false},{"type":"link","label":"Image","href":"/docs/typescript/renderers/image","docId":"typescript/renderers/image","unlisted":false},{"type":"link","label":"Web Renderer","href":"/docs/typescript/renderers/web","docId":"typescript/renderers/web","unlisted":false}],"collapsible":true},{"type":"category","label":"Outputs","collapsed":false,"description":"Elements that deliver generated media.","items":[{"type":"link","label":"RTP","href":"/docs/typescript/outputs/rtp","docId":"typescript/outputs/rtp","unlisted":false},{"type":"link","label":"MP4","href":"/docs/typescript/outputs/mp4","docId":"typescript/outputs/mp4","unlisted":false}],"collapsible":true},{"type":"category","label":"Inputs","collapsed":false,"description":"Elements that deliver media from external sources.","items":[{"type":"link","label":"RTP","href":"/docs/typescript/inputs/rtp","docId":"typescript/inputs/rtp","unlisted":false},{"type":"link","label":"MP4","href":"/docs/typescript/inputs/mp4","docId":"typescript/inputs/mp4","unlisted":false}],"collapsible":true}],"collapsed":true,"collapsible":true,"href":"/docs/typescript/api"},{"type":"category","label":"HTTP API Reference","items":[{"type":"link","label":"HTTP Routes","href":"/docs/api/routes","docId":"api/routes","unlisted":false},{"type":"link","label":"Events","href":"/docs/api/events","docId":"api/events","unlisted":false},{"type":"category","label":"Components","collapsed":false,"description":"Basic blocks used to define a scene.","items":[{"type":"link","label":"InputStream","href":"/docs/api/components/InputStream","docId":"api/components/InputStream","unlisted":false},{"type":"link","label":"View","href":"/docs/api/components/View","docId":"api/components/View","unlisted":false},{"type":"link","label":"Rescaler","href":"/docs/api/components/Rescaler","docId":"api/components/Rescaler","unlisted":false},{"type":"link","label":"Tiles","href":"/docs/api/components/Tiles","docId":"api/components/Tiles","unlisted":false},{"type":"link","label":"Text","href":"/docs/api/components/Text","docId":"api/components/Text","unlisted":false},{"type":"link","label":"Shader","href":"/docs/api/components/Shader","docId":"api/components/Shader","unlisted":false},{"type":"link","label":"Image","href":"/docs/api/components/Image","docId":"api/components/Image","unlisted":false},{"type":"link","label":"WebView","href":"/docs/api/components/WebView","docId":"api/components/WebView","unlisted":false}],"collapsible":true},{"type":"category","label":"Renderers","description":"Resources that need to be registered first before they can be used.","items":[{"type":"link","label":"Shader","href":"/docs/api/renderers/shader","docId":"api/renderers/shader","unlisted":false},{"type":"link","label":"Image","href":"/docs/api/renderers/image","docId":"api/renderers/image","unlisted":false},{"type":"link","label":"Web Renderer","href":"/docs/api/renderers/web","docId":"api/renderers/web","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Outputs","collapsed":false,"description":"Elements that deliver generated media.","items":[{"type":"link","label":"RTP","href":"/docs/api/outputs/rtp","docId":"api/outputs/rtp","unlisted":false},{"type":"link","label":"MP4","href":"/docs/api/outputs/mp4","docId":"api/outputs/mp4","unlisted":false}],"collapsible":true},{"type":"category","label":"Inputs","collapsed":false,"description":"Elements that deliver media from external sources.","items":[{"type":"link","label":"RTP","href":"/docs/api/inputs/rtp","docId":"api/inputs/rtp","unlisted":false},{"type":"link","label":"MP4","href":"/docs/api/inputs/mp4","docId":"api/inputs/mp4","unlisted":false},{"type":"link","label":"DeckLink","href":"/docs/api/inputs/decklink","docId":"api/inputs/decklink","unlisted":false}],"collapsible":true}],"collapsed":true,"collapsible":true,"href":"/docs/category/http-api-reference"}]},"docs":{"api/components/Image":{"id":"api/components/Image","title":"Image","description":"A component for rendering images.","sidebar":"sidebar"},"api/components/InputStream":{"id":"api/components/InputStream","title":"InputStream","description":"InputStream represents an input.","sidebar":"sidebar"},"api/components/Rescaler":{"id":"api/components/Rescaler","title":"Rescaler","description":"Rescaler is a layout component responsible for rescaling other components.","sidebar":"sidebar"},"api/components/Shader":{"id":"api/components/Shader","title":"Shader","description":"Shader applies transformation defined via WGSL shader on its children. Learn more.","sidebar":"sidebar"},"api/components/Text":{"id":"api/components/Text","title":"Text","description":"A component for rendering text.","sidebar":"sidebar"},"api/components/Tiles":{"id":"api/components/Tiles","title":"Tiles","description":"Tiles is a layout component that places all the child components next to each other while maximizing the use of available space. The component divides its area into multiple rectangles/tiles, one for each child component. All of those rectangles are the same size and do not overlap over each other.","sidebar":"sidebar"},"api/components/View":{"id":"api/components/View","title":"View","description":"View is the compositor\'s core layout mechanism. Its role is analogous to the","sidebar":"sidebar"},"api/components/WebView":{"id":"api/components/WebView","title":"WebView","description":"Required feature: web_renderer","sidebar":"sidebar"},"api/events":{"id":"api/events","title":"Events","description":"WebSocket events","sidebar":"sidebar"},"api/generated/component-Image":{"id":"api/generated/component-Image","title":"component-Image","description":"Image"},"api/generated/component-InputStream":{"id":"api/generated/component-InputStream","title":"component-InputStream","description":"InputStream"},"api/generated/component-Rescaler":{"id":"api/generated/component-Rescaler","title":"component-Rescaler","description":"Rescaler"},"api/generated/component-Shader":{"id":"api/generated/component-Shader","title":"component-Shader","description":"Shader"},"api/generated/component-Text":{"id":"api/generated/component-Text","title":"component-Text","description":"Text"},"api/generated/component-Tiles":{"id":"api/generated/component-Tiles","title":"component-Tiles","description":"Tiles"},"api/generated/component-View":{"id":"api/generated/component-View","title":"component-View","description":"View"},"api/generated/component-WebView":{"id":"api/generated/component-WebView","title":"component-WebView","description":"WebView"},"api/generated/output-Mp4Output":{"id":"api/generated/output-Mp4Output","title":"output-Mp4Output","description":"Mp4Output"},"api/generated/output-RtpOutputStream":{"id":"api/generated/output-RtpOutputStream","title":"output-RtpOutputStream","description":"RtpOutputStream"},"api/generated/renderer-DeckLink":{"id":"api/generated/renderer-DeckLink","title":"renderer-DeckLink","description":"DeckLink"},"api/generated/renderer-Image":{"id":"api/generated/renderer-Image","title":"renderer-Image","description":"Image"},"api/generated/renderer-Mp4Input":{"id":"api/generated/renderer-Mp4Input","title":"renderer-Mp4Input","description":"Mp4Input"},"api/generated/renderer-RtpInputStream":{"id":"api/generated/renderer-RtpInputStream","title":"renderer-RtpInputStream","description":"RtpInputStream"},"api/generated/renderer-Shader":{"id":"api/generated/renderer-Shader","title":"renderer-Shader","description":"Shader"},"api/generated/renderer-WebRenderer":{"id":"api/generated/renderer-WebRenderer","title":"renderer-WebRenderer","description":"WebRenderer"},"api/inputs/decklink":{"id":"api/inputs/decklink","title":"DeckLink","description":"Added in v0.3.0","sidebar":"sidebar"},"api/inputs/mp4":{"id":"api/inputs/mp4","title":"MP4","description":"An input type that allows the compositor to read static MP4 files.","sidebar":"sidebar"},"api/inputs/rtp":{"id":"api/inputs/rtp","title":"RTP","description":"An input type that allows streaming video and audio to the compositor over RTP.","sidebar":"sidebar"},"api/outputs/mp4":{"id":"api/outputs/mp4","title":"MP4","description":"Added in v0.3.0","sidebar":"sidebar"},"api/outputs/rtp":{"id":"api/outputs/rtp","title":"RTP","description":"An output type that allows streaming video and audio from the compositor over RTP.","sidebar":"sidebar"},"api/renderers/image":{"id":"api/renderers/image","title":"Image","description":"Represents an image asset uploaded to the compositor. Used by a Image component.","sidebar":"sidebar"},"api/renderers/shader":{"id":"api/renderers/shader","title":"Shader","description":"Represents compiled shader. Used by a Shader component.","sidebar":"sidebar"},"api/renderers/web":{"id":"api/renderers/web","title":"Web Renderer","description":"Required feature: web_renderer","sidebar":"sidebar"},"api/routes":{"id":"api/routes","title":"Routes","description":"API routes to configure the compositor.","sidebar":"sidebar"},"common/absolute-position":{"id":"common/absolute-position","title":"absolute-position","description":"A component is absolutely positioned if it defines fields like top, left, right, bottom, or rotation."},"concept/component":{"id":"concept/component","title":"Component","description":"A component is a basic block used to define how video streams are composed.","sidebar":"sidebar"},"concept/layouts":{"id":"concept/layouts","title":"Layouts","description":"Layout components define the size, position, and simple styling of other components.","sidebar":"sidebar"},"concept/overview":{"id":"concept/overview","title":"Concepts","description":"Inputs/outputs streams","sidebar":"sidebar"},"concept/shaders":{"id":"concept/shaders","title":"Shaders","description":"Shaders are small programs that we send to a GPU to perform some computation for us. They are used extensively in the LiveCompositor. All builtin transformation are implemented as shaders under the hood. It is also possible to create render nodes that run a custom shader on their input. Since LiveCompositor is implemented using wgpu, the shaders have to be written in WGSL (WebGPU Shading Language). They also have to fulfill some custom requirements that allow them to be run by the LiveCompositor.","sidebar":"sidebar"},"concept/web":{"id":"concept/web","title":"Web Renderer","description":"Web renderer allows you to capture that output of a browser and compose it with other streams.","sidebar":"sidebar"},"deployment/aws-ec2":{"id":"deployment/aws-ec2","title":"Example: AWS EC2","description":"This is an example configuration that shows how to deploy LiveCompositor to an AWS EC2 instance with Terraform configuration.","sidebar":"sidebar"},"deployment/configuration":{"id":"deployment/configuration","title":"Configuration","description":"Environment variables","sidebar":"sidebar"},"deployment/overview":{"id":"deployment/overview","title":"Deployment","description":"LiveCompositor can be deployed in various ways, depending on your platform, used features and whether it is used standalone or via Membrane Framework plugin.","sidebar":"sidebar"},"deployment/requirements":{"id":"deployment/requirements","title":"Requirements","description":"LiveCompositor imposes certain requirements both in the runtime and during a build. Specifics might differ depending on the way you use the compositor and features you are requiring.","sidebar":"sidebar"},"guides/basic-layouts":{"id":"guides/basic-layouts","title":"Basic Layouts","description":"This guide will explain how to create simple scene that is combining input streams in a simple layout into single output stream.","sidebar":"sidebar"},"guides/deliver-input":{"id":"guides/deliver-input","title":"How to deliver input streams","description":"Live Compositor currently supports 2 input types:","sidebar":"sidebar"},"guides/quick-start":{"id":"guides/quick-start","title":"Quick start","description":"This guide will explain basic LiveCompositor setup.","sidebar":"sidebar"},"guides/receive-output":{"id":"guides/receive-output","title":"How to receive output streams","description":"Live Compositor currently supports 2 output types:","sidebar":"sidebar"},"guides/view-transition":{"id":"guides/view-transition","title":"Transitions (View/Rescaler)","description":"This guide will show a few basic examples of animated transitions on View/Rescaler components.","sidebar":"sidebar"},"intro":{"id":"intro","title":"Getting started","description":"What is Live Compositor?","sidebar":"sidebar"},"typescript/api":{"id":"typescript/api","title":"Reference","description":"TypeScript SDK Reference","sidebar":"sidebar"},"typescript/components/Image":{"id":"typescript/components/Image","title":"Image","description":"A component for rendering images.","sidebar":"sidebar"},"typescript/components/InputStream":{"id":"typescript/components/InputStream","title":"InputStream","description":"InputStream component represents a registered input.","sidebar":"sidebar"},"typescript/components/Rescaler":{"id":"typescript/components/Rescaler","title":"Rescaler","description":"Rescaler is a layout component responsible for rescaling other components.","sidebar":"sidebar"},"typescript/components/Shader":{"id":"typescript/components/Shader","title":"Shader","description":"Shader applies transformation defined via WGSL shader on its children. Learn more.","sidebar":"sidebar"},"typescript/components/Text":{"id":"typescript/components/Text","title":"Text","description":"A component for rendering text.","sidebar":"sidebar"},"typescript/components/Tiles":{"id":"typescript/components/Tiles","title":"Tiles","description":"Tiles is a layout component that places all the child components next to each other while maximizing the use of available space. The component divides its area into multiple rectangles/tiles, one for each child component. All of those rectangles are the same size and do not overlap over each other.","sidebar":"sidebar"},"typescript/components/View":{"id":"typescript/components/View","title":"View","description":"View is the compositor\'s core layout mechanism. Its role is analogous to the","sidebar":"sidebar"},"typescript/components/WebView":{"id":"typescript/components/WebView","title":"WebView","description":"Required feature: web_renderer","sidebar":"sidebar"},"typescript/hooks":{"id":"typescript/hooks","title":"Hooks","description":"React Hooks available provided by LiveCompositor SDK","sidebar":"sidebar"},"typescript/inputs/mp4":{"id":"typescript/inputs/mp4","title":"MP4","description":"MP4 Output","sidebar":"sidebar"},"typescript/inputs/rtp":{"id":"typescript/inputs/rtp","title":"RTP","description":"RTP Output","sidebar":"sidebar"},"typescript/outputs/mp4":{"id":"typescript/outputs/mp4","title":"MP4","description":"Added in v0.3.0","sidebar":"sidebar"},"typescript/outputs/rtp":{"id":"typescript/outputs/rtp","title":"RTP","description":"An output type that allows streaming video and audio from the compositor over RTP.","sidebar":"sidebar"},"typescript/renderers/image":{"id":"typescript/renderers/image","title":"Image","description":"Represents an image asset uploaded to the compositor. Used by a Image component.","sidebar":"sidebar"},"typescript/renderers/shader":{"id":"typescript/renderers/shader","title":"Shader","description":"Represents compiled shader. Used by a Shader component.","sidebar":"sidebar"},"typescript/renderers/web":{"id":"typescript/renderers/web","title":"Web Renderer","description":"Required feature: web_renderer","sidebar":"sidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/aedfabef.36a87598.js b/assets/js/aedfabef.36a87598.js deleted file mode 100644 index 73cd49134..000000000 --- a/assets/js/aedfabef.36a87598.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcompositor_live=self.webpackChunkcompositor_live||[]).push([[5383],{58415:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>r,default:()=>a,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var o=t(74848),s=t(28453);const i={description:"React Hooks available provided by LiveCompositor SDK"},r="Hooks",c={id:"typescript/hooks",title:"Hooks",description:"React Hooks available provided by LiveCompositor SDK",source:"@site/pages/typescript/hooks.md",sourceDirName:"typescript",slug:"/typescript/hooks",permalink:"/docs/typescript/hooks",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{description:"React Hooks available provided by LiveCompositor SDK"},sidebar:"sidebar",previous:{title:"Reference",permalink:"/docs/typescript/api"},next:{title:"InputStream",permalink:"/docs/typescript/components/InputStream"}},d={},u=[{value:"useInputStreams",id:"useinputstreams",level:2},{value:"useInputAudio",id:"useinputaudio",level:2}];function p(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,s.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.h1,{id:"hooks",children:"Hooks"}),"\n",(0,o.jsxs)(n.p,{children:["When you define how the LiveCompositor should compose streams you can use regular React hooks like ",(0,o.jsx)(n.code,{children:"useState"}),"\nor ",(0,o.jsx)(n.code,{children:"useEffect"}),", but this SDK provides few compositor specific hooks to interact with the audio/video."]}),"\n",(0,o.jsx)(n.h2,{id:"useinputstreams",children:(0,o.jsx)(n.code,{children:"useInputStreams"})}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-tsx",children:"type InputStreamInfo = {\n inputId: InputId;\n videoState?: 'ready' | 'playing' | 'finished';\n audioState?: 'ready' | 'playing' | 'finished';\n}\n\nfunction useInputStreams(): Record: \n"})}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"useInputStreams"})," returns an object representing connected streams and their current state."]}),"\n",(0,o.jsx)(n.h2,{id:"useinputaudio",children:(0,o.jsx)(n.code,{children:"useInputAudio"})}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-tsx",children:"type AudioOptions = {\n volume: number\n}\n\nfunction useAudioInput(inputId: Api.InputId, audioOptions: AudioOptions);\n"})}),"\n",(0,o.jsxs)(n.p,{children:["Hook used to control audio configuration. If you already placing ",(0,o.jsx)(n.a,{href:"/docs/typescript/components/InputStream",children:(0,o.jsx)(n.code,{children:"InputStream"})})," component\nyou can use ",(0,o.jsx)(n.code,{children:"mute"})," and ",(0,o.jsx)(n.code,{children:"volume"})," props instead."]}),"\n",(0,o.jsx)(n.p,{children:"Adding this hook more than once for the specific input will sum the volume."}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:"AudioOptions.volume"})," - number between 0 and 1 representing the audio volume."]}),"\n"]})]})}function a(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(p,{...e})}):p(e)}},28453:(e,n,t)=>{t.d(n,{R:()=>r,x:()=>c});var o=t(96540);const s={},i=o.createContext(s);function r(e){const n=o.useContext(i);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),o.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/aedfabef.b4704717.js b/assets/js/aedfabef.b4704717.js new file mode 100644 index 000000000..88f7ad8fb --- /dev/null +++ b/assets/js/aedfabef.b4704717.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcompositor_live=self.webpackChunkcompositor_live||[]).push([[5383],{58415:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>r,default:()=>a,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var o=t(74848),s=t(28453);const i={description:"React Hooks available provided by LiveCompositor SDK"},r="Hooks",c={id:"typescript/hooks",title:"Hooks",description:"React Hooks available provided by LiveCompositor SDK",source:"@site/pages/typescript/hooks.md",sourceDirName:"typescript",slug:"/typescript/hooks",permalink:"/docs/typescript/hooks",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{description:"React Hooks available provided by LiveCompositor SDK"},sidebar:"sidebar",previous:{title:"LiveCompositor",permalink:"/docs/typescript/instance"},next:{title:"InputStream",permalink:"/docs/typescript/components/InputStream"}},d={},u=[{value:"useInputStreams",id:"useinputstreams",level:2},{value:"useInputAudio",id:"useinputaudio",level:2}];function p(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,s.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.h1,{id:"hooks",children:"Hooks"}),"\n",(0,o.jsxs)(n.p,{children:["When you define how the LiveCompositor should compose streams you can use regular React hooks like ",(0,o.jsx)(n.code,{children:"useState"}),"\nor ",(0,o.jsx)(n.code,{children:"useEffect"}),", but this SDK provides few compositor specific hooks to interact with the audio/video."]}),"\n",(0,o.jsx)(n.h2,{id:"useinputstreams",children:(0,o.jsx)(n.code,{children:"useInputStreams"})}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-tsx",children:"type InputStreamInfo = {\n inputId: InputId;\n videoState?: 'ready' | 'playing' | 'finished';\n audioState?: 'ready' | 'playing' | 'finished';\n}\n\nfunction useInputStreams(): Record: \n"})}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.code,{children:"useInputStreams"})," returns an object representing connected streams and their current state."]}),"\n",(0,o.jsx)(n.h2,{id:"useinputaudio",children:(0,o.jsx)(n.code,{children:"useInputAudio"})}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-tsx",children:"type AudioOptions = {\n volume: number\n}\n\nfunction useAudioInput(inputId: Api.InputId, audioOptions: AudioOptions);\n"})}),"\n",(0,o.jsxs)(n.p,{children:["Hook used to control audio configuration. If you already placing ",(0,o.jsx)(n.a,{href:"/docs/typescript/components/InputStream",children:(0,o.jsx)(n.code,{children:"InputStream"})})," component\nyou can use ",(0,o.jsx)(n.code,{children:"mute"})," and ",(0,o.jsx)(n.code,{children:"volume"})," props instead."]}),"\n",(0,o.jsx)(n.p,{children:"Adding this hook more than once for the specific input will sum the volume."}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:"AudioOptions.volume"})," - number between 0 and 1 representing the audio volume."]}),"\n"]})]})}function a(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(p,{...e})}):p(e)}},28453:(e,n,t)=>{t.d(n,{R:()=>r,x:()=>c});var o=t(96540);const s={},i=o.createContext(s);function r(e){const n=o.useContext(i);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),o.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/afdc12d2.556433c6.js b/assets/js/afdc12d2.556433c6.js new file mode 100644 index 000000000..d8b8ee558 --- /dev/null +++ b/assets/js/afdc12d2.556433c6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcompositor_live=self.webpackChunkcompositor_live||[]).push([[4878],{76493:(e,o,t)=>{t.r(o),t.d(o,{assets:()=>c,contentTitle:()=>s,default:()=>p,frontMatter:()=>r,metadata:()=>a,toc:()=>m});var i=t(74848),n=t(28453);const r={},s="What is Live Compositor?",a={id:"intro/what-is-compositor",title:"What is Live Compositor?",description:"LiveCompositor is a media server for real-time, low latency, programmable video and audio mixing.",source:"@site/pages/intro/what-is-compositor.md",sourceDirName:"intro",slug:"/intro/what-is-compositor",permalink:"/docs/intro/what-is-compositor",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"sidebar",previous:{title:"Getting started",permalink:"/docs/intro"},next:{title:"How to use it?",permalink:"/docs/intro/how-to-use"}},c={},m=[];function l(e){const o={h1:"h1",p:"p",...(0,n.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(o.h1,{id:"what-is-live-compositor",children:"What is Live Compositor?"}),"\n",(0,i.jsx)(o.p,{children:"LiveCompositor is a media server for real-time, low latency, programmable video and audio mixing."}),"\n",(0,i.jsx)(o.p,{children:"LiveCompositor targets real-time use cases, with a significant focus on situations where latency is critical. It is a great fit\nfor any video conferencing, live-streaming, or broadcasting solutions where you need to combine or modify video on the fly.\nHowever, you can also use it for non-real-time use cases, for example, apply some effect on a video from an MP4 file and write the output\nto file as MP4."})]})}function p(e={}){const{wrapper:o}={...(0,n.R)(),...e.components};return o?(0,i.jsx)(o,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},28453:(e,o,t)=>{t.d(o,{R:()=>s,x:()=>a});var i=t(96540);const n={},r=i.createContext(n);function s(e){const o=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function a(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:s(e.components),i.createElement(r.Provider,{value:o},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c488dc68.9e732785.js b/assets/js/c488dc68.9e732785.js deleted file mode 100644 index 669457fd9..000000000 --- a/assets/js/c488dc68.9e732785.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcompositor_live=self.webpackChunkcompositor_live||[]).push([[5983],{55987:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>o,contentTitle:()=>a,default:()=>h,frontMatter:()=>i,metadata:()=>d,toc:()=>c});var t=r(74848),s=r(28453);const i={sidebar_position:6},a="Shader",d={id:"typescript/components/Shader",title:"Shader",description:"Shader applies transformation defined via WGSL shader on its children. Learn more.",source:"@site/pages/typescript/components/Shader.md",sourceDirName:"typescript/components",slug:"/typescript/components/Shader",permalink:"/docs/typescript/components/Shader",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:6,frontMatter:{sidebar_position:6},sidebar:"sidebar",previous:{title:"Text",permalink:"/docs/typescript/components/Text"},next:{title:"Image",permalink:"/docs/typescript/components/Image"}},o={},c=[{value:"ShaderProps",id:"shaderprops",level:2},{value:"ShaderParam",id:"shaderparam",level:2},{value:"ShaderParamStructField",id:"shaderparamstructfield",level:2}];function l(e){const n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,s.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h1,{id:"shader",children:"Shader"}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.code,{children:"Shader"})," applies transformation defined via WGSL shader on its children. ",(0,t.jsx)(n.a,{href:"/docs/concept/shaders",children:"Learn more."})]}),"\n",(0,t.jsx)(n.admonition,{type:"note",children:(0,t.jsxs)(n.p,{children:["To use this component, you need to first register the shader with matching ",(0,t.jsx)(n.code,{children:"shaderId"})," using ",(0,t.jsx)(n.a,{href:"/docs/typescript/api#register-shader",children:(0,t.jsx)(n.code,{children:"LiveCompositor.registerShader"})})," method."]})}),"\n",(0,t.jsx)(n.h2,{id:"shaderprops",children:"ShaderProps"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-typescript",children:"type ShaderProps = {\n id?: string;\n children?: ReactElement[];\n shaderId: string;\n shaderParam?: ShaderParam;\n resolution: {\n width: number;\n height: number;\n };\n}\n"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.code,{children:"id"})," - Id of a component. Defaults to value produced by ",(0,t.jsx)(n.code,{children:"useId"})," hook."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.code,{children:"children"})," - List of component's children."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.code,{children:"shaderId"})," - Id of a shader. It identifies a shader registered using a ",(0,t.jsx)(n.a,{href:"/docs/typescript/api#register-shader",children:(0,t.jsx)(n.code,{children:"LiveCompositor.registerShader"})})," method."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.code,{children:"shaderParam"})," - Object that will be serialized into a ",(0,t.jsx)(n.code,{children:"struct"})," and passed inside the shader as:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-wgsl",children:"@group(1) @binding(0) var\n"})}),"\n",(0,t.jsx)(n.admonition,{type:"note",children:(0,t.jsxs)(n.p,{children:["This object's structure must match the structure defined in a shader source code. Currently, we do not handle memory layout automatically.\nTo achieve the correct memory alignment, you might need to pad your data with additional fields. See ",(0,t.jsx)(n.a,{href:"https://www.w3.org/TR/WGSL/#alignment-and-size",children:"WGSL documentation"})," for more details."]})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.code,{children:"resolution"})," - Resolution of a texture where shader will be executed."]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"shaderparam",children:"ShaderParam"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-typescript",children:'type ShaderParam = \n | { type: "f32"; value: number; }\n | { type: "u32"; value: number; }\n | { type: "i32"; value: number; }\n | { type: "list"; value: ShaderParam[]; }\n | {\n type: "struct";\n value: ShaderParamStructField[];\n }\n'})}),"\n",(0,t.jsx)(n.h2,{id:"shaderparamstructfield",children:"ShaderParamStructField"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-typescript",children:'type ShaderParamStructField = \n | { fieldName: string; type: "f32"; value: number; }\n | { fieldName: string; type: "u32"; value: number; }\n | { fieldName: string; type: "i32"; value: number; }\n | {\n fieldName: string;\n type: "list";\n value: ShaderParam[];\n }\n | {\n fieldName: string;\n type: "struct";\n value: ShaderParamStructField[];\n }\n'})})]})}function h(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(l,{...e})}):l(e)}},28453:(e,n,r)=>{r.d(n,{R:()=>a,x:()=>d});var t=r(96540);const s={},i=t.createContext(s);function a(e){const n=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),t.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c488dc68.b87f526a.js b/assets/js/c488dc68.b87f526a.js new file mode 100644 index 000000000..08c4b1788 --- /dev/null +++ b/assets/js/c488dc68.b87f526a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcompositor_live=self.webpackChunkcompositor_live||[]).push([[5983],{55987:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>o,contentTitle:()=>a,default:()=>h,frontMatter:()=>i,metadata:()=>d,toc:()=>c});var t=r(74848),s=r(28453);const i={sidebar_position:6},a="Shader",d={id:"typescript/components/Shader",title:"Shader",description:"Shader applies transformation defined via WGSL shader on its children. Learn more.",source:"@site/pages/typescript/components/Shader.md",sourceDirName:"typescript/components",slug:"/typescript/components/Shader",permalink:"/docs/typescript/components/Shader",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:6,frontMatter:{sidebar_position:6},sidebar:"sidebar",previous:{title:"Text",permalink:"/docs/typescript/components/Text"},next:{title:"Image",permalink:"/docs/typescript/components/Image"}},o={},c=[{value:"ShaderProps",id:"shaderprops",level:2},{value:"ShaderParam",id:"shaderparam",level:2},{value:"ShaderParamStructField",id:"shaderparamstructfield",level:2}];function l(e){const n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,s.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h1,{id:"shader",children:"Shader"}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.code,{children:"Shader"})," applies transformation defined via WGSL shader on its children. ",(0,t.jsx)(n.a,{href:"/docs/concept/shaders",children:"Learn more."})]}),"\n",(0,t.jsx)(n.admonition,{type:"note",children:(0,t.jsxs)(n.p,{children:["To use this component, you need to first register the shader with matching ",(0,t.jsx)(n.code,{children:"shaderId"})," using ",(0,t.jsx)(n.a,{href:"/docs/typescript/instance#register-shader",children:(0,t.jsx)(n.code,{children:"LiveCompositor.registerShader"})})," method."]})}),"\n",(0,t.jsx)(n.h2,{id:"shaderprops",children:"ShaderProps"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-typescript",children:"type ShaderProps = {\n id?: string;\n children?: ReactElement[];\n shaderId: string;\n shaderParam?: ShaderParam;\n resolution: {\n width: number;\n height: number;\n };\n}\n"})}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.code,{children:"id"})," - Id of a component. Defaults to value produced by ",(0,t.jsx)(n.code,{children:"useId"})," hook."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.code,{children:"children"})," - List of component's children."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.code,{children:"shaderId"})," - Id of a shader. It identifies a shader registered using a ",(0,t.jsx)(n.a,{href:"/docs/typescript/instance#register-shader",children:(0,t.jsx)(n.code,{children:"LiveCompositor.registerShader"})})," method."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.code,{children:"shaderParam"})," - Object that will be serialized into a ",(0,t.jsx)(n.code,{children:"struct"})," and passed inside the shader as:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-wgsl",children:"@group(1) @binding(0) var\n"})}),"\n",(0,t.jsx)(n.admonition,{type:"note",children:(0,t.jsxs)(n.p,{children:["This object's structure must match the structure defined in a shader source code. Currently, we do not handle memory layout automatically.\nTo achieve the correct memory alignment, you might need to pad your data with additional fields. See ",(0,t.jsx)(n.a,{href:"https://www.w3.org/TR/WGSL/#alignment-and-size",children:"WGSL documentation"})," for more details."]})}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.code,{children:"resolution"})," - Resolution of a texture where shader will be executed."]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"shaderparam",children:"ShaderParam"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-typescript",children:'type ShaderParam = \n | { type: "f32"; value: number; }\n | { type: "u32"; value: number; }\n | { type: "i32"; value: number; }\n | { type: "list"; value: ShaderParam[]; }\n | {\n type: "struct";\n value: ShaderParamStructField[];\n }\n'})}),"\n",(0,t.jsx)(n.h2,{id:"shaderparamstructfield",children:"ShaderParamStructField"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-typescript",children:'type ShaderParamStructField = \n | { fieldName: string; type: "f32"; value: number; }\n | { fieldName: string; type: "u32"; value: number; }\n | { fieldName: string; type: "i32"; value: number; }\n | {\n fieldName: string;\n type: "list";\n value: ShaderParam[];\n }\n | {\n fieldName: string;\n type: "struct";\n value: ShaderParamStructField[];\n }\n'})})]})}function h(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(l,{...e})}):l(e)}},28453:(e,n,r)=>{r.d(n,{R:()=>a,x:()=>d});var t=r(96540);const s={},i=t.createContext(s);function a(e){const n=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),t.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c51dedee.4caedf5a.js b/assets/js/c51dedee.4caedf5a.js deleted file mode 100644 index 485d2a50a..000000000 --- a/assets/js/c51dedee.4caedf5a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcompositor_live=self.webpackChunkcompositor_live||[]).push([[249],{74071:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>l,default:()=>y,frontMatter:()=>u,metadata:()=>d,toc:()=>h});var i=t(74848),s=t(28453),r=t(11470),o=t(19365);const a="data:image/webp;base64,UklGRpwGAABXRUJQVlA4IJAGAADwxACdASoABdACPu12tlMko6KhIAgAlh2J6W7hd2EbQAnsA99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvrAAA/v+dGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",c=t.p+"assets/images/quick_start_2-52e18a12081cc90cdac41e805195ef07.webp",u={},l="Quick start",d={id:"guides/quick-start",title:"Quick start",description:"This guide will explain basic LiveCompositor setup.",source:"@site/pages/guides/quick-start.md",sourceDirName:"guides",slug:"/guides/quick-start",permalink:"/docs/guides/quick-start",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"sidebar",previous:{title:"Guides",permalink:"/docs/category/guides"},next:{title:"How to deliver input streams",permalink:"/docs/guides/deliver-input"}},p={},h=[{value:"Configure inputs and output",id:"configure-inputs-and-output",level:2},{value:"Start the compositor",id:"start-the-compositor",level:3},{value:"Register input stream input_1.",id:"register-input-stream-input_1",level:3},{value:"Register input stream input_2.",id:"register-input-stream-input_2",level:3},{value:"Register output stream output_1.",id:"register-output-stream-output_1",level:3},{value:"Update output",id:"update-output",level:2}];function v(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",ul:"ul",...(0,s.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"quick-start",children:"Quick start"}),"\n",(0,i.jsx)(n.p,{children:"This guide will explain basic LiveCompositor setup."}),"\n",(0,i.jsx)(n.h2,{id:"configure-inputs-and-output",children:"Configure inputs and output"}),"\n",(0,i.jsx)(n.h3,{id:"start-the-compositor",children:"Start the compositor"}),"\n",(0,i.jsxs)(r.A,{queryString:"lang",children:[(0,i.jsx)(o.A,{value:"http",label:"HTTP",children:(0,i.jsxs)(n.p,{children:["Start the compositor server. Check out ",(0,i.jsx)(n.a,{href:"/docs/deployment/configuration",children:"configuration page"})," for available configuration options."]})}),(0,i.jsxs)(o.A,{value:"membrane",label:"Membrane Framework",children:[(0,i.jsxs)(n.p,{children:["Following code snippets are implementing ",(0,i.jsx)(n.code,{children:"handle_init/2"})," or ",(0,i.jsx)(n.code,{children:"handle_setup/2"})," callbacks. Those\nare just examples, you can use any ",(0,i.jsxs)(n.a,{href:"https://hexdocs.pm/membrane_core/Membrane.Pipeline.html#callbacks",children:[(0,i.jsx)(n.code,{children:"Membrane.Pipeline"})," callbacks"]}),"\ninstead."]}),(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-elixir",children:"alias Membrane.LiveCompositor\n\ndef handle_init(ctx, opts) do\n spec = [\n ...\n\n child(:live_compositor, %LiveCompositor{\n framerate: {30, 1}\n }),\n\n ...\n ]\n {[spec: spec], %{}}\nend\n"})})]})]}),"\n",(0,i.jsxs)(n.h3,{id:"register-input-stream-input_1",children:["Register input stream ",(0,i.jsx)(n.code,{children:"input_1"}),"."]}),"\n",(0,i.jsxs)(r.A,{queryString:"lang",children:[(0,i.jsxs)(o.A,{value:"http",label:"HTTP",children:[(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-http",children:'POST: /api/input/input_1/register\nContent-Type: application/json\n\n{\n "type": "rtp_stream",\n "transport_protocol": "tcp_server",\n "port": 9001,\n "video": {\n "decoder": "ffmpeg_h264"\n }\n}\n'})}),(0,i.jsxs)(n.p,{children:["After receiving the response you can establish the connection and start sending the stream. Check out ",(0,i.jsx)(n.a,{href:"/docs/guides/deliver-input",children:"how to deliver input streams"})," to learn more."]}),(0,i.jsx)(n.p,{children:"In this example we are using RTP over TCP, but it could be easily replaced by UDP."})]}),(0,i.jsxs)(o.A,{value:"membrane",label:"Membrane Framework",children:[(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-elixir",children:'def handle_init(ctx, opts) do\n spec = [\n ...\n\n video_input_1_spec\n |> via_in(Pad.ref(:video_input, "video_input_1"))\n |> get_child(:live_compositor),\n\n audio_input_1_spec\n |> via_in(Pad.ref(:audio_input, "audio_input_1"))\n |> get_child(:live_compositor),\n\n ...\n ]\n {[spec: spec], %{}}\nend\n'})}),(0,i.jsxs)(n.p,{children:["where ",(0,i.jsx)(n.code,{children:"video_input_1_spec"})," and ",(0,i.jsx)(n.code,{children:"audio_input_1_spec"})," are elements producing H264 video and Opus audio respectively."]})]})]}),"\n",(0,i.jsxs)(n.h3,{id:"register-input-stream-input_2",children:["Register input stream ",(0,i.jsx)(n.code,{children:"input_2"}),"."]}),"\n",(0,i.jsxs)(r.A,{queryString:"lang",children:[(0,i.jsxs)(o.A,{value:"http",label:"HTTP",children:[(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-http",children:'POST: /api/input/input_2/register\nContent-Type: application/json\n\n{\n "type": "rtp_stream",\n "transport_protocol": "tcp_server",\n "port": 9002,\n "video": {\n "decoder": "ffmpeg_h264"\n }\n}\n'})}),(0,i.jsxs)(n.p,{children:["After receiving the response you can establish the connection and start sending the stream. Check out ",(0,i.jsx)(n.a,{href:"/docs/guides/deliver-input",children:"how to deliver input streams"})," to learn more."]}),(0,i.jsx)(n.p,{children:"In this example we are using RTP over TCP, but it could be easily replaced by UDP."})]}),(0,i.jsxs)(o.A,{value:"membrane",label:"Membrane Framework",children:[(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-elixir",children:'def handle_init(ctx, opts) do\n spec = [\n ...\n\n video_input_2_spec\n |> via_in(Pad.ref(:video_input, "video_input_2"))\n |> get_child(:live_compositor),\n\n audio_input_2_spec\n |> via_in(Pad.ref(:audio_input, "audio_input_2"))\n |> get_child(:live_compositor),\n\n ...\n ]\n {[spec: spec], %{}}\nend\n'})}),(0,i.jsxs)(n.p,{children:["where ",(0,i.jsx)(n.code,{children:"video_input_2_spec"})," and ",(0,i.jsx)(n.code,{children:"audio_input_2_spec"})," are elements that produce H264 video and Opus audio respectively."]})]})]}),"\n",(0,i.jsxs)(n.h3,{id:"register-output-stream-output_1",children:["Register output stream ",(0,i.jsx)(n.code,{children:"output_1"}),"."]}),"\n",(0,i.jsx)(n.p,{children:"Configure it to:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["render an empty ",(0,i.jsx)(n.a,{href:"/docs/api/components/View",children:(0,i.jsx)(n.code,{children:"View"})})," component with a background color set to ",(0,i.jsx)(n.code,{children:"#4d4d4d"})," (gray)"]}),"\n",(0,i.jsx)(n.li,{children:"produce silent audio"}),"\n"]}),"\n",(0,i.jsxs)(r.A,{queryString:"lang",children:[(0,i.jsxs)(o.A,{value:"http",label:"HTTP",children:[(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-http",children:'POST: /api/output/output_1/register\nContent-Type: application/json\n\n{\n "type": "rtp_stream",\n "transport_protocol": "tcp_server",\n "port": 9003,\n "video": {\n "resolution": { "width": 1280, "height": 720 },\n "encoder": {\n "type": "ffmpeg_h264",\n "preset": "ultrafast"\n },\n "initial": {\n "root": {\n "type": "view",\n "background_color_rgba": "#4d4d4dff"\n }\n }\n },\n "audio": {\n "encoder": {\n "type": "opus",\n "channels": "stereo"\n },\n "initial": {\n "inputs": []\n }\n }\n}\n'})}),(0,i.jsxs)(n.p,{children:["You can configure the output framerate and the sample rate using ",(0,i.jsx)(n.a,{href:"/docs/deployment/configuration#live_compositor_output_framerate",children:(0,i.jsx)(n.code,{children:"LIVE_COMPOSITOR_OUTPUT_FRAMERATE"})})," and ",(0,i.jsx)(n.a,{href:"/docs/deployment/configuration#live_compositor_output_sample_rate",children:(0,i.jsx)(n.code,{children:"LIVE_COMPOSITOR_OUTPUT_SAMPLE_RATE"})})," environment variables."]}),(0,i.jsxs)(n.p,{children:["After receiving the response you can establish the connection and start listening for the stream. Check out ",(0,i.jsx)(n.a,{href:"/docs/guides/receive-output",children:"how to receive output streams"})," to learn more."]}),(0,i.jsx)(n.p,{children:"In this example we are using RTP over TCP, if you prefer to use UDP you need start listening on the specified port before sending register request to make sure you are not losing\nfirst frames."})]}),(0,i.jsxs)(o.A,{value:"membrane",label:"Membrane Framework",children:[(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-elixir",children:'def handle_init(ctx, opts) do\n spec = [\n ...\n\n get_child(:live_compositor),\n |> via_out(Pad.ref(:video_output, "video_output_1"), options: [\n width: 1280,\n height: 720,\n encoder: %LiveCompositor.Encoder.FFmpegH264{\n preset: :ultrafast\n },\n initial: %{\n root: %{\n type: :view,\n background_color_rgba: "#4d4d4dff",\n },\n }\n ])\n |> video_output_1_spec,\n \n get_child(:live_compositor)\n |> via_out(Pad.ref(:audio_output, "audio_output_1"), options: [\n encoder: LiveCompositor.Encoder.Opus.t(),\n initial: %{\n inputs: []\n }\n ])\n |> audio_output_1_spec\n\n ...\n ]\n {[spec: spec], %{}}\nend\n'})}),(0,i.jsxs)(n.p,{children:["where ",(0,i.jsx)(n.code,{children:"video_output_1_spec"})," and ",(0,i.jsx)(n.code,{children:"audio_output_1_spec"})," are elements that can consume H264 video and Opus audio respectively."]}),(0,i.jsxs)(n.p,{children:["You can configure output framerate and sample rate using ",(0,i.jsxs)(n.a,{href:"https://hexdocs.pm/membrane_live_compositor_plugin/Membrane.LiveCompositor.html#module-bin-options",children:[(0,i.jsx)(n.code,{children:"framerate"})," and ",(0,i.jsx)(n.code,{children:"output_sample_rate"})," bin options"]}),"."]})]})]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"View"})," component does not have any children, so on the output you should see just a blank screen of a specified color as shown below.\nThe ",(0,i.jsx)(n.code,{children:"initial.inputs"})," list in audio config is empty, so the output audio will be silent."]}),"\n",(0,i.jsxs)("div",{style:{textAlign:"center"},children:[(0,i.jsx)("img",{src:a,style:{width:600}}),(0,i.jsx)(n.p,{children:"Output stream"})]}),"\n",(0,i.jsx)(n.h2,{id:"update-output",children:"Update output"}),"\n",(0,i.jsx)(n.p,{children:"Configure it to:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Show input streams ",(0,i.jsx)(n.code,{children:"input_1"})," and ",(0,i.jsx)(n.code,{children:"input_2"})," using ",(0,i.jsx)(n.a,{href:"/docs/api/components/Tiles",children:(0,i.jsx)(n.code,{children:"Tiles"})})," component."]}),"\n",(0,i.jsxs)(n.li,{children:["Mix audio from input streams ",(0,i.jsx)(n.code,{children:"input_1"})," and ",(0,i.jsx)(n.code,{children:"input_2"}),", where ",(0,i.jsx)(n.code,{children:"input_1"})," volume is slightly lowered."]}),"\n"]}),"\n",(0,i.jsxs)(r.A,{queryString:"lang",children:[(0,i.jsx)(o.A,{value:"http",label:"HTTP",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-http",children:'POST: /api/output/output_1/update\nContent-Type: application/json\n\n{\n "video": {\n "root": {\n "type": "tiles",\n "background_color_rgba": "#4d4d4dff",\n "children": [\n { "type": "input_stream", "input_id": "input_1" },\n { "type": "input_stream", "input_id": "input_2" }\n ]\n }\n },\n "audio": {\n "inputs": [\n { "input_id": "input_1", volume: 0.9 },\n { "input_id": "input_2" }\n ]\n }\n}\n'})})}),(0,i.jsx)(o.A,{value:"membrane",label:"Membrane Framework",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-elixir",children:'def handle_setup(ctx, state) do\n video_request = %LiveCompositor.Request.UpdateVideoOutput{\n output_id: "video_output_1",\n root: %{\n type: :tiles,\n children: [\n %{ type: :input_stream, input_id: :input_1 },\n %{ type: :input_stream, input_id: :input_2 }\n ]\n }\n }\n audio_request = %LiveCompositor.Request.UpdateAudioOutput{\n output_id: "audio_output_1",\n inputs: [\n %{ input_id: "input_1", volume: 0.9 },\n %{ input_id: "input_2" }\n ]\n }\n \n events = [\n notify_child: {:live_compositor, video_request},\n notify_child: {:live_compositor, audio_request}\n ]\n\n {events, state}\nend\n'})})})]}),"\n",(0,i.jsxs)("div",{style:{textAlign:"center"},children:[(0,i.jsx)("img",{src:c,style:{width:600}}),(0,i.jsx)(n.p,{children:"Output stream"})]})]})}function y(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(v,{...e})}):v(e)}},19365:(e,n,t)=>{t.d(n,{A:()=>o});t(96540);var i=t(18215);const s={tabItem:"tabItem_Ymn6"};var r=t(74848);function o(e){let{children:n,hidden:t,className:o}=e;return(0,r.jsx)("div",{role:"tabpanel",className:(0,i.A)(s.tabItem,o),hidden:t,children:n})}},11470:(e,n,t)=>{t.d(n,{A:()=>g});var i=t(96540),s=t(18215),r=t(23104),o=t(56347),a=t(205),c=t(57485),u=t(31682),l=t(89466);function d(e){return i.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,i.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function p(e){const{values:n,children:t}=e;return(0,i.useMemo)((()=>{const e=n??function(e){return d(e).map((e=>{let{props:{value:n,label:t,attributes:i,default:s}}=e;return{value:n,label:t,attributes:i,default:s}}))}(t);return function(e){const n=(0,u.X)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[n,t])}function h(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function v(e){let{queryString:n=!1,groupId:t}=e;const s=(0,o.W6)(),r=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,c.aZ)(r),(0,i.useCallback)((e=>{if(!r)return;const n=new URLSearchParams(s.location.search);n.set(r,e),s.replace({...s.location,search:n.toString()})}),[r,s])]}function y(e){const{defaultValue:n,queryString:t=!1,groupId:s}=e,r=p(e),[o,c]=(0,i.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the component requires at least one children component");if(n){if(!h({value:n,tabValues:t}))throw new Error(`Docusaurus error: The has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const i=t.find((e=>e.default))??t[0];if(!i)throw new Error("Unexpected error: 0 tabValues");return i.value}({defaultValue:n,tabValues:r}))),[u,d]=v({queryString:t,groupId:s}),[y,f]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[s,r]=(0,l.Dv)(t);return[s,(0,i.useCallback)((e=>{t&&r.set(e)}),[t,r])]}({groupId:s}),m=(()=>{const e=u??y;return h({value:e,tabValues:r})?e:null})();(0,a.A)((()=>{m&&c(m)}),[m]);return{selectedValue:o,selectValue:(0,i.useCallback)((e=>{if(!h({value:e,tabValues:r}))throw new Error(`Can't select invalid tab value=${e}`);c(e),d(e),f(e)}),[d,f,r]),tabValues:r}}var f=t(92303);const m={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var b=t(74848);function _(e){let{className:n,block:t,selectedValue:i,selectValue:o,tabValues:a}=e;const c=[],{blockElementScrollPositionUntilNextRender:u}=(0,r.a_)(),l=e=>{const n=e.currentTarget,t=c.indexOf(n),s=a[t].value;s!==i&&(u(n),o(s))},d=e=>{let n=null;switch(e.key){case"Enter":l(e);break;case"ArrowRight":{const t=c.indexOf(e.currentTarget)+1;n=c[t]??c[0];break}case"ArrowLeft":{const t=c.indexOf(e.currentTarget)-1;n=c[t]??c[c.length-1];break}}n?.focus()};return(0,b.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.A)("tabs",{"tabs--block":t},n),children:a.map((e=>{let{value:n,label:t,attributes:r}=e;return(0,b.jsx)("li",{role:"tab",tabIndex:i===n?0:-1,"aria-selected":i===n,ref:e=>c.push(e),onKeyDown:d,onClick:l,...r,className:(0,s.A)("tabs__item",m.tabItem,r?.className,{"tabs__item--active":i===n}),children:t??n},n)}))})}function k(e){let{lazy:n,children:t,selectedValue:s}=e;const r=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=r.find((e=>e.props.value===s));return e?(0,i.cloneElement)(e,{className:"margin-top--md"}):null}return(0,b.jsx)("div",{className:"margin-top--md",children:r.map(((e,n)=>(0,i.cloneElement)(e,{key:n,hidden:e.props.value!==s})))})}function A(e){const n=y(e);return(0,b.jsxs)("div",{className:(0,s.A)("tabs-container",m.tabList),children:[(0,b.jsx)(_,{...e,...n}),(0,b.jsx)(k,{...e,...n})]})}function g(e){const n=(0,f.A)();return(0,b.jsx)(A,{...e,children:d(e.children)},String(n))}},28453:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>a});var i=t(96540);const s={},r=i.createContext(s);function o(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c51dedee.5dfdf204.js b/assets/js/c51dedee.5dfdf204.js new file mode 100644 index 000000000..21db15bea --- /dev/null +++ b/assets/js/c51dedee.5dfdf204.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcompositor_live=self.webpackChunkcompositor_live||[]).push([[249],{74071:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>u,default:()=>m,frontMatter:()=>l,metadata:()=>d,toc:()=>h});var r=t(74848),s=t(28453),i=t(11470),o=t(19365);const a="data:image/webp;base64,UklGRpwGAABXRUJQVlA4IJAGAADwxACdASoABdACPu12tlMko6KhIAgAlh2J6W7hd2EbQAnsA99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvrAAA/v+dGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",c=t.p+"assets/images/quick_start_2-52e18a12081cc90cdac41e805195ef07.webp",l={},u="Quick start",d={id:"guides/quick-start",title:"Quick start",description:"This guide will explain basic LiveCompositor setup.",source:"@site/pages/guides/quick-start.md",sourceDirName:"guides",slug:"/guides/quick-start",permalink:"/docs/guides/quick-start",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"sidebar",previous:{title:"Guides",permalink:"/docs/category/guides"},next:{title:"How to deliver input streams",permalink:"/docs/guides/deliver-input"}},p={},h=[{value:"Configure inputs and output",id:"configure-inputs-and-output",level:2},{value:"Start the compositor",id:"start-the-compositor",level:3},{value:"Register input stream input_1.",id:"register-input-stream-input_1",level:3},{value:"Register input stream input_2.",id:"register-input-stream-input_2",level:3},{value:"Register output stream output_1.",id:"register-output-stream-output_1",level:3},{value:"Update output",id:"update-output",level:2}];function v(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",ul:"ul",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h1,{id:"quick-start",children:"Quick start"}),"\n",(0,r.jsx)(n.p,{children:"This guide will explain basic LiveCompositor setup."}),"\n",(0,r.jsx)(n.h2,{id:"configure-inputs-and-output",children:"Configure inputs and output"}),"\n",(0,r.jsx)(n.h3,{id:"start-the-compositor",children:"Start the compositor"}),"\n",(0,r.jsxs)(i.A,{queryString:"lang",children:[(0,r.jsx)(o.A,{value:"react",label:"React",children:(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-tsx",children:'import LiveCompositor from "@live-compositor/node"\n\nasync function start() {\n const compositor = new LiveCompositor();\n await compositor.init();\n}\n'})})}),(0,r.jsx)(o.A,{value:"http",label:"HTTP",children:(0,r.jsxs)(n.p,{children:["Start the compositor server. Check out ",(0,r.jsx)(n.a,{href:"/docs/deployment/configuration",children:"configuration page"})," for available configuration options."]})}),(0,r.jsxs)(o.A,{value:"membrane",label:"Membrane Framework",children:[(0,r.jsxs)(n.p,{children:["Following code snippets are implementing ",(0,r.jsx)(n.code,{children:"handle_init/2"})," or ",(0,r.jsx)(n.code,{children:"handle_setup/2"})," callbacks. Those\nare just examples, you can use any ",(0,r.jsxs)(n.a,{href:"https://hexdocs.pm/membrane_core/Membrane.Pipeline.html#callbacks",children:[(0,r.jsx)(n.code,{children:"Membrane.Pipeline"})," callbacks"]}),"\ninstead."]}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-elixir",children:"alias Membrane.LiveCompositor\n\ndef handle_init(ctx, opts) do\n spec = [\n ...\n\n child(:live_compositor, %LiveCompositor{\n framerate: {30, 1}\n }),\n\n ...\n ]\n {[spec: spec], %{}}\nend\n"})})]})]}),"\n",(0,r.jsxs)(n.h3,{id:"register-input-stream-input_1",children:["Register input stream ",(0,r.jsx)(n.code,{children:"input_1"}),"."]}),"\n",(0,r.jsxs)(i.A,{queryString:"lang",children:[(0,r.jsxs)(o.A,{value:"react",label:"React",children:[(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-tsx",children:'await compositor.registerInput("input_1", {\n type: "rtp_stream",\n transportProtocol: "tcp_server",\n port: 9001,\n video: {\n decoder: "ffmpeg_h264"\n }\n})\n'})}),(0,r.jsxs)(n.p,{children:["After ",(0,r.jsx)(n.code,{children:"registerInput"})," call is done you can establish the connection and start sending the stream. Check out ",(0,r.jsx)(n.a,{href:"/docs/guides/deliver-input",children:"how to deliver input streams"})," to learn more."]}),(0,r.jsx)(n.p,{children:"In this example we are using RTP over TCP, but it could be easily replaced by UDP."})]}),(0,r.jsxs)(o.A,{value:"http",label:"HTTP",children:[(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-http",children:'POST: /api/input/input_1/register\nContent-Type: application/json\n\n{\n "type": "rtp_stream",\n "transport_protocol": "tcp_server",\n "port": 9001,\n "video": {\n "decoder": "ffmpeg_h264"\n }\n}\n'})}),(0,r.jsxs)(n.p,{children:["After receiving the response you can establish the connection and start sending the stream. Check out ",(0,r.jsx)(n.a,{href:"/docs/guides/deliver-input",children:"how to deliver input streams"})," to learn more."]}),(0,r.jsx)(n.p,{children:"In this example we are using RTP over TCP, but it could be easily replaced by UDP."})]}),(0,r.jsxs)(o.A,{value:"membrane",label:"Membrane Framework",children:[(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-elixir",children:'def handle_init(ctx, opts) do\n spec = [\n ...\n\n video_input_1_spec\n |> via_in(Pad.ref(:video_input, "video_input_1"))\n |> get_child(:live_compositor),\n\n audio_input_1_spec\n |> via_in(Pad.ref(:audio_input, "audio_input_1"))\n |> get_child(:live_compositor),\n\n ...\n ]\n {[spec: spec], %{}}\nend\n'})}),(0,r.jsxs)(n.p,{children:["where ",(0,r.jsx)(n.code,{children:"video_input_1_spec"})," and ",(0,r.jsx)(n.code,{children:"audio_input_1_spec"})," are elements producing H264 video and Opus audio respectively."]})]})]}),"\n",(0,r.jsxs)(n.h3,{id:"register-input-stream-input_2",children:["Register input stream ",(0,r.jsx)(n.code,{children:"input_2"}),"."]}),"\n",(0,r.jsxs)(i.A,{queryString:"lang",children:[(0,r.jsxs)(o.A,{value:"react",label:"React",children:[(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-tsx",children:'await compositor.registerInput("input_2", {\n type: "rtp_stream",\n transportProtocol: "tcp_server",\n port: 9002,\n video: {\n decoder: "ffmpeg_h264"\n }\n})\n'})}),(0,r.jsxs)(n.p,{children:["After ",(0,r.jsx)(n.code,{children:"registerInput"})," call is done you can establish the connection and start sending the stream. Check out ",(0,r.jsx)(n.a,{href:"/docs/guides/deliver-input",children:"how to deliver input streams"})," to learn more."]}),(0,r.jsx)(n.p,{children:"In this example we are using RTP over TCP, but it could be easily replaced by UDP."})]}),(0,r.jsxs)(o.A,{value:"http",label:"HTTP",children:[(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-http",children:'POST: /api/input/input_2/register\nContent-Type: application/json\n\n{\n "type": "rtp_stream",\n "transport_protocol": "tcp_server",\n "port": 9002,\n "video": {\n "decoder": "ffmpeg_h264"\n }\n}\n'})}),(0,r.jsxs)(n.p,{children:["After receiving the response you can establish the connection and start sending the stream. Check out ",(0,r.jsx)(n.a,{href:"/docs/guides/deliver-input",children:"how to deliver input streams"})," to learn more."]}),(0,r.jsx)(n.p,{children:"In this example we are using RTP over TCP, but it could be easily replaced by UDP."})]}),(0,r.jsxs)(o.A,{value:"membrane",label:"Membrane Framework",children:[(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-elixir",children:'def handle_init(ctx, opts) do\n spec = [\n ...\n\n video_input_2_spec\n |> via_in(Pad.ref(:video_input, "video_input_2"))\n |> get_child(:live_compositor),\n\n audio_input_2_spec\n |> via_in(Pad.ref(:audio_input, "audio_input_2"))\n |> get_child(:live_compositor),\n\n ...\n ]\n {[spec: spec], %{}}\nend\n'})}),(0,r.jsxs)(n.p,{children:["where ",(0,r.jsx)(n.code,{children:"video_input_2_spec"})," and ",(0,r.jsx)(n.code,{children:"audio_input_2_spec"})," are elements that produce H264 video and Opus audio respectively."]})]})]}),"\n",(0,r.jsxs)(n.h3,{id:"register-output-stream-output_1",children:["Register output stream ",(0,r.jsx)(n.code,{children:"output_1"}),"."]}),"\n",(0,r.jsx)(n.p,{children:"Configure it to:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["render an empty ",(0,r.jsx)(n.a,{href:"/docs/api/components/View",children:(0,r.jsx)(n.code,{children:"View"})})," component with a background color set to ",(0,r.jsx)(n.code,{children:"#4d4d4d"})," (gray)"]}),"\n",(0,r.jsx)(n.li,{children:"produce silent audio"}),"\n"]}),"\n",(0,r.jsxs)(i.A,{queryString:"lang",children:[(0,r.jsxs)(o.A,{value:"react",label:"React",children:[(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-tsx",children:'function App() {\n return \n}\n\nasync function start() {\n // init code from previous steps\n\n await compositor.registerOutput("output_1", {\n type: "rtp_stream",\n transportProtocol: "tcp_server",\n port: 9003,\n video: {\n resolution: { width: 1280, height: 720 },\n encoder": {\n type: "ffmpeg_h264",\n preset: "ultrafast"\n },\n root: \n },\n audio: {\n encoder: {\n type: "opus",\n channels: "stereo"\n },\n }\n })\n}\n'})}),(0,r.jsxs)(n.p,{children:["After ",(0,r.jsx)(n.code,{children:"registerOutput"})," is done you can establish the connection and start listening for the stream. Check out ",(0,r.jsx)(n.a,{href:"/docs/guides/receive-output",children:"how to receive output streams"})," to learn more."]}),(0,r.jsx)(n.p,{children:"In this example we are using RTP over TCP, if you prefer to use UDP you need start listening on the specified\nport before registering output to make sure you are not losing first frames."})]}),(0,r.jsxs)(o.A,{value:"http",label:"HTTP",children:[(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-http",children:'POST: /api/output/output_1/register\nContent-Type: application/json\n\n{\n "type": "rtp_stream",\n "transport_protocol": "tcp_server",\n "port": 9003,\n "video": {\n "resolution": { "width": 1280, "height": 720 },\n "encoder": {\n "type": "ffmpeg_h264",\n "preset": "ultrafast"\n },\n "initial": {\n "root": {\n "type": "view",\n "background_color_rgba": "#4d4d4dff"\n }\n }\n },\n "audio": {\n "encoder": {\n "type": "opus",\n "channels": "stereo"\n },\n "initial": {\n "inputs": []\n }\n }\n}\n'})}),(0,r.jsxs)(n.p,{children:["After receiving the response you can establish the connection and start listening for the stream. Check out ",(0,r.jsx)(n.a,{href:"/docs/guides/receive-output",children:"how to receive output streams"})," to learn more."]}),(0,r.jsx)(n.p,{children:"In this example we are using RTP over TCP, if you prefer to use UDP you need start listening on the specified port before sending register request to make sure you are not losing\nfirst frames."})]}),(0,r.jsxs)(o.A,{value:"membrane",label:"Membrane Framework",children:[(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-elixir",children:'def handle_init(ctx, opts) do\n spec = [\n ...\n\n get_child(:live_compositor),\n |> via_out(Pad.ref(:video_output, "video_output_1"), options: [\n width: 1280,\n height: 720,\n encoder: %LiveCompositor.Encoder.FFmpegH264{\n preset: :ultrafast\n },\n initial: %{\n root: %{\n type: :view,\n background_color_rgba: "#4d4d4dff",\n },\n }\n ])\n |> video_output_1_spec,\n \n get_child(:live_compositor)\n |> via_out(Pad.ref(:audio_output, "audio_output_1"), options: [\n encoder: LiveCompositor.Encoder.Opus.t(),\n initial: %{\n inputs: []\n }\n ])\n |> audio_output_1_spec\n\n ...\n ]\n {[spec: spec], %{}}\nend\n'})}),(0,r.jsxs)(n.p,{children:["where ",(0,r.jsx)(n.code,{children:"video_output_1_spec"})," and ",(0,r.jsx)(n.code,{children:"audio_output_1_spec"})," are elements that can consume H264 video and Opus audio respectively."]}),(0,r.jsxs)(n.p,{children:["You can configure output framerate and sample rate using ",(0,r.jsxs)(n.a,{href:"https://hexdocs.pm/membrane_live_compositor_plugin/Membrane.LiveCompositor.html#module-bin-options",children:[(0,r.jsx)(n.code,{children:"framerate"})," and ",(0,r.jsx)(n.code,{children:"output_sample_rate"})," bin options"]}),"."]})]})]}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"View"})," component does not have any children, so on the output you should see just a blank screen of a specified color as shown below.\nThe ",(0,r.jsx)(n.code,{children:"initial.inputs"})," list in audio config is empty, so the output audio will be silent."]}),"\n",(0,r.jsxs)("div",{style:{textAlign:"center"},children:[(0,r.jsx)("img",{src:a,style:{width:600}}),(0,r.jsx)(n.p,{children:"Output stream"})]}),"\n",(0,r.jsx)(n.h2,{id:"update-output",children:"Update output"}),"\n",(0,r.jsx)(n.p,{children:"Configure it to:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["Show input streams ",(0,r.jsx)(n.code,{children:"input_1"})," and ",(0,r.jsx)(n.code,{children:"input_2"})," using ",(0,r.jsx)(n.a,{href:"/docs/api/components/Tiles",children:(0,r.jsx)(n.code,{children:"Tiles"})})," component."]}),"\n",(0,r.jsxs)(n.li,{children:["Mix audio from input streams ",(0,r.jsx)(n.code,{children:"input_1"})," and ",(0,r.jsx)(n.code,{children:"input_2"}),", where ",(0,r.jsx)(n.code,{children:"input_1"})," volume is slightly lowered."]}),"\n"]}),"\n",(0,r.jsxs)(i.A,{queryString:"lang",children:[(0,r.jsx)(o.A,{value:"react",label:"React",children:(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-tsx",children:'function App() {\n return (\n \n \n \n \n )\n}\n'})})}),(0,r.jsx)(o.A,{value:"http",label:"HTTP",children:(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-http",children:'POST: /api/output/output_1/update\nContent-Type: application/json\n\n{\n "video": {\n "root": {\n "type": "tiles",\n "background_color_rgba": "#4d4d4dff",\n "children": [\n { "type": "input_stream", "input_id": "input_1" },\n { "type": "input_stream", "input_id": "input_2" }\n ]\n }\n },\n "audio": {\n "inputs": [\n { "input_id": "input_1", volume: 0.9 },\n { "input_id": "input_2" }\n ]\n }\n}\n'})})}),(0,r.jsx)(o.A,{value:"membrane",label:"Membrane Framework",children:(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-elixir",children:'def handle_setup(ctx, state) do\n video_request = %LiveCompositor.Request.UpdateVideoOutput{\n output_id: "video_output_1",\n root: %{\n type: :tiles,\n children: [\n %{ type: :input_stream, input_id: :input_1 },\n %{ type: :input_stream, input_id: :input_2 }\n ]\n }\n }\n audio_request = %LiveCompositor.Request.UpdateAudioOutput{\n output_id: "audio_output_1",\n inputs: [\n %{ input_id: "input_1", volume: 0.9 },\n %{ input_id: "input_2" }\n ]\n }\n \n events = [\n notify_child: {:live_compositor, video_request},\n notify_child: {:live_compositor, audio_request}\n ]\n\n {events, state}\nend\n'})})})]}),"\n",(0,r.jsxs)("div",{style:{textAlign:"center"},children:[(0,r.jsx)("img",{src:c,style:{width:600}}),(0,r.jsx)(n.p,{children:"Output stream"})]})]})}function m(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(v,{...e})}):v(e)}},19365:(e,n,t)=>{t.d(n,{A:()=>o});t(96540);var r=t(18215);const s={tabItem:"tabItem_Ymn6"};var i=t(74848);function o(e){let{children:n,hidden:t,className:o}=e;return(0,i.jsx)("div",{role:"tabpanel",className:(0,r.A)(s.tabItem,o),hidden:t,children:n})}},11470:(e,n,t)=>{t.d(n,{A:()=>g});var r=t(96540),s=t(18215),i=t(23104),o=t(56347),a=t(205),c=t(57485),l=t(31682),u=t(89466);function d(e){return r.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function p(e){const{values:n,children:t}=e;return(0,r.useMemo)((()=>{const e=n??function(e){return d(e).map((e=>{let{props:{value:n,label:t,attributes:r,default:s}}=e;return{value:n,label:t,attributes:r,default:s}}))}(t);return function(e){const n=(0,l.X)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[n,t])}function h(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function v(e){let{queryString:n=!1,groupId:t}=e;const s=(0,o.W6)(),i=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,c.aZ)(i),(0,r.useCallback)((e=>{if(!i)return;const n=new URLSearchParams(s.location.search);n.set(i,e),s.replace({...s.location,search:n.toString()})}),[i,s])]}function m(e){const{defaultValue:n,queryString:t=!1,groupId:s}=e,i=p(e),[o,c]=(0,r.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the component requires at least one children component");if(n){if(!h({value:n,tabValues:t}))throw new Error(`Docusaurus error: The has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const r=t.find((e=>e.default))??t[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:n,tabValues:i}))),[l,d]=v({queryString:t,groupId:s}),[m,f]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[s,i]=(0,u.Dv)(t);return[s,(0,r.useCallback)((e=>{t&&i.set(e)}),[t,i])]}({groupId:s}),y=(()=>{const e=l??m;return h({value:e,tabValues:i})?e:null})();(0,a.A)((()=>{y&&c(y)}),[y]);return{selectedValue:o,selectValue:(0,r.useCallback)((e=>{if(!h({value:e,tabValues:i}))throw new Error(`Can't select invalid tab value=${e}`);c(e),d(e),f(e)}),[d,f,i]),tabValues:i}}var f=t(92303);const y={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var b=t(74848);function k(e){let{className:n,block:t,selectedValue:r,selectValue:o,tabValues:a}=e;const c=[],{blockElementScrollPositionUntilNextRender:l}=(0,i.a_)(),u=e=>{const n=e.currentTarget,t=c.indexOf(n),s=a[t].value;s!==r&&(l(n),o(s))},d=e=>{let n=null;switch(e.key){case"Enter":u(e);break;case"ArrowRight":{const t=c.indexOf(e.currentTarget)+1;n=c[t]??c[0];break}case"ArrowLeft":{const t=c.indexOf(e.currentTarget)-1;n=c[t]??c[c.length-1];break}}n?.focus()};return(0,b.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.A)("tabs",{"tabs--block":t},n),children:a.map((e=>{let{value:n,label:t,attributes:i}=e;return(0,b.jsx)("li",{role:"tab",tabIndex:r===n?0:-1,"aria-selected":r===n,ref:e=>c.push(e),onKeyDown:d,onClick:u,...i,className:(0,s.A)("tabs__item",y.tabItem,i?.className,{"tabs__item--active":r===n}),children:t??n},n)}))})}function _(e){let{lazy:n,children:t,selectedValue:s}=e;const i=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=i.find((e=>e.props.value===s));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return(0,b.jsx)("div",{className:"margin-top--md",children:i.map(((e,n)=>(0,r.cloneElement)(e,{key:n,hidden:e.props.value!==s})))})}function A(e){const n=m(e);return(0,b.jsxs)("div",{className:(0,s.A)("tabs-container",y.tabList),children:[(0,b.jsx)(k,{...e,...n}),(0,b.jsx)(_,{...e,...n})]})}function g(e){const n=(0,f.A)();return(0,b.jsx)(A,{...e,children:d(e.children)},String(n))}},28453:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>a});var r=t(96540);const s={},i=r.createContext(s);function o(e){const n=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),r.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c82cf132.d6f114a1.js b/assets/js/c82cf132.d6f114a1.js new file mode 100644 index 000000000..27e74620c --- /dev/null +++ b/assets/js/c82cf132.d6f114a1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcompositor_live=self.webpackChunkcompositor_live||[]).push([[9547],{41858:(e,o,t)=>{t.r(o),t.d(o,{assets:()=>a,contentTitle:()=>r,default:()=>p,frontMatter:()=>s,metadata:()=>c,toc:()=>l});var n=t(74848),i=t(28453);const s={},r="How to use it?",c={id:"intro/how-to-use",title:"How to use it?",description:"Live Compositor can be used or deployed in a few ways.",source:"@site/pages/intro/how-to-use.md",sourceDirName:"intro",slug:"/intro/how-to-use",permalink:"/docs/intro/how-to-use",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"sidebar",previous:{title:"What is Live Compositor?",permalink:"/docs/intro/what-is-compositor"},next:{title:"Where to go next?",permalink:"/docs/intro/where-next"}},a={},l=[{value:"TypeScript/React",id:"typescriptreact",level:2},{value:"Standalone",id:"standalone",level:2},{value:"Membrane Framework plugin",id:"membrane-framework-plugin",level:2}];function d(e){const o={a:"a",code:"code",h1:"h1",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(o.h1,{id:"how-to-use-it",children:"How to use it?"}),"\n",(0,n.jsx)(o.p,{children:"Live Compositor can be used or deployed in a few ways."}),"\n",(0,n.jsx)(o.h2,{id:"typescriptreact",children:"TypeScript/React"}),"\n",(0,n.jsx)(o.p,{children:"TypeScript SDK currently can only be run in Node.js environment, but browser and React Native support will be added soon. Run"}),"\n",(0,n.jsx)(o.pre,{children:(0,n.jsx)(o.code,{children:"npm create live-compositor\n"})}),"\n",(0,n.jsx)(o.p,{children:"to generate a new starter project."}),"\n",(0,n.jsx)(o.p,{children:"There are 2 NPM packages that you need to be aware of:"}),"\n",(0,n.jsxs)(o.ul,{children:["\n",(0,n.jsxs)(o.li,{children:[(0,n.jsx)(o.code,{children:"live-compositor"})," package provides React components and hooks to define how streams should be composed."]}),"\n",(0,n.jsxs)(o.li,{children:[(0,n.jsx)(o.code,{children:"@live-compositor/node"})," package provides interface to interact with the Live Compositor server from Node.js environment."]}),"\n"]}),"\n",(0,n.jsxs)(o.p,{children:["See ",(0,n.jsx)(o.a,{href:"/docs/typescript/api",children:"TypeScript SDK documentation for more"})," to learn more."]}),"\n",(0,n.jsx)(o.h2,{id:"standalone",children:"Standalone"}),"\n",(0,n.jsx)(o.p,{children:"You can use LiveCompositor as a standalone multimedia server. The server can be started by:"}),"\n",(0,n.jsxs)(o.ul,{children:["\n",(0,n.jsxs)(o.li,{children:["Building ",(0,n.jsx)(o.a,{href:"https://github.com/software-mansion/live-compositor",children:(0,n.jsx)(o.code,{children:"github.com/software-mansion/live-compositor"})})," from source."]}),"\n",(0,n.jsxs)(o.li,{children:["Using binaries from ",(0,n.jsx)(o.a,{href:"https://github.com/software-mansion/live-compositor/releases",children:"GitHub releases"}),"."]}),"\n",(0,n.jsxs)(o.li,{children:["Using Docker","\n",(0,n.jsxs)(o.ul,{children:["\n",(0,n.jsxs)(o.li,{children:["(recommended) Dockerfile with compositor without web rendering support ",(0,n.jsx)(o.a,{href:"https://github.com/software-mansion/live-compositor/blob/master/build_tools/docker/slim.Dockerfile",children:"https://github.com/software-mansion/live-compositor/blob/master/build_tools/docker/slim.Dockerfile"})]}),"\n",(0,n.jsxs)(o.li,{children:["Dockerfile with compositor with web rendering support ",(0,n.jsx)(o.a,{href:"https://github.com/software-mansion/live-compositor/blob/master/build_tools/docker/full.Dockerfile",children:"https://github.com/software-mansion/live-compositor/blob/master/build_tools/docker/full.Dockerfile"})]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(o.h2,{id:"membrane-framework-plugin",children:"Membrane Framework plugin"}),"\n",(0,n.jsx)(o.p,{children:"Membrane Framework has its own way of handling multimedia, so to fit into that ecosystem some features do not translate one-to-one between standalone compositor and the plugin."}),"\n",(0,n.jsx)(o.p,{children:"Notable differences:"}),"\n",(0,n.jsxs)(o.ul,{children:["\n",(0,n.jsx)(o.li,{children:"Inputs/outputs in LiveCompositor can include both audio and video at the same time, but with the Membrane plugin you need to create separate inputs/outputs for each media type."}),"\n",(0,n.jsx)(o.li,{children:"No support for MP4 files as input. It is more idiomatic to use Membrane plugins to read MP4 files instead."}),"\n",(0,n.jsx)(o.li,{children:"To connect inputs/outputs to LiveCompositor you need to first register them before sending/receiving the stream, but with the Membrane plugin connecting pads covers both those steps."}),"\n"]}),"\n",(0,n.jsxs)(o.p,{children:["Parts of this documentation were written with a standalone scenario in mind, so make sure to always consult ",(0,n.jsx)(o.a,{href:"https://hexdocs.pm/membrane_live_compositor_plugin/0.9.0/Membrane.LiveCompositor.html",children:"the plugin documentation"})," first. For example, to see how to send a scene update check out documentation on ",(0,n.jsx)(o.code,{children:"HexDocs"}),", but if you want to know what options the ",(0,n.jsx)(o.code,{children:"View"})," component supports, then consult the documentation ",(0,n.jsx)(o.a,{href:"/docs/api/components/View",children:"here"}),"."]})]})}function p(e={}){const{wrapper:o}={...(0,i.R)(),...e.components};return o?(0,n.jsx)(o,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},28453:(e,o,t)=>{t.d(o,{R:()=>r,x:()=>c});var n=t(96540);const i={},s=n.createContext(i);function r(e){const o=n.useContext(s);return n.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function c(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),n.createElement(s.Provider,{value:o},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/da6db59c.ab4b7e45.js b/assets/js/da6db59c.ab4b7e45.js new file mode 100644 index 000000000..66b8fa5b7 --- /dev/null +++ b/assets/js/da6db59c.ab4b7e45.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcompositor_live=self.webpackChunkcompositor_live||[]).push([[4087],{38728:(e,r,i)=>{i.r(r),i.d(r,{assets:()=>d,contentTitle:()=>o,default:()=>p,frontMatter:()=>t,metadata:()=>c,toc:()=>a});var n=i(74848),s=i(28453);const t={},o="LiveCompositor",c={id:"typescript/instance",title:"LiveCompositor",description:"Packages like @live-compositor/node export LiveCompositor class that is a main entity used to interact with or control Live Compositor server instance.",source:"@site/pages/typescript/instance.md",sourceDirName:"typescript",slug:"/typescript/instance",permalink:"/docs/typescript/instance",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"sidebar",previous:{title:"TypeScript SDK Reference",permalink:"/docs/typescript/api"},next:{title:"Hooks",permalink:"/docs/typescript/hooks"}},d={},a=[{value:"new LiveCompositor()",id:"new-livecompositor",level:3},{value:"init()",id:"init",level:3},{value:"start()",id:"start",level:3},{value:"Outputs configuration",id:"outputs-configuration",level:3},{value:"Register output",id:"register-output",level:4},{value:"Unregister output",id:"unregister-output",level:4},{value:"Inputs configuration",id:"inputs-configuration",level:3},{value:"Register input",id:"register-input",level:4},{value:"Unregister input",id:"unregister-input",level:4},{value:"Renderers configuration",id:"renderers-configuration",level:3},{value:"Register image",id:"register-image",level:4},{value:"Unregister image",id:"unregister-image",level:4},{value:"Register shader",id:"register-shader",level:4},{value:"Unregister shader",id:"unregister-shader",level:4},{value:"Register web renderer instance",id:"register-web-renderer-instance",level:4},{value:"Unregister web renderer instance",id:"unregister-web-renderer-instance",level:4}];function l(e){const r={a:"a",code:"code",h1:"h1",h3:"h3",h4:"h4",hr:"hr",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,s.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(r.h1,{id:"livecompositor",children:(0,n.jsx)(r.code,{children:"LiveCompositor"})}),"\n",(0,n.jsxs)(r.p,{children:["Packages like ",(0,n.jsx)(r.code,{children:"@live-compositor/node"})," export ",(0,n.jsx)(r.code,{children:"LiveCompositor"})," class that is a main entity used to interact with or control Live Compositor server instance."]}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-tsx",children:'import LiveCompositor from "@live-compositor/node"\n'})}),"\n",(0,n.jsx)(r.h3,{id:"new-livecompositor",children:(0,n.jsx)(r.code,{children:"new LiveCompositor()"})}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-tsx",children:"new LiveCompositor(manager?: CompositorManager)\n"})}),"\n",(0,n.jsxs)(r.p,{children:["Creates new compositor configuration. You have to call ",(0,n.jsx)(r.code,{children:"init"})," first before this object can be used."]}),"\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.code,{children:"CompositorManager"})," configures how the client code will connect and manage the LiveCompositor server."]}),"\n",(0,n.jsxs)(r.ul,{children:["\n",(0,n.jsxs)(r.li,{children:["(",(0,n.jsx)(r.strong,{children:"default"}),") ",(0,n.jsx)(r.code,{children:"LocallySpawnedInstance"})," from ",(0,n.jsx)(r.code,{children:"@live-compositor/node"})," downloads LiveCompositor binaries and starts the server on the local machine."]}),"\n",(0,n.jsxs)(r.li,{children:[(0,n.jsx)(r.code,{children:"ExistingInstance"})," from ",(0,n.jsx)(r.code,{children:"@live-compositor/node"})," connects to already existing compositor instance."]}),"\n"]}),"\n",(0,n.jsx)(r.h3,{id:"init",children:(0,n.jsx)(r.code,{children:"init()"})}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-tsx",children:"LiveCompositor.init(): Promise\n"})}),"\n",(0,n.jsxs)(r.p,{children:["Initialize the LiveCompositor instance, depending on which ",(0,n.jsx)(r.code,{children:"CompositorManager"})," you are using it might mean spawning\nnew instance or just establishing connection."]}),"\n",(0,n.jsxs)(r.p,{children:["After this request you can start connecting inputs/outputs or register other elements. However, no output stream will\nbe produced until ",(0,n.jsx)(r.code,{children:"start()"})," method is called."]}),"\n",(0,n.jsx)(r.h3,{id:"start",children:(0,n.jsx)(r.code,{children:"start()"})}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-tsx",children:"LiveCompositor.start(): Promise\n"})}),"\n",(0,n.jsx)(r.p,{children:"Starts the processing pipeline. Any previously registered output will start producing the video/audio stream."}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"outputs-configuration",children:"Outputs configuration"}),"\n",(0,n.jsx)(r.h4,{id:"register-output",children:"Register output"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-tsx",children:'import { Outputs } from "live-compositor"\n\nLiveCompositor.registerOutput(\n outputId: string,\n output: Outputs.RegisterOutput,\n): Promise\n'})}),"\n",(0,n.jsx)(r.p,{children:"Register external destination that can be used as a compositor output. See outputs documentation to learn more:"}),"\n",(0,n.jsxs)(r.ul,{children:["\n",(0,n.jsx)(r.li,{children:(0,n.jsx)(r.a,{href:"/docs/typescript/outputs/rtp",children:"Rtp"})}),"\n",(0,n.jsx)(r.li,{children:(0,n.jsx)(r.a,{href:"/docs/typescript/outputs/mp4",children:"Mp4"})}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"unregister-output",children:"Unregister output"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-tsx",children:"LiveCompositor.unregisterOutput(outputId: string): Promise\n"})}),"\n",(0,n.jsx)(r.p,{children:"Unregister previously registered output."}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"inputs-configuration",children:"Inputs configuration"}),"\n",(0,n.jsx)(r.h4,{id:"register-input",children:"Register input"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-tsx",children:'import { Inputs } from "live-compositor"\n\nLiveCompositor.registerInput(\n inputId: string,\n input: Inputs.RegisterInput,\n): Promise\n'})}),"\n",(0,n.jsx)(r.p,{children:"Register external source that can be used as a compositor input. See inputs documentation to learn more:"}),"\n",(0,n.jsxs)(r.ul,{children:["\n",(0,n.jsx)(r.li,{children:(0,n.jsx)(r.a,{href:"/docs/typescript/inputs/rtp",children:"RTP"})}),"\n",(0,n.jsx)(r.li,{children:(0,n.jsx)(r.a,{href:"/docs/typescript/inputs/mp4",children:"MP4"})}),"\n"]}),"\n",(0,n.jsx)(r.h4,{id:"unregister-input",children:"Unregister input"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-tsx",children:"LiveCompositor.unregisterInput(inputId: string): Promise\n"})}),"\n",(0,n.jsx)(r.p,{children:"Unregister a previously registered input."}),"\n",(0,n.jsx)(r.hr,{}),"\n",(0,n.jsx)(r.h3,{id:"renderers-configuration",children:"Renderers configuration"}),"\n",(0,n.jsx)(r.h4,{id:"register-image",children:"Register image"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-tsx",children:'import { Renderers } from "live-compositor"\n\nLiveCompositor.registerImage(\n imageId: string,\n image: Renderers.RegisterImage,\n): Promise\n'})}),"\n",(0,n.jsxs)(r.p,{children:["Register an image asset. See ",(0,n.jsx)(r.a,{href:"/docs/typescript/renderers/image",children:(0,n.jsx)(r.code,{children:"Renderers.RegisterImage"})})," to learn more."]}),"\n",(0,n.jsx)(r.h4,{id:"unregister-image",children:"Unregister image"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-tsx",children:"LiveCompositor.unregisterImage(imageId: string): Promise\n"})}),"\n",(0,n.jsx)(r.p,{children:"Unregister a previously registered image asset."}),"\n",(0,n.jsx)(r.h4,{id:"register-shader",children:"Register shader"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-tsx",children:'import { Renderers } from "live-compositor"\n\nLiveCompositor.registerShader(\n shaderId: string,\n shader: Renderers.RegisterShader,\n): Promise\n'})}),"\n",(0,n.jsxs)(r.p,{children:["Register a shader. See ",(0,n.jsx)(r.a,{href:"/docs/typescript/renderers/shader",children:(0,n.jsx)(r.code,{children:"Renderers.RegisterShader"})})," to learn more."]}),"\n",(0,n.jsx)(r.h4,{id:"unregister-shader",children:"Unregister shader"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-tsx",children:"LiveCompositor.unregisterShader(shaderId: string): Promise\n"})}),"\n",(0,n.jsx)(r.p,{children:"Unregister a previously registered shader."}),"\n",(0,n.jsx)(r.h4,{id:"register-web-renderer-instance",children:"Register web renderer instance"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-tsx",children:'import { Renderers } from "live-compositor"\n\nLiveCompositor.registerWebRenderer(\n instanceId: string,\n instance: Renderers.RegisterWebRenderer,\n): Promise\n'})}),"\n",(0,n.jsxs)(r.p,{children:["Register a web renderer instance. See ",(0,n.jsx)(r.a,{href:"/docs/typescript/renderers/web",children:(0,n.jsx)(r.code,{children:"Renderer.RegisterWebRenderer"})})," to learn more."]}),"\n",(0,n.jsx)(r.h4,{id:"unregister-web-renderer-instance",children:"Unregister web renderer instance"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-tsx",children:"LiveCompositor.unregisterWebRenderer(instanceId: string): Promise\n"})}),"\n",(0,n.jsx)(r.p,{children:"Unregister a previously registered web renderer."})]})}function p(e={}){const{wrapper:r}={...(0,s.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},28453:(e,r,i)=>{i.d(r,{R:()=>o,x:()=>c});var n=i(96540);const s={},t=n.createContext(s);function o(e){const r=n.useContext(t);return n.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function c(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),n.createElement(t.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e02fd229.05fd92b4.js b/assets/js/e02fd229.05fd92b4.js deleted file mode 100644 index 6adfdbfbe..000000000 --- a/assets/js/e02fd229.05fd92b4.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcompositor_live=self.webpackChunkcompositor_live||[]).push([[857],{95235:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>d,contentTitle:()=>o,default:()=>l,frontMatter:()=>t,metadata:()=>c,toc:()=>p});var r=i(74848),s=i(28453);const t={sidebar_position:8,title:"WebView"},o="WebView",c={id:"typescript/components/WebView",title:"WebView",description:"Required feature: web_renderer",source:"@site/pages/typescript/components/WebView.md",sourceDirName:"typescript/components",slug:"/typescript/components/WebView",permalink:"/docs/typescript/components/WebView",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:8,frontMatter:{sidebar_position:8,title:"WebView"},sidebar:"sidebar",previous:{title:"Image",permalink:"/docs/typescript/components/Image"},next:{title:"Shader",permalink:"/docs/typescript/renderers/shader"}},d={},p=[{value:"WebViewProps",id:"webviewprops",level:2}];function a(e){const n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.p,{children:(0,r.jsx)(n.a,{href:"/docs/deployment/overview#web-renderer-support",children:(0,r.jsx)("span",{className:"badge badge--info",children:"Required feature: web_renderer"})})}),"\n",(0,r.jsx)(n.h1,{id:"webview",children:"WebView"}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"WebView"})," renders a website using Chromium engine embedded inside the compositor."]}),"\n",(0,r.jsx)(n.admonition,{type:"note",children:(0,r.jsxs)(n.p,{children:["To use this component, you need to first register the web renderer instance with matching ",(0,r.jsx)(n.code,{children:"instanceId"})," using ",(0,r.jsx)(n.a,{href:"/docs/typescript/api#register-web-renderer-instance",children:(0,r.jsx)(n.code,{children:"LiveCompositor.registerWebRenderer"})})," method."]})}),"\n",(0,r.jsx)(n.admonition,{type:"warning",children:(0,r.jsxs)(n.p,{children:["Only one component can use specific ",(0,r.jsx)(n.code,{children:"instanceId"})," at the time."]})}),"\n",(0,r.jsx)(n.h2,{id:"webviewprops",children:"WebViewProps"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-typescript",children:"type WebView = {\n id?: string;\n children?: ReactElement[];\n instanceId: string;\n}\n"})}),"\n",(0,r.jsx)(n.p,{children:"WebView component renders a website using Chromium Embedded Framework (CEF)."}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"id"})," - Id of a component. Defaults to value produced by ",(0,r.jsx)(n.code,{children:"useId"})," hook."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"children"})," - List of component's children."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"instanceId"})," - Id of a web renderer instance. It identifies an instance registered using a ",(0,r.jsx)(n.a,{href:"/docs/typescript/api#register-web-renderer-instance",children:(0,r.jsx)(n.code,{children:"LiveCompositor.registerWebRenderer"})})," request."]}),"\n",(0,r.jsx)(n.admonition,{type:"warning",children:(0,r.jsx)(n.p,{children:"You can only refer to specific instances in one Component at a time."})}),"\n"]}),"\n"]})]})}function l(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(a,{...e})}):a(e)}},28453:(e,n,i)=>{i.d(n,{R:()=>o,x:()=>c});var r=i(96540);const s={},t=r.createContext(s);function o(e){const n=r.useContext(t);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),r.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e02fd229.42a3a0b4.js b/assets/js/e02fd229.42a3a0b4.js new file mode 100644 index 000000000..ca2ddba1b --- /dev/null +++ b/assets/js/e02fd229.42a3a0b4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcompositor_live=self.webpackChunkcompositor_live||[]).push([[857],{95235:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>d,contentTitle:()=>o,default:()=>l,frontMatter:()=>t,metadata:()=>c,toc:()=>p});var r=i(74848),s=i(28453);const t={sidebar_position:8,title:"WebView"},o="WebView",c={id:"typescript/components/WebView",title:"WebView",description:"Required feature: web_renderer",source:"@site/pages/typescript/components/WebView.md",sourceDirName:"typescript/components",slug:"/typescript/components/WebView",permalink:"/docs/typescript/components/WebView",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:8,frontMatter:{sidebar_position:8,title:"WebView"},sidebar:"sidebar",previous:{title:"Image",permalink:"/docs/typescript/components/Image"},next:{title:"Shader",permalink:"/docs/typescript/renderers/shader"}},d={},p=[{value:"WebViewProps",id:"webviewprops",level:2}];function a(e){const n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.p,{children:(0,r.jsx)(n.a,{href:"/docs/deployment/overview#web-renderer-support",children:(0,r.jsx)("span",{className:"badge badge--info",children:"Required feature: web_renderer"})})}),"\n",(0,r.jsx)(n.h1,{id:"webview",children:"WebView"}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"WebView"})," renders a website using Chromium engine embedded inside the compositor."]}),"\n",(0,r.jsx)(n.admonition,{type:"note",children:(0,r.jsxs)(n.p,{children:["To use this component, you need to first register the web renderer instance with matching ",(0,r.jsx)(n.code,{children:"instanceId"})," using ",(0,r.jsx)(n.a,{href:"/docs/typescript/instance#register-web-renderer-instance",children:(0,r.jsx)(n.code,{children:"LiveCompositor.registerWebRenderer"})})," method."]})}),"\n",(0,r.jsx)(n.admonition,{type:"warning",children:(0,r.jsxs)(n.p,{children:["Only one component can use specific ",(0,r.jsx)(n.code,{children:"instanceId"})," at the time."]})}),"\n",(0,r.jsx)(n.h2,{id:"webviewprops",children:"WebViewProps"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-typescript",children:"type WebView = {\n id?: string;\n children?: ReactElement[];\n instanceId: string;\n}\n"})}),"\n",(0,r.jsx)(n.p,{children:"WebView component renders a website using Chromium Embedded Framework (CEF)."}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"id"})," - Id of a component. Defaults to value produced by ",(0,r.jsx)(n.code,{children:"useId"})," hook."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"children"})," - List of component's children."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.code,{children:"instanceId"})," - Id of a web renderer instance. It identifies an instance registered using a ",(0,r.jsx)(n.a,{href:"/docs/typescript/instance#register-web-renderer-instance",children:(0,r.jsx)(n.code,{children:"LiveCompositor.registerWebRenderer"})})," request."]}),"\n",(0,r.jsx)(n.admonition,{type:"warning",children:(0,r.jsx)(n.p,{children:"You can only refer to specific instances in one Component at a time."})}),"\n"]}),"\n"]})]})}function l(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(a,{...e})}):a(e)}},28453:(e,n,i)=>{i.d(n,{R:()=>o,x:()=>c});var r=i(96540);const s={},t=r.createContext(s);function o(e){const n=r.useContext(t);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),r.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/main.92f19be0.js b/assets/js/main.92f19be0.js deleted file mode 100644 index aea780df9..000000000 --- a/assets/js/main.92f19be0.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see main.92f19be0.js.LICENSE.txt */ -(self.webpackChunkcompositor_live=self.webpackChunkcompositor_live||[]).push([[8792],{89188:(e,t,n)=>{"use strict";n.d(t,{W:()=>a});var r=n(96540);function a(){return r.createElement("svg",{width:"20",height:"20",className:"DocSearch-Search-Icon",viewBox:"0 0 20 20","aria-hidden":"true"},r.createElement("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}},35947:(e,t,n)=>{"use strict";n.d(t,{A:()=>p});n(96540);var r=n(53259),a=n.n(r),o=n(84054);const i={"02628d27":[()=>n.e(6608).then(n.bind(n,6451)),"@site/pages/typescript/components/Rescaler.md",6451],"03d586bf":[()=>n.e(5647).then(n.bind(n,45610)),"@site/pages/concept/shaders.md",45610],"04914800":[()=>n.e(1349).then(n.bind(n,98185)),"@site/pages/typescript/components/Image.md",98185],"0cb07e4e":[()=>n.e(7471).then(n.bind(n,73640)),"@site/pages/api/components/Rescaler.md",73640],"0ce74438":[()=>Promise.all([n.e(1869),n.e(355),n.e(3365)]).then(n.bind(n,16891)),"@site/src/pages/playground.tsx",16891],"14eaa339":[()=>n.e(9470).then(n.bind(n,72614)),"@site/pages/api/components/WebView.md",72614],"14eb3368":[()=>Promise.all([n.e(1869),n.e(6969)]).then(n.bind(n,34136)),"@theme/DocCategoryGeneratedIndexPage",34136],"15cc4295":[()=>n.e(6135).then(n.bind(n,41639)),"@site/pages/api/generated/component-Rescaler.md",41639],"177e5166":[()=>n.e(5553).then(n.bind(n,96737)),"@site/pages/api/renderers/web.md",96737],17896441:[()=>Promise.all([n.e(1869),n.e(1432),n.e(8401)]).then(n.bind(n,9897)),"@theme/DocItem",9897],"19a7aa20":[()=>n.e(6633).then(n.bind(n,11711)),"@site/pages/api/generated/component-View.md",11711],"1a4e3797":[()=>Promise.all([n.e(1869),n.e(2138)]).then(n.bind(n,62672)),"@theme/SearchPage",62672],"1df93b7f":[()=>Promise.all([n.e(1869),n.e(1432),n.e(4762),n.e(4583)]).then(n.bind(n,99894)),"@site/src/pages/index.tsx",99894],"1e196f43":[()=>n.e(2952).then(n.bind(n,21595)),"@site/pages/api/events.md",21595],"1ec835e1":[()=>Promise.all([n.e(1869),n.e(6002)]).then(n.bind(n,77371)),"@site/pages/guides/view-transition.md",77371],"20fb3f1d":[()=>n.e(2317).then(n.bind(n,82110)),"@site/pages/common/absolute-position.md",82110],26033596:[()=>n.e(6993).then(n.bind(n,73321)),"@site/pages/deployment/aws-ec2.md",73321],"2688c0dd":[()=>n.e(502).then(n.bind(n,38319)),"@site/pages/concept/layouts.md",38319],"286afa91":[()=>n.e(9863).then(n.t.bind(n,57757,19)),"/__w/live-compositor/live-compositor/docs/.docusaurus/docusaurus-theme-search-algolia/default/plugin-route-context-module-100.json",57757],"2a8dccce":[()=>n.e(8410).then(n.bind(n,70187)),"@site/pages/api/inputs/mp4.md",70187],"2fb3c611":[()=>n.e(3159).then(n.bind(n,72453)),"@site/pages/api/generated/renderer-DeckLink.md",72453],"30f5821a":[()=>Promise.all([n.e(1869),n.e(5829)]).then(n.bind(n,8050)),"@site/pages/guides/basic-layouts.md",8050],"38e505fc":[()=>n.e(1532).then(n.bind(n,64519)),"@site/pages/typescript/inputs/rtp.md",64519],"3d0d9de9":[()=>n.e(9195).then(n.bind(n,3497)),"@site/pages/deployment/configuration.md",3497],"3d5f68d7":[()=>n.e(4198).then(n.t.bind(n,4061,19)),"/__w/live-compositor/live-compositor/docs/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json",4061],"3dd7a4aa":[()=>n.e(5488).then(n.bind(n,98714)),"@site/pages/typescript/inputs/mp4.md",98714],"40bc831f":[()=>n.e(8536).then(n.bind(n,95391)),"@site/pages/api/generated/output-RtpOutputStream.md",95391],"42b33983":[()=>n.e(2419).then(n.bind(n,48131)),"@site/pages/api/components/Tiles.md",48131],"431449dc":[()=>n.e(8325).then(n.bind(n,49547)),"@site/pages/api/inputs/decklink.md",49547],"4ec823d0":[()=>n.e(6990).then(n.bind(n,20260)),"@site/pages/typescript/components/InputStream.md",20260],"4eceb64f":[()=>n.e(8932).then(n.bind(n,61268)),"@site/pages/deployment/overview.md",61268],"555001e8":[()=>n.e(5424).then(n.bind(n,67229)),"@site/pages/typescript/components/Text.md",67229],"5732f308":[()=>n.e(7449).then(n.bind(n,31990)),"@site/pages/api/components/Text.md",31990],"583850f4":[()=>n.e(2636).then(n.bind(n,76071)),"@site/pages/concept/component.md",76071],"584d3ced":[()=>n.e(5933).then(n.bind(n,94013)),"@site/pages/typescript/outputs/mp4.md",94013],"584f2726":[()=>n.e(6807).then(n.bind(n,46710)),"@site/pages/api/renderers/shader.md",46710],"5e95c892":[()=>n.e(9647).then(n.bind(n,7121)),"@theme/DocsRoot",7121],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,4784)),"@generated/docusaurus.config",4784],"6402fa87":[()=>n.e(5711).then(n.bind(n,20289)),"@site/pages/api/generated/component-Text.md",20289],"64503b93":[()=>n.e(8357).then(n.bind(n,21860)),"@site/pages/typescript/outputs/rtp.md",21860],"6e7ae30b":[()=>n.e(3126).then(n.bind(n,42797)),"@site/pages/api/generated/renderer-Mp4Input.md",42797],"6ecc9e9d":[()=>n.e(6019).then(n.bind(n,99620)),"@site/pages/api/components/View.md",99620],"72fe5344":[()=>n.e(2775).then(n.bind(n,65255)),"@site/pages/deployment/requirements.md",65255],"7a01de4d":[()=>n.e(5319).then(n.bind(n,68899)),"@site/pages/api/generated/renderer-Image.md",68899],"7a65d3d5":[()=>n.e(4850).then(n.bind(n,31720)),"@site/pages/typescript/components/Tiles.md",31720],"7ef038ae":[()=>n.e(722).then(n.bind(n,79816)),"@site/pages/api/components/Image.md",79816],"8149da16":[()=>n.e(9551).then(n.bind(n,33475)),"@site/pages/typescript/api.md",33475],"81bcc942":[()=>n.e(4841).then(n.bind(n,31209)),"@site/pages/concept/overview.md",31209],"8465aa74":[()=>n.e(6519).then(n.t.bind(n,68978,19)),"~docs/default/category-docs-sidebar-category-guides-f1f.json",68978],"896f0ba9":[()=>n.e(666).then(n.bind(n,20267)),"@site/pages/api/generated/renderer-WebRenderer.md",20267],"8a0e871e":[()=>n.e(8290).then(n.bind(n,82723)),"@site/pages/typescript/renderers/shader.md",82723],"8b6aa7f8":[()=>n.e(112).then(n.bind(n,61642)),"@site/pages/api/outputs/mp4.md",61642],"914825a2":[()=>n.e(9835).then(n.bind(n,42365)),"@site/pages/intro.md",42365],"930add79":[()=>n.e(686).then(n.bind(n,73131)),"@site/pages/typescript/components/View.md",73131],"935f2afb":[()=>n.e(8581).then(n.t.bind(n,35610,19)),"~docs/default/version-current-metadata-prop-751.json",35610],a7bd4aaa:[()=>n.e(7098).then(n.bind(n,74532)),"@theme/DocVersionRoot",74532],a94703ab:[()=>Promise.all([n.e(1869),n.e(9048)]).then(n.bind(n,92559)),"@theme/DocRoot",92559],aaf9fdb2:[()=>n.e(5392).then(n.bind(n,46287)),"@site/pages/api/generated/component-Shader.md",46287],aedfabef:[()=>n.e(5383).then(n.bind(n,58415)),"@site/pages/typescript/hooks.md",58415],b360e2f2:[()=>n.e(4501).then(n.bind(n,27892)),"@site/pages/api/components/Shader.md",27892],b542e828:[()=>n.e(8727).then(n.bind(n,92484)),"@site/pages/api/routes.md",92484],b674f25e:[()=>n.e(7536).then(n.t.bind(n,61966,19)),"/__w/live-compositor/live-compositor/docs/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",61966],be91778b:[()=>n.e(2054).then(n.bind(n,72984)),"@site/pages/api/generated/component-InputStream.md",72984],c2904cbc:[()=>n.e(7305).then(n.bind(n,49509)),"@site/pages/api/generated/component-Image.md",49509],c488dc68:[()=>n.e(5983).then(n.bind(n,55987)),"@site/pages/typescript/components/Shader.md",55987],c51dedee:[()=>Promise.all([n.e(1869),n.e(249)]).then(n.bind(n,74071)),"@site/pages/guides/quick-start.md",74071],c7461f95:[()=>n.e(672).then(n.bind(n,79956)),"@site/pages/guides/receive-output.md",79956],cd44186e:[()=>n.e(3770).then(n.bind(n,98229)),"@site/pages/api/generated/renderer-Shader.md",98229],d30da6cd:[()=>n.e(1748).then(n.bind(n,77463)),"@site/pages/api/outputs/rtp.md",77463],d4ba72cb:[()=>n.e(6556).then(n.t.bind(n,64436,19)),"~docs/default/category-docs-sidebar-category-http-api-reference-88e.json",64436],d5b534ab:[()=>n.e(5337).then(n.bind(n,83658)),"@site/pages/api/renderers/image.md",83658],d81783d9:[()=>n.e(2041).then(n.bind(n,36606)),"@site/pages/api/inputs/rtp.md",36606],da617cf5:[()=>n.e(4420).then(n.bind(n,87641)),"@site/pages/typescript/renderers/image.md",87641],e02fd229:[()=>n.e(857).then(n.bind(n,95235)),"@site/pages/typescript/components/WebView.md",95235],e17b63fd:[()=>n.e(5381).then(n.bind(n,27341)),"@site/pages/api/components/InputStream.md",27341],e1fd9655:[()=>n.e(2888).then(n.bind(n,75967)),"@site/pages/api/generated/component-WebView.md",75967],ea6d9d64:[()=>n.e(2418).then(n.bind(n,57398)),"@site/pages/api/generated/output-Mp4Output.md",57398],f14f804c:[()=>n.e(3077).then(n.bind(n,99965)),"@site/pages/guides/deliver-input.md",99965],f3168f4a:[()=>n.e(1400).then(n.bind(n,31169)),"@site/pages/api/generated/component-Tiles.md",31169],f94d6d54:[()=>n.e(33).then(n.bind(n,41674)),"@site/pages/api/generated/renderer-RtpInputStream.md",41674],fca0959c:[()=>n.e(8695).then(n.bind(n,40118)),"@site/pages/concept/web.md",40118],ffadf575:[()=>n.e(9723).then(n.bind(n,810)),"@site/pages/typescript/renderers/web.md",810]};var s=n(74848);function l(e){let{error:t,retry:n,pastDelay:r}=e;return t?(0,s.jsxs)("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%"},children:[(0,s.jsx)("p",{children:String(t)}),(0,s.jsx)("div",{children:(0,s.jsx)("button",{type:"button",onClick:n,children:"Retry"})})]}):r?(0,s.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:(0,s.jsx)("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",children:(0,s.jsxs)("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2",children:[(0,s.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,s.jsx)("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,s.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,s.jsx)("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,s.jsx)("circle",{cx:"22",cy:"22",r:"8",children:(0,s.jsx)("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"})})]})})}):null}var c=n(86921),u=n(53102);function d(e,t){if("*"===e)return a()({loading:l,loader:()=>n.e(2237).then(n.bind(n,82237)),modules:["@theme/NotFound"],webpack:()=>[82237],render(e,t){const n=e.default;return(0,s.jsx)(u.W,{value:{plugin:{name:"native",id:"default"}},children:(0,s.jsx)(n,{...t})})}});const r=o[`${e}-${t}`],d={},p=[],f=[],m=(0,c.A)(r);return Object.entries(m).forEach((e=>{let[t,n]=e;const r=i[n];r&&(d[t]=r[0],p.push(r[1]),f.push(r[2]))})),a().Map({loading:l,loader:d,modules:p,webpack:()=>f,render(t,n){const a=JSON.parse(JSON.stringify(r));Object.entries(t).forEach((t=>{let[n,r]=t;const o=r.default;if(!o)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 o&&"function"!=typeof o||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{o[e]=r[e]}));let i=a;const s=n.split(".");s.slice(0,-1).forEach((e=>{i=i[e]})),i[s[s.length-1]]=o}));const o=a.__comp;delete a.__comp;const i=a.__context;return delete a.__context,(0,s.jsx)(u.W,{value:i,children:(0,s.jsx)(o,{...a,...n})})}})}const p=[{path:"/playground",component:d("/playground","032"),exact:!0},{path:"/search",component:d("/search","67c"),exact:!0},{path:"/docs",component:d("/docs","47e"),routes:[{path:"/docs",component:d("/docs","c07"),routes:[{path:"/docs",component:d("/docs","c46"),routes:[{path:"/docs/api/components/Image",component:d("/docs/api/components/Image","a90"),exact:!0,sidebar:"sidebar"},{path:"/docs/api/components/InputStream",component:d("/docs/api/components/InputStream","be6"),exact:!0,sidebar:"sidebar"},{path:"/docs/api/components/Rescaler",component:d("/docs/api/components/Rescaler","7b3"),exact:!0,sidebar:"sidebar"},{path:"/docs/api/components/Shader",component:d("/docs/api/components/Shader","51c"),exact:!0,sidebar:"sidebar"},{path:"/docs/api/components/Text",component:d("/docs/api/components/Text","7a0"),exact:!0,sidebar:"sidebar"},{path:"/docs/api/components/Tiles",component:d("/docs/api/components/Tiles","a6b"),exact:!0,sidebar:"sidebar"},{path:"/docs/api/components/View",component:d("/docs/api/components/View","7e2"),exact:!0,sidebar:"sidebar"},{path:"/docs/api/components/WebView",component:d("/docs/api/components/WebView","144"),exact:!0,sidebar:"sidebar"},{path:"/docs/api/events",component:d("/docs/api/events","e04"),exact:!0,sidebar:"sidebar"},{path:"/docs/api/generated/component-Image",component:d("/docs/api/generated/component-Image","ebe"),exact:!0},{path:"/docs/api/generated/component-InputStream",component:d("/docs/api/generated/component-InputStream","951"),exact:!0},{path:"/docs/api/generated/component-Rescaler",component:d("/docs/api/generated/component-Rescaler","6e2"),exact:!0},{path:"/docs/api/generated/component-Shader",component:d("/docs/api/generated/component-Shader","d2a"),exact:!0},{path:"/docs/api/generated/component-Text",component:d("/docs/api/generated/component-Text","019"),exact:!0},{path:"/docs/api/generated/component-Tiles",component:d("/docs/api/generated/component-Tiles","754"),exact:!0},{path:"/docs/api/generated/component-View",component:d("/docs/api/generated/component-View","891"),exact:!0},{path:"/docs/api/generated/component-WebView",component:d("/docs/api/generated/component-WebView","5d6"),exact:!0},{path:"/docs/api/generated/output-Mp4Output",component:d("/docs/api/generated/output-Mp4Output","413"),exact:!0},{path:"/docs/api/generated/output-RtpOutputStream",component:d("/docs/api/generated/output-RtpOutputStream","e1d"),exact:!0},{path:"/docs/api/generated/renderer-DeckLink",component:d("/docs/api/generated/renderer-DeckLink","47a"),exact:!0},{path:"/docs/api/generated/renderer-Image",component:d("/docs/api/generated/renderer-Image","10f"),exact:!0},{path:"/docs/api/generated/renderer-Mp4Input",component:d("/docs/api/generated/renderer-Mp4Input","6b6"),exact:!0},{path:"/docs/api/generated/renderer-RtpInputStream",component:d("/docs/api/generated/renderer-RtpInputStream","4f1"),exact:!0},{path:"/docs/api/generated/renderer-Shader",component:d("/docs/api/generated/renderer-Shader","513"),exact:!0},{path:"/docs/api/generated/renderer-WebRenderer",component:d("/docs/api/generated/renderer-WebRenderer","41d"),exact:!0},{path:"/docs/api/inputs/decklink",component:d("/docs/api/inputs/decklink","f93"),exact:!0,sidebar:"sidebar"},{path:"/docs/api/inputs/mp4",component:d("/docs/api/inputs/mp4","4fd"),exact:!0,sidebar:"sidebar"},{path:"/docs/api/inputs/rtp",component:d("/docs/api/inputs/rtp","96d"),exact:!0,sidebar:"sidebar"},{path:"/docs/api/outputs/mp4",component:d("/docs/api/outputs/mp4","216"),exact:!0,sidebar:"sidebar"},{path:"/docs/api/outputs/rtp",component:d("/docs/api/outputs/rtp","361"),exact:!0,sidebar:"sidebar"},{path:"/docs/api/renderers/image",component:d("/docs/api/renderers/image","6db"),exact:!0,sidebar:"sidebar"},{path:"/docs/api/renderers/shader",component:d("/docs/api/renderers/shader","d79"),exact:!0,sidebar:"sidebar"},{path:"/docs/api/renderers/web",component:d("/docs/api/renderers/web","180"),exact:!0,sidebar:"sidebar"},{path:"/docs/api/routes",component:d("/docs/api/routes","8bc"),exact:!0,sidebar:"sidebar"},{path:"/docs/category/guides",component:d("/docs/category/guides","83c"),exact:!0,sidebar:"sidebar"},{path:"/docs/category/http-api-reference",component:d("/docs/category/http-api-reference","f1e"),exact:!0,sidebar:"sidebar"},{path:"/docs/common/absolute-position",component:d("/docs/common/absolute-position","bb9"),exact:!0},{path:"/docs/concept/component",component:d("/docs/concept/component","769"),exact:!0,sidebar:"sidebar"},{path:"/docs/concept/layouts",component:d("/docs/concept/layouts","17c"),exact:!0,sidebar:"sidebar"},{path:"/docs/concept/overview",component:d("/docs/concept/overview","412"),exact:!0,sidebar:"sidebar"},{path:"/docs/concept/shaders",component:d("/docs/concept/shaders","97d"),exact:!0,sidebar:"sidebar"},{path:"/docs/concept/web",component:d("/docs/concept/web","0fd"),exact:!0,sidebar:"sidebar"},{path:"/docs/deployment/aws-ec2",component:d("/docs/deployment/aws-ec2","9c3"),exact:!0,sidebar:"sidebar"},{path:"/docs/deployment/configuration",component:d("/docs/deployment/configuration","b25"),exact:!0,sidebar:"sidebar"},{path:"/docs/deployment/overview",component:d("/docs/deployment/overview","9bf"),exact:!0,sidebar:"sidebar"},{path:"/docs/deployment/requirements",component:d("/docs/deployment/requirements","758"),exact:!0,sidebar:"sidebar"},{path:"/docs/guides/basic-layouts",component:d("/docs/guides/basic-layouts","3cd"),exact:!0,sidebar:"sidebar"},{path:"/docs/guides/deliver-input",component:d("/docs/guides/deliver-input","5fb"),exact:!0,sidebar:"sidebar"},{path:"/docs/guides/quick-start",component:d("/docs/guides/quick-start","b1a"),exact:!0,sidebar:"sidebar"},{path:"/docs/guides/receive-output",component:d("/docs/guides/receive-output","bee"),exact:!0,sidebar:"sidebar"},{path:"/docs/guides/view-transition",component:d("/docs/guides/view-transition","e35"),exact:!0,sidebar:"sidebar"},{path:"/docs/intro",component:d("/docs/intro","f59"),exact:!0,sidebar:"sidebar"},{path:"/docs/typescript/api",component:d("/docs/typescript/api","2ae"),exact:!0,sidebar:"sidebar"},{path:"/docs/typescript/components/Image",component:d("/docs/typescript/components/Image","6bd"),exact:!0,sidebar:"sidebar"},{path:"/docs/typescript/components/InputStream",component:d("/docs/typescript/components/InputStream","5dd"),exact:!0,sidebar:"sidebar"},{path:"/docs/typescript/components/Rescaler",component:d("/docs/typescript/components/Rescaler","abf"),exact:!0,sidebar:"sidebar"},{path:"/docs/typescript/components/Shader",component:d("/docs/typescript/components/Shader","b86"),exact:!0,sidebar:"sidebar"},{path:"/docs/typescript/components/Text",component:d("/docs/typescript/components/Text","6ce"),exact:!0,sidebar:"sidebar"},{path:"/docs/typescript/components/Tiles",component:d("/docs/typescript/components/Tiles","d14"),exact:!0,sidebar:"sidebar"},{path:"/docs/typescript/components/View",component:d("/docs/typescript/components/View","478"),exact:!0,sidebar:"sidebar"},{path:"/docs/typescript/components/WebView",component:d("/docs/typescript/components/WebView","2ed"),exact:!0,sidebar:"sidebar"},{path:"/docs/typescript/hooks",component:d("/docs/typescript/hooks","529"),exact:!0,sidebar:"sidebar"},{path:"/docs/typescript/inputs/mp4",component:d("/docs/typescript/inputs/mp4","801"),exact:!0,sidebar:"sidebar"},{path:"/docs/typescript/inputs/rtp",component:d("/docs/typescript/inputs/rtp","b84"),exact:!0,sidebar:"sidebar"},{path:"/docs/typescript/outputs/mp4",component:d("/docs/typescript/outputs/mp4","35d"),exact:!0,sidebar:"sidebar"},{path:"/docs/typescript/outputs/rtp",component:d("/docs/typescript/outputs/rtp","038"),exact:!0,sidebar:"sidebar"},{path:"/docs/typescript/renderers/image",component:d("/docs/typescript/renderers/image","abb"),exact:!0,sidebar:"sidebar"},{path:"/docs/typescript/renderers/shader",component:d("/docs/typescript/renderers/shader","a48"),exact:!0,sidebar:"sidebar"},{path:"/docs/typescript/renderers/web",component:d("/docs/typescript/renderers/web","3fa"),exact:!0,sidebar:"sidebar"}]}]}]},{path:"/",component:d("/","a84"),exact:!0},{path:"*",component:d("*")}]},6125:(e,t,n)=>{"use strict";n.d(t,{o:()=>o,x:()=>i});var r=n(96540),a=n(74848);const o=r.createContext(!1);function i(e){let{children:t}=e;const[n,i]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{i(!0)}),[]),(0,a.jsx)(o.Provider,{value:n,children:t})}},38536:(e,t,n)=>{"use strict";var r=n(96540),a=n(5338),o=n(54625),i=n(80545),s=n(38193);const l=[n(31911),n(10119),n(26134),n(76294),n(51043)];var c=n(35947),u=n(56347),d=n(22831),p=n(74848);function f(e){let{children:t}=e;return(0,p.jsx)(p.Fragment,{children:t})}var m=n(5260),h=n(44586),g=n(86025),b=n(6342),y=n(69024),v=n(32131),w=n(14090),k=n(2967),x=n(70440),S=n(41463);function E(){const{i18n:{currentLocale:e,defaultLocale:t,localeConfigs:n}}=(0,h.A)(),r=(0,v.o)(),a=n[e].htmlLang,o=e=>e.replace("-","_");return(0,p.jsxs)(m.A,{children:[Object.entries(n).map((e=>{let[t,{htmlLang:n}]=e;return(0,p.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:n},t)})),(0,p.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:"x-default"}),(0,p.jsx)("meta",{property:"og:locale",content:o(a)}),Object.values(n).filter((e=>a!==e.htmlLang)).map((e=>(0,p.jsx)("meta",{property:"og:locale:alternate",content:o(e.htmlLang)},`meta-og-${e.htmlLang}`)))]})}function _(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,h.A)(),r=function(){const{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,h.A)(),{pathname:r}=(0,u.zy)();return e+(0,x.applyTrailingSlash)((0,g.A)(r),{trailingSlash:n,baseUrl:t})}(),a=t?`${n}${t}`:r;return(0,p.jsxs)(m.A,{children:[(0,p.jsx)("meta",{property:"og:url",content:a}),(0,p.jsx)("link",{rel:"canonical",href:a})]})}function T(){const{i18n:{currentLocale:e}}=(0,h.A)(),{metadata:t,image:n}=(0,b.p)();return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)(m.A,{children:[(0,p.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,p.jsx)("body",{className:w.w})]}),n&&(0,p.jsx)(y.be,{image:n}),(0,p.jsx)(_,{}),(0,p.jsx)(E,{}),(0,p.jsx)(S.A,{tag:k.Cy,locale:e}),(0,p.jsx)(m.A,{children:t.map(((e,t)=>(0,p.jsx)("meta",{...e},t)))})]})}const C=new Map;function A(e){if(C.has(e.pathname))return{...e,pathname:C.get(e.pathname)};if((0,d.u)(c.A,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 N=n(6125),L=n(26988),R=n(205);function O(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r{const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>a.forEach((e=>e?.()))}const P=function(e){let{children:t,location:n,previousLocation:r}=e;return(0,R.A)((()=>{r!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,a=t.hash===n.hash,o=t.search===n.search;if(r&&a&&!o)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:r}),O("onRouteDidUpdate",{previousLocation:r,location:n}))}),[r,n]),t};function I(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.u)(c.A,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class j extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=s.A.canUseDOM?O("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=O("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),I(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(0,p.jsx)(P,{previousLocation:this.previousLocation,location:t,children:(0,p.jsx)(u.qh,{location:t,render:()=>e})})}}const M=j,D="__docusaurus-base-url-issue-banner-container",F="__docusaurus-base-url-issue-banner",B="__docusaurus-base-url-issue-banner-suggestion-container";function z(e){return`\ndocument.addEventListener('DOMContentLoaded', function maybeInsertBanner() {\n var shouldInsert = typeof window['docusaurus'] === 'undefined';\n shouldInsert && insertBanner();\n});\n\nfunction insertBanner() {\n var bannerContainer = document.createElement('div');\n bannerContainer.id = '${D}';\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(/{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();const a=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;a?.appendChild(r)}))}: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 Q=n(86921);const Z=new Set,X=new Set,J=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,ee={prefetch(e){if(!(e=>!J()&&!X.has(e)&&!Z.has(e))(e))return!1;Z.add(e);const t=(0,d.u)(c.A,e).flatMap((e=>{return t=e.route.path,Object.entries(K).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,Q.A)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?Y(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!J()&&!X.has(e))(e)&&(X.add(e),I(e))},te=Object.freeze(ee),ne=Boolean(!0);if(s.A.canUseDOM){window.docusaurus=te;const e=document.getElementById("__docusaurus"),t=(0,p.jsx)(i.vd,{children:(0,p.jsx)(o.Kd,{children:(0,p.jsx)(q,{})})}),n=(e,t)=>{console.error("Docusaurus React Root onRecoverableError:",e,t)},s=()=>{if(ne)r.startTransition((()=>{a.hydrateRoot(e,t,{onRecoverableError:n})}));else{const o=a.createRoot(e,{onRecoverableError:n});r.startTransition((()=>{o.render(t)}))}};I(window.location.pathname).then(s)}},26988:(e,t,n)=>{"use strict";n.d(t,{o:()=>d,l:()=>p});var r=n(96540),a=n(4784);const o=JSON.parse('{"copy-type-files-plugin":{"default":{"pathsToTypeFiles":["/playground-types/live-compositor/api.d.ts","/playground-types/live-compositor/api.generated.d.ts","/playground-types/live-compositor/component.d.ts","/playground-types/live-compositor/components/Image.d.ts","/playground-types/live-compositor/components/InputStream.d.ts","/playground-types/live-compositor/components/Rescaler.d.ts","/playground-types/live-compositor/components/Shader.d.ts","/playground-types/live-compositor/components/Text.d.ts","/playground-types/live-compositor/components/Tiles.d.ts","/playground-types/live-compositor/components/View.d.ts","/playground-types/live-compositor/components/WebView.d.ts","/playground-types/live-compositor/components/common.d.ts","/playground-types/live-compositor/index.d.ts","/playground-types/live-compositor/types/registerInput.d.ts","/playground-types/live-compositor/types/registerOutput.d.ts","/playground-types/react/index.d.ts"]}},"docusaurus-plugin-google-gtag":{"default":{"trackingID":["G-SEF91C2QGB"],"anonymizeIP":true,"id":"default"}},"docusaurus-plugin-content-docs":{"default":{"path":"/docs","versions":[{"name":"current","label":"Next","isLast":true,"path":"/docs","mainDocId":"intro","docs":[{"id":"api/components/Image","path":"/docs/api/components/Image","sidebar":"sidebar"},{"id":"api/components/InputStream","path":"/docs/api/components/InputStream","sidebar":"sidebar"},{"id":"api/components/Rescaler","path":"/docs/api/components/Rescaler","sidebar":"sidebar"},{"id":"api/components/Shader","path":"/docs/api/components/Shader","sidebar":"sidebar"},{"id":"api/components/Text","path":"/docs/api/components/Text","sidebar":"sidebar"},{"id":"api/components/Tiles","path":"/docs/api/components/Tiles","sidebar":"sidebar"},{"id":"api/components/View","path":"/docs/api/components/View","sidebar":"sidebar"},{"id":"api/components/WebView","path":"/docs/api/components/WebView","sidebar":"sidebar"},{"id":"api/events","path":"/docs/api/events","sidebar":"sidebar"},{"id":"api/generated/component-Image","path":"/docs/api/generated/component-Image"},{"id":"api/generated/component-InputStream","path":"/docs/api/generated/component-InputStream"},{"id":"api/generated/component-Rescaler","path":"/docs/api/generated/component-Rescaler"},{"id":"api/generated/component-Shader","path":"/docs/api/generated/component-Shader"},{"id":"api/generated/component-Text","path":"/docs/api/generated/component-Text"},{"id":"api/generated/component-Tiles","path":"/docs/api/generated/component-Tiles"},{"id":"api/generated/component-View","path":"/docs/api/generated/component-View"},{"id":"api/generated/component-WebView","path":"/docs/api/generated/component-WebView"},{"id":"api/generated/output-Mp4Output","path":"/docs/api/generated/output-Mp4Output"},{"id":"api/generated/output-RtpOutputStream","path":"/docs/api/generated/output-RtpOutputStream"},{"id":"api/generated/renderer-DeckLink","path":"/docs/api/generated/renderer-DeckLink"},{"id":"api/generated/renderer-Image","path":"/docs/api/generated/renderer-Image"},{"id":"api/generated/renderer-Mp4Input","path":"/docs/api/generated/renderer-Mp4Input"},{"id":"api/generated/renderer-RtpInputStream","path":"/docs/api/generated/renderer-RtpInputStream"},{"id":"api/generated/renderer-Shader","path":"/docs/api/generated/renderer-Shader"},{"id":"api/generated/renderer-WebRenderer","path":"/docs/api/generated/renderer-WebRenderer"},{"id":"api/inputs/decklink","path":"/docs/api/inputs/decklink","sidebar":"sidebar"},{"id":"api/inputs/mp4","path":"/docs/api/inputs/mp4","sidebar":"sidebar"},{"id":"api/inputs/rtp","path":"/docs/api/inputs/rtp","sidebar":"sidebar"},{"id":"api/outputs/mp4","path":"/docs/api/outputs/mp4","sidebar":"sidebar"},{"id":"api/outputs/rtp","path":"/docs/api/outputs/rtp","sidebar":"sidebar"},{"id":"api/renderers/image","path":"/docs/api/renderers/image","sidebar":"sidebar"},{"id":"api/renderers/shader","path":"/docs/api/renderers/shader","sidebar":"sidebar"},{"id":"api/renderers/web","path":"/docs/api/renderers/web","sidebar":"sidebar"},{"id":"api/routes","path":"/docs/api/routes","sidebar":"sidebar"},{"id":"common/absolute-position","path":"/docs/common/absolute-position"},{"id":"concept/component","path":"/docs/concept/component","sidebar":"sidebar"},{"id":"concept/layouts","path":"/docs/concept/layouts","sidebar":"sidebar"},{"id":"concept/overview","path":"/docs/concept/overview","sidebar":"sidebar"},{"id":"concept/shaders","path":"/docs/concept/shaders","sidebar":"sidebar"},{"id":"concept/web","path":"/docs/concept/web","sidebar":"sidebar"},{"id":"deployment/aws-ec2","path":"/docs/deployment/aws-ec2","sidebar":"sidebar"},{"id":"deployment/configuration","path":"/docs/deployment/configuration","sidebar":"sidebar"},{"id":"deployment/overview","path":"/docs/deployment/overview","sidebar":"sidebar"},{"id":"deployment/requirements","path":"/docs/deployment/requirements","sidebar":"sidebar"},{"id":"guides/basic-layouts","path":"/docs/guides/basic-layouts","sidebar":"sidebar"},{"id":"guides/deliver-input","path":"/docs/guides/deliver-input","sidebar":"sidebar"},{"id":"guides/quick-start","path":"/docs/guides/quick-start","sidebar":"sidebar"},{"id":"guides/receive-output","path":"/docs/guides/receive-output","sidebar":"sidebar"},{"id":"guides/view-transition","path":"/docs/guides/view-transition","sidebar":"sidebar"},{"id":"intro","path":"/docs/intro","sidebar":"sidebar"},{"id":"typescript/api","path":"/docs/typescript/api","sidebar":"sidebar"},{"id":"typescript/components/Image","path":"/docs/typescript/components/Image","sidebar":"sidebar"},{"id":"typescript/components/InputStream","path":"/docs/typescript/components/InputStream","sidebar":"sidebar"},{"id":"typescript/components/Rescaler","path":"/docs/typescript/components/Rescaler","sidebar":"sidebar"},{"id":"typescript/components/Shader","path":"/docs/typescript/components/Shader","sidebar":"sidebar"},{"id":"typescript/components/Text","path":"/docs/typescript/components/Text","sidebar":"sidebar"},{"id":"typescript/components/Tiles","path":"/docs/typescript/components/Tiles","sidebar":"sidebar"},{"id":"typescript/components/View","path":"/docs/typescript/components/View","sidebar":"sidebar"},{"id":"typescript/components/WebView","path":"/docs/typescript/components/WebView","sidebar":"sidebar"},{"id":"typescript/hooks","path":"/docs/typescript/hooks","sidebar":"sidebar"},{"id":"typescript/inputs/mp4","path":"/docs/typescript/inputs/mp4","sidebar":"sidebar"},{"id":"typescript/inputs/rtp","path":"/docs/typescript/inputs/rtp","sidebar":"sidebar"},{"id":"typescript/outputs/mp4","path":"/docs/typescript/outputs/mp4","sidebar":"sidebar"},{"id":"typescript/outputs/rtp","path":"/docs/typescript/outputs/rtp","sidebar":"sidebar"},{"id":"typescript/renderers/image","path":"/docs/typescript/renderers/image","sidebar":"sidebar"},{"id":"typescript/renderers/shader","path":"/docs/typescript/renderers/shader","sidebar":"sidebar"},{"id":"typescript/renderers/web","path":"/docs/typescript/renderers/web","sidebar":"sidebar"},{"id":"/category/guides","path":"/docs/category/guides","sidebar":"sidebar"},{"id":"/category/http-api-reference","path":"/docs/category/http-api-reference","sidebar":"sidebar"}],"draftIds":[],"sidebars":{"sidebar":{"link":{"path":"/docs/intro","label":"Getting started"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var s=n(22654);const l=JSON.parse('{"docusaurusVersion":"3.1.1","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"3.1.1"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"3.1.1"},"docusaurus-plugin-google-gtag":{"type":"package","name":"@docusaurus/plugin-google-gtag","version":"3.1.1"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"3.1.1"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"3.1.1"},"docusaurus-theme-search-algolia":{"type":"package","name":"@docusaurus/theme-search-algolia","version":"3.1.1"},"docusaurus-plugin-client-redirects":{"type":"package","name":"@docusaurus/plugin-client-redirects","version":"3.1.1"},"tailwind-plugin":{"type":"local"},"copy-type-files-plugin":{"type":"local"}}}');var c=n(74848);const u={siteConfig:a.default,siteMetadata:l,globalData:o,i18n:i,codeTranslations:s},d=r.createContext(u);function p(e){let{children:t}=e;return(0,c.jsx)(d.Provider,{value:u,children:t})}},67489:(e,t,n)=>{"use strict";n.d(t,{A:()=>f});var r=n(96540),a=n(38193),o=n(5260),i=n(70440),s=n(79201),l=n(74848);function c(e){let{error:t,tryAgain:n}=e;return(0,l.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"},children:[(0,l.jsx)("h1",{style:{fontSize:"3rem"},children:"This page crashed"}),(0,l.jsx)("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"},children:"Try again"}),(0,l.jsx)(u,{error:t})]})}function u(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,l.jsx)("p",{style:{whiteSpace:"pre-wrap"},children:n})}function d(e){let{error:t,tryAgain:n}=e;return(0,l.jsxs)(f,{fallback:()=>(0,l.jsx)(c,{error:t,tryAgain:n}),children:[(0,l.jsx)(o.A,{children:(0,l.jsx)("title",{children:"Page Error"})}),(0,l.jsx)(s.A,{children:(0,l.jsx)(c,{error:t,tryAgain:n})})]})}const p=e=>(0,l.jsx)(d,{...e});class f extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){a.A.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??p)(e)}return e??null}}},38193:(e,t,n)=>{"use strict";n.d(t,{A:()=>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}},5260:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});n(96540);var r=n(80545),a=n(74848);function o(e){return(0,a.jsx)(r.mg,{...e})}},28774:(e,t,n)=>{"use strict";n.d(t,{A:()=>f});var r=n(96540),a=n(54625),o=n(70440),i=n(44586),s=n(16654),l=n(38193),c=n(63427),u=n(86025),d=n(74848);function p(e,t){let{isNavLink:n,to:p,href:f,activeClassName:m,isActive:h,"data-noBrokenLinkCheck":g,autoAddBaseUrl:b=!0,...y}=e;const{siteConfig:{trailingSlash:v,baseUrl:w}}=(0,i.A)(),{withBaseUrl:k}=(0,u.h)(),x=(0,c.A)(),S=(0,r.useRef)(null);(0,r.useImperativeHandle)(t,(()=>S.current));const E=p||f;const _=(0,s.A)(E),T=E?.replace("pathname://","");let C=void 0!==T?(A=T,b&&(e=>e.startsWith("/"))(A)?k(A):A):void 0;var A;C&&_&&(C=(0,o.applyTrailingSlash)(C,{trailingSlash:v,baseUrl:w}));const N=(0,r.useRef)(!1),L=n?a.k2:a.N_,R=l.A.canUseIntersectionObserver,O=(0,r.useRef)(),P=()=>{N.current||null==C||(window.docusaurus.preload(C),N.current=!0)};(0,r.useEffect)((()=>(!R&&_&&null!=C&&window.docusaurus.prefetch(C),()=>{R&&O.current&&O.current.disconnect()})),[O,C,R,_]);const I=C?.startsWith("#")??!1,j=!y.target||"_self"===y.target,M=!C||!_||!j||I;return g||!I&&M||x.collectLink(C),y.id&&x.collectAnchor(y.id),M?(0,d.jsx)("a",{ref:S,href:C,...E&&!_&&{target:"_blank",rel:"noopener noreferrer"},...y}):(0,d.jsx)(L,{...y,onMouseEnter:P,onTouchStart:P,innerRef:e=>{S.current=e,R&&e&&_&&(O.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(O.current.unobserve(e),O.current.disconnect(),null!=C&&window.docusaurus.prefetch(C))}))})),O.current.observe(e))},to:C,...n&&{isActive:h,activeClassName:m}})}const f=r.forwardRef(p)},21312:(e,t,n)=>{"use strict";n.d(t,{A:()=>c,T:()=>l});var r=n(96540),a=n(74848);function o(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=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(22654);function s(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 o(s({message:n,id:r}),t)}function c(e){let{children:t,id:n,values:r}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal children",t),new Error("The Docusaurus component only accept simple string values");const i=s({message:t,id:n});return(0,a.jsx)(a.Fragment,{children:o(i,r)})}},17065:(e,t,n)=>{"use strict";n.d(t,{W:()=>r});const r="default"},16654:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{A:()=>a,z:()=>r})},86025:(e,t,n)=>{"use strict";n.d(t,{A:()=>s,h:()=>i});var r=n(96540),a=n(44586),o=n(16654);function i(){const{siteConfig:{baseUrl:e,url:t}}=(0,a.A)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:a=!1,absolute:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,o.z)(n))return n;if(a)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const s=n.startsWith(t)?n:t+n.replace(/^\//,"");return i?e+s:s}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function s(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},63427:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(96540);n(74848);const a=r.createContext({collectAnchor:()=>{},collectLink:()=>{}}),o=()=>(0,r.useContext)(a);function i(){return o()}},44586:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(96540),a=n(26988);function o(){return(0,r.useContext)(a.o)}},66588:(e,t,n)=>{"use strict";n.d(t,{P_:()=>i,kh:()=>o});var r=n(44586),a=n(17065);function o(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,r.A)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}function i(e,t,n){void 0===t&&(t=a.W),void 0===n&&(n={});const r=o(e),i=r?.[t];if(!i&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return i}},92303:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(96540),a=n(6125);function o(){return(0,r.useContext)(a.o)}},205:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(96540);const a=n(38193).A.canUseDOM?r.useLayoutEffect:r.useEffect},86921:(e,t,n)=>{"use strict";n.d(t,{A:()=>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[o,i]=n;const s=a?`${a}.${o}`:o;r(i)?e(i,s):t[s]=i}))}(e),t}},53102:(e,t,n)=>{"use strict";n.d(t,{W:()=>i,o:()=>o});var r=n(96540),a=n(74848);const o=r.createContext(null);function i(e){let{children:t,value:n}=e;const i=r.useContext(o),s=(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,...n?.data};return{plugin:t.plugin,data:r}}({parent:i,value:n})),[i,n]);return(0,a.jsx)(o.Provider,{value:s,children:t})}},48295:(e,t,n)=>{"use strict";n.d(t,{zK:()=>h,vT:()=>d,gk:()=>p,Gy:()=>c,HW:()=>g,ht:()=>u,r7:()=>m,jh:()=>f});var r=n(56347),a=n(66588);const o=e=>e.versions.find((e=>e.isLast));function i(e,t){const n=o(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.B6)(t,{path:e.path,exact:!1,strict:!1})))}function s(e,t){const n=i(e,t),a=n?.docs.find((e=>!!(0,r.B6)(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 l={},c=()=>(0,a.kh)("docusaurus-plugin-content-docs")??l,u=e=>(0,a.P_)("docusaurus-plugin-content-docs",e,{failfast:!0});function d(e){void 0===e&&(e={});const t=c(),{pathname:n}=(0,r.zy)();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.B6)(t,{path:n.path,exact:!1,strict:!1})})),o=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!o&&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 o}(t,n,e)}function p(e){void 0===e&&(e={});const t=d(e),{pathname:n}=(0,r.zy)();if(!t)return;return{activePlugin:t,activeVersion:i(t.pluginData,n)}}function f(e){return u(e).versions}function m(e){const t=u(e);return o(t)}function h(e){const t=u(e),{pathname:n}=(0,r.zy)();return s(t,n)}function g(e){const t=u(e),{pathname:n}=(0,r.zy)();return function(e,t){const n=o(e);return{latestDocSuggestion:s(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},31911:(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||setTimeout((()=>{window.gtag("set","page_path",t.pathname+t.search+t.hash),window.gtag("event","page_view")}))}}},76294:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n(5947),a=n.n(r);a().configure({showSpinner:!1});const o={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()}}},26134:(e,t,n)=>{"use strict";var r=n(78181),a=n(4784);!function(e){const{themeConfig:{prism:t}}=a.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{"php"===e&&n(19700),n(47003)(`./prism-${e}`)})),delete globalThis.Prism}(r.My)},51107:(e,t,n)=>{"use strict";n.d(t,{A:()=>u});n(96540);var r=n(18215),a=n(21312),o=n(6342),i=n(28774),s=n(63427);const l={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};var c=n(74848);function u(e){let{as:t,id:n,...u}=e;const d=(0,s.A)(),{navbar:{hideOnScroll:p}}=(0,o.p)();if("h1"===t||!n)return(0,c.jsx)(t,{...u,id:void 0});d.collectAnchor(n);const f=(0,a.T)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof u.children?u.children:n});return(0,c.jsxs)(t,{...u,className:(0,r.A)("anchor",p?l.anchorWithHideOnScrollNavbar:l.anchorWithStickyNavbar,u.className),id:n,children:[u.children,(0,c.jsx)(i.A,{className:"hash-link",to:`#${n}`,"aria-label":f,title:f,children:"\u200b"})]})}},43186:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});n(96540);const r={iconExternalLink:"iconExternalLink_nPIU"};var a=n(74848);function o(e){let{width:t=13.5,height:n=13.5}=e;return(0,a.jsx)("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:r.iconExternalLink,children:(0,a.jsx)("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"})})}},79201:(e,t,n)=>{"use strict";n.d(t,{A:()=>Pt});var r=n(96540),a=n(18215),o=n(67489),i=n(69024),s=n(56347),l=n(21312),c=n(75062),u=n(74848);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.W6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&p(t)}),[]);return(0,c.$)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&p(e.current)})),{containerRef:e,onClick:n}}const m=(0,l.T)({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:r}=f();return(0,u.jsx)("div",{ref:n,role:"region","aria-label":m,children:(0,u.jsx)("a",{...e,href:`#${d}`,onClick:r,children:t})})}var g=n(17559),b=n(14090);const y={skipToContent:"skipToContent_fXgn"};function v(){return(0,u.jsx)(h,{className:y.skipToContent})}var w=n(6342),k=n(65041);function x(e){let{width:t=21,height:n=21,color:r="currentColor",strokeWidth:a=1.2,className:o,...i}=e;return(0,u.jsx)("svg",{viewBox:"0 0 15 15",width:t,height:n,...i,children:(0,u.jsx)("g",{stroke:r,strokeWidth:a,children:(0,u.jsx)("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})})})}const S={closeButton:"closeButton_CVFx"};function E(e){return(0,u.jsx)("button",{type:"button","aria-label":(0,l.T)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"}),...e,className:(0,a.A)("clean-btn close",S.closeButton,e.className),children:(0,u.jsx)(x,{width:14,height:14,strokeWidth:3.1})})}const _={content:"content_knG7"};function T(e){const{announcementBar:t}=(0,w.p)(),{content:n}=t;return(0,u.jsx)("div",{...e,className:(0,a.A)(_.content,e.className),dangerouslySetInnerHTML:{__html:n}})}const C={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function A(){const{announcementBar:e}=(0,w.p)(),{isActive:t,close:n}=(0,k.Mj)();if(!t)return null;const{backgroundColor:r,textColor:a,isCloseable:o}=e;return(0,u.jsxs)("div",{className:C.announcementBar,style:{backgroundColor:r,color:a},role:"banner",children:[o&&(0,u.jsx)("div",{className:C.announcementBarPlaceholder}),(0,u.jsx)(T,{className:C.announcementBarContent}),o&&(0,u.jsx)(E,{onClick:n,className:C.announcementBarClose})]})}var N=n(22069),L=n(23104);var R=n(89532),O=n(75600);const P=r.createContext(null);function I(e){let{children:t}=e;const n=function(){const e=(0,N.M)(),t=(0,O.YL)(),[n,a]=(0,r.useState)(!1),o=null!==t.component,i=(0,R.ZC)(o);return(0,r.useEffect)((()=>{o&&!i&&a(!0)}),[o,i]),(0,r.useEffect)((()=>{o?e.shown||a(!0):a(!1)}),[e.shown,o]),(0,r.useMemo)((()=>[n,a]),[n])}();return(0,u.jsx)(P.Provider,{value:n,children:t})}function j(e){if(e.component){const t=e.component;return(0,u.jsx)(t,{...e.props})}}function M(){const e=(0,r.useContext)(P);if(!e)throw new R.dV("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,a=(0,r.useCallback)((()=>n(!1)),[n]),o=(0,O.YL)();return(0,r.useMemo)((()=>({shown:t,hide:a,content:j(o)})),[a,o,t])}function D(e){let{header:t,primaryMenu:n,secondaryMenu:r}=e;const{shown:o}=M();return(0,u.jsxs)("div",{className:"navbar-sidebar",children:[t,(0,u.jsxs)("div",{className:(0,a.A)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":o}),children:[(0,u.jsx)("div",{className:"navbar-sidebar__item menu",children:n}),(0,u.jsx)("div",{className:"navbar-sidebar__item menu",children:r})]})]})}var F=n(95293),B=n(92303);function z(e){return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,u.jsx)("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(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,u.jsx)("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 V(e){let{className:t,buttonClassName:n,value:r,onChange:o}=e;const i=(0,B.A)(),s=(0,l.T)({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"===r?(0,l.T)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,l.T)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return(0,u.jsx)("div",{className:(0,a.A)(U.toggle,t),children:(0,u.jsxs)("button",{className:(0,a.A)("clean-btn",U.toggleButton,!i&&U.toggleButtonDisabled,n),type:"button",onClick:()=>o("dark"===r?"light":"dark"),disabled:!i,title:s,"aria-label":s,"aria-live":"polite",children:[(0,u.jsx)(z,{className:(0,a.A)(U.toggleIcon,U.lightToggleIcon)}),(0,u.jsx)($,{className:(0,a.A)(U.toggleIcon,U.darkToggleIcon)})]})})}const H=r.memo(V),W={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function G(e){let{className:t}=e;const n=(0,w.p)().navbar.style,r=(0,w.p)().colorMode.disableSwitch,{colorMode:a,setColorMode:o}=(0,F.G)();return r?null:(0,u.jsx)(H,{className:t,buttonClassName:"dark"===n?W.darkNavbarColorModeToggle:void 0,value:a,onChange:o})}var q=n(23465);function K(){return(0,u.jsx)(q.A,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function Y(){const e=(0,N.M)();return(0,u.jsx)("button",{type:"button","aria-label":(0,l.T)({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(),children:(0,u.jsx)(x,{color:"var(--ifm-color-emphasis-600)"})})}function Q(){return(0,u.jsxs)("div",{className:"navbar-sidebar__brand",children:[(0,u.jsx)(K,{}),(0,u.jsx)(G,{className:"margin-right--md"}),(0,u.jsx)(Y,{})]})}var Z=n(28774),X=n(86025),J=n(16654),ee=n(91252),te=n(43186);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:r,href:a,label:o,html:i,isDropdownLink:s,prependBaseUrlToHref:l,...c}=e;const d=(0,X.A)(r),p=(0,X.A)(t),f=(0,X.A)(a,{forcePrependBaseUrl:!0}),m=o&&a&&!(0,J.A)(a),h=i?{dangerouslySetInnerHTML:{__html:i}}:{children:(0,u.jsxs)(u.Fragment,{children:[o,m&&(0,u.jsx)(te.A,{...s&&{width:12,height:12}})]})};return a?(0,u.jsx)(Z.A,{href:l?f:a,...c,...h}):(0,u.jsx)(Z.A,{to:d,isNavLink:!0,...(t||n)&&{isActive:(e,t)=>n?(0,ee.G)(n,t.pathname):t.pathname.startsWith(p)},...c,...h})}function re(e){let{className:t,isDropdownItem:n=!1,...r}=e;const o=(0,u.jsx)(ne,{className:(0,a.A)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n,...r});return n?(0,u.jsx)("li",{children:o}):o}function ae(e){let{className:t,isDropdownItem:n,...r}=e;return(0,u.jsx)("li",{className:"menu__list-item",children:(0,u.jsx)(ne,{className:(0,a.A)("menu__link",t),...r})})}function oe(e){let{mobile:t=!1,position:n,...r}=e;const a=t?ae:re;return(0,u.jsx)(a,{...r,activeClassName:r.activeClassName??(t?"menu__link--active":"navbar__link--active")})}var ie=n(41422),se=n(99169),le=n(44586);const ce={dropdownNavbarItemMobile:"dropdownNavbarItemMobile_S0Fm"};function ue(e,t){return e.some((e=>function(e,t){return!!(0,se.ys)(e.to,t)||!!(0,ee.G)(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function de(e){let{items:t,position:n,className:o,onClick:i,...s}=e;const l=(0,r.useRef)(null),[c,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{l.current&&!l.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)}}),[l]),(0,u.jsxs)("div",{ref:l,className:(0,a.A)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":c}),children:[(0,u.jsx)(ne,{"aria-haspopup":"true","aria-expanded":c,role:"button",href:s.to?void 0:"#",className:(0,a.A)("navbar__link",o),...s,onClick:s.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!c))},children:s.children??s.label}),(0,u.jsx)("ul",{className:"dropdown__menu",children:t.map(((e,t)=>(0,r.createElement)(We,{isDropdownItem:!0,activeClassName:"dropdown__link--active",...e,key:t})))})]})}function pe(e){let{items:t,className:n,position:o,onClick:i,...l}=e;const c=function(){const{siteConfig:{baseUrl:e}}=(0,le.A)(),{pathname:t}=(0,s.zy)();return t.replace(e,"/")}(),d=ue(t,c),{collapsed:p,toggleCollapsed:f,setCollapsed:m}=(0,ie.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&m(!d)}),[c,d,m]),(0,u.jsxs)("li",{className:(0,a.A)("menu__list-item",{"menu__list-item--collapsed":p}),children:[(0,u.jsx)(ne,{role:"button",className:(0,a.A)(ce.dropdownNavbarItemMobile,"menu__link menu__link--sublist menu__link--sublist-caret",n),...l,onClick:e=>{e.preventDefault(),f()},children:l.children??l.label}),(0,u.jsx)(ie.N,{lazy:!0,as:"ul",className:"menu__list",collapsed:p,children:t.map(((e,t)=>(0,r.createElement)(We,{mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active",...e,key:t})))})]})}function fe(e){let{mobile:t=!1,...n}=e;const r=t?pe:de;return(0,u.jsx)(r,{...n})}var me=n(32131);function he(e){let{width:t=20,height:n=20,...r}=e;return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0,...r,children:(0,u.jsx)("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 ge="iconLanguage_nlXk";var be=n(40961);function ye(){return r.createElement("svg",{width:"15",height:"15",className:"DocSearch-Control-Key-Icon"},r.createElement("path",{d:"M4.505 4.496h2M5.505 5.496v5M8.216 4.496l.055 5.993M10 7.5c.333.333.5.667.5 1v2M12.326 4.5v5.996M8.384 4.496c1.674 0 2.116 0 2.116 1.5s-.442 1.5-2.116 1.5M3.205 9.303c-.09.448-.277 1.21-1.241 1.203C1 10.5.5 9.513.5 8V7c0-1.57.5-2.5 1.464-2.494.964.006 1.134.598 1.24 1.342M12.553 10.5h1.953",strokeWidth:"1.2",stroke:"currentColor",fill:"none",strokeLinecap:"square"}))}var ve=n(89188),we=["translations"];function ke(){return ke=Object.assign||function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var _e="Ctrl";var Te=r.forwardRef((function(e,t){var n=e.translations,a=void 0===n?{}:n,o=Ee(e,we),i=a.buttonText,s=void 0===i?"Search":i,l=a.buttonAriaLabel,c=void 0===l?"Search":l,u=xe((0,r.useState)(null),2),d=u[0],p=u[1];return(0,r.useEffect)((function(){"undefined"!=typeof navigator&&(/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?p("\u2318"):p(_e))}),[]),r.createElement("button",ke({type:"button",className:"DocSearch DocSearch-Button","aria-label":c},o,{ref:t}),r.createElement("span",{className:"DocSearch-Button-Container"},r.createElement(ve.W,null),r.createElement("span",{className:"DocSearch-Button-Placeholder"},s)),r.createElement("span",{className:"DocSearch-Button-Keys"},null!==d&&r.createElement(r.Fragment,null,r.createElement(Ce,{reactsToKey:d===_e?_e:"Meta"},d===_e?r.createElement(ye,null):d),r.createElement(Ce,{reactsToKey:"k"},"K"))))}));function Ce(e){var t=e.reactsToKey,n=e.children,a=xe((0,r.useState)(!1),2),o=a[0],i=a[1];return(0,r.useEffect)((function(){if(t)return window.addEventListener("keydown",e),window.addEventListener("keyup",n),function(){window.removeEventListener("keydown",e),window.removeEventListener("keyup",n)};function e(e){e.key===t&&i(!0)}function n(e){e.key!==t&&"Meta"!==e.key||i(!1)}}),[t]),r.createElement("kbd",{className:o?"DocSearch-Button-Key DocSearch-Button-Key--pressed":"DocSearch-Button-Key"},n)}var Ae=n(5260),Ne=n(24255),Le=n(51062),Re=n(2967);const Oe={button:{buttonText:(0,l.T)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"}),buttonAriaLabel:(0,l.T)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"})},modal:{searchBox:{resetButtonTitle:(0,l.T)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),resetButtonAriaLabel:(0,l.T)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),cancelButtonText:(0,l.T)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"}),cancelButtonAriaLabel:(0,l.T)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"})},startScreen:{recentSearchesTitle:(0,l.T)({id:"theme.SearchModal.startScreen.recentSearchesTitle",message:"Recent",description:"The title for recent searches"}),noRecentSearchesText:(0,l.T)({id:"theme.SearchModal.startScreen.noRecentSearchesText",message:"No recent searches",description:"The text when no recent searches"}),saveRecentSearchButtonTitle:(0,l.T)({id:"theme.SearchModal.startScreen.saveRecentSearchButtonTitle",message:"Save this search",description:"The label for save recent search button"}),removeRecentSearchButtonTitle:(0,l.T)({id:"theme.SearchModal.startScreen.removeRecentSearchButtonTitle",message:"Remove this search from history",description:"The label for remove recent search button"}),favoriteSearchesTitle:(0,l.T)({id:"theme.SearchModal.startScreen.favoriteSearchesTitle",message:"Favorite",description:"The title for favorite searches"}),removeFavoriteSearchButtonTitle:(0,l.T)({id:"theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle",message:"Remove this search from favorites",description:"The label for remove favorite search button"})},errorScreen:{titleText:(0,l.T)({id:"theme.SearchModal.errorScreen.titleText",message:"Unable to fetch results",description:"The title for error screen of search modal"}),helpText:(0,l.T)({id:"theme.SearchModal.errorScreen.helpText",message:"You might want to check your network connection.",description:"The help text for error screen of search modal"})},footer:{selectText:(0,l.T)({id:"theme.SearchModal.footer.selectText",message:"to select",description:"The explanatory text of the action for the enter key"}),selectKeyAriaLabel:(0,l.T)({id:"theme.SearchModal.footer.selectKeyAriaLabel",message:"Enter key",description:"The ARIA label for the Enter key button that makes the selection"}),navigateText:(0,l.T)({id:"theme.SearchModal.footer.navigateText",message:"to navigate",description:"The explanatory text of the action for the Arrow up and Arrow down key"}),navigateUpKeyAriaLabel:(0,l.T)({id:"theme.SearchModal.footer.navigateUpKeyAriaLabel",message:"Arrow up",description:"The ARIA label for the Arrow up key button that makes the navigation"}),navigateDownKeyAriaLabel:(0,l.T)({id:"theme.SearchModal.footer.navigateDownKeyAriaLabel",message:"Arrow down",description:"The ARIA label for the Arrow down key button that makes the navigation"}),closeText:(0,l.T)({id:"theme.SearchModal.footer.closeText",message:"to close",description:"The explanatory text of the action for Escape key"}),closeKeyAriaLabel:(0,l.T)({id:"theme.SearchModal.footer.closeKeyAriaLabel",message:"Escape key",description:"The ARIA label for the Escape key button that close the modal"}),searchByText:(0,l.T)({id:"theme.SearchModal.footer.searchByText",message:"Search by",description:"The text explain that the search is making by Algolia"})},noResultsScreen:{noResultsText:(0,l.T)({id:"theme.SearchModal.noResultsScreen.noResultsText",message:"No results for",description:"The text explains that there are no results for the following search"}),suggestedQueryText:(0,l.T)({id:"theme.SearchModal.noResultsScreen.suggestedQueryText",message:"Try searching for",description:"The text for the suggested query when no results are found for the following search"}),reportMissingResultsText:(0,l.T)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsText",message:"Believe this query should return results?",description:"The text for the question where the user thinks there are missing results"}),reportMissingResultsLinkText:(0,l.T)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsLinkText",message:"Let us know.",description:"The text for the link to report missing results"})}},placeholder:(0,l.T)({id:"theme.SearchModal.placeholder",message:"Search docs",description:"The placeholder of the input of the DocSearch pop-up modal"})};let Pe=null;function Ie(e){let{hit:t,children:n}=e;return(0,u.jsx)(Z.A,{to:t.url,children:n})}function je(e){let{state:t,onClose:n}=e;const r=(0,Ne.w)();return(0,u.jsx)(Z.A,{to:r(t.query),onClick:n,children:(0,u.jsx)(l.A,{id:"theme.SearchBar.seeAll",values:{count:t.context.nbHits},children:"See all {count} results"})})}function Me(e){let{contextualSearch:t,externalUrlRegex:a,...o}=e;const{siteMetadata:i}=(0,le.A)(),l=(0,Le.C)(),c=function(){const{locale:e,tags:t}=(0,Re.af)();return[`language:${e}`,t.map((e=>`docusaurus_tag:${e}`))]}(),d=o.searchParameters?.facetFilters??[],p=t?function(e,t){const n=e=>"string"==typeof e?[e]:e;return[...n(e),...n(t)]}(c,d):d,f={...o.searchParameters,facetFilters:p},m=(0,s.W6)(),h=(0,r.useRef)(null),g=(0,r.useRef)(null),[b,y]=(0,r.useState)(!1),[v,w]=(0,r.useState)(void 0),k=(0,r.useCallback)((()=>Pe?Promise.resolve():Promise.all([n.e(9462).then(n.bind(n,9462)),Promise.all([n.e(1869),n.e(8913)]).then(n.bind(n,58913)),Promise.all([n.e(1869),n.e(416)]).then(n.bind(n,90416))]).then((e=>{let[{DocSearchModal:t}]=e;Pe=t}))),[]),x=(0,r.useCallback)((()=>{k().then((()=>{h.current=document.createElement("div"),document.body.insertBefore(h.current,document.body.firstChild),y(!0)}))}),[k,y]),S=(0,r.useCallback)((()=>{y(!1),h.current?.remove()}),[y]),E=(0,r.useCallback)((e=>{k().then((()=>{y(!0),w(e.key)}))}),[k,y,w]),_=(0,r.useRef)({navigate(e){let{itemUrl:t}=e;(0,ee.G)(a,t)?window.location.href=t:m.push(t)}}).current,T=(0,r.useRef)((e=>o.transformItems?o.transformItems(e):e.map((e=>({...e,url:l(e.url)}))))).current,C=(0,r.useMemo)((()=>e=>(0,u.jsx)(je,{...e,onClose:S})),[S]),A=(0,r.useCallback)((e=>(e.addAlgoliaAgent("docusaurus",i.docusaurusVersion),e)),[i.docusaurusVersion]);return function(e){var t=e.isOpen,n=e.onOpen,a=e.onClose,o=e.onInput,i=e.searchButtonRef;r.useEffect((function(){function e(e){var r;(27===e.keyCode&&t||"k"===(null===(r=e.key)||void 0===r?void 0:r.toLowerCase())&&(e.metaKey||e.ctrlKey)||!function(e){var t=e.target,n=t.tagName;return t.isContentEditable||"INPUT"===n||"SELECT"===n||"TEXTAREA"===n}(e)&&"/"===e.key&&!t)&&(e.preventDefault(),t?a():document.body.classList.contains("DocSearch--active")||document.body.classList.contains("DocSearch--active")||n()),i&&i.current===document.activeElement&&o&&/[a-zA-Z0-9]/.test(String.fromCharCode(e.keyCode))&&o(e)}return window.addEventListener("keydown",e),function(){window.removeEventListener("keydown",e)}}),[t,n,a,o,i])}({isOpen:b,onOpen:x,onClose:S,onInput:E,searchButtonRef:g}),(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(Ae.A,{children:(0,u.jsx)("link",{rel:"preconnect",href:`https://${o.appId}-dsn.algolia.net`,crossOrigin:"anonymous"})}),(0,u.jsx)(Te,{onTouchStart:k,onFocus:k,onMouseOver:k,onClick:x,ref:g,translations:Oe.button}),b&&Pe&&h.current&&(0,be.createPortal)((0,u.jsx)(Pe,{onClose:S,initialScrollY:window.scrollY,initialQuery:v,navigator:_,transformItems:T,hitComponent:Ie,transformSearchClient:A,...o.searchPagePath&&{resultsFooterComponent:C},...o,searchParameters:f,placeholder:Oe.placeholder,translations:Oe.modal}),h.current)]})}function De(){const{siteConfig:e}=(0,le.A)();return(0,u.jsx)(Me,{...e.themeConfig.algolia})}const Fe={navbarSearchContainer:"navbarSearchContainer_Bca1"};function Be(e){let{children:t,className:n}=e;return(0,u.jsx)("div",{className:(0,a.A)(n,Fe.navbarSearchContainer),children:t})}var ze=n(48295),$e=n(84142);var Ue=n(55597);const Ve=e=>e.docs.find((t=>t.id===e.mainDocId));const He={default:oe,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:r,queryString:a="",...o}=e;const{i18n:{currentLocale:i,locales:c,localeConfigs:d}}=(0,le.A)(),p=(0,me.o)(),{search:f,hash:m}=(0,s.zy)(),h=[...n,...c.map((e=>{const n=`${`pathname://${p.createUrl({locale:e,fullyQualified:!1})}`}${f}${m}${a}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?t?"menu__link--active":"dropdown__link--active":""}})),...r],g=t?(0,l.T)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[i].label;return(0,u.jsx)(fe,{...o,mobile:t,label:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(he,{className:ge}),g]}),items:h})},search:function(e){let{mobile:t,className:n}=e;return t?null:(0,u.jsx)(Be,{className:n,children:(0,u.jsx)(De,{})})},dropdown:fe,html:function(e){let{value:t,className:n,mobile:r=!1,isDropdownItem:o=!1}=e;const i=o?"li":"div";return(0,u.jsx)(i,{className:(0,a.A)({navbar__item:!r&&!o,"menu__list-item":r},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:r,...a}=e;const{activeDoc:o}=(0,ze.zK)(r),i=(0,$e.QB)(t,r),s=o?.path===i?.path;return null===i||i.unlisted&&!s?null:(0,u.jsx)(oe,{exact:!0,...a,isActive:()=>s||!!o?.sidebar&&o.sidebar===i.sidebar,label:n??i.id,to:i.path})},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:r,...a}=e;const{activeDoc:o}=(0,ze.zK)(r),i=(0,$e.fW)(t,r).link;if(!i)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return(0,u.jsx)(oe,{exact:!0,...a,isActive:()=>o?.sidebar===t,label:n??i.label,to:i.path})},docsVersion:function(e){let{label:t,to:n,docsPluginId:r,...a}=e;const o=(0,$e.Vd)(r)[0],i=t??o.label,s=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(o).path;return(0,u.jsx)(oe,{...a,label:i,to:s})},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:r,dropdownItemsBefore:a,dropdownItemsAfter:o,...i}=e;const{search:c,hash:d}=(0,s.zy)(),p=(0,ze.zK)(n),f=(0,ze.jh)(n),{savePreferredVersionName:m}=(0,Ue.g1)(n),h=[...a,...f.map((e=>{const t=p.alternateDocVersions[e.name]??Ve(e);return{label:e.label,to:`${t.path}${c}${d}`,isActive:()=>e===p.activeVersion,onClick:()=>m(e.name)}})),...o],g=(0,$e.Vd)(n)[0],b=t&&h.length>1?(0,l.T)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):g.label,y=t&&h.length>1?void 0:Ve(g).path;return h.length<=1?(0,u.jsx)(oe,{...i,mobile:t,label:b,to:y,isActive:r?()=>!1:void 0}):(0,u.jsx)(fe,{...i,mobile:t,label:b,to:y,items:h,isActive:r?()=>!1:void 0})}};function We(e){let{type:t,...n}=e;const r=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),a=He[r];if(!a)throw new Error(`No NavbarItem component found for type "${t}".`);return(0,u.jsx)(a,{...n})}function Ge(){const e=(0,N.M)(),t=(0,w.p)().navbar.items;return(0,u.jsx)("ul",{className:"menu__list",children:t.map(((t,n)=>(0,r.createElement)(We,{mobile:!0,...t,onClick:()=>e.toggle(),key:n})))})}function qe(e){return(0,u.jsx)("button",{...e,type:"button",className:"clean-btn navbar-sidebar__back",children:(0,u.jsx)(l.A,{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)",children:"\u2190 Back to main menu"})})}function Ke(){const e=0===(0,w.p)().navbar.items.length,t=M();return(0,u.jsxs)(u.Fragment,{children:[!e&&(0,u.jsx)(qe,{onClick:()=>t.hide()}),t.content]})}function Ye(){const e=(0,N.M)();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?(0,u.jsx)(D,{header:(0,u.jsx)(Q,{}),primaryMenu:(0,u.jsx)(Ge,{}),secondaryMenu:(0,u.jsx)(Ke,{})}):null}const Qe={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function Ze(e){return(0,u.jsx)("div",{role:"presentation",...e,className:(0,a.A)("navbar-sidebar__backdrop",e.className)})}function Xe(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:o}}=(0,w.p)(),i=(0,N.M)(),{navbarRef:s,isNavbarVisible:d}=function(e){const[t,n]=(0,r.useState)(e),a=(0,r.useRef)(!1),o=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(o.current=e.getBoundingClientRect().height)}),[]);return(0,L.Mq)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i=s?n(!1):i+c{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:i,isNavbarVisible:t}}(n);return(0,u.jsxs)("nav",{ref:s,"aria-label":(0,l.T)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,a.A)("navbar","navbar--fixed-top",n&&[Qe.navbarHideable,!d&&Qe.navbarHidden],{"navbar--dark":"dark"===o,"navbar--primary":"primary"===o,"navbar-sidebar--show":i.shown}),children:[t,(0,u.jsx)(Ze,{onClick:i.toggle}),(0,u.jsx)(Ye,{})]})}var Je=n(70440);const et={errorBoundaryError:"errorBoundaryError_a6uf",errorBoundaryFallback:"errorBoundaryFallback_VBag"};function tt(e){return(0,u.jsx)("button",{type:"button",...e,children:(0,u.jsx)(l.A,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error",children:"Try again"})})}function nt(e){let{error:t}=e;const n=(0,Je.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,u.jsx)("p",{className:et.errorBoundaryError,children:n})}class rt extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const at="right";function ot(e){let{width:t=30,height:n=30,className:r,...a}=e;return(0,u.jsx)("svg",{className:r,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true",...a,children:(0,u.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"})})}function it(){const{toggle:e,shown:t}=(0,N.M)();return(0,u.jsx)("button",{onClick:e,"aria-label":(0,l.T)({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",children:(0,u.jsx)(ot,{})})}const st={colorModeToggle:"colorModeToggle_DEke"};function lt(e){let{items:t}=e;return(0,u.jsx)(u.Fragment,{children:t.map(((e,t)=>(0,u.jsx)(rt,{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}),children:(0,u.jsx)(We,{...e})},t)))})}function ct(e){let{left:t,right:n}=e;return(0,u.jsxs)("div",{className:"navbar__inner",children:[(0,u.jsx)("div",{className:"navbar__items",children:t}),(0,u.jsx)("div",{className:"navbar__items navbar__items--right",children:n})]})}function ut(){const e=(0,N.M)(),t=(0,w.p)().navbar.items,[n,r]=function(e){function t(e){return"left"===(e.position??at)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),a=t.find((e=>"search"===e.type));return(0,u.jsx)(ct,{left:(0,u.jsxs)(u.Fragment,{children:[!e.disabled&&(0,u.jsx)(it,{}),(0,u.jsx)(K,{}),(0,u.jsx)(lt,{items:n})]}),right:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(lt,{items:r}),(0,u.jsx)(G,{className:st.colorModeToggle}),!a&&(0,u.jsx)(Be,{children:(0,u.jsx)(De,{})})]})})}function dt(){return(0,u.jsx)(Xe,{children:(0,u.jsx)(ut,{})})}function pt(e){let{item:t}=e;const{to:n,href:r,label:a,prependBaseUrlToHref:o,...i}=t,s=(0,X.A)(n),l=(0,X.A)(r,{forcePrependBaseUrl:!0});return(0,u.jsxs)(Z.A,{className:"footer__link-item",...r?{href:o?l:r}:{to:s},...i,children:[a,r&&!(0,J.A)(r)&&(0,u.jsx)(te.A,{})]})}function ft(e){let{item:t}=e;return t.html?(0,u.jsx)("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):(0,u.jsx)("li",{className:"footer__item",children:(0,u.jsx)(pt,{item:t})},t.href??t.to)}function mt(e){let{column:t}=e;return(0,u.jsxs)("div",{className:"col footer__col",children:[(0,u.jsx)("div",{className:"footer__title",children:t.title}),(0,u.jsx)("ul",{className:"footer__items clean-list",children:t.items.map(((e,t)=>(0,u.jsx)(ft,{item:e},t)))})]})}function ht(e){let{columns:t}=e;return(0,u.jsx)("div",{className:"row footer__links",children:t.map(((e,t)=>(0,u.jsx)(mt,{column:e},t)))})}function gt(){return(0,u.jsx)("span",{className:"footer__link-separator",children:"\xb7"})}function bt(e){let{item:t}=e;return t.html?(0,u.jsx)("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):(0,u.jsx)(pt,{item:t})}function yt(e){let{links:t}=e;return(0,u.jsx)("div",{className:"footer__links text--center",children:(0,u.jsx)("div",{className:"footer__links",children:t.map(((e,n)=>(0,u.jsxs)(r.Fragment,{children:[(0,u.jsx)(bt,{item:e}),t.length!==n+1&&(0,u.jsx)(gt,{})]},n)))})})}function vt(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?(0,u.jsx)(ht,{columns:t}):(0,u.jsx)(yt,{links:t})}var wt=n(21122);const kt={footerLogoLink:"footerLogoLink_BH7S"};function xt(e){let{logo:t}=e;const{withBaseUrl:n}=(0,X.h)(),r={light:n(t.src),dark:n(t.srcDark??t.src)};return(0,u.jsx)(wt.A,{className:(0,a.A)("footer__logo",t.className),alt:t.alt,sources:r,width:t.width,height:t.height,style:t.style})}function St(e){let{logo:t}=e;return t.href?(0,u.jsx)(Z.A,{href:t.href,className:kt.footerLogoLink,target:t.target,children:(0,u.jsx)(xt,{logo:t})}):(0,u.jsx)(xt,{logo:t})}function Et(e){let{copyright:t}=e;return(0,u.jsx)("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function _t(e){let{style:t,links:n,logo:r,copyright:o}=e;return(0,u.jsx)("footer",{className:(0,a.A)("footer",{"footer--dark":"dark"===t}),children:(0,u.jsxs)("div",{className:"container container-fluid",children:[n,(r||o)&&(0,u.jsxs)("div",{className:"footer__bottom text--center",children:[r&&(0,u.jsx)("div",{className:"margin-bottom--sm",children:r}),o]})]})})}function Tt(){const{footer:e}=(0,w.p)();if(!e)return null;const{copyright:t,links:n,logo:r,style:a}=e;return(0,u.jsx)(_t,{style:a,links:n&&n.length>0&&(0,u.jsx)(vt,{links:n}),logo:r&&(0,u.jsx)(St,{logo:r}),copyright:t&&(0,u.jsx)(Et,{copyright:t})})}const Ct=r.memo(Tt),At=(0,R.fM)([F.a,k.oq,L.Tv,Ue.VQ,i.Jx,function(e){let{children:t}=e;return(0,u.jsx)(O.y_,{children:(0,u.jsx)(N.e,{children:(0,u.jsx)(I,{children:t})})})}]);function Nt(e){let{children:t}=e;return(0,u.jsx)(At,{children:t})}var Lt=n(51107);function Rt(e){let{error:t,tryAgain:n}=e;return(0,u.jsx)("main",{className:"container margin-vert--xl",children:(0,u.jsx)("div",{className:"row",children:(0,u.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,u.jsx)(Lt.A,{as:"h1",className:"hero__title",children:(0,u.jsx)(l.A,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed",children:"This page crashed."})}),(0,u.jsx)("div",{className:"margin-vert--lg",children:(0,u.jsx)(tt,{onClick:n,className:"button button--primary shadow--lw"})}),(0,u.jsx)("hr",{}),(0,u.jsx)("div",{className:"margin-vert--md",children:(0,u.jsx)(nt,{error:t})})]})})})}const Ot={mainWrapper:"mainWrapper_z2l0"};function Pt(e){const{children:t,noFooter:n,wrapperClassName:r,title:s,description:l}=e;return(0,b.J)(),(0,u.jsxs)(Nt,{children:[(0,u.jsx)(i.be,{title:s,description:l}),(0,u.jsx)(v,{}),(0,u.jsx)(A,{}),(0,u.jsx)(dt,{}),(0,u.jsx)("div",{id:d,className:(0,a.A)(g.G.wrapper.main,Ot.mainWrapper,r),children:(0,u.jsx)(o.A,{fallback:e=>(0,u.jsx)(Rt,{...e}),children:t})}),!n&&(0,u.jsx)(Ct,{})]})}},23465:(e,t,n)=>{"use strict";n.d(t,{A:()=>u});n(96540);var r=n(28774),a=n(86025),o=n(44586),i=n(6342),s=n(21122),l=n(74848);function c(e){let{logo:t,alt:n,imageClassName:r}=e;const o={light:(0,a.A)(t.src),dark:(0,a.A)(t.srcDark||t.src)},i=(0,l.jsx)(s.A,{className:t.className,sources:o,height:t.height,width:t.width,alt:n,style:t.style});return r?(0,l.jsx)("div",{className:r,children:i}):i}function u(e){const{siteConfig:{title:t}}=(0,o.A)(),{navbar:{title:n,logo:s}}=(0,i.p)(),{imageClassName:u,titleClassName:d,...p}=e,f=(0,a.A)(s?.href||"/"),m=n?"":t,h=s?.alt??m;return(0,l.jsxs)(r.A,{to:f,...p,...s?.target&&{target:s.target},children:[s&&(0,l.jsx)(c,{logo:s,alt:h,imageClassName:u}),null!=n&&(0,l.jsx)("b",{className:d,children:n})]})}},41463:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});n(96540);var r=n(5260),a=n(74848);function o(e){let{locale:t,version:n,tag:o}=e;const i=t;return(0,a.jsxs)(r.A,{children:[t&&(0,a.jsx)("meta",{name:"docusaurus_locale",content:t}),n&&(0,a.jsx)("meta",{name:"docusaurus_version",content:n}),o&&(0,a.jsx)("meta",{name:"docusaurus_tag",content:o}),i&&(0,a.jsx)("meta",{name:"docsearch:language",content:i}),n&&(0,a.jsx)("meta",{name:"docsearch:version",content:n}),o&&(0,a.jsx)("meta",{name:"docsearch:docusaurus_tag",content:o})]})}},21122:(e,t,n)=>{"use strict";n.d(t,{A:()=>u});var r=n(96540),a=n(15066),o=n(92303),i=n(95293);const s={themedComponent:"themedComponent_mlkZ","themedComponent--light":"themedComponent--light_NVdE","themedComponent--dark":"themedComponent--dark_xIcU"};var l=n(74848);function c(e){let{className:t,children:n}=e;const c=(0,o.A)(),{colorMode:u}=(0,i.G)();return(0,l.jsx)(l.Fragment,{children:(c?"dark"===u?["dark"]:["light"]:["light","dark"]).map((e=>{const o=n({theme:e,className:(0,a.A)(t,s.themedComponent,s[`themedComponent--${e}`])});return(0,l.jsx)(r.Fragment,{children:o},e)}))})}function u(e){const{sources:t,className:n,alt:r,...a}=e;return(0,l.jsx)(c,{className:n,children:e=>{let{theme:n,className:o}=e;return(0,l.jsx)("img",{src:t[n],alt:r,className:o,...a})}})}},41422:(e,t,n)=>{"use strict";n.d(t,{N:()=>b,u:()=>c});var r=n(96540),a=n(38193),o=n(205),i=n(53109),s=n(74848);const l="ease-in-out";function c(e){let{initialState:t}=e;const[n,a]=(0,r.useState)(t??!1),o=(0,r.useCallback)((()=>{a((e=>!e))}),[]);return{collapsed:n,setCollapsed:a,toggleCollapsed:o}}const u={display:"none",overflow:"hidden",height:"0px"},d={display:"block",overflow:"visible",height:"auto"};function p(e,t){const n=t?u:d;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function f(e){let{collapsibleRef:t,collapsed:n,animation:a}=e;const o=(0,r.useRef)(!1);(0,r.useEffect)((()=>{const e=t.current;function r(){const t=e.scrollHeight,n=a?.duration??function(e){if((0,i.O)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${a?.easing??l}`,height:`${t}px`}}function s(){const t=r();e.style.transition=t.transition,e.style.height=t.height}if(!o.current)return p(e,n),void(o.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(s(),requestAnimationFrame((()=>{e.style.height=u.height,e.style.overflow=u.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{s()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,a])}function m(e){if(!a.A.canUseDOM)return e?u:d}function h(e){let{as:t="div",collapsed:n,children:a,animation:o,onCollapseTransitionEnd:i,className:l,disableSSRStyle:c}=e;const u=(0,r.useRef)(null);return f({collapsibleRef:u,collapsed:n,animation:o}),(0,s.jsx)(t,{ref:u,style:c?void 0:m(n),onTransitionEnd:e=>{"height"===e.propertyName&&(p(u.current,n),i?.(n))},className:l,children:a})}function g(e){let{collapsed:t,...n}=e;const[a,i]=(0,r.useState)(!t),[l,c]=(0,r.useState)(t);return(0,o.A)((()=>{t||i(!0)}),[t]),(0,o.A)((()=>{a&&c(t)}),[a,t]),a?(0,s.jsx)(h,{...n,collapsed:l}):null}function b(e){let{lazy:t,...n}=e;const r=t?g:h;return(0,s.jsx)(r,{...n})}},65041:(e,t,n)=>{"use strict";n.d(t,{Mj:()=>h,oq:()=>m});var r=n(96540),a=n(92303),o=n(89466),i=n(89532),s=n(6342),l=n(74848);const c=(0,o.Wf)("docusaurus.announcement.dismiss"),u=(0,o.Wf)("docusaurus.announcement.id"),d=()=>"true"===c.get(),p=e=>c.set(String(e)),f=r.createContext(null);function m(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,s.p)(),t=(0,a.A)(),[n,o]=(0,r.useState)((()=>!!t&&d()));(0,r.useEffect)((()=>{o(d())}),[]);const i=(0,r.useCallback)((()=>{p(!0),o(!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&&p(!1),!r&&d()||o(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return(0,l.jsx)(f.Provider,{value:n,children:t})}function h(){const e=(0,r.useContext)(f);if(!e)throw new i.dV("AnnouncementBarProvider");return e}},95293:(e,t,n)=>{"use strict";n.d(t,{G:()=>b,a:()=>g});var r=n(96540),a=n(38193),o=n(89532),i=n(89466),s=n(6342),l=n(74848);const c=r.createContext(void 0),u="theme",d=(0,i.Wf)(u),p={light:"light",dark:"dark"},f=e=>e===p.dark?p.dark:p.light,m=e=>a.A.canUseDOM?f(document.documentElement.getAttribute("data-theme")):f(e),h=e=>{d.set(f(e))};function g(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,s.p)(),[a,o]=(0,r.useState)(m(e));(0,r.useEffect)((()=>{t&&d.del()}),[t]);const i=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:a=!0}=r;t?(o(t),a&&h(t)):(o(n?window.matchMedia("(prefers-color-scheme: dark)").matches?p.dark:p.light:e),d.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",f(a))}),[a]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==u)return;const t=d.get();null!==t&&i(f(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,i]);const l=(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||l.current?l.current=window.matchMedia("print").matches:i(null)};return e.addListener(r),()=>e.removeListener(r)}),[i,t,n]),(0,r.useMemo)((()=>({colorMode:a,setColorMode:i,get isDarkTheme(){return a===p.dark},setLightTheme(){i(p.light)},setDarkTheme(){i(p.dark)}})),[a,i])}();return(0,l.jsx)(c.Provider,{value:n,children:t})}function b(){const e=(0,r.useContext)(c);if(null==e)throw new o.dV("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},55597:(e,t,n)=>{"use strict";n.d(t,{VQ:()=>b,XK:()=>w,g1:()=>v});var r=n(96540),a=n(48295),o=n(17065),i=n(6342),s=n(84142),l=n(89532),c=n(89466),u=n(74848);const d=e=>`docs-preferred-version-${e}`,p={save:(e,t,n)=>{(0,c.Wf)(d(e),{persistence:t}).set(n)},read:(e,t)=>(0,c.Wf)(d(e),{persistence:t}).get(),clear:(e,t)=>{(0,c.Wf)(d(e),{persistence:t}).del()}},f=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const m=r.createContext(null);function h(){const e=(0,a.Gy)(),t=(0,i.p)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[o,s]=(0,r.useState)((()=>f(n)));(0,r.useEffect)((()=>{s(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function a(e){const t=p.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(p.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,a(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[o,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){p.save(e,t,n),s((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function g(e){let{children:t}=e;const n=h();return(0,u.jsx)(m.Provider,{value:n,children:t})}function b(e){let{children:t}=e;return s.C5?(0,u.jsx)(g,{children:t}):(0,u.jsx)(u.Fragment,{children:t})}function y(){const e=(0,r.useContext)(m);if(!e)throw new l.dV("DocsPreferredVersionContextProvider");return e}function v(e){void 0===e&&(e=o.W);const t=(0,a.ht)(e),[n,i]=y(),{preferredVersionName:s}=n[e];return{preferredVersion:t.versions.find((e=>e.name===s))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}function w(){const e=(0,a.Gy)(),[t]=y();function n(n){const r=e[n],{preferredVersionName:a}=t[n];return r.versions.find((e=>e.name===a))??null}const r=Object.keys(e);return Object.fromEntries(r.map((e=>[e,n(e)])))}},26588:(e,t,n)=>{"use strict";n.d(t,{V:()=>l,t:()=>c});var r=n(96540),a=n(89532),o=n(74848);const i=Symbol("EmptyContext"),s=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(0,o.jsx)(s.Provider,{value:i,children:t})}function c(){const e=(0,r.useContext)(s);if(e===i)throw new a.dV("DocsSidebarProvider");return e}},32252:(e,t,n)=>{"use strict";n.d(t,{n:()=>s,r:()=>l});var r=n(96540),a=n(89532),o=n(74848);const i=r.createContext(null);function s(e){let{children:t,version:n}=e;return(0,o.jsx)(i.Provider,{value:n,children:t})}function l(){const e=(0,r.useContext)(i);if(null===e)throw new a.dV("DocsVersionProvider");return e}},22069:(e,t,n)=>{"use strict";n.d(t,{M:()=>f,e:()=>p});var r=n(96540),a=n(75600),o=n(24581),i=n(57485),s=n(6342),l=n(89532),c=n(74848);const u=r.createContext(void 0);function d(){const e=function(){const e=(0,a.YL)(),{items:t}=(0,s.p)().navbar;return 0===t.length&&!e.component}(),t=(0,o.l)(),n=!e&&"mobile"===t,[l,c]=(0,r.useState)(!1);(0,i.$Z)((()=>{if(l)return c(!1),!1}));const u=(0,r.useCallback)((()=>{c((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&c(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:u,shown:l})),[e,n,u,l])}function p(e){let{children:t}=e;const n=d();return(0,c.jsx)(u.Provider,{value:n,children:t})}function f(){const e=r.useContext(u);if(void 0===e)throw new l.dV("NavbarMobileSidebarProvider");return e}},75600:(e,t,n)=>{"use strict";n.d(t,{GX:()=>c,YL:()=>l,y_:()=>s});var r=n(96540),a=n(89532),o=n(74848);const i=r.createContext(null);function s(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return(0,o.jsx)(i.Provider,{value:n,children:t})}function l(){const e=(0,r.useContext)(i);if(!e)throw new a.dV("NavbarSecondaryMenuContentProvider");return e[0]}function c(e){let{component:t,props:n}=e;const o=(0,r.useContext)(i);if(!o)throw new a.dV("NavbarSecondaryMenuContentProvider");const[,s]=o,l=(0,a.Be)(n);return(0,r.useEffect)((()=>{s({component:t,props:l})}),[s,t,l]),(0,r.useEffect)((()=>()=>s({component:null,props:null})),[s]),null}},14090:(e,t,n)=>{"use strict";n.d(t,{w:()=>a,J:()=>o});var r=n(96540);const a="navigation-with-keyboard";function o(){(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)}}),[])}},24255:(e,t,n)=>{"use strict";n.d(t,{b:()=>s,w:()=>l});var r=n(96540),a=n(44586),o=n(57485);const i="q";function s(){return(0,o.l)(i)}function l(){const{siteConfig:{baseUrl:e,themeConfig:t}}=(0,a.A)(),{algolia:{searchPagePath:n}}=t;return(0,r.useCallback)((t=>`${e}${n}?${i}=${encodeURIComponent(t)}`),[e,n])}},24581:(e,t,n)=>{"use strict";n.d(t,{l:()=>s});var r=n(96540),a=n(38193);const o={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function s(e){let{desktopBreakpoint:t=i}=void 0===e?{}:e;const[n,s]=(0,r.useState)((()=>"ssr"));return(0,r.useEffect)((()=>{function e(){s(function(e){if(!a.A.canUseDOM)throw new Error("getWindowSize() should only be called after React hydration");return window.innerWidth>e?o.desktop:o.mobile}(t))}return e(),window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}}),[t]),n}},17559:(e,t,n)=>{"use strict";n.d(t,{G:()=>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",unlistedBanner:"theme-unlisted-banner",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:{}}},53109:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{O:()=>r})},84142:(e,t,n)=>{"use strict";n.d(t,{$S:()=>h,B5:()=>T,C5:()=>p,Nr:()=>m,OF:()=>x,QB:()=>_,Vd:()=>S,Y:()=>w,cC:()=>f,d1:()=>C,fW:()=>E,w8:()=>y});var r=n(96540),a=n(56347),o=n(22831),i=n(48295),s=n(55597),l=n(32252),c=n(26588),u=n(31682),d=n(99169);const p=!!i.Gy;function f(e){const t=(0,l.r)();if(!e)return;const n=t.docs[e];if(!n)throw new Error(`no version doc found by id=${e}`);return n}function m(e){return"link"!==e.type||e.unlisted?"category"===e.type?function(e){if(e.href&&!e.linkUnlisted)return e.href;for(const t of e.items){const e=m(t);if(e)return e}}(e):void 0:e.href}function h(){const{pathname:e}=(0,a.zy)(),t=(0,c.t)();if(!t)throw new Error("Unexpected: cant find current sidebar in context");const n=k({sidebarItems:t.items,pathname:e,onlyCategories:!0}).slice(-1)[0];if(!n)throw new Error(`${e} is not associated with a category. useCurrentSidebarCategory() should only be used on category index pages.`);return n}const g=(e,t)=>void 0!==e&&(0,d.ys)(e,t),b=(e,t)=>e.some((e=>y(e,t)));function y(e,t){return"link"===e.type?g(e.href,t):"category"===e.type&&(g(e.href,t)||b(e.items,t))}function v(e,t){switch(e.type){case"category":return y(e,t)||e.items.some((e=>v(e,t)));case"link":return!e.unlisted||y(e,t);default:return!0}}function w(e,t){return(0,r.useMemo)((()=>e.filter((e=>v(e,t)))),[e,t])}function k(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const a=[];return function e(t){for(const o of t)if("category"===o.type&&((0,d.ys)(o.href,n)||e(o.items))||"link"===o.type&&(0,d.ys)(o.href,n)){return r&&"category"!==o.type||a.unshift(o),!0}return!1}(t),a}function x(){const e=(0,c.t)(),{pathname:t}=(0,a.zy)(),n=(0,i.vT)()?.pluginData.breadcrumbs;return!1!==n&&e?k({sidebarItems:e.items,pathname:t}):null}function S(e){const{activeVersion:t}=(0,i.zK)(e),{preferredVersion:n}=(0,s.g1)(e),a=(0,i.r7)(e);return(0,r.useMemo)((()=>(0,u.s)([t,n,a].filter(Boolean))),[t,n,a])}function E(e,t){const n=S(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- ${t.map((e=>e[0])).join("\n- ")}`);return r[1]}),[e,n])}function _(e,t){const n=S(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.s)(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function T(e){let{route:t}=e;const n=(0,a.zy)(),r=(0,l.r)(),i=t.routes,s=i.find((e=>(0,a.B6)(n.pathname,e)));if(!s)return null;const c=s.sidebar,u=c?r.docsSidebars[c]:void 0;return{docElement:(0,o.v)(i),sidebarName:c,sidebarItems:u}}function C(e){return e.filter((e=>!("category"===e.type||"link"===e.type)||!!m(e)))}},20481:(e,t,n)=>{"use strict";n.d(t,{s:()=>a});var r=n(44586);function a(e){const{siteConfig:t}=(0,r.A)(),{title:n,titleDelimiter:a}=t;return e?.trim().length?`${e.trim()} ${a} ${n}`:n}},57485:(e,t,n)=>{"use strict";n.d(t,{$Z:()=>i,aZ:()=>s,l:()=>l});var r=n(96540),a=n(56347),o=n(89532);function i(e){!function(e){const t=(0,a.W6)(),n=(0,o._q)(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.W6)();return(0,r.useSyncExternalStore)(t.listen,(()=>e(t)),(()=>e(t)))}((t=>null===e?null:new URLSearchParams(t.location.search).get(e)))}function l(e){const t=s(e)??"",n=function(){const e=(0,a.W6)();return(0,r.useCallback)(((t,n,r)=>{const a=new URLSearchParams(e.location.search);n?a.set(t,n):a.delete(t),(r?.push?e.push:e.replace)({search:a.toString()})}),[e])}();return[t,(0,r.useCallback)(((t,r)=>{n(e,t,r)}),[n,e])]}},31682:(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,{X:()=>r,s:()=>a})},69024:(e,t,n)=>{"use strict";n.d(t,{e3:()=>f,be:()=>d,Jx:()=>m});var r=n(96540),a=n(15066),o=n(5260),i=n(53102);function s(){const e=r.useContext(i.o);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var l=n(86025),c=n(20481),u=n(74848);function d(e){let{title:t,description:n,keywords:r,image:a,children:i}=e;const s=(0,c.s)(t),{withBaseUrl:d}=(0,l.h)(),p=a?d(a,{absolute:!0}):void 0;return(0,u.jsxs)(o.A,{children:[t&&(0,u.jsx)("title",{children:s}),t&&(0,u.jsx)("meta",{property:"og:title",content:s}),n&&(0,u.jsx)("meta",{name:"description",content:n}),n&&(0,u.jsx)("meta",{property:"og:description",content:n}),r&&(0,u.jsx)("meta",{name:"keywords",content:Array.isArray(r)?r.join(","):r}),p&&(0,u.jsx)("meta",{property:"og:image",content:p}),p&&(0,u.jsx)("meta",{name:"twitter:image",content:p}),i]})}const p=r.createContext(void 0);function f(e){let{className:t,children:n}=e;const i=r.useContext(p),s=(0,a.A)(i,t);return(0,u.jsxs)(p.Provider,{value:s,children:[(0,u.jsx)(o.A,{children:(0,u.jsx)("html",{className:s})}),n]})}function m(e){let{children:t}=e;const n=s(),r=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const o=`plugin-id-${n.plugin.id}`;return(0,u.jsx)(f,{className:(0,a.A)(r,o),children:t})}},89532:(e,t,n)=>{"use strict";n.d(t,{Be:()=>c,ZC:()=>s,_q:()=>i,dV:()=>l,fM:()=>u});var r=n(96540),a=n(205),o=n(74848);function i(e){const t=(0,r.useRef)(e);return(0,a.A)((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function s(e){const t=(0,r.useRef)();return(0,a.A)((()=>{t.current=e})),t.current}class l extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function c(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(0,o.jsx)(o.Fragment,{children:e.reduceRight(((e,t)=>(0,o.jsx)(t,{children:e})),n)})}}},91252:(e,t,n)=>{"use strict";function r(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}n.d(t,{G:()=>r})},99169:(e,t,n)=>{"use strict";n.d(t,{Dt:()=>s,ys:()=>i});var r=n(96540),a=n(35947),o=n(44586);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function s(){const{baseUrl:e}=(0,o.A)().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.A,baseUrl:e})),[e])}},23104:(e,t,n)=>{"use strict";n.d(t,{Mq:()=>f,Tv:()=>u,a_:()=>m,gk:()=>h});var r=n(96540),a=n(38193),o=n(92303),i=n(205),s=n(89532),l=n(74848);const c=r.createContext(void 0);function u(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(0,l.jsx)(c.Provider,{value:n,children:t})}function d(){const e=(0,r.useContext)(c);if(null==e)throw new s.dV("ScrollControllerProvider");return e}const p=()=>a.A.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function f(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=d(),a=(0,r.useRef)(p()),o=(0,s._q)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=p();o(e,a.current),a.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[o,n,...t])}function m(){const e=d(),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,i.A)((()=>{queueMicrotask((()=>n.current?.()))})),{blockElementScrollPositionUntilNextRender:a}}function h(){const e=(0,r.useRef)(null),t=(0,o.A)()&&"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:()=>e.current?.()}}},2967:(e,t,n)=>{"use strict";n.d(t,{Cy:()=>i,af:()=>l,tU:()=>s});var r=n(48295),a=n(44586),o=n(55597);const i="default";function s(e,t){return`docs-${e}-${t}`}function l(){const{i18n:e}=(0,a.A)(),t=(0,r.Gy)(),n=(0,r.gk)(),l=(0,o.XK)();const c=[i,...Object.keys(t).map((function(e){const r=n?.activePlugin.pluginId===e?n.activeVersion:void 0,a=l[e],o=t[e].versions.find((e=>e.isLast));return s(e,(r??a??o).name)}))];return{locale:e.currentLocale,tags:c}}},89466:(e,t,n)=>{"use strict";n.d(t,{Dv:()=>u,Wf:()=>c});var r=n(96540);const a="localStorage";function o(e){let{key:t,oldValue:n,newValue:r,storage:a}=e;if(n===r)return;const o=document.createEvent("StorageEvent");o.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,a),window.dispatchEvent(o)}function i(e){if(void 0===e&&(e=a),"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 l={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=i(t?.persistence);return null===n?l:{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 u(e,t){const n=(0,r.useRef)((()=>null===e?l:c(e,t))).current(),a=(0,r.useCallback)((e=>"undefined"==typeof window?()=>{}:n.listen(e)),[n]);return[(0,r.useSyncExternalStore)(a,(()=>"undefined"==typeof window?null:n.get()),(()=>null)),n]}},32131:(e,t,n)=>{"use strict";n.d(t,{o:()=>i});var r=n(44586),a=n(56347),o=n(70440);function i(){const{siteConfig:{baseUrl:e,url:t,trailingSlash:n},i18n:{defaultLocale:i,currentLocale:s}}=(0,r.A)(),{pathname:l}=(0,a.zy)(),c=(0,o.applyTrailingSlash)(l,{trailingSlash:n,baseUrl:e}),u=s===i?e:e.replace(`/${s}/`,"/"),d=c.replace(e,"");return{createUrl:function(e){let{locale:n,fullyQualified:r}=e;return`${r?t:""}${function(e){return e===i?`${u}`:`${u}${e}/`}(n)}${d}`}}}},75062:(e,t,n)=>{"use strict";n.d(t,{$:()=>i});var r=n(96540),a=n(56347),o=n(89532);function i(e){const t=(0,a.zy)(),n=(0,o.ZC)(t),i=(0,o._q)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},6342:(e,t,n)=>{"use strict";n.d(t,{p:()=>a});var r=n(44586);function a(){return(0,r.A)().siteConfig.themeConfig}},38126:(e,t,n)=>{"use strict";n.d(t,{c:()=>a});var r=n(44586);function a(){const{siteConfig:{themeConfig:e}}=(0,r.A)();return e}},51062:(e,t,n)=>{"use strict";n.d(t,{C:()=>s});var r=n(96540),a=n(91252),o=n(86025),i=n(38126);function s(){const{withBaseUrl:e}=(0,o.h)(),{algolia:{externalUrlRegex:t,replaceSearchResultPathname:n}}=(0,i.c)();return(0,r.useCallback)((r=>{const o=new URL(r);if((0,a.G)(t,o.href))return r;const i=`${o.pathname+o.hash}`;return e(function(e,t){return t?e.replaceAll(new RegExp(t.from,"g"),t.to):e}(i,n))}),[e,t,n])}},12983:(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(/[#?]/),o="/"===a||a===r?a:(i=a,n?function(e){return e.endsWith("/")?e:`${e}/`}(i):function(e){return e.endsWith("/")?e.slice(0,-1):e}(i));var i;return e.replace(a,o)}},80253:(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]}},70440: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="__blog-post-container";var a=n(12983);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(a).default}});var o=n(80253);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return o.getErrorCausalChain}})},31513:(e,t,n)=>{"use strict";n.d(t,{zR:()=>w,TM:()=>T,yJ:()=>f,sC:()=>A,AO:()=>p});var r=n(58168);function a(e){return"/"===e.charAt(0)}function o(e,t){for(var n=t,r=n+1,a=e.length;r=0;p--){var f=i[p];"."===f?o(i,p):".."===f?(o(i,p),d++):d&&(o(i,p),d--)}if(!c)for(;d--;d)i.unshift("..");!c||""===i[0]||i[0]&&a(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var s=n(11561);function l(e){return"/"===e.charAt(0)?e:"/"+e}function c(e){return"/"===e.charAt(0)?e.substr(1):e}function u(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 o;"string"==typeof e?(o=function(e){var t=e||"/",n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substr(a),t=t.substr(0,a));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),o.state=t):(void 0===(o=(0,r.A)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(s){throw s instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):s}return n&&(o.key=n),a?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=i(o.pathname,a.pathname)):o.pathname=a.pathname:o.pathname||(o.pathname="/"),o}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 o="function"==typeof e?e(t,n):e;"string"==typeof o?"function"==typeof r?r(o,a):a(!0):a(!1!==o)}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);u.confirmTransitionTo(a,r,n,(function(e){e&&(w.entries[w.index]=a,d({action:r,location:a}))}))},go:v,goBack:function(){v(-1)},goForward:function(){v(1)},canGo:function(e){var t=w.index+e;return t>=0&&t{"use strict";var r=n(44363),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};function l(e){return r.isMemo(e)?i:s[e.$$typeof]||a}s[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[r.Memo]=i;var c=Object.defineProperty,u=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 i=u(n);d&&(i=i.concat(d(n)));for(var s=l(t),h=l(n),g=0;g{"use strict";e.exports=function(e,t,n,r,a,o,i,s){if(!e){var l;if(void 0===t)l=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,a,o,i,s],u=0;(l=new Error(t.replace(/%s/g,(function(){return c[u++]})))).name="Invariant Violation"}throw l.framesToPop=1,l}}},64634:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},10119:(e,t,n)=>{"use strict";n.r(t)},51043:(e,t,n)=>{"use strict";n.r(t)},5947: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 o(e){return 100*(-1+e)}function i(e,t,n){var a;return(a="translate3d"===r.positionUsing?{transform:"translate3d("+o(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+o(e)+"%,0)"}:{"margin-left":o(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 o=n.render(!t),c=o.querySelector(r.barSelector),u=r.speed,d=r.easing;return o.offsetWidth,s((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),l(c,i(e,u,d)),1===e?(l(o,{transition:"none",opacity:1}),o.offsetWidth,setTimeout((function(){l(o,{transition:"all "+u+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),u)}),u)):setTimeout(t,u)})),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");u(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var a,i=t.querySelector(r.barSelector),s=e?"-100":o(n.status||0),c=document.querySelector(r.parent);return l(i,{transition:"all 0 linear",transform:"translate3d("+s+"%,0,0)"}),r.showSpinner||(a=t.querySelector(r.spinnerSelector))&&f(a),c!=document.body&&u(c,"nprogress-custom-parent"),c.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 s=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),l=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,o=t.charAt(0).toUpperCase()+t.slice(1);a--;)if((r=e[a]+o)in n)return r;return t}function a(e){return e=n(e),t[e]||(t[e]=r(e))}function o(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)&&o(e,n,r);else o(e,a[1],a[2])}}();function c(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function u(e,t){var n=p(e),r=n+t;c(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=p(e);c(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)},35302:(e,t,n)=>{var r=n(64634);e.exports=f,e.exports.parse=o,e.exports.compile=function(e,t){return s(o(e,t),t)},e.exports.tokensToFunction=s,e.exports.tokensToRegExp=p;var a=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function o(e,t){for(var n,r=[],o=0,i=0,s="",u=t&&t.delimiter||"/";null!=(n=a.exec(e));){var d=n[0],p=n[1],f=n.index;if(s+=e.slice(i,f),i=f+d.length,p)s+=p[1];else{var m=e[i],h=n[2],g=n[3],b=n[4],y=n[5],v=n[6],w=n[7];s&&(r.push(s),s="");var k=null!=h&&null!=m&&m!==h,x="+"===v||"*"===v,S="?"===v||"*"===v,E=n[2]||u,_=b||y;r.push({name:g||o++,prefix:h||"",delimiter:E,optional:S,repeat:x,partial:k,asterisk:!!w,pattern:_?c(_):w?".*":"[^"+l(E)+"]+?"})}}return i{!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+(?:\.\w+)*(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},parameter:{pattern:/(^|\s)-{1,2}(?:\w+:[+-]?)?\w+(?:\.\w+)*(?=[=\s]|$)/,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|cargo|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|java|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|sysctl|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","parameter","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],o=r.variable[1].inside,i=0;i{Prism.languages.elixir={doc:{pattern:/@(?:doc|moduledoc)\s+(?:("""|''')[\s\S]*?\1|("|')(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2)/,inside:{attribute:/^@\w+/,string:/['"][\s\S]+/}},comment:{pattern:/#.*/,greedy:!0},regex:{pattern:/~[rR](?:("""|''')(?:\\[\s\S]|(?!\1)[^\\])+\1|([\/|"'])(?:\\.|(?!\2)[^\\\r\n])+\2|\((?:\\.|[^\\)\r\n])+\)|\[(?:\\.|[^\\\]\r\n])+\]|\{(?:\\.|[^\\}\r\n])+\}|<(?:\\.|[^\\>\r\n])+>)[uismxfr]*/,greedy:!0},string:[{pattern:/~[cCsSwW](?:("""|''')(?:\\[\s\S]|(?!\1)[^\\])+\1|([\/|"'])(?:\\.|(?!\2)[^\\\r\n])+\2|\((?:\\.|[^\\)\r\n])+\)|\[(?:\\.|[^\\\]\r\n])+\]|\{(?:\\.|#\{[^}]+\}|#(?!\{)|[^#\\}\r\n])+\}|<(?:\\.|[^\\>\r\n])+>)[csa]?/,greedy:!0,inside:{}},{pattern:/("""|''')[\s\S]*?\1/,greedy:!0,inside:{}},{pattern:/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0,inside:{}}],atom:{pattern:/(^|[^:]):\w+/,lookbehind:!0,alias:"symbol"},module:{pattern:/\b[A-Z]\w*\b/,alias:"class-name"},"attr-name":/\b\w+\??:(?!:)/,argument:{pattern:/(^|[^&])&\d+/,lookbehind:!0,alias:"variable"},attribute:{pattern:/@\w+/,alias:"variable"},function:/\b[_a-zA-Z]\w*[?!]?(?:(?=\s*(?:\.\s*)?\()|(?=\/\d))/,number:/\b(?:0[box][a-f\d_]+|\d[\d_]*)(?:\.[\d_]+)?(?:e[+-]?[\d_]+)?\b/i,keyword:/\b(?:after|alias|and|case|catch|cond|def(?:callback|delegate|exception|impl|macro|module|n|np|p|protocol|struct)?|do|else|end|fn|for|if|import|not|or|quote|raise|require|rescue|try|unless|unquote|use|when)\b/,boolean:/\b(?:false|nil|true)\b/,operator:[/\bin\b|&&?|\|[|>]?|\\\\|::|\.\.\.?|\+\+?|-[->]?|<[-=>]|>=|!==?|\B!|=(?:==?|[>~])?|[*\/^]/,{pattern:/([^<])<(?!<)/,lookbehind:!0},{pattern:/([^>])>(?!>)/,lookbehind:!0}],punctuation:/<<|>>|[.,%\[\]{}()]/},Prism.languages.elixir.string.forEach((function(e){e.inside={interpolation:{pattern:/#\{[^}]+\}/,inside:{delimiter:{pattern:/^#\{|\}$/,alias:"punctuation"},rest:Prism.languages.elixir}}}}))},24784:()=>{!function(e){function t(e){return RegExp("(^(?:"+e+"):[ \t]*(?![ \t]))[^]+","i")}e.languages.http={"request-line":{pattern:/^(?:CONNECT|DELETE|GET|HEAD|OPTIONS|PATCH|POST|PRI|PUT|SEARCH|TRACE)\s(?:https?:\/\/|\/)\S*\sHTTP\/[\d.]+/m,inside:{method:{pattern:/^[A-Z]+\b/,alias:"property"},"request-target":{pattern:/^(\s)(?:https?:\/\/|\/)\S*(?=\s)/,lookbehind:!0,alias:"url",inside:e.languages.uri},"http-version":{pattern:/^(\s)HTTP\/[\d.]+/,lookbehind:!0,alias:"property"}}},"response-status":{pattern:/^HTTP\/[\d.]+ \d+ .+/m,inside:{"http-version":{pattern:/^HTTP\/[\d.]+/,alias:"property"},"status-code":{pattern:/^(\s)\d+(?=\s)/,lookbehind:!0,alias:"number"},"reason-phrase":{pattern:/^(\s).+/,lookbehind:!0,alias:"string"}}},header:{pattern:/^[\w-]+:.+(?:(?:\r\n?|\n)[ \t].+)*/m,inside:{"header-value":[{pattern:t(/Content-Security-Policy/.source),lookbehind:!0,alias:["csp","languages-csp"],inside:e.languages.csp},{pattern:t(/Public-Key-Pins(?:-Report-Only)?/.source),lookbehind:!0,alias:["hpkp","languages-hpkp"],inside:e.languages.hpkp},{pattern:t(/Strict-Transport-Security/.source),lookbehind:!0,alias:["hsts","languages-hsts"],inside:e.languages.hsts},{pattern:t(/[^:]+/.source),lookbehind:!0}],"header-name":{pattern:/^[^:]+/,alias:"keyword"},punctuation:/^:/}}};var n,r=e.languages,a={"application/javascript":r.javascript,"application/json":r.json||r.javascript,"application/xml":r.xml,"text/xml":r.xml,"text/html":r.html,"text/css":r.css,"text/plain":r.plain},o={"application/json":!0,"application/xml":!0};function i(e){var t=e.replace(/^[a-z]+\//,"");return"(?:"+e+"|"+("\\w+/(?:[\\w.-]+\\+)+"+t+"(?![+\\w.-])")+")"}for(var s in a)if(a[s]){n=n||{};var l=o[s]?i(s):s;n[s.replace(/\//g,"-")]={pattern:RegExp("("+/content-type:\s*/.source+l+/(?:(?:\r\n?|\n)[\w-].*)*(?:\r(?:\n|(?!\n))|\n)/.source+")"+/[^ \t\w-][\s\S]*/.source,"i"),lookbehind:!0,inside:a[s]}}n&&e.languages.insertBefore("http","header",n)}(Prism)},19700:()=>{!function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,a,o){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(a,(function(e){if("function"==typeof o&&!o(e))return e;for(var a,s=i.length;-1!==n.code.indexOf(a=t(r,s));)++s;return i[s]=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,o=Object.keys(n.tokenStack);!function i(s){for(var l=0;l=o.length);l++){var c=s[l];if("string"==typeof c||c.content&&"string"==typeof c.content){var u=o[a],d=n.tokenStack[u],p="string"==typeof c?c:c.content,f=t(r,u),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),y=[];h&&y.push.apply(y,i([h])),y.push(g),b&&y.push.apply(y,i([b])),"string"==typeof c?s.splice.apply(s,[l,1].concat(y)):c.content=y}}else c.content&&i(c.content)}return s}(n.tokens)}}}})}(Prism)},66473:()=>{Prism.languages.wgsl={comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},"builtin-attribute":{pattern:/(@)builtin\(.*?\)/,lookbehind:!0,inside:{attribute:{pattern:/^builtin/,alias:"attr-name"},punctuation:/[(),]/,"built-in-values":{pattern:/\b(?:frag_depth|front_facing|global_invocation_id|instance_index|local_invocation_id|local_invocation_index|num_workgroups|position|sample_index|sample_mask|vertex_index|workgroup_id)\b/,alias:"attr-value"}}},attributes:{pattern:/(@)(?:align|binding|compute|const|fragment|group|id|interpolate|invariant|location|size|vertex|workgroup_size)/i,lookbehind:!0,alias:"attr-name"},functions:{pattern:/\b(fn\s+)[_a-zA-Z]\w*(?=[(<])/,lookbehind:!0,alias:"function"},keyword:/\b(?:bitcast|break|case|const|continue|continuing|default|discard|else|enable|fallthrough|fn|for|function|if|let|loop|private|return|storage|struct|switch|type|uniform|var|while|workgroup)\b/,builtin:/\b(?:abs|acos|acosh|all|any|array|asin|asinh|atan|atan2|atanh|atomic|atomicAdd|atomicAnd|atomicCompareExchangeWeak|atomicExchange|atomicLoad|atomicMax|atomicMin|atomicOr|atomicStore|atomicSub|atomicXor|bool|ceil|clamp|cos|cosh|countLeadingZeros|countOneBits|countTrailingZeros|cross|degrees|determinant|distance|dot|dpdx|dpdxCoarse|dpdxFine|dpdy|dpdyCoarse|dpdyFine|exp|exp2|extractBits|f32|f64|faceForward|firstLeadingBit|floor|fma|fract|frexp|fwidth|fwidthCoarse|fwidthFine|i32|i64|insertBits|inverseSqrt|ldexp|length|log|log2|mat[2-4]x[2-4]|max|min|mix|modf|normalize|override|pack2x16float|pack2x16snorm|pack2x16unorm|pack4x8snorm|pack4x8unorm|pow|ptr|quantizeToF16|radians|reflect|refract|reverseBits|round|sampler|sampler_comparison|select|shiftLeft|shiftRight|sign|sin|sinh|smoothstep|sqrt|staticAssert|step|storageBarrier|tan|tanh|textureDimensions|textureGather|textureGatherCompare|textureLoad|textureNumLayers|textureNumLevels|textureNumSamples|textureSample|textureSampleBias|textureSampleCompare|textureSampleCompareLevel|textureSampleGrad|textureSampleLevel|textureStore|texture_1d|texture_2d|texture_2d_array|texture_3d|texture_cube|texture_cube_array|texture_depth_2d|texture_depth_2d_array|texture_depth_cube|texture_depth_cube_array|texture_depth_multisampled_2d|texture_multisampled_2d|texture_storage_1d|texture_storage_2d|texture_storage_2d_array|texture_storage_3d|transpose|trunc|u32|u64|unpack2x16float|unpack2x16snorm|unpack2x16unorm|unpack4x8snorm|unpack4x8unorm|vec[2-4]|workgroupBarrier)\b/,"function-calls":{pattern:/\b[_a-z]\w*(?=\()/i,alias:"function"},"class-name":/\b(?:[A-Z][A-Za-z0-9]*)\b/,"bool-literal":{pattern:/\b(?:false|true)\b/,alias:"boolean"},"hex-int-literal":{pattern:/\b0[xX][0-9a-fA-F]+[iu]?\b(?![.pP])/,alias:"number"},"hex-float-literal":{pattern:/\b0[xX][0-9a-fA-F]*(?:\.[0-9a-fA-F]*)?(?:[pP][+-]?\d+[fh]?)?/,alias:"number"},"decimal-float-literal":[{pattern:/\d*\.\d+(?:[eE](?:\+|-)?\d+)?[fh]?/,alias:"number"},{pattern:/\d+\.\d*(?:[eE](?:\+|-)?\d+)?[fh]?/,alias:"number"},{pattern:/\d+[eE](?:\+|-)?\d+[fh]?/,alias:"number"},{pattern:/\b\d+[fh]\b/,alias:"number"}],"int-literal":{pattern:/\b\d+[iu]?\b/,alias:"number"},operator:[{pattern:/(?:\^|~|\|(?!\|)|\|\||&&|<<|>>|!)(?!=)/},{pattern:/&(?![&=])/},{pattern:/(?:\+=|-=|\*=|\/=|%=|\^=|&=|\|=|<<=|>>=)/},{pattern:/(^|[^<>=!])=(?![=>])/,lookbehind:!0},{pattern:/(?:==|!=|<=|\+\+|--|(^|[^=])>=)/,lookbehind:!0},{pattern:/(?:(?:[+%]|(?:\*(?!\w)))(?!=))|(?:-(?!>))|(?:\/(?!\/))/},{pattern:/->/}],punctuation:/[@(){}[\],;<>:.]/}},47003:(e,t,n)=>{var r={"./prism-bash":57022,"./prism-elixir":84051,"./prism-http":24784,"./prism-wgsl":66473};function a(e){var t=o(e);return n(t)}function o(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=o,e.exports=a,a.id=47003},2694:(e,t,n)=>{"use strict";var r=n(6925);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,i){if(i!==r){var s=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 s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bigint: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:o,resetWarningCache:a};return n.PropTypes=n,n}},5556:(e,t,n)=>{e.exports=n(2694)()},6925:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},22551:(e,t,n)=>{"use strict";var r=n(96540),a=n(69982);function o(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n