From 916a0f4aba53181673205bba280412ee32997ed0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20D=C4=85browski?= Date: Sat, 25 May 2024 22:51:38 +0200 Subject: [PATCH] Deploy website - based on 72866f3c7beee09981ccfa294d4cf780c294c215 --- 404.html | 6 +++--- .../css/{styles.1e47e76e.css => styles.18fb0757.css} | 2 +- assets/js/aeba84fb.b1e78b50.js | 1 + assets/js/aeba84fb.bbad6da7.js | 1 - assets/js/c4f5d8e4.388a6900.js | 1 - assets/js/c4f5d8e4.58d3a9cf.js | 1 + assets/js/{main.5982bcef.js => main.d91b9c68.js} | 4 ++-- ...cef.js.LICENSE.txt => main.d91b9c68.js.LICENSE.txt} | 0 ...ntime~main.45c26e8b.js => runtime~main.60b2b0ac.js} | 2 +- docs/ampscript/ampscript-style-guide/index.html | 6 +++--- docs/category/ampscript-snippets/index.html | 6 +++--- docs/category/ampscript/index.html | 6 +++--- docs/category/javascript/index.html | 6 +++--- docs/category/js-snippets/index.html | 6 +++--- docs/category/mc-personalization-snippets/index.html | 6 +++--- docs/category/mc-personalization/index.html | 6 +++--- docs/category/serverside-code/index.html | 6 +++--- docs/category/sfmc-config/index.html | 6 +++--- docs/category/sfmc-sql-snippets/index.html | 6 +++--- docs/category/sfmc-sql/index.html | 6 +++--- docs/category/sfmc-webinars/index.html | 6 +++--- docs/category/ssjs-snippets/index.html | 6 +++--- docs/category/ssjs/index.html | 6 +++--- docs/config/sfmc-appexchange-solutions/index.html | 6 +++--- docs/config/sfmc-behavioral-triggers/index.html | 6 +++--- docs/config/sfmc-code-resource/index.html | 6 +++--- docs/config/sfmc-contact-deletion/index.html | 6 +++--- docs/config/sfmc-enhanced-send-log/index.html | 6 +++--- docs/config/sfmc-features-on-demand/index.html | 6 +++--- docs/config/sfmc-mcc-integration-patterns/index.html | 6 +++--- docs/config/sfmc-mobile-connect-data-views/index.html | 6 +++--- docs/config/sfmc-system-data-views/index.html | 6 +++--- docs/index.html | 6 +++--- .../mcp-catalog-architecture/index.html | 6 +++--- docs/interaction-studio/mcp-open-time-email/index.html | 6 +++--- .../mcp-serverside-code-basics/index.html | 6 +++--- .../mcp-serverside-code-context/index.html | 6 +++--- .../mcp-serverside-code-properties/index.html | 6 +++--- .../mcp-catalog-etl-metadata-viewer/index.html | 6 +++--- docs/js/js-dom/index.html | 6 +++--- docs/js/js-if-and-switch/index.html | 6 +++--- docs/js/js-loops/index.html | 6 +++--- docs/js/snippets/engage-with-countdown/index.html | 8 ++++---- .../export-import-document-sfmc-roles/index.html | 6 +++--- docs/js/snippets/tailor-with-data/index.html | 6 +++--- docs/sql/sfmc-sql-aggregate-functions/index.html | 6 +++--- docs/sql/sfmc-sql-basics/index.html | 6 +++--- docs/sql/sfmc-sql-case/index.html | 6 +++--- docs/sql/sfmc-sql-conversion-functions/index.html | 6 +++--- docs/sql/sfmc-sql-date-functions/index.html | 6 +++--- docs/sql/sfmc-sql-from/index.html | 6 +++--- docs/sql/sfmc-sql-join/index.html | 6 +++--- docs/sql/sfmc-sql-like/index.html | 6 +++--- docs/sql/sfmc-sql-null-functions/index.html | 6 +++--- docs/sql/sfmc-sql-numeric-functions/index.html | 6 +++--- docs/sql/sfmc-sql-select/index.html | 6 +++--- docs/sql/sfmc-sql-string-functions/index.html | 6 +++--- docs/sql/sfmc-sql-style-guide/index.html | 6 +++--- docs/sql/sfmc-sql-where/index.html | 6 +++--- .../snippets/sfmc-sql-debugging-email-sends/index.html | 6 +++--- .../sfmc-sql-debugging-value-length/index.html | 6 +++--- docs/ssjs/debugging-ssjs/index.html | 6 +++--- docs/ssjs/snippets/ampscript-in-ssjs/index.html | 6 +++--- docs/ssjs/snippets/sfmc-cloud-page-apps/index.html | 6 +++--- .../ssjs-mobileconnect-phone-change/index.html | 6 +++--- docs/ssjs/snippets/ssjs-script-template/index.html | 6 +++--- docs/ssjs/ssjs-if-and-switch/index.html | 6 +++--- docs/ssjs/ssjs-loops/index.html | 6 +++--- docs/ssjs/ssjs-style-guide/index.html | 6 +++--- docs/ssjs/ssjs-vs-ampscript-performance/index.html | 6 +++--- docs/tags/amp-script/index.html | 6 +++--- docs/tags/analytics/index.html | 6 +++--- docs/tags/app-exchange/index.html | 6 +++--- docs/tags/app/index.html | 6 +++--- docs/tags/automation/index.html | 6 +++--- docs/tags/behavioral-triggers/index.html | 6 +++--- docs/tags/best-practice/index.html | 6 +++--- docs/tags/cloud-page/index.html | 6 +++--- docs/tags/configuration/index.html | 6 +++--- docs/tags/crm/index.html | 6 +++--- docs/tags/data-extensions/index.html | 6 +++--- docs/tags/data-management/index.html | 6 +++--- docs/tags/debugging/index.html | 6 +++--- docs/tags/deliverability/index.html | 6 +++--- docs/tags/einstein/index.html | 6 +++--- docs/tags/eloqua/index.html | 6 +++--- docs/tags/email/index.html | 6 +++--- docs/tags/index.html | 6 +++--- docs/tags/integration/index.html | 6 +++--- docs/tags/interaction-studio/index.html | 6 +++--- docs/tags/java-script/index.html | 6 +++--- docs/tags/journey/index.html | 6 +++--- docs/tags/marketing-cloud-personalization/index.html | 6 +++--- docs/tags/marketing-cloud/index.html | 6 +++--- docs/tags/performance/index.html | 6 +++--- docs/tags/personalisation/index.html | 6 +++--- docs/tags/setup/index.html | 6 +++--- docs/tags/sms/index.html | 6 +++--- docs/tags/snippet/index.html | 6 +++--- docs/tags/sql/index.html | 6 +++--- docs/tags/ssjs/index.html | 6 +++--- docs/tags/style-guide/index.html | 6 +++--- docs/tags/type-script/index.html | 6 +++--- docs/tags/users/index.html | 6 +++--- docs/tags/webinar/index.html | 6 +++--- .../sfmc-webinar-account-architecture/index.html | 6 +++--- .../sfmc-webinar-architecting-web-solutions/index.html | 6 +++--- docs/webinars/sfmc-webinar-cloud-page-apps/index.html | 6 +++--- docs/zen-of-sfmc/index.html | 10 +++++----- index.html | 8 ++++---- search/index.html | 6 +++--- sites/category/faq/index.html | 6 +++--- sites/category/ideas/index.html | 6 +++--- .../how-to-get-sf-certification-vouchers/index.html | 6 +++--- .../faq/how-to-get-sfmc-hands-on-experience/index.html | 6 +++--- sites/ideas/marketing-cloud-ideas/index.html | 6 +++--- sites/ideas/mc-personalization-ideas/index.html | 6 +++--- sites/licence/index.html | 6 +++--- sites/my-toolset/index.html | 6 +++--- sites/newsletter/index.html | 6 +++--- sites/privacy/index.html | 6 +++--- sites/tags/best-practice/index.html | 6 +++--- sites/tags/faq/index.html | 6 +++--- sites/tags/index.html | 6 +++--- sites/tags/interaction-studio/index.html | 6 +++--- sites/tags/marketing-cloud-personalization/index.html | 6 +++--- sites/tags/marketing-cloud/index.html | 6 +++--- sites/tags/personalization/index.html | 6 +++--- 128 files changed, 370 insertions(+), 370 deletions(-) rename assets/css/{styles.1e47e76e.css => styles.18fb0757.css} (67%) create mode 100644 assets/js/aeba84fb.b1e78b50.js delete mode 100644 assets/js/aeba84fb.bbad6da7.js delete mode 100644 assets/js/c4f5d8e4.388a6900.js create mode 100644 assets/js/c4f5d8e4.58d3a9cf.js rename assets/js/{main.5982bcef.js => main.d91b9c68.js} (99%) rename assets/js/{main.5982bcef.js.LICENSE.txt => main.d91b9c68.js.LICENSE.txt} (100%) rename assets/js/{runtime~main.45c26e8b.js => runtime~main.60b2b0ac.js} (98%) diff --git a/404.html b/404.html index 5a2ba6faa..57e409293 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.1e47e76e.css b/assets/css/styles.18fb0757.css similarity index 67% rename from assets/css/styles.1e47e76e.css rename to assets/css/styles.18fb0757.css index 8751c427c..6bbce0d0e 100644 --- a/assets/css/styles.1e47e76e.css +++ b/assets/css/styles.18fb0757.css @@ -1 +1 @@ -.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))}.markdown li,body{word-wrap:break-word}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)}html[data-theme=dark] .DocSearch,html[data-theme=light] .DocSearch{--docsearch-text-color:var(--ifm-font-color-base);--docsearch-hit-color:var(--ifm-font-color-base);--docsearch-hit-active-color:var(--ifm-color-white);--docsearch-logo-color:var(--ifm-font-color-base)}*,.DocSearch-Container,.DocSearch-Container *{box-sizing:border-box}.toggleButton_gllP,html{-webkit-tap-highlight-color:transparent}: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-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-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}.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{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);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;-webkit-text-size-adjust:100%;text-size-adjust:100%}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}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.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)}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)}.container_lyt7,.container_lyt7>svg,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>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{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}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.admonitionHeading_Gvgb,.alert__heading,.text--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)}.text--italic{font-style:italic}.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)}.card--full-height,.navbar__logo img,body,html{height:100%}.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{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{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__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{opacity:.7}.close:focus,.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}#nprogress,.dropdown__menu,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.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;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{margin-top:0}.admonitionContent_BuS1>:last-child,.cardContainer_fWXF :last-child,.collapsibleContent_i85q p:last-child,.details_lb9f>summary>p:last-child,.footer__items,.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}.navbar-sidebar,.navbar-sidebar__backdrop{bottom:0;opacity:0;transition-duration:var(--ifm-transition-fast);transition-timing-function:ease-in-out;top:0;visibility:hidden;left:0}.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{height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem;filter:var(--ifm-menu-link-sublist-icon-filter);content:""}.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)}.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.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}.navbar__items{align-items:center;display:flex;flex:1;min-width:0}.navbar__items--center{flex:0 0 auto}.navbar__items--center .navbar__brand{margin:0}.navbar__items--center+.navbar__items--right{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)}.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);position:fixed;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;position:fixed;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{display:grid;grid-gap:var(--ifm-spacing-horizontal);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)}.tabs,:not(.containsTaskList_mC6p>li)>.containsTaskList_mC6p{padding-left:0}.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}.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)}.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;--ifm-color-primary:#da4e55;--ifm-color-tertiary:#1d73c9;--ifm-background-surface-color:#18191a;--ifm-background-color:#212121;--ifm-code-background:#333437;--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}:root{--docusaurus-progress-bar-color:var(--ifm-color-primary);--ifm-color-primary:#1d73c9;--ifm-color-secondary:#f6b355;--ifm-color-tertiary:#da4e55;--ifm-color-gray:#212121;--ifm-color-black:#18191a;--ifm-color-white:#fff;--ifm-code-background:#f6f7f8;--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}#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}.react-toggle{margin-left:1rem}.header-github-link:hover,.header-linkedin-link:hover,.header-salesforce-link:hover{opacity:.6}.header-linkedin-link:before{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 516 516'%3E%3Cpath d='M150.65 100.682c0 27.992-22.508 50.683-50.273 50.683s-50.273-22.691-50.273-50.683C50.104 72.691 72.612 50 100.377 50s50.273 22.691 50.273 50.682m-7.356 86.651H58.277V462h85.017zm135.901 0h-81.541V462h81.541V317.819c0-38.624 17.779-61.615 51.807-61.615 31.268 0 46.289 22.071 46.289 61.615V462h84.605V288.085c0-73.571-41.689-109.131-99.934-109.131s-82.768 45.369-82.768 45.369v-36.99z'/%3E%3C/svg%3E") no-repeat;content:"";display:flex;height:24px;width:24px}html[data-theme=dark] .header-linkedin-link:before{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 516 516'%3E%3Cpath fill='%23fff' d='M150.65 100.682c0 27.992-22.508 50.683-50.273 50.683s-50.273-22.691-50.273-50.683C50.104 72.691 72.612 50 100.377 50s50.273 22.691 50.273 50.682m-7.356 86.651H58.277V462h85.017zm135.901 0h-81.541V462h81.541V317.819c0-38.624 17.779-61.615 51.807-61.615 31.268 0 46.289 22.071 46.289 61.615V462h84.605V288.085c0-73.571-41.689-109.131-99.934-109.131s-82.768 45.369-82.768 45.369v-36.99z'/%3E%3C/svg%3E") no-repeat}.header-github-link{padding-right:16px}.header-github-link:before{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E") no-repeat;content:"";display:flex;height:24px;width:24px}html[data-theme=dark] .header-github-link:before{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E") no-repeat}.header-salesforce-link:before{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 50 50'%3E%3Cpath d='M14 8C8.484 8 4 12.484 4 18c0 .992.148 1.973.441 2.926A8.97 8.97 0 0 0 1 28c0 5.266 4.586 9.516 9.922 8.953C12.418 40 15.57 42 19 42c3.21 0 6.16-1.723 7.766-4.457A8.3 8.3 0 0 0 29.5 38a8.43 8.43 0 0 0 7.25-4.078c.43.055.84.078 1.25.078 6.066 0 11-4.934 11-11s-4.934-11-11-11c-1.223 0-2.418.2-3.563.594A8.52 8.52 0 0 0 27.5 9a8.4 8.4 0 0 0-5.953 2.441A9.98 9.98 0 0 0 14 8m2.113 11.8h.711c.153 0 .274.126.274.282v5.836c0 .16-.121.281-.274.281h-.71a.274.274 0 0 1-.274-.281v-5.836c0-.156.12-.281.273-.281zm12.465.114q.216 0 .379.027c.105.02.188.04.277.067l.008.004c.094.039.137.125.102.218l-.203.563c-.028.066-.082.148-.239.098-.023-.004-.058-.016-.125-.032-.035-.004-.113-.015-.199-.015a.9.9 0 0 0-.258.035.5.5 0 0 0-.183.117.7.7 0 0 0-.164.242 3.6 3.6 0 0 0-.133.657h.734q.096 0 .145.058c.023.024.05.07.043.14l-.106.56c-.015.124-.113.16-.187.16h-.79l-.585 3.316a6 6 0 0 1-.239.918 1.9 1.9 0 0 1-.367.625q-.241.264-.535.371-.294.105-.687.105c-.13 0-.258-.003-.41-.039a2 2 0 0 1-.258-.074.18.18 0 0 1-.102-.234c.02-.051.18-.485.2-.543a.17.17 0 0 1 .226-.102c.047.02.074.032.125.043.058.008.137.02.195.02a1 1 0 0 0 .285-.04.38.38 0 0 0 .192-.152 1.2 1.2 0 0 0 .172-.355q.086-.235.156-.64l.578-3.22h-.469q-.1 0-.152-.058a.2.2 0 0 1-.035-.145l.097-.554c.028-.121.137-.157.196-.16h.515l.035-.282c.098-.554.286-.98.563-1.265.29-.285.691-.434 1.203-.434M16.824 20c.043 0 .074.035.074.082 0-.047-.03-.082-.074-.082m-7.363 1.797.094.004h.004c.511 0 1.043.129 1.449.36.129.07.187.214.133.347-.016.043-.176.433-.192.476a.265.265 0 0 1-.246.172c-.078 0-.14-.035-.156-.043a2.7 2.7 0 0 0-1.11-.258c-.234 0-.398.09-.398.235 0 .137.402.258.727.351l.082.028c.496.144 1.425.414 1.425 1.324 0 .855-.68 1.406-1.73 1.406-.566 0-1.016-.097-1.469-.32l-.05-.024c-.079-.043-.153-.082-.254-.152a.26.26 0 0 1-.07-.312l.183-.473a.27.27 0 0 1 .258-.188.3.3 0 0 1 .152.04l.066.043.094.046c.336.2.711.297 1.113.297.278 0 .465-.11.465-.285 0-.144-.37-.246-.703-.34l-.094-.027c-.504-.133-1.437-.379-1.437-1.332 0-.809.683-1.375 1.664-1.375m14.457 0h.004c.512 0 1.039.133 1.45.36a.28.28 0 0 1 .132.347c-.016.047-.176.433-.192.48a.28.28 0 0 1-.25.168.36.36 0 0 1-.156-.039 2.7 2.7 0 0 0-1.105-.258c-.238 0-.403.09-.403.235 0 .137.407.254.727.351l.082.028c.496.144 1.43.414 1.43 1.324 0 .855-.68 1.406-1.73 1.406-.567 0-1.02-.097-1.47-.32l-.054-.024c-.078-.043-.153-.082-.254-.152-.094-.078-.117-.195-.067-.312l.184-.47a.264.264 0 0 1 .258-.187c.055 0 .113.012.183.055.036.023.07.043.125.074q.512.294 1.118.293c.277 0 .465-.105.465-.281 0-.145-.375-.25-.704-.344l-.097-.027c-.5-.133-1.438-.379-1.438-1.332 0-.809.688-1.371 1.668-1.371zm14.004.004c.23 0 .441.012.621.039.191.023.45.09.566.133a.27.27 0 0 1 .16.14l.04.125-.032.078c-.054.145-.093.25-.14.368l-.055.132a.27.27 0 0 1-.254.184l-.05-.004-.028-.012a2.7 2.7 0 0 0-.777-.097c-.328 0-.563.09-.72.281-.171.21-.257.484-.257.836 0 .383.094.68.277.855q.27.253.762.254.219 0 .403-.023c.101-.016.199-.043.328-.09l.062-.016h.035c.121 0 .219.07.258.176l.191.492c.063.157-.023.293-.152.352a3.7 3.7 0 0 1-1.18.195c-.742 0-1.312-.203-1.699-.605-.386-.395-.582-.93-.582-1.59 0-.305.047-.594.14-.852.095-.273.24-.507.427-.707.191-.199.43-.36.703-.472q.417-.172.953-.172m-24.356.097c.559 0 .993.125 1.29.368.304.246.46.64.46 1.168v2.257a.17.17 0 0 1-.132.18s-.102.024-.192.043c-.086.02-.406.078-.676.121q-.41.064-.828.063-.4.002-.722-.067a1.55 1.55 0 0 1-.579-.234 1.1 1.1 0 0 1-.382-.422 1.3 1.3 0 0 1-.133-.61q-.002-.35.156-.62.153-.265.418-.442c.172-.113.367-.2.586-.25q.324-.082.684-.082.257 0 .421.012s.149.012.333.035c-.004-.313-.07-.426-.176-.5q-.2-.14-.606-.14h-.004c-.05 0-.644.003-1.109.238-.027.02-.059.027-.059.027-.074.023-.175 0-.21-.102l-.188-.468a.17.17 0 0 1 .066-.223c.243-.176.829-.281.856-.285a5 5 0 0 1 .726-.067m6.278.004c.273 0 .554.051.8.149.18.07.356.195.54.383.128.128.3.382.367.617.14.465.113.887.086 1.094a.19.19 0 0 1-.184.168l-2.558-.004c.027.296.117.503.273.648.187.172.477.266.844.266h.011c.551 0 .809-.09.997-.16l.054-.016c.078-.027.188-.004.227.098l.176.453c.046.105.02.199-.07.246-.188.097-.614.254-1.391.258h-.012c-.375 0-.707-.051-.988-.153a1.9 1.9 0 0 1-.707-.433 1.74 1.74 0 0 1-.41-.668 2.5 2.5 0 0 1-.13-.82c0-.294.044-.571.122-.825a1.9 1.9 0 0 1 .382-.676 1.9 1.9 0 0 1 .649-.46q.387-.165.922-.165m10.812 0c.332 0 .633.055.887.164q.382.167.64.45c.169.191.297.418.38.672q.119.381.12.816-.002.435-.12.812a1.8 1.8 0 0 1-.38.672q-.264.29-.64.45-.388.162-.887.16c-.332 0-.629-.051-.883-.16a1.76 1.76 0 0 1-1.02-1.122 2.7 2.7 0 0 1-.12-.812c0-.29.043-.563.12-.817a1.8 1.8 0 0 1 .38-.671 1.8 1.8 0 0 1 .637-.45q.387-.164.886-.164m10.7 0c.273 0 .55.051.8.149.176.074.352.195.535.383.133.128.301.382.371.617.149.492.106.933.079 1.101a.176.176 0 0 1-.172.16l-2.563-.003c.028.296.114.503.27.644.187.176.48.266.844.266h.011c.555 0 .813-.09 1-.157l.055-.015a.18.18 0 0 1 .227.098l.171.453c.047.101.024.195-.066.246-.188.093-.613.254-1.39.254h-.012q-.571.002-.989-.149a1.9 1.9 0 0 1-.71-.433 1.8 1.8 0 0 1-.41-.672 2.6 2.6 0 0 1-.126-.817c0-.293.043-.57.121-.824.082-.254.211-.484.38-.676a1.9 1.9 0 0 1 .652-.46q.382-.165.921-.165zm-6.075 0c.18.012.414.059.473.082.078.024.137.11.105.215v.004c-.027.067-.156.422-.203.535a.205.205 0 0 1-.203.137 1.24 1.24 0 0 0-.61.008.74.74 0 0 0-.292.168.85.85 0 0 0-.207.336c-.051.14-.082.375-.082.633v1.902a.18.18 0 0 1-.184.176h-.7a.18.18 0 0 1-.179-.176v-3.809c0-.097.078-.175.176-.175h.684c.097 0 .175.078.175.175v.082c.094-.066.2-.129.313-.18.168-.07.367-.132.734-.113m-15.499.852c-.308 0-.531.105-.683.32a1.2 1.2 0 0 0-.176.422l1.672.004c-.028-.188-.074-.324-.149-.426-.156-.222-.363-.32-.664-.32m21.508 0c-.309 0-.531.105-.68.32q-.123.165-.175.422l1.668.004a.9.9 0 0 0-.149-.426c-.156-.222-.363-.32-.664-.32m-10.633.016c-.316 0-.535.097-.683.304-.149.215-.227.528-.227.93s.078.719.23.933c.145.211.364.31.68.31.32 0 .54-.099.688-.31q.234-.328.234-.933c0-.402-.078-.715-.234-.93-.149-.207-.367-.304-.688-.304m8.149.027h.023zm-28.04.11a.075.075 0 0 1-.074.046h.012c.024 0 .047-.012.063-.047zm14.36 0c-.016.038-.043.046-.07.046h.008c.023 0 .05-.012.062-.047zm-11.512 1.284c-.363 0-.57.094-.644.137l-.043.027c-.13.086-.192.211-.192.395 0 .117.024.207.063.266.031.043.039.054.133.12l.004.005c.015.011.234.144.71.12.262-.015.504-.05.626-.073v-.954c-.122-.011-.364-.039-.625-.043zm25.25.993q-.03.002-.031.003h.031zm-21.965.734c0 .047-.03.082-.074.082.043 0 .074-.035.074-.082'/%3E%3C/svg%3E") no-repeat;content:"";display:flex;height:24px;width:24px}html[data-theme=dark] .header-salesforce-link:before{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 50 50'%3E%3Cpath fill='%23fff' d='M14 8C8.484 8 4 12.484 4 18c0 .992.148 1.973.441 2.926A8.97 8.97 0 0 0 1 28c0 5.266 4.586 9.516 9.922 8.953C12.418 40 15.57 42 19 42c3.21 0 6.16-1.723 7.766-4.457A8.3 8.3 0 0 0 29.5 38a8.43 8.43 0 0 0 7.25-4.078c.43.055.84.078 1.25.078 6.066 0 11-4.934 11-11s-4.934-11-11-11c-1.223 0-2.418.2-3.563.594A8.52 8.52 0 0 0 27.5 9a8.4 8.4 0 0 0-5.953 2.441A9.98 9.98 0 0 0 14 8m2.113 11.8h.711c.153 0 .274.126.274.282v5.836c0 .16-.121.281-.274.281h-.71a.274.274 0 0 1-.274-.281v-5.836c0-.156.12-.281.273-.281zm12.465.114q.216 0 .379.027c.105.02.188.04.277.067l.008.004c.094.039.137.125.102.218l-.203.563c-.028.066-.082.148-.239.098-.023-.004-.058-.016-.125-.032-.035-.004-.113-.015-.199-.015a.9.9 0 0 0-.258.035.5.5 0 0 0-.183.117.7.7 0 0 0-.164.242 3.6 3.6 0 0 0-.133.657h.734q.096 0 .145.058c.023.024.05.07.043.14l-.106.56c-.015.124-.113.16-.187.16h-.79l-.585 3.316a6 6 0 0 1-.239.918 1.9 1.9 0 0 1-.367.625q-.241.264-.535.371-.294.105-.687.105c-.13 0-.258-.003-.41-.039a2 2 0 0 1-.258-.074.18.18 0 0 1-.102-.234c.02-.051.18-.485.2-.543a.17.17 0 0 1 .226-.102c.047.02.074.032.125.043.058.008.137.02.195.02a1 1 0 0 0 .285-.04.38.38 0 0 0 .192-.152 1.2 1.2 0 0 0 .172-.355q.086-.235.156-.64l.578-3.22h-.469q-.1 0-.152-.058a.2.2 0 0 1-.035-.145l.097-.554c.028-.121.137-.157.196-.16h.515l.035-.282c.098-.554.286-.98.563-1.265.29-.285.691-.434 1.203-.434M16.824 20c.043 0 .074.035.074.082 0-.047-.03-.082-.074-.082m-7.363 1.797.094.004h.004c.511 0 1.043.129 1.449.36.129.07.187.214.133.347-.016.043-.176.433-.192.476a.265.265 0 0 1-.246.172c-.078 0-.14-.035-.156-.043a2.7 2.7 0 0 0-1.11-.258c-.234 0-.398.09-.398.235 0 .137.402.258.727.351l.082.028c.496.144 1.425.414 1.425 1.324 0 .855-.68 1.406-1.73 1.406-.566 0-1.016-.097-1.469-.32l-.05-.024c-.079-.043-.153-.082-.254-.152a.26.26 0 0 1-.07-.312l.183-.473a.27.27 0 0 1 .258-.188.3.3 0 0 1 .152.04l.066.043.094.046c.336.2.711.297 1.113.297.278 0 .465-.11.465-.285 0-.144-.37-.246-.703-.34l-.094-.027c-.504-.133-1.437-.379-1.437-1.332 0-.809.683-1.375 1.664-1.375m14.457 0h.004c.512 0 1.039.133 1.45.36a.28.28 0 0 1 .132.347c-.016.047-.176.433-.192.48a.28.28 0 0 1-.25.168.36.36 0 0 1-.156-.039 2.7 2.7 0 0 0-1.105-.258c-.238 0-.403.09-.403.235 0 .137.407.254.727.351l.082.028c.496.144 1.43.414 1.43 1.324 0 .855-.68 1.406-1.73 1.406-.567 0-1.02-.097-1.47-.32l-.054-.024c-.078-.043-.153-.082-.254-.152-.094-.078-.117-.195-.067-.312l.184-.47a.264.264 0 0 1 .258-.187c.055 0 .113.012.183.055.036.023.07.043.125.074q.512.294 1.118.293c.277 0 .465-.105.465-.281 0-.145-.375-.25-.704-.344l-.097-.027c-.5-.133-1.438-.379-1.438-1.332 0-.809.688-1.371 1.668-1.371zm14.004.004c.23 0 .441.012.621.039.191.023.45.09.566.133a.27.27 0 0 1 .16.14l.04.125-.032.078c-.054.145-.093.25-.14.368l-.055.132a.27.27 0 0 1-.254.184l-.05-.004-.028-.012a2.7 2.7 0 0 0-.777-.097c-.328 0-.563.09-.72.281-.171.21-.257.484-.257.836 0 .383.094.68.277.855q.27.253.762.254.219 0 .403-.023c.101-.016.199-.043.328-.09l.062-.016h.035c.121 0 .219.07.258.176l.191.492c.063.157-.023.293-.152.352a3.7 3.7 0 0 1-1.18.195c-.742 0-1.312-.203-1.699-.605-.386-.395-.582-.93-.582-1.59 0-.305.047-.594.14-.852.095-.273.24-.507.427-.707.191-.199.43-.36.703-.472q.417-.172.953-.172m-24.356.097c.559 0 .993.125 1.29.368.304.246.46.64.46 1.168v2.257a.17.17 0 0 1-.132.18s-.102.024-.192.043c-.086.02-.406.078-.676.121q-.41.064-.828.063-.4.002-.722-.067a1.55 1.55 0 0 1-.579-.234 1.1 1.1 0 0 1-.382-.422 1.3 1.3 0 0 1-.133-.61q-.002-.35.156-.62.153-.265.418-.442c.172-.113.367-.2.586-.25q.324-.082.684-.082.257 0 .421.012s.149.012.333.035c-.004-.313-.07-.426-.176-.5q-.2-.14-.606-.14h-.004c-.05 0-.644.003-1.109.238-.027.02-.059.027-.059.027-.074.023-.175 0-.21-.102l-.188-.468a.17.17 0 0 1 .066-.223c.243-.176.829-.281.856-.285a5 5 0 0 1 .726-.067m6.278.004c.273 0 .554.051.8.149.18.07.356.195.54.383.128.128.3.382.367.617.14.465.113.887.086 1.094a.19.19 0 0 1-.184.168l-2.558-.004c.027.296.117.503.273.648.187.172.477.266.844.266h.011c.551 0 .809-.09.997-.16l.054-.016c.078-.027.188-.004.227.098l.176.453c.046.105.02.199-.07.246-.188.097-.614.254-1.391.258h-.012c-.375 0-.707-.051-.988-.153a1.9 1.9 0 0 1-.707-.433 1.74 1.74 0 0 1-.41-.668 2.5 2.5 0 0 1-.13-.82c0-.294.044-.571.122-.825a1.9 1.9 0 0 1 .382-.676 1.9 1.9 0 0 1 .649-.46q.387-.165.922-.165m10.812 0c.332 0 .633.055.887.164q.382.167.64.45c.169.191.297.418.38.672q.119.381.12.816-.002.435-.12.812a1.8 1.8 0 0 1-.38.672q-.264.29-.64.45-.388.162-.887.16c-.332 0-.629-.051-.883-.16a1.76 1.76 0 0 1-1.02-1.122 2.7 2.7 0 0 1-.12-.812c0-.29.043-.563.12-.817a1.8 1.8 0 0 1 .38-.671 1.8 1.8 0 0 1 .637-.45q.387-.164.886-.164m10.7 0c.273 0 .55.051.8.149.176.074.352.195.535.383.133.128.301.382.371.617.149.492.106.933.079 1.101a.176.176 0 0 1-.172.16l-2.563-.003c.028.296.114.503.27.644.187.176.48.266.844.266h.011c.555 0 .813-.09 1-.157l.055-.015a.18.18 0 0 1 .227.098l.171.453c.047.101.024.195-.066.246-.188.093-.613.254-1.39.254h-.012q-.571.002-.989-.149a1.9 1.9 0 0 1-.71-.433 1.8 1.8 0 0 1-.41-.672 2.6 2.6 0 0 1-.126-.817c0-.293.043-.57.121-.824.082-.254.211-.484.38-.676a1.9 1.9 0 0 1 .652-.46q.382-.165.921-.165zm-6.075 0c.18.012.414.059.473.082.078.024.137.11.105.215v.004c-.027.067-.156.422-.203.535a.205.205 0 0 1-.203.137 1.24 1.24 0 0 0-.61.008.74.74 0 0 0-.292.168.85.85 0 0 0-.207.336c-.051.14-.082.375-.082.633v1.902a.18.18 0 0 1-.184.176h-.7a.18.18 0 0 1-.179-.176v-3.809c0-.097.078-.175.176-.175h.684c.097 0 .175.078.175.175v.082c.094-.066.2-.129.313-.18.168-.07.367-.132.734-.113m-15.499.852c-.308 0-.531.105-.683.32a1.2 1.2 0 0 0-.176.422l1.672.004c-.028-.188-.074-.324-.149-.426-.156-.222-.363-.32-.664-.32m21.508 0c-.309 0-.531.105-.68.32q-.123.165-.175.422l1.668.004a.9.9 0 0 0-.149-.426c-.156-.222-.363-.32-.664-.32m-10.633.016c-.316 0-.535.097-.683.304-.149.215-.227.528-.227.93s.078.719.23.933c.145.211.364.31.68.31.32 0 .54-.099.688-.31q.234-.328.234-.933c0-.402-.078-.715-.234-.93-.149-.207-.367-.304-.688-.304m8.149.027h.023zm-28.04.11a.075.075 0 0 1-.074.046h.012c.024 0 .047-.012.063-.047zm14.36 0c-.016.038-.043.046-.07.046h.008c.023 0 .05-.012.062-.047zm-11.512 1.284c-.363 0-.57.094-.644.137l-.043.027c-.13.086-.192.211-.192.395 0 .117.024.207.063.266.031.043.039.054.133.12l.004.005c.015.011.234.144.71.12.262-.015.504-.05.626-.073v-.954c-.122-.011-.364-.039-.625-.043zm25.25.993q-.03.002-.031.003h.031zm-21.965.734c0 .047-.03.082-.074.082.043 0 .074-.035.074-.082'/%3E%3C/svg%3E") no-repeat}.footer,html[data-theme=dark] .newsletter_aSeZ{background-color:var(--ifm-color-black)}.footer__title,.heroCodeVariable_DdG0,.markdown>h1,.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5{color:var(--ifm-color-secondary)}.footer__link-item,html[data-theme=dark] article header>h1{color:var(--ifm-color-white)}#leadText_qzwo,.articleTitle_Qstm,.heroCodeValue_WuUN,.heroProjectKeywords_uRRc,.wordWrapButtonEnabled_EoeP .wordWrapButtonIcon_Bwma,article header>h1{color:var(--ifm-color-primary)}.navbar__item>.dropdown__menu a.navbar__link--active{color:var(--ifm-navbar-link-color);opacity:.85}.navbar__item>.dropdown__menu a.dropdown__link:hover{color:var(--ifm-navbar-link-hover-color);opacity:1}ul>li>ul a.menu__link{font-size:.9rem;opacity:.85}article{margin:0 auto;max-width:800px}.theme-code-block-highlighted-line{--docusaurus-highlighted-code-line-bg:#f6b35533;font-weight:700;margin:0 calc(var(--ifm-pre-padding)*-1) 0 calc(var(--ifm-pre-padding)*-1.3)}html[data-theme=light] .DocSearch{--docsearch-muted-color:var(--ifm-font-color-base);--docsearch-container-background:#5e6470b3;--docsearch-modal-background:var(--ifm-color-secondary-lighter);--docsearch-searchbox-background:var(--ifm-color-background-color);--docsearch-searchbox-focus-background:var(--ifm-color-white);--docsearch-hit-background:var(--ifm-color-white);--docsearch-footer-background:var(--ifm-color-white)}html[data-theme=dark] .DocSearch{--docsearch-muted-color:var(--ifm-color-secondary-darkest);--docsearch-container-background:#2f3745b3;--docsearch-modal-background:var(--ifm-background-color);--docsearch-searchbox-background:var(--ifm-background-color);--docsearch-searchbox-focus-background:var(--ifm-color-black);--docsearch-hit-background:var(--ifm-color-emphasis-100);--docsearch-footer-background:var(--ifm-background-surface-color);--docsearch-key-gradient:linear-gradient(-26.5deg,var(--ifm-color-emphasis-200) 0%,var(--ifm-color-emphasis-100) 100%)}.video--container{padding-bottom:56.25%;position:relative}.video--container iframe{height:100%;left:0;position:absolute;top:0;width:100%}.video{aspect-ratio:16/9;width:100%}.form--container{background-color:var(--ifm-color-white);border-radius:10px;position:relative}.form--container iframe{height:600px;left:0;position:absolute;top:0;width:100%}.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}.tags_jXut{display:inline}.tag_QGVx{display:inline-block;margin:0 .4rem .5rem 0}.iconEdit_Z9Sw{margin-right:.3em;vertical-align:sub}.lastUpdated_JAkA{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}.tocCollapsibleContent_vkbj a{display:block}.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{text-decoration:none}.DocSearch-Hit[aria-selected=true] mark,.content_knG7 a{text-decoration:underline}.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{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-HitsFooter,.buttons_pzbO,.eventRow_U7Pp{justify-content:center}.DocSearch-Cancel,.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator,.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset{animation:.1s ease-in forwards a;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{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;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-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{margin-left:6px}.DocSearch-Hit-action-button{appearance:none;background:none;border:0;border-radius:50%;color:inherit;cursor:pointer;padding:2px}.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{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,.buttons_pzbO,.events_wtU4{align-items:center;display:flex}.DocSearch-Container,.skipToContent_fXgn{z-index:calc(var(--ifm-z-index-fixed) + 1)}.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}@keyframes a{0%{opacity:0}to{opacity:1}}.DocSearch-Button{margin:0;transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default)}#leadText_qzwo{font-size:1.2rem;margin:12px 0 6px}.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)}.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{display:inline-block;height:1.6em;width:1.6em;fill:var(--ifm-alert-foreground-color)}.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}.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)}.buttonGroup__atx button,.codeBlockContainer_Ckt0{background:var(--prism-background-color);color:var(--prism-color)}.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}.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:"#"}.footerLogoLink_BH7S:hover,.hash-link:focus,:hover>.hash-link{opacity:1}.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{left:0;position:absolute;top:0;fill:currentColor;height:inherit;opacity:inherit;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)}.containsTaskList_mC6p{list-style:none}.img_ev3q{height:auto}.tag_Nnez{display:inline-block;margin:.5rem .5rem 0 1rem}.dropdownNavbarItemMobile_S0Fm{cursor:pointer}.iconLanguage_nlXk{margin-right:5px;vertical-align:text-bottom}#__docusaurus-base-url-issue-banner-container,.navbarSearchContainer_Bca1:empty{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}body:not(.navigation-with-keyboard) :not(input):focus{outline:0}.footerLogoLink_BH7S{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.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%}.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{color:var(--ifm-color-content-secondary);font-size:.8rem;--ifm-breadcrumb-separator-size-multiplier:1}.searchResultItemSummary_AEaO{font-style:italic;margin:.5rem 0 0}.loadingSpinner_XVxU{animation:1s linear infinite b;border:.4em solid #eee;border-radius:50%;border-top:.4em solid var(--ifm-color-primary);height:3rem;margin:0 auto;width:3rem}@keyframes b{to{transform:rotate(1turn)}}.loader_vvXV{margin-top:2rem}.search-result-match{background:#ffd78e40;color:var(--docsearch-hit-color);padding:.09em 0}.hero_syme,html[data-theme=light] .articles_L71A{background-color:#212121}.hero_syme{padding:48px}.heroInner_VWeJ{margin:0 auto;max-width:1100px;padding:0 20px}.heroProjectTagline_EkV5{color:#fff;font-size:60px;margin:0;text-align:center}.heroProjectSubTagline_WKiD{color:#fff;font-family:Courier,monospace;font-size:44px;margin:0;text-align:center}.heroCodeFunction_kPM9,html[data-theme=light] .articlesHeading_izBD{color:var(--ifm-color-tertiary)}.heroCodeSymbols_NdyX{color:#fff}.articles_L71A,.features_keug{align-items:center;display:flex;padding:2rem 0;width:100%}.featureImage_yA8i{height:150px;margin:0 auto;max-width:60%;padding-top:20px}.articleCard_oNRo,.eventCard_mCtn{margin-bottom:2rem}.articlesHeading_izBD,.eventsHeading_hrbQ,.featureHeading_TLGJ{font-size:var(--ifm-h3-font-size);padding-top:1rem;text-align:center;font-family:Courier,monospace;text-transform:uppercase}.featureHeading_TLGJ{color:var(--ifm-color-primary)}.articlesHeading_izBD:before,.eventsHeading_hrbQ:before,.featureHeading_TLGJ:before{content:"<"}.articlesHeading_izBD:after,.articlesHeading_izBD:before,.eventsHeading_hrbQ:after,.eventsHeading_hrbQ:before,.featureHeading_TLGJ:after,.featureHeading_TLGJ:before{color:var(--ifm-color-secondary);font-family:Courier,monospace}.articlesHeading_izBD:after,.eventsHeading_hrbQ:after,.featureHeading_TLGJ:after{content:"/>"}.articlesHeading_izBD,.eventsHeading_hrbQ{color:var(--ifm-color-primary);padding-bottom:2rem}.articleTag_W46I,.eventDetail_Ah4F{color:var(--ifm-color-secondary);font-size:var(--ifm-h5-font-size)}.articleLink_BNeC,.eventLink_g28L{float:right}.events_wtU4{padding:2rem 0;width:100%}.eventCardWrapper_Gs3h{display:flex;justify-content:center}.eventCard_mCtn{background-color:var(--ifm-card-background-color);border-radius:8px;box-shadow:var(--ifm-global-shadow-md)!important;padding:16px;text-align:center}.eventDetail_Ah4F{font-weight:700;margin-bottom:.5rem}.newsletter_aSeZ{align-items:center;background-color:#212121;display:flex;justify-content:center;padding:2rem 0;width:100%}.newsletterHeading_xDab{color:var(--ifm-color-tertiary);font-family:Courier,monospace;font-size:var(--ifm-h2-font-size);margin-bottom:1rem;text-transform:uppercase}.newsletterDescription_VAfn{color:var(--ifm-color-secondary);font-size:var(--ifm-h4-font-size);margin-bottom:1.5rem}.newsletterAction_BuYh{align-items:center;display:flex;height:100%;justify-content:center}.newsletterAction_BuYh .button_hqdx{align-items:center;background:#0000;border:2px solid var(--ifm-color-primary);color:var(--ifm-color-primary);display:inline-flex;justify-content:center;padding:.6em 1.2em;transition:background-color .3s,color .3s}.newsletterAction_BuYh .button_hqdx:hover{background:var(--ifm-color-primary)}@media only screen and (min-width:768px){article header>h1{font-size:7rem!important}.markdown>h2{font-size:2.5rem!important}.markdown>ol,.markdown>p,.markdown>ul,div[role=tabpanel] ol,div[role=tabpanel] p,div[role=tabpanel] ul{font-size:20px}div[role=tabpanel] .admonition p{font-size:16px}.form--container{padding-bottom:120%}.form--container iframe{height:100%}#leadText_qzwo{font-size:1.5rem}}@media (min-width:997px){.collapseSidebarButton_PEFL,.expandButton_TmdG{background-color:var(--docusaurus-collapse-button-bg)}.lastUpdated_JAkA{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 only screen and (min-width:997px){.markdown>.admonition-tip{display:none}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@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 (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:768px){.form--container{height:600px}.events_wtU4,.hero_syme,.newsletter_aSeZ{padding-left:20px;padding-right:20px}html[data-theme=dark] .hero_syme{padding-bottom:0}.heroInner_VWeJ{padding:0}.heroProjectTagline_EkV5{font-size:42px;text-align:center}.heroProjectSubTagline_WKiD{font-size:32px}.newsletterHeading_xDab{font-size:var(--ifm-h3-font-size)}.newsletterDescription_VAfn{font-size:var(--ifm-h5-font-size)}.newsletterAction_BuYh{justify-content:flex-start;margin-top:1rem}}@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 (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{animation:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0;stroke-width:var(--docsearch-icon-stroke-width)}.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 +.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))}.markdown li,body{word-wrap:break-word}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)}html[data-theme=dark] .DocSearch,html[data-theme=light] .DocSearch{--docsearch-text-color:var(--ifm-font-color-base);--docsearch-hit-color:var(--ifm-font-color-base);--docsearch-hit-active-color:var(--ifm-color-white);--docsearch-logo-color:var(--ifm-font-color-base)}*,.DocSearch-Container,.DocSearch-Container *{box-sizing:border-box}.toggleButton_gllP,html{-webkit-tap-highlight-color:transparent}: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-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-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}.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{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);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;-webkit-text-size-adjust:100%;text-size-adjust:100%}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}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.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)}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)}.container_lyt7,.container_lyt7>svg,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>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{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}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.admonitionHeading_Gvgb,.alert__heading,.text--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)}.text--italic{font-style:italic}.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)}.card--full-height,.navbar__logo img,body,html{height:100%}.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{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{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__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{opacity:.7}.close:focus,.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}#nprogress,.dropdown__menu,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.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;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{margin-top:0}.admonitionContent_BuS1>:last-child,.cardContainer_fWXF :last-child,.collapsibleContent_i85q p:last-child,.details_lb9f>summary>p:last-child,.footer__items,.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}.navbar-sidebar,.navbar-sidebar__backdrop{bottom:0;opacity:0;transition-duration:var(--ifm-transition-fast);transition-timing-function:ease-in-out;top:0;visibility:hidden;left:0}.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{height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem;filter:var(--ifm-menu-link-sublist-icon-filter);content:""}.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)}.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.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}.navbar__items{align-items:center;display:flex;flex:1;min-width:0}.navbar__items--center{flex:0 0 auto}.navbar__items--center .navbar__brand{margin:0}.navbar__items--center+.navbar__items--right{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)}.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);position:fixed;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;position:fixed;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{display:grid;grid-gap:var(--ifm-spacing-horizontal);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)}.tabs,:not(.containsTaskList_mC6p>li)>.containsTaskList_mC6p{padding-left:0}.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}.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)}.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;--ifm-color-primary:#da4e55;--ifm-color-tertiary:#1d73c9;--ifm-background-surface-color:#18191a;--ifm-background-color:#212121;--ifm-code-background:#333437;--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}:root{--docusaurus-progress-bar-color:var(--ifm-color-primary);--ifm-color-primary:#1d73c9;--ifm-color-secondary:#f6b355;--ifm-color-tertiary:#da4e55;--ifm-color-gray:#212121;--ifm-color-black:#18191a;--ifm-color-white:#fff;--ifm-code-background:#f6f7f8;--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}#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}.react-toggle{margin-left:1rem}.header-github-link:hover,.header-linkedin-link:hover,.header-salesforce-link:hover{opacity:.6}.header-linkedin-link:before{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 516 516'%3E%3Cpath d='M150.65 100.682c0 27.992-22.508 50.683-50.273 50.683s-50.273-22.691-50.273-50.683C50.104 72.691 72.612 50 100.377 50s50.273 22.691 50.273 50.682m-7.356 86.651H58.277V462h85.017zm135.901 0h-81.541V462h81.541V317.819c0-38.624 17.779-61.615 51.807-61.615 31.268 0 46.289 22.071 46.289 61.615V462h84.605V288.085c0-73.571-41.689-109.131-99.934-109.131s-82.768 45.369-82.768 45.369v-36.99z'/%3E%3C/svg%3E") no-repeat;content:"";display:flex;height:24px;width:24px}html[data-theme=dark] .header-linkedin-link:before{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 516 516'%3E%3Cpath fill='%23fff' d='M150.65 100.682c0 27.992-22.508 50.683-50.273 50.683s-50.273-22.691-50.273-50.683C50.104 72.691 72.612 50 100.377 50s50.273 22.691 50.273 50.682m-7.356 86.651H58.277V462h85.017zm135.901 0h-81.541V462h81.541V317.819c0-38.624 17.779-61.615 51.807-61.615 31.268 0 46.289 22.071 46.289 61.615V462h84.605V288.085c0-73.571-41.689-109.131-99.934-109.131s-82.768 45.369-82.768 45.369v-36.99z'/%3E%3C/svg%3E") no-repeat}.header-github-link{padding-right:16px}.header-github-link:before{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E") no-repeat;content:"";display:flex;height:24px;width:24px}html[data-theme=dark] .header-github-link:before{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E") no-repeat}.header-salesforce-link:before{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 50 50'%3E%3Cpath d='M14 8C8.484 8 4 12.484 4 18c0 .992.148 1.973.441 2.926A8.97 8.97 0 0 0 1 28c0 5.266 4.586 9.516 9.922 8.953C12.418 40 15.57 42 19 42c3.21 0 6.16-1.723 7.766-4.457A8.3 8.3 0 0 0 29.5 38a8.43 8.43 0 0 0 7.25-4.078c.43.055.84.078 1.25.078 6.066 0 11-4.934 11-11s-4.934-11-11-11c-1.223 0-2.418.2-3.563.594A8.52 8.52 0 0 0 27.5 9a8.4 8.4 0 0 0-5.953 2.441A9.98 9.98 0 0 0 14 8m2.113 11.8h.711c.153 0 .274.126.274.282v5.836c0 .16-.121.281-.274.281h-.71a.274.274 0 0 1-.274-.281v-5.836c0-.156.12-.281.273-.281zm12.465.114q.216 0 .379.027c.105.02.188.04.277.067l.008.004c.094.039.137.125.102.218l-.203.563c-.028.066-.082.148-.239.098-.023-.004-.058-.016-.125-.032-.035-.004-.113-.015-.199-.015a.9.9 0 0 0-.258.035.5.5 0 0 0-.183.117.7.7 0 0 0-.164.242 3.6 3.6 0 0 0-.133.657h.734q.096 0 .145.058c.023.024.05.07.043.14l-.106.56c-.015.124-.113.16-.187.16h-.79l-.585 3.316a6 6 0 0 1-.239.918 1.9 1.9 0 0 1-.367.625q-.241.264-.535.371-.294.105-.687.105c-.13 0-.258-.003-.41-.039a2 2 0 0 1-.258-.074.18.18 0 0 1-.102-.234c.02-.051.18-.485.2-.543a.17.17 0 0 1 .226-.102c.047.02.074.032.125.043.058.008.137.02.195.02a1 1 0 0 0 .285-.04.38.38 0 0 0 .192-.152 1.2 1.2 0 0 0 .172-.355q.086-.235.156-.64l.578-3.22h-.469q-.1 0-.152-.058a.2.2 0 0 1-.035-.145l.097-.554c.028-.121.137-.157.196-.16h.515l.035-.282c.098-.554.286-.98.563-1.265.29-.285.691-.434 1.203-.434M16.824 20c.043 0 .074.035.074.082 0-.047-.03-.082-.074-.082m-7.363 1.797.094.004h.004c.511 0 1.043.129 1.449.36.129.07.187.214.133.347-.016.043-.176.433-.192.476a.265.265 0 0 1-.246.172c-.078 0-.14-.035-.156-.043a2.7 2.7 0 0 0-1.11-.258c-.234 0-.398.09-.398.235 0 .137.402.258.727.351l.082.028c.496.144 1.425.414 1.425 1.324 0 .855-.68 1.406-1.73 1.406-.566 0-1.016-.097-1.469-.32l-.05-.024c-.079-.043-.153-.082-.254-.152a.26.26 0 0 1-.07-.312l.183-.473a.27.27 0 0 1 .258-.188.3.3 0 0 1 .152.04l.066.043.094.046c.336.2.711.297 1.113.297.278 0 .465-.11.465-.285 0-.144-.37-.246-.703-.34l-.094-.027c-.504-.133-1.437-.379-1.437-1.332 0-.809.683-1.375 1.664-1.375m14.457 0h.004c.512 0 1.039.133 1.45.36a.28.28 0 0 1 .132.347c-.016.047-.176.433-.192.48a.28.28 0 0 1-.25.168.36.36 0 0 1-.156-.039 2.7 2.7 0 0 0-1.105-.258c-.238 0-.403.09-.403.235 0 .137.407.254.727.351l.082.028c.496.144 1.43.414 1.43 1.324 0 .855-.68 1.406-1.73 1.406-.567 0-1.02-.097-1.47-.32l-.054-.024c-.078-.043-.153-.082-.254-.152-.094-.078-.117-.195-.067-.312l.184-.47a.264.264 0 0 1 .258-.187c.055 0 .113.012.183.055.036.023.07.043.125.074q.512.294 1.118.293c.277 0 .465-.105.465-.281 0-.145-.375-.25-.704-.344l-.097-.027c-.5-.133-1.438-.379-1.438-1.332 0-.809.688-1.371 1.668-1.371zm14.004.004c.23 0 .441.012.621.039.191.023.45.09.566.133a.27.27 0 0 1 .16.14l.04.125-.032.078c-.054.145-.093.25-.14.368l-.055.132a.27.27 0 0 1-.254.184l-.05-.004-.028-.012a2.7 2.7 0 0 0-.777-.097c-.328 0-.563.09-.72.281-.171.21-.257.484-.257.836 0 .383.094.68.277.855q.27.253.762.254.219 0 .403-.023c.101-.016.199-.043.328-.09l.062-.016h.035c.121 0 .219.07.258.176l.191.492c.063.157-.023.293-.152.352a3.7 3.7 0 0 1-1.18.195c-.742 0-1.312-.203-1.699-.605-.386-.395-.582-.93-.582-1.59 0-.305.047-.594.14-.852.095-.273.24-.507.427-.707.191-.199.43-.36.703-.472q.417-.172.953-.172m-24.356.097c.559 0 .993.125 1.29.368.304.246.46.64.46 1.168v2.257a.17.17 0 0 1-.132.18s-.102.024-.192.043c-.086.02-.406.078-.676.121q-.41.064-.828.063-.4.002-.722-.067a1.55 1.55 0 0 1-.579-.234 1.1 1.1 0 0 1-.382-.422 1.3 1.3 0 0 1-.133-.61q-.002-.35.156-.62.153-.265.418-.442c.172-.113.367-.2.586-.25q.324-.082.684-.082.257 0 .421.012s.149.012.333.035c-.004-.313-.07-.426-.176-.5q-.2-.14-.606-.14h-.004c-.05 0-.644.003-1.109.238-.027.02-.059.027-.059.027-.074.023-.175 0-.21-.102l-.188-.468a.17.17 0 0 1 .066-.223c.243-.176.829-.281.856-.285a5 5 0 0 1 .726-.067m6.278.004c.273 0 .554.051.8.149.18.07.356.195.54.383.128.128.3.382.367.617.14.465.113.887.086 1.094a.19.19 0 0 1-.184.168l-2.558-.004c.027.296.117.503.273.648.187.172.477.266.844.266h.011c.551 0 .809-.09.997-.16l.054-.016c.078-.027.188-.004.227.098l.176.453c.046.105.02.199-.07.246-.188.097-.614.254-1.391.258h-.012c-.375 0-.707-.051-.988-.153a1.9 1.9 0 0 1-.707-.433 1.74 1.74 0 0 1-.41-.668 2.5 2.5 0 0 1-.13-.82c0-.294.044-.571.122-.825a1.9 1.9 0 0 1 .382-.676 1.9 1.9 0 0 1 .649-.46q.387-.165.922-.165m10.812 0c.332 0 .633.055.887.164q.382.167.64.45c.169.191.297.418.38.672q.119.381.12.816-.002.435-.12.812a1.8 1.8 0 0 1-.38.672q-.264.29-.64.45-.388.162-.887.16c-.332 0-.629-.051-.883-.16a1.76 1.76 0 0 1-1.02-1.122 2.7 2.7 0 0 1-.12-.812c0-.29.043-.563.12-.817a1.8 1.8 0 0 1 .38-.671 1.8 1.8 0 0 1 .637-.45q.387-.164.886-.164m10.7 0c.273 0 .55.051.8.149.176.074.352.195.535.383.133.128.301.382.371.617.149.492.106.933.079 1.101a.176.176 0 0 1-.172.16l-2.563-.003c.028.296.114.503.27.644.187.176.48.266.844.266h.011c.555 0 .813-.09 1-.157l.055-.015a.18.18 0 0 1 .227.098l.171.453c.047.101.024.195-.066.246-.188.093-.613.254-1.39.254h-.012q-.571.002-.989-.149a1.9 1.9 0 0 1-.71-.433 1.8 1.8 0 0 1-.41-.672 2.6 2.6 0 0 1-.126-.817c0-.293.043-.57.121-.824.082-.254.211-.484.38-.676a1.9 1.9 0 0 1 .652-.46q.382-.165.921-.165zm-6.075 0c.18.012.414.059.473.082.078.024.137.11.105.215v.004c-.027.067-.156.422-.203.535a.205.205 0 0 1-.203.137 1.24 1.24 0 0 0-.61.008.74.74 0 0 0-.292.168.85.85 0 0 0-.207.336c-.051.14-.082.375-.082.633v1.902a.18.18 0 0 1-.184.176h-.7a.18.18 0 0 1-.179-.176v-3.809c0-.097.078-.175.176-.175h.684c.097 0 .175.078.175.175v.082c.094-.066.2-.129.313-.18.168-.07.367-.132.734-.113m-15.499.852c-.308 0-.531.105-.683.32a1.2 1.2 0 0 0-.176.422l1.672.004c-.028-.188-.074-.324-.149-.426-.156-.222-.363-.32-.664-.32m21.508 0c-.309 0-.531.105-.68.32q-.123.165-.175.422l1.668.004a.9.9 0 0 0-.149-.426c-.156-.222-.363-.32-.664-.32m-10.633.016c-.316 0-.535.097-.683.304-.149.215-.227.528-.227.93s.078.719.23.933c.145.211.364.31.68.31.32 0 .54-.099.688-.31q.234-.328.234-.933c0-.402-.078-.715-.234-.93-.149-.207-.367-.304-.688-.304m8.149.027h.023zm-28.04.11a.075.075 0 0 1-.074.046h.012c.024 0 .047-.012.063-.047zm14.36 0c-.016.038-.043.046-.07.046h.008c.023 0 .05-.012.062-.047zm-11.512 1.284c-.363 0-.57.094-.644.137l-.043.027c-.13.086-.192.211-.192.395 0 .117.024.207.063.266.031.043.039.054.133.12l.004.005c.015.011.234.144.71.12.262-.015.504-.05.626-.073v-.954c-.122-.011-.364-.039-.625-.043zm25.25.993q-.03.002-.031.003h.031zm-21.965.734c0 .047-.03.082-.074.082.043 0 .074-.035.074-.082'/%3E%3C/svg%3E") no-repeat;content:"";display:flex;height:24px;width:24px}html[data-theme=dark] .header-salesforce-link:before{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 50 50'%3E%3Cpath fill='%23fff' d='M14 8C8.484 8 4 12.484 4 18c0 .992.148 1.973.441 2.926A8.97 8.97 0 0 0 1 28c0 5.266 4.586 9.516 9.922 8.953C12.418 40 15.57 42 19 42c3.21 0 6.16-1.723 7.766-4.457A8.3 8.3 0 0 0 29.5 38a8.43 8.43 0 0 0 7.25-4.078c.43.055.84.078 1.25.078 6.066 0 11-4.934 11-11s-4.934-11-11-11c-1.223 0-2.418.2-3.563.594A8.52 8.52 0 0 0 27.5 9a8.4 8.4 0 0 0-5.953 2.441A9.98 9.98 0 0 0 14 8m2.113 11.8h.711c.153 0 .274.126.274.282v5.836c0 .16-.121.281-.274.281h-.71a.274.274 0 0 1-.274-.281v-5.836c0-.156.12-.281.273-.281zm12.465.114q.216 0 .379.027c.105.02.188.04.277.067l.008.004c.094.039.137.125.102.218l-.203.563c-.028.066-.082.148-.239.098-.023-.004-.058-.016-.125-.032-.035-.004-.113-.015-.199-.015a.9.9 0 0 0-.258.035.5.5 0 0 0-.183.117.7.7 0 0 0-.164.242 3.6 3.6 0 0 0-.133.657h.734q.096 0 .145.058c.023.024.05.07.043.14l-.106.56c-.015.124-.113.16-.187.16h-.79l-.585 3.316a6 6 0 0 1-.239.918 1.9 1.9 0 0 1-.367.625q-.241.264-.535.371-.294.105-.687.105c-.13 0-.258-.003-.41-.039a2 2 0 0 1-.258-.074.18.18 0 0 1-.102-.234c.02-.051.18-.485.2-.543a.17.17 0 0 1 .226-.102c.047.02.074.032.125.043.058.008.137.02.195.02a1 1 0 0 0 .285-.04.38.38 0 0 0 .192-.152 1.2 1.2 0 0 0 .172-.355q.086-.235.156-.64l.578-3.22h-.469q-.1 0-.152-.058a.2.2 0 0 1-.035-.145l.097-.554c.028-.121.137-.157.196-.16h.515l.035-.282c.098-.554.286-.98.563-1.265.29-.285.691-.434 1.203-.434M16.824 20c.043 0 .074.035.074.082 0-.047-.03-.082-.074-.082m-7.363 1.797.094.004h.004c.511 0 1.043.129 1.449.36.129.07.187.214.133.347-.016.043-.176.433-.192.476a.265.265 0 0 1-.246.172c-.078 0-.14-.035-.156-.043a2.7 2.7 0 0 0-1.11-.258c-.234 0-.398.09-.398.235 0 .137.402.258.727.351l.082.028c.496.144 1.425.414 1.425 1.324 0 .855-.68 1.406-1.73 1.406-.566 0-1.016-.097-1.469-.32l-.05-.024c-.079-.043-.153-.082-.254-.152a.26.26 0 0 1-.07-.312l.183-.473a.27.27 0 0 1 .258-.188.3.3 0 0 1 .152.04l.066.043.094.046c.336.2.711.297 1.113.297.278 0 .465-.11.465-.285 0-.144-.37-.246-.703-.34l-.094-.027c-.504-.133-1.437-.379-1.437-1.332 0-.809.683-1.375 1.664-1.375m14.457 0h.004c.512 0 1.039.133 1.45.36a.28.28 0 0 1 .132.347c-.016.047-.176.433-.192.48a.28.28 0 0 1-.25.168.36.36 0 0 1-.156-.039 2.7 2.7 0 0 0-1.105-.258c-.238 0-.403.09-.403.235 0 .137.407.254.727.351l.082.028c.496.144 1.43.414 1.43 1.324 0 .855-.68 1.406-1.73 1.406-.567 0-1.02-.097-1.47-.32l-.054-.024c-.078-.043-.153-.082-.254-.152-.094-.078-.117-.195-.067-.312l.184-.47a.264.264 0 0 1 .258-.187c.055 0 .113.012.183.055.036.023.07.043.125.074q.512.294 1.118.293c.277 0 .465-.105.465-.281 0-.145-.375-.25-.704-.344l-.097-.027c-.5-.133-1.438-.379-1.438-1.332 0-.809.688-1.371 1.668-1.371zm14.004.004c.23 0 .441.012.621.039.191.023.45.09.566.133a.27.27 0 0 1 .16.14l.04.125-.032.078c-.054.145-.093.25-.14.368l-.055.132a.27.27 0 0 1-.254.184l-.05-.004-.028-.012a2.7 2.7 0 0 0-.777-.097c-.328 0-.563.09-.72.281-.171.21-.257.484-.257.836 0 .383.094.68.277.855q.27.253.762.254.219 0 .403-.023c.101-.016.199-.043.328-.09l.062-.016h.035c.121 0 .219.07.258.176l.191.492c.063.157-.023.293-.152.352a3.7 3.7 0 0 1-1.18.195c-.742 0-1.312-.203-1.699-.605-.386-.395-.582-.93-.582-1.59 0-.305.047-.594.14-.852.095-.273.24-.507.427-.707.191-.199.43-.36.703-.472q.417-.172.953-.172m-24.356.097c.559 0 .993.125 1.29.368.304.246.46.64.46 1.168v2.257a.17.17 0 0 1-.132.18s-.102.024-.192.043c-.086.02-.406.078-.676.121q-.41.064-.828.063-.4.002-.722-.067a1.55 1.55 0 0 1-.579-.234 1.1 1.1 0 0 1-.382-.422 1.3 1.3 0 0 1-.133-.61q-.002-.35.156-.62.153-.265.418-.442c.172-.113.367-.2.586-.25q.324-.082.684-.082.257 0 .421.012s.149.012.333.035c-.004-.313-.07-.426-.176-.5q-.2-.14-.606-.14h-.004c-.05 0-.644.003-1.109.238-.027.02-.059.027-.059.027-.074.023-.175 0-.21-.102l-.188-.468a.17.17 0 0 1 .066-.223c.243-.176.829-.281.856-.285a5 5 0 0 1 .726-.067m6.278.004c.273 0 .554.051.8.149.18.07.356.195.54.383.128.128.3.382.367.617.14.465.113.887.086 1.094a.19.19 0 0 1-.184.168l-2.558-.004c.027.296.117.503.273.648.187.172.477.266.844.266h.011c.551 0 .809-.09.997-.16l.054-.016c.078-.027.188-.004.227.098l.176.453c.046.105.02.199-.07.246-.188.097-.614.254-1.391.258h-.012c-.375 0-.707-.051-.988-.153a1.9 1.9 0 0 1-.707-.433 1.74 1.74 0 0 1-.41-.668 2.5 2.5 0 0 1-.13-.82c0-.294.044-.571.122-.825a1.9 1.9 0 0 1 .382-.676 1.9 1.9 0 0 1 .649-.46q.387-.165.922-.165m10.812 0c.332 0 .633.055.887.164q.382.167.64.45c.169.191.297.418.38.672q.119.381.12.816-.002.435-.12.812a1.8 1.8 0 0 1-.38.672q-.264.29-.64.45-.388.162-.887.16c-.332 0-.629-.051-.883-.16a1.76 1.76 0 0 1-1.02-1.122 2.7 2.7 0 0 1-.12-.812c0-.29.043-.563.12-.817a1.8 1.8 0 0 1 .38-.671 1.8 1.8 0 0 1 .637-.45q.387-.164.886-.164m10.7 0c.273 0 .55.051.8.149.176.074.352.195.535.383.133.128.301.382.371.617.149.492.106.933.079 1.101a.176.176 0 0 1-.172.16l-2.563-.003c.028.296.114.503.27.644.187.176.48.266.844.266h.011c.555 0 .813-.09 1-.157l.055-.015a.18.18 0 0 1 .227.098l.171.453c.047.101.024.195-.066.246-.188.093-.613.254-1.39.254h-.012q-.571.002-.989-.149a1.9 1.9 0 0 1-.71-.433 1.8 1.8 0 0 1-.41-.672 2.6 2.6 0 0 1-.126-.817c0-.293.043-.57.121-.824.082-.254.211-.484.38-.676a1.9 1.9 0 0 1 .652-.46q.382-.165.921-.165zm-6.075 0c.18.012.414.059.473.082.078.024.137.11.105.215v.004c-.027.067-.156.422-.203.535a.205.205 0 0 1-.203.137 1.24 1.24 0 0 0-.61.008.74.74 0 0 0-.292.168.85.85 0 0 0-.207.336c-.051.14-.082.375-.082.633v1.902a.18.18 0 0 1-.184.176h-.7a.18.18 0 0 1-.179-.176v-3.809c0-.097.078-.175.176-.175h.684c.097 0 .175.078.175.175v.082c.094-.066.2-.129.313-.18.168-.07.367-.132.734-.113m-15.499.852c-.308 0-.531.105-.683.32a1.2 1.2 0 0 0-.176.422l1.672.004c-.028-.188-.074-.324-.149-.426-.156-.222-.363-.32-.664-.32m21.508 0c-.309 0-.531.105-.68.32q-.123.165-.175.422l1.668.004a.9.9 0 0 0-.149-.426c-.156-.222-.363-.32-.664-.32m-10.633.016c-.316 0-.535.097-.683.304-.149.215-.227.528-.227.93s.078.719.23.933c.145.211.364.31.68.31.32 0 .54-.099.688-.31q.234-.328.234-.933c0-.402-.078-.715-.234-.93-.149-.207-.367-.304-.688-.304m8.149.027h.023zm-28.04.11a.075.075 0 0 1-.074.046h.012c.024 0 .047-.012.063-.047zm14.36 0c-.016.038-.043.046-.07.046h.008c.023 0 .05-.012.062-.047zm-11.512 1.284c-.363 0-.57.094-.644.137l-.043.027c-.13.086-.192.211-.192.395 0 .117.024.207.063.266.031.043.039.054.133.12l.004.005c.015.011.234.144.71.12.262-.015.504-.05.626-.073v-.954c-.122-.011-.364-.039-.625-.043zm25.25.993q-.03.002-.031.003h.031zm-21.965.734c0 .047-.03.082-.074.082.043 0 .074-.035.074-.082'/%3E%3C/svg%3E") no-repeat}.footer,html[data-theme=dark] .newsletter_aSeZ{background-color:var(--ifm-color-black)}.footer__title,.heroCodeVariable_DdG0,.markdown>h1,.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5{color:var(--ifm-color-secondary)}.footer__link-item,html[data-theme=dark] article header>h1,html[data-theme=light] .newsletterDescription_VAfn{color:var(--ifm-color-white)}#leadText_qzwo,.articleTitle_Qstm,.heroCodeValue_WuUN,.heroProjectKeywords_uRRc,.wordWrapButtonEnabled_EoeP .wordWrapButtonIcon_Bwma,article header>h1{color:var(--ifm-color-primary)}.navbar__item>.dropdown__menu a.navbar__link--active{color:var(--ifm-navbar-link-color);opacity:.85}.navbar__item>.dropdown__menu a.dropdown__link:hover{color:var(--ifm-navbar-link-hover-color);opacity:1}ul>li>ul a.menu__link{font-size:.9rem;opacity:.85}article{margin:0 auto;max-width:800px}.theme-code-block-highlighted-line{--docusaurus-highlighted-code-line-bg:#f6b35533;font-weight:700;margin:0 calc(var(--ifm-pre-padding)*-1) 0 calc(var(--ifm-pre-padding)*-1.3)}html[data-theme=light] .DocSearch{--docsearch-muted-color:var(--ifm-font-color-base);--docsearch-container-background:#5e6470b3;--docsearch-modal-background:var(--ifm-color-secondary-lighter);--docsearch-searchbox-background:var(--ifm-color-background-color);--docsearch-searchbox-focus-background:var(--ifm-color-white);--docsearch-hit-background:var(--ifm-color-white);--docsearch-footer-background:var(--ifm-color-white)}html[data-theme=dark] .DocSearch{--docsearch-muted-color:var(--ifm-color-secondary-darkest);--docsearch-container-background:#2f3745b3;--docsearch-modal-background:var(--ifm-background-color);--docsearch-searchbox-background:var(--ifm-background-color);--docsearch-searchbox-focus-background:var(--ifm-color-black);--docsearch-hit-background:var(--ifm-color-emphasis-100);--docsearch-footer-background:var(--ifm-background-surface-color);--docsearch-key-gradient:linear-gradient(-26.5deg,var(--ifm-color-emphasis-200) 0%,var(--ifm-color-emphasis-100) 100%)}.video--container{padding-bottom:56.25%;position:relative}.video--container iframe{height:100%;left:0;position:absolute;top:0;width:100%}.video{aspect-ratio:16/9;width:100%}.form--container{background-color:var(--ifm-color-white);border-radius:10px;position:relative}.form--container iframe{height:600px;left:0;position:absolute;top:0;width:100%}.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}.tags_jXut{display:inline}.tag_QGVx{display:inline-block;margin:0 .4rem .5rem 0}.iconEdit_Z9Sw{margin-right:.3em;vertical-align:sub}.lastUpdated_JAkA{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}.tocCollapsibleContent_vkbj a{display:block}.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{text-decoration:none}.DocSearch-Hit[aria-selected=true] mark,.content_knG7 a{text-decoration:underline}.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{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-HitsFooter,.buttons_pzbO,.eventRow_U7Pp{justify-content:center}.DocSearch-Cancel,.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator,.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset{animation:.1s ease-in forwards a;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{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;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-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{margin-left:6px}.DocSearch-Hit-action-button{appearance:none;background:none;border:0;border-radius:50%;color:inherit;cursor:pointer;padding:2px}.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{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,.buttons_pzbO,.events_wtU4{align-items:center;display:flex}.DocSearch-Container,.skipToContent_fXgn{z-index:calc(var(--ifm-z-index-fixed) + 1)}.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}@keyframes a{0%{opacity:0}to{opacity:1}}.DocSearch-Button{margin:0;transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default)}#leadText_qzwo{font-size:1.2rem;margin:12px 0 6px}.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)}.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{display:inline-block;height:1.6em;width:1.6em;fill:var(--ifm-alert-foreground-color)}.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}.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)}.buttonGroup__atx button,.codeBlockContainer_Ckt0{background:var(--prism-background-color);color:var(--prism-color)}.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}.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:"#"}.footerLogoLink_BH7S:hover,.hash-link:focus,:hover>.hash-link{opacity:1}.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{left:0;position:absolute;top:0;fill:currentColor;height:inherit;opacity:inherit;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)}.containsTaskList_mC6p{list-style:none}.img_ev3q{height:auto}.tag_Nnez{display:inline-block;margin:.5rem .5rem 0 1rem}.dropdownNavbarItemMobile_S0Fm{cursor:pointer}.iconLanguage_nlXk{margin-right:5px;vertical-align:text-bottom}#__docusaurus-base-url-issue-banner-container,.navbarSearchContainer_Bca1:empty{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}body:not(.navigation-with-keyboard) :not(input):focus{outline:0}.footerLogoLink_BH7S{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.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%}.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{color:var(--ifm-color-content-secondary);font-size:.8rem;--ifm-breadcrumb-separator-size-multiplier:1}.searchResultItemSummary_AEaO{font-style:italic;margin:.5rem 0 0}.loadingSpinner_XVxU{animation:1s linear infinite b;border:.4em solid #eee;border-radius:50%;border-top:.4em solid var(--ifm-color-primary);height:3rem;margin:0 auto;width:3rem}@keyframes b{to{transform:rotate(1turn)}}.loader_vvXV{margin-top:2rem}.search-result-match{background:#ffd78e40;color:var(--docsearch-hit-color);padding:.09em 0}.hero_syme,html[data-theme=light] .articles_L71A{background-color:#212121}.hero_syme{padding:48px}.heroInner_VWeJ{margin:0 auto;max-width:1100px;padding:0 20px}.heroProjectTagline_EkV5{color:#fff;font-size:60px;margin:0;text-align:center}.heroProjectSubTagline_WKiD{color:#fff;font-family:Courier,monospace;font-size:44px;margin:0;text-align:center}.heroCodeFunction_kPM9,html[data-theme=light] .articlesHeading_izBD{color:var(--ifm-color-tertiary)}.heroCodeSymbols_NdyX{color:#fff}.articles_L71A,.features_keug{align-items:center;display:flex;padding:2rem 0;width:100%}.featureImage_yA8i{height:150px;margin:0 auto;max-width:60%;padding-top:20px}.articleCard_oNRo,.eventCard_mCtn{margin-bottom:2rem}.articlesHeading_izBD,.eventsHeading_hrbQ,.featureHeading_TLGJ{color:var(--ifm-color-primary);font-size:var(--ifm-h3-font-size);padding-top:1rem;text-align:center;font-family:Courier,monospace;text-transform:uppercase}.articlesHeading_izBD:before,.eventsHeading_hrbQ:before,.featureHeading_TLGJ:before,.newsletterHeading_xDab:before{content:"<"}.articlesHeading_izBD:after,.articlesHeading_izBD:before,.eventsHeading_hrbQ:after,.eventsHeading_hrbQ:before,.featureHeading_TLGJ:after,.featureHeading_TLGJ:before,.newsletterHeading_xDab:after,.newsletterHeading_xDab:before{color:var(--ifm-color-secondary);font-family:Courier,monospace}.articlesHeading_izBD:after,.eventsHeading_hrbQ:after,.featureHeading_TLGJ:after,.newsletterHeading_xDab:after{content:"/>"}.articlesHeading_izBD,.eventsHeading_hrbQ{padding-bottom:2rem}.articleTag_W46I,.eventDetail_Ah4F{color:var(--ifm-color-secondary);font-size:var(--ifm-h5-font-size)}.articleLink_BNeC{float:right}.events_wtU4{padding:2rem 0;width:100%}.eventCardWrapper_Gs3h{display:flex;justify-content:center}.eventCard_mCtn{background-color:var(--ifm-card-background-color);border-radius:8px;box-shadow:var(--ifm-global-shadow-md)!important;padding:16px;text-align:center}.eventDetail_Ah4F{font-weight:700;margin-bottom:.5rem}.newsletter_aSeZ{align-items:center;background-color:#212121;display:flex;justify-content:center;padding:2rem 0;width:100%}.newsletterHeading_xDab{color:var(--ifm-color-tertiary);font-family:Courier,monospace;font-size:var(--ifm-h2-font-size);margin-bottom:1rem;text-transform:uppercase}.newsletterDescription_VAfn{font-size:var(--ifm-h4-font-size);margin-bottom:1.5rem}.newsletterButtonWrapper_B8ms{align-items:center;display:flex;height:100%;justify-content:center}.newsletterButton_tLYB{align-items:center;background:#0000;border:1px solid var(--ifm-color-secondary);color:var(--ifm-color-secondary);display:inline-flex;justify-content:center;padding:.6em 1.2em}.newsletterButton_tLYB:hover{background:var(--ifm-color-secondary)}@media only screen and (min-width:768px){article header>h1{font-size:7rem!important}.markdown>h2{font-size:2.5rem!important}.markdown>ol,.markdown>p,.markdown>ul,div[role=tabpanel] ol,div[role=tabpanel] p,div[role=tabpanel] ul{font-size:20px}div[role=tabpanel] .admonition p{font-size:16px}.form--container{padding-bottom:120%}.form--container iframe{height:100%}#leadText_qzwo{font-size:1.5rem}}@media (min-width:997px){.collapseSidebarButton_PEFL,.expandButton_TmdG{background-color:var(--docusaurus-collapse-button-bg)}.lastUpdated_JAkA{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 only screen and (min-width:997px){.markdown>.admonition-tip{display:none}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@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 (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:768px){.form--container{height:600px}.events_wtU4,.hero_syme,.newsletter_aSeZ{padding-left:20px;padding-right:20px}html[data-theme=dark] .hero_syme{padding-bottom:0}.heroInner_VWeJ{padding:0}.heroProjectTagline_EkV5{font-size:42px;text-align:center}.heroProjectSubTagline_WKiD{font-size:32px}.newsletterHeading_xDab{font-size:var(--ifm-h3-font-size)}.newsletterDescription_VAfn{font-size:var(--ifm-h5-font-size)}.newsletterButtonWrapper_B8ms{justify-content:flex-start;margin-top:1rem}}@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 (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{animation:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0;stroke-width:var(--docsearch-icon-stroke-width)}.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/aeba84fb.b1e78b50.js b/assets/js/aeba84fb.b1e78b50.js new file mode 100644 index 000000000..2e2b376b5 --- /dev/null +++ b/assets/js/aeba84fb.b1e78b50.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmd=self.webpackChunkmd||[]).push([[4894],{4875:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>h,contentTitle:()=>c,default:()=>m,frontMatter:()=>l,metadata:()=>d,toc:()=>u});var i=n(4848),s=n(8453),o=n(9489),a=n(7227),r=n(6748);const l={id:"zen-of-sfmc",title:"Zen of SFMC",description:"Salesforce Marketing Cloud implementation, development and operations Best Practices. In brief and detail.",image:"img/og/og-image-zen-of-sfmc.png",tags:["Marketing Cloud","Best Practice"],toc_max_heading_level:4},c=void 0,d={id:"zen-of-sfmc",title:"Zen of SFMC",description:"Salesforce Marketing Cloud implementation, development and operations Best Practices. In brief and detail.",source:"@site/docs/zen-of-sfmc.mdx",sourceDirName:".",slug:"/zen-of-sfmc",permalink:"/docs/zen-of-sfmc",draft:!1,unlisted:!1,editUrl:"https://github.com/MateuszDabrowski/mateuszdabrowski.pl/edit/master/docs/zen-of-sfmc.mdx",tags:[{label:"Marketing Cloud",permalink:"/docs/tags/marketing-cloud"},{label:"Best Practice",permalink:"/docs/tags/best-practice"}],version:"current",lastUpdatedBy:"Mateusz D\u0105browski",lastUpdatedAt:1716643566e3,frontMatter:{id:"zen-of-sfmc",title:"Zen of SFMC",description:"Salesforce Marketing Cloud implementation, development and operations Best Practices. In brief and detail.",image:"img/og/og-image-zen-of-sfmc.png",tags:["Marketing Cloud","Best Practice"],toc_max_heading_level:4},sidebar:"docs",next:{title:"SSJS",permalink:"/docs/category/ssjs"}},h={},u=[{value:"Zen of SFMC",id:"zen-of-sfmc",level:2},{value:"Thoughts on Zen",id:"thoughts-on-zen",level:2},{value:"Beautiful is better than ugly.",id:"beautiful-is-better-than-ugly",level:3},{value:"Explicit is better than implicit.",id:"explicit-is-better-than-implicit",level:3},{value:"Simple is better than complex.",id:"simple-is-better-than-complex",level:3},{value:"KISS",id:"kiss",level:4},{value:"YAGNI",id:"yagni",level:4},{value:"Complex is better than complicated.",id:"complex-is-better-than-complicated",level:3},{value:"SOC",id:"soc",level:4},{value:"DRY",id:"dry",level:4},{value:"Flat is better than nested. Sparse is better than dense.",id:"flat-is-better-than-nested-sparse-is-better-than-dense",level:3},{value:"Readability counts.",id:"readability-counts",level:3},{value:"Naming conventions count twice.",id:"naming-conventions-count-twice",level:3},{value:"Special cases aren't special enough to break the rules. Although practicality beats purity.",id:"special-cases-arent-special-enough-to-break-the-rules-although-practicality-beats-purity",level:3},{value:"Errors should never pass silently. Unless explicitly silenced.",id:"errors-should-never-pass-silently-unless-explicitly-silenced",level:3},{value:"In the face of ambiguity, refuse the temptation to guess. Even when certain, test.",id:"in-the-face-of-ambiguity-refuse-the-temptation-to-guess-even-when-certain-test",level:3},{value:"Now is better than never. Although never is often better than right now.",id:"now-is-better-than-never-although-never-is-often-better-than-right-now",level:3},{value:"If the implementation is hard to explain, it's a bad idea. If the implementation is easy to explain, it may be a good idea.",id:"if-the-implementation-is-hard-to-explain-its-a-bad-idea-if-the-implementation-is-easy-to-explain-it-may-be-a-good-idea",level:3},{value:"Documentation is one honking great idea - let's do more of it!",id:"documentation-is-one-honking-great-idea---lets-do-more-of-it",level:3},{value:"Sum Up",id:"sum-up",level:2}];function p(e){const t={a:"a",admonition:"admonition",code:"code",del:"del",em:"em",h2:"h2",h3:"h3",h4:"h4",hr:"hr",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,s.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(r.U,{content:"Salesforce Marketing Cloud implementation, development and operations Best Practices. In brief and detail."}),"\n",(0,i.jsxs)(t.p,{children:["I'm a massive fan of Tim Peters' ",(0,i.jsx)(t.a,{href:"https://www.python.org/dev/peps/pep-0020/",children:"PEP20 - Zen of Python"}),". In 19 short lines, he described his recommendations for writing good Python code. The outcome transcended the specific language, and I see it as a universal guide on software engineering."]}),"\n",(0,i.jsx)(t.p,{children:"In this article, I share my Salesforce Marting Cloud adaptation and interpretation of this pearl. Expect some modifications to the original text (minimal, as most of the recommendations are perfectly valid for our Marketing Automation world), followed by my comments on how particular lines can benefit SFMC practice."}),"\n",(0,i.jsx)(t.h2,{id:"zen-of-sfmc",children:"Zen of SFMC"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-txt",children:"Beautiful is better than ugly.\nExplicit is better than implicit.\nSimple is better than complex.\nComplex is better than complicated.\nFlat is better than nested.\nSparse is better than dense.\nReadability counts.\nNaming conventions count twice.\nSpecial cases aren't special enough to break the rules.\nAlthough practicality beats purity.\nErrors should never pass silently.\nUnless explicitly silenced.\nIn the face of ambiguity, refuse the temptation to guess.\nEven when certain, test.\nNow is better than never.\nAlthough never is often better than right now.\nIf the implementation is hard to explain, it's a bad idea.\nIf the implementation is easy to explain, it may be a good idea.\nDocumentation is one honking great idea - let's do more of it!\n"})}),"\n",(0,i.jsx)(t.h2,{id:"thoughts-on-zen",children:"Thoughts on Zen"}),"\n",(0,i.jsx)(t.p,{children:"Remember that those recommendations are just that - recommendations. Not strict rules, but rather a set of (sometimes contradictory) guidelines that might help you in your day-to-day work with Salesforce Marketing Cloud."}),"\n",(0,i.jsx)(t.hr,{}),"\n",(0,i.jsx)(t.h3,{id:"beautiful-is-better-than-ugly",children:"Beautiful is better than ugly."}),"\n",(0,i.jsx)(t.p,{children:"Beauty might not immediately come to mind in the context of software development and implementation, especially in the world of short deadlines and evergrowing KPIs. However, one should not forget about beauty when deploying Marketing Cloud solutions."}),"\n",(0,i.jsx)(t.p,{children:"It makes working on the tool more motivating and pleasant and supports many other recommendations listed here - with readability in the first place. Below you can see examples of implementing the beauty principle in the Salesforce Marketing Cloud."}),"\n",(0,i.jsxs)(o.A,{defaultValue:null,values:[{label:"SFMC Code Example",value:"code"},{label:"SFMC UI Example",value:"ui"}],children:[(0,i.jsxs)(a.A,{value:"code",children:[(0,i.jsx)(t.p,{children:"When you are writing code in Salesforce Marketing Cloud - be it AMPScript, SSJS, SQL, or other - you have a lot of flexibility regarding structure and style. Random indentation, lack of new lines, cryptic variables? Everything is possible and might work."}),(0,i.jsx)(t.p,{children:"But you shouldn't stop at writing code that just works. Apply a beauty-focused mindset, and while writing might take a bit longer, the outcome will be more readable, understandable to others and easier to debug."}),(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-sql",metastring:'title="Both queries work - which one would you rather read?"',children:"/* Beauty */\nSELECT\n wel.SubscriberKey AS SubscriberKey\n , wel.EmailAddress AS EmailAddress\n , o.EventDate AS OpenDate\nFROM WelcomeCampaignSegment AS wel\n INNER JOIN _Open AS o\n ON o.SubscriberKey = wel.SubscriberKey\n\n/* and the Beast */\nSelect a.subscriberkey, a.emailaddress, b.eventdate\nFrom welcomecampaignsegment a join _open b on a.subscriberkey = b.subscriberkey\n\n"})}),(0,i.jsxs)(t.p,{children:["Check my Style Guides for ",(0,i.jsx)(t.a,{href:"/docs/ampscript/ampscript-style-guide",children:"AMPScript"}),", ",(0,i.jsx)(t.a,{href:"/docs/ssjs/ssjs-style-guide",children:"SSJS"}),", ",(0,i.jsx)(t.a,{href:"/docs/sql/sfmc-sql-style-guide",children:"SQL"})," to see more guides on making your code beautiful."]})]}),(0,i.jsxs)(a.A,{value:"ui",children:[(0,i.jsx)(t.p,{children:"The choice between beauty and ugliness is not limited to writing the code. The same is valid for working with Salesforce Marketing Cloud no-code tools."}),(0,i.jsx)(t.p,{children:"Are you creating an Email Template using Blocks in Content Builder? You can drag and drop the empty blocks in proper order and call it a day. But you can also put a bit more work and add sample content with predefined styles to each block, provide placeholder images with visible dimensions and save those elements as separate blocks ready for reuse."}),(0,i.jsx)(t.p,{children:"Both approaches deliver the Email Template, but the second one keeps beauty in mind resulting in improved usefulness and value of the final solution."})]})]}),"\n",(0,i.jsx)(t.hr,{}),"\n",(0,i.jsx)(t.h3,{id:"explicit-is-better-than-implicit",children:"Explicit is better than implicit."}),"\n",(0,i.jsx)(t.p,{children:"Salesforce Marketing Cloud enables you to decide whether you want to create things implicitly or explicitly. Implicit is faster and easier. Explicit is sturdier and better."}),"\n",(0,i.jsx)(t.p,{children:"As the SFMC is long term commitment used by many people, it's always worth spending a bit more effort and going for the explicit whenever possible. It will save you and your organisation much time in the long run, so consider it an investment."}),"\n",(0,i.jsxs)(o.A,{defaultValue:null,values:[{label:"SFMC Code Example",value:"code"},{label:"SFMC UI Example",value:"ui"}],children:[(0,i.jsxs)(a.A,{value:"code",children:[(0,i.jsx)(t.p,{children:"We can leverage many tricks when coding for Salesforce Marketing Cloud - implicit data type conversions, undocumented endpoints and function behaviours, or just language-specific syntactic sugar. As helpful as they are, those tricks obscure readability, introduce error risk to the code, and many won't know/understand them."}),(0,i.jsx)(t.p,{children:"This is why, unless such tricks are necessary, I recommend going for the explicit, clear and obvious version. Even if it is slightly longer or not as sexy."}),(0,i.jsx)(t.p,{children:"Of course, it is not always possible - some things are possible only by coding on the edge of the documentation. Even then, you can make it more explicit with good comments. And don't limit those to just the tricky parts. Describing the cleanest functions and scripts will help you (and your team) work more effectively."}),(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-js",metastring:"title=\"'Code tells you how. Comments tell you why.' - Jeff Atwood\"",children:"/**\n * @function debugValue\n * @description Outputs provided description and SSJS value to front-end in a type-safe & consistent way\n * @param {string} description - Describes meaning of the second parameter in the output\n * @param {*} value - The value that needs to be debugged\n */\nfunction debugValue(description, value) {\n Write(description + ': ' + (typeof value == 'object' ? Stringify(value) : value) + '

');\n};\n"})}),(0,i.jsxs)(t.p,{children:["Read more on using comments in ",(0,i.jsx)(t.a,{href:"/docs/ssjs/ssjs-style-guide#comments",children:"SSJS"})," and ",(0,i.jsx)(t.a,{href:"/docs/ampscript/ampscript-style-guide#comments",children:"AMPScript"}),"."]}),(0,i.jsxs)(t.admonition,{title:"You Should Know",type:"note",children:[(0,i.jsx)(t.p,{children:"An explicit approach can (and should) be taken to the next level with smart use of asset Keys. They are frequently used in code - especially the Data Extension and Content Block keys. While the default pseudo-random ID does the work, I recommend going for the custom explicit Keys."}),(0,i.jsx)(t.p,{children:"If you keep Data Extension Name and Key in sync (it might not be possible with longer names due to the Key length limit), you won't have to worry about whether the Data Extension lookup uses the key or the name."}),(0,i.jsxs)(t.p,{children:["You can get even more value from this approach with Content Blocks. It's popular to use them for AMPScript snippets shared across multiple emails or brand-wide dynamic footers. Frequently they are added to the Email Templates with the help of the AMPScript ",(0,i.jsx)(t.code,{children:"ContentBlockByID"})," function. However, as an asset collection grows, it will be harder to remember which Content Block you imported that way (IDs aren't helpful with that)."]}),(0,i.jsxs)(t.p,{children:["Explicit Content Block Key and ",(0,i.jsx)(t.code,{children:"ContentBlockByKey"})," function can help:"]}),(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-js",metastring:'title="Which one would you rather see in the email template?"',children:'%%=ContentBlockByID("123456")=%%\n// vs\n%%=ContentBlockByKey("SharedFooterEMEA")=%%\n'})})]})]}),(0,i.jsxs)(a.A,{value:"ui",children:[(0,i.jsx)(t.p,{children:"Being explicit is not limited to the code. When working with the SFMC no-code features, you will have many places to improve your solution by adding information."}),(0,i.jsxs)(t.p,{children:["Many assets offer one or more places to add details: Data Extensions, Installed Packages, Automations - or even Activity-grouping steps. Neither of those places ",(0,i.jsx)(t.em,{children:"requires"})," a description, but each and single one will benefit from explicitly stating its purpose and business/technical context."]}),(0,i.jsx)(t.p,{children:"There are also places where Salesforce Marketing Cloud lets you add smaller pieces of information. Not full descriptions, but rather optional micro data points that explain the purpose. Path names in Journey Builder Decision Splits. Additional Email Attribute Names in Content Builder. Collection and Cloud Page names in Web Studio. Whenever possible - spend that extra time needed to come up with explicit value."})]})]}),"\n",(0,i.jsx)(t.hr,{}),"\n",(0,i.jsx)(t.h3,{id:"simple-is-better-than-complex",children:"Simple is better than complex."}),"\n",(0,i.jsx)(t.p,{children:"Marketing Cloud is a complex tool within a complex Salesforce ecosystem focused on solving complex business needs. But how you operate and develop SFMC should be as straightforward as possible. It will make your solution robust, agile and easily understandable."}),"\n",(0,i.jsx)(t.h4,{id:"kiss",children:"KISS"}),"\n",(0,i.jsxs)(t.p,{children:["This recommendation is also known in the software development community under a popular acronym: ",(0,i.jsx)(t.strong,{children:"KISS"})," (Keep It Simple ",(0,i.jsx)(t.del,{children:"Stupid"})," Salesforce). In short, it advocates creating solutions as simple as they can be without sacrificing other values (like readability or performance)."]}),"\n",(0,i.jsx)(t.h4,{id:"yagni",children:"YAGNI"}),"\n",(0,i.jsxs)(t.p,{children:["Another popular acronym connected to the simplicity principle is ",(0,i.jsx)(t.strong,{children:"YAGNI"})," (You Aren't Gonna Need It). This Extreme Programming methodology mantra adds another perspective by stating that you should build only the necessary elements when creating the solution. Everything else is just bloat that makes the outcome more convoluted and error-prone."]}),"\n",(0,i.jsxs)(o.A,{defaultValue:null,values:[{label:"SFMC Code Example",value:"code"},{label:"SFMC UI Example",value:"ui"}],children:[(0,i.jsxs)(a.A,{value:"code",children:[(0,i.jsxs)(t.p,{children:["The simplicity focus is useful already when you select the best programming language to do the job. Sure, SSJS is much more powerful and flexible than AMPScript, but unless you have a specific need for this power (YAGNI) you should go for the simpler solution (KISS) (",(0,i.jsx)(t.a,{href:"/docs/ssjs/ssjs-vs-ampscript-performance#ampscript-vs-ssjs",children:"more on selecting SSJS vs AMPScript"}),")."]}),(0,i.jsxs)(t.p,{children:["Once you select the best language for the job, you will have to code the solution. And here again, simplicity will be a helpful guideline. For example, yes, you can create a universal SSJS API wrapper class, but if your script only needs to update Salesforce objects, ",(0,i.jsx)(t.a,{href:"/docs/ssjs/snippets/ampscript-in-ssjs",children:"built-in AMPScript functions"})," will be enough (YAGNI) and much simpler (KISS)."]}),(0,i.jsx)(t.p,{children:"Think about KISS and YAGNI whenever you are coding, and it will help you deliver more straightforward and better solutions."}),(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-sql",children:"SELECT\n SubscriberKey\n , CASE\n WHEN DateJoined >= DATEADD(MONTH, -1, GETDATE()) THEN 1\n WHEN DateJoined < DATEADD(MONTH, -1, GETDATE()) THEN 0\n END AS IsNewJoiner\nFROM Ent._Subscribers\n/* When you only need two opposite CASE rules, simple IIF shorthand is better */\nSELECT\n SubscriberKey\n , IIF(DateJoined >= DATEADD(MONTH, -1, GETDATE()), 1, 0) AS IsNewJoiner\nFROM Ent._Subscribers\n"})})]}),(0,i.jsxs)(a.A,{value:"ui",children:[(0,i.jsx)(t.p,{children:"The two-step approach - limiting the scope (YAGNI) and selecting the easiest solution to deliver it (KISS) - can be applied to no-code solutions as well:"}),(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"When creating an email, ask yourself whether you have a specific need requiring custom HTML. If not, go for a simple Drag & Drop Blocks Template."}),"\n",(0,i.jsx)(t.li,{children:"When creating a segment, ask yourself whether you need multiple data sources or calculated data. If not, simple filtered data extension might be enough."}),"\n",(0,i.jsx)(t.li,{children:"When creating complex automation, ask yourself whether you need all those activities in a single process. If not, split into multiple single-purpose Automations."}),"\n"]}),(0,i.jsx)(t.p,{children:"There are countless places in Salesforce Marketing Cloud to apply this approach to benefit the final solution."})]})]}),"\n",(0,i.jsx)(t.hr,{}),"\n",(0,i.jsx)(t.h3,{id:"complex-is-better-than-complicated",children:"Complex is better than complicated."}),"\n",(0,i.jsx)(t.p,{children:"It might sound contradictory to the previous recommendation, but only on the surface. There is a limit to what can be simplified before it starts getting complicated. In such a case, the complex is the lesser evil."}),"\n",(0,i.jsx)(t.h4,{id:"soc",children:"SOC"}),"\n",(0,i.jsxs)(t.p,{children:["When laser-focused on simplicity, you will feel tempted to create the whole solution as one element (one script, one Automation, one email). ",(0,i.jsx)(t.strong,{children:"SOC"})," (Separation of Concerns) rule tells us that it might be a bad idea to build one solution from multiple parts, each with a different purpose. Numerous concerns stacked within a single asset will make it complicated rather than simple. The recommendation? Split it into separate purpose-oriented elements. It will get more complex but less complicated."]}),"\n",(0,i.jsx)(t.h4,{id:"dry",children:"DRY"}),"\n",(0,i.jsxs)(t.p,{children:["Another essential acronym is ",(0,i.jsx)(t.strong,{children:"DRY"})," (Don't Repeat Yourself). It shows a different perspective on the same problem - the simple solution that needs to be replicated multiple times leads to a complicated outcome. Updating is a hassle; performance drops; readability is poor. DRY suggests finding such repetitive spots and refactoring them."]}),"\n",(0,i.jsx)(t.p,{children:"Another application of the DRY principle is related not to a specific solution but to work in general. If you find you are doing the same thing again and again, Don't Repeat Yourself. Automate it."}),"\n",(0,i.jsxs)(o.A,{defaultValue:null,values:[{label:"SFMC Code Example",value:"code"},{label:"SFMC UI Example",value:"ui"}],children:[(0,i.jsxs)(a.A,{value:"code",children:[(0,i.jsx)(t.p,{children:"I have seen many (too many) Subscription Preference Centers in SFMC built with AMPScript. Yes, it's a simple language and capable enough to deliver such a solution. But because of its simplicity, for this use case, it quickly gets full of repeating script lines (DRY violation), multiple purposes (SOC violation) and endless lines of code (readability suffers)."}),(0,i.jsxs)(t.p,{children:["My recommendation for most of the Preference Centers is to go with SSJS. Yes, it's a more complex language than AMPScript, but with a set of tools dedicated to delivering complex use cases. Implement SOC and make it DRY with functions & ",(0,i.jsx)(t.a,{href:"/docs/ssjs/ssjs-loops",children:"loops"}),". Bring it to the next level by splitting Front-End (Cloud Page) and Back-End (Code Resource). Compared to a single Cloud Page with AMPScript, this solution will be more complex but much less complicated. Thus easier to debug and maintain."]})]}),(0,i.jsxs)(a.A,{value:"ui",children:[(0,i.jsx)(t.p,{children:"The same rules apply to Marketing Cloud no-code solutions. Filtered Data Extensions with Data Relationships are excellent for simple segmentation. Still, when the segment requirements get more complicated, it's better to move to more complex SQL Queries in Automation Studio."}),(0,i.jsxs)(t.p,{children:["Similarly, you can leverage Marketing Cloud Connect and Journey Builder to update data in Salesforce CRM without any code. Still, when you get to the point of creating journeys with only such updates in mind - its better to go for more complex but less complicated ",(0,i.jsx)(t.a,{href:"/docs/ssjs/snippets/ampscript-in-ssjs#long-ampscript-code",children:"AMPScript SalesforceObject"})," functions."]})]})]}),"\n",(0,i.jsx)(t.hr,{}),"\n",(0,i.jsx)(t.h3,{id:"flat-is-better-than-nested-sparse-is-better-than-dense",children:"Flat is better than nested. Sparse is better than dense."}),"\n",(0,i.jsxs)(t.p,{children:["When working on the solution, it is easy to build a matryoshka. Multiple goals within one asset? Let's add an ",(0,i.jsxs)(t.a,{href:"/docs/ssjs/ssjs-if-and-switch",children:[(0,i.jsx)(t.code,{children:"if"}),"/",(0,i.jsx)(t.code,{children:"switch"})]})," in the code or a decision split in the Journey Builder. Edge case found during testing? Yet another ",(0,i.jsx)(t.code,{children:"if"}),". Multiple goals within one email? The 4-column layout is here! KPIs for leads, sales, loyalty and brand are not yet met? Let's pack them in a just-being-built welcome Journey."]}),"\n",(0,i.jsx)(t.p,{children:"This turn of events is natural during development, but it quickly leads to a complicated outcome. There are two ways to solve it:"}),"\n",(0,i.jsxs)(t.ol,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"Plan"}),' - As Abraham Lincoln once said, "Give me six hours to chop down a tree, and I will spend the first four sharpening the axe". The same approach will benefit your Marketing Cloud instance.']}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"Refactor"})," - Planning is incredible, but it's nearly impossible to prepare a bulletproof plan. That's fine, as long as you refactor your solution after hitting the bump on the road."]}),"\n"]}),"\n",(0,i.jsx)(t.p,{children:"Following those steps will help you create simpler, lighter and better solutions. And the more refactors you do, the better in planning you will become."}),"\n",(0,i.jsxs)(o.A,{defaultValue:null,values:[{label:"SFMC Code Example",value:"code"},{label:"SFMC UI Example",value:"ui"}],children:[(0,i.jsxs)(a.A,{value:"code",children:[(0,i.jsx)(t.p,{children:"It's easy to write deeply nested code. It's even easier to write dense code, full of syntactic sugar that is short and looks 'professional'\u2014especially when copy-pasting a magical solution found on the Stack Overlow (been there, done that)."}),(0,i.jsxs)(t.p,{children:["However, the good code doesn't have to be short or prove that you know all quirks of the language. The good code must be ",(0,i.jsx)(t.a,{href:"#readability-counts",children:"readable"}),", ",(0,i.jsx)(t.a,{href:"#simple-is-better-than-complex",children:"simple"})," and ",(0,i.jsx)(t.a,{href:"#explicit-is-better-than-implicit",children:"explicit"}),". And in many cases, it will be a bit longer and created from simpler building blocks."]}),(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-js",metastring:"title=\"Just because it works, doesn't mean it's worth it\"",children:"var region = country == 'UK' ? 'EMEA' : country == 'PL' ? 'EMEA' : country == 'US' ? 'AMER' : 'APAC';\n/* Chained ternary operator above might take less lines of code, but it's definitely not readable.\nMaking it more sparse and flat is not only easier for the readars but also for future modifications */\nif (country == 'UK' || country == 'PL') {\n var region = 'EMEA';\n} else if (country == 'US') {\n var region = 'AMER';\n} else {\n var region = 'APAC';\n};\n"})})]}),(0,i.jsxs)(a.A,{value:"ui",children:[(0,i.jsxs)(t.p,{children:["When building in Journey Builder, it is easy to nest Decision Splits to send various communication based on some criteria, but this approach will quickly become ",(0,i.jsx)(t.a,{href:"#complex-is-better-than-complicated",children:"complicated"})," and (with how SFMC renders multiple splits) ",(0,i.jsx)(t.a,{href:"#beautiful-is-better-than-ugly",children:"ugly"}),"."]}),(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"If you want to add the splits to cover more appropriate personalisation - make your Journey flat by leveraging Dynamic Content instead."}),"\n",(0,i.jsxs)(t.li,{children:["If you want to add the splits to cover different campaign goals - make your Journey flat by splitting each goal into separate Journey (",(0,i.jsx)(t.a,{href:"#soc",children:"SOC principle"}),")."]}),"\n"]}),(0,i.jsx)(t.p,{children:"The same is true for Emails that frequently grow due to applying multiple KPIs. Sure, you can cram a lot if you go for a 4-column layout with numerous sections. But the layout bugs will emerge, deliverability will suffer, readability will tank, and the reader will get lost in the number of calls to action. Instead, focus on one concrete and targeted action that is crucial for your business."})]})]}),"\n",(0,i.jsx)(t.hr,{}),"\n",(0,i.jsx)(t.h3,{id:"readability-counts",children:"Readability counts."}),"\n",(0,i.jsx)(t.p,{children:"Readability is key. In code, it limits bugs, simplifies debugging, improves future development and saves tons of time. In content, it's key to drive the message to the recipient. In short, without readability, there is no value."}),"\n",(0,i.jsxs)(t.p,{children:["I have already written a lot about readability of Marketing Cloud programmatic langauges: ",(0,i.jsx)(t.a,{href:"/docs/ampscript/ampscript-style-guide",children:"AMPScript"}),", ",(0,i.jsx)(t.a,{href:"/docs/ssjs/ssjs-style-guide",children:"SSJS"}),", ",(0,i.jsx)(t.a,{href:"/docs/sql/sfmc-sql-style-guide",children:"SQL"}),"."]}),"\n",(0,i.jsx)(t.p,{children:"As for the readability of content:"}),"\n",(0,i.jsxs)(t.ol,{children:["\n",(0,i.jsx)(t.li,{children:"Write short sentences (15 words are nice; stay under 30)."}),"\n",(0,i.jsx)(t.li,{children:'Use simple language (instead of "due to the fact that" use "because").'}),"\n",(0,i.jsx)(t.li,{children:'Prove with hard data (instead of "significant amount of customers recommends" use "93% of customer recommends").'}),"\n",(0,i.jsx)(t.li,{children:'Cut marketing fluff (every part of the content should have an answer to the "so what?" question).'}),"\n",(0,i.jsx)(t.li,{children:"Proofread. Proofread again."}),"\n"]}),"\n",(0,i.jsx)(t.hr,{}),"\n",(0,i.jsx)(t.h3,{id:"naming-conventions-count-twice",children:"Naming conventions count twice."}),"\n",(0,i.jsx)(t.p,{children:"I love naming conventions and believe they are crucial to the long term success of marketing automation solutions. They improve readability and maintainability, bring clarity and unlock even more automation possibilities."}),"\n",(0,i.jsx)(t.p,{children:"What is unique about them is that they provide the most value when implemented from the very start and enforced everywhere. But if you are thinking long term (and with Marketing Automation tools - you should), it's better to implement one late than never. The bigger and older the solution, the more you will feel that a good naming convention is not nice-to-have but rather a must-have."}),"\n",(0,i.jsxs)(o.A,{defaultValue:null,values:[{label:"SFMC Code Example",value:"code"},{label:"SFMC UI Example",value:"ui"}],children:[(0,i.jsxs)(a.A,{value:"code",children:[(0,i.jsx)(t.p,{children:"You can benefit from implementing a naming convention in all SFMC programming languages. Strive for variable, function, column names that are obvious even for someone who sees the code for the first time. Saving a few characters for a shorter name is not worth the time lost for deciphering the meaning later."}),(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-js",children:"/* You may know what it means when you write the code... */\nif (ts && !tsd) tsd = new Date();\n\n/* ... but everyone else, and even you after a week, will be thankful for explicit names */\nif (isTrackingSuppressed && !trackingSuppressionStartDate) trackingSuppressionStartDate = new Date()\n"})}),(0,i.jsxs)(t.p,{children:["Looking for more examples of good naming? Check Style Guide recommendations for ",(0,i.jsx)(t.a,{href:"/docs/ampscript/ampscript-style-guide#naming-convention",children:"AMPScript"}),", ",(0,i.jsx)(t.a,{href:"/docs/ssjs/ssjs-style-guide#naming-convention",children:"SSJS"})," and ",(0,i.jsx)(t.a,{href:"/docs/sql/sfmc-sql-style-guide#explicit-vs-implicit",children:"SQL"}),"."]})]}),(0,i.jsxs)(a.A,{value:"ui",children:[(0,i.jsxs)(t.p,{children:["The naming convention is huge when working with the Salesforce Marketing Cloud. Leveraging a proper one makes it much easier to search and differentiate the assets. It's also an excellent tool to enable some smart personalisations and checks in email communication (with the help of the ",(0,i.jsx)(t.code,{children:"%%emailname_%%"})," personalisation string). And that's not all - a good naming convention will increase value coming from System Data Views and reporting."]}),(0,i.jsx)(t.p,{children:"With all this praise - what is a good naming convention for the marketing automation assets? It, of course, depends on the specifics of your business, but my recommendation is to mix data-filled shortcuts with separators."}),(0,i.jsx)(t.p,{children:"My favourite approach is to:"}),(0,i.jsxs)(t.ol,{children:["\n",(0,i.jsx)(t.li,{children:"Define a set of business-oriented data points that bring value."}),"\n",(0,i.jsx)(t.li,{children:"Create readable shortcuts for them to limit the final length of the naming convention."}),"\n",(0,i.jsx)(t.li,{children:"Create a dedicated place for each separate element in the naming convention."}),"\n",(0,i.jsxs)(t.li,{children:["Split the elements with an underscore (",(0,i.jsx)(t.code,{children:"_"}),")."]}),"\n",(0,i.jsxs)(t.li,{children:["Split parts of a single element with a hyphen (",(0,i.jsx)(t.code,{children:"-"}),")."]}),"\n"]}),(0,i.jsx)(t.p,{children:"That's the theory, but what are good business-oriented data points? Some examples I frequently use are:"}),(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"Country (if you are operating in multiple markets)"}),"\n",(0,i.jsx)(t.li,{children:"Business Unit (if you have a complex internal structure of the company)"}),"\n",(0,i.jsx)(t.li,{children:"Segment (if you have a set of predefined master-segments / personas)"}),"\n",(0,i.jsx)(t.li,{children:"Campaign Type (it's always helpful)"}),"\n",(0,i.jsx)(t.li,{children:"Free-text Asset Name (the human-readable part that helps easily understand the purpose)"}),"\n",(0,i.jsx)(t.li,{children:"Asset Type (can help in Content Builder to differentiate various partial assets)"}),"\n",(0,i.jsx)(t.li,{children:"Date (beneficial, especially if you are creating a lot of similar assets for recurring goals)"}),"\n",(0,i.jsx)(t.li,{children:"Campaign Code (or whatever you are using for closed-loop reporting and 360 analytics)"}),"\n"]}),(0,i.jsx)(t.p,{children:"How does it look when implemented? Let's check an example:"}),(0,i.jsx)(t.p,{children:(0,i.jsx)(t.code,{children:"UK_DEV_C_WEL_brand-welcome-1_EML_21-10_01234"})}),(0,i.jsx)(t.p,{children:"It's elements would be:"}),(0,i.jsxs)(t.ol,{children:["\n",(0,i.jsxs)(t.li,{children:["Country: ",(0,i.jsx)(t.code,{children:"UK"})," = United Kingdom"]}),"\n",(0,i.jsxs)(t.li,{children:["Business Unit: ",(0,i.jsx)(t.code,{children:"DEV"})," = Development"]}),"\n",(0,i.jsxs)(t.li,{children:["Segment: ",(0,i.jsx)(t.code,{children:"C"})," = Customers"]}),"\n",(0,i.jsxs)(t.li,{children:["Campaign Type: ",(0,i.jsx)(t.code,{children:"WEL"})," = Welcome"]}),"\n",(0,i.jsxs)(t.li,{children:["Asset Name: ",(0,i.jsx)(t.code,{children:"brand-welcome-1"})]}),"\n",(0,i.jsxs)(t.li,{children:["Asset Type: ",(0,i.jsx)(t.code,{children:"EML"})," = Email"]}),"\n",(0,i.jsxs)(t.li,{children:["Date: ",(0,i.jsx)(t.code,{children:"21-10"})," = October 2021"]}),"\n",(0,i.jsxs)(t.li,{children:["Campaign Code: ",(0,i.jsx)(t.code,{children:"01234"})]}),"\n"]}),(0,i.jsx)(t.p,{children:"As you can see, in under 50 characters, we captured eight different data points and a pretty good picture of the purpose of the asset."}),(0,i.jsx)(t.p,{children:"What is more, the Business Intelligence team will be able to use a simple split by an underscore to capture each element as a separate category to enable filtering and grouping in reporting."})]})]}),"\n",(0,i.jsx)(t.hr,{}),"\n",(0,i.jsx)(t.h3,{id:"special-cases-arent-special-enough-to-break-the-rules-although-practicality-beats-purity",children:"Special cases aren't special enough to break the rules. Although practicality beats purity."}),"\n",(0,i.jsx)(t.p,{children:"Those contradictory lines follow the ancient greek golden middle way philosophy. The thought behind them is pretty straightforward. Whenever you decide to stick to some recommendation or rule (be it from this article or else) - fight the temptation to create exceptions when you encounter the first bump on the road."}),"\n",(0,i.jsx)(t.p,{children:'Sure, it might be easier to ignore the rule when the deadline is near or you have too much to do. It\'s easy to say, "I will align it later". But there is always more work to be done "later", and in the end, you finish with a messy solution that doesn\'t provide the promised value.'}),"\n",(0,i.jsx)(t.p,{children:"On the other hand, following the rules by the book in every single case might stop you from delivering a working solution at all."}),"\n",(0,i.jsxs)(t.p,{children:["That's why we must learn how to follow the rules ",(0,i.jsx)(t.strong,{children:"and"})," when to break them."]}),"\n",(0,i.jsx)(t.p,{children:"So follow the rules as a default, break them only when there is no other option, and refactor them whenever possible."}),"\n",(0,i.jsx)(t.hr,{}),"\n",(0,i.jsx)(t.h3,{id:"errors-should-never-pass-silently-unless-explicitly-silenced",children:"Errors should never pass silently. Unless explicitly silenced."}),"\n",(0,i.jsx)(t.p,{children:"Every solution can encounter some problems or edge cases. You can even be hit with something outside of your control, like server issues. It is why capturing and analysing the errors is so essential."}),"\n",(0,i.jsxs)(t.p,{children:["In terms of code it means proper ",(0,i.jsx)(t.a,{href:"/docs/ssjs/debugging-ssjs",children:"debugging and error handling"}),". Especially ",(0,i.jsx)(t.a,{href:"/docs/ssjs/debugging-ssjs#error-logging",children:"error logging"})," is good idea to keep up with the potential issues in matured Marketing Cloud solution. You can also protect your solution by creating last resort checks in messaging with the ",(0,i.jsx)(t.code,{children:"RaiseError"})," function."]}),"\n",(0,i.jsx)(t.p,{children:"But there are also platform-based features that capture issues. Journey pre-launch validation, Verification Activity for Automation Studio and its built-in error logging, Send Logs, and Audit Trail. Salesforce Marketing Cloud offers many tools to make sure you are up to speed with the state of your platform, so make sure you use all of them."}),"\n",(0,i.jsx)(t.p,{children:"However, just because you can, it doesn't mean you always need to throw an error. There are some cases where silencing them is the right thing to do. Example?"}),"\n",(0,i.jsx)(t.p,{children:"When sending a personalised email, you might find some contacts with missing data that would error out the send. Ask yourself whether you genuinely want an error in such cases, or rather a dynamic content with non-personalised default will work better."}),"\n",(0,i.jsx)(t.p,{children:"Such workarounds are even more critical for errors on client-facing assets like Cloud Pages. When coding the user experience, check the possible errors and consider which should be visible to the end-user."}),"\n",(0,i.jsx)(t.p,{children:"And - considering the quality of out-of-the-box SFMC errors - always provide custom error messages."}),"\n",(0,i.jsx)(t.hr,{}),"\n",(0,i.jsx)(t.h3,{id:"in-the-face-of-ambiguity-refuse-the-temptation-to-guess-even-when-certain-test",children:"In the face of ambiguity, refuse the temptation to guess. Even when certain, test."}),"\n",(0,i.jsx)(t.p,{children:"With the complexity of Marketing Cloud, cross-cloud integrations, constant platform updates and solution development, there is much room for ambiguity. It's even more significant when you consider how the SFMC is growing - by 3rd party acquisitions and building new features on top of the legacy ones. There is a constant technical debt and multiple frameworks co-existing at the same time. With updates hitting the platform multiple times a year, even with stuff you have already done numerous times in the past - don't assume it will work the same. Don't guess. Check."}),"\n",(0,i.jsxs)(t.p,{children:["There are multiple examples of this risk. SSJS is not-fully-supported ES3 limited by the .NET backend, so you never know which feature will work. SQL is a partial SQL Server 2016 with different behaviour in Script Activity and Query Studio. There are inconsistent approaches within the same solution (for example ",(0,i.jsx)(t.a,{href:"../../sites/ideas/marketing-cloud-ideas/#content-builder-shared-folders-permissions",children:"shared folder permissions"}),"). Unexpected bugs (like incorrect rendering of ",(0,i.jsx)(t.a,{href:"../../sites/ideas/marketing-cloud-ideas/#behavioral-trigger-content-block-rendering-on-yahoo-aol-windows-outlook",children:"Behavioral Triggers"}),"). Temporary issues that change the SSJS function responses for few days."]}),"\n",(0,i.jsx)(t.p,{children:"With all this ambiguity in the system, always check during development and always check again before go-live."}),"\n",(0,i.jsx)(t.hr,{}),"\n",(0,i.jsx)(t.h3,{id:"now-is-better-than-never-although-never-is-often-better-than-right-now",children:"Now is better than never. Although never is often better than right now."}),"\n",(0,i.jsx)(t.p,{children:"When you see an opportunity for improvement or encounter a helpful recommendation, it's a good idea to take a note and implement it to improve the value of your solution. However, fight the temptation to do it instantaneously. Even the enhancement most needed in your solution might break everything if you implement it hastily."}),"\n",(0,i.jsx)(t.p,{children:"Using previous examples:"}),"\n",(0,i.jsxs)(t.ol,{children:["\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsxs)(t.p,{children:["If you are not yet using proper ",(0,i.jsx)(t.a,{href:"/docs/ssjs/debugging-ssjs",children:"debugging and error handling"}),", you definitely should implement it. Should you do it ",(0,i.jsx)(t.em,{children:"right"})," now? Well, there are some quirks that you should test beforehand; otherwise, your script might error out and break the existing process."]}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsxs)(t.p,{children:["If you want to implement the asset ",(0,i.jsx)(t.a,{href:"#naming-conventions-count-twice",children:"naming convention"}),", definitely start with discovery and cross-department alignment to have a complete picture of needs before creating the naming template. I believe everyone should use the naming convention, but it will be counterproductive if you start using it too fast and later have to update it based on late feedback."]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(t.hr,{}),"\n",(0,i.jsx)(t.h3,{id:"if-the-implementation-is-hard-to-explain-its-a-bad-idea-if-the-implementation-is-easy-to-explain-it-may-be-a-good-idea",children:"If the implementation is hard to explain, it's a bad idea. If the implementation is easy to explain, it may be a good idea."}),"\n",(0,i.jsx)(t.p,{children:"Marketing Cloud implementation is not something that one can easily explain to a five-year-old. However, if you find it hard to explain it to your colleague or client, it means that the solution is either too complex, too ambiguous, or not understood enough. Each of those cases is dangerous. In the best scenario, it may lead to a non-optimised outcome, in the worst - to a business-breaking crash."}),"\n",(0,i.jsx)(t.hr,{}),"\n",(0,i.jsx)(t.h3,{id:"documentation-is-one-honking-great-idea---lets-do-more-of-it",children:"Documentation is one honking great idea - let's do more of it!"}),"\n",(0,i.jsx)(t.p,{children:"Writing and maintaining documentation is a pain. I agree. But you know what is even bigger pain? Not having that documentation in the long run. Marketing Automation projects are long term investments. There are change requests, new team members, mistakes and bugs."}),"\n",(0,i.jsx)(t.p,{children:"In the long run, good documentation saves much more time than it takes to create it. With the complexity of the solution and the size of the team operating on it, that value grows exponentially."}),"\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.a,{href:"https://groups.google.com/g/comp.lang.c++/c/rYCO5yn4lXw/m/oITtSkZOtoUJ?pli=1",children:"John F. Woods"}),' once said, "always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live". The same is true for the whole marketing automation solution - and documentation is your best bet at surviving ;)']}),"\n",(0,i.jsx)(t.hr,{}),"\n",(0,i.jsx)(t.h2,{id:"sum-up",children:"Sum Up"}),"\n",(0,i.jsx)(t.p,{children:"There is a lot of contradictory recommendations above. It's intentional. Zen of SFMC is not a list of rigid rules - it would be impossible with the number of differences between Marketing Cloud customers. Instead, it's a set of flexible guidelines. Treat them as friendly best practices, not absolute rules and adapt them to improve your work."}),"\n",(0,i.jsx)(t.p,{children:"Across all those recommendations, you can see some key recurring ideas:"}),"\n",(0,i.jsxs)(t.ol,{children:["\n",(0,i.jsx)(t.li,{children:"Make it simple"}),"\n",(0,i.jsx)(t.li,{children:"Make it readable"}),"\n",(0,i.jsx)(t.li,{children:"Make it understandable"}),"\n",(0,i.jsx)(t.li,{children:"Make it maintainable"}),"\n",(0,i.jsx)(t.li,{children:"Make it practical"}),"\n"]}),"\n",(0,i.jsxs)(t.p,{children:["However, I still love to check the full text of the ",(0,i.jsx)(t.a,{href:"#zen-of-sfmc",children:"zen of SFMC"})," to see how well I aligned my solution with it."]})]})}function m(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(p,{...e})}):p(e)}},7227:(e,t,n)=>{n.d(t,{A:()=>a});n(6540);var i=n(4164);const s={tabItem:"tabItem_Ymn6"};var o=n(4848);function a(e){let{children:t,hidden:n,className:a}=e;return(0,o.jsx)("div",{role:"tabpanel",className:(0,i.A)(s.tabItem,a),hidden:n,children:t})}},9489:(e,t,n)=>{n.d(t,{A:()=>j});var i=n(6540),s=n(4164),o=n(4245),a=n(6347),r=n(6494),l=n(2814),c=n(5167),d=n(1269);function h(e){return i.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,i.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(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 u(e){const{values:t,children:n}=e;return(0,i.useMemo)((()=>{const e=t??function(e){return h(e).map((e=>{let{props:{value:t,label:n,attributes:i,default:s}}=e;return{value:t,label:n,attributes:i,default:s}}))}(n);return function(e){const t=(0,c.X)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,n])}function p(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function m(e){let{queryString:t=!1,groupId:n}=e;const s=(0,a.W6)(),o=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)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 n??null}({queryString:t,groupId:n});return[(0,l.aZ)(o),(0,i.useCallback)((e=>{if(!o)return;const t=new URLSearchParams(s.location.search);t.set(o,e),s.replace({...s.location,search:t.toString()})}),[o,s])]}function g(e){const{defaultValue:t,queryString:n=!1,groupId:s}=e,o=u(e),[a,l]=(0,i.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!p({value:t,tabValues:n}))throw new Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const i=n.find((e=>e.default))??n[0];if(!i)throw new Error("Unexpected error: 0 tabValues");return i.value}({defaultValue:t,tabValues:o}))),[c,h]=m({queryString:n,groupId:s}),[g,f]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[s,o]=(0,d.Dv)(n);return[s,(0,i.useCallback)((e=>{n&&o.set(e)}),[n,o])]}({groupId:s}),y=(()=>{const e=c??g;return p({value:e,tabValues:o})?e:null})();(0,r.A)((()=>{y&&l(y)}),[y]);return{selectedValue:a,selectValue:(0,i.useCallback)((e=>{if(!p({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);l(e),h(e),f(e)}),[h,f,o]),tabValues:o}}var f=n(1062);const y={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var b=n(4848);function x(e){let{className:t,block:n,selectedValue:i,selectValue:a,tabValues:r}=e;const l=[],{blockElementScrollPositionUntilNextRender:c}=(0,o.a_)(),d=e=>{const t=e.currentTarget,n=l.indexOf(t),s=r[n].value;s!==i&&(c(t),a(s))},h=e=>{let t=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const n=l.indexOf(e.currentTarget)+1;t=l[n]??l[0];break}case"ArrowLeft":{const n=l.indexOf(e.currentTarget)-1;t=l[n]??l[l.length-1];break}}t?.focus()};return(0,b.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.A)("tabs",{"tabs--block":n},t),children:r.map((e=>{let{value:t,label:n,attributes:o}=e;return(0,b.jsx)("li",{role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,ref:e=>l.push(e),onKeyDown:h,onClick:d,...o,className:(0,s.A)("tabs__item",y.tabItem,o?.className,{"tabs__item--active":i===t}),children:n??t},t)}))})}function v(e){let{lazy:t,children:n,selectedValue:s}=e;const o=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=o.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:o.map(((e,t)=>(0,i.cloneElement)(e,{key:t,hidden:e.props.value!==s})))})}function w(e){const t=g(e);return(0,b.jsxs)("div",{className:(0,s.A)("tabs-container",y.tabList),children:[(0,b.jsx)(x,{...t,...e}),(0,b.jsx)(v,{...t,...e})]})}function j(e){const t=(0,f.A)();return(0,b.jsx)(w,{...e,children:h(e.children)},String(t))}},6748:(e,t,n)=>{n.d(t,{U:()=>o});n(6540);const i="leadText_qzwo";var s=n(4848);const o=e=>{let{content:t}=e;return(0,s.jsx)(s.Fragment,{children:(0,s.jsx)("p",{id:i,children:t})})}},8453:(e,t,n)=>{n.d(t,{R:()=>a,x:()=>r});var i=n(6540);const s={},o=i.createContext(s);function a(e){const t=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),i.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/aeba84fb.bbad6da7.js b/assets/js/aeba84fb.bbad6da7.js deleted file mode 100644 index d8ffd5ff0..000000000 --- a/assets/js/aeba84fb.bbad6da7.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmd=self.webpackChunkmd||[]).push([[4894],{4875:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>h,contentTitle:()=>c,default:()=>m,frontMatter:()=>l,metadata:()=>d,toc:()=>u});var i=n(4848),s=n(8453),o=n(9489),a=n(7227),r=n(6748);const l={id:"zen-of-sfmc",title:"Zen of SFMC",description:"Salesforce Marketing Cloud implementation, development and operations Best Practices. In brief and detail.",image:"img/og/og-image-zen-of-sfmc.png",tags:["Marketing Cloud","Best Practice"],toc_max_heading_level:4},c=void 0,d={id:"zen-of-sfmc",title:"Zen of SFMC",description:"Salesforce Marketing Cloud implementation, development and operations Best Practices. In brief and detail.",source:"@site/docs/zen-of-sfmc.mdx",sourceDirName:".",slug:"/zen-of-sfmc",permalink:"/docs/zen-of-sfmc",draft:!1,unlisted:!1,editUrl:"https://github.com/MateuszDabrowski/mateuszdabrowski.pl/edit/master/docs/zen-of-sfmc.mdx",tags:[{label:"Marketing Cloud",permalink:"/docs/tags/marketing-cloud"},{label:"Best Practice",permalink:"/docs/tags/best-practice"}],version:"current",lastUpdatedBy:"Mateusz D\u0105browski",lastUpdatedAt:1708642896e3,frontMatter:{id:"zen-of-sfmc",title:"Zen of SFMC",description:"Salesforce Marketing Cloud implementation, development and operations Best Practices. In brief and detail.",image:"img/og/og-image-zen-of-sfmc.png",tags:["Marketing Cloud","Best Practice"],toc_max_heading_level:4},sidebar:"docs",next:{title:"SSJS",permalink:"/docs/category/ssjs"}},h={},u=[{value:"Zen of SFMC",id:"zen-of-sfmc",level:2},{value:"Thoughts on Zen",id:"thoughts-on-zen",level:2},{value:"Beautiful is better than ugly.",id:"beautiful-is-better-than-ugly",level:3},{value:"Explicit is better than implicit.",id:"explicit-is-better-than-implicit",level:3},{value:"Simple is better than complex.",id:"simple-is-better-than-complex",level:3},{value:"KISS",id:"kiss",level:4},{value:"YAGNI",id:"yagni",level:4},{value:"Complex is better than complicated.",id:"complex-is-better-than-complicated",level:3},{value:"SOC",id:"soc",level:4},{value:"DRY",id:"dry",level:4},{value:"Flat is better than nested. Sparse is better than dense.",id:"flat-is-better-than-nested-sparse-is-better-than-dense",level:3},{value:"Readability counts.",id:"readability-counts",level:3},{value:"Naming conventions count twice.",id:"naming-conventions-count-twice",level:3},{value:"Special cases aren't special enough to break the rules. Although practicality beats purity.",id:"special-cases-arent-special-enough-to-break-the-rules-although-practicality-beats-purity",level:3},{value:"Errors should never pass silently. Unless explicitly silenced.",id:"errors-should-never-pass-silently-unless-explicitly-silenced",level:3},{value:"In the face of ambiguity, refuse the temptation to guess. Even when certain, test.",id:"in-the-face-of-ambiguity-refuse-the-temptation-to-guess-even-when-certain-test",level:3},{value:"Now is better than never. Although never is often better than right now.",id:"now-is-better-than-never-although-never-is-often-better-than-right-now",level:3},{value:"If the implementation is hard to explain, it's a bad idea. If the implementation is easy to explain, it may be a good idea.",id:"if-the-implementation-is-hard-to-explain-its-a-bad-idea-if-the-implementation-is-easy-to-explain-it-may-be-a-good-idea",level:3},{value:"Documentation is one honking great idea - let's do more of it!",id:"documentation-is-one-honking-great-idea---lets-do-more-of-it",level:3},{value:"Sum Up",id:"sum-up",level:2}];function p(e){const t={a:"a",admonition:"admonition",code:"code",del:"del",em:"em",h2:"h2",h3:"h3",h4:"h4",hr:"hr",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,s.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(r.U,{content:"Salesforce Marketing Cloud implementation, development and operations Best Practices. In brief and detail."}),"\n",(0,i.jsxs)(t.p,{children:["I'm a massive fan of Tim Peters' ",(0,i.jsx)(t.a,{href:"https://www.python.org/dev/peps/pep-0020/",children:"PEP20 - Zen of Python"}),". In 19 short lines, he described his recommendations for writing good Python code. The outcome transcended the specific language, and I see it as a universal guide on software engineering."]}),"\n",(0,i.jsx)(t.p,{children:"In this article, I share my Salesforce Marting Cloud adaptation and interpretation of this pearl. Expect some modifications to the original text (minimal, as most of the recommendations are perfectly valid for our Marketing Automation world), followed by my comments on how particular lines can benefit SFMC practice."}),"\n",(0,i.jsx)(t.h2,{id:"zen-of-sfmc",children:"Zen of SFMC"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-txt",children:"Beautiful is better than ugly.\nExplicit is better than implicit.\nSimple is better than complex.\nComplex is better than complicated.\nFlat is better than nested.\nSparse is better than dense.\nReadability counts.\nNaming conventions count twice.\nSpecial cases aren't special enough to break the rules.\nAlthough practicality beats purity.\nErrors should never pass silently.\nUnless explicitly silenced.\nIn the face of ambiguity, refuse the temptation to guess.\nEven when certain, test.\nNow is better than never.\nAlthough never is often better than right now.\nIf the implementation is hard to explain, it's a bad idea.\nIf the implementation is easy to explain, it may be a good idea.\nDocumentation is one honking great idea - let's do more of it!\n"})}),"\n",(0,i.jsx)(t.h2,{id:"thoughts-on-zen",children:"Thoughts on Zen"}),"\n",(0,i.jsx)(t.p,{children:"Remember that those recommendations are just that - recommendations. Not strict rules, but rather a set of (sometimes contradictory) guidelines that might help you in your day-to-day work with Salesforce Marketing Cloud."}),"\n",(0,i.jsx)(t.hr,{}),"\n",(0,i.jsx)(t.h3,{id:"beautiful-is-better-than-ugly",children:"Beautiful is better than ugly."}),"\n",(0,i.jsx)(t.p,{children:"Beauty might not immediately come to mind in the context of software development and implementation, especially in the world of short deadlines and evergrowing KPIs. However, one should not forget about beauty when deploying Marketing Cloud solutions."}),"\n",(0,i.jsx)(t.p,{children:"It makes working on the tool more motivating and pleasant and supports many other recommendations listed here - with readability in the first place. Below you can see examples of implementing the beauty principle in the Salesforce Marketing Cloud."}),"\n",(0,i.jsxs)(o.A,{defaultValue:null,values:[{label:"SFMC Code Example",value:"code"},{label:"SFMC UI Example",value:"ui"}],children:[(0,i.jsxs)(a.A,{value:"code",children:[(0,i.jsx)(t.p,{children:"When you are writing code in Salesforce Marketing Cloud - be it AMPScript, SSJS, SQL, or other - you have a lot of flexibility regarding structure and style. Random indentation, lack of new lines, cryptic variables? Everything is possible and might work."}),(0,i.jsx)(t.p,{children:"But you shouldn't stop at writing code that just works. Apply a beauty-focused mindset, and while writing might take a bit longer, the outcome will be more readable, understandable to others and easier to debug."}),(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-sql",metastring:'title="Both queries work - which one would you rather read?"',children:"/* Beauty */\nSELECT\n wel.SubscriberKey AS SubscriberKey\n , wel.EmailAddress AS EmailAddress\n , o.EventDate AS OpenDate\nFROM WelcomeCampaignSegment AS wel\n INNER JOIN _Open AS o\n ON o.SubscriberKey = wel.SubscriberKey\n\n/* and the Beast */\nSelect a.subscriberkey, a.emailaddress, b.eventdate\nFrom welcomecampaignsegment a join _open b on a.subscriberkey = b.subscriberkey\n\n"})}),(0,i.jsxs)(t.p,{children:["Check my Style Guides for ",(0,i.jsx)(t.a,{href:"/docs/ampscript/ampscript-style-guide",children:"AMPScript"}),", ",(0,i.jsx)(t.a,{href:"/docs/ssjs/ssjs-style-guide",children:"SSJS"}),", ",(0,i.jsx)(t.a,{href:"/docs/sql/sfmc-sql-style-guide",children:"SQL"})," to see more guides on making your code beautiful."]})]}),(0,i.jsxs)(a.A,{value:"ui",children:[(0,i.jsx)(t.p,{children:"The choice between beauty and ugliness is not limited to writing the code. The same is valid for working with Salesforce Marketing Cloud no-code tools."}),(0,i.jsx)(t.p,{children:"Are you creating an Email Template using Blocks in Content Builder? You can drag and drop the empty blocks in proper order and call it a day. But you can also put a bit more work and add sample content with predefined styles to each block, provide placeholder images with visible dimensions and save those elements as separate blocks ready for reuse."}),(0,i.jsx)(t.p,{children:"Both approaches deliver the Email Template, but the second one keeps beauty in mind resulting in improved usefulness and value of the final solution."})]})]}),"\n",(0,i.jsx)(t.hr,{}),"\n",(0,i.jsx)(t.h3,{id:"explicit-is-better-than-implicit",children:"Explicit is better than implicit."}),"\n",(0,i.jsx)(t.p,{children:"Salesforce Marketing Cloud enables you to decide whether you want to create things implicitly or explicitly. Implicit is faster and easier. Explicit is sturdier and better."}),"\n",(0,i.jsx)(t.p,{children:"As the SFMC is long term commitment used by many people, it's always worth spending a bit more effort and going for the explicit whenever possible. It will save you and your organisation much time in the long run, so consider it an investment."}),"\n",(0,i.jsxs)(o.A,{defaultValue:null,values:[{label:"SFMC Code Example",value:"code"},{label:"SFMC UI Example",value:"ui"}],children:[(0,i.jsxs)(a.A,{value:"code",children:[(0,i.jsx)(t.p,{children:"We can leverage many tricks when coding for Salesforce Marketing Cloud - implicit data type conversions, undocumented endpoints and function behaviours, or just language-specific syntactic sugar. As helpful as they are, those tricks obscure readability, introduce error risk to the code, and many won't know/understand them."}),(0,i.jsx)(t.p,{children:"This is why, unless such tricks are necessary, I recommend going for the explicit, clear and obvious version. Even if it is slightly longer or not as sexy."}),(0,i.jsx)(t.p,{children:"Of course, it is not always possible - some things are possible only by coding on the edge of the documentation. Even then, you can make it more explicit with good comments. And don't limit those to just the tricky parts. Describing the cleanest functions and scripts will help you (and your team) work more effectively."}),(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-js",metastring:"title=\"'Code tells you how. Comments tell you why.' - Jeff Atwood\"",children:"/**\n * @function debugValue\n * @description Outputs provided description and SSJS value to front-end in a type-safe & consistent way\n * @param {string} description - Describes meaning of the second parameter in the output\n * @param {*} value - The value that needs to be debugged\n */\nfunction debugValue(description, value) {\n Write(description + ': ' + (typeof value == 'object' ? Stringify(value) : value) + '

');\n};\n"})}),(0,i.jsxs)(t.p,{children:["Read more on using comments in [SSJS]./ssjs/ssjs-style-guide.mdx#comments) and ",(0,i.jsx)(t.a,{href:"/docs/ampscript/ampscript-style-guide#comments",children:"AMPScript"}),"."]}),(0,i.jsxs)(t.admonition,{title:"You Should Know",type:"note",children:[(0,i.jsx)(t.p,{children:"An explicit approach can (and should) be taken to the next level with smart use of asset Keys. They are frequently used in code - especially the Data Extension and Content Block keys. While the default pseudo-random ID does the work, I recommend going for the custom explicit Keys."}),(0,i.jsx)(t.p,{children:"If you keep Data Extension Name and Key in sync (it might not be possible with longer names due to the Key length limit), you won't have to worry about whether the Data Extension lookup uses the key or the name."}),(0,i.jsxs)(t.p,{children:["You can get even more value from this approach with Content Blocks. It's popular to use them for AMPScript snippets shared across multiple emails or brand-wide dynamic footers. Frequently they are added to the Email Templates with the help of the AMPScript ",(0,i.jsx)(t.code,{children:"ContentBlockByID"})," function. However, as an asset collection grows, it will be harder to remember which Content Block you imported that way (IDs aren't helpful with that)."]}),(0,i.jsxs)(t.p,{children:["Explicit Content Block Key and ",(0,i.jsx)(t.code,{children:"ContentBlockByKey"})," function can help:"]}),(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-js",metastring:'title="Which one would you rather see in the email template?"',children:'%%=ContentBlockByID("123456")=%%\n// vs\n%%=ContentBlockByKey("SharedFooterEMEA")=%%\n'})})]})]}),(0,i.jsxs)(a.A,{value:"ui",children:[(0,i.jsx)(t.p,{children:"Being explicit is not limited to the code. When working with the SFMC no-code features, you will have many places to improve your solution by adding information."}),(0,i.jsxs)(t.p,{children:["Many assets offer one or more places to add details: Data Extensions, Installed Packages, Automations - or even Activity-grouping steps. Neither of those places ",(0,i.jsx)(t.em,{children:"requires"})," a description, but each and single one will benefit from explicitly stating its purpose and business/technical context."]}),(0,i.jsx)(t.p,{children:"There are also places where Salesforce Marketing Cloud lets you add smaller pieces of information. Not full descriptions, but rather optional micro data points that explain the purpose. Path names in Journey Builder Decision Splits. Additional Email Attribute Names in Content Builder. Collection and Cloud Page names in Web Studio. Whenever possible - spend that extra time needed to come up with explicit value."})]})]}),"\n",(0,i.jsx)(t.hr,{}),"\n",(0,i.jsx)(t.h3,{id:"simple-is-better-than-complex",children:"Simple is better than complex."}),"\n",(0,i.jsx)(t.p,{children:"Marketing Cloud is a complex tool within a complex Salesforce ecosystem focused on solving complex business needs. But how you operate and develop SFMC should be as straightforward as possible. It will make your solution robust, agile and easily understandable."}),"\n",(0,i.jsx)(t.h4,{id:"kiss",children:"KISS"}),"\n",(0,i.jsxs)(t.p,{children:["This recommendation is also known in the software development community under a popular acronym: ",(0,i.jsx)(t.strong,{children:"KISS"})," (Keep It Simple ",(0,i.jsx)(t.del,{children:"Stupid"})," Salesforce). In short, it advocates creating solutions as simple as they can be without sacrificing other values (like readability or performance)."]}),"\n",(0,i.jsx)(t.h4,{id:"yagni",children:"YAGNI"}),"\n",(0,i.jsxs)(t.p,{children:["Another popular acronym connected to the simplicity principle is ",(0,i.jsx)(t.strong,{children:"YAGNI"})," (You Aren't Gonna Need It). This Extreme Programming methodology mantra adds another perspective by stating that you should build only the necessary elements when creating the solution. Everything else is just bloat that makes the outcome more convoluted and error-prone."]}),"\n",(0,i.jsxs)(o.A,{defaultValue:null,values:[{label:"SFMC Code Example",value:"code"},{label:"SFMC UI Example",value:"ui"}],children:[(0,i.jsxs)(a.A,{value:"code",children:[(0,i.jsxs)(t.p,{children:["The simplicity focus is useful already when you select the best programming language to do the job. Sure, SSJS is much more powerful and flexible than AMPScript, but unless you have a specific need for this power (YAGNI) you should go for the simpler solution (KISS) (",(0,i.jsx)(t.a,{href:"/docs/ssjs/ssjs-vs-ampscript-performance#ampscript-vs-ssjs",children:"more on selecting SSJS vs AMPScript"}),")."]}),(0,i.jsxs)(t.p,{children:["Once you select the best language for the job, you will have to code the solution. And here again, simplicity will be a helpful guideline. For example, yes, you can create a universal SSJS API wrapper class, but if your script only needs to update Salesforce objects, ",(0,i.jsx)(t.a,{href:"/docs/ssjs/snippets/ampscript-in-ssjs",children:"built-in AMPScript functions"})," will be enough (YAGNI) and much simpler (KISS)."]}),(0,i.jsx)(t.p,{children:"Think about KISS and YAGNI whenever you are coding, and it will help you deliver more straightforward and better solutions."}),(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-sql",children:"SELECT\n SubscriberKey\n , CASE\n WHEN DateJoined >= DATEADD(MONTH, -1, GETDATE()) THEN 1\n WHEN DateJoined < DATEADD(MONTH, -1, GETDATE()) THEN 0\n END AS IsNewJoiner\nFROM Ent._Subscribers\n/* When you only need two opposite CASE rules, simple IIF shorthand is better */\nSELECT\n SubscriberKey\n , IIF(DateJoined >= DATEADD(MONTH, -1, GETDATE()), 1, 0) AS IsNewJoiner\nFROM Ent._Subscribers\n"})})]}),(0,i.jsxs)(a.A,{value:"ui",children:[(0,i.jsx)(t.p,{children:"The two-step approach - limiting the scope (YAGNI) and selecting the easiest solution to deliver it (KISS) - can be applied to no-code solutions as well:"}),(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"When creating an email, ask yourself whether you have a specific need requiring custom HTML. If not, go for a simple Drag & Drop Blocks Template."}),"\n",(0,i.jsx)(t.li,{children:"When creating a segment, ask yourself whether you need multiple data sources or calculated data. If not, simple filtered data extension might be enough."}),"\n",(0,i.jsx)(t.li,{children:"When creating complex automation, ask yourself whether you need all those activities in a single process. If not, split into multiple single-purpose Automations."}),"\n"]}),(0,i.jsx)(t.p,{children:"There are countless places in Salesforce Marketing Cloud to apply this approach to benefit the final solution."})]})]}),"\n",(0,i.jsx)(t.hr,{}),"\n",(0,i.jsx)(t.h3,{id:"complex-is-better-than-complicated",children:"Complex is better than complicated."}),"\n",(0,i.jsx)(t.p,{children:"It might sound contradictory to the previous recommendation, but only on the surface. There is a limit to what can be simplified before it starts getting complicated. In such a case, the complex is the lesser evil."}),"\n",(0,i.jsx)(t.h4,{id:"soc",children:"SOC"}),"\n",(0,i.jsxs)(t.p,{children:["When laser-focused on simplicity, you will feel tempted to create the whole solution as one element (one script, one Automation, one email). ",(0,i.jsx)(t.strong,{children:"SOC"})," (Separation of Concerns) rule tells us that it might be a bad idea to build one solution from multiple parts, each with a different purpose. Numerous concerns stacked within a single asset will make it complicated rather than simple. The recommendation? Split it into separate purpose-oriented elements. It will get more complex but less complicated."]}),"\n",(0,i.jsx)(t.h4,{id:"dry",children:"DRY"}),"\n",(0,i.jsxs)(t.p,{children:["Another essential acronym is ",(0,i.jsx)(t.strong,{children:"DRY"})," (Don't Repeat Yourself). It shows a different perspective on the same problem - the simple solution that needs to be replicated multiple times leads to a complicated outcome. Updating is a hassle; performance drops; readability is poor. DRY suggests finding such repetitive spots and refactoring them."]}),"\n",(0,i.jsx)(t.p,{children:"Another application of the DRY principle is related not to a specific solution but to work in general. If you find you are doing the same thing again and again, Don't Repeat Yourself. Automate it."}),"\n",(0,i.jsxs)(o.A,{defaultValue:null,values:[{label:"SFMC Code Example",value:"code"},{label:"SFMC UI Example",value:"ui"}],children:[(0,i.jsxs)(a.A,{value:"code",children:[(0,i.jsx)(t.p,{children:"I have seen many (too many) Subscription Preference Centers in SFMC built with AMPScript. Yes, it's a simple language and capable enough to deliver such a solution. But because of its simplicity, for this use case, it quickly gets full of repeating script lines (DRY violation), multiple purposes (SOC violation) and endless lines of code (readability suffers)."}),(0,i.jsxs)(t.p,{children:["My recommendation for most of the Preference Centers is to go with SSJS. Yes, it's a more complex language than AMPScript, but with a set of tools dedicated to delivering complex use cases. Implement SOC and make it DRY with functions & ",(0,i.jsx)(t.a,{href:"/docs/ssjs/ssjs-loops",children:"loops"}),". Bring it to the next level by splitting Front-End (Cloud Page) and Back-End (Code Resource). Compared to a single Cloud Page with AMPScript, this solution will be more complex but much less complicated. Thus easier to debug and maintain."]})]}),(0,i.jsxs)(a.A,{value:"ui",children:[(0,i.jsx)(t.p,{children:"The same rules apply to Marketing Cloud no-code solutions. Filtered Data Extensions with Data Relationships are excellent for simple segmentation. Still, when the segment requirements get more complicated, it's better to move to more complex SQL Queries in Automation Studio."}),(0,i.jsxs)(t.p,{children:["Similarly, you can leverage Marketing Cloud Connect and Journey Builder to update data in Salesforce CRM without any code. Still, when you get to the point of creating journeys with only such updates in mind - its better to go for more complex but less complicated ",(0,i.jsx)(t.a,{href:"/docs/ssjs/snippets/ampscript-in-ssjs#long-ampscript-code",children:"AMPScript SalesforceObject"})," functions."]})]})]}),"\n",(0,i.jsx)(t.hr,{}),"\n",(0,i.jsx)(t.h3,{id:"flat-is-better-than-nested-sparse-is-better-than-dense",children:"Flat is better than nested. Sparse is better than dense."}),"\n",(0,i.jsxs)(t.p,{children:["When working on the solution, it is easy to build a matryoshka. Multiple goals within one asset? Let's add an ",(0,i.jsxs)(t.a,{href:"/docs/ssjs/ssjs-if-and-switch",children:[(0,i.jsx)(t.code,{children:"if"}),"/",(0,i.jsx)(t.code,{children:"switch"})]})," in the code or a decision split in the Journey Builder. Edge case found during testing? Yet another ",(0,i.jsx)(t.code,{children:"if"}),". Multiple goals within one email? The 4-column layout is here! KPIs for leads, sales, loyalty and brand are not yet met? Let's pack them in a just-being-built welcome Journey."]}),"\n",(0,i.jsx)(t.p,{children:"This turn of events is natural during development, but it quickly leads to a complicated outcome. There are two ways to solve it:"}),"\n",(0,i.jsxs)(t.ol,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"Plan"}),' - As Abraham Lincoln once said, "Give me six hours to chop down a tree, and I will spend the first four sharpening the axe". The same approach will benefit your Marketing Cloud instance.']}),"\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.strong,{children:"Refactor"})," - Planning is incredible, but it's nearly impossible to prepare a bulletproof plan. That's fine, as long as you refactor your solution after hitting the bump on the road."]}),"\n"]}),"\n",(0,i.jsx)(t.p,{children:"Following those steps will help you create simpler, lighter and better solutions. And the more refactors you do, the better in planning you will become."}),"\n",(0,i.jsxs)(o.A,{defaultValue:null,values:[{label:"SFMC Code Example",value:"code"},{label:"SFMC UI Example",value:"ui"}],children:[(0,i.jsxs)(a.A,{value:"code",children:[(0,i.jsx)(t.p,{children:"It's easy to write deeply nested code. It's even easier to write dense code, full of syntactic sugar that is short and looks 'professional'\u2014especially when copy-pasting a magical solution found on the Stack Overlow (been there, done that)."}),(0,i.jsxs)(t.p,{children:["However, the good code doesn't have to be short or prove that you know all quirks of the language. The good code must be ",(0,i.jsx)(t.a,{href:"#readability-counts",children:"readable"}),", ",(0,i.jsx)(t.a,{href:"#simple-is-better-than-complex",children:"simple"})," and ",(0,i.jsx)(t.a,{href:"#explicit-is-better-than-implicit",children:"explicit"}),". And in many cases, it will be a bit longer and created from simpler building blocks."]}),(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-js",metastring:"title=\"Just because it works, doesn't mean it's worth it\"",children:"var region = country == 'UK' ? 'EMEA' : country == 'PL' ? 'EMEA' : country == 'US' ? 'AMER' : 'APAC';\n/* Chained ternary operator above might take less lines of code, but it's definitely not readable.\nMaking it more sparse and flat is not only easier for the readars but also for future modifications */\nif (country == 'UK' || country == 'PL') {\n var region = 'EMEA';\n} else if (country == 'US') {\n var region = 'AMER';\n} else {\n var region = 'APAC';\n};\n"})})]}),(0,i.jsxs)(a.A,{value:"ui",children:[(0,i.jsxs)(t.p,{children:["When building in Journey Builder, it is easy to nest Decision Splits to send various communication based on some criteria, but this approach will quickly become ",(0,i.jsx)(t.a,{href:"#complex-is-better-than-complicated",children:"complicated"})," and (with how SFMC renders multiple splits) ",(0,i.jsx)(t.a,{href:"#beautiful-is-better-than-ugly",children:"ugly"}),"."]}),(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"If you want to add the splits to cover more appropriate personalisation - make your Journey flat by leveraging Dynamic Content instead."}),"\n",(0,i.jsxs)(t.li,{children:["If you want to add the splits to cover different campaign goals - make your Journey flat by splitting each goal into separate Journey (",(0,i.jsx)(t.a,{href:"#soc",children:"SOC principle"}),")."]}),"\n"]}),(0,i.jsx)(t.p,{children:"The same is true for Emails that frequently grow due to applying multiple KPIs. Sure, you can cram a lot if you go for a 4-column layout with numerous sections. But the layout bugs will emerge, deliverability will suffer, readability will tank, and the reader will get lost in the number of calls to action. Instead, focus on one concrete and targeted action that is crucial for your business."})]})]}),"\n",(0,i.jsx)(t.hr,{}),"\n",(0,i.jsx)(t.h3,{id:"readability-counts",children:"Readability counts."}),"\n",(0,i.jsx)(t.p,{children:"Readability is key. In code, it limits bugs, simplifies debugging, improves future development and saves tons of time. In content, it's key to drive the message to the recipient. In short, without readability, there is no value."}),"\n",(0,i.jsxs)(t.p,{children:["I have already written a lot about readability of Marketing Cloud programmatic langauges: ",(0,i.jsx)(t.a,{href:"/docs/ampscript/ampscript-style-guide",children:"AMPScript"}),", ",(0,i.jsx)(t.a,{href:"/docs/ssjs/ssjs-style-guide",children:"SSJS"}),", ",(0,i.jsx)(t.a,{href:"/docs/sql/sfmc-sql-style-guide",children:"SQL"}),"."]}),"\n",(0,i.jsx)(t.p,{children:"As for the readability of content:"}),"\n",(0,i.jsxs)(t.ol,{children:["\n",(0,i.jsx)(t.li,{children:"Write short sentences (15 words are nice; stay under 30)."}),"\n",(0,i.jsx)(t.li,{children:'Use simple language (instead of "due to the fact that" use "because").'}),"\n",(0,i.jsx)(t.li,{children:'Prove with hard data (instead of "significant amount of customers recommends" use "93% of customer recommends").'}),"\n",(0,i.jsx)(t.li,{children:'Cut marketing fluff (every part of the content should have an answer to the "so what?" question).'}),"\n",(0,i.jsx)(t.li,{children:"Proofread. Proofread again."}),"\n"]}),"\n",(0,i.jsx)(t.hr,{}),"\n",(0,i.jsx)(t.h3,{id:"naming-conventions-count-twice",children:"Naming conventions count twice."}),"\n",(0,i.jsx)(t.p,{children:"I love naming conventions and believe they are crucial to the long term success of marketing automation solutions. They improve readability and maintainability, bring clarity and unlock even more automation possibilities."}),"\n",(0,i.jsx)(t.p,{children:"What is unique about them is that they provide the most value when implemented from the very start and enforced everywhere. But if you are thinking long term (and with Marketing Automation tools - you should), it's better to implement one late than never. The bigger and older the solution, the more you will feel that a good naming convention is not nice-to-have but rather a must-have."}),"\n",(0,i.jsxs)(o.A,{defaultValue:null,values:[{label:"SFMC Code Example",value:"code"},{label:"SFMC UI Example",value:"ui"}],children:[(0,i.jsxs)(a.A,{value:"code",children:[(0,i.jsx)(t.p,{children:"You can benefit from implementing a naming convention in all SFMC programming languages. Strive for variable, function, column names that are obvious even for someone who sees the code for the first time. Saving a few characters for a shorter name is not worth the time lost for deciphering the meaning later."}),(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-js",children:"/* You may know what it means when you write the code... */\nif (ts && !tsd) tsd = new Date();\n\n/* ... but everyone else, and even you after a week, will be thankful for explicit names */\nif (isTrackingSuppressed && !trackingSuppressionStartDate) trackingSuppressionStartDate = new Date()\n"})}),(0,i.jsxs)(t.p,{children:["Looking for more examples of good naming? Check Style Guide recommendations for ",(0,i.jsx)(t.a,{href:"/docs/ampscript/ampscript-style-guide#naming-convention",children:"AMPScript"}),", ",(0,i.jsx)(t.a,{href:"/docs/ssjs/ssjs-style-guide#naming-convention",children:"SSJS"})," and ",(0,i.jsx)(t.a,{href:"/docs/sql/sfmc-sql-style-guide#explicit-vs-implicit",children:"SQL"}),"."]})]}),(0,i.jsxs)(a.A,{value:"ui",children:[(0,i.jsxs)(t.p,{children:["The naming convention is huge when working with the Salesforce Marketing Cloud. Leveraging a proper one makes it much easier to search and differentiate the assets. It's also an excellent tool to enable some smart personalisations and checks in email communication (with the help of the ",(0,i.jsx)(t.code,{children:"%%emailname_%%"})," personalisation string). And that's not all - a good naming convention will increase value coming from System Data Views and reporting."]}),(0,i.jsx)(t.p,{children:"With all this praise - what is a good naming convention for the marketing automation assets? It, of course, depends on the specifics of your business, but my recommendation is to mix data-filled shortcuts with separators."}),(0,i.jsx)(t.p,{children:"My favourite approach is to:"}),(0,i.jsxs)(t.ol,{children:["\n",(0,i.jsx)(t.li,{children:"Define a set of business-oriented data points that bring value."}),"\n",(0,i.jsx)(t.li,{children:"Create readable shortcuts for them to limit the final length of the naming convention."}),"\n",(0,i.jsx)(t.li,{children:"Create a dedicated place for each separate element in the naming convention."}),"\n",(0,i.jsxs)(t.li,{children:["Split the elements with an underscore (",(0,i.jsx)(t.code,{children:"_"}),")."]}),"\n",(0,i.jsxs)(t.li,{children:["Split parts of a single element with a hyphen (",(0,i.jsx)(t.code,{children:"-"}),")."]}),"\n"]}),(0,i.jsx)(t.p,{children:"That's the theory, but what are good business-oriented data points? Some examples I frequently use are:"}),(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"Country (if you are operating in multiple markets)"}),"\n",(0,i.jsx)(t.li,{children:"Business Unit (if you have a complex internal structure of the company)"}),"\n",(0,i.jsx)(t.li,{children:"Segment (if you have a set of predefined master-segments / personas)"}),"\n",(0,i.jsx)(t.li,{children:"Campaign Type (it's always helpful)"}),"\n",(0,i.jsx)(t.li,{children:"Free-text Asset Name (the human-readable part that helps easily understand the purpose)"}),"\n",(0,i.jsx)(t.li,{children:"Asset Type (can help in Content Builder to differentiate various partial assets)"}),"\n",(0,i.jsx)(t.li,{children:"Date (beneficial, especially if you are creating a lot of similar assets for recurring goals)"}),"\n",(0,i.jsx)(t.li,{children:"Campaign Code (or whatever you are using for closed-loop reporting and 360 analytics)"}),"\n"]}),(0,i.jsx)(t.p,{children:"How does it look when implemented? Let's check an example:"}),(0,i.jsx)(t.p,{children:(0,i.jsx)(t.code,{children:"UK_DEV_C_WEL_brand-welcome-1_EML_21-10_01234"})}),(0,i.jsx)(t.p,{children:"It's elements would be:"}),(0,i.jsxs)(t.ol,{children:["\n",(0,i.jsxs)(t.li,{children:["Country: ",(0,i.jsx)(t.code,{children:"UK"})," = United Kingdom"]}),"\n",(0,i.jsxs)(t.li,{children:["Business Unit: ",(0,i.jsx)(t.code,{children:"DEV"})," = Development"]}),"\n",(0,i.jsxs)(t.li,{children:["Segment: ",(0,i.jsx)(t.code,{children:"C"})," = Customers"]}),"\n",(0,i.jsxs)(t.li,{children:["Campaign Type: ",(0,i.jsx)(t.code,{children:"WEL"})," = Welcome"]}),"\n",(0,i.jsxs)(t.li,{children:["Asset Name: ",(0,i.jsx)(t.code,{children:"brand-welcome-1"})]}),"\n",(0,i.jsxs)(t.li,{children:["Asset Type: ",(0,i.jsx)(t.code,{children:"EML"})," = Email"]}),"\n",(0,i.jsxs)(t.li,{children:["Date: ",(0,i.jsx)(t.code,{children:"21-10"})," = October 2021"]}),"\n",(0,i.jsxs)(t.li,{children:["Campaign Code: ",(0,i.jsx)(t.code,{children:"01234"})]}),"\n"]}),(0,i.jsx)(t.p,{children:"As you can see, in under 50 characters, we captured eight different data points and a pretty good picture of the purpose of the asset."}),(0,i.jsx)(t.p,{children:"What is more, the Business Intelligence team will be able to use a simple split by an underscore to capture each element as a separate category to enable filtering and grouping in reporting."})]})]}),"\n",(0,i.jsx)(t.hr,{}),"\n",(0,i.jsx)(t.h3,{id:"special-cases-arent-special-enough-to-break-the-rules-although-practicality-beats-purity",children:"Special cases aren't special enough to break the rules. Although practicality beats purity."}),"\n",(0,i.jsx)(t.p,{children:"Those contradictory lines follow the ancient greek golden middle way philosophy. The thought behind them is pretty straightforward. Whenever you decide to stick to some recommendation or rule (be it from this article or else) - fight the temptation to create exceptions when you encounter the first bump on the road."}),"\n",(0,i.jsx)(t.p,{children:'Sure, it might be easier to ignore the rule when the deadline is near or you have too much to do. It\'s easy to say, "I will align it later". But there is always more work to be done "later", and in the end, you finish with a messy solution that doesn\'t provide the promised value.'}),"\n",(0,i.jsx)(t.p,{children:"On the other hand, following the rules by the book in every single case might stop you from delivering a working solution at all."}),"\n",(0,i.jsxs)(t.p,{children:["That's why we must learn how to follow the rules ",(0,i.jsx)(t.strong,{children:"and"})," when to break them."]}),"\n",(0,i.jsx)(t.p,{children:"So follow the rules as a default, break them only when there is no other option, and refactor them whenever possible."}),"\n",(0,i.jsx)(t.hr,{}),"\n",(0,i.jsx)(t.h3,{id:"errors-should-never-pass-silently-unless-explicitly-silenced",children:"Errors should never pass silently. Unless explicitly silenced."}),"\n",(0,i.jsx)(t.p,{children:"Every solution can encounter some problems or edge cases. You can even be hit with something outside of your control, like server issues. It is why capturing and analysing the errors is so essential."}),"\n",(0,i.jsxs)(t.p,{children:["In terms of code it means proper ",(0,i.jsx)(t.a,{href:"/docs/ssjs/debugging-ssjs",children:"debugging and error handling"}),". Especially ",(0,i.jsx)(t.a,{href:"/docs/ssjs/debugging-ssjs#error-logging",children:"error logging"})," is good idea to keep up with the potential issues in matured Marketing Cloud solution. You can also protect your solution by creating last resort checks in messaging with the ",(0,i.jsx)(t.code,{children:"RaiseError"})," function."]}),"\n",(0,i.jsx)(t.p,{children:"But there are also platform-based features that capture issues. Journey pre-launch validation, Verification Activity for Automation Studio and its built-in error logging, Send Logs, and Audit Trail. Salesforce Marketing Cloud offers many tools to make sure you are up to speed with the state of your platform, so make sure you use all of them."}),"\n",(0,i.jsx)(t.p,{children:"However, just because you can, it doesn't mean you always need to throw an error. There are some cases where silencing them is the right thing to do. Example?"}),"\n",(0,i.jsx)(t.p,{children:"When sending a personalised email, you might find some contacts with missing data that would error out the send. Ask yourself whether you genuinely want an error in such cases, or rather a dynamic content with non-personalised default will work better."}),"\n",(0,i.jsx)(t.p,{children:"Such workarounds are even more critical for errors on client-facing assets like Cloud Pages. When coding the user experience, check the possible errors and consider which should be visible to the end-user."}),"\n",(0,i.jsx)(t.p,{children:"And - considering the quality of out-of-the-box SFMC errors - always provide custom error messages."}),"\n",(0,i.jsx)(t.hr,{}),"\n",(0,i.jsx)(t.h3,{id:"in-the-face-of-ambiguity-refuse-the-temptation-to-guess-even-when-certain-test",children:"In the face of ambiguity, refuse the temptation to guess. Even when certain, test."}),"\n",(0,i.jsx)(t.p,{children:"With the complexity of Marketing Cloud, cross-cloud integrations, constant platform updates and solution development, there is much room for ambiguity. It's even more significant when you consider how the SFMC is growing - by 3rd party acquisitions and building new features on top of the legacy ones. There is a constant technical debt and multiple frameworks co-existing at the same time. With updates hitting the platform multiple times a year, even with stuff you have already done numerous times in the past - don't assume it will work the same. Don't guess. Check."}),"\n",(0,i.jsxs)(t.p,{children:["There are multiple examples of this risk. SSJS is not-fully-supported ES3 limited by the .NET backend, so you never know which feature will work. SQL is a partial SQL Server 2016 with different behaviour in Script Activity and Query Studio. There are inconsistent approaches within the same solution (for example ",(0,i.jsx)(t.a,{href:"../../sites/ideas/marketing-cloud-ideas/#content-builder-shared-folders-permissions",children:"shared folder permissions"}),"). Unexpected bugs (like incorrect rendering of ",(0,i.jsx)(t.a,{href:"../../sites/ideas/marketing-cloud-ideas/#behavioral-trigger-content-block-rendering-on-yahoo-aol-windows-outlook",children:"Behavioral Triggers"}),"). Temporary issues that change the SSJS function responses for few days."]}),"\n",(0,i.jsx)(t.p,{children:"With all this ambiguity in the system, always check during development and always check again before go-live."}),"\n",(0,i.jsx)(t.hr,{}),"\n",(0,i.jsx)(t.h3,{id:"now-is-better-than-never-although-never-is-often-better-than-right-now",children:"Now is better than never. Although never is often better than right now."}),"\n",(0,i.jsx)(t.p,{children:"When you see an opportunity for improvement or encounter a helpful recommendation, it's a good idea to take a note and implement it to improve the value of your solution. However, fight the temptation to do it instantaneously. Even the enhancement most needed in your solution might break everything if you implement it hastily."}),"\n",(0,i.jsx)(t.p,{children:"Using previous examples:"}),"\n",(0,i.jsxs)(t.ol,{children:["\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsxs)(t.p,{children:["If you are not yet using proper ",(0,i.jsx)(t.a,{href:"/docs/ssjs/debugging-ssjs",children:"debugging and error handling"}),", you definitely should implement it. Should you do it ",(0,i.jsx)(t.em,{children:"right"})," now? Well, there are some quirks that you should test beforehand; otherwise, your script might error out and break the existing process."]}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsxs)(t.p,{children:["If you want to implement the asset ",(0,i.jsx)(t.a,{href:"#naming-conventions-count-twice",children:"naming convention"}),", definitely start with discovery and cross-department alignment to have a complete picture of needs before creating the naming template. I believe everyone should use the naming convention, but it will be counterproductive if you start using it too fast and later have to update it based on late feedback."]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(t.hr,{}),"\n",(0,i.jsx)(t.h3,{id:"if-the-implementation-is-hard-to-explain-its-a-bad-idea-if-the-implementation-is-easy-to-explain-it-may-be-a-good-idea",children:"If the implementation is hard to explain, it's a bad idea. If the implementation is easy to explain, it may be a good idea."}),"\n",(0,i.jsx)(t.p,{children:"Marketing Cloud implementation is not something that one can easily explain to a five-year-old. However, if you find it hard to explain it to your colleague or client, it means that the solution is either too complex, too ambiguous, or not understood enough. Each of those cases is dangerous. In the best scenario, it may lead to a non-optimised outcome, in the worst - to a business-breaking crash."}),"\n",(0,i.jsx)(t.hr,{}),"\n",(0,i.jsx)(t.h3,{id:"documentation-is-one-honking-great-idea---lets-do-more-of-it",children:"Documentation is one honking great idea - let's do more of it!"}),"\n",(0,i.jsx)(t.p,{children:"Writing and maintaining documentation is a pain. I agree. But you know what is even bigger pain? Not having that documentation in the long run. Marketing Automation projects are long term investments. There are change requests, new team members, mistakes and bugs."}),"\n",(0,i.jsx)(t.p,{children:"In the long run, good documentation saves much more time than it takes to create it. With the complexity of the solution and the size of the team operating on it, that value grows exponentially."}),"\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.a,{href:"https://groups.google.com/g/comp.lang.c++/c/rYCO5yn4lXw/m/oITtSkZOtoUJ?pli=1",children:"John F. Woods"}),' once said, "always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live". The same is true for the whole marketing automation solution - and documentation is your best bet at surviving ;)']}),"\n",(0,i.jsx)(t.hr,{}),"\n",(0,i.jsx)(t.h2,{id:"sum-up",children:"Sum Up"}),"\n",(0,i.jsx)(t.p,{children:"There is a lot of contradictory recommendations above. It's intentional. Zen of SFMC is not a list of rigid rules - it would be impossible with the number of differences between Marketing Cloud customers. Instead, it's a set of flexible guidelines. Treat them as friendly best practices, not absolute rules and adapt them to improve your work."}),"\n",(0,i.jsx)(t.p,{children:"Across all those recommendations, you can see some key recurring ideas:"}),"\n",(0,i.jsxs)(t.ol,{children:["\n",(0,i.jsx)(t.li,{children:"Make it simple"}),"\n",(0,i.jsx)(t.li,{children:"Make it readable"}),"\n",(0,i.jsx)(t.li,{children:"Make it understandable"}),"\n",(0,i.jsx)(t.li,{children:"Make it maintainable"}),"\n",(0,i.jsx)(t.li,{children:"Make it practical"}),"\n"]}),"\n",(0,i.jsxs)(t.p,{children:["However, I still love to check the full text of the ",(0,i.jsx)(t.a,{href:"#zen-of-sfmc",children:"zen of SFMC"})," to see how well I aligned my solution with it."]})]})}function m(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(p,{...e})}):p(e)}},7227:(e,t,n)=>{n.d(t,{A:()=>a});n(6540);var i=n(4164);const s={tabItem:"tabItem_Ymn6"};var o=n(4848);function a(e){let{children:t,hidden:n,className:a}=e;return(0,o.jsx)("div",{role:"tabpanel",className:(0,i.A)(s.tabItem,a),hidden:n,children:t})}},9489:(e,t,n)=>{n.d(t,{A:()=>j});var i=n(6540),s=n(4164),o=n(4245),a=n(6347),r=n(6494),l=n(2814),c=n(5167),d=n(1269);function h(e){return i.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,i.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(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 u(e){const{values:t,children:n}=e;return(0,i.useMemo)((()=>{const e=t??function(e){return h(e).map((e=>{let{props:{value:t,label:n,attributes:i,default:s}}=e;return{value:t,label:n,attributes:i,default:s}}))}(n);return function(e){const t=(0,c.X)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,n])}function p(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function m(e){let{queryString:t=!1,groupId:n}=e;const s=(0,a.W6)(),o=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)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 n??null}({queryString:t,groupId:n});return[(0,l.aZ)(o),(0,i.useCallback)((e=>{if(!o)return;const t=new URLSearchParams(s.location.search);t.set(o,e),s.replace({...s.location,search:t.toString()})}),[o,s])]}function g(e){const{defaultValue:t,queryString:n=!1,groupId:s}=e,o=u(e),[a,l]=(0,i.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!p({value:t,tabValues:n}))throw new Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const i=n.find((e=>e.default))??n[0];if(!i)throw new Error("Unexpected error: 0 tabValues");return i.value}({defaultValue:t,tabValues:o}))),[c,h]=m({queryString:n,groupId:s}),[g,f]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[s,o]=(0,d.Dv)(n);return[s,(0,i.useCallback)((e=>{n&&o.set(e)}),[n,o])]}({groupId:s}),y=(()=>{const e=c??g;return p({value:e,tabValues:o})?e:null})();(0,r.A)((()=>{y&&l(y)}),[y]);return{selectedValue:a,selectValue:(0,i.useCallback)((e=>{if(!p({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);l(e),h(e),f(e)}),[h,f,o]),tabValues:o}}var f=n(1062);const y={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var b=n(4848);function x(e){let{className:t,block:n,selectedValue:i,selectValue:a,tabValues:r}=e;const l=[],{blockElementScrollPositionUntilNextRender:c}=(0,o.a_)(),d=e=>{const t=e.currentTarget,n=l.indexOf(t),s=r[n].value;s!==i&&(c(t),a(s))},h=e=>{let t=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const n=l.indexOf(e.currentTarget)+1;t=l[n]??l[0];break}case"ArrowLeft":{const n=l.indexOf(e.currentTarget)-1;t=l[n]??l[l.length-1];break}}t?.focus()};return(0,b.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.A)("tabs",{"tabs--block":n},t),children:r.map((e=>{let{value:t,label:n,attributes:o}=e;return(0,b.jsx)("li",{role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,ref:e=>l.push(e),onKeyDown:h,onClick:d,...o,className:(0,s.A)("tabs__item",y.tabItem,o?.className,{"tabs__item--active":i===t}),children:n??t},t)}))})}function v(e){let{lazy:t,children:n,selectedValue:s}=e;const o=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=o.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:o.map(((e,t)=>(0,i.cloneElement)(e,{key:t,hidden:e.props.value!==s})))})}function w(e){const t=g(e);return(0,b.jsxs)("div",{className:(0,s.A)("tabs-container",y.tabList),children:[(0,b.jsx)(x,{...t,...e}),(0,b.jsx)(v,{...t,...e})]})}function j(e){const t=(0,f.A)();return(0,b.jsx)(w,{...e,children:h(e.children)},String(t))}},6748:(e,t,n)=>{n.d(t,{U:()=>o});n(6540);const i="leadText_qzwo";var s=n(4848);const o=e=>{let{content:t}=e;return(0,s.jsx)(s.Fragment,{children:(0,s.jsx)("p",{id:i,children:t})})}},8453:(e,t,n)=>{n.d(t,{R:()=>a,x:()=>r});var i=n(6540);const s={},o=i.createContext(s);function a(e){const t=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),i.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c4f5d8e4.388a6900.js b/assets/js/c4f5d8e4.388a6900.js deleted file mode 100644 index f77de7977..000000000 --- a/assets/js/c4f5d8e4.388a6900.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkmd=self.webpackChunkmd||[]).push([[2634],{2221:(e,n,s)=>{s.r(n),s.d(n,{default:()=>f});s(6540);var t=s(4164),i=s(7134),a=s(4783),r=s(1141),o=s(7639),l=s(8180);const c={hero:"hero_syme",heroInner:"heroInner_VWeJ",heroProjectTagline:"heroProjectTagline_EkV5",heroProjectSubTagline:"heroProjectSubTagline_WKiD",heroCodeFunction:"heroCodeFunction_kPM9",heroCodeVariable:"heroCodeVariable_DdG0",heroCodeValue:"heroCodeValue_WuUN",heroCodeSymbols:"heroCodeSymbols_NdyX",heroProjectKeywords:"heroProjectKeywords_uRRc",features:"features_keug",featureImage:"featureImage_yA8i",featureHeading:"featureHeading_TLGJ",articles:"articles_L71A",articlesHeading:"articlesHeading_izBD",articleCard:"articleCard_oNRo",articleTitle:"articleTitle_Qstm",articleTag:"articleTag_W46I",articleLink:"articleLink_BNeC",buttons:"buttons_pzbO",events:"events_wtU4",eventsHeading:"eventsHeading_hrbQ",eventRow:"eventRow_U7Pp",eventCardWrapper:"eventCardWrapper_Gs3h",eventCard:"eventCard_mCtn",eventDetail:"eventDetail_Ah4F",eventLink:"eventLink_g28L",newsletter:"newsletter_aSeZ",newsletterHeading:"newsletterHeading_xDab",newsletterDescription:"newsletterDescription_VAfn",newsletterAction:"newsletterAction_BuYh",button:"button_hqdx"};var d=s(4848);const m=[{title:(0,d.jsx)(d.Fragment,{children:"Let's connect"}),imageUrl:"img/md_profile_icon.png",description:(0,d.jsx)(d.Fragment,{children:"Ahoj! My name is Mateusz D\u0105browski. I'm Marketing Cloud Architect and Salesforce MVP. I find joy in telling the code to do my job. Got questions, suggestions or want to get in touch?"}),url:"https://www.linkedin.com/in/mateusz-dabrowski-pl/",cta:(0,d.jsx)(d.Fragment,{children:"Let's Connect"})},{title:(0,d.jsx)(d.Fragment,{children:"Pick my brain"}),imageUrl:"img/md_brain_icon.png",description:(0,d.jsx)(d.Fragment,{children:"My notes on AMPScript, SSJS, JavaScript, SQL and Configuration used in Marketing Cloud. Are you craving for more in-depth documentation or looking for tested code snippets? Hop in!"}),url:"/docs/",cta:(0,d.jsx)(d.Fragment,{children:"Docs & Snippets"})},{title:(0,d.jsx)(d.Fragment,{children:"Change the Cloud"}),imageUrl:"img/md_cloud_icon.png",description:(0,d.jsx)(d.Fragment,{children:"Salesforce Marketing Cloud is powerful. But it can always be more useful. Here you can find all my Salesforce IdeaExchange contributions. Vote to make Marketing Cloud a better tool."}),url:"/sites/category/ideas/",cta:(0,d.jsx)(d.Fragment,{children:"My Ideas"})}];function g(e){let{imageUrl:n,title:s,description:i,url:r,cta:o}=e;const m=(0,l.A)(n);return(0,d.jsxs)("div",{className:(0,t.A)("col col--4",c.feature),children:[m&&(0,d.jsx)("div",{className:"text--center",children:(0,d.jsx)("img",{className:c.featureImage,src:m,alt:s})}),(0,d.jsx)("h3",{className:c.featureHeading,children:s}),(0,d.jsx)("p",{children:i}),(0,d.jsx)("div",{className:c.buttons,children:(0,d.jsx)(a.A,{className:(0,t.A)("button button--outline button--block button--secondary button--lg shadow--md",c.getStarted),to:r,children:o})})]})}const h=[{title:(0,d.jsx)(d.Fragment,{children:"SQL Basics"}),url:"./docs/sql/sfmc-sql-basics/",imageUrl:"img/og/og-image-sql-basics.png",description:"Best place to start your journey with writing SQL Queries in SFMC.",mainTag:"SFMC SQL"},{title:(0,d.jsx)(d.Fragment,{children:"SQL Select"}),url:"./docs/sql/sfmc-sql-select/",imageUrl:"img/og/og-image-sql-select.png",description:"Learn how to SELECT the data and how to limit it with TOP & DISTINCT.",mainTag:"SFMC SQL"},{title:(0,d.jsx)(d.Fragment,{children:"SQL Join"}),url:"./docs/sql/sfmc-sql-join/",imageUrl:"img/og/og-image-sql-join.png",description:"Check how to work with more than one Data Extension or Data View.",mainTag:"SFMC SQL"},{title:(0,d.jsx)(d.Fragment,{children:"SQL Date Functions"}),url:"./docs/sql/sfmc-sql-date-functions/",imageUrl:"img/og/og-image-sql-date-functions.png",description:"Create, calculate and format date, time and timezone with SQL.",mainTag:"SFMC SQL"},{title:(0,d.jsx)(d.Fragment,{children:"System Data Views"}),url:"./docs/config/sfmc-system-data-views/",imageUrl:"img/og/og-image-sfmc-system-data-views.png",description:"Learn about hidden Data Views storing key data about your SFMC.",mainTag:"SFMC Config"},{title:(0,d.jsx)(d.Fragment,{children:"Debugging Email Sends"}),url:"./docs/sql/snippets/sfmc-sql-debugging-email-sends/",imageUrl:"img/og/og-image-sql-debugging-email-sends.png",description:"Step-by-step guide to resolving problems with SFMC email sends.",mainTag:"SFMC SQL Snippets"},{title:(0,d.jsx)(d.Fragment,{children:"Behavioral Triggers"}),url:"./docs/config/sfmc-behavioral-triggers/",imageUrl:"img/og/og-image-sfmc-behavioral-triggers.png",description:"All you need to know about working with SFMC Behavioral Triggers.",mainTag:"SFMC Config"},{title:(0,d.jsx)(d.Fragment,{children:"Contact Deletion"}),url:"./docs/config/sfmc-contact-deletion/",imageUrl:"img/og/og-image-sfmc-contact-deletion.png",description:"Everything you need to clean up your SFMC from dirty Contacts.",mainTag:"SFMC Config"}];function p(e){let{title:n,url:s,description:i,mainTag:r}=e;return(0,d.jsx)("div",{className:"col col--3",children:(0,d.jsxs)("div",{className:(0,t.A)("card",c.articleCard),children:[(0,d.jsxs)("div",{className:"card__header",children:[(0,d.jsx)(a.A,{className:c.articleTitle,to:s,children:(0,d.jsx)("strong",{children:n})}),(0,d.jsxs)("p",{className:c.articleTag,children:["#",r]})]}),(0,d.jsx)("div",{className:"card__body",children:i}),(0,d.jsx)("div",{className:"card__footer",children:(0,d.jsx)(a.A,{className:c.articleLink,to:s,children:"Read more \xbb"})})]})})}function u(){return(0,d.jsx)("section",{className:c.newsletter,children:(0,d.jsx)("div",{className:"container",children:(0,d.jsxs)("div",{className:"row",children:[(0,d.jsxs)("div",{className:"col col--8",children:[(0,d.jsx)("h2",{className:c.newsletterHeading,children:"Stay in the loop"}),(0,d.jsx)("p",{className:c.newsletterDescription,children:"Get the latest Salesforce Marketing Cloud and Personalization tips, guides, and industry news straight to your inbox."})]}),(0,d.jsx)("div",{className:"col col--4",children:(0,d.jsx)("div",{className:c.newsletterAction,children:(0,d.jsx)(a.A,{className:(0,t.A)("button button--outline button--block button--primary button--lg shadow--md"),to:"./sites/newsletter/",children:"Subscribe now"})})})]})})})}const j=[{title:"Salesforce World Tour Essentials",date:"June 19, 2024",place:"Warszawa, Poland",description:"A perfect place to discuss how businesses can transform multi-channel marketing with Salesforce Marketing Cloud Engagement and Real-Time Personalization.",url:"https://invite.salesforce.com/world-tour-essentials-warszawa-2024/pwc"}];function x(e){let{title:n,date:s,place:i,description:r,url:o}=e;return(0,d.jsx)("div",{className:(0,t.A)("col col--4",c.eventCardWrapper),children:(0,d.jsxs)("div",{className:(0,t.A)("card",c.eventCard),children:[(0,d.jsxs)("div",{className:"card__header",children:[(0,d.jsx)("h3",{children:n}),(0,d.jsxs)("p",{className:c.eventDetail,children:[s," \u2014 ",i]})]}),(0,d.jsx)("div",{className:"card__body",children:(0,d.jsx)("p",{children:r})}),(0,d.jsx)("div",{className:"card__footer",children:(0,d.jsx)(a.A,{className:"button button--outline button--primary",to:o,children:"Let's Meet"})})]})})}const f=function(){const e=(0,o.A)(),{siteConfig:{customFields:n={}}={}}=e;return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(r.A,{children:[(0,d.jsx)("meta",{name:"author",content:"Mateusz D\u0105browski"}),(0,d.jsx)("meta",{name:"HandheldFriendly",content:"True"}),(0,d.jsx)("meta",{name:"referrer",content:"unsafe-url"}),(0,d.jsx)("link",{rel:"canonical",href:"https://mateuszdabrowski.pl/"}),(0,d.jsx)("meta",{property:"og:url",content:"https://mateuszdabrowski.pl/"}),(0,d.jsx)("meta",{property:"og:image",content:"/img/logotyp-og.png"}),(0,d.jsx)("meta",{property:"og:image:type",content:"image/png"}),(0,d.jsx)("meta",{property:"og:image:width",content:"1500"}),(0,d.jsx)("meta",{property:"og:image:height",content:"1500"}),(0,d.jsx)("meta",{property:"og:type",content:"website"}),(0,d.jsx)("link",{rel:"shortcut icon",sizes:"196x196",href:"/img/favicon_196.png"}),(0,d.jsx)("link",{rel:"apple-touch-icon",sizes:"180x180",href:"/img/apple-touch-icon.png"}),(0,d.jsx)("link",{rel:"icon",type:"image/png",sizes:"167x167",href:"/img/favicon_167.png"}),(0,d.jsx)("link",{rel:"apple-touch-icon",sizes:"152x152",href:"/img/favicon_152.png"}),(0,d.jsx)("link",{rel:"icon",type:"image/png",sizes:"128x128",href:"/img/favicon_128.png"}),(0,d.jsx)("link",{rel:"icon",type:"image/png",sizes:"32x32",href:"/img/favicon_32.png"}),(0,d.jsx)("link",{rel:"icon",type:"image/png",sizes:"16x16",href:"/img/favicon_16.png"}),(0,d.jsx)("link",{rel:"manifest",href:"/img/site.webmanifest"}),(0,d.jsx)("link",{rel:"mask-icon",href:"/img/safari-pinned-tab.svg",color:"#DA4E55"}),(0,d.jsx)("meta",{name:"msapplication-TileColor",content:"#F6B355"}),(0,d.jsx)("meta",{name:"msapplication-square70x70logo",content:"/img/favicon-128.png"}),(0,d.jsx)("meta",{name:"msapplication-square150x150logo",content:"/img/favicon-270.png"}),(0,d.jsx)("meta",{name:"msapplication-TileImage",content:"/img/favicon-270.png"}),(0,d.jsx)("meta",{name:"msapplication-config",content:"none"}),(0,d.jsx)("meta",{name:"theme-color",content:"#212121"})]}),(0,d.jsx)(i.A,{title:"Automate Marketing Automation",description:n.description,keywords:n.keywords,children:(0,d.jsxs)("main",{children:[(0,d.jsx)("div",{className:c.hero,children:(0,d.jsxs)("div",{className:c.heroInner,children:[(0,d.jsxs)("h1",{className:c.heroProjectTagline,children:["Automate ",(0,d.jsx)("span",{className:c.heroProjectKeywords,children:"Marketing Automation"})]}),(0,d.jsxs)("h2",{className:c.heroProjectSubTagline,children:[(0,d.jsx)("span",{className:c.heroCodeFunction,children:"let"})," ",(0,d.jsx)("span",{className:c.heroCodeVariable,children:"code"})," ",(0,d.jsx)("span",{className:c.heroCodeSymbols,children:"="})," ",(0,d.jsx)("span",{className:c.heroCodeFunction,children:"do"}),(0,d.jsx)("span",{className:c.heroCodeSymbols,children:"("}),(0,d.jsx)("span",{className:c.heroCodeValue,children:"'our job'"}),(0,d.jsx)("span",{className:c.heroCodeSymbols,children:");"})]})]})}),m&&m.length>0&&(0,d.jsx)("section",{className:c.features,children:(0,d.jsx)("div",{className:"container",children:(0,d.jsx)("div",{className:"row",children:m.map(((e,n)=>(0,d.jsx)(g,{...e},n)))})})}),(0,d.jsx)(u,{}),j&&j.length>0&&(0,d.jsx)("section",{className:c.events,children:(0,d.jsxs)("div",{className:"container",children:[(0,d.jsx)("h2",{className:c.eventsHeading,children:"Upcoming Events"}),(0,d.jsx)("div",{className:(0,t.A)("row",c.eventRow),children:j.map(((e,n)=>(0,d.jsx)(x,{...e},n)))})]})}),h&&h.length>0&&(0,d.jsx)("section",{className:c.articles,children:(0,d.jsxs)("div",{className:"container",children:[(0,d.jsx)("h2",{className:c.articlesHeading,children:"Most popular docs & snippets"}),(0,d.jsx)("div",{className:"row",children:h.map(((e,n)=>(0,d.jsx)(p,{...e},n)))})]})})]})})]})}}}]); \ No newline at end of file diff --git a/assets/js/c4f5d8e4.58d3a9cf.js b/assets/js/c4f5d8e4.58d3a9cf.js new file mode 100644 index 000000000..d13c283ec --- /dev/null +++ b/assets/js/c4f5d8e4.58d3a9cf.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmd=self.webpackChunkmd||[]).push([[2634],{2221:(e,t,n)=>{n.r(t),n.d(t,{default:()=>f});n(6540);var s=n(4164),i=n(7134),a=n(4783),r=n(1141),o=n(7639),l=n(8180);const c={hero:"hero_syme",heroInner:"heroInner_VWeJ",heroProjectTagline:"heroProjectTagline_EkV5",heroProjectSubTagline:"heroProjectSubTagline_WKiD",heroCodeFunction:"heroCodeFunction_kPM9",heroCodeVariable:"heroCodeVariable_DdG0",heroCodeValue:"heroCodeValue_WuUN",heroCodeSymbols:"heroCodeSymbols_NdyX",heroProjectKeywords:"heroProjectKeywords_uRRc",features:"features_keug",featureImage:"featureImage_yA8i",featureHeading:"featureHeading_TLGJ",articles:"articles_L71A",articlesHeading:"articlesHeading_izBD",articleCard:"articleCard_oNRo",articleTitle:"articleTitle_Qstm",articleTag:"articleTag_W46I",articleLink:"articleLink_BNeC",buttons:"buttons_pzbO",events:"events_wtU4",eventsHeading:"eventsHeading_hrbQ",eventRow:"eventRow_U7Pp",eventCardWrapper:"eventCardWrapper_Gs3h",eventCard:"eventCard_mCtn",eventDetail:"eventDetail_Ah4F",newsletter:"newsletter_aSeZ",newsletterHeading:"newsletterHeading_xDab",newsletterDescription:"newsletterDescription_VAfn",newsletterButtonWrapper:"newsletterButtonWrapper_B8ms",newsletterButton:"newsletterButton_tLYB"};var d=n(4848);const m=[{title:(0,d.jsx)(d.Fragment,{children:"Let's connect"}),imageUrl:"img/md_profile_icon.png",description:(0,d.jsx)(d.Fragment,{children:"Ahoj! My name is Mateusz D\u0105browski. I'm Marketing Cloud Architect and Salesforce MVP. I find joy in telling the code to do my job. Got questions, suggestions or want to get in touch?"}),url:"https://www.linkedin.com/in/mateusz-dabrowski-pl/",cta:(0,d.jsx)(d.Fragment,{children:"Let's Connect"})},{title:(0,d.jsx)(d.Fragment,{children:"Pick my brain"}),imageUrl:"img/md_brain_icon.png",description:(0,d.jsx)(d.Fragment,{children:"My notes on AMPScript, SSJS, JavaScript, SQL and Configuration used in Marketing Cloud. Are you craving for more in-depth documentation or looking for tested code snippets? Hop in!"}),url:"/docs/",cta:(0,d.jsx)(d.Fragment,{children:"Docs & Snippets"})},{title:(0,d.jsx)(d.Fragment,{children:"Change the Cloud"}),imageUrl:"img/md_cloud_icon.png",description:(0,d.jsx)(d.Fragment,{children:"Salesforce Marketing Cloud is powerful. But it can always be more useful. Here you can find all my Salesforce IdeaExchange contributions. Vote to make Marketing Cloud a better tool."}),url:"/sites/category/ideas/",cta:(0,d.jsx)(d.Fragment,{children:"My Ideas"})}];function g(e){let{imageUrl:t,title:n,description:i,url:r,cta:o}=e;const m=(0,l.A)(t);return(0,d.jsxs)("div",{className:(0,s.A)("col col--4",c.feature),children:[m&&(0,d.jsx)("div",{className:"text--center",children:(0,d.jsx)("img",{className:c.featureImage,src:m,alt:n})}),(0,d.jsx)("h3",{className:c.featureHeading,children:n}),(0,d.jsx)("p",{children:i}),(0,d.jsx)("div",{className:c.buttons,children:(0,d.jsx)(a.A,{className:(0,s.A)("button button--outline button--block button--secondary button--lg shadow--md",c.getStarted),to:r,children:o})})]})}const h=[{title:(0,d.jsx)(d.Fragment,{children:"SQL Basics"}),url:"./docs/sql/sfmc-sql-basics/",imageUrl:"img/og/og-image-sql-basics.png",description:"Best place to start your journey with writing SQL Queries in SFMC.",mainTag:"SFMC SQL"},{title:(0,d.jsx)(d.Fragment,{children:"SQL Select"}),url:"./docs/sql/sfmc-sql-select/",imageUrl:"img/og/og-image-sql-select.png",description:"Learn how to SELECT the data and how to limit it with TOP & DISTINCT.",mainTag:"SFMC SQL"},{title:(0,d.jsx)(d.Fragment,{children:"SQL Join"}),url:"./docs/sql/sfmc-sql-join/",imageUrl:"img/og/og-image-sql-join.png",description:"Check how to work with more than one Data Extension or Data View.",mainTag:"SFMC SQL"},{title:(0,d.jsx)(d.Fragment,{children:"SQL Date Functions"}),url:"./docs/sql/sfmc-sql-date-functions/",imageUrl:"img/og/og-image-sql-date-functions.png",description:"Create, calculate and format date, time and timezone with SQL.",mainTag:"SFMC SQL"},{title:(0,d.jsx)(d.Fragment,{children:"System Data Views"}),url:"./docs/config/sfmc-system-data-views/",imageUrl:"img/og/og-image-sfmc-system-data-views.png",description:"Learn about hidden Data Views storing key data about your SFMC.",mainTag:"SFMC Config"},{title:(0,d.jsx)(d.Fragment,{children:"Debugging Email Sends"}),url:"./docs/sql/snippets/sfmc-sql-debugging-email-sends/",imageUrl:"img/og/og-image-sql-debugging-email-sends.png",description:"Step-by-step guide to resolving problems with SFMC email sends.",mainTag:"SFMC SQL Snippets"},{title:(0,d.jsx)(d.Fragment,{children:"Behavioral Triggers"}),url:"./docs/config/sfmc-behavioral-triggers/",imageUrl:"img/og/og-image-sfmc-behavioral-triggers.png",description:"All you need to know about working with SFMC Behavioral Triggers.",mainTag:"SFMC Config"},{title:(0,d.jsx)(d.Fragment,{children:"Contact Deletion"}),url:"./docs/config/sfmc-contact-deletion/",imageUrl:"img/og/og-image-sfmc-contact-deletion.png",description:"Everything you need to clean up your SFMC from dirty Contacts.",mainTag:"SFMC Config"}];function p(e){let{title:t,url:n,description:i,mainTag:r}=e;return(0,d.jsx)("div",{className:"col col--3",children:(0,d.jsxs)("div",{className:(0,s.A)("card",c.articleCard),children:[(0,d.jsxs)("div",{className:"card__header",children:[(0,d.jsx)(a.A,{className:c.articleTitle,to:n,children:(0,d.jsx)("strong",{children:t})}),(0,d.jsxs)("p",{className:c.articleTag,children:["#",r]})]}),(0,d.jsx)("div",{className:"card__body",children:i}),(0,d.jsx)("div",{className:"card__footer",children:(0,d.jsx)(a.A,{className:c.articleLink,to:n,children:"Read more \xbb"})})]})})}function u(){return(0,d.jsx)("section",{className:c.newsletter,children:(0,d.jsx)("div",{className:"container",children:(0,d.jsxs)("div",{className:"row",children:[(0,d.jsxs)("div",{className:"col col--8",children:[(0,d.jsx)("h2",{className:c.newsletterHeading,children:"Stay in the loop"}),(0,d.jsx)("p",{className:c.newsletterDescription,children:"Get the latest Salesforce Marketing Cloud and Personalization tips, guides, and industry news straight to your inbox."})]}),(0,d.jsx)("div",{className:"col col--4",children:(0,d.jsx)("div",{className:c.newsletterButtonWrapper,children:(0,d.jsx)(a.A,{className:(0,s.A)("button button--outline button--block button--primary button--lg shadow--md",c.newsletterButton),to:"./sites/newsletter/",children:"Subscribe now"})})})]})})})}const j=[{title:"Salesforce World Tour Essentials",date:"June 19, 2024",place:"Warszawa, Poland",description:"A perfect place to discuss how businesses can transform multi-channel marketing with Salesforce Marketing Cloud Engagement and Real-Time Personalization.",url:"https://invite.salesforce.com/world-tour-essentials-warszawa-2024/pwc"}];function x(e){let{title:t,date:n,place:i,description:r,url:o}=e;return(0,d.jsx)("div",{className:(0,s.A)("col col--4",c.eventCardWrapper),children:(0,d.jsxs)("div",{className:(0,s.A)("card",c.eventCard),children:[(0,d.jsxs)("div",{className:"card__header",children:[(0,d.jsx)("h3",{children:t}),(0,d.jsxs)("p",{className:c.eventDetail,children:[n," \u2014 ",i]})]}),(0,d.jsx)("div",{className:"card__body",children:(0,d.jsx)("p",{children:r})}),(0,d.jsx)("div",{className:"card__footer",children:(0,d.jsx)(a.A,{className:"button button--outline button--primary",to:o,children:"Let's Meet"})})]})})}const f=function(){const e=(0,o.A)(),{siteConfig:{customFields:t={}}={}}=e;return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(r.A,{children:[(0,d.jsx)("meta",{name:"author",content:"Mateusz D\u0105browski"}),(0,d.jsx)("meta",{name:"HandheldFriendly",content:"True"}),(0,d.jsx)("meta",{name:"referrer",content:"unsafe-url"}),(0,d.jsx)("link",{rel:"canonical",href:"https://mateuszdabrowski.pl/"}),(0,d.jsx)("meta",{property:"og:url",content:"https://mateuszdabrowski.pl/"}),(0,d.jsx)("meta",{property:"og:image",content:"/img/logotyp-og.png"}),(0,d.jsx)("meta",{property:"og:image:type",content:"image/png"}),(0,d.jsx)("meta",{property:"og:image:width",content:"1500"}),(0,d.jsx)("meta",{property:"og:image:height",content:"1500"}),(0,d.jsx)("meta",{property:"og:type",content:"website"}),(0,d.jsx)("link",{rel:"shortcut icon",sizes:"196x196",href:"/img/favicon_196.png"}),(0,d.jsx)("link",{rel:"apple-touch-icon",sizes:"180x180",href:"/img/apple-touch-icon.png"}),(0,d.jsx)("link",{rel:"icon",type:"image/png",sizes:"167x167",href:"/img/favicon_167.png"}),(0,d.jsx)("link",{rel:"apple-touch-icon",sizes:"152x152",href:"/img/favicon_152.png"}),(0,d.jsx)("link",{rel:"icon",type:"image/png",sizes:"128x128",href:"/img/favicon_128.png"}),(0,d.jsx)("link",{rel:"icon",type:"image/png",sizes:"32x32",href:"/img/favicon_32.png"}),(0,d.jsx)("link",{rel:"icon",type:"image/png",sizes:"16x16",href:"/img/favicon_16.png"}),(0,d.jsx)("link",{rel:"manifest",href:"/img/site.webmanifest"}),(0,d.jsx)("link",{rel:"mask-icon",href:"/img/safari-pinned-tab.svg",color:"#DA4E55"}),(0,d.jsx)("meta",{name:"msapplication-TileColor",content:"#F6B355"}),(0,d.jsx)("meta",{name:"msapplication-square70x70logo",content:"/img/favicon-128.png"}),(0,d.jsx)("meta",{name:"msapplication-square150x150logo",content:"/img/favicon-270.png"}),(0,d.jsx)("meta",{name:"msapplication-TileImage",content:"/img/favicon-270.png"}),(0,d.jsx)("meta",{name:"msapplication-config",content:"none"}),(0,d.jsx)("meta",{name:"theme-color",content:"#212121"})]}),(0,d.jsx)(i.A,{title:"Automate Marketing Automation",description:t.description,keywords:t.keywords,children:(0,d.jsxs)("main",{children:[(0,d.jsx)("div",{className:c.hero,children:(0,d.jsxs)("div",{className:c.heroInner,children:[(0,d.jsxs)("h1",{className:c.heroProjectTagline,children:["Automate ",(0,d.jsx)("span",{className:c.heroProjectKeywords,children:"Marketing Automation"})]}),(0,d.jsxs)("h2",{className:c.heroProjectSubTagline,children:[(0,d.jsx)("span",{className:c.heroCodeFunction,children:"let"})," ",(0,d.jsx)("span",{className:c.heroCodeVariable,children:"code"})," ",(0,d.jsx)("span",{className:c.heroCodeSymbols,children:"="})," ",(0,d.jsx)("span",{className:c.heroCodeFunction,children:"do"}),(0,d.jsx)("span",{className:c.heroCodeSymbols,children:"("}),(0,d.jsx)("span",{className:c.heroCodeValue,children:"'our job'"}),(0,d.jsx)("span",{className:c.heroCodeSymbols,children:");"})]})]})}),m&&m.length>0&&(0,d.jsx)("section",{className:c.features,children:(0,d.jsx)("div",{className:"container",children:(0,d.jsx)("div",{className:"row",children:m.map(((e,t)=>(0,d.jsx)(g,{...e},t)))})})}),(0,d.jsx)(u,{}),j&&j.length>0&&(0,d.jsx)("section",{className:c.events,children:(0,d.jsxs)("div",{className:"container",children:[(0,d.jsx)("h2",{className:c.eventsHeading,children:"Upcoming Events"}),(0,d.jsx)("div",{className:(0,s.A)("row",c.eventRow),children:j.map(((e,t)=>(0,d.jsx)(x,{...e},t)))})]})}),h&&h.length>0&&(0,d.jsx)("section",{className:c.articles,children:(0,d.jsxs)("div",{className:"container",children:[(0,d.jsx)("h2",{className:c.articlesHeading,children:"Most popular docs & snippets"}),(0,d.jsx)("div",{className:"row",children:h.map(((e,t)=>(0,d.jsx)(p,{...e},t)))})]})})]})})]})}}}]); \ No newline at end of file diff --git a/assets/js/main.5982bcef.js b/assets/js/main.d91b9c68.js similarity index 99% rename from assets/js/main.5982bcef.js rename to assets/js/main.d91b9c68.js index 4c41ca9ea..ba1cf2761 100644 --- a/assets/js/main.5982bcef.js +++ b/assets/js/main.d91b9c68.js @@ -1,2 +1,2 @@ -/*! For license information please see main.5982bcef.js.LICENSE.txt */ -(self.webpackChunkmd=self.webpackChunkmd||[]).push([[8792],{9188:(e,t,n)=>{"use strict";n.d(t,{W:()=>o});var r=n(6540);function o(){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"}))}},2413:(e,t,n)=>{"use strict";n.d(t,{A:()=>p});n(6540);var r=n(3259),o=n.n(r),a=n(4054);const s={"06bea203":[()=>Promise.all([n.e(1869),n.e(8632)]).then(n.bind(n,5509)),"@site/sites/privacy.mdx",5509],"0acae0a6":[()=>n.e(7760).then(n.t.bind(n,8825,19)),"@generated/docusaurus-plugin-content-docs/sites/p/sites-5f1.json",8825],"0ae20921":[()=>Promise.all([n.e(1869),n.e(4817)]).then(n.bind(n,7650)),"@site/docs/config/sfmc-contact-deletion.mdx",7650],"0cb3f831":[()=>Promise.all([n.e(1869),n.e(1691)]).then(n.bind(n,7279)),"@site/docs/js/js-loops.mdx",7279],"0d297287":[()=>n.e(96).then(n.t.bind(n,3911,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-tags-data-management-b98.json",3911],"1175b8f7":[()=>n.e(8230).then(n.t.bind(n,8622,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-tags-behavioral-triggers-102.json",8622],"1328d02f":[()=>Promise.all([n.e(1869),n.e(9213)]).then(n.bind(n,6968)),"@site/docs/sql/sfmc-sql-date-functions.mdx",6968],"132c1062":[()=>n.e(2997).then(n.t.bind(n,1460,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-category-sfmc-config-085.json",1460],"139f0dd3":[()=>Promise.all([n.e(1869),n.e(2305)]).then(n.bind(n,4823)),"@site/sites/toolset.mdx",4823],"13f9d961":[()=>Promise.all([n.e(1869),n.e(7458)]).then(n.bind(n,5219)),"@site/docs/config/sfmc-mcc-integration-patterns.mdx",5219],"1486c1cd":[()=>n.e(9299).then(n.t.bind(n,7389,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-category-sfmc-sql-dec.json",7389],"14add631":[()=>Promise.all([n.e(1869),n.e(9125)]).then(n.bind(n,7040)),"@site/docs/interaction-studio/mcp-catalog-architecture.mdx",7040],"14eb3368":[()=>Promise.all([n.e(1869),n.e(6969)]).then(n.bind(n,7449)),"@theme/DocCategoryGeneratedIndexPage",7449],"15878b2f":[()=>Promise.all([n.e(1869),n.e(4492)]).then(n.bind(n,7996)),"@site/docs/webinars/sfmc-webinar-architecting-web-solutions.mdx",7996],16633758:[()=>n.e(1562).then(n.t.bind(n,9307,19)),"@generated/docusaurus-plugin-content-docs/sites/p/sites-tags-marketing-cloud-2c6.json",9307],17896441:[()=>Promise.all([n.e(1869),n.e(8401)]).then(n.bind(n,1923)),"@theme/DocItem",1923],"1843ef45":[()=>Promise.all([n.e(1869),n.e(7475)]).then(n.bind(n,9576)),"@site/docs/js/js-if-and-switch.mdx",9576],"18f12793":[()=>Promise.all([n.e(1869),n.e(4406)]).then(n.bind(n,2386)),"@site/docs/sql/snippets/sfmc-sql-debugging-value-length.mdx",2386],"1a4e3797":[()=>Promise.all([n.e(1869),n.e(2138)]).then(n.bind(n,5202)),"@theme/SearchPage",5202],"1a8280e0":[()=>n.e(5496).then(n.t.bind(n,5003,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-tags-app-exchange-c16.json",5003],"1ad5d13a":[()=>Promise.all([n.e(1869),n.e(4649)]).then(n.bind(n,3300)),"@site/sites/faq/how-to-get-sf-certification-vouchers.mdx",3300],"1b5b4d1e":[()=>n.e(6313).then(n.t.bind(n,8714,19)),"@generated/docusaurus-plugin-content-docs/sites/__plugin.json",8714],"20e039ae":[()=>Promise.all([n.e(1869),n.e(672)]).then(n.bind(n,5240)),"@site/docs/sql/sfmc-sql-from.mdx",5240],"22145d1a":[()=>Promise.all([n.e(1869),n.e(7281)]).then(n.bind(n,2979)),"@site/docs/ssjs/ssjs-loops.mdx",2979],"23e27bd1":[()=>n.e(1921).then(n.t.bind(n,2185,19)),"@generated/docusaurus-plugin-content-docs/sites/p/sites-tags-personalization-b0a.json",2185],"240325d0":[()=>Promise.all([n.e(1869),n.e(6134),n.e(2429)]).then(n.bind(n,1346)),"@site/docs/interaction-studio/mcp-serverside-code-basics.mdx",1346],"28b996d9":[()=>n.e(4746).then(n.t.bind(n,9756,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-category-javascript-ab1.json",9756],"2a70d3e0":[()=>n.e(1293).then(n.t.bind(n,2907,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-tags-einstein-37f.json",2907],"2cf43088":[()=>Promise.all([n.e(1869),n.e(673)]).then(n.bind(n,4475)),"@site/docs/ssjs/snippets/sfmc-cloud-page-apps.mdx",4475],"2e2f252f":[()=>Promise.all([n.e(1869),n.e(9551)]).then(n.bind(n,7415)),"@site/sites/ideas/marketing-cloud-ideas.mdx",7415],"30084dac":[()=>Promise.all([n.e(1869),n.e(1870)]).then(n.bind(n,6647)),"@site/docs/sql/sfmc-sql-aggregate-functions.mdx",6647],"32a07664":[()=>n.e(130).then(n.t.bind(n,3798,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-tags-amp-script-67a.json",3798],"3365a9e9":[()=>Promise.all([n.e(1869),n.e(2290)]).then(n.bind(n,6908)),"@site/docs/config/sfmc-behavioral-triggers.mdx",6908],"33ffb019":[()=>Promise.all([n.e(1869),n.e(1825)]).then(n.bind(n,6688)),"@site/docs/docs-and-snippets.mdx",6688],"3720c009":[()=>Promise.all([n.e(1869),n.e(4787)]).then(n.bind(n,6862)),"@theme/DocTagsListPage",6862],"3b80c39a":[()=>n.e(3852).then(n.t.bind(n,5193,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-tags-analytics-9d2.json",5193],"3bb3933f":[()=>n.e(2838).then(n.t.bind(n,7026,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-tags-java-script-011.json",7026],"3c0a8c1c":[()=>n.e(5203).then(n.t.bind(n,4155,19)),"@generated/docusaurus-plugin-content-docs/sites/p/sites-tags-interaction-studio-a70.json",4155],"407fe916":[()=>Promise.all([n.e(1869),n.e(9459)]).then(n.bind(n,9852)),"@site/docs/js/snippets/tailor-with-data.mdx",9852],"468c6372":[()=>n.e(8668).then(n.t.bind(n,8042,19)),"@generated/docusaurus-plugin-content-docs/sites/p/sites-category-ideas-04a.json",8042],"4cb13afc":[()=>n.e(7582).then(n.t.bind(n,5600,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-category-js-snippets-3d1.json",5600],"4d6aece4":[()=>Promise.all([n.e(1869),n.e(135)]).then(n.bind(n,5731)),"@site/docs/webinars/sfmc-webinar-cloud-page-apps.mdx",5731],"4ecb67f1":[()=>n.e(2195).then(n.t.bind(n,5290,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-tags-users-78d.json",5290],"509f2ea4":[()=>Promise.all([n.e(1869),n.e(8705)]).then(n.bind(n,7019)),"@site/docs/sql/sfmc-sql-where.mdx",7019],"5693d0e0":[()=>n.e(2221).then(n.t.bind(n,2504,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-tags-performance-2a3.json",2504],59946128:[()=>n.e(3075).then(n.t.bind(n,6872,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-tags-sql-325.json",6872],"5e95c892":[()=>n.e(9647).then(n.bind(n,3124)),"@theme/DocsRoot",3124],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,4784)),"@generated/docusaurus.config",4784],"5ee690fc":[()=>Promise.all([n.e(1869),n.e(6134),n.e(9646)]).then(n.bind(n,6236)),"@site/docs/sql/sfmc-sql-join.mdx",6236],"5ee7ecad":[()=>Promise.all([n.e(1869),n.e(2330)]).then(n.bind(n,1559)),"@site/docs/sql/sfmc-sql-string-functions.mdx",1559],"612d51b5":[()=>Promise.all([n.e(1869),n.e(5627)]).then(n.bind(n,5760)),"@site/docs/config/sfmc-mobile-connect-data-views.mdx",5760],"67a57efa":[()=>Promise.all([n.e(1869),n.e(183)]).then(n.bind(n,9084)),"@site/docs/ssjs/ssjs-if-and-switch.mdx",9084],"6d83c2a5":[()=>Promise.all([n.e(1869),n.e(7315)]).then(n.bind(n,7617)),"@site/docs/sql/sfmc-sql-like.mdx",7617],"6f369374":[()=>n.e(6749).then(n.t.bind(n,3893,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-tags-marketing-cloud-32f.json",3893],"74e2aa5b":[()=>n.e(368).then(n.t.bind(n,1065,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-tags-best-practice-87b.json",1065],"7626ceb6":[()=>n.e(8084).then(n.t.bind(n,6683,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-tags-63a.json",6683],"772c8612":[()=>Promise.all([n.e(1869),n.e(3595)]).then(n.bind(n,5120)),"@site/sites/licence.mdx",5120],"7827587b":[()=>Promise.all([n.e(1869),n.e(6959)]).then(n.bind(n,4288)),"@site/docs/ssjs/snippets/ampscript-in-ssjs.mdx",4288],"796204ce":[()=>n.e(8199).then(n.t.bind(n,3715,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-tags-data-extensions-ee4.json",3715],"79a8773b":[()=>n.e(2801).then(n.t.bind(n,9058,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-tags-type-script-bc5.json",9058],"7d167774":[()=>n.e(4676).then(n.t.bind(n,4235,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-tags-debugging-4bc.json",4235],"7eba3ab0":[()=>n.e(1470).then(n.t.bind(n,28,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-tags-configuration-39f.json",28],"7f3cd917":[()=>Promise.all([n.e(1869),n.e(7571)]).then(n.bind(n,1215)),"@site/docs/js/snippets/engage-with-countdown.mdx",1215],"7f9f5c99":[()=>Promise.all([n.e(1869),n.e(6419)]).then(n.bind(n,2332)),"@site/docs/config/sfmc-system-data-views.mdx",2332],"81fb7942":[()=>Promise.all([n.e(1869),n.e(1464)]).then(n.bind(n,2665)),"@site/sites/faq/how-to-get-sfmc-hands-on-experience.mdx",2665],"87528abe":[()=>n.e(8991).then(n.t.bind(n,6430,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-tags-sms-203.json",6430],"882dca23":[()=>n.e(6888).then(n.t.bind(n,4249,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-category-ssjs-95a.json",4249],"8dfb128c":[()=>Promise.all([n.e(1869),n.e(9525)]).then(n.bind(n,3338)),"@site/sites/ideas/mc-personalization-ideas.mdx",3338],"8f96fc13":[()=>n.e(3717).then(n.t.bind(n,7318,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-category-mc-personalization-9f9.json",7318],"900de294":[()=>n.e(5134).then(n.t.bind(n,1698,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-category-mc-personalization-snippets-9e9.json",1698],"929714a5":[()=>Promise.all([n.e(1869),n.e(3823)]).then(n.bind(n,1679)),"@site/docs/interaction-studio/mcp-serverside-code-context.mdx",1679],"92cda9bf":[()=>Promise.all([n.e(1869),n.e(5097)]).then(n.bind(n,24)),"@site/docs/ssjs/debugging-ssjs.mdx",24],"933a48ee":[()=>n.e(7973).then(n.t.bind(n,7041,19)),"@generated/docusaurus-plugin-content-docs/sites/p/sites-tags-marketing-cloud-personalization-c7f.json",7041],"937990e1":[()=>Promise.all([n.e(1869),n.e(354)]).then(n.bind(n,4447)),"@site/docs/interaction-studio/mcp-serverside-code-properties.mdx",4447],"97c84ffc":[()=>n.e(6853).then(n.t.bind(n,7963,19)),"@generated/docusaurus-plugin-content-docs/sites/p/sites-tags-best-practice-135.json",7963],"98d1035a":[()=>n.e(7987).then(n.t.bind(n,8586,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-category-sfmc-webinars-c10.json",8586],"9b348dca":[()=>n.e(4023).then(n.t.bind(n,7403,19)),"@generated/docusaurus-plugin-content-docs/sites/p/sites-tags-2e3.json",7403],"9be7a4ef":[()=>Promise.all([n.e(1869),n.e(1428)]).then(n.bind(n,2766)),"@site/docs/ampscript/ampscript-style-guide.mdx",2766],a2a8af23:[()=>n.e(4421).then(n.t.bind(n,7483,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-tags-ssjs-bae.json",7483],a37cbb24:[()=>n.e(6979).then(n.t.bind(n,1742,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-tags-cloud-page-e3a.json",1742],a722baba:[()=>n.e(503).then(n.t.bind(n,6096,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-category-ssjs-snippets-1ab.json",6096],a7456010:[()=>n.e(1235).then(n.t.bind(n,8552,19)),"@generated/docusaurus-plugin-content-pages/default/__plugin.json",8552],a7bd4aaa:[()=>n.e(7098).then(n.bind(n,2881)),"@theme/DocVersionRoot",2881],a8b77297:[()=>Promise.all([n.e(1869),n.e(8330)]).then(n.bind(n,9753)),"@site/docs/config/sfmc-code-resource.mdx",9753],a94703ab:[()=>Promise.all([n.e(1869),n.e(9048)]).then(n.bind(n,4644)),"@theme/DocRoot",4644],aba21aa0:[()=>n.e(5742).then(n.t.bind(n,7093,19)),"@generated/docusaurus-plugin-content-docs/default/__plugin.json",7093],acb396a8:[()=>n.e(3564).then(n.t.bind(n,710,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-tags-webinar-d93.json",710],aeba84fb:[()=>Promise.all([n.e(1869),n.e(4894)]).then(n.bind(n,4875)),"@site/docs/zen-of-sfmc.mdx",4875],b0a5e517:[()=>n.e(5117).then(n.t.bind(n,1759,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-category-ampscript-snippets-b4b.json",1759],b39e9a29:[()=>Promise.all([n.e(1869),n.e(441)]).then(n.bind(n,5968)),"@site/docs/sql/sfmc-sql-select.mdx",5968],b52e5d8d:[()=>Promise.all([n.e(1869),n.e(6412)]).then(n.bind(n,2114)),"@site/docs/config/sfmc-features-on-demand.mdx",2114],b6ea83a4:[()=>n.e(4085).then(n.t.bind(n,2476,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-tags-eloqua-24e.json",2476],b840d82f:[()=>Promise.all([n.e(1869),n.e(3657)]).then(n.bind(n,8917)),"@site/docs/sql/sfmc-sql-basics.mdx",8917],b84a6020:[()=>Promise.all([n.e(1869),n.e(7060)]).then(n.bind(n,8333)),"@site/docs/ssjs/snippets/ssjs-mobileconnect-phone-change.mdx",8333],b9dddfd5:[()=>n.e(167).then(n.t.bind(n,3786,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-tags-marketing-cloud-personalization-2f5.json",3786],bb5d57b6:[()=>Promise.all([n.e(1869),n.e(116)]).then(n.bind(n,6535)),"@site/docs/sql/sfmc-sql-numeric-functions.mdx",6535],beb9716f:[()=>Promise.all([n.e(1869),n.e(4815)]).then(n.bind(n,3954)),"@site/sites/newsletter.mdx",3954],c141421f:[()=>n.e(957).then(n.t.bind(n,936,19)),"@generated/docusaurus-theme-search-algolia/default/__plugin.json",936],c194fa91:[()=>n.e(2437).then(n.t.bind(n,4387,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-tags-setup-d20.json",4387],c30f2f11:[()=>n.e(2377).then(n.t.bind(n,620,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-tags-integration-cd5.json",620],c4f5d8e4:[()=>Promise.all([n.e(1869),n.e(2634)]).then(n.bind(n,2221)),"@site/src/pages/index.js",2221],c64b8421:[()=>Promise.all([n.e(1869),n.e(1833)]).then(n.bind(n,9348)),"@site/docs/sql/sfmc-sql-case.mdx",9348],c8a2287d:[()=>Promise.all([n.e(1869),n.e(6134),n.e(9212)]).then(n.bind(n,8096)),"@site/docs/config/sfmc-appexchange-solutions.mdx",8096],cf3d891a:[()=>n.e(8594).then(n.t.bind(n,9225,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-tags-automation-978.json",9225],cf677a37:[()=>n.e(9051).then(n.t.bind(n,4927,19)),"@generated/docusaurus-plugin-content-docs/sites/p/sites-category-faq-dbd.json",4927],d44a7d50:[()=>Promise.all([n.e(1869),n.e(6134),n.e(9136)]).then(n.bind(n,7494)),"@site/docs/sql/snippets/sfmc-sql-debugging-email-sends.mdx",7494],d458f06e:[()=>n.e(8181).then(n.t.bind(n,3852,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-tags-personalisation-d14.json",3852],d4e8142c:[()=>n.e(5550).then(n.t.bind(n,8067,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-category-sfmc-sql-snippets-6c6.json",8067],d4ed38e0:[()=>Promise.all([n.e(1869),n.e(9854)]).then(n.bind(n,6060)),"@site/docs/sql/sfmc-sql-conversion-functions.mdx",6060],d5687ba7:[()=>Promise.all([n.e(1869),n.e(5319)]).then(n.bind(n,9706)),"@site/docs/ssjs/ssjs-style-guide.mdx",9706],d68fe13b:[()=>n.e(1590).then(n.t.bind(n,87,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-tags-app-4c5.json",87],dc8b40ff:[()=>Promise.all([n.e(1869),n.e(6306)]).then(n.bind(n,7329)),"@site/docs/ssjs/snippets/ssjs-script-template.mdx",7329],df203c0f:[()=>Promise.all([n.e(1869),n.e(4279)]).then(n.bind(n,6958)),"@theme/DocTagDocListPage",6958],e4750b62:[()=>n.e(3361).then(n.t.bind(n,9983,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-tags-interaction-studio-b8f.json",9983],e5ed6a41:[()=>n.e(4316).then(n.t.bind(n,3236,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-tags-email-e09.json",3236],e5fc05e6:[()=>Promise.all([n.e(1869),n.e(5504)]).then(n.bind(n,5323)),"@site/docs/sql/sfmc-sql-null-functions.mdx",5323],e6ad094d:[()=>n.e(2468).then(n.t.bind(n,7109,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-tags-snippet-822.json",7109],e9e14649:[()=>n.e(2516).then(n.t.bind(n,7314,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-tags-style-guide-a0c.json",7314],ea84f538:[()=>n.e(3659).then(n.t.bind(n,4323,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-7e8.json",4323],ec6dc5c4:[()=>Promise.all([n.e(1869),n.e(8280)]).then(n.bind(n,175)),"@site/docs/js/snippets/export-import-document-sfmc-roles.mdx",175],ecbe7f2c:[()=>Promise.all([n.e(1869),n.e(5718)]).then(n.bind(n,5858)),"@site/docs/sql/sfmc-sql-style-guide.mdx",5858],ecd0154e:[()=>Promise.all([n.e(1869),n.e(9304)]).then(n.bind(n,7474)),"@site/docs/js/js-dom.mdx",7474],edb10261:[()=>Promise.all([n.e(1869),n.e(302)]).then(n.bind(n,2430)),"@site/docs/webinars/sfmc-webinar-account-architecture.mdx",2430],eedcf066:[()=>n.e(452).then(n.t.bind(n,7371,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-category-ampscript-3bd.json",7371],ef6c74cb:[()=>n.e(4829).then(n.t.bind(n,8793,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-tags-deliverability-e21.json",8793],f564aeae:[()=>Promise.all([n.e(1869),n.e(630)]).then(n.bind(n,9041)),"@site/docs/config/sfmc-enhanced-send-log.mdx",9041],f7388097:[()=>n.e(9567).then(n.t.bind(n,9660,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-category-serverside-code-e52.json",9660],fc481eb3:[()=>n.e(8905).then(n.t.bind(n,3709,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-tags-crm-80c.json",3709],fd9368c3:[()=>Promise.all([n.e(1869),n.e(1873)]).then(n.bind(n,6952)),"@site/docs/interaction-studio/snippets/mcp-catalog-etl-metadata-viewer.mdx",6952],fd9cbf68:[()=>n.e(7347).then(n.t.bind(n,2980,19)),"@generated/docusaurus-plugin-content-docs/default/p/docs-tags-journey-677.json",2980],fdd7a215:[()=>n.e(6165).then(n.t.bind(n,122,19)),"@generated/docusaurus-plugin-content-docs/sites/p/sites-tags-faq-020.json",122],fe4d0c3d:[()=>Promise.all([n.e(1869),n.e(5702)]).then(n.bind(n,9266)),"@site/docs/interaction-studio/mcp-open-time-email.mdx",9266],ff6cdf17:[()=>Promise.all([n.e(1869),n.e(5876)]).then(n.bind(n,4456)),"@site/docs/ssjs/ssjs-vs-ampscript-performance.mdx",4456]};var i=n(4848);function l(e){let{error:t,retry:n,pastDelay:r}=e;return t?(0,i.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,i.jsx)("p",{children:String(t)}),(0,i.jsx)("div",{children:(0,i.jsx)("button",{type:"button",onClick:n,children:"Retry"})})]}):r?(0,i.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:(0,i.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,i.jsxs)("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2",children:[(0,i.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,i.jsx)("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,i.jsx)("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,i.jsx)("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,i.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,i.jsx)("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,i.jsx)("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,i.jsx)("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,i.jsx)("circle",{cx:"22",cy:"22",r:"8",children:(0,i.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(1604),u=n(3363);function d(e,t){if("*"===e)return o()({loading:l,loader:()=>n.e(2560).then(n.bind(n,2560)),modules:["@theme/NotFound"],webpack:()=>[2560],render(e,t){const n=e.default;return(0,i.jsx)(u.W,{value:{plugin:{name:"native",id:"default"}},children:(0,i.jsx)(n,{...t})})}});const r=a[`${e}-${t}`],d={},p=[],f=[],m=(0,c.A)(r);return Object.entries(m).forEach((e=>{let[t,n]=e;const r=s[n];r&&(d[t]=r[0],p.push(r[1]),f.push(r[2]))})),o().Map({loading:l,loader:d,modules:p,webpack:()=>f,render(t,n){const o=JSON.parse(JSON.stringify(r));Object.entries(t).forEach((t=>{let[n,r]=t;const a=r.default;if(!a)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof a&&"function"!=typeof a||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{a[e]=r[e]}));let s=o;const i=n.split(".");i.slice(0,-1).forEach((e=>{s=s[e]})),s[i[i.length-1]]=a}));const a=o.__comp;delete o.__comp;const s=o.__context;delete o.__context;const l=o.__props;return delete o.__props,(0,i.jsx)(u.W,{value:s,children:(0,i.jsx)(a,{...o,...l,...n})})}})}const p=[{path:"/search/",component:d("/search/","21e"),exact:!0},{path:"/docs/",component:d("/docs/","e53"),routes:[{path:"/docs/",component:d("/docs/","391"),routes:[{path:"/docs/tags/",component:d("/docs/tags/","0bd"),exact:!0},{path:"/docs/tags/amp-script/",component:d("/docs/tags/amp-script/","8c6"),exact:!0},{path:"/docs/tags/analytics/",component:d("/docs/tags/analytics/","63d"),exact:!0},{path:"/docs/tags/app-exchange/",component:d("/docs/tags/app-exchange/","a42"),exact:!0},{path:"/docs/tags/app/",component:d("/docs/tags/app/","ab8"),exact:!0},{path:"/docs/tags/automation/",component:d("/docs/tags/automation/","c1f"),exact:!0},{path:"/docs/tags/behavioral-triggers/",component:d("/docs/tags/behavioral-triggers/","cf7"),exact:!0},{path:"/docs/tags/best-practice/",component:d("/docs/tags/best-practice/","c4c"),exact:!0},{path:"/docs/tags/cloud-page/",component:d("/docs/tags/cloud-page/","8b7"),exact:!0},{path:"/docs/tags/configuration/",component:d("/docs/tags/configuration/","986"),exact:!0},{path:"/docs/tags/crm/",component:d("/docs/tags/crm/","8fc"),exact:!0},{path:"/docs/tags/data-extensions/",component:d("/docs/tags/data-extensions/","345"),exact:!0},{path:"/docs/tags/data-management/",component:d("/docs/tags/data-management/","3c9"),exact:!0},{path:"/docs/tags/debugging/",component:d("/docs/tags/debugging/","f9d"),exact:!0},{path:"/docs/tags/deliverability/",component:d("/docs/tags/deliverability/","17f"),exact:!0},{path:"/docs/tags/einstein/",component:d("/docs/tags/einstein/","294"),exact:!0},{path:"/docs/tags/eloqua/",component:d("/docs/tags/eloqua/","317"),exact:!0},{path:"/docs/tags/email/",component:d("/docs/tags/email/","2fa"),exact:!0},{path:"/docs/tags/integration/",component:d("/docs/tags/integration/","85f"),exact:!0},{path:"/docs/tags/interaction-studio/",component:d("/docs/tags/interaction-studio/","efd"),exact:!0},{path:"/docs/tags/java-script/",component:d("/docs/tags/java-script/","5c0"),exact:!0},{path:"/docs/tags/journey/",component:d("/docs/tags/journey/","4f0"),exact:!0},{path:"/docs/tags/marketing-cloud-personalization/",component:d("/docs/tags/marketing-cloud-personalization/","baa"),exact:!0},{path:"/docs/tags/marketing-cloud/",component:d("/docs/tags/marketing-cloud/","368"),exact:!0},{path:"/docs/tags/performance/",component:d("/docs/tags/performance/","1b8"),exact:!0},{path:"/docs/tags/personalisation/",component:d("/docs/tags/personalisation/","b15"),exact:!0},{path:"/docs/tags/setup/",component:d("/docs/tags/setup/","03e"),exact:!0},{path:"/docs/tags/sms/",component:d("/docs/tags/sms/","c96"),exact:!0},{path:"/docs/tags/snippet/",component:d("/docs/tags/snippet/","036"),exact:!0},{path:"/docs/tags/sql/",component:d("/docs/tags/sql/","c41"),exact:!0},{path:"/docs/tags/ssjs/",component:d("/docs/tags/ssjs/","1d4"),exact:!0},{path:"/docs/tags/style-guide/",component:d("/docs/tags/style-guide/","9ad"),exact:!0},{path:"/docs/tags/type-script/",component:d("/docs/tags/type-script/","523"),exact:!0},{path:"/docs/tags/users/",component:d("/docs/tags/users/","68d"),exact:!0},{path:"/docs/tags/webinar/",component:d("/docs/tags/webinar/","608"),exact:!0},{path:"/docs/",component:d("/docs/","99a"),routes:[{path:"/docs/",component:d("/docs/","6f9"),exact:!0,sidebar:"docs"},{path:"/docs/ampscript/ampscript-style-guide/",component:d("/docs/ampscript/ampscript-style-guide/","e38"),exact:!0,sidebar:"docs"},{path:"/docs/category/ampscript-snippets/",component:d("/docs/category/ampscript-snippets/","cc2"),exact:!0,sidebar:"snippets"},{path:"/docs/category/ampscript/",component:d("/docs/category/ampscript/","d60"),exact:!0,sidebar:"docs"},{path:"/docs/category/javascript/",component:d("/docs/category/javascript/","c91"),exact:!0,sidebar:"docs"},{path:"/docs/category/js-snippets/",component:d("/docs/category/js-snippets/","86c"),exact:!0,sidebar:"snippets"},{path:"/docs/category/mc-personalization-snippets/",component:d("/docs/category/mc-personalization-snippets/","c45"),exact:!0,sidebar:"snippets"},{path:"/docs/category/mc-personalization/",component:d("/docs/category/mc-personalization/","e27"),exact:!0,sidebar:"docs"},{path:"/docs/category/serverside-code/",component:d("/docs/category/serverside-code/","5b6"),exact:!0,sidebar:"docs"},{path:"/docs/category/sfmc-config/",component:d("/docs/category/sfmc-config/","02d"),exact:!0,sidebar:"docs"},{path:"/docs/category/sfmc-sql-snippets/",component:d("/docs/category/sfmc-sql-snippets/","6d0"),exact:!0,sidebar:"snippets"},{path:"/docs/category/sfmc-sql/",component:d("/docs/category/sfmc-sql/","338"),exact:!0,sidebar:"docs"},{path:"/docs/category/sfmc-webinars/",component:d("/docs/category/sfmc-webinars/","f24"),exact:!0,sidebar:"webinars"},{path:"/docs/category/ssjs-snippets/",component:d("/docs/category/ssjs-snippets/","52d"),exact:!0,sidebar:"snippets"},{path:"/docs/category/ssjs/",component:d("/docs/category/ssjs/","630"),exact:!0,sidebar:"docs"},{path:"/docs/config/sfmc-appexchange-solutions/",component:d("/docs/config/sfmc-appexchange-solutions/","024"),exact:!0,sidebar:"docs"},{path:"/docs/config/sfmc-behavioral-triggers/",component:d("/docs/config/sfmc-behavioral-triggers/","366"),exact:!0,sidebar:"docs"},{path:"/docs/config/sfmc-code-resource/",component:d("/docs/config/sfmc-code-resource/","741"),exact:!0,sidebar:"docs"},{path:"/docs/config/sfmc-contact-deletion/",component:d("/docs/config/sfmc-contact-deletion/","616"),exact:!0,sidebar:"docs"},{path:"/docs/config/sfmc-enhanced-send-log/",component:d("/docs/config/sfmc-enhanced-send-log/","e1c"),exact:!0,sidebar:"docs"},{path:"/docs/config/sfmc-features-on-demand/",component:d("/docs/config/sfmc-features-on-demand/","c52"),exact:!0,sidebar:"docs"},{path:"/docs/config/sfmc-mcc-integration-patterns/",component:d("/docs/config/sfmc-mcc-integration-patterns/","115"),exact:!0,sidebar:"docs"},{path:"/docs/config/sfmc-mobile-connect-data-views/",component:d("/docs/config/sfmc-mobile-connect-data-views/","9c8"),exact:!0,sidebar:"docs"},{path:"/docs/config/sfmc-system-data-views/",component:d("/docs/config/sfmc-system-data-views/","90d"),exact:!0,sidebar:"docs"},{path:"/docs/interaction-studio/mcp-catalog-architecture/",component:d("/docs/interaction-studio/mcp-catalog-architecture/","7e6"),exact:!0,sidebar:"docs"},{path:"/docs/interaction-studio/mcp-open-time-email/",component:d("/docs/interaction-studio/mcp-open-time-email/","711"),exact:!0,sidebar:"docs"},{path:"/docs/interaction-studio/mcp-serverside-code-basics/",component:d("/docs/interaction-studio/mcp-serverside-code-basics/","6f7"),exact:!0,sidebar:"docs"},{path:"/docs/interaction-studio/mcp-serverside-code-context/",component:d("/docs/interaction-studio/mcp-serverside-code-context/","e47"),exact:!0,sidebar:"docs"},{path:"/docs/interaction-studio/mcp-serverside-code-properties/",component:d("/docs/interaction-studio/mcp-serverside-code-properties/","4d2"),exact:!0,sidebar:"docs"},{path:"/docs/interaction-studio/snippets/mcp-catalog-etl-metadata-viewer/",component:d("/docs/interaction-studio/snippets/mcp-catalog-etl-metadata-viewer/","e13"),exact:!0,sidebar:"snippets"},{path:"/docs/js/js-dom/",component:d("/docs/js/js-dom/","004"),exact:!0,sidebar:"docs"},{path:"/docs/js/js-if-and-switch/",component:d("/docs/js/js-if-and-switch/","168"),exact:!0,sidebar:"docs"},{path:"/docs/js/js-loops/",component:d("/docs/js/js-loops/","e4b"),exact:!0,sidebar:"docs"},{path:"/docs/js/snippets/engage-with-countdown/",component:d("/docs/js/snippets/engage-with-countdown/","c53"),exact:!0,sidebar:"snippets"},{path:"/docs/js/snippets/export-import-document-sfmc-roles/",component:d("/docs/js/snippets/export-import-document-sfmc-roles/","b5c"),exact:!0,sidebar:"snippets"},{path:"/docs/js/snippets/tailor-with-data/",component:d("/docs/js/snippets/tailor-with-data/","dfd"),exact:!0,sidebar:"snippets"},{path:"/docs/sql/sfmc-sql-aggregate-functions/",component:d("/docs/sql/sfmc-sql-aggregate-functions/","53e"),exact:!0,sidebar:"docs"},{path:"/docs/sql/sfmc-sql-basics/",component:d("/docs/sql/sfmc-sql-basics/","311"),exact:!0,sidebar:"docs"},{path:"/docs/sql/sfmc-sql-case/",component:d("/docs/sql/sfmc-sql-case/","7af"),exact:!0,sidebar:"docs"},{path:"/docs/sql/sfmc-sql-conversion-functions/",component:d("/docs/sql/sfmc-sql-conversion-functions/","35d"),exact:!0,sidebar:"docs"},{path:"/docs/sql/sfmc-sql-date-functions/",component:d("/docs/sql/sfmc-sql-date-functions/","3ba"),exact:!0,sidebar:"docs"},{path:"/docs/sql/sfmc-sql-from/",component:d("/docs/sql/sfmc-sql-from/","ca8"),exact:!0,sidebar:"docs"},{path:"/docs/sql/sfmc-sql-join/",component:d("/docs/sql/sfmc-sql-join/","c2f"),exact:!0,sidebar:"docs"},{path:"/docs/sql/sfmc-sql-like/",component:d("/docs/sql/sfmc-sql-like/","abc"),exact:!0,sidebar:"docs"},{path:"/docs/sql/sfmc-sql-null-functions/",component:d("/docs/sql/sfmc-sql-null-functions/","4ec"),exact:!0,sidebar:"docs"},{path:"/docs/sql/sfmc-sql-numeric-functions/",component:d("/docs/sql/sfmc-sql-numeric-functions/","2a2"),exact:!0,sidebar:"docs"},{path:"/docs/sql/sfmc-sql-select/",component:d("/docs/sql/sfmc-sql-select/","2e8"),exact:!0,sidebar:"docs"},{path:"/docs/sql/sfmc-sql-string-functions/",component:d("/docs/sql/sfmc-sql-string-functions/","57b"),exact:!0,sidebar:"docs"},{path:"/docs/sql/sfmc-sql-style-guide/",component:d("/docs/sql/sfmc-sql-style-guide/","95f"),exact:!0,sidebar:"docs"},{path:"/docs/sql/sfmc-sql-where/",component:d("/docs/sql/sfmc-sql-where/","03d"),exact:!0,sidebar:"docs"},{path:"/docs/sql/snippets/sfmc-sql-debugging-email-sends/",component:d("/docs/sql/snippets/sfmc-sql-debugging-email-sends/","a79"),exact:!0,sidebar:"snippets"},{path:"/docs/sql/snippets/sfmc-sql-debugging-value-length/",component:d("/docs/sql/snippets/sfmc-sql-debugging-value-length/","3e4"),exact:!0,sidebar:"snippets"},{path:"/docs/ssjs/debugging-ssjs/",component:d("/docs/ssjs/debugging-ssjs/","bea"),exact:!0,sidebar:"docs"},{path:"/docs/ssjs/snippets/ampscript-in-ssjs/",component:d("/docs/ssjs/snippets/ampscript-in-ssjs/","73c"),exact:!0,sidebar:"snippets"},{path:"/docs/ssjs/snippets/sfmc-cloud-page-apps/",component:d("/docs/ssjs/snippets/sfmc-cloud-page-apps/","f2c"),exact:!0,sidebar:"snippets"},{path:"/docs/ssjs/snippets/ssjs-mobileconnect-phone-change/",component:d("/docs/ssjs/snippets/ssjs-mobileconnect-phone-change/","c58"),exact:!0,sidebar:"snippets"},{path:"/docs/ssjs/snippets/ssjs-script-template/",component:d("/docs/ssjs/snippets/ssjs-script-template/","4f8"),exact:!0,sidebar:"snippets"},{path:"/docs/ssjs/ssjs-if-and-switch/",component:d("/docs/ssjs/ssjs-if-and-switch/","d8c"),exact:!0,sidebar:"docs"},{path:"/docs/ssjs/ssjs-loops/",component:d("/docs/ssjs/ssjs-loops/","0de"),exact:!0,sidebar:"docs"},{path:"/docs/ssjs/ssjs-style-guide/",component:d("/docs/ssjs/ssjs-style-guide/","427"),exact:!0,sidebar:"docs"},{path:"/docs/ssjs/ssjs-vs-ampscript-performance/",component:d("/docs/ssjs/ssjs-vs-ampscript-performance/","164"),exact:!0,sidebar:"docs"},{path:"/docs/webinars/sfmc-webinar-account-architecture/",component:d("/docs/webinars/sfmc-webinar-account-architecture/","282"),exact:!0,sidebar:"webinars"},{path:"/docs/webinars/sfmc-webinar-architecting-web-solutions/",component:d("/docs/webinars/sfmc-webinar-architecting-web-solutions/","a3c"),exact:!0,sidebar:"webinars"},{path:"/docs/webinars/sfmc-webinar-cloud-page-apps/",component:d("/docs/webinars/sfmc-webinar-cloud-page-apps/","4de"),exact:!0,sidebar:"webinars"},{path:"/docs/zen-of-sfmc/",component:d("/docs/zen-of-sfmc/","432"),exact:!0,sidebar:"docs"}]}]}]},{path:"/sites/",component:d("/sites/","8b8"),routes:[{path:"/sites/",component:d("/sites/","9fd"),routes:[{path:"/sites/tags/",component:d("/sites/tags/","228"),exact:!0},{path:"/sites/tags/best-practice/",component:d("/sites/tags/best-practice/","309"),exact:!0},{path:"/sites/tags/faq/",component:d("/sites/tags/faq/","d93"),exact:!0},{path:"/sites/tags/interaction-studio/",component:d("/sites/tags/interaction-studio/","682"),exact:!0},{path:"/sites/tags/marketing-cloud-personalization/",component:d("/sites/tags/marketing-cloud-personalization/","025"),exact:!0},{path:"/sites/tags/marketing-cloud/",component:d("/sites/tags/marketing-cloud/","da7"),exact:!0},{path:"/sites/tags/personalization/",component:d("/sites/tags/personalization/","c95"),exact:!0},{path:"/sites/",component:d("/sites/","9f8"),routes:[{path:"/sites/category/faq/",component:d("/sites/category/faq/","9c4"),exact:!0,sidebar:"faq"},{path:"/sites/category/ideas/",component:d("/sites/category/ideas/","c74"),exact:!0,sidebar:"ideas"},{path:"/sites/faq/how-to-get-sf-certification-vouchers/",component:d("/sites/faq/how-to-get-sf-certification-vouchers/","df6"),exact:!0,sidebar:"faq"},{path:"/sites/faq/how-to-get-sfmc-hands-on-experience/",component:d("/sites/faq/how-to-get-sfmc-hands-on-experience/","c90"),exact:!0,sidebar:"faq"},{path:"/sites/ideas/marketing-cloud-ideas/",component:d("/sites/ideas/marketing-cloud-ideas/","bd0"),exact:!0,sidebar:"ideas"},{path:"/sites/ideas/mc-personalization-ideas/",component:d("/sites/ideas/mc-personalization-ideas/","90c"),exact:!0,sidebar:"ideas"},{path:"/sites/licence/",component:d("/sites/licence/","32f"),exact:!0},{path:"/sites/my-toolset/",component:d("/sites/my-toolset/","c82"),exact:!0},{path:"/sites/newsletter/",component:d("/sites/newsletter/","16c"),exact:!0},{path:"/sites/privacy/",component:d("/sites/privacy/","c1f"),exact:!0}]}]}]},{path:"/",component:d("/","2e1"),exact:!0},{path:"*",component:d("*")}]},8848:(e,t,n)=>{"use strict";n.d(t,{o:()=>a,x:()=>s});var r=n(6540),o=n(4848);const a=r.createContext(!1);function s(e){let{children:t}=e;const[n,s]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{s(!0)}),[]),(0,o.jsx)(a.Provider,{value:n,children:t})}},5022:(e,t,n)=>{"use strict";var r=n(6540),o=n(5338),a=n(4625),s=n(545),i=n(1712);const l=[n(9128),n(5300),n(4753),n(5729),n(8252)];var c=n(2413),u=n(6347),d=n(2831),p=n(4848);function f(e){let{children:t}=e;return(0,p.jsx)(p.Fragment,{children:t})}var m=n(1141),g=n(7639),h=n(8180),b=n(6957),y=n(4239),v=n(2098),w=n(9503),x=n(1482),k=n(4609),S=n(1210);function E(){const{i18n:{currentLocale:e,defaultLocale:t,localeConfigs:n}}=(0,g.A)(),r=(0,v.o)(),o=n[e].htmlLang,a=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:a(o)}),Object.values(n).filter((e=>o!==e.htmlLang)).map((e=>(0,p.jsx)("meta",{property:"og:locale:alternate",content:a(e.htmlLang)},`meta-og-${e.htmlLang}`)))]})}function _(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,g.A)(),r=function(){const{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,g.A)(),{pathname:r}=(0,u.zy)();return e+(0,k.applyTrailingSlash)((0,h.A)(r),{trailingSlash:n,baseUrl:t})}(),o=t?`${n}${t}`:r;return(0,p.jsxs)(m.A,{children:[(0,p.jsx)("meta",{property:"og:url",content:o}),(0,p.jsx)("link",{rel:"canonical",href:o})]})}function T(){const{i18n:{currentLocale:e}}=(0,g.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:x.Cy,locale:e}),(0,p.jsx)(m.A,{children:t.map(((e,t)=>(0,p.jsx)("meta",{...e},t)))})]})}const C=new Map;var A=n(8848),j=n(3366),N=n(6494);function L(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()=>o.forEach((e=>e?.()))}const P=function(e){let{children:t,location:n,previousLocation:r}=e;return(0,N.A)((()=>{r!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,o=t.hash===n.hash,a=t.search===n.search;if(r&&o&&!a)return;const{hash:s}=t;if(s){const e=decodeURIComponent(s.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:r}),L("onRouteDidUpdate",{previousLocation:r,location:n}))}),[r,n]),t};function O(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 R extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=i.A.canUseDOM?L("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=L("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),O(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return(0,p.jsx)(P,{previousLocation:this.previousLocation,location:t,children:(0,p.jsx)(u.qh,{location:t,render:()=>e})})}}const I=R,M="__docusaurus-base-url-issue-banner-container",D="__docusaurus-base-url-issue-banner",F="__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 = '${M}';\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(/{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}}((0,u.zy)());return(0,p.jsx)(I,{location:e,children:W})}function K(){return(0,p.jsx)($.A,{children:(0,p.jsx)(j.l,{children:(0,p.jsxs)(A.x,{children:[(0,p.jsxs)(f,{children:[(0,p.jsx)(q,{}),(0,p.jsx)(T,{}),(0,p.jsx)(U,{}),(0,p.jsx)(G,{})]}),(0,p.jsx)(V,{})]})})})}var Y=n(4054);const Q=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{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 o=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;o?.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 Z=n(1604);const X=new Set,J=new Set,ee=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,te={prefetch:e=>{if(!(e=>!ee()&&!J.has(e)&&!X.has(e))(e))return!1;X.add(e);const t=(0,d.u)(c.A,e).flatMap((e=>{return t=e.route.path,Object.entries(Y).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,Z.A)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?Q(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!ee()&&!J.has(e))(e)&&(J.add(e),O(e))},ne=Object.freeze(te),re=Boolean(!0);if(i.A.canUseDOM){window.docusaurus=ne;const e=document.getElementById("__docusaurus"),t=(0,p.jsx)(s.vd,{children:(0,p.jsx)(a.Kd,{children:(0,p.jsx)(K,{})})}),n=(e,t)=>{console.error("Docusaurus React Root onRecoverableError:",e,t)},i=()=>{if(window.docusaurusRoot)window.docusaurusRoot.render(t);else if(re)window.docusaurusRoot=o.hydrateRoot(e,t,{onRecoverableError:n});else{const r=o.createRoot(e,{onRecoverableError:n});r.render(t),window.docusaurusRoot=r}};O(window.location.pathname).then((()=>{(0,r.startTransition)(i)}))}},3366:(e,t,n)=>{"use strict";n.d(t,{o:()=>d,l:()=>p});var r=n(6540),o=n(4784);const a=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/docs","versions":[{"name":"current","label":"Next","isLast":true,"path":"/docs","mainDocId":"docs-and-snippets","docs":[{"id":"ampscript/ampscript-style-guide","path":"/docs/ampscript/ampscript-style-guide","sidebar":"docs"},{"id":"config/sfmc-appexchange-solutions","path":"/docs/config/sfmc-appexchange-solutions","sidebar":"docs"},{"id":"config/sfmc-behavioral-triggers","path":"/docs/config/sfmc-behavioral-triggers","sidebar":"docs"},{"id":"config/sfmc-code-resource","path":"/docs/config/sfmc-code-resource","sidebar":"docs"},{"id":"config/sfmc-contact-deletion","path":"/docs/config/sfmc-contact-deletion","sidebar":"docs"},{"id":"config/sfmc-enhanced-send-log","path":"/docs/config/sfmc-enhanced-send-log","sidebar":"docs"},{"id":"config/sfmc-features-on-demand","path":"/docs/config/sfmc-features-on-demand","sidebar":"docs"},{"id":"config/sfmc-mcc-integration-patterns","path":"/docs/config/sfmc-mcc-integration-patterns","sidebar":"docs"},{"id":"config/sfmc-mobile-connect-data-views","path":"/docs/config/sfmc-mobile-connect-data-views","sidebar":"docs"},{"id":"config/sfmc-system-data-views","path":"/docs/config/sfmc-system-data-views","sidebar":"docs"},{"id":"docs-and-snippets","path":"/docs/","sidebar":"docs"},{"id":"interaction-studio/mcp-catalog-architecture","path":"/docs/interaction-studio/mcp-catalog-architecture","sidebar":"docs"},{"id":"interaction-studio/mcp-open-time-email","path":"/docs/interaction-studio/mcp-open-time-email","sidebar":"docs"},{"id":"interaction-studio/mcp-serverside-code-basics","path":"/docs/interaction-studio/mcp-serverside-code-basics","sidebar":"docs"},{"id":"interaction-studio/mcp-serverside-code-context","path":"/docs/interaction-studio/mcp-serverside-code-context","sidebar":"docs"},{"id":"interaction-studio/mcp-serverside-code-properties","path":"/docs/interaction-studio/mcp-serverside-code-properties","sidebar":"docs"},{"id":"interaction-studio/snippets/mcp-catalog-etl-metadata-viewer","path":"/docs/interaction-studio/snippets/mcp-catalog-etl-metadata-viewer","sidebar":"snippets"},{"id":"js/js-dom","path":"/docs/js/js-dom","sidebar":"docs"},{"id":"js/js-if-and-switch","path":"/docs/js/js-if-and-switch","sidebar":"docs"},{"id":"js/js-loops","path":"/docs/js/js-loops","sidebar":"docs"},{"id":"js/snippets/engage-with-countdown","path":"/docs/js/snippets/engage-with-countdown","sidebar":"snippets"},{"id":"js/snippets/export-import-document-sfmc-roles","path":"/docs/js/snippets/export-import-document-sfmc-roles","sidebar":"snippets"},{"id":"js/snippets/tailor-with-data","path":"/docs/js/snippets/tailor-with-data","sidebar":"snippets"},{"id":"sql/sfmc-sql-aggregate-functions","path":"/docs/sql/sfmc-sql-aggregate-functions","sidebar":"docs"},{"id":"sql/sfmc-sql-basics","path":"/docs/sql/sfmc-sql-basics","sidebar":"docs"},{"id":"sql/sfmc-sql-case","path":"/docs/sql/sfmc-sql-case","sidebar":"docs"},{"id":"sql/sfmc-sql-conversion-functions","path":"/docs/sql/sfmc-sql-conversion-functions","sidebar":"docs"},{"id":"sql/sfmc-sql-date-functions","path":"/docs/sql/sfmc-sql-date-functions","sidebar":"docs"},{"id":"sql/sfmc-sql-from","path":"/docs/sql/sfmc-sql-from","sidebar":"docs"},{"id":"sql/sfmc-sql-join","path":"/docs/sql/sfmc-sql-join","sidebar":"docs"},{"id":"sql/sfmc-sql-like","path":"/docs/sql/sfmc-sql-like","sidebar":"docs"},{"id":"sql/sfmc-sql-null-functions","path":"/docs/sql/sfmc-sql-null-functions","sidebar":"docs"},{"id":"sql/sfmc-sql-numeric-functions","path":"/docs/sql/sfmc-sql-numeric-functions","sidebar":"docs"},{"id":"sql/sfmc-sql-select","path":"/docs/sql/sfmc-sql-select","sidebar":"docs"},{"id":"sql/sfmc-sql-string-functions","path":"/docs/sql/sfmc-sql-string-functions","sidebar":"docs"},{"id":"sql/sfmc-sql-style-guide","path":"/docs/sql/sfmc-sql-style-guide","sidebar":"docs"},{"id":"sql/sfmc-sql-where","path":"/docs/sql/sfmc-sql-where","sidebar":"docs"},{"id":"sql/snippets/sfmc-sql-debugging-email-sends","path":"/docs/sql/snippets/sfmc-sql-debugging-email-sends","sidebar":"snippets"},{"id":"sql/snippets/sfmc-sql-debugging-value-length","path":"/docs/sql/snippets/sfmc-sql-debugging-value-length","sidebar":"snippets"},{"id":"ssjs/debugging-ssjs","path":"/docs/ssjs/debugging-ssjs","sidebar":"docs"},{"id":"ssjs/snippets/ampscript-in-ssjs","path":"/docs/ssjs/snippets/ampscript-in-ssjs","sidebar":"snippets"},{"id":"ssjs/snippets/sfmc-cloud-page-apps","path":"/docs/ssjs/snippets/sfmc-cloud-page-apps","sidebar":"snippets"},{"id":"ssjs/snippets/ssjs-mobileconnect-phone-change","path":"/docs/ssjs/snippets/ssjs-mobileconnect-phone-change","sidebar":"snippets"},{"id":"ssjs/snippets/ssjs-script-template","path":"/docs/ssjs/snippets/ssjs-script-template","sidebar":"snippets"},{"id":"ssjs/ssjs-if-and-switch","path":"/docs/ssjs/ssjs-if-and-switch","sidebar":"docs"},{"id":"ssjs/ssjs-loops","path":"/docs/ssjs/ssjs-loops","sidebar":"docs"},{"id":"ssjs/ssjs-style-guide","path":"/docs/ssjs/ssjs-style-guide","sidebar":"docs"},{"id":"ssjs/ssjs-vs-ampscript-performance","path":"/docs/ssjs/ssjs-vs-ampscript-performance","sidebar":"docs"},{"id":"webinars/sfmc-webinar-account-architecture","path":"/docs/webinars/sfmc-webinar-account-architecture","sidebar":"webinars"},{"id":"webinars/sfmc-webinar-architecting-web-solutions","path":"/docs/webinars/sfmc-webinar-architecting-web-solutions","sidebar":"webinars"},{"id":"webinars/sfmc-webinar-cloud-page-apps","path":"/docs/webinars/sfmc-webinar-cloud-page-apps","sidebar":"webinars"},{"id":"zen-of-sfmc","path":"/docs/zen-of-sfmc","sidebar":"docs"},{"id":"/category/ssjs","path":"/docs/category/ssjs","sidebar":"docs"},{"id":"/category/javascript","path":"/docs/category/javascript","sidebar":"docs"},{"id":"/category/ampscript","path":"/docs/category/ampscript","sidebar":"docs"},{"id":"/category/sfmc-sql","path":"/docs/category/sfmc-sql","sidebar":"docs"},{"id":"/category/sfmc-config","path":"/docs/category/sfmc-config","sidebar":"docs"},{"id":"/category/mc-personalization","path":"/docs/category/mc-personalization","sidebar":"docs"},{"id":"/category/serverside-code","path":"/docs/category/serverside-code","sidebar":"docs"},{"id":"/category/ssjs-snippets","path":"/docs/category/ssjs-snippets","sidebar":"snippets"},{"id":"/category/js-snippets","path":"/docs/category/js-snippets","sidebar":"snippets"},{"id":"/category/ampscript-snippets","path":"/docs/category/ampscript-snippets","sidebar":"snippets"},{"id":"/category/sfmc-sql-snippets","path":"/docs/category/sfmc-sql-snippets","sidebar":"snippets"},{"id":"/category/mc-personalization-snippets","path":"/docs/category/mc-personalization-snippets","sidebar":"snippets"},{"id":"/category/sfmc-webinars","path":"/docs/category/sfmc-webinars","sidebar":"webinars"}],"draftIds":[],"sidebars":{"docs":{"link":{"path":"/docs/zen-of-sfmc","label":"zen-of-sfmc"}},"snippets":{"link":{"path":"/docs/category/ssjs-snippets","label":"SSJS Snippets"}},"webinars":{"link":{"path":"/docs/category/sfmc-webinars","label":"SFMC Webinars"}}}}],"breadcrumbs":true},"sites":{"path":"/sites","versions":[{"name":"current","label":"Next","isLast":true,"path":"/sites","mainDocId":"ideas/marketing-cloud-ideas","docs":[{"id":"faq/how-to-get-sf-certification-vouchers","path":"/sites/faq/how-to-get-sf-certification-vouchers","sidebar":"faq"},{"id":"faq/how-to-get-sfmc-hands-on-experience","path":"/sites/faq/how-to-get-sfmc-hands-on-experience","sidebar":"faq"},{"id":"ideas/marketing-cloud-ideas","path":"/sites/ideas/marketing-cloud-ideas","sidebar":"ideas"},{"id":"ideas/mc-personalization-ideas","path":"/sites/ideas/mc-personalization-ideas","sidebar":"ideas"},{"id":"licence","path":"/sites/licence"},{"id":"my-toolset","path":"/sites/my-toolset"},{"id":"newsletter","path":"/sites/newsletter"},{"id":"privacy","path":"/sites/privacy"},{"id":"/category/ideas","path":"/sites/category/ideas","sidebar":"ideas"},{"id":"/category/faq","path":"/sites/category/faq","sidebar":"faq"}],"draftIds":[],"sidebars":{"ideas":{"link":{"path":"/sites/category/ideas","label":"Ideas"}},"faq":{"link":{"path":"/sites/category/faq","label":"FAQ"}}}}],"breadcrumbs":true}},"docusaurus-plugin-google-gtag":{"default":{"trackingID":["GTM-N46LB5K"],"anonymizeIP":true,"id":"default"}}}'),s=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var i=n(2654);const l=JSON.parse('{"docusaurusVersion":"3.3.2","siteVersion":"1.3.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"3.3.2"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"3.3.2"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"3.3.2"},"docusaurus-plugin-google-gtag":{"type":"package","name":"@docusaurus/plugin-google-gtag","version":"3.3.2"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"3.3.2"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"3.3.2"},"docusaurus-theme-search-algolia":{"type":"package","name":"@docusaurus/theme-search-algolia","version":"3.3.2"},"docusaurus-plugin-ideal-image":{"type":"package","name":"@docusaurus/plugin-ideal-image","version":"3.3.2"},"docusaurus-plugin-client-redirects":{"type":"package","name":"@docusaurus/plugin-client-redirects","version":"3.3.2"},"docusaurus-theme-mermaid":{"type":"package","name":"@docusaurus/theme-mermaid","version":"3.3.2"}}}');var c=n(4848);const u={siteConfig:o.default,siteMetadata:l,globalData:a,i18n:s,codeTranslations:i},d=r.createContext(u);function p(e){let{children:t}=e;return(0,c.jsx)(d.Provider,{value:u,children:t})}},3832:(e,t,n)=>{"use strict";n.d(t,{A:()=>g});var r=n(6540),o=n(1712),a=n(1141),s=n(4609),i=n(7134),l=n(3363),c=n(4848);function u(e){let{error:t,tryAgain:n}=e;return(0,c.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,c.jsx)("h1",{style:{fontSize:"3rem"},children:"This page crashed"}),(0,c.jsx)("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"},children:"Try again"}),(0,c.jsx)(d,{error:t})]})}function d(e){let{error:t}=e;const n=(0,s.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,c.jsx)("p",{style:{whiteSpace:"pre-wrap"},children:n})}function p(e){let{children:t}=e;return(0,c.jsx)(l.W,{value:{plugin:{name:"docusaurus-core-error-boundary",id:"default"}},children:t})}function f(e){let{error:t,tryAgain:n}=e;return(0,c.jsx)(p,{children:(0,c.jsxs)(g,{fallback:()=>(0,c.jsx)(u,{error:t,tryAgain:n}),children:[(0,c.jsx)(a.A,{children:(0,c.jsx)("title",{children:"Page Error"})}),(0,c.jsx)(i.A,{children:(0,c.jsx)(u,{error:t,tryAgain:n})})]})})}const m=e=>(0,c.jsx)(f,{...e});class g extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){o.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??m)(e)}return e??null}}},1712:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,o={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},1141:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});n(6540);var r=n(545),o=n(4848);function a(e){return(0,o.jsx)(r.mg,{...e})}},4783:(e,t,n)=>{"use strict";n.d(t,{A:()=>f});var r=n(6540),o=n(4625),a=n(4609),s=n(7639),i=n(877),l=n(1712),c=n(7344),u=n(8180),d=n(4848);function p(e,t){let{isNavLink:n,to:p,href:f,activeClassName:m,isActive:g,"data-noBrokenLinkCheck":h,autoAddBaseUrl:b=!0,...y}=e;const{siteConfig:{trailingSlash:v,baseUrl:w}}=(0,s.A)(),{withBaseUrl:x}=(0,u.h)(),k=(0,c.A)(),S=(0,r.useRef)(null);(0,r.useImperativeHandle)(t,(()=>S.current));const E=p||f;const _=(0,i.A)(E),T=E?.replace("pathname://","");let C=void 0!==T?(A=T,b&&(e=>e.startsWith("/"))(A)?x(A):A):void 0;var A;C&&_&&(C=(0,a.applyTrailingSlash)(C,{trailingSlash:v,baseUrl:w}));const j=(0,r.useRef)(!1),N=n?o.k2:o.N_,L=l.A.canUseIntersectionObserver,P=(0,r.useRef)(),O=()=>{j.current||null==C||(window.docusaurus.preload(C),j.current=!0)};(0,r.useEffect)((()=>(!L&&_&&null!=C&&window.docusaurus.prefetch(C),()=>{L&&P.current&&P.current.disconnect()})),[P,C,L,_]);const R=C?.startsWith("#")??!1,I=!y.target||"_self"===y.target,M=!C||!_||!I||R;return h||!R&&M||k.collectLink(C),y.id&&k.collectAnchor(y.id),M?(0,d.jsx)("a",{ref:S,href:C,...E&&!_&&{target:"_blank",rel:"noopener noreferrer"},...y}):(0,d.jsx)(N,{...y,onMouseEnter:O,onTouchStart:O,innerRef:e=>{S.current=e,L&&e&&_&&(P.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(P.current.unobserve(e),P.current.disconnect(),null!=C&&window.docusaurus.prefetch(C))}))})),P.current.observe(e))},to:C,...n&&{isActive:g,activeClassName:m}})}const f=r.forwardRef(p)},3230:(e,t,n)=>{"use strict";n.d(t,{A:()=>c,T:()=>l});var r=n(6540),o=n(4848);function a(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 s=n(2654);function i(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 s[t??n]??n??t}function l(e,t){let{message:n,id:r}=e;return a(i({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 s=i({message:t,id:n});return(0,o.jsx)(o.Fragment,{children:a(s,r)})}},4598:(e,t,n)=>{"use strict";n.d(t,{W:()=>r});const r="default"},877:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function o(e){return void 0!==e&&!r(e)}n.d(t,{A:()=>o,z:()=>r})},8180:(e,t,n)=>{"use strict";n.d(t,{A:()=>i,h:()=>s});var r=n(6540),o=n(7639),a=n(877);function s(){const{siteConfig:{baseUrl:e,url:t}}=(0,o.A)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:o=!1,absolute:s=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,a.z)(n))return n;if(o)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const i=n.startsWith(t)?n:t+n.replace(/^\//,"");return s?e+i:i}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function i(e,t){void 0===t&&(t={});const{withBaseUrl:n}=s();return n(e,t)}},7344:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(6540);n(4848);const o=r.createContext({collectAnchor:()=>{},collectLink:()=>{}}),a=()=>(0,r.useContext)(o);function s(){return a()}},7639:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(6540),o=n(3366);function a(){return(0,r.useContext)(o.o)}},1062:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(6540),o=n(8848);function a(){return(0,r.useContext)(o.o)}},6494:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(6540);const o=n(1712).A.canUseDOM?r.useLayoutEffect:r.useEffect},1604:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function o(e){const t={};return function e(n,o){Object.entries(n).forEach((n=>{let[a,s]=n;const i=o?`${o}.${a}`:a;r(s)?e(s,i):t[i]=s}))}(e),t}},3363:(e,t,n)=>{"use strict";n.d(t,{W:()=>s,o:()=>a});var r=n(6540),o=n(4848);const a=r.createContext(null);function s(e){let{children:t,value:n}=e;const s=r.useContext(a),i=(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:s,value:n})),[s,n]);return(0,o.jsx)(a.Provider,{value:i,children:t})}},4721:(e,t,n)=>{"use strict";n.d(t,{zK:()=>b,vT:()=>f,gk:()=>m,Gy:()=>d,HW:()=>y,ht:()=>p,r7:()=>h,jh:()=>g});var r=n(6347),o=n(7639),a=n(4598);function s(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,o.A)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const i=e=>e.versions.find((e=>e.isLast));function l(e,t){const n=i(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.B6)(t,{path:e.path,exact:!1,strict:!1})))}function c(e,t){const n=l(e,t),o=n?.docs.find((e=>!!(0,r.B6)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:o,alternateDocVersions:o?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(o.id):{}}}const u={},d=()=>s("docusaurus-plugin-content-docs")??u,p=e=>{try{return function(e,t,n){void 0===t&&(t=a.W),void 0===n&&(n={});const r=s(e),o=r?.[t];if(!o&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return o}("docusaurus-plugin-content-docs",e,{failfast:!0})}catch(t){throw new Error("You are using a feature of the Docusaurus docs plugin, but this plugin does not seem to be enabled"+("Default"===e?"":` (pluginId=${e}`),{cause:t})}};function f(e){void 0===e&&(e={});const t=d(),{pathname:n}=(0,r.zy)();return function(e,t,n){void 0===n&&(n={});const o=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})})),a=o?{pluginId:o[0],pluginData:o[1]}:void 0;if(!a&&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 a}(t,n,e)}function m(e){void 0===e&&(e={});const t=f(e),{pathname:n}=(0,r.zy)();if(!t)return;return{activePlugin:t,activeVersion:l(t.pluginData,n)}}function g(e){return p(e).versions}function h(e){const t=p(e);return i(t)}function b(e){const t=p(e),{pathname:n}=(0,r.zy)();return c(t,n)}function y(e){const t=p(e),{pathname:n}=(0,r.zy)();return function(e,t){const n=i(e);return{latestDocSuggestion:c(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},9128:(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")}))}}},5729:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n(5947),o=n.n(r);o().configure({showSpinner:!1});const a={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{o().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){o().done()}}},4753:(e,t,n)=>{"use strict";n.r(t);var r=n(1765),o=n(4784);!function(e){const{themeConfig:{prism:t}}=o.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{"php"===e&&n(9700),n(1255)(`./prism-${e}`)})),delete globalThis.Prism}(r.My)},5225:(e,t,n)=>{"use strict";n.d(t,{A:()=>u});n(6540);var r=n(4164),o=n(3230),a=n(6957),s=n(4783),i=n(7344);const l={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};var c=n(4848);function u(e){let{as:t,id:n,...u}=e;const d=(0,i.A)(),{navbar:{hideOnScroll:p}}=(0,a.p)();if("h1"===t||!n)return(0,c.jsx)(t,{...u,id:void 0});d.collectAnchor(n);const f=(0,o.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)(s.A,{className:"hash-link",to:`#${n}`,"aria-label":f,title:f,children:"\u200b"})]})}},716:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});n(6540);const r={iconExternalLink:"iconExternalLink_nPIU"};var o=n(4848);function a(e){let{width:t=13.5,height:n=13.5}=e;return(0,o.jsx)("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:r.iconExternalLink,children:(0,o.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"})})}},7134:(e,t,n)=>{"use strict";n.d(t,{A:()=>jt});var r=n(6540),o=n(4164),a=n(3832),s=n(4239),i=n(6347),l=n(3230),c=n(4067),u=n(4848);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,i.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 g(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 h=n(8630),b=n(9503);const y={skipToContent:"skipToContent_fXgn"};function v(){return(0,u.jsx)(g,{className:y.skipToContent})}var w=n(6957),x=n(2);function k(e){let{width:t=21,height:n=21,color:r="currentColor",strokeWidth:o=1.2,className:a,...s}=e;return(0,u.jsx)("svg",{viewBox:"0 0 15 15",width:t,height:n,...s,children:(0,u.jsx)("g",{stroke:r,strokeWidth:o,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,o.A)("clean-btn close",S.closeButton,e.className),children:(0,u.jsx)(k,{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,o.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,x.Mj)();if(!t)return null;const{backgroundColor:r,textColor:o,isCloseable:a}=e;return(0,u.jsxs)("div",{className:C.announcementBar,style:{backgroundColor:r,color:o},role:"banner",children:[a&&(0,u.jsx)("div",{className:C.announcementBarPlaceholder}),(0,u.jsx)(T,{className:C.announcementBarContent}),a&&(0,u.jsx)(E,{onClick:n,className:C.announcementBarClose})]})}var j=n(1938),N=n(4245);var L=n(4799),P=n(763);const O=r.createContext(null);function R(e){let{children:t}=e;const n=function(){const e=(0,j.M)(),t=(0,P.YL)(),[n,o]=(0,r.useState)(!1),a=null!==t.component,s=(0,L.ZC)(a);return(0,r.useEffect)((()=>{a&&!s&&o(!0)}),[a,s]),(0,r.useEffect)((()=>{a?e.shown||o(!0):o(!1)}),[e.shown,a]),(0,r.useMemo)((()=>[n,o]),[n])}();return(0,u.jsx)(O.Provider,{value:n,children:t})}function I(e){if(e.component){const t=e.component;return(0,u.jsx)(t,{...e.props})}}function M(){const e=(0,r.useContext)(O);if(!e)throw new L.dV("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,o=(0,r.useCallback)((()=>n(!1)),[n]),a=(0,P.YL)();return(0,r.useMemo)((()=>({shown:t,hide:o,content:I(a)})),[o,a,t])}function D(e){let{header:t,primaryMenu:n,secondaryMenu:r}=e;const{shown:a}=M();return(0,u.jsxs)("div",{className:"navbar-sidebar",children:[t,(0,u.jsxs)("div",{className:(0,o.A)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":a}),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(7710),z=n(1062);function B(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 U(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 q={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function $(e){let{className:t,buttonClassName:n,value:r,onChange:a}=e;const s=(0,z.A)(),i=(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,o.A)(q.toggle,t),children:(0,u.jsxs)("button",{className:(0,o.A)("clean-btn",q.toggleButton,!s&&q.toggleButtonDisabled,n),type:"button",onClick:()=>a("dark"===r?"light":"dark"),disabled:!s,title:i,"aria-label":i,"aria-live":"polite",children:[(0,u.jsx)(B,{className:(0,o.A)(q.toggleIcon,q.lightToggleIcon)}),(0,u.jsx)(U,{className:(0,o.A)(q.toggleIcon,q.darkToggleIcon)})]})})}const H=r.memo($),V={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function W(e){let{className:t}=e;const n=(0,w.p)().navbar.style,r=(0,w.p)().colorMode.disableSwitch,{colorMode:o,setColorMode:a}=(0,F.G)();return r?null:(0,u.jsx)(H,{className:t,buttonClassName:"dark"===n?V.darkNavbarColorModeToggle:void 0,value:o,onChange:a})}var G=n(20);function K(){return(0,u.jsx)(G.A,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function Y(){const e=(0,j.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)(k,{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)(W,{className:"margin-right--md"}),(0,u.jsx)(Y,{})]})}var Z=n(4783),X=n(8180),J=n(877),ee=n(7865),te=n(716);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:r,href:o,label:a,html:s,isDropdownLink:i,prependBaseUrlToHref:l,...c}=e;const d=(0,X.A)(r),p=(0,X.A)(t),f=(0,X.A)(o,{forcePrependBaseUrl:!0}),m=a&&o&&!(0,J.A)(o),g=s?{dangerouslySetInnerHTML:{__html:s}}:{children:(0,u.jsxs)(u.Fragment,{children:[a,m&&(0,u.jsx)(te.A,{...i&&{width:12,height:12}})]})};return o?(0,u.jsx)(Z.A,{href:l?f:o,...c,...g}):(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,...g})}function re(e){let{className:t,isDropdownItem:n=!1,...r}=e;const a=(0,u.jsx)(ne,{className:(0,o.A)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n,...r});return n?(0,u.jsx)("li",{children:a}):a}function oe(e){let{className:t,isDropdownItem:n,...r}=e;return(0,u.jsx)("li",{className:"menu__list-item",children:(0,u.jsx)(ne,{className:(0,o.A)("menu__link",t),...r})})}function ae(e){let{mobile:t=!1,position:n,...r}=e;const o=t?oe:re;return(0,u.jsx)(o,{...r,activeClassName:r.activeClassName??(t?"menu__link--active":"navbar__link--active")})}var se=n(4549),ie=n(260),le=n(7639);const ce={dropdownNavbarItemMobile:"dropdownNavbarItemMobile_S0Fm"};function ue(e,t){return e.some((e=>function(e,t){return!!(0,ie.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:a,onClick:s,...i}=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,o.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:i.to?void 0:"#",className:(0,o.A)("navbar__link",a),...i,onClick:i.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!c))},children:i.children??i.label}),(0,u.jsx)("ul",{className:"dropdown__menu",children:t.map(((e,t)=>(0,r.createElement)(Ve,{isDropdownItem:!0,activeClassName:"dropdown__link--active",...e,key:t})))})]})}function pe(e){let{items:t,className:n,position:a,onClick:s,...l}=e;const c=function(){const{siteConfig:{baseUrl:e}}=(0,le.A)(),{pathname:t}=(0,i.zy)();return t.replace(e,"/")}(),d=ue(t,c),{collapsed:p,toggleCollapsed:f,setCollapsed:m}=(0,se.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&m(!d)}),[c,d,m]),(0,u.jsxs)("li",{className:(0,o.A)("menu__list-item",{"menu__list-item--collapsed":p}),children:[(0,u.jsx)(ne,{role:"button",className:(0,o.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)(se.N,{lazy:!0,as:"ul",className:"menu__list",collapsed:p,children:t.map(((e,t)=>(0,r.createElement)(Ve,{mobile:!0,isDropdownItem:!0,onClick:s,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(2098);function ge(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 he="iconLanguage_nlXk";var be=n(961);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(9188),we=["translations"];function xe(){return xe=Object.assign||function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var _e="Ctrl";var Te=r.forwardRef((function(e,t){var n=e.translations,o=void 0===n?{}:n,a=Ee(e,we),s=o.buttonText,i=void 0===s?"Search":s,l=o.buttonAriaLabel,c=void 0===l?"Search":l,u=ke((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",xe({type:"button",className:"DocSearch DocSearch-Button","aria-label":c},a,{ref:t}),r.createElement("span",{className:"DocSearch-Button-Container"},r.createElement(ve.W,null),r.createElement("span",{className:"DocSearch-Button-Placeholder"},i)),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,o=ke((0,r.useState)(!1),2),a=o[0],s=o[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&&s(!0)}function n(e){e.key!==t&&"Meta"!==e.key||s(!1)}}),[t]),r.createElement("kbd",{className:a?"DocSearch-Button-Key DocSearch-Button-Key--pressed":"DocSearch-Button-Key"},n)}var Ae=n(1141),je=n(1142),Ne=n(2177),Le=n(1482);const Pe={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 Oe=null;function Re(e){let{hit:t,children:n}=e;return(0,u.jsx)(Z.A,{to:t.url,children:n})}function Ie(e){let{state:t,onClose:n}=e;const r=(0,je.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:o,...a}=e;const{siteMetadata:s}=(0,le.A)(),l=(0,Ne.C)(),c=function(){const{locale:e,tags:t}=(0,Le.af)();return[`language:${e}`,t.map((e=>`docusaurus_tag:${e}`))]}(),d=a.searchParameters?.facetFilters??[],p=t?function(e,t){const n=e=>"string"==typeof e?[e]:e;return[...n(e),...n(t)]}(c,d):d,f={...a.searchParameters,facetFilters:p},m=(0,i.W6)(),g=(0,r.useRef)(null),h=(0,r.useRef)(null),[b,y]=(0,r.useState)(!1),[v,w]=(0,r.useState)(void 0),x=(0,r.useCallback)((()=>Oe?Promise.resolve():Promise.all([n.e(9462).then(n.bind(n,9462)),Promise.all([n.e(1869),n.e(8913)]).then(n.bind(n,8913)),Promise.all([n.e(1869),n.e(5373)]).then(n.bind(n,135))]).then((e=>{let[{DocSearchModal:t}]=e;Oe=t}))),[]),k=(0,r.useCallback)((()=>{x().then((()=>{g.current=document.createElement("div"),document.body.insertBefore(g.current,document.body.firstChild),y(!0)}))}),[x,y]),S=(0,r.useCallback)((()=>{y(!1),g.current?.remove(),h.current?.focus()}),[y]),E=(0,r.useCallback)((e=>{x().then((()=>{y(!0),w(e.key)}))}),[x,y,w]),_=(0,r.useRef)({navigate(e){let{itemUrl:t}=e;(0,ee.G)(o,t)?window.location.href=t:m.push(t)}}).current,T=(0,r.useRef)((e=>a.transformItems?a.transformItems(e):e.map((e=>({...e,url:l(e.url)}))))).current,C=(0,r.useMemo)((()=>e=>(0,u.jsx)(Ie,{...e,onClose:S})),[S]),A=(0,r.useCallback)((e=>(e.addAlgoliaAgent("docusaurus",s.docusaurusVersion),e)),[s.docusaurusVersion]);return function(e){var t=e.isOpen,n=e.onOpen,o=e.onClose,a=e.onInput,s=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?o():document.body.classList.contains("DocSearch--active")||document.body.classList.contains("DocSearch--active")||n()),s&&s.current===document.activeElement&&a&&/[a-zA-Z0-9]/.test(String.fromCharCode(e.keyCode))&&a(e)}return window.addEventListener("keydown",e),function(){window.removeEventListener("keydown",e)}}),[t,n,o,a,s])}({isOpen:b,onOpen:k,onClose:S,onInput:E,searchButtonRef:h}),(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(Ae.A,{children:(0,u.jsx)("link",{rel:"preconnect",href:`https://${a.appId}-dsn.algolia.net`,crossOrigin:"anonymous"})}),(0,u.jsx)(Te,{onTouchStart:x,onFocus:x,onMouseOver:x,onClick:k,ref:h,translations:Pe.button}),b&&Oe&&g.current&&(0,be.createPortal)((0,u.jsx)(Oe,{onClose:S,initialScrollY:window.scrollY,initialQuery:v,navigator:_,transformItems:T,hitComponent:Re,transformSearchClient:A,...a.searchPagePath&&{resultsFooterComponent:C},...a,searchParameters:f,placeholder:Pe.placeholder,translations:Pe.modal}),g.current)]})}function De(){const{siteConfig:e}=(0,le.A)();return(0,u.jsx)(Me,{...e.themeConfig.algolia})}const Fe={navbarSearchContainer:"navbarSearchContainer_Bca1"};function ze(e){let{children:t,className:n}=e;return(0,u.jsx)("div",{className:(0,o.A)(n,Fe.navbarSearchContainer),children:t})}var Be=n(4721),Ue=n(5215);var qe=n(2780);const $e=e=>e.docs.find((t=>t.id===e.mainDocId));const He={default:ae,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:r,queryString:o="",...a}=e;const{i18n:{currentLocale:s,locales:c,localeConfigs:d}}=(0,le.A)(),p=(0,me.o)(),{search:f,hash:m}=(0,i.zy)(),g=[...n,...c.map((e=>{const n=`${`pathname://${p.createUrl({locale:e,fullyQualified:!1})}`}${f}${m}${o}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===s?t?"menu__link--active":"dropdown__link--active":""}})),...r],h=t?(0,l.T)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[s].label;return(0,u.jsx)(fe,{...a,mobile:t,label:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(ge,{className:he}),h]}),items:g})},search:function(e){let{mobile:t,className:n}=e;return t?null:(0,u.jsx)(ze,{className:n,children:(0,u.jsx)(De,{})})},dropdown:fe,html:function(e){let{value:t,className:n,mobile:r=!1,isDropdownItem:a=!1}=e;const s=a?"li":"div";return(0,u.jsx)(s,{className:(0,o.A)({navbar__item:!r&&!a,"menu__list-item":r},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:r,...o}=e;const{activeDoc:a}=(0,Be.zK)(r),s=(0,Ue.QB)(t,r),i=a?.path===s?.path;return null===s||s.unlisted&&!i?null:(0,u.jsx)(ae,{exact:!0,...o,isActive:()=>i||!!a?.sidebar&&a.sidebar===s.sidebar,label:n??s.id,to:s.path})},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:r,...o}=e;const{activeDoc:a}=(0,Be.zK)(r),s=(0,Ue.fW)(t,r).link;if(!s)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return(0,u.jsx)(ae,{exact:!0,...o,isActive:()=>a?.sidebar===t,label:n??s.label,to:s.path})},docsVersion:function(e){let{label:t,to:n,docsPluginId:r,...o}=e;const a=(0,Ue.Vd)(r)[0],s=t??a.label,i=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(a).path;return(0,u.jsx)(ae,{...o,label:s,to:i})},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:r,dropdownItemsBefore:o,dropdownItemsAfter:a,...s}=e;const{search:c,hash:d}=(0,i.zy)(),p=(0,Be.zK)(n),f=(0,Be.jh)(n),{savePreferredVersionName:m}=(0,qe.g1)(n),g=[...o,...f.map((e=>{const t=p.alternateDocVersions[e.name]??$e(e);return{label:e.label,to:`${t.path}${c}${d}`,isActive:()=>e===p.activeVersion,onClick:()=>m(e.name)}})),...a],h=(0,Ue.Vd)(n)[0],b=t&&g.length>1?(0,l.T)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):h.label,y=t&&g.length>1?void 0:$e(h).path;return g.length<=1?(0,u.jsx)(ae,{...s,mobile:t,label:b,to:y,isActive:r?()=>!1:void 0}):(0,u.jsx)(fe,{...s,mobile:t,label:b,to:y,items:g,isActive:r?()=>!1:void 0})}};function Ve(e){let{type:t,...n}=e;const r=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),o=He[r];if(!o)throw new Error(`No NavbarItem component found for type "${t}".`);return(0,u.jsx)(o,{...n})}function We(){const e=(0,j.M)(),t=(0,w.p)().navbar.items;return(0,u.jsx)("ul",{className:"menu__list",children:t.map(((t,n)=>(0,r.createElement)(Ve,{mobile:!0,...t,onClick:()=>e.toggle(),key:n})))})}function Ge(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)(Ge,{onClick:()=>t.hide()}),t.content]})}function Ye(){const e=(0,j.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)(We,{}),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,o.A)("navbar-sidebar__backdrop",e.className)})}function Xe(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:a}}=(0,w.p)(),s=(0,j.M)(),{navbarRef:i,isNavbarVisible:d}=function(e){const[t,n]=(0,r.useState)(e),o=(0,r.useRef)(!1),a=(0,r.useRef)(0),s=(0,r.useCallback)((e=>{null!==e&&(a.current=e.getBoundingClientRect().height)}),[]);return(0,N.Mq)(((t,r)=>{let{scrollY:s}=t;if(!e)return;if(s=i?n(!1):s+c{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return o.current=!0,void n(!1);n(!0)})),{navbarRef:s,isNavbarVisible:t}}(n);return(0,u.jsxs)("nav",{ref:i,"aria-label":(0,l.T)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,o.A)("navbar","navbar--fixed-top",n&&[Qe.navbarHideable,!d&&Qe.navbarHidden],{"navbar--dark":"dark"===a,"navbar--primary":"primary"===a,"navbar-sidebar--show":s.shown}),children:[t,(0,u.jsx)(Ze,{onClick:s.toggle}),(0,u.jsx)(Ye,{})]})}var Je=n(4176);const et="right";function tt(e){let{width:t=30,height:n=30,className:r,...o}=e;return(0,u.jsx)("svg",{className:r,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true",...o,children:(0,u.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"})})}function nt(){const{toggle:e,shown:t}=(0,j.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)(tt,{})})}const rt={colorModeToggle:"colorModeToggle_DEke"};function ot(e){let{items:t}=e;return(0,u.jsx)(u.Fragment,{children:t.map(((e,t)=>(0,u.jsx)(Je.k2,{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)(Ve,{...e})},t)))})}function at(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 st(){const e=(0,j.M)(),t=(0,w.p)().navbar.items,[n,r]=function(e){function t(e){return"left"===(e.position??et)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),o=t.find((e=>"search"===e.type));return(0,u.jsx)(at,{left:(0,u.jsxs)(u.Fragment,{children:[!e.disabled&&(0,u.jsx)(nt,{}),(0,u.jsx)(K,{}),(0,u.jsx)(ot,{items:n})]}),right:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(ot,{items:r}),(0,u.jsx)(W,{className:rt.colorModeToggle}),!o&&(0,u.jsx)(ze,{children:(0,u.jsx)(De,{})})]})})}function it(){return(0,u.jsx)(Xe,{children:(0,u.jsx)(st,{})})}function lt(e){let{item:t}=e;const{to:n,href:r,label:o,prependBaseUrlToHref:a,...s}=t,i=(0,X.A)(n),l=(0,X.A)(r,{forcePrependBaseUrl:!0});return(0,u.jsxs)(Z.A,{className:"footer__link-item",...r?{href:a?l:r}:{to:i},...s,children:[o,r&&!(0,J.A)(r)&&(0,u.jsx)(te.A,{})]})}function ct(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)(lt,{item:t})},t.href??t.to)}function ut(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)(ct,{item:e},t)))})]})}function dt(e){let{columns:t}=e;return(0,u.jsx)("div",{className:"row footer__links",children:t.map(((e,t)=>(0,u.jsx)(ut,{column:e},t)))})}function pt(){return(0,u.jsx)("span",{className:"footer__link-separator",children:"\xb7"})}function ft(e){let{item:t}=e;return t.html?(0,u.jsx)("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):(0,u.jsx)(lt,{item:t})}function mt(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)(ft,{item:e}),t.length!==n+1&&(0,u.jsx)(pt,{})]},n)))})})}function gt(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?(0,u.jsx)(dt,{columns:t}):(0,u.jsx)(mt,{links:t})}var ht=n(975);const bt={footerLogoLink:"footerLogoLink_BH7S"};function yt(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)(ht.A,{className:(0,o.A)("footer__logo",t.className),alt:t.alt,sources:r,width:t.width,height:t.height,style:t.style})}function vt(e){let{logo:t}=e;return t.href?(0,u.jsx)(Z.A,{href:t.href,className:bt.footerLogoLink,target:t.target,children:(0,u.jsx)(yt,{logo:t})}):(0,u.jsx)(yt,{logo:t})}function wt(e){let{copyright:t}=e;return(0,u.jsx)("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function xt(e){let{style:t,links:n,logo:r,copyright:a}=e;return(0,u.jsx)("footer",{className:(0,o.A)("footer",{"footer--dark":"dark"===t}),children:(0,u.jsxs)("div",{className:"container container-fluid",children:[n,(r||a)&&(0,u.jsxs)("div",{className:"footer__bottom text--center",children:[r&&(0,u.jsx)("div",{className:"margin-bottom--sm",children:r}),a]})]})})}function kt(){const{footer:e}=(0,w.p)();if(!e)return null;const{copyright:t,links:n,logo:r,style:o}=e;return(0,u.jsx)(xt,{style:o,links:n&&n.length>0&&(0,u.jsx)(gt,{links:n}),logo:r&&(0,u.jsx)(vt,{logo:r}),copyright:t&&(0,u.jsx)(wt,{copyright:t})})}const St=r.memo(kt),Et=(0,L.fM)([F.a,x.oq,N.Tv,qe.VQ,s.Jx,function(e){let{children:t}=e;return(0,u.jsx)(P.y_,{children:(0,u.jsx)(j.e,{children:(0,u.jsx)(R,{children:t})})})}]);function _t(e){let{children:t}=e;return(0,u.jsx)(Et,{children:t})}var Tt=n(5225);function Ct(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)(Tt.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)(Je.a2,{onClick:n,className:"button button--primary shadow--lw"})}),(0,u.jsx)("hr",{}),(0,u.jsx)("div",{className:"margin-vert--md",children:(0,u.jsx)(Je.bq,{error:t})})]})})})}const At={mainWrapper:"mainWrapper_z2l0"};function jt(e){const{children:t,noFooter:n,wrapperClassName:r,title:i,description:l}=e;return(0,b.J)(),(0,u.jsxs)(_t,{children:[(0,u.jsx)(s.be,{title:i,description:l}),(0,u.jsx)(v,{}),(0,u.jsx)(A,{}),(0,u.jsx)(it,{}),(0,u.jsx)("div",{id:d,className:(0,o.A)(h.G.wrapper.main,At.mainWrapper,r),children:(0,u.jsx)(a.A,{fallback:e=>(0,u.jsx)(Ct,{...e}),children:t})}),!n&&(0,u.jsx)(St,{})]})}},20:(e,t,n)=>{"use strict";n.d(t,{A:()=>u});n(6540);var r=n(4783),o=n(8180),a=n(7639),s=n(6957),i=n(975),l=n(4848);function c(e){let{logo:t,alt:n,imageClassName:r}=e;const a={light:(0,o.A)(t.src),dark:(0,o.A)(t.srcDark||t.src)},s=(0,l.jsx)(i.A,{className:t.className,sources:a,height:t.height,width:t.width,alt:n,style:t.style});return r?(0,l.jsx)("div",{className:r,children:s}):s}function u(e){const{siteConfig:{title:t}}=(0,a.A)(),{navbar:{title:n,logo:i}}=(0,s.p)(),{imageClassName:u,titleClassName:d,...p}=e,f=(0,o.A)(i?.href||"/"),m=n?"":t,g=i?.alt??m;return(0,l.jsxs)(r.A,{to:f,...p,...i?.target&&{target:i.target},children:[i&&(0,l.jsx)(c,{logo:i,alt:g,imageClassName:u}),null!=n&&(0,l.jsx)("b",{className:d,children:n})]})}},1210:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});n(6540);var r=n(1141),o=n(4848);function a(e){let{locale:t,version:n,tag:a}=e;const s=t;return(0,o.jsxs)(r.A,{children:[t&&(0,o.jsx)("meta",{name:"docusaurus_locale",content:t}),n&&(0,o.jsx)("meta",{name:"docusaurus_version",content:n}),a&&(0,o.jsx)("meta",{name:"docusaurus_tag",content:a}),s&&(0,o.jsx)("meta",{name:"docsearch:language",content:s}),n&&(0,o.jsx)("meta",{name:"docsearch:version",content:n}),a&&(0,o.jsx)("meta",{name:"docsearch:docusaurus_tag",content:a})]})}},975:(e,t,n)=>{"use strict";n.d(t,{A:()=>u});var r=n(6540),o=n(4164),a=n(1062),s=n(7710);const i={themedComponent:"themedComponent_mlkZ","themedComponent--light":"themedComponent--light_NVdE","themedComponent--dark":"themedComponent--dark_xIcU"};var l=n(4848);function c(e){let{className:t,children:n}=e;const c=(0,a.A)(),{colorMode:u}=(0,s.G)();return(0,l.jsx)(l.Fragment,{children:(c?"dark"===u?["dark"]:["light"]:["light","dark"]).map((e=>{const a=n({theme:e,className:(0,o.A)(t,i.themedComponent,i[`themedComponent--${e}`])});return(0,l.jsx)(r.Fragment,{children:a},e)}))})}function u(e){const{sources:t,className:n,alt:r,...o}=e;return(0,l.jsx)(c,{className:n,children:e=>{let{theme:n,className:a}=e;return(0,l.jsx)("img",{src:t[n],alt:r,className:a,...o})}})}},4549:(e,t,n)=>{"use strict";n.d(t,{N:()=>b,u:()=>c});var r=n(6540),o=n(1712),a=n(6494),s=n(6350),i=n(4848);const l="ease-in-out";function c(e){let{initialState:t}=e;const[n,o]=(0,r.useState)(t??!1),a=(0,r.useCallback)((()=>{o((e=>!e))}),[]);return{collapsed:n,setCollapsed:o,toggleCollapsed:a}}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:o}=e;const a=(0,r.useRef)(!1);(0,r.useEffect)((()=>{const e=t.current;function r(){const t=e.scrollHeight,n=o?.duration??function(e){if((0,s.O)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${o?.easing??l}`,height:`${t}px`}}function i(){const t=r();e.style.transition=t.transition,e.style.height=t.height}if(!a.current)return p(e,n),void(a.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(i(),requestAnimationFrame((()=>{e.style.height=u.height,e.style.overflow=u.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{i()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,o])}function m(e){if(!o.A.canUseDOM)return e?u:d}function g(e){let{as:t="div",collapsed:n,children:o,animation:a,onCollapseTransitionEnd:s,className:l,disableSSRStyle:c}=e;const u=(0,r.useRef)(null);return f({collapsibleRef:u,collapsed:n,animation:a}),(0,i.jsx)(t,{ref:u,style:c?void 0:m(n),onTransitionEnd:e=>{"height"===e.propertyName&&(p(u.current,n),s?.(n))},className:l,children:o})}function h(e){let{collapsed:t,...n}=e;const[o,s]=(0,r.useState)(!t),[l,c]=(0,r.useState)(t);return(0,a.A)((()=>{t||s(!0)}),[t]),(0,a.A)((()=>{o&&c(t)}),[o,t]),o?(0,i.jsx)(g,{...n,collapsed:l}):null}function b(e){let{lazy:t,...n}=e;const r=t?h:g;return(0,i.jsx)(r,{...n})}},2:(e,t,n)=>{"use strict";n.d(t,{Mj:()=>g,oq:()=>m});var r=n(6540),o=n(1062),a=n(1269),s=n(4799),i=n(6957),l=n(4848);const c=(0,a.Wf)("docusaurus.announcement.dismiss"),u=(0,a.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,i.p)(),t=(0,o.A)(),[n,a]=(0,r.useState)((()=>!!t&&d()));(0,r.useEffect)((()=>{a(d())}),[]);const s=(0,r.useCallback)((()=>{p(!0),a(!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()||a(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:s})),[e,n,s])}();return(0,l.jsx)(f.Provider,{value:n,children:t})}function g(){const e=(0,r.useContext)(f);if(!e)throw new s.dV("AnnouncementBarProvider");return e}},7710:(e,t,n)=>{"use strict";n.d(t,{G:()=>b,a:()=>h});var r=n(6540),o=n(1712),a=n(4799),s=n(1269),i=n(6957),l=n(4848);const c=r.createContext(void 0),u="theme",d=(0,s.Wf)(u),p={light:"light",dark:"dark"},f=e=>e===p.dark?p.dark:p.light,m=e=>o.A.canUseDOM?f(document.documentElement.getAttribute("data-theme")):f(e),g=e=>{d.set(f(e))};function h(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,i.p)(),[o,a]=(0,r.useState)(m(e));(0,r.useEffect)((()=>{t&&d.del()}),[t]);const s=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:o=!0}=r;t?(a(t),o&&g(t)):(a(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(o))}),[o]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==u)return;const t=d.get();null!==t&&s(f(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,s]);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:s(null)};return e.addListener(r),()=>e.removeListener(r)}),[s,t,n]),(0,r.useMemo)((()=>({colorMode:o,setColorMode:s,get isDarkTheme(){return o===p.dark},setLightTheme(){s(p.light)},setDarkTheme(){s(p.dark)}})),[o,s])}();return(0,l.jsx)(c.Provider,{value:n,children:t})}function b(){const e=(0,r.useContext)(c);if(null==e)throw new a.dV("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},2780:(e,t,n)=>{"use strict";n.d(t,{VQ:()=>b,XK:()=>w,g1:()=>v});var r=n(6540),o=n(4721),a=n(4598),s=n(6957),i=n(5215),l=n(4799),c=n(1269),u=n(4848);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 g(){const e=(0,o.Gy)(),t=(0,s.p)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[a,i]=(0,r.useState)((()=>f(n)));(0,r.useEffect)((()=>{i(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function o(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,o(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[a,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){p.save(e,t,n),i((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function h(e){let{children:t}=e;const n=g();return(0,u.jsx)(m.Provider,{value:n,children:t})}function b(e){let{children:t}=e;return i.C5?(0,u.jsx)(h,{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=a.W);const t=(0,o.ht)(e),[n,s]=y(),{preferredVersionName:i}=n[e];return{preferredVersion:t.versions.find((e=>e.name===i))??null,savePreferredVersionName:(0,r.useCallback)((t=>{s.savePreferredVersion(e,t)}),[s,e])}}function w(){const e=(0,o.Gy)(),[t]=y();function n(n){const r=e[n],{preferredVersionName:o}=t[n];return r.versions.find((e=>e.name===o))??null}const r=Object.keys(e);return Object.fromEntries(r.map((e=>[e,n(e)])))}},403:(e,t,n)=>{"use strict";n.d(t,{V:()=>l,t:()=>c});var r=n(6540),o=n(4799),a=n(4848);const s=Symbol("EmptyContext"),i=r.createContext(s);function l(e){let{children:t,name:n,items:o}=e;const s=(0,r.useMemo)((()=>n&&o?{name:n,items:o}:null),[n,o]);return(0,a.jsx)(i.Provider,{value:s,children:t})}function c(){const e=(0,r.useContext)(i);if(e===s)throw new o.dV("DocsSidebarProvider");return e}},3403:(e,t,n)=>{"use strict";n.d(t,{n:()=>i,r:()=>l});var r=n(6540),o=n(4799),a=n(4848);const s=r.createContext(null);function i(e){let{children:t,version:n}=e;return(0,a.jsx)(s.Provider,{value:n,children:t})}function l(){const e=(0,r.useContext)(s);if(null===e)throw new o.dV("DocsVersionProvider");return e}},1938:(e,t,n)=>{"use strict";n.d(t,{M:()=>f,e:()=>p});var r=n(6540),o=n(763),a=n(2216),s=n(2814),i=n(6957),l=n(4799),c=n(4848);const u=r.createContext(void 0);function d(){const e=function(){const e=(0,o.YL)(),{items:t}=(0,i.p)().navbar;return 0===t.length&&!e.component}(),t=(0,a.l)(),n=!e&&"mobile"===t,[l,c]=(0,r.useState)(!1);(0,s.$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}},763:(e,t,n)=>{"use strict";n.d(t,{GX:()=>c,YL:()=>l,y_:()=>i});var r=n(6540),o=n(4799),a=n(4848);const s=r.createContext(null);function i(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return(0,a.jsx)(s.Provider,{value:n,children:t})}function l(){const e=(0,r.useContext)(s);if(!e)throw new o.dV("NavbarSecondaryMenuContentProvider");return e[0]}function c(e){let{component:t,props:n}=e;const a=(0,r.useContext)(s);if(!a)throw new o.dV("NavbarSecondaryMenuContentProvider");const[,i]=a,l=(0,o.Be)(n);return(0,r.useEffect)((()=>{i({component:t,props:l})}),[i,t,l]),(0,r.useEffect)((()=>()=>i({component:null,props:null})),[i]),null}},9503:(e,t,n)=>{"use strict";n.d(t,{w:()=>o,J:()=>a});var r=n(6540);const o="navigation-with-keyboard";function a(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(o),"mousedown"===e.type&&document.body.classList.remove(o)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(o),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},1142:(e,t,n)=>{"use strict";n.d(t,{b:()=>i,w:()=>l});var r=n(6540),o=n(7639),a=n(2814);const s="q";function i(){return(0,a.l)(s)}function l(){const{siteConfig:{baseUrl:e,themeConfig:t}}=(0,o.A)(),{algolia:{searchPagePath:n}}=t;return(0,r.useCallback)((t=>`${e}${n}?${s}=${encodeURIComponent(t)}`),[e,n])}},2216:(e,t,n)=>{"use strict";n.d(t,{l:()=>i});var r=n(6540),o=n(1712);const a={desktop:"desktop",mobile:"mobile",ssr:"ssr"},s=996;function i(e){let{desktopBreakpoint:t=s}=void 0===e?{}:e;const[n,i]=(0,r.useState)((()=>"ssr"));return(0,r.useEffect)((()=>{function e(){i(function(e){if(!o.A.canUseDOM)throw new Error("getWindowSize() should only be called after React hydration");return window.innerWidth>e?a.desktop:a.mobile}(t))}return e(),window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}}),[t]),n}},8630:(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:{blogFooterTagsRow:"theme-blog-footer-tags-row",blogFooterEditMetaRow:"theme-blog-footer-edit-meta-row"},pages:{pageFooterEditMetaRow:"theme-pages-footer-edit-meta-row"}}},6350:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{O:()=>r})},5215:(e,t,n)=>{"use strict";n.d(t,{$S:()=>g,B5:()=>T,C5:()=>p,Nr:()=>m,OF:()=>k,QB:()=>_,Vd:()=>S,Y:()=>w,cC:()=>f,d1:()=>C,fW:()=>E,w8:()=>y});var r=n(6540),o=n(6347),a=n(2831),s=n(4721),i=n(2780),l=n(3403),c=n(403),u=n(5167),d=n(260);const p=!!s.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 g(){const{pathname:e}=(0,o.zy)(),t=(0,c.t)();if(!t)throw new Error("Unexpected: cant find current sidebar in context");const n=x({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 h=(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?h(e.href,t):"category"===e.type&&(h(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 x(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const o=[];return function e(t){for(const a of t)if("category"===a.type&&((0,d.ys)(a.href,n)||e(a.items))||"link"===a.type&&(0,d.ys)(a.href,n)){return r&&"category"!==a.type||o.unshift(a),!0}return!1}(t),o}function k(){const e=(0,c.t)(),{pathname:t}=(0,o.zy)(),n=(0,s.vT)()?.pluginData.breadcrumbs;return!1!==n&&e?x({sidebarItems:e.items,pathname:t}):null}function S(e){const{activeVersion:t}=(0,s.zK)(e),{preferredVersion:n}=(0,i.g1)(e),o=(0,s.r7)(e);return(0,r.useMemo)((()=>(0,u.s)([t,n,o].filter(Boolean))),[t,n,o])}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,o.zy)(),r=(0,l.r)(),s=t.routes,i=s.find((e=>(0,o.B6)(n.pathname,e)));if(!i)return null;const c=i.sidebar,u=c?r.docsSidebars[c]:void 0;return{docElement:(0,a.v)(s),sidebarName:c,sidebarItems:u}}function C(e){return e.filter((e=>!("category"===e.type||"link"===e.type)||!!m(e)))}},4176:(e,t,n)=>{"use strict";n.d(t,{bq:()=>u,MN:()=>c,a2:()=>l,k2:()=>d});var r=n(6540),o=n(3230),a=n(4609);const s={errorBoundaryError:"errorBoundaryError_a6uf",errorBoundaryFallback:"errorBoundaryFallback_VBag"};var i=n(4848);function l(e){return(0,i.jsx)("button",{type:"button",...e,children:(0,i.jsx)(o.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 c(e){let{error:t,tryAgain:n}=e;return(0,i.jsxs)("div",{className:s.errorBoundaryFallback,children:[(0,i.jsx)("p",{children:t.message}),(0,i.jsx)(l,{onClick:n})]})}function u(e){let{error:t}=e;const n=(0,a.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,i.jsx)("p",{className:s.errorBoundaryError,children:n})}class d extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}},7942:(e,t,n)=>{"use strict";n.d(t,{s:()=>o});var r=n(7639);function o(e){const{siteConfig:t}=(0,r.A)(),{title:n,titleDelimiter:o}=t;return e?.trim().length?`${e.trim()} ${o} ${n}`:n}},2814:(e,t,n)=>{"use strict";n.d(t,{$Z:()=>s,aZ:()=>l,l:()=>c});var r=n(6540),o=n(6347),a=n(4799);function s(e){!function(e){const t=(0,o.W6)(),n=(0,a._q)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}function i(e){const t=(0,o.W6)();return(0,r.useSyncExternalStore)(t.listen,(()=>e(t)),(()=>e(t)))}function l(e){return i((t=>null===e?null:new URLSearchParams(t.location.search).get(e)))}function c(e){const t=l(e)??"",n=function(e){const t=(0,o.W6)();return(0,r.useCallback)(((n,r)=>{const o=new URLSearchParams(t.location.search);n?o.set(e,n):o.delete(e),(r?.push?t.push:t.replace)({search:o.toString()})}),[e,t])}(e);return[t,n]}},5167:(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 o(e){return Array.from(new Set(e))}n.d(t,{X:()=>r,s:()=>o})},4239:(e,t,n)=>{"use strict";n.d(t,{e3:()=>f,be:()=>d,Jx:()=>m});var r=n(6540),o=n(4164),a=n(1141),s=n(3363);function i(){const e=r.useContext(s.o);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var l=n(8180),c=n(7942),u=n(4848);function d(e){let{title:t,description:n,keywords:r,image:o,children:s}=e;const i=(0,c.s)(t),{withBaseUrl:d}=(0,l.h)(),p=o?d(o,{absolute:!0}):void 0;return(0,u.jsxs)(a.A,{children:[t&&(0,u.jsx)("title",{children:i}),t&&(0,u.jsx)("meta",{property:"og:title",content:i}),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}),s]})}const p=r.createContext(void 0);function f(e){let{className:t,children:n}=e;const s=r.useContext(p),i=(0,o.A)(s,t);return(0,u.jsxs)(p.Provider,{value:i,children:[(0,u.jsx)(a.A,{children:(0,u.jsx)("html",{className:i})}),n]})}function m(e){let{children:t}=e;const n=i(),r=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const a=`plugin-id-${n.plugin.id}`;return(0,u.jsx)(f,{className:(0,o.A)(r,a),children:t})}},4799:(e,t,n)=>{"use strict";n.d(t,{Be:()=>c,ZC:()=>i,_q:()=>s,dV:()=>l,fM:()=>u});var r=n(6540),o=n(6494),a=n(4848);function s(e){const t=(0,r.useRef)(e);return(0,o.A)((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function i(e){const t=(0,r.useRef)();return(0,o.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,a.jsx)(a.Fragment,{children:e.reduceRight(((e,t)=>(0,a.jsx)(t,{children:e})),n)})}}},7865:(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})},260:(e,t,n)=>{"use strict";n.d(t,{Dt:()=>i,ys:()=>s});var r=n(6540),o=n(2413),a=n(7639);function s(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function i(){const{baseUrl:e}=(0,a.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 o(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(o).flatMap((e=>e.routes??[])))}(n)}({routes:o.A,baseUrl:e})),[e])}},4245:(e,t,n)=>{"use strict";n.d(t,{Mq:()=>f,Tv:()=>u,a_:()=>m,gk:()=>g});var r=n(6540),o=n(1712),a=n(1062),s=n(6494),i=n(4799),l=n(4848);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 i.dV("ScrollControllerProvider");return e}const p=()=>o.A.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function f(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=d(),o=(0,r.useRef)(p()),a=(0,i._q)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=p();a(e,o.current),o.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[a,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),o=(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,s.A)((()=>{queueMicrotask((()=>n.current?.()))})),{blockElementScrollPositionUntilNextRender:o}}function g(){const e=(0,r.useRef)(null),t=(0,a.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 o=document.documentElement.scrollTop;(n&&o>e||!n&&ot&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},1482:(e,t,n)=>{"use strict";n.d(t,{Cy:()=>s,af:()=>l,tU:()=>i});var r=n(4721),o=n(7639),a=n(2780);const s="default";function i(e,t){return`docs-${e}-${t}`}function l(){const{i18n:e}=(0,o.A)(),t=(0,r.Gy)(),n=(0,r.gk)(),l=(0,a.XK)();const c=[s,...Object.keys(t).map((function(e){const r=n?.activePlugin.pluginId===e?n.activeVersion:void 0,o=l[e],a=t[e].versions.find((e=>e.isLast));return i(e,(r??o??a).name)}))];return{locale:e.currentLocale,tags:c}}},1269:(e,t,n)=>{"use strict";n.d(t,{Dv:()=>u,Wf:()=>c});var r=n(6540);const o="localStorage";function a(e){let{key:t,oldValue:n,newValue:r,storage:o}=e;if(n===r)return;const a=document.createEvent("StorageEvent");a.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,o),window.dispatchEvent(a)}function s(e){if(void 0===e&&(e=o),"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,i||(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),i=!0),null}var t}let i=!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=s(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),a({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),a({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(),o=(0,r.useCallback)((e=>"undefined"==typeof window?()=>{}:n.listen(e)),[n]);return[(0,r.useSyncExternalStore)(o,(()=>"undefined"==typeof window?null:n.get()),(()=>null)),n]}},2098:(e,t,n)=>{"use strict";n.d(t,{o:()=>s});var r=n(7639),o=n(6347),a=n(4609);function s(){const{siteConfig:{baseUrl:e,url:t,trailingSlash:n},i18n:{defaultLocale:s,currentLocale:i}}=(0,r.A)(),{pathname:l}=(0,o.zy)(),c=(0,a.applyTrailingSlash)(l,{trailingSlash:n,baseUrl:e}),u=i===s?e:e.replace(`/${i}/`,"/"),d=c.replace(e,"");return{createUrl:function(e){let{locale:n,fullyQualified:r}=e;return`${r?t:""}${function(e){return e===s?`${u}`:`${u}${e}/`}(n)}${d}`}}}},4067:(e,t,n)=>{"use strict";n.d(t,{$:()=>s});var r=n(6540),o=n(6347),a=n(4799);function s(e){const t=(0,o.zy)(),n=(0,a.ZC)(t),s=(0,a._q)(e);(0,r.useEffect)((()=>{n&&t!==n&&s({location:t,previousLocation:n})}),[s,t,n])}},6957:(e,t,n)=>{"use strict";n.d(t,{p:()=>o});var r=n(7639);function o(){return(0,r.A)().siteConfig.themeConfig}},6349:(e,t,n)=>{"use strict";n.d(t,{c:()=>o});var r=n(7639);function o(){const{siteConfig:{themeConfig:e}}=(0,r.A)();return e}},2177:(e,t,n)=>{"use strict";n.d(t,{C:()=>i});var r=n(6540),o=n(7865),a=n(8180),s=n(6349);function i(){const{withBaseUrl:e}=(0,a.h)(),{algolia:{externalUrlRegex:t,replaceSearchResultPathname:n}}=(0,s.c)();return(0,r.useCallback)((r=>{const a=new URL(r);if((0,o.G)(t,a.href))return r;const s=`${a.pathname+a.hash}`;return e(function(e,t){return t?e.replaceAll(new RegExp(t.from,"g"),t.to):e}(s,n))}),[e,t,n])}},4356:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.removeTrailingSlash=t.addLeadingSlash=t.addTrailingSlash=void 0;const r=n(835);function o(e){return e.endsWith("/")?e:`${e}/`}function a(e){return(0,r.removeSuffix)(e,"/")}t.addTrailingSlash=o,t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[s]=e.split(/[#?]/),i="/"===s||s===r?s:(l=s,n?o(l):a(l));var l;return e.replace(s,i)},t.addLeadingSlash=function(e){return(0,r.addPrefix)(e,"/")},t.removeTrailingSlash=a},8274:(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]}},4609: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.removePrefix=t.addSuffix=t.removeSuffix=t.addPrefix=t.removeTrailingSlash=t.addLeadingSlash=t.addTrailingSlash=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="__blog-post-container";var o=n(4356);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(o).default}}),Object.defineProperty(t,"addTrailingSlash",{enumerable:!0,get:function(){return o.addTrailingSlash}}),Object.defineProperty(t,"addLeadingSlash",{enumerable:!0,get:function(){return o.addLeadingSlash}}),Object.defineProperty(t,"removeTrailingSlash",{enumerable:!0,get:function(){return o.removeTrailingSlash}});var a=n(835);Object.defineProperty(t,"addPrefix",{enumerable:!0,get:function(){return a.addPrefix}}),Object.defineProperty(t,"removeSuffix",{enumerable:!0,get:function(){return a.removeSuffix}}),Object.defineProperty(t,"addSuffix",{enumerable:!0,get:function(){return a.addSuffix}}),Object.defineProperty(t,"removePrefix",{enumerable:!0,get:function(){return a.removePrefix}});var s=n(8274);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return s.getErrorCausalChain}})},835:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.removePrefix=t.addSuffix=t.removeSuffix=t.addPrefix=void 0,t.addPrefix=function(e,t){return e.startsWith(t)?e:`${t}${e}`},t.removeSuffix=function(e,t){return""===t?e:e.endsWith(t)?e.slice(0,-t.length):e},t.addSuffix=function(e,t){return e.endsWith(t)?e:`${e}${t}`},t.removePrefix=function(e,t){return e.startsWith(t)?e.slice(t.length):e}},1513:(e,t,n)=>{"use strict";n.d(t,{zR:()=>w,TM:()=>T,yJ:()=>f,sC:()=>A,AO:()=>p});var r=n(8168);function o(e){return"/"===e.charAt(0)}function a(e,t){for(var n=t,r=n+1,o=e.length;r=0;p--){var f=s[p];"."===f?a(s,p):".."===f?(a(s,p),d++):d&&(a(s,p),d--)}if(!c)for(;d--;d)s.unshift("..");!c||""===s[0]||s[0]&&o(s[0])||s.unshift("");var m=s.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var i=n(1561);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,o=t||"/";return n&&"?"!==n&&(o+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(o+="#"===r.charAt(0)?r:"#"+r),o}function f(e,t,n,o){var a;"string"==typeof e?(a=function(e){var t=e||"/",n="",r="",o=t.indexOf("#");-1!==o&&(r=t.substr(o),t=t.substr(0,o));var a=t.indexOf("?");return-1!==a&&(n=t.substr(a),t=t.substr(0,a)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),a.state=t):(void 0===(a=(0,r.A)({},e)).pathname&&(a.pathname=""),a.search?"?"!==a.search.charAt(0)&&(a.search="?"+a.search):a.search="",a.hash?"#"!==a.hash.charAt(0)&&(a.hash="#"+a.hash):a.hash="",void 0!==t&&void 0===a.state&&(a.state=t));try{a.pathname=decodeURI(a.pathname)}catch(i){throw i instanceof URIError?new URIError('Pathname "'+a.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):i}return n&&(a.key=n),o?a.pathname?"/"!==a.pathname.charAt(0)&&(a.pathname=s(a.pathname,o.pathname)):a.pathname=o.pathname:a.pathname||(a.pathname="/"),a}function m(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,o){if(null!=e){var a="function"==typeof e?e(t,n):e;"string"==typeof a?"function"==typeof r?r(a,o):o(!0):o(!1!==a)}else o(!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,o):n.push(o),d({action:r,location:o,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",o=f(e,t,g(),w.location);u.confirmTransitionTo(o,r,n,(function(e){e&&(w.entries[w.index]=o,d({action:r,location:o}))}))},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(4363),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},a={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},s={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},i={};function l(e){return r.isMemo(e)?s:i[e.$$typeof]||o}i[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},i[r.Memo]=s;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 o=f(n);o&&o!==m&&e(t,o,r)}var s=u(n);d&&(s=s.concat(d(n)));for(var i=l(t),g=l(n),h=0;h{"use strict";e.exports=function(e,t,n,r,o,a,s,i){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,o,a,s,i],u=0;(l=new Error(t.replace(/%s/g,(function(){return c[u++]})))).name="Invariant Violation"}throw l.framesToPop=1,l}}},4634:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},5300:(e,t,n)=>{"use strict";n.r(t)},8252:(e,t,n)=>{"use strict";n.r(t)},5947:function(e,t,n){var r,o;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 o(e,t,n){return en?n:e}function a(e){return 100*(-1+e)}function s(e,t,n){var o;return(o="translate3d"===r.positionUsing?{transform:"translate3d("+a(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+a(e)+"%,0)"}:{"margin-left":a(e)+"%"}).transition="all "+t+"ms "+n,o}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=o(e,r.minimum,1),n.status=1===e?null:e;var a=n.render(!t),c=a.querySelector(r.barSelector),u=r.speed,d=r.easing;return a.offsetWidth,i((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),l(c,s(e,u,d)),1===e?(l(a,{transition:"none",opacity:1}),a.offsetWidth,setTimeout((function(){l(a,{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)*o(Math.random()*t,.1,.95)),t=o(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 o,s=t.querySelector(r.barSelector),i=e?"-100":a(n.status||0),c=document.querySelector(r.parent);return l(s,{transition:"all 0 linear",transform:"translate3d("+i+"%,0,0)"}),r.showSpinner||(o=t.querySelector(r.spinnerSelector))&&f(o),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 i=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,o=e.length,a=t.charAt(0).toUpperCase()+t.slice(1);o--;)if((r=e[o]+a)in n)return r;return t}function o(e){return e=n(e),t[e]||(t[e]=r(e))}function a(e,t,n){t=o(t),e.style[t]=n}return function(e,t){var n,r,o=arguments;if(2==o.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&a(e,n,r);else a(e,o[1],o[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===(o="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=o)},5302:(e,t,n)=>{var r=n(4634);e.exports=f,e.exports.parse=a,e.exports.compile=function(e,t){return i(a(e,t),t)},e.exports.tokensToFunction=i,e.exports.tokensToRegExp=p;var o=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function a(e,t){for(var n,r=[],a=0,s=0,i="",u=t&&t.delimiter||"/";null!=(n=o.exec(e));){var d=n[0],p=n[1],f=n.index;if(i+=e.slice(s,f),s=f+d.length,p)i+=p[1];else{var m=e[s],g=n[2],h=n[3],b=n[4],y=n[5],v=n[6],w=n[7];i&&(r.push(i),i="");var x=null!=g&&null!=m&&m!==g,k="+"===v||"*"===v,S="?"===v||"*"===v,E=n[2]||u,_=b||y;r.push({name:h||a++,prefix:g||"",delimiter:E,optional:S,repeat:k,partial:x,asterisk:!!w,pattern:_?c(_):w?".*":"[^"+l(E)+"]+?"})}}return s{Prism.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},Prism.languages.webmanifest=Prism.languages.json},9700:()=>{!function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,o,a){if(n.language===r){var s=n.tokenStack=[];n.code=n.code.replace(o,(function(e){if("function"==typeof a&&!a(e))return e;for(var o,i=s.length;-1!==n.code.indexOf(o=t(r,i));)++i;return s[i]=e,o})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var o=0,a=Object.keys(n.tokenStack);!function s(i){for(var l=0;l=a.length);l++){var c=i[l];if("string"==typeof c||c.content&&"string"==typeof c.content){var u=a[o],d=n.tokenStack[u],p="string"==typeof c?c:c.content,f=t(r,u),m=p.indexOf(f);if(m>-1){++o;var g=p.substring(0,m),h=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),b=p.substring(m+f.length),y=[];g&&y.push.apply(y,s([g])),y.push(h),b&&y.push.apply(y,s([b])),"string"==typeof c?i.splice.apply(i,[l,1].concat(y)):c.content=y}}else c.content&&s(c.content)}return i}(n.tokens)}}}})}(Prism)},6966:()=>{Prism.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/}},1255:(e,t,n)=>{var r={"./prism-json":2514,"./prism-sql":6966};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=1255},2694:(e,t,n)=>{"use strict";var r=n(6925);function o(){}function a(){}a.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,a,s){if(s!==r){var i=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 i.name="Invariant Violation",i}}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:a,resetWarningCache:o};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"},2551:(e,t,n)=>{"use strict";var r=n(6540),o=n(9982);function a(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n