From dbf50f8b8097db00a6d85af9c0865b53378efa3d Mon Sep 17 00:00:00 2001 From: Sebastien Guillemot Date: Mon, 9 Sep 2024 23:44:25 +0900 Subject: [PATCH] Deploy website - based on 7a6fc3866cc3831295bf323fad73e5787e3828ba --- 404.html | 13 + assets/css/styles.cc413682.css | 1 + ...gular-b1d694f660569a9a9ee6d1236227eaff.ttf | Bin 0 -> 96412 bytes assets/js/0109cddc.748be62a.js | 1 + assets/js/024b6465.6664d642.js | 1 + assets/js/14eb3368.6bb3db11.js | 1 + assets/js/17896441.ff509f23.js | 1 + assets/js/187dbc21.6d7a7433.js | 1 + assets/js/1a4e3797.e763b08d.js | 1 + assets/js/3c02cfd4.0b344bc8.js | 1 + assets/js/42a4384b.2d67981c.js | 1 + assets/js/443.3d74dd3a.js | 2 + assets/js/443.3d74dd3a.js.LICENSE.txt | 1 + assets/js/456dc1ab.0ca46ae8.js | 1 + assets/js/525.2fbd60c6.js | 1 + assets/js/5e95c892.7fbf04ea.js | 1 + assets/js/61955a96.49be3fcb.js | 1 + assets/js/6c2c22d1.fe3782c7.js | 1 + assets/js/772.0a40c231.js | 1 + assets/js/8019ae33.f9697cba.js | 1 + assets/js/82878dee.4db35e31.js | 1 + assets/js/8cf5c8a6.40ba156d.js | 1 + assets/js/935f2afb.a68d5b39.js | 1 + assets/js/a6c5da82.dca57a8d.js | 1 + assets/js/a7bd4aaa.5eb89804.js | 1 + assets/js/a94703ab.3baa4e38.js | 1 + assets/js/a9e02168.48f27996.js | 1 + assets/js/b5ddca27.43511ee0.js | 1 + assets/js/bbe6d832.162d02e5.js | 1 + assets/js/c377a04b.10e5b1c9.js | 1 + assets/js/c7581e31.c24443d3.js | 1 + assets/js/d16dc6d6.0e8b1a56.js | 1 + assets/js/d1737d8e.b0eec86d.js | 1 + assets/js/dd8d23a4.8124b095.js | 1 + assets/js/e7958d21.f670ea2c.js | 1 + assets/js/eb14df67.6db07931.js | 1 + assets/js/f41b0af6.a76d7160.js | 1 + assets/js/f438ab24.413653ef.js | 1 + assets/js/main.a2f566e1.js | 2 + assets/js/main.a2f566e1.js.LICENSE.txt | 126 + assets/js/runtime~main.9afd905d.js | 1 + category/builders/index.html | 13 + category/chain/index.html | 13 + category/core/index.html | 13 + category/crypto/index.html | 13 + category/modules/index.html | 13 + category/multi-era/index.html | 13 + crate_architecture/index.html | 33 + getting_started/index.html | 21 + icons/danger-icon.svg | 1 + icons/info-icon.svg | 1 + img/favicon.svg | 4973 +++++++++++++++++ img/output.png | Bin 0 -> 33118 bytes img/output2.png | Bin 0 -> 20854 bytes img/output3.png | Bin 0 -> 35004 bytes img/output4.png | Bin 0 -> 24331 bytes img/output5.png | Bin 0 -> 21059 bytes index.html | 65 + modules/CIP25/index.html | 67 + .../generating_transactions/index.html | 19 + modules/builders/index.html | 33 + modules/cbor/index.html | 36 + modules/chain/index.html | 14 + modules/cip36/index.html | 13 + modules/core/index.html | 14 + modules/crypto/generating_keys/index.html | 35 + modules/crypto/index.html | 43 + modules/json/index.html | 29 + modules/metadata/index.html | 163 + modules/multi-era/index.html | 16 + modules/wasm/index.html | 21 + search-index.json | 1 + search/index.html | 13 + sitemap.xml | 1 + 74 files changed, 5869 insertions(+) create mode 100644 404.html create mode 100644 assets/css/styles.cc413682.css create mode 100644 assets/fonts/Manrope-Regular-b1d694f660569a9a9ee6d1236227eaff.ttf create mode 100644 assets/js/0109cddc.748be62a.js create mode 100644 assets/js/024b6465.6664d642.js create mode 100644 assets/js/14eb3368.6bb3db11.js create mode 100644 assets/js/17896441.ff509f23.js create mode 100644 assets/js/187dbc21.6d7a7433.js create mode 100644 assets/js/1a4e3797.e763b08d.js create mode 100644 assets/js/3c02cfd4.0b344bc8.js create mode 100644 assets/js/42a4384b.2d67981c.js create mode 100644 assets/js/443.3d74dd3a.js create mode 100644 assets/js/443.3d74dd3a.js.LICENSE.txt create mode 100644 assets/js/456dc1ab.0ca46ae8.js create mode 100644 assets/js/525.2fbd60c6.js create mode 100644 assets/js/5e95c892.7fbf04ea.js create mode 100644 assets/js/61955a96.49be3fcb.js create mode 100644 assets/js/6c2c22d1.fe3782c7.js create mode 100644 assets/js/772.0a40c231.js create mode 100644 assets/js/8019ae33.f9697cba.js create mode 100644 assets/js/82878dee.4db35e31.js create mode 100644 assets/js/8cf5c8a6.40ba156d.js create mode 100644 assets/js/935f2afb.a68d5b39.js create mode 100644 assets/js/a6c5da82.dca57a8d.js create mode 100644 assets/js/a7bd4aaa.5eb89804.js create mode 100644 assets/js/a94703ab.3baa4e38.js create mode 100644 assets/js/a9e02168.48f27996.js create mode 100644 assets/js/b5ddca27.43511ee0.js create mode 100644 assets/js/bbe6d832.162d02e5.js create mode 100644 assets/js/c377a04b.10e5b1c9.js create mode 100644 assets/js/c7581e31.c24443d3.js create mode 100644 assets/js/d16dc6d6.0e8b1a56.js create mode 100644 assets/js/d1737d8e.b0eec86d.js create mode 100644 assets/js/dd8d23a4.8124b095.js create mode 100644 assets/js/e7958d21.f670ea2c.js create mode 100644 assets/js/eb14df67.6db07931.js create mode 100644 assets/js/f41b0af6.a76d7160.js create mode 100644 assets/js/f438ab24.413653ef.js create mode 100644 assets/js/main.a2f566e1.js create mode 100644 assets/js/main.a2f566e1.js.LICENSE.txt create mode 100644 assets/js/runtime~main.9afd905d.js create mode 100644 category/builders/index.html create mode 100644 category/chain/index.html create mode 100644 category/core/index.html create mode 100644 category/crypto/index.html create mode 100644 category/modules/index.html create mode 100644 category/multi-era/index.html create mode 100644 crate_architecture/index.html create mode 100644 getting_started/index.html create mode 100644 icons/danger-icon.svg create mode 100644 icons/info-icon.svg create mode 100644 img/favicon.svg create mode 100644 img/output.png create mode 100644 img/output2.png create mode 100644 img/output3.png create mode 100644 img/output4.png create mode 100644 img/output5.png create mode 100644 index.html create mode 100644 modules/CIP25/index.html create mode 100644 modules/builders/generating_transactions/index.html create mode 100644 modules/builders/index.html create mode 100644 modules/cbor/index.html create mode 100644 modules/chain/index.html create mode 100644 modules/cip36/index.html create mode 100644 modules/core/index.html create mode 100644 modules/crypto/generating_keys/index.html create mode 100644 modules/crypto/index.html create mode 100644 modules/json/index.html create mode 100644 modules/metadata/index.html create mode 100644 modules/multi-era/index.html create mode 100644 modules/wasm/index.html create mode 100644 search-index.json create mode 100644 search/index.html create mode 100644 sitemap.xml diff --git a/404.html b/404.html new file mode 100644 index 00000000..0164ee0d --- /dev/null +++ b/404.html @@ -0,0 +1,13 @@ + + + + + +CML + + + + +
Skip to main content

Page Not Found

We could not find what you were looking for.

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

+ + \ No newline at end of file diff --git a/assets/css/styles.cc413682.css b/assets/css/styles.cc413682.css new file mode 100644 index 00000000..317dc694 --- /dev/null +++ b/assets/css/styles.cc413682.css @@ -0,0 +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)}.toggleButton_gllP,html{-webkit-tap-highlight-color:transparent}*,.loadingRing_RJI3 div{box-sizing:border-box}.clean-list,.containsTaskList_mC6p,.details_lb9f>summary,.dropdown__menu,.menu__list{list-style:none}:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:#0000;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:0.4rem;--ifm-hover-overlay:#0000000d;--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:200ms;--ifm-transition-slow:400ms;--ifm-transition-timing-default:cubic-bezier(0.08,0.52,0.52,1);--ifm-global-shadow-lw:0 1px 2px 0 #0000001a;--ifm-global-shadow-md:0 5px 40px #0003;--ifm-global-shadow-tl:0 12px 28px 0 #0003,0 2px 4px 0 #0000001a;--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:0.1rem;--ifm-code-padding-vertical:0.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:0.875rem;--ifm-h6-font-size:0.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:0.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:0.75rem;--ifm-table-background:#0000;--ifm-table-stripe-background:#00000008;--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*0.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:0.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:0.8rem;--ifm-breadcrumb-padding-vertical:0.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url('data:image/svg+xml;utf8,');--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:0.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:0.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:0.5rem;--ifm-toc-padding-horizontal:0.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:0.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:0.75rem;--ifm-menu-link-padding-vertical:0.375rem;--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,');--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:0.75rem;--ifm-navbar-item-padding-vertical:0.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*0.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url('data:image/svg+xml;utf8,');--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:0.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:0.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem;--docusaurus-progress-bar-color:var(--ifm-color-primary);--ifm-color-primary:#356ddb;--ifm-color-primary-dark:#356ddb;--ifm-color-primary-darker:#356ddb;--ifm-color-primary-darkest:#356ddb;--ifm-color-primary-light:#356ddb;--ifm-color-primary-lighter:#356ddb;--ifm-color-primary-lightest:#356ddb;--ifm-code-font-size:95%;--docusaurus-highlighted-code-line-bg:#0000001a;--ifm-spacing-horizontal:40px;--ifm-font-color-base:#3b454e;--ifm-blockquote-border-left-width:4px;--ifm-blockquote-color:#5c6975;--ifm-blockquote-padding-horizontal:20px;--ifm-alert-padding-horizontal:20px;--ifm-navbar-padding-horizontal:16px;--tabs-bg-active:#fff;--tabs-text-inactive:#9ca3af;--ifm-font-family-base:"Manrope";--docusaurus-announcement-bar-height:auto;--docusaurus-tag-list-border:var(--ifm-color-emphasis-300);--docusaurus-collapse-button-bg:#0000;--docusaurus-collapse-button-bg-hover:#0000001a;--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px}.badge--danger,.badge--info,.badge--primary,.badge--secondary,.badge--success,.badge--warning{--ifm-badge-border-color:var(--ifm-badge-background-color)}.button--link,.button--outline{--ifm-button-background-color:#0000}html{-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;text-size-adjust:100%;background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base) var(--ifm-font-family-base);text-rendering:optimizelegibility}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{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)}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{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,.wordWrapButtonEnabled_EoeP .wordWrapButtonIcon_Bwma{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.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{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,.searchBarContainer_NW3z.searchIndexLoading_EJ1f .searchBarLoadingRing_YnHq{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}.content_knG7 a,.hitFooter_E9YW a,.suggestion_fB_2.cursor_eG29 mark{text-decoration:underline}.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}.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;max-height:80vh;min-width:10rem;opacity:0;overflow-y:auto;padding:.5rem;pointer-events:none;position:absolute;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);transform:translateY(-.625rem);transition-duration:var(--ifm-transition-fast);transition-property:opacity,transform,visibility;transition-timing-function:var(--ifm-transition-timing-default);visibility:hidden;z-index:var(--ifm-z-index-dropdown)}.menu__caret,.menu__link,.menu__list-item-collapsible{border-radius:.25rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.dropdown__link{border-radius:.25rem;color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem;margin-top:.2rem;padding:.25rem .5rem;white-space:nowrap}.dropdown__link--active,.dropdown__link:hover{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentcolor #0000;border-style:solid;border-width:.4em .4em 0;content:"";margin-left:.3em;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{margin-top:1rem;max-width:var(--ifm-footer-logo-max-width)}.footer__title{color:var(--ifm-footer-title-color);font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.menu,.navbar__link{font-weight:var(--ifm-font-weight-semibold)}.docItemContainer_Djhp article>:first-child,.docItemContainer_Djhp header+*,.footer__item{margin-top:0}.admonitionContent_BuS1>:last-child,.cardContainer_fWXF :last-child,.collapsibleContent_i85q p:last-child,.details_lb9f>summary>p:last-child,.footer__items,.searchResultItem_U687>h2{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{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;left:0;top:0;visibility:hidden}.menu__link{color:var(--ifm-menu-color);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color);text-decoration:none}.menu__caret:before,.menu__link--sublist-caret:after{content:"";height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem;filter:var(--ifm-menu-link-sublist-icon-filter)}.menu__link--sublist-caret:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;margin-left:auto;min-width:1.25rem}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.navbar__brand,.navbar__link{color:var(--ifm-navbar-link-color)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret:before{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem}.navbar--dark,html[data-theme=dark]{--ifm-menu-link-sublist-icon-filter:invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.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)}#nprogress,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.navbar__link--active,.navbar__link:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:#ffffff1a;--ifm-navbar-search-input-placeholder-color:#ffffff80;color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-menu-color-background-active:#ffffff0d;--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{-webkit-appearance:none;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{grid-gap:var(--ifm-spacing-horizontal);display:grid;gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr)}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);display:block;height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);text-decoration:none}.pagination-nav__link--next{grid-column:2/3;text-align:right}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills__item,.tabs{font-weight:var(--ifm-font-weight-bold)}.pills{display:flex;gap:var(--ifm-pills-spacing);padding-left:0}.pills__item{border-radius:.5rem;cursor:pointer;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.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-container [role=tab],.tabs-container [role=tabpanel]{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity));border-style:solid}.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}#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}*,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.static{position:static}.fixed{position:fixed}.block,.cursor_eG29 .hideAction_vcyE>svg,.tocCollapsibleContent_vkbj a{display:block}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}@font-face{font-family:Manrope;src:url(/cardano-multiplatform-lib/assets/fonts/Manrope-Regular-b1d694f660569a9a9ee6d1236227eaff.ttf)}[data-theme=dark]{--ifm-color-primary:#ff9828;--ifm-color-primary-dark:#ff9828;--ifm-color-primary-darker:#ff9828;--ifm-color-primary-darkest:#ff9828;--ifm-color-primary-light:#ff9828;--ifm-color-primary-lighter:#ff9828;--ifm-color-primary-lightest:#ff9828;--ifm-font-color-base:#fff;--ifm-blockquote-color:#c8c8c8;--docusaurus-highlighted-code-line-bg:#0000004d;--tabs-bg-active:#1c1c1d;--tabs-text-inactive:#bab0b0}img{margin-bottom:.75rem;max-width:300px}.img-full{max-width:100%;width:100%}.img-card{margin-bottom:1rem;max-width:300px}.img-icon{margin-bottom:0;width:1.25rem}.tabs-container [role=tab]{background-color:var(--tabs-bg-active);border-radius:.375rem .375rem 0 0;border-width:1px 1px 0;padding-bottom:.5rem;padding-top:.5rem}.tabs-container [role=tab][aria-selected=false]{--tw-text-opacity:1;background-color:var(--tabs-bg);color:rgb(156 163 175/var(--tw-text-opacity))}.tabs-container [role=tabpanel]{border-width:1px;margin-top:-17px;padding:1.25rem}body:not(.navigation-with-keyboard) :not(input):focus{outline:0}#__docusaurus-base-url-issue-banner-container,.hideAction_vcyE>svg,.themedComponent_mlkZ,[data-theme=dark] .lightToggleIcon_pyhR,[data-theme=light] .darkToggleIcon_wfgR,html[data-announcement-bar-initially-dismissed=true] .announcementBar_mb4j{display:none}.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;z-index:calc(var(--ifm-z-index-fixed) + 1)}.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)}.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}.iconExternalLink_nPIU{margin-left:.3rem}.dropdownNavbarItemMobile_S0Fm{cursor:pointer}.iconLanguage_nlXk{margin-right:5px;vertical-align:text-bottom}.searchBar_RVTs .dropdownMenu_qbY6{background:var(--search-local-modal-background,#f5f6f7);border-radius:6px;box-shadow:var(--search-local-modal-shadow,inset 1px 1px 0 0 #ffffff80,0 3px 8px 0 #555a64);left:auto!important;margin-top:8px;padding:var(--search-local-spacing,12px);position:relative;right:0!important;width:var(--search-local-modal-width,560px)}html[data-theme=dark] .searchBar_RVTs .dropdownMenu_qbY6{background:var(--search-local-modal-background,var(--ifm-background-color));box-shadow:var(--search-local-modal-shadow,inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309)}.searchBar_RVTs .dropdownMenu_qbY6 .suggestion_fB_2{align-items:center;background:var(--search-local-hit-background,#fff);border-radius:4px;box-shadow:var(--search-local-hit-shadow,0 1px 3px 0 #d4d9e1);color:var(--search-local-hit-color,#444950);cursor:pointer;display:flex;flex-direction:row;height:var(--search-local-hit-height,56px);padding:0 var(--search-local-spacing,12px);width:100%}.hitTree_kk6K,.noResults_l6Q3{align-items:center;display:flex}html[data-theme=dark] .dropdownMenu_qbY6 .suggestion_fB_2{background:var(--search-local-hit-background,var(--ifm-color-emphasis-100));box-shadow:var(--search-local-hit-shadow,none);color:var(--search-local-hit-color,var(--ifm-font-color-base))}.searchBar_RVTs .dropdownMenu_qbY6 .suggestion_fB_2:not(:last-child){margin-bottom:4px}.searchBar_RVTs .dropdownMenu_qbY6 .suggestion_fB_2.cursor_eG29{background-color:var(--search-local-highlight-color,var(--ifm-color-primary))}.hitFooter_E9YW a,.hitIcon_a7Zy,.hitPath_ieM4,.hitTree_kk6K,.noResultsIcon_EBY5{color:var(--search-local-muted-color,#969faf)}html[data-theme=dark] .hitIcon_a7Zy,html[data-theme=dark] .hitPath_ieM4,html[data-theme=dark] .hitTree_kk6K,html[data-theme=dark] .noResultsIcon_EBY5{color:var(--search-local-muted-color,var(--ifm-color-secondary-darkest))}.hitTree_kk6K>svg{height:var(--search-local-hit-height,56px);opacity:.5;width:24px}.hitIcon_a7Zy,.hitTree_kk6K>svg{stroke-width:var(--search-local-icon-stroke-width,1.4)}.hitAction_NqkB,.hitIcon_a7Zy{height:20px;width:20px}.hitWrapper_sAK8{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;margin:0 8px;overflow-x:hidden;width:80%}.hitWrapper_sAK8 mark{background:none;color:var(--search-local-highlight-color,var(--ifm-color-primary))}.hitTitle_vyVt{font-size:.9em}.hitPath_ieM4{font-size:.75em}.hitPath_ieM4,.hitTitle_vyVt{overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}.noResults_l6Q3{flex-direction:column;justify-content:center;padding:var(--search-local-spacing,12px) 0}.noResultsIcon_EBY5{margin-bottom:var(--search-local-spacing,12px)}.hitFooter_E9YW{font-size:.85em;margin-top:var(--search-local-spacing,12px);text-align:center}.suggestion_fB_2.cursor_eG29,.suggestion_fB_2.cursor_eG29 .hitIcon_a7Zy,.suggestion_fB_2.cursor_eG29 .hitPath_ieM4,.suggestion_fB_2.cursor_eG29 .hitTree_kk6K,.suggestion_fB_2.cursor_eG29 mark{color:var(--search-local-hit-active-color,var(--ifm-color-white))!important}.searchBarContainer_NW3z{margin-left:16px}.searchBarContainer_NW3z .searchBarLoadingRing_YnHq{display:none;left:10px;position:absolute;top:6px}.searchBarContainer_NW3z .searchClearButton_qk4g{background:none;border:none;line-height:1rem;padding:0;position:absolute;right:.8rem;top:50%;transform:translateY(-50%)}.navbar__search{position:relative}.searchIndexLoading_EJ1f .navbar__search-input{background-image:none}.searchHintContainer_Pkmr{align-items:center;display:flex;gap:4px;height:100%;justify-content:center;pointer-events:none;position:absolute;right:10px;top:0}.searchHint_iIMx{background-color:var(--ifm-navbar-search-input-background-color);border:1px solid var(--ifm-color-emphasis-500);box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-500);color:var(--ifm-navbar-search-input-placeholder-color)}.loadingRing_RJI3{display:inline-block;height:20px;opacity:var(--search-local-loading-icon-opacity,.5);position:relative;width:20px}.loadingRing_RJI3 div{animation:1.2s cubic-bezier(.5,0,.5,1) infinite a;border:2px solid var(--search-load-loading-icon-color,var(--ifm-navbar-search-input-color));border-color:var(--search-load-loading-icon-color,var(--ifm-navbar-search-input-color)) #0000 #0000 #0000;border-radius:50%;display:block;height:16px;margin:2px;position:absolute;width:16px}.loadingRing_RJI3 div:first-child{animation-delay:-.45s}.loadingRing_RJI3 div:nth-child(2){animation-delay:-.3s}.loadingRing_RJI3 div:nth-child(3){animation-delay:-.15s}@keyframes a{0%{transform:rotate(0)}to{transform:rotate(1turn)}}@supports selector(:has(*)){.navbarSearchContainer_Bca1:not(:has(>*)){display:none}}.navbarHideable_m1mJ{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_jGov{transform:translate3d(0,calc(-100% - 2px),0)}.errorBoundaryError_a6uf{color:red;white-space:pre-wrap}.errorBoundaryFallback_VBag{color:red;padding:.55rem}.footerLogoLink_BH7S{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.footerLogoLink_BH7S:hover,.hash-link:focus,:hover>.hash-link{opacity:1}.anchorWithStickyNavbar_LWe7{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorWithHideOnScrollNavbar_WYt5{scroll-margin-top:.5rem}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;user-select:none}.hash-link:before{content:"#"}.mainWrapper_z2l0{display:flex;flex:1 0 auto;flex-direction:column}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{display:flex;flex-direction:column;min-height:100%}.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}.iconEdit_Z9Sw{margin-right:.3em;vertical-align:sub}.tag_zVej{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_zVej:hover{--docusaurus-tag-list-border:var(--ifm-link-color);text-decoration:none}.tagRegular_sFm0{border-radius:var(--ifm-global-radius);font-size:90%;padding:.2rem .5rem .3rem}.tagWithCount_h2kH{align-items:center;border-left:0;display:flex;padding:0 .5rem 0 1rem;position:relative}.tagWithCount_h2kH:after,.tagWithCount_h2kH:before{border:1px solid var(--docusaurus-tag-list-border);content:"";position:absolute;top:50%;transition:inherit}.tagWithCount_h2kH:before{border-bottom:0;border-right:0;height:1.18rem;right:100%;transform:translate(50%,-50%) rotate(-45deg);width:1.18rem}.tagWithCount_h2kH:after{border-radius:50%;height:.5rem;left:0;transform:translateY(-50%);width:.5rem}.tagWithCount_h2kH span{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.7rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.tags_jXut{display:inline}.tag_QGVx{display:inline-block;margin:0 .4rem .5rem 0}.lastUpdated_vwxv{font-size:smaller;font-style:italic;margin-top:.2rem}.tocCollapsibleButton_TO0P{align-items:center;display:flex;font-size:inherit;justify-content:space-between;padding:.4rem .8rem;width:100%}.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}.buttonGroup__atx button,.codeBlockContainer_Ckt0{background:var(--prism-background-color);color:var(--prism-color)}.tocCollapsibleContent_vkbj>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);font-size:15px;padding:.2rem 0}.tocCollapsibleContent_vkbj ul li{margin:.4rem .8rem}.tableOfContents_bqdL{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.codeBlockContainer_Ckt0{border-radius:var(--ifm-code-border-radius);box-shadow:var(--ifm-global-shadow-lw);margin-bottom:var(--ifm-leading)}.codeBlockContent_biex{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_Ktv7{border-bottom:1px solid var(--ifm-color-emphasis-300);border-top-left-radius:inherit;border-top-right-radius:inherit;font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlock_bY9V{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockTitle_Ktv7+.codeBlockContent_biex .codeBlock_bY9V{border-top-left-radius:0;border-top-right-radius:0}.codeBlockLines_e6Vv{float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_o6Pm{display:table;padding:var(--ifm-pre-padding) 0}.buttonGroup__atx{column-gap:.2rem;display:flex;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2)}.buttonGroup__atx button{align-items:center;border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);display:flex;line-height:0;opacity:0;padding:.4rem;transition:opacity var(--ifm-transition-fast) ease-in-out}.buttonGroup__atx button:focus-visible,.buttonGroup__atx button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup__atx button{opacity:.4}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.codeLine_lJS_{counter-increment:a;display:table-row}.codeLineNumber_Tfdd{background:var(--ifm-pre-background);display:table-cell;left:0;overflow-wrap:normal;padding:0 var(--ifm-pre-padding);position:sticky;text-align:right;width:1%}.codeLineNumber_Tfdd:before{content:counter(a);opacity:.4}.codeLineContent_feaV{padding-right:var(--ifm-pre-padding)}.theme-code-block:hover .copyButtonCopied_obH4{opacity:1!important}.copyButtonIcons_eSgA{height:1.125rem;position:relative;width:1.125rem}.copyButtonIcon_y97N,.copyButtonSuccessIcon_LjdS{fill:currentColor;height:inherit;left:0;opacity:inherit;position:absolute;top:0;transition:all var(--ifm-transition-fast) ease;width:inherit}.copyButtonSuccessIcon_LjdS{color:#00d600;left:50%;opacity:0;top:50%;transform:translate(-50%,-50%) scale(.33)}.copyButtonCopied_obH4 .copyButtonIcon_y97N{opacity:0;transform:scale(.33)}.copyButtonCopied_obH4 .copyButtonSuccessIcon_LjdS{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:75ms}.wordWrapButtonIcon_Bwma{height:1.2rem;width:1.2rem}.details_lb9f{--docusaurus-details-summary-arrow-size:0.38rem;--docusaurus-details-transition:transform 200ms ease;--docusaurus-details-decoration-color:grey}.details_lb9f>summary{cursor:pointer;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)}.img_ev3q{height:auto}.admonition_xJq3{margin-bottom:1em}.admonitionHeading_Gvgb{font:var(--ifm-heading-font-weight) var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family)}.admonitionHeading_Gvgb:not(:last-child){margin-bottom:.3rem}.admonitionHeading_Gvgb code{text-transform:none}.admonitionIcon_Rf37{display:inline-block;margin-right:.4em;vertical-align:middle}.admonitionIcon_Rf37 svg{fill:var(--ifm-alert-foreground-color);display:inline-block;height:1.6em;width:1.6em}.breadcrumbHomeIcon_YNFT{height:1.1rem;position:relative;top:1px;vertical-align:top;width:1.1rem}.breadcrumbsContainer_Z_bl{--ifm-breadcrumb-size-multiplier:0.8;margin-bottom:.8rem}.title_kItE{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-leading)*1.25)}.searchContextInput_mXoe,.searchQueryInput_CFBF{background:var(--ifm-background-color);border:var(--ifm-global-border-width) solid var(--ifm-color-content-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-font-color-base);font-size:var(--ifm-font-size-base);margin-bottom:1rem;padding:.5rem;width:100%}.searchResultItem_U687{border-bottom:1px solid #dfe3e8;padding:1rem 0}.searchResultItemPath_uIbk{color:var(--ifm-color-content-secondary);font-size:.8rem;margin:.5rem 0 0}.searchResultItemSummary_oZHr{font-style:italic;margin:.5rem 0 0}.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}[data-theme=dark]:root{--docusaurus-collapse-button-bg:#ffffff0d;--docusaurus-collapse-button-bg-hover:#ffffff1a}.collapseSidebarButton_PEFL{display:none;margin:0}.docSidebarContainer_YfHR,.sidebarLogo_isFc{display:none}.docMainContainer_TBSr,.docRoot_UBD9{display:flex;width:100%}.docsWrapper_hBAB{display:flex;flex:1 0 auto}@media (min-width:997px){.collapseSidebarButton_PEFL,.expandButton_TmdG{background-color:var(--docusaurus-collapse-button-bg)}:root{--docusaurus-announcement-bar-height:30px}.announcementBarClose_gvF7,.announcementBarPlaceholder_vyr4{flex-basis:50px}.navbarSearchContainer_Bca1{padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.lastUpdated_vwxv{text-align:right}.tocMobile_ITEo{display:none}.docItemCol_VOVn,.generatedIndexPage_vN6x{max-width:75%!important}.list_eTzJ article:nth-last-child(-n+2){margin-bottom:0!important}.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);-webkit-clip-path:inset(0);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}}@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}.navbarSearchContainer_Bca1{position:absolute;right:var(--ifm-navbar-padding-horizontal)}.docItemContainer_F8PC{padding:0 .3rem}}@media not (max-width:996px){.searchBar_RVTs.searchBarLeft_MXDe .dropdownMenu_qbY6{left:0!important;right:auto!important}}@media only screen and (max-width:996px){.searchQueryColumn_q7nx{max-width:60%!important}.searchContextColumn_oWAF{max-width:40%!important}}@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}.navbar__search-input:not(:focus){width:2rem}.searchBar_RVTs .dropdownMenu_qbY6{max-width:calc(100vw - var(--ifm-navbar-padding-horizontal)*2);width:var(--search-local-modal-width-sm,340px)}.searchBarContainer_NW3z:not(.focused_OWtg) .searchClearButton_qk4g,.searchHintContainer_Pkmr{display:none}}@media screen and (max-width:576px){.searchQueryColumn_q7nx{max-width:100%!important}.searchContextColumn_oWAF{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 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/fonts/Manrope-Regular-b1d694f660569a9a9ee6d1236227eaff.ttf b/assets/fonts/Manrope-Regular-b1d694f660569a9a9ee6d1236227eaff.ttf new file mode 100644 index 0000000000000000000000000000000000000000..7cf09bf80c7df7cc86125b34003a511c3bbd19b1 GIT binary patch literal 96412 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⪌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 `8>5U7BY-1# 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.exports=JSON.parse('{"name":"@easyops-cn/docusaurus-search-local","id":"default"}')}}]); \ No newline at end of file diff --git a/assets/js/024b6465.6664d642.js b/assets/js/024b6465.6664d642.js new file mode 100644 index 00000000..017800a8 --- /dev/null +++ b/assets/js/024b6465.6664d642.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[675],{2467:(e,r,t)=>{t.r(r),t.d(r,{assets:()=>l,contentTitle:()=>s,default:()=>d,frontMatter:()=>n,metadata:()=>i,toc:()=>c});var o=t(5893),a=t(1151);const n={},s="Multi-Era",i={id:"modules/multi-era/index",title:"Multi-Era",description:"This crate contains all the on-chain types for previous eras (Byron, Shelley, Alonzo, Babbage, etc). There are also wrappers around this era if you need era-agnostic types e.g. parsing all blocks from genesis. The wrappers support the current era as well.",source:"@site/docs/modules/multi-era/index.md",sourceDirName:"modules/multi-era",slug:"/modules/multi-era/",permalink:"/cardano-multiplatform-lib/modules/multi-era/",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Multi-Era",permalink:"/cardano-multiplatform-lib/category/multi-era"},next:{title:"CIP25",permalink:"/cardano-multiplatform-lib/modules/CIP25"}},l={},c=[{value:"Parsing blocks across eras",id:"parsing-blocks-across-eras",level:2}];function u(e){const r={code:"code",h1:"h1",h2:"h2",p:"p",...(0,a.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(r.h1,{id:"multi-era",children:"Multi-Era"}),"\n",(0,o.jsx)(r.p,{children:"This crate contains all the on-chain types for previous eras (Byron, Shelley, Alonzo, Babbage, etc). There are also wrappers around this era if you need era-agnostic types e.g. parsing all blocks from genesis. The wrappers support the current era as well."}),"\n",(0,o.jsx)(r.h2,{id:"parsing-blocks-across-eras",children:"Parsing blocks across eras"}),"\n",(0,o.jsxs)(r.p,{children:[(0,o.jsx)(r.code,{children:"MultiEraBlock"})," can be used for this. Take care about the format you are giving it. Some tools (e.g. Pallas/Oura) won't give you the block format from the binary spec directly, but will instead have it wrapped in some network wrapper array containing the explicit era tag. If your CBOR looks like ",(0,o.jsx)(r.code,{children:"[uint, ]"})," (likely starting with ",(0,o.jsx)(r.code,{children:"82"})," in hex e.g. ",(0,o.jsx)(r.code,{children:"8201"}),", ",(0,o.jsx)(r.code,{children:"8204"}),", ",(0,o.jsx)(r.code,{children:"8207"}),", etc) then you should use ",(0,o.jsx)(r.code,{children:"MultiEraBlock.from_explicit_network_cbor_bytes()"})," instead of ",(0,o.jsx)(r.code,{children:"MultiEraBlock.from_cbor_bytes()"}),"."]})]})}function d(e={}){const{wrapper:r}={...(0,a.a)(),...e.components};return r?(0,o.jsx)(r,{...e,children:(0,o.jsx)(u,{...e})}):u(e)}},1151:(e,r,t)=>{t.d(r,{Z:()=>i,a:()=>s});var o=t(7294);const a={},n=o.createContext(a);function s(e){const r=o.useContext(n);return o.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:s(e.components),o.createElement(n.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/14eb3368.6bb3db11.js b/assets/js/14eb3368.6bb3db11.js new file mode 100644 index 00000000..7cd29c51 --- /dev/null +++ b/assets/js/14eb3368.6bb3db11.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[817],{1310:(e,t,s)=>{s.d(t,{Z:()=>p});s(7294);var n=s(512),i=s(5281),a=s(2802),r=s(8596),c=s(9960),o=s(5999),l=s(4996),d=s(5893);function m(e){return(0,d.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,d.jsx)("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"})})}const u={breadcrumbHomeIcon:"breadcrumbHomeIcon_YNFT"};function h(){const e=(0,l.Z)("/");return(0,d.jsx)("li",{className:"breadcrumbs__item",children:(0,d.jsx)(c.Z,{"aria-label":(0,o.I)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e,children:(0,d.jsx)(m,{className:u.breadcrumbHomeIcon})})})}const b={breadcrumbsContainer:"breadcrumbsContainer_Z_bl"};function x(e){let{children:t,href:s,isLast:n}=e;const i="breadcrumbs__link";return n?(0,d.jsx)("span",{className:i,itemProp:"name",children:t}):s?(0,d.jsx)(c.Z,{className:i,href:s,itemProp:"item",children:(0,d.jsx)("span",{itemProp:"name",children:t})}):(0,d.jsx)("span",{className:i,children:t})}function v(e){let{children:t,active:s,index:i,addMicrodata:a}=e;return(0,d.jsxs)("li",{...a&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},className:(0,n.Z)("breadcrumbs__item",{"breadcrumbs__item--active":s}),children:[t,(0,d.jsx)("meta",{itemProp:"position",content:String(i+1)})]})}function p(){const e=(0,a.s1)(),t=(0,r.Ns)();return e?(0,d.jsx)("nav",{className:(0,n.Z)(i.k.docs.docBreadcrumbs,b.breadcrumbsContainer),"aria-label":(0,o.I)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"}),children:(0,d.jsxs)("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList",children:[t&&(0,d.jsx)(h,{}),e.map(((t,s)=>{const n=s===e.length-1,i="category"===t.type&&t.linkUnlisted?void 0:t.href;return(0,d.jsx)(v,{active:n,index:s,addMicrodata:!!i,children:(0,d.jsx)(x,{href:i,isLast:n,children:t.label})},s)}))]})}):null}},4228:(e,t,s)=>{s.r(t),s.d(t,{default:()=>I});s(7294);var n=s(1944),i=s(2802),a=s(4996),r=s(512),c=s(9960),o=s(3919),l=s(5999),d=s(2503);const m={cardContainer:"cardContainer_fWXF",cardTitle:"cardTitle_rnsV",cardDescription:"cardDescription_PWke"};var u=s(5893);function h(e){let{href:t,children:s}=e;return(0,u.jsx)(c.Z,{href:t,className:(0,r.Z)("card padding--lg",m.cardContainer),children:s})}function b(e){let{href:t,icon:s,title:n,description:i}=e;return(0,u.jsxs)(h,{href:t,children:[(0,u.jsxs)(d.Z,{as:"h2",className:(0,r.Z)("text--truncate",m.cardTitle),title:n,children:[s," ",n]}),i&&(0,u.jsx)("p",{className:(0,r.Z)("text--truncate",m.cardDescription),title:i,children:i})]})}function x(e){let{item:t}=e;const s=(0,i.LM)(t);return s?(0,u.jsx)(b,{href:s,icon:"\ud83d\uddc3\ufe0f",title:t.label,description:t.description??(0,l.I)({message:"{count} items",id:"theme.docs.DocCard.categoryDescription",description:"The default description for a category card in the generated index about how many items this category includes"},{count:t.items.length})}):null}function v(e){let{item:t}=e;const s=(0,o.Z)(t.href)?"\ud83d\udcc4\ufe0f":"\ud83d\udd17",n=(0,i.xz)(t.docId??void 0);return(0,u.jsx)(b,{href:t.href,icon:s,title:t.label,description:t.description??n?.description})}function p(e){let{item:t}=e;switch(t.type){case"link":return(0,u.jsx)(v,{item:t});case"category":return(0,u.jsx)(x,{item:t});default:throw new Error(`unknown item type ${JSON.stringify(t)}`)}}function g(e){let{className:t}=e;const s=(0,i.jA)();return(0,u.jsx)(j,{items:s.items,className:t})}function j(e){const{items:t,className:s}=e;if(!t)return(0,u.jsx)(g,{...e});const n=(0,i.MN)(t);return(0,u.jsx)("section",{className:(0,r.Z)("row",s),children:n.map(((e,t)=>(0,u.jsx)("article",{className:"col col--6 margin-bottom--lg",children:(0,u.jsx)(p,{item:e})},t)))})}var f=s(4966),N=s(3120),Z=s(4364),_=s(1310);const L={generatedIndexPage:"generatedIndexPage_vN6x",list:"list_eTzJ",title:"title_kItE"};function k(e){let{categoryGeneratedIndex:t}=e;return(0,u.jsx)(n.d,{title:t.title,description:t.description,keywords:t.keywords,image:(0,a.Z)(t.image)})}function T(e){let{categoryGeneratedIndex:t}=e;const s=(0,i.jA)();return(0,u.jsxs)("div",{className:L.generatedIndexPage,children:[(0,u.jsx)(N.Z,{}),(0,u.jsx)(_.Z,{}),(0,u.jsx)(Z.Z,{}),(0,u.jsxs)("header",{children:[(0,u.jsx)(d.Z,{as:"h1",className:L.title,children:t.title}),t.description&&(0,u.jsx)("p",{children:t.description})]}),(0,u.jsx)("article",{className:"margin-top--lg",children:(0,u.jsx)(j,{items:s.items,className:L.list})}),(0,u.jsx)("footer",{className:"margin-top--lg",children:(0,u.jsx)(f.Z,{previous:t.navigation.previous,next:t.navigation.next})})]})}function I(e){return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(k,{...e}),(0,u.jsx)(T,{...e})]})}},4966:(e,t,s)=>{s.d(t,{Z:()=>o});s(7294);var n=s(5999),i=s(512),a=s(9960),r=s(5893);function c(e){const{permalink:t,title:s,subLabel:n,isNext:c}=e;return(0,r.jsxs)(a.Z,{className:(0,i.Z)("pagination-nav__link",c?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t,children:[n&&(0,r.jsx)("div",{className:"pagination-nav__sublabel",children:n}),(0,r.jsx)("div",{className:"pagination-nav__label",children:s})]})}function o(e){const{previous:t,next:s}=e;return(0,r.jsxs)("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,n.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"}),children:[t&&(0,r.jsx)(c,{...t,subLabel:(0,r.jsx)(n.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc",children:"Previous"})}),s&&(0,r.jsx)(c,{...s,subLabel:(0,r.jsx)(n.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc",children:"Next"}),isNext:!0})]})}},4364:(e,t,s)=>{s.d(t,{Z:()=>o});s(7294);var n=s(512),i=s(5999),a=s(5281),r=s(4477),c=s(5893);function o(e){let{className:t}=e;const s=(0,r.E)();return s.badge?(0,c.jsx)("span",{className:(0,n.Z)(t,a.k.docs.docVersionBadge,"badge badge--secondary"),children:(0,c.jsx)(i.Z,{id:"theme.docs.versionBadge.label",values:{versionLabel:s.label},children:"Version: {versionLabel}"})}):null}},3120:(e,t,s)=>{s.d(t,{Z:()=>v});s(7294);var n=s(512),i=s(2263),a=s(9960),r=s(5999),c=s(143),o=s(5281),l=s(373),d=s(4477),m=s(5893);const u={unreleased:function(e){let{siteTitle:t,versionMetadata:s}=e;return(0,m.jsx)(r.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:(0,m.jsx)("b",{children:s.label})},children:"This is unreleased documentation for {siteTitle} {versionLabel} version."})},unmaintained:function(e){let{siteTitle:t,versionMetadata:s}=e;return(0,m.jsx)(r.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:(0,m.jsx)("b",{children:s.label})},children:"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained."})}};function h(e){const t=u[e.versionMetadata.banner];return(0,m.jsx)(t,{...e})}function b(e){let{versionLabel:t,to:s,onClick:n}=e;return(0,m.jsx)(r.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:(0,m.jsx)("b",{children:(0,m.jsx)(a.Z,{to:s,onClick:n,children:(0,m.jsx)(r.Z,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label",children:"latest version"})})})},children:"For up-to-date documentation, see the {latestVersionLink} ({versionLabel})."})}function x(e){let{className:t,versionMetadata:s}=e;const{siteConfig:{title:a}}=(0,i.Z)(),{pluginId:r}=(0,c.gA)({failfast:!0}),{savePreferredVersionName:d}=(0,l.J)(r),{latestDocSuggestion:u,latestVersionSuggestion:x}=(0,c.Jo)(r),v=u??(p=x).docs.find((e=>e.id===p.mainDocId));var p;return(0,m.jsxs)("div",{className:(0,n.Z)(t,o.k.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert",children:[(0,m.jsx)("div",{children:(0,m.jsx)(h,{siteTitle:a,versionMetadata:s})}),(0,m.jsx)("div",{className:"margin-top--md",children:(0,m.jsx)(b,{versionLabel:x.label,to:v.path,onClick:()=>d(x.name)})})]})}function v(e){let{className:t}=e;const s=(0,d.E)();return s.banner?(0,m.jsx)(x,{className:t,versionMetadata:s}):null}}}]); \ No newline at end of file diff --git a/assets/js/17896441.ff509f23.js b/assets/js/17896441.ff509f23.js new file mode 100644 index 00000000..df2a39ca --- /dev/null +++ b/assets/js/17896441.ff509f23.js @@ -0,0 +1 @@ +(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[918],{1310:(e,t,n)=>{"use strict";n.d(t,{Z:()=>g});n(7294);var s=n(512),a=n(5281),o=n(2802),i=n(8596),l=n(9960),c=n(5999),r=n(4996),d=n(5893);function u(e){return(0,d.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,d.jsx)("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"})})}const m={breadcrumbHomeIcon:"breadcrumbHomeIcon_YNFT"};function h(){const e=(0,r.Z)("/");return(0,d.jsx)("li",{className:"breadcrumbs__item",children:(0,d.jsx)(l.Z,{"aria-label":(0,c.I)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e,children:(0,d.jsx)(u,{className:m.breadcrumbHomeIcon})})})}const p={breadcrumbsContainer:"breadcrumbsContainer_Z_bl"};function f(e){let{children:t,href:n,isLast:s}=e;const a="breadcrumbs__link";return s?(0,d.jsx)("span",{className:a,itemProp:"name",children:t}):n?(0,d.jsx)(l.Z,{className:a,href:n,itemProp:"item",children:(0,d.jsx)("span",{itemProp:"name",children:t})}):(0,d.jsx)("span",{className:a,children:t})}function x(e){let{children:t,active:n,index:a,addMicrodata:o}=e;return(0,d.jsxs)("li",{...o&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},className:(0,s.Z)("breadcrumbs__item",{"breadcrumbs__item--active":n}),children:[t,(0,d.jsx)("meta",{itemProp:"position",content:String(a+1)})]})}function g(){const e=(0,o.s1)(),t=(0,i.Ns)();return e?(0,d.jsx)("nav",{className:(0,s.Z)(a.k.docs.docBreadcrumbs,p.breadcrumbsContainer),"aria-label":(0,c.I)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"}),children:(0,d.jsxs)("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList",children:[t&&(0,d.jsx)(h,{}),e.map(((t,n)=>{const s=n===e.length-1,a="category"===t.type&&t.linkUnlisted?void 0:t.href;return(0,d.jsx)(x,{active:s,index:n,addMicrodata:!!a,children:(0,d.jsx)(f,{href:a,isLast:s,children:t.label})},n)}))]})}):null}},8032:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>Lt});var s=n(7294),a=n(1944),o=n(902),i=n(5893);const l=s.createContext(null);function c(e){let{children:t,content:n}=e;const a=function(e){return(0,s.useMemo)((()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc})),[e])}(n);return(0,i.jsx)(l.Provider,{value:a,children:t})}function r(){const e=(0,s.useContext)(l);if(null===e)throw new o.i6("DocProvider");return e}function d(){const{metadata:e,frontMatter:t,assets:n}=r();return(0,i.jsx)(a.d,{title:e.title,description:e.description,keywords:t.keywords,image:n.image??t.image})}var u=n(512),m=n(7524),h=n(4966);function p(){const{metadata:e}=r();return(0,i.jsx)(h.Z,{previous:e.previous,next:e.next})}var f=n(3120),x=n(4364),g=n(5281),b=n(5999);function j(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:n}=e;return(0,i.jsx)(b.Z,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:(0,i.jsx)("b",{children:(0,i.jsx)("time",{dateTime:new Date(1e3*t).toISOString(),children:n})})},children:" on {date}"})}function v(e){let{lastUpdatedBy:t}=e;return(0,i.jsx)(b.Z,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:(0,i.jsx)("b",{children:t})},children:" by {user}"})}function N(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:n,lastUpdatedBy:s}=e;return(0,i.jsxs)("span",{className:g.k.common.lastUpdated,children:[(0,i.jsx)(b.Z,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:t&&n?(0,i.jsx)(j,{lastUpdatedAt:t,formattedLastUpdatedAt:n}):"",byUser:s?(0,i.jsx)(v,{lastUpdatedBy:s}):""},children:"Last updated{atDate}{byUser}"}),!1]})}var C=n(9960);const k={iconEdit:"iconEdit_Z9Sw"};function L(e){let{className:t,...n}=e;return(0,i.jsx)("svg",{fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,u.Z)(k.iconEdit,t),"aria-hidden":"true",...n,children:(0,i.jsx)("g",{children:(0,i.jsx)("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})})})}function y(e){let{editUrl:t}=e;return(0,i.jsxs)(C.Z,{to:t,className:g.k.common.editThisPage,children:[(0,i.jsx)(L,{}),(0,i.jsx)(b.Z,{id:"theme.common.editThisPage",description:"The link label to edit the current page",children:"Edit this page"})]})}const _={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};function B(e){let{permalink:t,label:n,count:s}=e;return(0,i.jsxs)(C.Z,{href:t,className:(0,u.Z)(_.tag,s?_.tagWithCount:_.tagRegular),children:[n,s&&(0,i.jsx)("span",{children:s})]})}const w={tags:"tags_jXut",tag:"tag_QGVx"};function Z(e){let{tags:t}=e;return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("b",{children:(0,i.jsx)(b.Z,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list",children:"Tags:"})}),(0,i.jsx)("ul",{className:(0,u.Z)(w.tags,"padding--none","margin-left--sm"),children:t.map((e=>{let{label:t,permalink:n}=e;return(0,i.jsx)("li",{className:w.tag,children:(0,i.jsx)(B,{label:t,permalink:n})},n)}))})]})}const T={lastUpdated:"lastUpdated_vwxv"};function E(e){return(0,i.jsx)("div",{className:(0,u.Z)(g.k.docs.docFooterTagsRow,"row margin-bottom--sm"),children:(0,i.jsx)("div",{className:"col",children:(0,i.jsx)(Z,{...e})})})}function H(e){let{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:s,formattedLastUpdatedAt:a}=e;return(0,i.jsxs)("div",{className:(0,u.Z)(g.k.docs.docFooterEditMetaRow,"row"),children:[(0,i.jsx)("div",{className:"col",children:t&&(0,i.jsx)(y,{editUrl:t})}),(0,i.jsx)("div",{className:(0,u.Z)("col",T.lastUpdated),children:(n||s)&&(0,i.jsx)(N,{lastUpdatedAt:n,formattedLastUpdatedAt:a,lastUpdatedBy:s})})]})}function A(){const{metadata:e}=r(),{editUrl:t,lastUpdatedAt:n,formattedLastUpdatedAt:s,lastUpdatedBy:a,tags:o}=e,l=o.length>0,c=!!(t||n||a);return l||c?(0,i.jsxs)("footer",{className:(0,u.Z)(g.k.docs.docFooter,"docusaurus-mt-lg"),children:[l&&(0,i.jsx)(E,{tags:o}),c&&(0,i.jsx)(H,{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:a,formattedLastUpdatedAt:s})]}):null}var I=n(6043),M=n(6668);function S(e){const t=e.map((e=>({...e,parentIndex:-1,children:[]}))),n=Array(7).fill(-1);t.forEach(((e,t)=>{const s=n.slice(2,e.level);e.parentIndex=Math.max(...s),n[e.level]=t}));const s=[];return t.forEach((e=>{const{parentIndex:n,...a}=e;n>=0?t[n].children.push(a):s.push(a)})),s}function U(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:s}=e;return t.flatMap((e=>{const t=U({toc:e.children,minHeadingLevel:n,maxHeadingLevel:s});return function(e){return e.level>=n&&e.level<=s}(e)?[{...e,children:t}]:t}))}function z(e){const t=e.getBoundingClientRect();return t.top===t.bottom?z(e.parentNode):t}function V(e,t){let{anchorTopOffset:n}=t;const s=e.find((e=>z(e).top>=n));if(s){return function(e){return e.top>0&&e.bottom{e.current=t?0:document.querySelector(".navbar").clientHeight}),[t]),e}function O(e){const t=(0,s.useRef)(void 0),n=R();(0,s.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:s,linkActiveClassName:a,minHeadingLevel:o,maxHeadingLevel:i}=e;function l(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(s),l=function(e){let{minHeadingLevel:t,maxHeadingLevel:n}=e;const s=[];for(let a=t;a<=n;a+=1)s.push(`h${a}.anchor`);return Array.from(document.querySelectorAll(s.join()))}({minHeadingLevel:o,maxHeadingLevel:i}),c=V(l,{anchorTopOffset:n.current}),r=e.find((e=>c&&c.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,n){n?(t.current&&t.current!==e&&t.current.classList.remove(a),e.classList.add(a),t.current=e):e.classList.remove(a)}(e,e===r)}))}return document.addEventListener("scroll",l),document.addEventListener("resize",l),l(),()=>{document.removeEventListener("scroll",l),document.removeEventListener("resize",l)}}),[e,n])}function P(e){let{toc:t,className:n,linkClassName:s,isChild:a}=e;return t.length?(0,i.jsx)("ul",{className:a?void 0:n,children:t.map((e=>(0,i.jsxs)("li",{children:[(0,i.jsx)(C.Z,{to:`#${e.id}`,className:s??void 0,dangerouslySetInnerHTML:{__html:e.value}}),(0,i.jsx)(P,{isChild:!0,toc:e.children,className:n,linkClassName:s})]},e.id)))}):null}const $=s.memo(P);function D(e){let{toc:t,className:n="table-of-contents table-of-contents__left-border",linkClassName:a="table-of-contents__link",linkActiveClassName:o,minHeadingLevel:l,maxHeadingLevel:c,...r}=e;const d=(0,M.L)(),u=l??d.tableOfContents.minHeadingLevel,m=c??d.tableOfContents.maxHeadingLevel,h=function(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return(0,s.useMemo)((()=>U({toc:S(t),minHeadingLevel:n,maxHeadingLevel:a})),[t,n,a])}({toc:t,minHeadingLevel:u,maxHeadingLevel:m});return O((0,s.useMemo)((()=>{if(a&&o)return{linkClassName:a,linkActiveClassName:o,minHeadingLevel:u,maxHeadingLevel:m}}),[a,o,u,m])),(0,i.jsx)($,{toc:h,className:n,linkClassName:a,...r})}const W={tocCollapsibleButton:"tocCollapsibleButton_TO0P",tocCollapsibleButtonExpanded:"tocCollapsibleButtonExpanded_MG3E"};function F(e){let{collapsed:t,...n}=e;return(0,i.jsx)("button",{type:"button",...n,className:(0,u.Z)("clean-btn",W.tocCollapsibleButton,!t&&W.tocCollapsibleButtonExpanded,n.className),children:(0,i.jsx)(b.Z,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component",children:"On this page"})})}const q={tocCollapsible:"tocCollapsible_ETCw",tocCollapsibleContent:"tocCollapsibleContent_vkbj",tocCollapsibleExpanded:"tocCollapsibleExpanded_sAul"};function G(e){let{toc:t,className:n,minHeadingLevel:s,maxHeadingLevel:a}=e;const{collapsed:o,toggleCollapsed:l}=(0,I.u)({initialState:!0});return(0,i.jsxs)("div",{className:(0,u.Z)(q.tocCollapsible,!o&&q.tocCollapsibleExpanded,n),children:[(0,i.jsx)(F,{collapsed:o,onClick:l}),(0,i.jsx)(I.z,{lazy:!0,className:q.tocCollapsibleContent,collapsed:o,children:(0,i.jsx)(D,{toc:t,minHeadingLevel:s,maxHeadingLevel:a})})]})}const J={tocMobile:"tocMobile_ITEo"};function Y(){const{toc:e,frontMatter:t}=r();return(0,i.jsx)(G,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:(0,u.Z)(g.k.docs.docTocMobile,J.tocMobile)})}const Q={tableOfContents:"tableOfContents_bqdL",docItemContainer:"docItemContainer_F8PC"},X="table-of-contents__link toc-highlight",K="table-of-contents__link--active";function ee(e){let{className:t,...n}=e;return(0,i.jsx)("div",{className:(0,u.Z)(Q.tableOfContents,"thin-scrollbar",t),children:(0,i.jsx)(D,{...n,linkClassName:X,linkActiveClassName:K})})}function te(){const{toc:e,frontMatter:t}=r();return(0,i.jsx)(ee,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:g.k.docs.docTocDesktop})}var ne=n(2503),se=n(1151),ae=n(5742),oe=n(2389),ie=n(2949);function le(){const{prism:e}=(0,M.L)(),{colorMode:t}=(0,ie.I)(),n=e.theme,s=e.darkTheme||n;return"dark"===t?s:n}var ce=n(7594),re=n.n(ce);const de=/title=(?["'])(?.*?)\1/,ue=/\{(?<range>[\d,-]+)\}/,me={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"},lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""}};function he(e,t){const n=e.map((e=>{const{start:n,end:s}=me[e];return`(?:${n}\\s*(${t.flatMap((e=>[e.line,e.block?.start,e.block?.end].filter(Boolean))).join("|")})\\s*${s})`})).join("|");return new RegExp(`^\\s*(?:${n})\\s*$`)}function pe(e,t){let n=e.replace(/\n$/,"");const{language:s,magicComments:a,metastring:o}=t;if(o&&ue.test(o)){const e=o.match(ue).groups.range;if(0===a.length)throw new Error(`A highlight range has been given in code block's metastring (\`\`\` ${o}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);const t=a[0].className,s=re()(e).filter((e=>e>0)).map((e=>[e-1,[t]]));return{lineClassNames:Object.fromEntries(s),code:n}}if(void 0===s)return{lineClassNames:{},code:n};const i=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return he(["js","jsBlock"],t);case"jsx":case"tsx":return he(["js","jsBlock","jsx"],t);case"html":return he(["js","jsBlock","html"],t);case"python":case"py":case"bash":return he(["bash"],t);case"markdown":case"md":return he(["html","jsx","bash"],t);case"tex":case"latex":case"matlab":return he(["tex"],t);case"lua":case"haskell":case"sql":return he(["lua"],t);case"wasm":return he(["wasm"],t);default:return he(Object.keys(me).filter((e=>!["lua","wasm","tex","latex","matlab"].includes(e))),t)}}(s,a),l=n.split("\n"),c=Object.fromEntries(a.map((e=>[e.className,{start:0,range:""}]))),r=Object.fromEntries(a.filter((e=>e.line)).map((e=>{let{className:t,line:n}=e;return[n,t]}))),d=Object.fromEntries(a.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.start,t]}))),u=Object.fromEntries(a.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.end,t]})));for(let h=0;h<l.length;){const e=l[h].match(i);if(!e){h+=1;continue}const t=e.slice(1).find((e=>void 0!==e));r[t]?c[r[t]].range+=`${h},`:d[t]?c[d[t]].start=h:u[t]&&(c[u[t]].range+=`${c[u[t]].start}-${h-1},`),l.splice(h,1)}n=l.join("\n");const m={};return Object.entries(c).forEach((e=>{let[t,{range:n}]=e;re()(n).forEach((e=>{m[e]??=[],m[e].push(t)}))})),{lineClassNames:m,code:n}}const fe={codeBlockContainer:"codeBlockContainer_Ckt0"};function xe(e){let{as:t,...n}=e;const s=function(e){const t={color:"--prism-color",backgroundColor:"--prism-background-color"},n={};return Object.entries(e.plain).forEach((e=>{let[s,a]=e;const o=t[s];o&&"string"==typeof a&&(n[o]=a)})),n}(le());return(0,i.jsx)(t,{...n,style:s,className:(0,u.Z)(n.className,fe.codeBlockContainer,g.k.common.codeBlock)})}const ge={codeBlockContent:"codeBlockContent_biex",codeBlockTitle:"codeBlockTitle_Ktv7",codeBlock:"codeBlock_bY9V",codeBlockStandalone:"codeBlockStandalone_MEMb",codeBlockLines:"codeBlockLines_e6Vv",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_o6Pm",buttonGroup:"buttonGroup__atx"};function be(e){let{children:t,className:n}=e;return(0,i.jsx)(xe,{as:"pre",tabIndex:0,className:(0,u.Z)(ge.codeBlockStandalone,"thin-scrollbar",n),children:(0,i.jsx)("code",{className:ge.codeBlockLines,children:t})})}const je={attributes:!0,characterData:!0,childList:!0,subtree:!0};function ve(e,t){const[n,a]=(0,s.useState)(),i=(0,s.useCallback)((()=>{a(e.current?.closest("[role=tabpanel][hidden]"))}),[e,a]);(0,s.useEffect)((()=>{i()}),[i]),function(e,t,n){void 0===n&&(n=je);const a=(0,o.zX)(t),i=(0,o.Ql)(n);(0,s.useEffect)((()=>{const t=new MutationObserver(a);return e&&t.observe(e,i),()=>t.disconnect()}),[e,a,i])}(n,(e=>{e.forEach((e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),i())}))}),{attributes:!0,characterData:!1,childList:!1,subtree:!1})}var Ne=n(2573);const Ce={codeLine:"codeLine_lJS_",codeLineNumber:"codeLineNumber_Tfdd",codeLineContent:"codeLineContent_feaV"};function ke(e){let{line:t,classNames:n,showLineNumbers:s,getLineProps:a,getTokenProps:o}=e;1===t.length&&"\n"===t[0].content&&(t[0].content="");const l=a({line:t,className:(0,u.Z)(n,s&&Ce.codeLine)}),c=t.map(((e,t)=>(0,i.jsx)("span",{...o({token:e,key:t})},t)));return(0,i.jsxs)("span",{...l,children:[s?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("span",{className:Ce.codeLineNumber}),(0,i.jsx)("span",{className:Ce.codeLineContent,children:c})]}):c,(0,i.jsx)("br",{})]})}function Le(e){return(0,i.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,i.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})})}function ye(e){return(0,i.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,i.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})})}const _e={copyButtonCopied:"copyButtonCopied_obH4",copyButtonIcons:"copyButtonIcons_eSgA",copyButtonIcon:"copyButtonIcon_y97N",copyButtonSuccessIcon:"copyButtonSuccessIcon_LjdS"};function Be(e){let{code:t,className:n}=e;const[a,o]=(0,s.useState)(!1),l=(0,s.useRef)(void 0),c=(0,s.useCallback)((()=>{!function(e,t){let{target:n=document.body}=void 0===t?{}:t;if("string"!=typeof e)throw new TypeError(`Expected parameter \`text\` to be a \`string\`, got \`${typeof e}\`.`);const s=document.createElement("textarea"),a=document.activeElement;s.value=e,s.setAttribute("readonly",""),s.style.contain="strict",s.style.position="absolute",s.style.left="-9999px",s.style.fontSize="12pt";const o=document.getSelection(),i=o.rangeCount>0&&o.getRangeAt(0);n.append(s),s.select(),s.selectionStart=0,s.selectionEnd=e.length;let l=!1;try{l=document.execCommand("copy")}catch{}s.remove(),i&&(o.removeAllRanges(),o.addRange(i)),a&&a.focus()}(t),o(!0),l.current=window.setTimeout((()=>{o(!1)}),1e3)}),[t]);return(0,s.useEffect)((()=>()=>window.clearTimeout(l.current)),[]),(0,i.jsx)("button",{type:"button","aria-label":a?(0,b.I)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,b.I)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,b.I)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,u.Z)("clean-btn",n,_e.copyButton,a&&_e.copyButtonCopied),onClick:c,children:(0,i.jsxs)("span",{className:_e.copyButtonIcons,"aria-hidden":"true",children:[(0,i.jsx)(Le,{className:_e.copyButtonIcon}),(0,i.jsx)(ye,{className:_e.copyButtonSuccessIcon})]})})}function we(e){return(0,i.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,i.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})})}const Ze={wordWrapButtonIcon:"wordWrapButtonIcon_Bwma",wordWrapButtonEnabled:"wordWrapButtonEnabled_EoeP"};function Te(e){let{className:t,onClick:n,isEnabled:s}=e;const a=(0,b.I)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,i.jsx)("button",{type:"button",onClick:n,className:(0,u.Z)("clean-btn",t,s&&Ze.wordWrapButtonEnabled),"aria-label":a,title:a,children:(0,i.jsx)(we,{className:Ze.wordWrapButtonIcon,"aria-hidden":"true"})})}function Ee(e){let{children:t,className:n="",metastring:a,title:o,showLineNumbers:l,language:c}=e;const{prism:{defaultLanguage:r,magicComments:d}}=(0,M.L)(),m=function(e){return e?.toLowerCase()}(c??function(e){const t=e.split(" ").find((e=>e.startsWith("language-")));return t?.replace(/language-/,"")}(n)??r),h=le(),p=function(){const[e,t]=(0,s.useState)(!1),[n,a]=(0,s.useState)(!1),o=(0,s.useRef)(null),i=(0,s.useCallback)((()=>{const n=o.current.querySelector("code");e?n.removeAttribute("style"):(n.style.whiteSpace="pre-wrap",n.style.overflowWrap="anywhere"),t((e=>!e))}),[o,e]),l=(0,s.useCallback)((()=>{const{scrollWidth:e,clientWidth:t}=o.current,n=e>t||o.current.querySelector("code").hasAttribute("style");a(n)}),[o]);return ve(o,l),(0,s.useEffect)((()=>{l()}),[e,l]),(0,s.useEffect)((()=>(window.addEventListener("resize",l,{passive:!0}),()=>{window.removeEventListener("resize",l)})),[l]),{codeBlockRef:o,isEnabled:e,isCodeScrollable:n,toggle:i}}(),f=function(e){return e?.match(de)?.groups.title??""}(a)||o,{lineClassNames:x,code:g}=pe(t,{metastring:a,language:m,magicComments:d}),b=l??function(e){return Boolean(e?.includes("showLineNumbers"))}(a);return(0,i.jsxs)(xe,{as:"div",className:(0,u.Z)(n,m&&!n.includes(`language-${m}`)&&`language-${m}`),children:[f&&(0,i.jsx)("div",{className:ge.codeBlockTitle,children:f}),(0,i.jsxs)("div",{className:ge.codeBlockContent,children:[(0,i.jsx)(Ne.y$,{theme:h,code:g,language:m??"text",children:e=>{let{className:t,style:n,tokens:s,getLineProps:a,getTokenProps:o}=e;return(0,i.jsx)("pre",{tabIndex:0,ref:p.codeBlockRef,className:(0,u.Z)(t,ge.codeBlock,"thin-scrollbar"),style:n,children:(0,i.jsx)("code",{className:(0,u.Z)(ge.codeBlockLines,b&&ge.codeBlockLinesWithNumbering),children:s.map(((e,t)=>(0,i.jsx)(ke,{line:e,getLineProps:a,getTokenProps:o,classNames:x[t],showLineNumbers:b},t)))})})}}),(0,i.jsxs)("div",{className:ge.buttonGroup,children:[(p.isEnabled||p.isCodeScrollable)&&(0,i.jsx)(Te,{className:ge.codeButton,onClick:()=>p.toggle(),isEnabled:p.isEnabled}),(0,i.jsx)(Be,{className:ge.codeButton,code:g})]})]})]})}function He(e){let{children:t,...n}=e;const a=(0,oe.Z)(),o=function(e){return s.Children.toArray(e).some((e=>(0,s.isValidElement)(e)))?e:Array.isArray(e)?e.join(""):e}(t),l="string"==typeof o?Ee:be;return(0,i.jsx)(l,{...n,children:o},String(a))}const Ae={details:"details_lb9f",isBrowser:"isBrowser_bmU9",collapsibleContent:"collapsibleContent_i85q"};function Ie(e){return!!e&&("SUMMARY"===e.tagName||Ie(e.parentElement))}function Me(e,t){return!!e&&(e===t||Me(e.parentElement,t))}function Se(e){let{summary:t,children:n,...a}=e;const o=(0,oe.Z)(),l=(0,s.useRef)(null),{collapsed:c,setCollapsed:r}=(0,I.u)({initialState:!a.open}),[d,m]=(0,s.useState)(a.open),h=s.isValidElement(t)?t:(0,i.jsx)("summary",{children:t??"Details"});return(0,i.jsxs)("details",{...a,ref:l,open:d,"data-collapsed":c,className:(0,u.Z)(Ae.details,o&&Ae.isBrowser,a.className),onMouseDown:e=>{Ie(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();const t=e.target;Ie(t)&&Me(t,l.current)&&(e.preventDefault(),c?(r(!1),m(!0)):r(!0))},children:[h,(0,i.jsx)(I.z,{lazy:!1,collapsed:c,disableSSRStyle:!0,onCollapseTransitionEnd:e=>{r(e),m(!e)},children:(0,i.jsx)("div",{className:Ae.collapsibleContent,children:n})})]})}const Ue={details:"details_b_Ee"},ze="alert alert--info";function Ve(e){let{...t}=e;return(0,i.jsx)(Se,{...t,className:(0,u.Z)(ze,Ue.details,t.className)})}function Re(e){const t=s.Children.toArray(e.children),n=t.find((e=>s.isValidElement(e)&&"summary"===e.type)),a=(0,i.jsx)(i.Fragment,{children:t.filter((e=>e!==n))});return(0,i.jsx)(Ve,{...e,summary:n,children:a})}function Oe(e){return(0,i.jsx)(ne.Z,{...e})}const Pe={containsTaskList:"containsTaskList_mC6p"};function $e(e){if(void 0!==e)return(0,u.Z)(e,e?.includes("contains-task-list")&&Pe.containsTaskList)}const De={img:"img_ev3q"};function We(e){const{mdxAdmonitionTitle:t,rest:n}=function(e){const t=s.Children.toArray(e),n=t.find((e=>s.isValidElement(e)&&"mdxAdmonitionTitle"===e.type)),a=t.filter((e=>e!==n)),o=n?.props.children;return{mdxAdmonitionTitle:o,rest:a.length>0?(0,i.jsx)(i.Fragment,{children:a}):null}}(e.children),a=e.title??t;return{...e,...a&&{title:a},children:n}}const Fe={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function qe(e){let{type:t,className:n,children:s}=e;return(0,i.jsx)("div",{className:(0,u.Z)(g.k.common.admonition,g.k.common.admonitionType(t),Fe.admonition,n),children:s})}function Ge(e){let{icon:t,title:n}=e;return(0,i.jsxs)("div",{className:Fe.admonitionHeading,children:[(0,i.jsx)("span",{className:Fe.admonitionIcon,children:t}),n]})}function Je(e){let{children:t}=e;return t?(0,i.jsx)("div",{className:Fe.admonitionContent,children:t}):null}function Ye(e){const{type:t,icon:n,title:s,children:a,className:o}=e;return(0,i.jsxs)(qe,{type:t,className:o,children:[(0,i.jsx)(Ge,{title:s,icon:n}),(0,i.jsx)(Je,{children:a})]})}function Qe(e){return(0,i.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const Xe={icon:(0,i.jsx)(Qe,{}),title:(0,i.jsx)(b.Z,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function Ke(e){return(0,i.jsx)(Ye,{...Xe,...e,className:(0,u.Z)("alert alert--secondary",e.className),children:e.children})}function et(e){return(0,i.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const tt={icon:(0,i.jsx)(et,{}),title:(0,i.jsx)(b.Z,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function nt(e){return(0,i.jsx)(Ye,{...tt,...e,className:(0,u.Z)("alert alert--success",e.className),children:e.children})}function st(e){return(0,i.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const at={icon:(0,i.jsx)(st,{}),title:(0,i.jsx)(b.Z,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function ot(e){return(0,i.jsx)(Ye,{...at,...e,className:(0,u.Z)("alert alert--info",e.className),children:e.children})}function it(e){return(0,i.jsx)("svg",{viewBox:"0 0 16 16",...e,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const lt={icon:(0,i.jsx)(it,{}),title:(0,i.jsx)(b.Z,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function ct(e){return(0,i.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const rt={icon:(0,i.jsx)(ct,{}),title:(0,i.jsx)(b.Z,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const dt={icon:(0,i.jsx)(it,{}),title:(0,i.jsx)(b.Z,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const ut={...{note:Ke,tip:nt,info:ot,warning:function(e){return(0,i.jsx)(Ye,{...lt,...e,className:(0,u.Z)("alert alert--warning",e.className),children:e.children})},danger:function(e){return(0,i.jsx)(Ye,{...rt,...e,className:(0,u.Z)("alert alert--danger",e.className),children:e.children})}},...{secondary:e=>(0,i.jsx)(Ke,{title:"secondary",...e}),important:e=>(0,i.jsx)(ot,{title:"important",...e}),success:e=>(0,i.jsx)(nt,{title:"success",...e}),caution:function(e){return(0,i.jsx)(Ye,{...dt,...e,className:(0,u.Z)("alert alert--warning",e.className),children:e.children})}}};function mt(e){const t=We(e),n=(s=t.type,ut[s]||(console.warn(`No admonition component found for admonition type "${s}". Using Info as fallback.`),ut.info));var s;return(0,i.jsx)(n,{...t})}const ht={Head:ae.Z,details:Re,Details:Re,code:function(e){return s.Children.toArray(e.children).every((e=>"string"==typeof e&&!e.includes("\n")))?(0,i.jsx)("code",{...e}):(0,i.jsx)(He,{...e})},a:function(e){return(0,i.jsx)(C.Z,{...e})},pre:function(e){return(0,i.jsx)(i.Fragment,{children:e.children})},ul:function(e){return(0,i.jsx)("ul",{...e,className:$e(e.className)})},img:function(e){return(0,i.jsx)("img",{loading:"lazy",...e,className:(t=e.className,(0,u.Z)(t,De.img))});var t},h1:e=>(0,i.jsx)(Oe,{as:"h1",...e}),h2:e=>(0,i.jsx)(Oe,{as:"h2",...e}),h3:e=>(0,i.jsx)(Oe,{as:"h3",...e}),h4:e=>(0,i.jsx)(Oe,{as:"h4",...e}),h5:e=>(0,i.jsx)(Oe,{as:"h5",...e}),h6:e=>(0,i.jsx)(Oe,{as:"h6",...e}),admonition:mt,mermaid:()=>null};function pt(e){let{children:t}=e;return(0,i.jsx)(se.Z,{components:ht,children:t})}function ft(e){let{children:t}=e;const n=function(){const{metadata:e,frontMatter:t,contentTitle:n}=r();return t.hide_title||void 0!==n?null:e.title}();return(0,i.jsxs)("div",{className:(0,u.Z)(g.k.docs.docMarkdown,"markdown"),children:[n&&(0,i.jsx)("header",{children:(0,i.jsx)(ne.Z,{as:"h1",children:n})}),(0,i.jsx)(pt,{children:t})]})}var xt=n(1310);function gt(){return(0,i.jsx)(b.Z,{id:"theme.unlistedContent.title",description:"The unlisted content banner title",children:"Unlisted page"})}function bt(){return(0,i.jsx)(b.Z,{id:"theme.unlistedContent.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function jt(){return(0,i.jsx)(ae.Z,{children:(0,i.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}function vt(e){let{className:t}=e;return(0,i.jsx)(mt,{type:"caution",title:(0,i.jsx)(gt,{}),className:(0,u.Z)(t,g.k.common.unlistedBanner),children:(0,i.jsx)(bt,{})})}function Nt(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(jt,{}),(0,i.jsx)(vt,{...e})]})}const Ct={docItemContainer:"docItemContainer_Djhp",docItemCol:"docItemCol_VOVn"};function kt(e){let{children:t}=e;const n=function(){const{frontMatter:e,toc:t}=r(),n=(0,m.i)(),s=e.hide_table_of_contents,a=!s&&t.length>0;return{hidden:s,mobile:a?(0,i.jsx)(Y,{}):void 0,desktop:!a||"desktop"!==n&&"ssr"!==n?void 0:(0,i.jsx)(te,{})}}(),{metadata:{unlisted:s}}=r();return(0,i.jsxs)("div",{className:"row",children:[(0,i.jsxs)("div",{className:(0,u.Z)("col",!n.hidden&&Ct.docItemCol),children:[s&&(0,i.jsx)(Nt,{}),(0,i.jsx)(f.Z,{}),(0,i.jsxs)("div",{className:Ct.docItemContainer,children:[(0,i.jsxs)("article",{children:[(0,i.jsx)(xt.Z,{}),(0,i.jsx)(x.Z,{}),n.mobile,(0,i.jsx)(ft,{children:t}),(0,i.jsx)(A,{})]}),(0,i.jsx)(p,{})]})]}),n.desktop&&(0,i.jsx)("div",{className:"col col--3",children:n.desktop})]})}function Lt(e){const t=`docs-doc-id-${e.content.metadata.id}`,n=e.content;return(0,i.jsx)(c,{content:e.content,children:(0,i.jsxs)(a.FG,{className:t,children:[(0,i.jsx)(d,{}),(0,i.jsx)(kt,{children:(0,i.jsx)(n,{})})]})})}},4966:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});n(7294);var s=n(5999),a=n(512),o=n(9960),i=n(5893);function l(e){const{permalink:t,title:n,subLabel:s,isNext:l}=e;return(0,i.jsxs)(o.Z,{className:(0,a.Z)("pagination-nav__link",l?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t,children:[s&&(0,i.jsx)("div",{className:"pagination-nav__sublabel",children:s}),(0,i.jsx)("div",{className:"pagination-nav__label",children:n})]})}function c(e){const{previous:t,next:n}=e;return(0,i.jsxs)("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,s.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"}),children:[t&&(0,i.jsx)(l,{...t,subLabel:(0,i.jsx)(s.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc",children:"Previous"})}),n&&(0,i.jsx)(l,{...n,subLabel:(0,i.jsx)(s.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc",children:"Next"}),isNext:!0})]})}},4364:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});n(7294);var s=n(512),a=n(5999),o=n(5281),i=n(4477),l=n(5893);function c(e){let{className:t}=e;const n=(0,i.E)();return n.badge?(0,l.jsx)("span",{className:(0,s.Z)(t,o.k.docs.docVersionBadge,"badge badge--secondary"),children:(0,l.jsx)(a.Z,{id:"theme.docs.versionBadge.label",values:{versionLabel:n.label},children:"Version: {versionLabel}"})}):null}},3120:(e,t,n)=>{"use strict";n.d(t,{Z:()=>x});n(7294);var s=n(512),a=n(2263),o=n(9960),i=n(5999),l=n(143),c=n(5281),r=n(373),d=n(4477),u=n(5893);const m={unreleased:function(e){let{siteTitle:t,versionMetadata:n}=e;return(0,u.jsx)(i.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:(0,u.jsx)("b",{children:n.label})},children:"This is unreleased documentation for {siteTitle} {versionLabel} version."})},unmaintained:function(e){let{siteTitle:t,versionMetadata:n}=e;return(0,u.jsx)(i.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:(0,u.jsx)("b",{children:n.label})},children:"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained."})}};function h(e){const t=m[e.versionMetadata.banner];return(0,u.jsx)(t,{...e})}function p(e){let{versionLabel:t,to:n,onClick:s}=e;return(0,u.jsx)(i.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:(0,u.jsx)("b",{children:(0,u.jsx)(o.Z,{to:n,onClick:s,children:(0,u.jsx)(i.Z,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label",children:"latest version"})})})},children:"For up-to-date documentation, see the {latestVersionLink} ({versionLabel})."})}function f(e){let{className:t,versionMetadata:n}=e;const{siteConfig:{title:o}}=(0,a.Z)(),{pluginId:i}=(0,l.gA)({failfast:!0}),{savePreferredVersionName:d}=(0,r.J)(i),{latestDocSuggestion:m,latestVersionSuggestion:f}=(0,l.Jo)(i),x=m??(g=f).docs.find((e=>e.id===g.mainDocId));var g;return(0,u.jsxs)("div",{className:(0,s.Z)(t,c.k.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert",children:[(0,u.jsx)("div",{children:(0,u.jsx)(h,{siteTitle:o,versionMetadata:n})}),(0,u.jsx)("div",{className:"margin-top--md",children:(0,u.jsx)(p,{versionLabel:f.label,to:x.path,onClick:()=>d(f.name)})})]})}function x(e){let{className:t}=e;const n=(0,d.E)();return n.banner?(0,u.jsx)(f,{className:t,versionMetadata:n}):null}},7594:(e,t)=>{function n(e){let t,n=[];for(let s of e.split(",").map((e=>e.trim())))if(/^-?\d+$/.test(s))n.push(parseInt(s,10));else if(t=s.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,s,a,o]=t;if(s&&o){s=parseInt(s),o=parseInt(o);const e=s<o?1:-1;"-"!==a&&".."!==a&&"\u2025"!==a||(o+=e);for(let t=s;t!==o;t+=e)n.push(t)}}return n}t.default=n,e.exports=n},1151:(e,t,n)=>{"use strict";n.d(t,{Z:()=>l,a:()=>i});var s=n(7294);const a={},o=s.createContext(a);function i(e){const t=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:i(e.components),s.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/187dbc21.6d7a7433.js b/assets/js/187dbc21.6d7a7433.js new file mode 100644 index 00000000..cd009625 --- /dev/null +++ b/assets/js/187dbc21.6d7a7433.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[455],{6996:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>a,contentTitle:()=>i,default:()=>d,frontMatter:()=>s,metadata:()=>c,toc:()=>l});var r=o(5893),n=o(1151);const s={},i="Core",c={id:"modules/core/index",title:"Core",description:"This crate is for core features and traits common to all CML crates. Most users likely won't need to directly use this module except for possibly pulling in traits used with other cml crates. If you are using CML from WASM/typescript this module will not be needed as any used types will be re-exported in the crates (e.g. cml-chain-wasm, cml-cip25-wasm, etc) that use it.",source:"@site/docs/modules/core/index.md",sourceDirName:"modules/core",slug:"/modules/core/",permalink:"/cardano-multiplatform-lib/modules/core/",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Core",permalink:"/cardano-multiplatform-lib/category/core"},next:{title:"Chain",permalink:"/cardano-multiplatform-lib/category/chain"}},a={},l=[];function u(e){const t={h1:"h1",p:"p",...(0,n.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.h1,{id:"core",children:"Core"}),"\n",(0,r.jsx)(t.p,{children:"This crate is for core features and traits common to all CML crates. Most users likely won't need to directly use this module except for possibly pulling in traits used with other cml crates. If you are using CML from WASM/typescript this module will not be needed as any used types will be re-exported in the crates (e.g. cml-chain-wasm, cml-cip25-wasm, etc) that use it."})]})}function d(e={}){const{wrapper:t}={...(0,n.a)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(u,{...e})}):u(e)}},1151:(e,t,o)=>{o.d(t,{Z:()=>c,a:()=>i});var r=o(7294);const n={},s=r.createContext(n);function i(e){const t=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),r.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/1a4e3797.e763b08d.js b/assets/js/1a4e3797.e763b08d.js new file mode 100644 index 00000000..dee2bab6 --- /dev/null +++ b/assets/js/1a4e3797.e763b08d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[920],{2027:(e,t,r)=>{r.r(t),r.d(t,{default:()=>A});var s=r(7294),a=r(2263),n=r(8862),c=r(5742),l=r(9960),o=r(5999);const u=["zero","one","two","few","many","other"];function h(e){return u.filter((t=>e.includes(t)))}const i={locale:"en",pluralForms:h(["one","other"]),select:e=>1===e?"one":"other"};function m(){const{i18n:{currentLocale:e}}=(0,a.Z)();return(0,s.useMemo)((()=>{try{return function(e){const t=new Intl.PluralRules(e);return{locale:e,pluralForms:h(t.resolvedOptions().pluralCategories),select:e=>t.select(e)}}(e)}catch(t){return console.error(`Failed to use Intl.PluralRules for locale "${e}".\nDocusaurus will fallback to the default (English) implementation.\nError: ${t.message}\n`),i}}),[e])}function d(){const e=m();return{selectMessage:(t,r)=>function(e,t,r){const s=e.split("|");if(1===s.length)return s[0];s.length>r.pluralForms.length&&console.error(`For locale=${r.locale}, a maximum of ${r.pluralForms.length} plural forms are expected (${r.pluralForms.join(",")}), but the message contains ${s.length}: ${e}`);const a=r.select(t),n=r.pluralForms.indexOf(a);return s[Math.min(n,s.length-1)]}(r,t,e)}}var p=r(1728),g=r(6550),x=r(2389),f=r(1029);const y=function(){const e=(0,x.Z)(),t=(0,g.k6)(),r=(0,g.TH)(),{siteConfig:{baseUrl:s}}=(0,a.Z)(),n=e?new URLSearchParams(r.search):null,c=n?.get("q")||"",l=n?.get("ctx")||"",o=n?.get("version")||"",u=e=>{const t=new URLSearchParams(r.search);return e?t.set("q",e):t.delete("q"),t};return{searchValue:c,searchContext:l&&Array.isArray(f.Kc)&&f.Kc.some((e=>"string"==typeof e?e===l:e.path===l))?l:"",searchVersion:o,updateSearchPath:e=>{const r=u(e);t.replace({search:r.toString()})},updateSearchContext:e=>{const s=new URLSearchParams(r.search);s.set("ctx",e),t.replace({search:s.toString()})},generateSearchPageLink:e=>{const t=u(e);return`${s}search?${t.toString()}`}}};var S=r(22),C=r(8202),j=r(2539),I=r(726),v=r(1073),w=r(311),R=r(3926);const _={searchContextInput:"searchContextInput_mXoe",searchQueryInput:"searchQueryInput_CFBF",searchResultItem:"searchResultItem_U687",searchResultItemPath:"searchResultItemPath_uIbk",searchResultItemSummary:"searchResultItemSummary_oZHr",searchQueryColumn:"searchQueryColumn_q7nx",searchContextColumn:"searchContextColumn_oWAF"};var P=r(51),b=r(5893);function F(){const{siteConfig:{baseUrl:e},i18n:{currentLocale:t}}=(0,a.Z)(),{selectMessage:r}=d(),{searchValue:n,searchContext:l,searchVersion:u,updateSearchPath:h,updateSearchContext:i}=y(),[m,g]=(0,s.useState)(n),[x,j]=(0,s.useState)(),[I,v]=(0,s.useState)(),R=`${e}${u}`,F=(0,s.useMemo)((()=>m?(0,o.I)({id:"theme.SearchPage.existingResultsTitle",message:'Search results for "{query}"',description:"The search page title for non-empty query"},{query:m}):(0,o.I)({id:"theme.SearchPage.emptyResultsTitle",message:"Search the documentation",description:"The search page title for empty query"})),[m]);(0,s.useEffect)((()=>{h(m),x&&(m?x(m,(e=>{v(e)})):v(void 0))}),[m,x]);const A=(0,s.useCallback)((e=>{g(e.target.value)}),[]);return(0,s.useEffect)((()=>{n&&n!==m&&g(n)}),[n]),(0,s.useEffect)((()=>{!async function(){const{wrappedIndexes:e,zhDictionary:t}=l||f.pQ?await(0,S.w)(R,l):{wrappedIndexes:[],zhDictionary:[]};j((()=>(0,C.v)(e,t,100)))}()}),[l,R]),(0,b.jsxs)(s.Fragment,{children:[(0,b.jsxs)(c.Z,{children:[(0,b.jsx)("meta",{property:"robots",content:"noindex, follow"}),(0,b.jsx)("title",{children:F})]}),(0,b.jsxs)("div",{className:"container margin-vert--lg",children:[(0,b.jsx)("h1",{children:F}),(0,b.jsxs)("div",{className:"row",children:[(0,b.jsx)("div",{className:(0,p.Z)("col",{[_.searchQueryColumn]:Array.isArray(f.Kc),"col--9":Array.isArray(f.Kc),"col--12":!Array.isArray(f.Kc)}),children:(0,b.jsx)("input",{type:"search",name:"q",className:_.searchQueryInput,"aria-label":"Search",onChange:A,value:m,autoComplete:"off",autoFocus:!0})}),Array.isArray(f.Kc)?(0,b.jsx)("div",{className:(0,p.Z)("col","col--3","padding-left--none",_.searchContextColumn),children:(0,b.jsxs)("select",{name:"search-context",className:_.searchContextInput,id:"context-selector",value:l,onChange:e=>i(e.target.value),children:[f.pQ&&(0,b.jsx)("option",{value:"",children:(0,o.I)({id:"theme.SearchPage.searchContext.everywhere",message:"everywhere"})}),f.Kc.map((e=>{const{label:r,path:s}=(0,P._)(e,t);return(0,b.jsx)("option",{value:s,children:r},s)}))]})}):null]}),!x&&m&&(0,b.jsx)("div",{children:(0,b.jsx)(w.Z,{})}),I&&(I.length>0?(0,b.jsx)("p",{children:r(I.length,(0,o.I)({id:"theme.SearchPage.documentsFound.plurals",message:"1 document found|{count} documents found",description:'Pluralized label for "{count} documents found". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)'},{count:I.length}))}):(0,b.jsx)("p",{children:(0,o.I)({id:"theme.SearchPage.noResultsText",message:"No documents were found",description:"The paragraph for empty search result"})})),(0,b.jsx)("section",{children:I&&I.map((e=>(0,b.jsx)($,{searchResult:e},e.document.i)))})]})]})}function $(e){let{searchResult:{document:t,type:r,page:s,tokens:a,metadata:n}}=e;const c=0===r,o=2===r,u=(c?t.b:s.b).slice(),h=o?t.s:t.t;c||u.push(s.t);let i="";if(f.vc&&a.length>0){const e=new URLSearchParams;for(const t of a)e.append("_highlight",t);i=`?${e.toString()}`}return(0,b.jsxs)("article",{className:_.searchResultItem,children:[(0,b.jsx)("h2",{children:(0,b.jsx)(l.Z,{to:t.u+i+(t.h||""),dangerouslySetInnerHTML:{__html:o?(0,j.C)(h,a):(0,I.o)(h,(0,v.m)(n,"t"),a,100)}})}),u.length>0&&(0,b.jsx)("p",{className:_.searchResultItemPath,children:(0,R.e)(u)}),o&&(0,b.jsx)("p",{className:_.searchResultItemSummary,dangerouslySetInnerHTML:{__html:(0,I.o)(t.t,(0,v.m)(n,"t"),a,100)}})]})}const A=function(){return(0,b.jsx)(n.Z,{children:(0,b.jsx)(F,{})})}}}]); \ No newline at end of file diff --git a/assets/js/3c02cfd4.0b344bc8.js b/assets/js/3c02cfd4.0b344bc8.js new file mode 100644 index 00000000..30185591 --- /dev/null +++ b/assets/js/3c02cfd4.0b344bc8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[684],{8635:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>u,frontMatter:()=>a,metadata:()=>o,toc:()=>d});var n=s(5893),i=s(1151);const a={},r="TransactionBuilder",o={id:"modules/builders/index",title:"TransactionBuilder",description:"In order to simplify transaction creation, we provide a TransactionBuilder struct that manages witnesses, fee calculation, change addresses and such. Assume we have instantiated an instance under the variable builder for this explanation. The TransactionBuilder requires several protocol parameters governing Cardano to be created which is shown in the following section. These are specified initially in the genesis file for Cardano nodes.",source:"@site/docs/modules/builders/index.mdx",sourceDirName:"modules/builders",slug:"/modules/builders/",permalink:"/cardano-multiplatform-lib/modules/builders/",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"generating_transactions",permalink:"/cardano-multiplatform-lib/modules/builders/generating_transactions"},next:{title:"CIP36",permalink:"/cardano-multiplatform-lib/modules/cip36"}},c={},d=[];function l(e){const t={a:"a",code:"code",h1:"h1",p:"p",pre:"pre",...(0,i.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h1,{id:"transactionbuilder",children:"TransactionBuilder"}),"\n",(0,n.jsxs)(t.p,{children:["In order to simplify transaction creation, we provide a ",(0,n.jsx)(t.code,{children:"TransactionBuilder"})," struct that manages witnesses, fee calculation, change addresses and such. Assume we have instantiated an instance under the variable ",(0,n.jsx)(t.code,{children:"builder"})," for this explanation. The ",(0,n.jsx)(t.code,{children:"TransactionBuilder"})," requires several protocol parameters governing Cardano to be created which is shown in the following section. These are specified initially in the genesis file for Cardano nodes."]}),"\n",(0,n.jsxs)(t.p,{children:["The minimum required for a valid transaction is to add inputs, outputs, and either set the fee explicitly with ",(0,n.jsx)(t.code,{children:"builder.set_fee(fee)"}),", or calculate it implicitly using ",(0,n.jsx)(t.code,{children:"builder.add_change_if_needed(address)"}),".\nOptionally a transaction can also have certificates, reward withdrawals, metadata, and minting added to it.\nAny change made to the builder can impact the size and thus the fee so the fee should be the last thing set.\nIf implicitly setting the fee any extra ADA (",(0,n.jsx)(t.code,{children:"inputs + withdrawals - outputs + refund - deposit - min fee"}),") is sent to the provided change address.\nFees must be sufficient, i.e. ",(0,n.jsx)(t.code,{children:"inputs + withdrawals + refund >= outputs + deposit + fee"})," which must be manually ensured if you explicitly set the fee. Any extra fee is not necessary and the extra ADA beyond that will be burned.\nOnce the transaction is ready, ",(0,n.jsx)(t.code,{children:"const body = builder.build()"})," can be called to return a ready ",(0,n.jsx)(t.code,{children:"TransactionBody"}),"."]}),"\n",(0,n.jsx)(t.p,{children:"Withdrawals are ADA withdrawn as part of the rewards generated by staking and deposits are refundable ADA locked while resources such as stake certificates or pool registrations exist on the blockchain. They are returned as refunds when these resources are deregistered/retired."}),"\n",(0,n.jsxs)(t.p,{children:["To get to a transaction ready to post on the blockchain, we must create a ",(0,n.jsx)(t.code,{children:"Transaction"})," from that, which consists of the ",(0,n.jsx)(t.code,{children:"TransactionBody"}),", a matching ",(0,n.jsx)(t.code,{children:"TransactionWitnessSet"})," and optionally an ",(0,n.jsx)(t.code,{children:"AuxiliaryData"}),".\nThe witnesses and optional metadata must match those provided to the builder. The witnesses must sign the hash of the transaction body returned by ",(0,n.jsx)(t.code,{children:"hash_transaction(body)"}),". In addition to the witnesses for inputs, withdrawals and some certificates require witnesses as well. For example, staking address registration does not require a witness while stake address de-registration requires one. For any questions or doubts about the rules governing fees, deposits, rewards, certificates or which witness types are required refer to the ",(0,n.jsx)(t.a,{href:"https://github.com/input-output-hk/cardano-ledger-specs#cardano-ledger",children:"specs for the relevant era"}),", specifically the Shelley design specification for general design for non-governance certificates. Refer to the Conway specs for those. The formal specification could be useful for specific details as well. The design spec contains details about which certificates require which type of witnesses in the Certificates and Registrations section."]}),"\n",(0,n.jsx)(t.h1,{id:"transactionbuilderconfig",children:"TransactionBuilderConfig"}),"\n",(0,n.jsxs)(t.p,{children:["To correctly make transactions the builder must know some on-chain parameters such as the current fee costs, key deposits, etc. These can all potentially change, even if some have largely been static for large periods of time. We pass these into the builder via the ",(0,n.jsx)(t.code,{children:"TransactionBuilderConfigBuilder"}),". For test things out hard-coding them might suffice, but these parameters should ideally be fetched from the current blockchain head or your transactions could fail to be accepted by the network or will end up paying higher fees. The cost models parameter is optional if you are not building a transaction that utilizes Plutus smart contracts."]}),"\n",(0,n.jsxs)(t.p,{children:["Code examples for the builders will assume you have a ",(0,n.jsx)(t.code,{children:"make_tx_builder()"})," function that creates a ",(0,n.jsx)(t.code,{children:"TransactionBuilder"})," with the appropriate config."]}),"\n",(0,n.jsx)(t.h1,{id:"blockfrost",children:"Blockfrost"}),"\n",(0,n.jsxs)(t.p,{children:["One way of getting this information is via the ",(0,n.jsx)(t.code,{children:"epochs/latest/parameters"})," endpoint of blockfrost. This can be automated from rust using the ",(0,n.jsx)(t.code,{children:"cml-blockfrost"})," crate's ",(0,n.jsx)(t.code,{children:"make_tx_builder_cfg()"}),". Blockfrost is by no means necessary but it can be convenient. It is possible to get this information by other means as well e.g. having a synced cardano node."]}),"\n",(0,n.jsxs)(t.p,{children:["Using ",(0,n.jsx)(t.code,{children:"cml-blockfrost"})," (rust):"]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-rust",children:"let cfg = cml_blockfrost::make_tx_builder_cfg(&api).await.unwrap();\nlet mut tx_builder = TransactionBuilder::new(cfg);\n"})}),"\n",(0,n.jsxs)(t.p,{children:["This could also be done manually similar to below (or reference ",(0,n.jsx)(t.code,{children:"cml-blockfrost"}),"'s code)"]}),"\n",(0,n.jsx)(t.p,{children:"Manually using WASM:"}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-javascript",children:"let params = await blockfrost.epochsLatestParameters();\n\n// cost order is based on lex ordering of keys\nlet costModels = CML.CostModels.new();\nlet v1Costs = params.cost_models['PlutusV1'];\nif (v1Costs != null) {\n let v1CMLCosts = CML.IntList.new();\n for (key in Object.keys(v1Costs).toSorted()) {\n v1CMLCosts.add(CML.Int.new(v1Costs[key]));\n }\n costModels.set_plutus_v1(v1CMLCosts);\n}\n// cost order is based on lex ordering of keys\nlet v2Costs = params.cost_models['PlutusV2'];\nif (v2Costs != null) {\n let v2CMLCosts = CML.IntList.new();\n for (key in Object.keys(v2Costs).toSorted()) {\n v2CMLCosts.add(CML.Int.new(v2Costs[key]));\n }\n costModels.set_plutus_v2(v2CMLCosts);\n}\n// note: as of writing this the sancho testnet format is different for v3\n// compared to v1/v2. this may remain true once mainnet switches over so\n// please inspect the object you are getting for cost models from blockfrost\n\nlet configBuilder = CML.TransactionBuilderConfigBuilder.new()\n .fee_algo(CML.LinearFee.new(params.min_fee_a, params.min_fee_b))\n .coins_per_utxo_byte(BigNum(params.coins_per_utxo_size))\n .pool_deposit(BigNum(params.pool_deposit))\n .key_deposit(BigNum(params.key_deposit))\n .max_value_size(Number(params.max_val_size))\n .max_tx_size(params.max_tx_size)\n .ex_unit_prices(CML.ExUnitPrices.new(\n CML.SubCoin.from_base10_f32(params.price_mem),\n CML.SubCoin.from_base10_f32(params.price_step)\n ))\n .cost_models(costModels)\n .collateral_percentage(params.collateral_percent)\n max_collateral_inputs(params.max_collateral_inputs);\nlet mut txBuilder = CML.TransactionBuilder.new(configBuilder.build());\n"})})]})}function u(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},1151:(e,t,s)=>{s.d(t,{Z:()=>o,a:()=>r});var n=s(7294);const i={},a=n.createContext(i);function r(e){const t=n.useContext(a);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),n.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/42a4384b.2d67981c.js b/assets/js/42a4384b.2d67981c.js new file mode 100644 index 00000000..896ce660 --- /dev/null +++ b/assets/js/42a4384b.2d67981c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[810],{3458:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>r,default:()=>u,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var i=t(5893),o=t(1151);const a={},r="Chain",c={id:"modules/chain/index",title:"Chain",description:"This crate contains all of the on-chain types used in the current Cardano era. All of these types can be serialized and deserialized from their on-chain CBOR encodings. Also included are some utility funtionality for working with them, as well as builders for creating them.",source:"@site/docs/modules/chain/index.md",sourceDirName:"modules/chain",slug:"/modules/chain/",permalink:"/cardano-multiplatform-lib/modules/chain/",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Chain",permalink:"/cardano-multiplatform-lib/category/chain"},next:{title:"Crypto",permalink:"/cardano-multiplatform-lib/category/crypto"}},s={},l=[];function d(e){const n={h1:"h1",p:"p",...(0,o.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"chain",children:"Chain"}),"\n",(0,i.jsx)(n.p,{children:"This crate contains all of the on-chain types used in the current Cardano era. All of these types can be serialized and deserialized from their on-chain CBOR encodings. Also included are some utility funtionality for working with them, as well as builders for creating them."})]})}function u(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>c,a:()=>r});var i=t(7294);const o={},a=i.createContext(o);function r(e){const n=i.useContext(a);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),i.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/443.3d74dd3a.js b/assets/js/443.3d74dd3a.js new file mode 100644 index 00000000..6d875a1e --- /dev/null +++ b/assets/js/443.3d74dd3a.js @@ -0,0 +1,2 @@ +/*! For license information please see 443.3d74dd3a.js.LICENSE.txt */ +(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[443],{8443:(t,e,n)=>{"use strict";t.exports=n(295)},1228:(t,e,n)=>{"use strict";var i=n(2856),s={wrapper:{position:"relative",display:"inline-block"},hint:{position:"absolute",top:"0",left:"0",borderColor:"transparent",boxShadow:"none",opacity:"1"},input:{position:"relative",verticalAlign:"top",backgroundColor:"transparent"},inputWithNoHint:{position:"relative",verticalAlign:"top"},dropdown:{position:"absolute",top:"100%",left:"0",zIndex:"100",display:"none"},suggestions:{display:"block"},suggestion:{whiteSpace:"nowrap",cursor:"pointer"},suggestionChild:{whiteSpace:"normal"},ltr:{left:"0",right:"auto"},rtl:{left:"auto",right:"0"},defaultClasses:{root:"algolia-autocomplete",prefix:"aa",noPrefix:!1,dropdownMenu:"dropdown-menu",input:"input",hint:"hint",suggestions:"suggestions",suggestion:"suggestion",cursor:"cursor",dataset:"dataset",empty:"empty"},appendTo:{wrapper:{position:"absolute",zIndex:"100",display:"none"},input:{},inputWithNoHint:{},dropdown:{display:"block"}}};i.isMsie()&&i.mixin(s.input,{backgroundImage:"url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)"}),i.isMsie()&&i.isMsie()<=7&&i.mixin(s.input,{marginTop:"-1px"}),t.exports=s},9050:(t,e,n)=>{"use strict";var i="aaDataset",s="aaValue",r="aaDatum",o=n(2856),a=n(4910),u=n(3561),c=n(1228),l=n(3109);function h(t){var e;(t=t||{}).templates=t.templates||{},t.source||o.error("missing source"),t.name&&(e=t.name,!/^[_a-zA-Z0-9-]+$/.test(e))&&o.error("invalid dataset name: "+t.name),this.query=null,this._isEmpty=!0,this.highlight=!!t.highlight,this.name=void 0===t.name||null===t.name?o.getUniqueId():t.name,this.source=t.source,this.displayFn=function(t){return t=t||"value",o.isFunction(t)?t:e;function e(e){return e[t]}}(t.display||t.displayKey),this.debounce=t.debounce,this.cache=!1!==t.cache,this.templates=function(t,e){return{empty:t.empty&&o.templatify(t.empty),header:t.header&&o.templatify(t.header),footer:t.footer&&o.templatify(t.footer),suggestion:t.suggestion||n};function n(t){return"<p>"+e(t)+"</p>"}}(t.templates,this.displayFn),this.css=o.mixin({},c,t.appendTo?c.appendTo:{}),this.cssClasses=t.cssClasses=o.mixin({},c.defaultClasses,t.cssClasses||{}),this.cssClasses.prefix=t.cssClasses.formattedPrefix||o.formatPrefix(this.cssClasses.prefix,this.cssClasses.noPrefix);var n=o.className(this.cssClasses.prefix,this.cssClasses.dataset);this.$el=t.$menu&&t.$menu.find(n+"-"+this.name).length>0?a.element(t.$menu.find(n+"-"+this.name)[0]):a.element(u.dataset.replace("%CLASS%",this.name).replace("%PREFIX%",this.cssClasses.prefix).replace("%DATASET%",this.cssClasses.dataset)),this.$menu=t.$menu,this.clearCachedSuggestions()}h.extractDatasetName=function(t){return a.element(t).data(i)},h.extractValue=function(t){return a.element(t).data(s)},h.extractDatum=function(t){var e=a.element(t).data(r);return"string"==typeof e&&(e=JSON.parse(e)),e},o.mixin(h.prototype,l,{_render:function(t,e){if(this.$el){var n,c=this,l=[].slice.call(arguments,2);if(this.$el.empty(),n=e&&e.length,this._isEmpty=!n,!n&&this.templates.empty)this.$el.html(function(){var e=[].slice.call(arguments,0);return e=[{query:t,isEmpty:!0}].concat(e),c.templates.empty.apply(this,e)}.apply(this,l)).prepend(c.templates.header?h.apply(this,l):null).append(c.templates.footer?p.apply(this,l):null);else if(n)this.$el.html(function(){var t,n,l=[].slice.call(arguments,0),h=this,p=u.suggestions.replace("%PREFIX%",this.cssClasses.prefix).replace("%SUGGESTIONS%",this.cssClasses.suggestions);return t=a.element(p).css(this.css.suggestions),n=o.map(e,f),t.append.apply(t,n),t;function f(t){var e,n=u.suggestion.replace("%PREFIX%",h.cssClasses.prefix).replace("%SUGGESTION%",h.cssClasses.suggestion);return(e=a.element(n).attr({role:"option",id:["option",Math.floor(1e8*Math.random())].join("-")}).append(c.templates.suggestion.apply(this,[t].concat(l)))).data(i,c.name),e.data(s,c.displayFn(t)||void 0),e.data(r,JSON.stringify(t)),e.children().each((function(){a.element(this).css(h.css.suggestionChild)})),e}}.apply(this,l)).prepend(c.templates.header?h.apply(this,l):null).append(c.templates.footer?p.apply(this,l):null);else if(e&&!Array.isArray(e))throw new TypeError("suggestions must be an array");this.$menu&&this.$menu.addClass(this.cssClasses.prefix+(n?"with":"without")+"-"+this.name).removeClass(this.cssClasses.prefix+(n?"without":"with")+"-"+this.name),this.trigger("rendered",t)}function h(){var e=[].slice.call(arguments,0);return e=[{query:t,isEmpty:!n}].concat(e),c.templates.header.apply(this,e)}function p(){var e=[].slice.call(arguments,0);return e=[{query:t,isEmpty:!n}].concat(e),c.templates.footer.apply(this,e)}},getRoot:function(){return this.$el},update:function(t){function e(e){if(!this.canceled&&t===this.query){var n=[].slice.call(arguments,1);this.cacheSuggestions(t,e,n),this._render.apply(this,[t,e].concat(n))}}if(this.query=t,this.canceled=!1,this.shouldFetchFromCache(t))e.apply(this,[this.cachedSuggestions].concat(this.cachedRenderExtraArgs));else{var n=this,i=function(){n.canceled||n.source(t,e.bind(n))};if(this.debounce){clearTimeout(this.debounceTimeout),this.debounceTimeout=setTimeout((function(){n.debounceTimeout=null,i()}),this.debounce)}else i()}},cacheSuggestions:function(t,e,n){this.cachedQuery=t,this.cachedSuggestions=e,this.cachedRenderExtraArgs=n},shouldFetchFromCache:function(t){return this.cache&&this.cachedQuery===t&&this.cachedSuggestions&&this.cachedSuggestions.length},clearCachedSuggestions:function(){delete this.cachedQuery,delete this.cachedSuggestions,delete this.cachedRenderExtraArgs},cancel:function(){this.canceled=!0},clear:function(){this.$el&&(this.cancel(),this.$el.empty(),this.trigger("rendered",""))},isEmpty:function(){return this._isEmpty},destroy:function(){this.clearCachedSuggestions(),this.$el=null}}),t.exports=h},3354:(t,e,n)=>{"use strict";var i=n(2856),s=n(4910),r=n(3109),o=n(9050),a=n(1228);function u(t){var e,n,r,o=this;(t=t||{}).menu||i.error("menu is required"),i.isArray(t.datasets)||i.isObject(t.datasets)||i.error("1 or more datasets required"),t.datasets||i.error("datasets is required"),this.isOpen=!1,this.isEmpty=!0,this.minLength=t.minLength||0,this.templates={},this.appendTo=t.appendTo||!1,this.css=i.mixin({},a,t.appendTo?a.appendTo:{}),this.cssClasses=t.cssClasses=i.mixin({},a.defaultClasses,t.cssClasses||{}),this.cssClasses.prefix=t.cssClasses.formattedPrefix||i.formatPrefix(this.cssClasses.prefix,this.cssClasses.noPrefix),e=i.bind(this._onSuggestionClick,this),n=i.bind(this._onSuggestionMouseEnter,this),r=i.bind(this._onSuggestionMouseLeave,this);var c=i.className(this.cssClasses.prefix,this.cssClasses.suggestion);this.$menu=s.element(t.menu).on("mouseenter.aa",c,n).on("mouseleave.aa",c,r).on("click.aa",c,e),this.$container=t.appendTo?t.wrapper:this.$menu,t.templates&&t.templates.header&&(this.templates.header=i.templatify(t.templates.header),this.$menu.prepend(this.templates.header())),t.templates&&t.templates.empty&&(this.templates.empty=i.templatify(t.templates.empty),this.$empty=s.element('<div class="'+i.className(this.cssClasses.prefix,this.cssClasses.empty,!0)+'"></div>'),this.$menu.append(this.$empty),this.$empty.hide()),this.datasets=i.map(t.datasets,(function(e){return function(t,e,n){return new u.Dataset(i.mixin({$menu:t,cssClasses:n},e))}(o.$menu,e,t.cssClasses)})),i.each(this.datasets,(function(t){var e=t.getRoot();e&&0===e.parent().length&&o.$menu.append(e),t.onSync("rendered",o._onRendered,o)})),t.templates&&t.templates.footer&&(this.templates.footer=i.templatify(t.templates.footer),this.$menu.append(this.templates.footer()));var l=this;s.element(window).resize((function(){l._redraw()}))}i.mixin(u.prototype,r,{_onSuggestionClick:function(t){this.trigger("suggestionClicked",s.element(t.currentTarget))},_onSuggestionMouseEnter:function(t){var e=s.element(t.currentTarget);if(!e.hasClass(i.className(this.cssClasses.prefix,this.cssClasses.cursor,!0))){this._removeCursor();var n=this;setTimeout((function(){n._setCursor(e,!1)}),0)}},_onSuggestionMouseLeave:function(t){if(t.relatedTarget&&s.element(t.relatedTarget).closest("."+i.className(this.cssClasses.prefix,this.cssClasses.cursor,!0)).length>0)return;this._removeCursor(),this.trigger("cursorRemoved")},_onRendered:function(t,e){if(this.isEmpty=i.every(this.datasets,(function(t){return t.isEmpty()})),this.isEmpty)if(e.length>=this.minLength&&this.trigger("empty"),this.$empty)if(e.length<this.minLength)this._hide();else{var n=this.templates.empty({query:this.datasets[0]&&this.datasets[0].query});this.$empty.html(n),this.$empty.show(),this._show()}else i.any(this.datasets,(function(t){return t.templates&&t.templates.empty}))?e.length<this.minLength?this._hide():this._show():this._hide();else this.isOpen&&(this.$empty&&(this.$empty.empty(),this.$empty.hide()),e.length>=this.minLength?this._show():this._hide());this.trigger("datasetRendered")},_hide:function(){this.$container.hide()},_show:function(){this.$container.css("display","block"),this._redraw(),this.trigger("shown")},_redraw:function(){this.isOpen&&this.appendTo&&this.trigger("redrawn")},_getSuggestions:function(){return this.$menu.find(i.className(this.cssClasses.prefix,this.cssClasses.suggestion))},_getCursor:function(){return this.$menu.find(i.className(this.cssClasses.prefix,this.cssClasses.cursor)).first()},_setCursor:function(t,e){t.first().addClass(i.className(this.cssClasses.prefix,this.cssClasses.cursor,!0)).attr("aria-selected","true"),this.trigger("cursorMoved",e)},_removeCursor:function(){this._getCursor().removeClass(i.className(this.cssClasses.prefix,this.cssClasses.cursor,!0)).removeAttr("aria-selected")},_moveCursor:function(t){var e,n,i,s;this.isOpen&&(n=this._getCursor(),e=this._getSuggestions(),this._removeCursor(),-1!==(i=((i=e.index(n)+t)+1)%(e.length+1)-1)?(i<-1&&(i=e.length-1),this._setCursor(s=e.eq(i),!0),this._ensureVisible(s)):this.trigger("cursorRemoved"))},_ensureVisible:function(t){var e,n,i,s;n=(e=t.position().top)+t.height()+parseInt(t.css("margin-top"),10)+parseInt(t.css("margin-bottom"),10),i=this.$menu.scrollTop(),s=this.$menu.height()+parseInt(this.$menu.css("padding-top"),10)+parseInt(this.$menu.css("padding-bottom"),10),e<0?this.$menu.scrollTop(i+e):s<n&&this.$menu.scrollTop(i+(n-s))},close:function(){this.isOpen&&(this.isOpen=!1,this._removeCursor(),this._hide(),this.trigger("closed"))},open:function(){this.isOpen||(this.isOpen=!0,this.isEmpty||this._show(),this.trigger("opened"))},setLanguageDirection:function(t){this.$menu.css("ltr"===t?this.css.ltr:this.css.rtl)},moveCursorUp:function(){this._moveCursor(-1)},moveCursorDown:function(){this._moveCursor(1)},getDatumForSuggestion:function(t){var e=null;return t.length&&(e={raw:o.extractDatum(t),value:o.extractValue(t),datasetName:o.extractDatasetName(t)}),e},getCurrentCursor:function(){return this._getCursor().first()},getDatumForCursor:function(){return this.getDatumForSuggestion(this._getCursor().first())},getDatumForTopSuggestion:function(){return this.getDatumForSuggestion(this._getSuggestions().first())},cursorTopSuggestion:function(){this._setCursor(this._getSuggestions().first(),!1)},update:function(t){i.each(this.datasets,(function(e){e.update(t)}))},empty:function(){i.each(this.datasets,(function(t){t.clear()})),this.isEmpty=!0},isVisible:function(){return this.isOpen&&!this.isEmpty},destroy:function(){this.$menu.off(".aa"),this.$menu=null,i.each(this.datasets,(function(t){t.destroy()}))}}),u.Dataset=o,t.exports=u},50:(t,e,n)=>{"use strict";var i=n(2856),s=n(4910);function r(t){t&&t.el||i.error("EventBus initialized without el"),this.$el=s.element(t.el)}i.mixin(r.prototype,{trigger:function(t,e,n,s){var r=i.Event("autocomplete:"+t);return this.$el.trigger(r,[e,n,s]),r}}),t.exports=r},3109:(t,e,n)=>{"use strict";var i=n(624),s=/\s+/;function r(t,e,n,i){var r;if(!n)return this;for(e=e.split(s),n=i?function(t,e){return t.bind?t.bind(e):function(){t.apply(e,[].slice.call(arguments,0))}}(n,i):n,this._callbacks=this._callbacks||{};r=e.shift();)this._callbacks[r]=this._callbacks[r]||{sync:[],async:[]},this._callbacks[r][t].push(n);return this}function o(t,e,n){return function(){for(var i,s=0,r=t.length;!i&&s<r;s+=1)i=!1===t[s].apply(e,n);return!i}}t.exports={onSync:function(t,e,n){return r.call(this,"sync",t,e,n)},onAsync:function(t,e,n){return r.call(this,"async",t,e,n)},off:function(t){var e;if(!this._callbacks)return this;t=t.split(s);for(;e=t.shift();)delete this._callbacks[e];return this},trigger:function(t){var e,n,r,a,u;if(!this._callbacks)return this;t=t.split(s),r=[].slice.call(arguments,1);for(;(e=t.shift())&&(n=this._callbacks[e]);)a=o(n.sync,this,[e].concat(r)),u=o(n.async,this,[e].concat(r)),a()&&i(u);return this}}},3561:t=>{"use strict";t.exports={wrapper:'<span class="%ROOT%"></span>',dropdown:'<span class="%PREFIX%%DROPDOWN_MENU%"></span>',dataset:'<div class="%PREFIX%%DATASET%-%CLASS%"></div>',suggestions:'<span class="%PREFIX%%SUGGESTIONS%"></span>',suggestion:'<div class="%PREFIX%%SUGGESTION%"></div>'}},2534:(t,e,n)=>{"use strict";var i;i={9:"tab",27:"esc",37:"left",39:"right",13:"enter",38:"up",40:"down"};var s=n(2856),r=n(4910),o=n(3109);function a(t){var e,n,o,a,u,c=this;(t=t||{}).input||s.error("input is missing"),e=s.bind(this._onBlur,this),n=s.bind(this._onFocus,this),o=s.bind(this._onKeydown,this),a=s.bind(this._onInput,this),this.$hint=r.element(t.hint),this.$input=r.element(t.input).on("blur.aa",e).on("focus.aa",n).on("keydown.aa",o),0===this.$hint.length&&(this.setHint=this.getHint=this.clearHint=this.clearHintIfInvalid=s.noop),s.isMsie()?this.$input.on("keydown.aa keypress.aa cut.aa paste.aa",(function(t){i[t.which||t.keyCode]||s.defer(s.bind(c._onInput,c,t))})):this.$input.on("input.aa",a),this.query=this.$input.val(),this.$overflowHelper=(u=this.$input,r.element('<pre aria-hidden="true"></pre>').css({position:"absolute",visibility:"hidden",whiteSpace:"pre",fontFamily:u.css("font-family"),fontSize:u.css("font-size"),fontStyle:u.css("font-style"),fontVariant:u.css("font-variant"),fontWeight:u.css("font-weight"),wordSpacing:u.css("word-spacing"),letterSpacing:u.css("letter-spacing"),textIndent:u.css("text-indent"),textRendering:u.css("text-rendering"),textTransform:u.css("text-transform")}).insertAfter(u))}function u(t){return t.altKey||t.ctrlKey||t.metaKey||t.shiftKey}a.normalizeQuery=function(t){return(t||"").replace(/^\s*/g,"").replace(/\s{2,}/g," ")},s.mixin(a.prototype,o,{_onBlur:function(){this.resetInputValue(),this.$input.removeAttr("aria-activedescendant"),this.trigger("blurred")},_onFocus:function(){this.trigger("focused")},_onKeydown:function(t){var e=i[t.which||t.keyCode];this._managePreventDefault(e,t),e&&this._shouldTrigger(e,t)&&this.trigger(e+"Keyed",t)},_onInput:function(){this._checkInputValue()},_managePreventDefault:function(t,e){var n,i,s;switch(t){case"tab":i=this.getHint(),s=this.getInputValue(),n=i&&i!==s&&!u(e);break;case"up":case"down":n=!u(e);break;default:n=!1}n&&e.preventDefault()},_shouldTrigger:function(t,e){var n;if("tab"===t)n=!u(e);else n=!0;return n},_checkInputValue:function(){var t,e,n,i,s;t=this.getInputValue(),i=t,s=this.query,n=!(!(e=a.normalizeQuery(i)===a.normalizeQuery(s))||!this.query)&&this.query.length!==t.length,this.query=t,e?n&&this.trigger("whitespaceChanged",this.query):this.trigger("queryChanged",this.query)},focus:function(){this.$input.focus()},blur:function(){this.$input.blur()},getQuery:function(){return this.query},setQuery:function(t){this.query=t},getInputValue:function(){return this.$input.val()},setInputValue:function(t,e){void 0===t&&(t=this.query),this.$input.val(t),e?this.clearHint():this._checkInputValue()},expand:function(){this.$input.attr("aria-expanded","true")},collapse:function(){this.$input.attr("aria-expanded","false")},setActiveDescendant:function(t){this.$input.attr("aria-activedescendant",t)},removeActiveDescendant:function(){this.$input.removeAttr("aria-activedescendant")},resetInputValue:function(){this.setInputValue(this.query,!0)},getHint:function(){return this.$hint.val()},setHint:function(t){this.$hint.val(t)},clearHint:function(){this.setHint("")},clearHintIfInvalid:function(){var t,e,n;n=(t=this.getInputValue())!==(e=this.getHint())&&0===e.indexOf(t),""!==t&&n&&!this.hasOverflow()||this.clearHint()},getLanguageDirection:function(){return(this.$input.css("direction")||"ltr").toLowerCase()},hasOverflow:function(){var t=this.$input.width()-2;return this.$overflowHelper.text(this.getInputValue()),this.$overflowHelper.width()>=t},isCursorAtEnd:function(){var t,e,n;return t=this.$input.val().length,e=this.$input[0].selectionStart,s.isNumber(e)?e===t:!document.selection||((n=document.selection.createRange()).moveStart("character",-t),t===n.text.length)},destroy:function(){this.$hint.off(".aa"),this.$input.off(".aa"),this.$hint=this.$input=this.$overflowHelper=null}}),t.exports=a},6549:(t,e,n)=>{"use strict";var i="aaAttrs",s=n(2856),r=n(4910),o=n(50),a=n(2534),u=n(3354),c=n(3561),l=n(1228);function h(t){var e,n;if((t=t||{}).input||s.error("missing input"),this.isActivated=!1,this.debug=!!t.debug,this.autoselect=!!t.autoselect,this.autoselectOnBlur=!!t.autoselectOnBlur,this.openOnFocus=!!t.openOnFocus,this.minLength=s.isNumber(t.minLength)?t.minLength:1,this.autoWidth=void 0===t.autoWidth||!!t.autoWidth,this.clearOnSelected=!!t.clearOnSelected,this.tabAutocomplete=void 0===t.tabAutocomplete||!!t.tabAutocomplete,t.hint=!!t.hint,t.hint&&t.appendTo)throw new Error("[autocomplete.js] hint and appendTo options can't be used at the same time");this.css=t.css=s.mixin({},l,t.appendTo?l.appendTo:{}),this.cssClasses=t.cssClasses=s.mixin({},l.defaultClasses,t.cssClasses||{}),this.cssClasses.prefix=t.cssClasses.formattedPrefix=s.formatPrefix(this.cssClasses.prefix,this.cssClasses.noPrefix),this.listboxId=t.listboxId=[this.cssClasses.root,"listbox",s.getUniqueId()].join("-");var a=function(t){var e,n,o,a;e=r.element(t.input),n=r.element(c.wrapper.replace("%ROOT%",t.cssClasses.root)).css(t.css.wrapper),t.appendTo||"block"!==e.css("display")||"table"!==e.parent().css("display")||n.css("display","table-cell");var u=c.dropdown.replace("%PREFIX%",t.cssClasses.prefix).replace("%DROPDOWN_MENU%",t.cssClasses.dropdownMenu);o=r.element(u).css(t.css.dropdown).attr({role:"listbox",id:t.listboxId}),t.templates&&t.templates.dropdownMenu&&o.html(s.templatify(t.templates.dropdownMenu)());a=e.clone().css(t.css.hint).css(function(t){return{backgroundAttachment:t.css("background-attachment"),backgroundClip:t.css("background-clip"),backgroundColor:t.css("background-color"),backgroundImage:t.css("background-image"),backgroundOrigin:t.css("background-origin"),backgroundPosition:t.css("background-position"),backgroundRepeat:t.css("background-repeat"),backgroundSize:t.css("background-size")}}(e)),a.val("").addClass(s.className(t.cssClasses.prefix,t.cssClasses.hint,!0)).removeAttr("id name placeholder required").prop("readonly",!0).attr({"aria-hidden":"true",autocomplete:"off",spellcheck:"false",tabindex:-1}),a.removeData&&a.removeData();e.data(i,{"aria-autocomplete":e.attr("aria-autocomplete"),"aria-expanded":e.attr("aria-expanded"),"aria-owns":e.attr("aria-owns"),autocomplete:e.attr("autocomplete"),dir:e.attr("dir"),role:e.attr("role"),spellcheck:e.attr("spellcheck"),style:e.attr("style"),type:e.attr("type")}),e.addClass(s.className(t.cssClasses.prefix,t.cssClasses.input,!0)).attr({autocomplete:"off",spellcheck:!1,role:"combobox","aria-autocomplete":t.datasets&&t.datasets[0]&&t.datasets[0].displayKey?"both":"list","aria-expanded":"false","aria-label":t.ariaLabel,"aria-owns":t.listboxId}).css(t.hint?t.css.input:t.css.inputWithNoHint);try{e.attr("dir")||e.attr("dir","auto")}catch(l){}return n=t.appendTo?n.appendTo(r.element(t.appendTo).eq(0)).eq(0):e.wrap(n).parent(),n.prepend(t.hint?a:null).append(o),{wrapper:n,input:e,hint:a,menu:o}}(t);this.$node=a.wrapper;var u=this.$input=a.input;e=a.menu,n=a.hint,t.dropdownMenuContainer&&r.element(t.dropdownMenuContainer).css("position","relative").append(e.css("top","0")),u.on("blur.aa",(function(t){var n=document.activeElement;s.isMsie()&&(e[0]===n||e[0].contains(n))&&(t.preventDefault(),t.stopImmediatePropagation(),s.defer((function(){u.focus()})))})),e.on("mousedown.aa",(function(t){t.preventDefault()})),this.eventBus=t.eventBus||new o({el:u}),this.dropdown=new h.Dropdown({appendTo:t.appendTo,wrapper:this.$node,menu:e,datasets:t.datasets,templates:t.templates,cssClasses:t.cssClasses,minLength:this.minLength}).onSync("suggestionClicked",this._onSuggestionClicked,this).onSync("cursorMoved",this._onCursorMoved,this).onSync("cursorRemoved",this._onCursorRemoved,this).onSync("opened",this._onOpened,this).onSync("closed",this._onClosed,this).onSync("shown",this._onShown,this).onSync("empty",this._onEmpty,this).onSync("redrawn",this._onRedrawn,this).onAsync("datasetRendered",this._onDatasetRendered,this),this.input=new h.Input({input:u,hint:n}).onSync("focused",this._onFocused,this).onSync("blurred",this._onBlurred,this).onSync("enterKeyed",this._onEnterKeyed,this).onSync("tabKeyed",this._onTabKeyed,this).onSync("escKeyed",this._onEscKeyed,this).onSync("upKeyed",this._onUpKeyed,this).onSync("downKeyed",this._onDownKeyed,this).onSync("leftKeyed",this._onLeftKeyed,this).onSync("rightKeyed",this._onRightKeyed,this).onSync("queryChanged",this._onQueryChanged,this).onSync("whitespaceChanged",this._onWhitespaceChanged,this),this._bindKeyboardShortcuts(t),this._setLanguageDirection()}s.mixin(h.prototype,{_bindKeyboardShortcuts:function(t){if(t.keyboardShortcuts){var e=this.$input,n=[];s.each(t.keyboardShortcuts,(function(t){"string"==typeof t&&(t=t.toUpperCase().charCodeAt(0)),n.push(t)})),r.element(document).keydown((function(t){var i=t.target||t.srcElement,s=i.tagName;if(!i.isContentEditable&&"INPUT"!==s&&"SELECT"!==s&&"TEXTAREA"!==s){var r=t.which||t.keyCode;-1!==n.indexOf(r)&&(e.focus(),t.stopPropagation(),t.preventDefault())}}))}},_onSuggestionClicked:function(t,e){var n;(n=this.dropdown.getDatumForSuggestion(e))&&this._select(n,{selectionMethod:"click"})},_onCursorMoved:function(t,e){var n=this.dropdown.getDatumForCursor(),i=this.dropdown.getCurrentCursor().attr("id");this.input.setActiveDescendant(i),n&&(e&&this.input.setInputValue(n.value,!0),this.eventBus.trigger("cursorchanged",n.raw,n.datasetName))},_onCursorRemoved:function(){this.input.resetInputValue(),this._updateHint(),this.eventBus.trigger("cursorremoved")},_onDatasetRendered:function(){this._updateHint(),this.eventBus.trigger("updated")},_onOpened:function(){this._updateHint(),this.input.expand(),this.eventBus.trigger("opened")},_onEmpty:function(){this.eventBus.trigger("empty")},_onRedrawn:function(){this.$node.css("top","0px"),this.$node.css("left","0px");var t=this.$input[0].getBoundingClientRect();this.autoWidth&&this.$node.css("width",t.width+"px");var e=this.$node[0].getBoundingClientRect(),n=t.bottom-e.top;this.$node.css("top",n+"px");var i=t.left-e.left;this.$node.css("left",i+"px"),this.eventBus.trigger("redrawn")},_onShown:function(){this.eventBus.trigger("shown"),this.autoselect&&this.dropdown.cursorTopSuggestion()},_onClosed:function(){this.input.clearHint(),this.input.removeActiveDescendant(),this.input.collapse(),this.eventBus.trigger("closed")},_onFocused:function(){if(this.isActivated=!0,this.openOnFocus){var t=this.input.getQuery();t.length>=this.minLength?this.dropdown.update(t):this.dropdown.empty(),this.dropdown.open()}},_onBlurred:function(){var t,e;t=this.dropdown.getDatumForCursor(),e=this.dropdown.getDatumForTopSuggestion();var n={selectionMethod:"blur"};this.debug||(this.autoselectOnBlur&&t?this._select(t,n):this.autoselectOnBlur&&e?this._select(e,n):(this.isActivated=!1,this.dropdown.empty(),this.dropdown.close()))},_onEnterKeyed:function(t,e){var n,i;n=this.dropdown.getDatumForCursor(),i=this.dropdown.getDatumForTopSuggestion();var s={selectionMethod:"enterKey"};n?(this._select(n,s),e.preventDefault()):this.autoselect&&i&&(this._select(i,s),e.preventDefault())},_onTabKeyed:function(t,e){if(this.tabAutocomplete){var n;(n=this.dropdown.getDatumForCursor())?(this._select(n,{selectionMethod:"tabKey"}),e.preventDefault()):this._autocomplete(!0)}else this.dropdown.close()},_onEscKeyed:function(){this.dropdown.close(),this.input.resetInputValue()},_onUpKeyed:function(){var t=this.input.getQuery();this.dropdown.isEmpty&&t.length>=this.minLength?this.dropdown.update(t):this.dropdown.moveCursorUp(),this.dropdown.open()},_onDownKeyed:function(){var t=this.input.getQuery();this.dropdown.isEmpty&&t.length>=this.minLength?this.dropdown.update(t):this.dropdown.moveCursorDown(),this.dropdown.open()},_onLeftKeyed:function(){"rtl"===this.dir&&this._autocomplete()},_onRightKeyed:function(){"ltr"===this.dir&&this._autocomplete()},_onQueryChanged:function(t,e){this.input.clearHintIfInvalid(),e.length>=this.minLength?this.dropdown.update(e):this.dropdown.empty(),this.dropdown.open(),this._setLanguageDirection()},_onWhitespaceChanged:function(){this._updateHint(),this.dropdown.open()},_setLanguageDirection:function(){var t=this.input.getLanguageDirection();this.dir!==t&&(this.dir=t,this.$node.css("direction",t),this.dropdown.setLanguageDirection(t))},_updateHint:function(){var t,e,n,i,r;(t=this.dropdown.getDatumForTopSuggestion())&&this.dropdown.isVisible()&&!this.input.hasOverflow()?(e=this.input.getInputValue(),n=a.normalizeQuery(e),i=s.escapeRegExChars(n),(r=new RegExp("^(?:"+i+")(.+$)","i").exec(t.value))?this.input.setHint(e+r[1]):this.input.clearHint()):this.input.clearHint()},_autocomplete:function(t){var e,n,i,s;e=this.input.getHint(),n=this.input.getQuery(),i=t||this.input.isCursorAtEnd(),e&&n!==e&&i&&((s=this.dropdown.getDatumForTopSuggestion())&&this.input.setInputValue(s.value),this.eventBus.trigger("autocompleted",s.raw,s.datasetName))},_select:function(t,e){void 0!==t.value&&this.input.setQuery(t.value),this.clearOnSelected?this.setVal(""):this.input.setInputValue(t.value,!0),this._setLanguageDirection(),!1===this.eventBus.trigger("selected",t.raw,t.datasetName,e).isDefaultPrevented()&&(this.dropdown.close(),s.defer(s.bind(this.dropdown.empty,this.dropdown)))},open:function(){if(!this.isActivated){var t=this.input.getInputValue();t.length>=this.minLength?this.dropdown.update(t):this.dropdown.empty()}this.dropdown.open()},close:function(){this.dropdown.close()},setVal:function(t){t=s.toStr(t),this.isActivated?this.input.setInputValue(t):(this.input.setQuery(t),this.input.setInputValue(t,!0)),this._setLanguageDirection()},getVal:function(){return this.input.getQuery()},destroy:function(){this.input.destroy(),this.dropdown.destroy(),function(t,e){var n=t.find(s.className(e.prefix,e.input));s.each(n.data(i),(function(t,e){void 0===t?n.removeAttr(e):n.attr(e,t)})),n.detach().removeClass(s.className(e.prefix,e.input,!0)).insertAfter(t),n.removeData&&n.removeData(i);t.remove()}(this.$node,this.cssClasses),this.$node=null},getWrapper:function(){return this.dropdown.$container[0]}}),h.Dropdown=u,h.Input=a,h.sources=n(8840),t.exports=h},4910:t=>{"use strict";t.exports={element:null}},6177:t=>{"use strict";t.exports=function(t){var e=t.match(/Algolia for JavaScript \((\d+\.)(\d+\.)(\d+)\)/)||t.match(/Algolia for vanilla JavaScript (\d+\.)(\d+\.)(\d+)/);if(e)return[e[1],e[2],e[3]]}},2856:(t,e,n)=>{"use strict";var i,s=n(8820),r=n(4910);function o(t){return t.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}t.exports={isArray:null,isFunction:null,isObject:null,bind:null,each:null,map:null,mixin:null,isMsie:function(t){if(void 0===t&&(t=navigator.userAgent),/(msie|trident)/i.test(t)){var e=t.match(/(msie |rv:)(\d+(.\d+)?)/i);if(e)return e[2]}return!1},escapeRegExChars:function(t){return t.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")},isNumber:function(t){return"number"==typeof t},toStr:function(t){return null==t?"":t+""},cloneDeep:function(t){var e=this.mixin({},t),n=this;return this.each(e,(function(t,i){t&&(n.isArray(t)?e[i]=[].concat(t):n.isObject(t)&&(e[i]=n.cloneDeep(t)))})),e},error:function(t){throw new Error(t)},every:function(t,e){var n=!0;return t?(this.each(t,(function(i,s){n&&(n=e.call(null,i,s,t)&&n)})),!!n):n},any:function(t,e){var n=!1;return t?(this.each(t,(function(i,s){if(e.call(null,i,s,t))return n=!0,!1})),n):n},getUniqueId:(i=0,function(){return i++}),templatify:function(t){if(this.isFunction(t))return t;var e=r.element(t);return"SCRIPT"===e.prop("tagName")?function(){return e.text()}:function(){return String(t)}},defer:function(t){setTimeout(t,0)},noop:function(){},formatPrefix:function(t,e){return e?"":t+"-"},className:function(t,e,n){return n?t+e:"."+s(t+e,{isIdentifier:!0})},escapeHighlightedString:function(t,e,n){e=e||"<em>";var i=document.createElement("div");i.appendChild(document.createTextNode(e)),n=n||"</em>";var s=document.createElement("div");s.appendChild(document.createTextNode(n));var r=document.createElement("div");return r.appendChild(document.createTextNode(t)),r.innerHTML.replace(RegExp(o(i.innerHTML),"g"),e).replace(RegExp(o(s.innerHTML),"g"),n)}}},9983:(t,e,n)=>{"use strict";var i=n(2856),s=n(533),r=n(6177);var o,a,u=(o=[],a=window.Promise.resolve(),function(t,e){return function(n,s){(function(t,e){return window.Promise.resolve().then((function(){return o.length&&(a=t.search(o),o=[]),a})).then((function(t){if(t)return t.results[e]}))})(t.as,o.push({indexName:t.indexName,query:n,params:e})-1).then((function(t){t&&s(t.hits,t)})).catch((function(t){i.error(t.message)}))}});t.exports=function(t,e){var n=r(t.as._ua);if(n&&n[0]>=3&&n[1]>20){var i="autocomplete.js "+s;-1===t.as._ua.indexOf(i)&&(t.as._ua+="; "+i)}return u(t,e)}},8840:(t,e,n)=>{"use strict";t.exports={hits:n(9983),popularIn:n(4445)}},4445:(t,e,n)=>{"use strict";var i=n(2856),s=n(533),r=n(6177);t.exports=function(t,e,n,o){var a=r(t.as._ua);if(a&&a[0]>=3&&a[1]>20&&((e=e||{}).additionalUA="autocomplete.js "+s),!n.source)return i.error("Missing 'source' key");var u=i.isFunction(n.source)?n.source:function(t){return t[n.source]};if(!n.index)return i.error("Missing 'index' key");var c=n.index;return o=o||{},function(a,l){t.search(a,e,(function(t,a){if(t)i.error(t.message);else{if(a.hits.length>0){var h=a.hits[0],p=i.mixin({hitsPerPage:0},n);delete p.source,delete p.index;var f=r(c.as._ua);return f&&f[0]>=3&&f[1]>20&&(e.additionalUA="autocomplete.js "+s),void c.search(u(h),p,(function(t,e){if(t)i.error(t.message);else{var n=[];if(o.includeAll){var s=o.allTitle||"All departments";n.push(i.mixin({facet:{value:s,count:e.nbHits}},i.cloneDeep(h)))}i.each(e.facets,(function(t,e){i.each(t,(function(t,s){n.push(i.mixin({facet:{facet:e,value:s,count:t}},i.cloneDeep(h)))}))}));for(var r=1;r<a.hits.length;++r)n.push(a.hits[r]);l(n,a)}}))}l([])}}))}}},295:(t,e,n)=>{"use strict";var i=n(6990);n(4910).element=i;var s=n(2856);s.isArray=i.isArray,s.isFunction=i.isFunction,s.isObject=i.isPlainObject,s.bind=i.proxy,s.each=function(t,e){i.each(t,(function(t,n){return e(n,t)}))},s.map=i.map,s.mixin=i.extend,s.Event=i.Event;var r="aaAutocomplete",o=n(6549),a=n(50);function u(t,e,n,u){n=s.isArray(n)?n:[].slice.call(arguments,2);var c=i(t).each((function(t,s){var c=i(s),l=new a({el:c}),h=u||new o({input:c,eventBus:l,dropdownMenuContainer:e.dropdownMenuContainer,hint:void 0===e.hint||!!e.hint,minLength:e.minLength,autoselect:e.autoselect,autoselectOnBlur:e.autoselectOnBlur,tabAutocomplete:e.tabAutocomplete,openOnFocus:e.openOnFocus,templates:e.templates,debug:e.debug,clearOnSelected:e.clearOnSelected,cssClasses:e.cssClasses,datasets:n,keyboardShortcuts:e.keyboardShortcuts,appendTo:e.appendTo,autoWidth:e.autoWidth,ariaLabel:e.ariaLabel||s.getAttribute("aria-label")});c.data(r,h)}));return c.autocomplete={},s.each(["open","close","getVal","setVal","destroy","getWrapper"],(function(t){c.autocomplete[t]=function(){var e,n=arguments;return c.each((function(s,o){var a=i(o).data(r);e=a[t].apply(a,n)})),e}})),c}u.sources=o.sources,u.escapeHighlightedString=s.escapeHighlightedString;var c="autocomplete"in window,l=window.autocomplete;u.noConflict=function(){return c?window.autocomplete=l:delete window.autocomplete,u},t.exports=u},533:t=>{t.exports="0.38.1"},6990:t=>{var e;e=window,t.exports=function(t){var e,n,i=function(){var e,n,i,s,r,o,a=[],u=a.concat,c=a.filter,l=a.slice,h=t.document,p={},f={},d={"column-count":1,columns:1,"font-weight":1,"line-height":1,opacity:1,"z-index":1,zoom:1},g=/^\s*<(\w+|!)[^>]*>/,m=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,y=/^(?:body|html)$/i,w=/([A-Z])/g,b=["val","css","html","text","data","width","height","offset"],C=["after","prepend","before","append"],x=h.createElement("table"),_=h.createElement("tr"),S={tr:h.createElement("tbody"),tbody:x,thead:x,tfoot:x,td:_,th:_,"*":h.createElement("div")},E=/complete|loaded|interactive/,A=/^[\w-]*$/,$={},T=$.toString,O={},D=h.createElement("div"),N={tabindex:"tabIndex",readonly:"readOnly",for:"htmlFor",class:"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},k=Array.isArray||function(t){return t instanceof Array};function I(t){return null==t?String(t):$[T.call(t)]||"object"}function P(t){return"function"==I(t)}function L(t){return null!=t&&t==t.window}function M(t){return null!=t&&t.nodeType==t.DOCUMENT_NODE}function F(t){return"object"==I(t)}function R(t){return F(t)&&!L(t)&&Object.getPrototypeOf(t)==Object.prototype}function q(t){var e=!!t&&"length"in t&&t.length,n=i.type(t);return"function"!=n&&!L(t)&&("array"==n||0===e||"number"==typeof e&&e>0&&e-1 in t)}function V(t){return c.call(t,(function(t){return null!=t}))}function H(t){return t.length>0?i.fn.concat.apply([],t):t}function B(t){return t.replace(/::/g,"/").replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/_/g,"-").toLowerCase()}function K(t){return t in f?f[t]:f[t]=new RegExp("(^|\\s)"+t+"(\\s|$)")}function j(t,e){return"number"!=typeof e||d[B(t)]?e:e+"px"}function z(t){var e,n;return p[t]||(e=h.createElement(t),h.body.appendChild(e),n=getComputedStyle(e,"").getPropertyValue("display"),e.parentNode.removeChild(e),"none"==n&&(n="block"),p[t]=n),p[t]}function U(t){return"children"in t?l.call(t.children):i.map(t.childNodes,(function(t){if(1==t.nodeType)return t}))}function Q(t,e){var n,i=t?t.length:0;for(n=0;n<i;n++)this[n]=t[n];this.length=i,this.selector=e||""}function W(t,i,s){for(n in i)s&&(R(i[n])||k(i[n]))?(R(i[n])&&!R(t[n])&&(t[n]={}),k(i[n])&&!k(t[n])&&(t[n]=[]),W(t[n],i[n],s)):i[n]!==e&&(t[n]=i[n])}function Z(t,e){return null==e?i(t):i(t).filter(e)}function X(t,e,n,i){return P(e)?e.call(t,n,i):e}function G(t,e,n){null==n?t.removeAttribute(e):t.setAttribute(e,n)}function J(t,n){var i=t.className||"",s=i&&i.baseVal!==e;if(n===e)return s?i.baseVal:i;s?i.baseVal=n:t.className=n}function Y(t){try{return t?"true"==t||"false"!=t&&("null"==t?null:+t+""==t?+t:/^[\[\{]/.test(t)?i.parseJSON(t):t):t}catch(e){return t}}function tt(t,e){e(t);for(var n=0,i=t.childNodes.length;n<i;n++)tt(t.childNodes[n],e)}return O.matches=function(t,e){if(!e||!t||1!==t.nodeType)return!1;var n=t.matches||t.webkitMatchesSelector||t.mozMatchesSelector||t.oMatchesSelector||t.matchesSelector;if(n)return n.call(t,e);var i,s=t.parentNode,r=!s;return r&&(s=D).appendChild(t),i=~O.qsa(s,e).indexOf(t),r&&D.removeChild(t),i},r=function(t){return t.replace(/-+(.)?/g,(function(t,e){return e?e.toUpperCase():""}))},o=function(t){return c.call(t,(function(e,n){return t.indexOf(e)==n}))},O.fragment=function(t,n,s){var r,o,a;return m.test(t)&&(r=i(h.createElement(RegExp.$1))),r||(t.replace&&(t=t.replace(v,"<$1></$2>")),n===e&&(n=g.test(t)&&RegExp.$1),n in S||(n="*"),(a=S[n]).innerHTML=""+t,r=i.each(l.call(a.childNodes),(function(){a.removeChild(this)}))),R(s)&&(o=i(r),i.each(s,(function(t,e){b.indexOf(t)>-1?o[t](e):o.attr(t,e)}))),r},O.Z=function(t,e){return new Q(t,e)},O.isZ=function(t){return t instanceof O.Z},O.init=function(t,n){var s;if(!t)return O.Z();if("string"==typeof t)if("<"==(t=t.trim())[0]&&g.test(t))s=O.fragment(t,RegExp.$1,n),t=null;else{if(n!==e)return i(n).find(t);s=O.qsa(h,t)}else{if(P(t))return i(h).ready(t);if(O.isZ(t))return t;if(k(t))s=V(t);else if(F(t))s=[t],t=null;else if(g.test(t))s=O.fragment(t.trim(),RegExp.$1,n),t=null;else{if(n!==e)return i(n).find(t);s=O.qsa(h,t)}}return O.Z(s,t)},(i=function(t,e){return O.init(t,e)}).extend=function(t){var e,n=l.call(arguments,1);return"boolean"==typeof t&&(e=t,t=n.shift()),n.forEach((function(n){W(t,n,e)})),t},O.qsa=function(t,e){var n,i="#"==e[0],s=!i&&"."==e[0],r=i||s?e.slice(1):e,o=A.test(r);return t.getElementById&&o&&i?(n=t.getElementById(r))?[n]:[]:1!==t.nodeType&&9!==t.nodeType&&11!==t.nodeType?[]:l.call(o&&!i&&t.getElementsByClassName?s?t.getElementsByClassName(r):t.getElementsByTagName(e):t.querySelectorAll(e))},i.contains=h.documentElement.contains?function(t,e){return t!==e&&t.contains(e)}:function(t,e){for(;e&&(e=e.parentNode);)if(e===t)return!0;return!1},i.type=I,i.isFunction=P,i.isWindow=L,i.isArray=k,i.isPlainObject=R,i.isEmptyObject=function(t){var e;for(e in t)return!1;return!0},i.isNumeric=function(t){var e=Number(t),n=typeof t;return null!=t&&"boolean"!=n&&("string"!=n||t.length)&&!isNaN(e)&&isFinite(e)||!1},i.inArray=function(t,e,n){return a.indexOf.call(e,t,n)},i.camelCase=r,i.trim=function(t){return null==t?"":String.prototype.trim.call(t)},i.uuid=0,i.support={},i.expr={},i.noop=function(){},i.map=function(t,e){var n,i,s,r=[];if(q(t))for(i=0;i<t.length;i++)null!=(n=e(t[i],i))&&r.push(n);else for(s in t)null!=(n=e(t[s],s))&&r.push(n);return H(r)},i.each=function(t,e){var n,i;if(q(t)){for(n=0;n<t.length;n++)if(!1===e.call(t[n],n,t[n]))return t}else for(i in t)if(!1===e.call(t[i],i,t[i]))return t;return t},i.grep=function(t,e){return c.call(t,e)},t.JSON&&(i.parseJSON=JSON.parse),i.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),(function(t,e){$["[object "+e+"]"]=e.toLowerCase()})),i.fn={constructor:O.Z,length:0,forEach:a.forEach,reduce:a.reduce,push:a.push,sort:a.sort,splice:a.splice,indexOf:a.indexOf,concat:function(){var t,e,n=[];for(t=0;t<arguments.length;t++)e=arguments[t],n[t]=O.isZ(e)?e.toArray():e;return u.apply(O.isZ(this)?this.toArray():this,n)},map:function(t){return i(i.map(this,(function(e,n){return t.call(e,n,e)})))},slice:function(){return i(l.apply(this,arguments))},ready:function(t){return E.test(h.readyState)&&h.body?t(i):h.addEventListener("DOMContentLoaded",(function(){t(i)}),!1),this},get:function(t){return t===e?l.call(this):this[t>=0?t:t+this.length]},toArray:function(){return this.get()},size:function(){return this.length},remove:function(){return this.each((function(){null!=this.parentNode&&this.parentNode.removeChild(this)}))},each:function(t){return a.every.call(this,(function(e,n){return!1!==t.call(e,n,e)})),this},filter:function(t){return P(t)?this.not(this.not(t)):i(c.call(this,(function(e){return O.matches(e,t)})))},add:function(t,e){return i(o(this.concat(i(t,e))))},is:function(t){return this.length>0&&O.matches(this[0],t)},not:function(t){var n=[];if(P(t)&&t.call!==e)this.each((function(e){t.call(this,e)||n.push(this)}));else{var s="string"==typeof t?this.filter(t):q(t)&&P(t.item)?l.call(t):i(t);this.forEach((function(t){s.indexOf(t)<0&&n.push(t)}))}return i(n)},has:function(t){return this.filter((function(){return F(t)?i.contains(this,t):i(this).find(t).size()}))},eq:function(t){return-1===t?this.slice(t):this.slice(t,+t+1)},first:function(){var t=this[0];return t&&!F(t)?t:i(t)},last:function(){var t=this[this.length-1];return t&&!F(t)?t:i(t)},find:function(t){var e=this;return t?"object"==typeof t?i(t).filter((function(){var t=this;return a.some.call(e,(function(e){return i.contains(e,t)}))})):1==this.length?i(O.qsa(this[0],t)):this.map((function(){return O.qsa(this,t)})):i()},closest:function(t,e){var n=[],s="object"==typeof t&&i(t);return this.each((function(i,r){for(;r&&!(s?s.indexOf(r)>=0:O.matches(r,t));)r=r!==e&&!M(r)&&r.parentNode;r&&n.indexOf(r)<0&&n.push(r)})),i(n)},parents:function(t){for(var e=[],n=this;n.length>0;)n=i.map(n,(function(t){if((t=t.parentNode)&&!M(t)&&e.indexOf(t)<0)return e.push(t),t}));return Z(e,t)},parent:function(t){return Z(o(this.pluck("parentNode")),t)},children:function(t){return Z(this.map((function(){return U(this)})),t)},contents:function(){return this.map((function(){return this.contentDocument||l.call(this.childNodes)}))},siblings:function(t){return Z(this.map((function(t,e){return c.call(U(e.parentNode),(function(t){return t!==e}))})),t)},empty:function(){return this.each((function(){this.innerHTML=""}))},pluck:function(t){return i.map(this,(function(e){return e[t]}))},show:function(){return this.each((function(){"none"==this.style.display&&(this.style.display=""),"none"==getComputedStyle(this,"").getPropertyValue("display")&&(this.style.display=z(this.nodeName))}))},replaceWith:function(t){return this.before(t).remove()},wrap:function(t){var e=P(t);if(this[0]&&!e)var n=i(t).get(0),s=n.parentNode||this.length>1;return this.each((function(r){i(this).wrapAll(e?t.call(this,r):s?n.cloneNode(!0):n)}))},wrapAll:function(t){if(this[0]){var e;for(i(this[0]).before(t=i(t));(e=t.children()).length;)t=e.first();i(t).append(this)}return this},wrapInner:function(t){var e=P(t);return this.each((function(n){var s=i(this),r=s.contents(),o=e?t.call(this,n):t;r.length?r.wrapAll(o):s.append(o)}))},unwrap:function(){return this.parent().each((function(){i(this).replaceWith(i(this).children())})),this},clone:function(){return this.map((function(){return this.cloneNode(!0)}))},hide:function(){return this.css("display","none")},toggle:function(t){return this.each((function(){var n=i(this);(t===e?"none"==n.css("display"):t)?n.show():n.hide()}))},prev:function(t){return i(this.pluck("previousElementSibling")).filter(t||"*")},next:function(t){return i(this.pluck("nextElementSibling")).filter(t||"*")},html:function(t){return 0 in arguments?this.each((function(e){var n=this.innerHTML;i(this).empty().append(X(this,t,e,n))})):0 in this?this[0].innerHTML:null},text:function(t){return 0 in arguments?this.each((function(e){var n=X(this,t,e,this.textContent);this.textContent=null==n?"":""+n})):0 in this?this.pluck("textContent").join(""):null},attr:function(t,i){var s;return"string"!=typeof t||1 in arguments?this.each((function(e){if(1===this.nodeType)if(F(t))for(n in t)G(this,n,t[n]);else G(this,t,X(this,i,e,this.getAttribute(t)))})):0 in this&&1==this[0].nodeType&&null!=(s=this[0].getAttribute(t))?s:e},removeAttr:function(t){return this.each((function(){1===this.nodeType&&t.split(" ").forEach((function(t){G(this,t)}),this)}))},prop:function(t,e){return t=N[t]||t,1 in arguments?this.each((function(n){this[t]=X(this,e,n,this[t])})):this[0]&&this[0][t]},removeProp:function(t){return t=N[t]||t,this.each((function(){delete this[t]}))},data:function(t,n){var i="data-"+t.replace(w,"-$1").toLowerCase(),s=1 in arguments?this.attr(i,n):this.attr(i);return null!==s?Y(s):e},val:function(t){return 0 in arguments?(null==t&&(t=""),this.each((function(e){this.value=X(this,t,e,this.value)}))):this[0]&&(this[0].multiple?i(this[0]).find("option").filter((function(){return this.selected})).pluck("value"):this[0].value)},offset:function(e){if(e)return this.each((function(t){var n=i(this),s=X(this,e,t,n.offset()),r=n.offsetParent().offset(),o={top:s.top-r.top,left:s.left-r.left};"static"==n.css("position")&&(o.position="relative"),n.css(o)}));if(!this.length)return null;if(h.documentElement!==this[0]&&!i.contains(h.documentElement,this[0]))return{top:0,left:0};var n=this[0].getBoundingClientRect();return{left:n.left+t.pageXOffset,top:n.top+t.pageYOffset,width:Math.round(n.width),height:Math.round(n.height)}},css:function(t,e){if(arguments.length<2){var s=this[0];if("string"==typeof t){if(!s)return;return s.style[r(t)]||getComputedStyle(s,"").getPropertyValue(t)}if(k(t)){if(!s)return;var o={},a=getComputedStyle(s,"");return i.each(t,(function(t,e){o[e]=s.style[r(e)]||a.getPropertyValue(e)})),o}}var u="";if("string"==I(t))e||0===e?u=B(t)+":"+j(t,e):this.each((function(){this.style.removeProperty(B(t))}));else for(n in t)t[n]||0===t[n]?u+=B(n)+":"+j(n,t[n])+";":this.each((function(){this.style.removeProperty(B(n))}));return this.each((function(){this.style.cssText+=";"+u}))},index:function(t){return t?this.indexOf(i(t)[0]):this.parent().children().indexOf(this[0])},hasClass:function(t){return!!t&&a.some.call(this,(function(t){return this.test(J(t))}),K(t))},addClass:function(t){return t?this.each((function(e){if("className"in this){s=[];var n=J(this);X(this,t,e,n).split(/\s+/g).forEach((function(t){i(this).hasClass(t)||s.push(t)}),this),s.length&&J(this,n+(n?" ":"")+s.join(" "))}})):this},removeClass:function(t){return this.each((function(n){if("className"in this){if(t===e)return J(this,"");s=J(this),X(this,t,n,s).split(/\s+/g).forEach((function(t){s=s.replace(K(t)," ")})),J(this,s.trim())}}))},toggleClass:function(t,n){return t?this.each((function(s){var r=i(this);X(this,t,s,J(this)).split(/\s+/g).forEach((function(t){(n===e?!r.hasClass(t):n)?r.addClass(t):r.removeClass(t)}))})):this},scrollTop:function(t){if(this.length){var n="scrollTop"in this[0];return t===e?n?this[0].scrollTop:this[0].pageYOffset:this.each(n?function(){this.scrollTop=t}:function(){this.scrollTo(this.scrollX,t)})}},scrollLeft:function(t){if(this.length){var n="scrollLeft"in this[0];return t===e?n?this[0].scrollLeft:this[0].pageXOffset:this.each(n?function(){this.scrollLeft=t}:function(){this.scrollTo(t,this.scrollY)})}},position:function(){if(this.length){var t=this[0],e=this.offsetParent(),n=this.offset(),s=y.test(e[0].nodeName)?{top:0,left:0}:e.offset();return n.top-=parseFloat(i(t).css("margin-top"))||0,n.left-=parseFloat(i(t).css("margin-left"))||0,s.top+=parseFloat(i(e[0]).css("border-top-width"))||0,s.left+=parseFloat(i(e[0]).css("border-left-width"))||0,{top:n.top-s.top,left:n.left-s.left}}},offsetParent:function(){return this.map((function(){for(var t=this.offsetParent||h.body;t&&!y.test(t.nodeName)&&"static"==i(t).css("position");)t=t.offsetParent;return t}))}},i.fn.detach=i.fn.remove,["width","height"].forEach((function(t){var n=t.replace(/./,(function(t){return t[0].toUpperCase()}));i.fn[t]=function(s){var r,o=this[0];return s===e?L(o)?o["inner"+n]:M(o)?o.documentElement["scroll"+n]:(r=this.offset())&&r[t]:this.each((function(e){(o=i(this)).css(t,X(this,s,e,o[t]()))}))}})),C.forEach((function(n,s){var r=s%2;i.fn[n]=function(){var n,o,a=i.map(arguments,(function(t){var s=[];return"array"==(n=I(t))?(t.forEach((function(t){return t.nodeType!==e?s.push(t):i.zepto.isZ(t)?s=s.concat(t.get()):void(s=s.concat(O.fragment(t)))})),s):"object"==n||null==t?t:O.fragment(t)})),u=this.length>1;return a.length<1?this:this.each((function(e,n){o=r?n:n.parentNode,n=0==s?n.nextSibling:1==s?n.firstChild:2==s?n:null;var c=i.contains(h.documentElement,o);a.forEach((function(e){if(u)e=e.cloneNode(!0);else if(!o)return i(e).remove();o.insertBefore(e,n),c&&tt(e,(function(e){if(!(null==e.nodeName||"SCRIPT"!==e.nodeName.toUpperCase()||e.type&&"text/javascript"!==e.type||e.src)){var n=e.ownerDocument?e.ownerDocument.defaultView:t;n.eval.call(n,e.innerHTML)}}))}))}))},i.fn[r?n+"To":"insert"+(s?"Before":"After")]=function(t){return i(t)[n](this),this}})),O.Z.prototype=Q.prototype=i.fn,O.uniq=o,O.deserializeValue=Y,i.zepto=O,i}();return function(e){var n,i=1,s=Array.prototype.slice,r=e.isFunction,o=function(t){return"string"==typeof t},a={},u={},c="onfocusin"in t,l={focus:"focusin",blur:"focusout"},h={mouseenter:"mouseover",mouseleave:"mouseout"};function p(t){return t._zid||(t._zid=i++)}function f(t,e,n,i){if((e=d(e)).ns)var s=g(e.ns);return(a[p(t)]||[]).filter((function(t){return t&&(!e.e||t.e==e.e)&&(!e.ns||s.test(t.ns))&&(!n||p(t.fn)===p(n))&&(!i||t.sel==i)}))}function d(t){var e=(""+t).split(".");return{e:e[0],ns:e.slice(1).sort().join(" ")}}function g(t){return new RegExp("(?:^| )"+t.replace(" "," .* ?")+"(?: |$)")}function m(t,e){return t.del&&!c&&t.e in l||!!e}function v(t){return h[t]||c&&l[t]||t}function y(t,i,s,r,o,u,c){var l=p(t),f=a[l]||(a[l]=[]);i.split(/\s/).forEach((function(i){if("ready"==i)return e(document).ready(s);var a=d(i);a.fn=s,a.sel=o,a.e in h&&(s=function(t){var n=t.relatedTarget;if(!n||n!==this&&!e.contains(this,n))return a.fn.apply(this,arguments)}),a.del=u;var l=u||s;a.proxy=function(e){if(!(e=S(e)).isImmediatePropagationStopped()){try{var i=Object.getOwnPropertyDescriptor(e,"data");i&&!i.writable||(e.data=r)}catch(e){}var s=l.apply(t,e._args==n?[e]:[e].concat(e._args));return!1===s&&(e.preventDefault(),e.stopPropagation()),s}},a.i=f.length,f.push(a),"addEventListener"in t&&t.addEventListener(v(a.e),a.proxy,m(a,c))}))}function w(t,e,n,i,s){var r=p(t);(e||"").split(/\s/).forEach((function(e){f(t,e,n,i).forEach((function(e){delete a[r][e.i],"removeEventListener"in t&&t.removeEventListener(v(e.e),e.proxy,m(e,s))}))}))}u.click=u.mousedown=u.mouseup=u.mousemove="MouseEvents",e.event={add:y,remove:w},e.proxy=function(t,n){var i=2 in arguments&&s.call(arguments,2);if(r(t)){var a=function(){return t.apply(n,i?i.concat(s.call(arguments)):arguments)};return a._zid=p(t),a}if(o(n))return i?(i.unshift(t[n],t),e.proxy.apply(null,i)):e.proxy(t[n],t);throw new TypeError("expected function")},e.fn.bind=function(t,e,n){return this.on(t,e,n)},e.fn.unbind=function(t,e){return this.off(t,e)},e.fn.one=function(t,e,n,i){return this.on(t,e,n,i,1)};var b=function(){return!0},C=function(){return!1},x=/^([A-Z]|returnValue$|layer[XY]$|webkitMovement[XY]$)/,_={preventDefault:"isDefaultPrevented",stopImmediatePropagation:"isImmediatePropagationStopped",stopPropagation:"isPropagationStopped"};function S(t,i){if(i||!t.isDefaultPrevented){i||(i=t),e.each(_,(function(e,n){var s=i[e];t[e]=function(){return this[n]=b,s&&s.apply(i,arguments)},t[n]=C}));try{t.timeStamp||(t.timeStamp=Date.now())}catch(s){}(i.defaultPrevented!==n?i.defaultPrevented:"returnValue"in i?!1===i.returnValue:i.getPreventDefault&&i.getPreventDefault())&&(t.isDefaultPrevented=b)}return t}function E(t){var e,i={originalEvent:t};for(e in t)x.test(e)||t[e]===n||(i[e]=t[e]);return S(i,t)}e.fn.delegate=function(t,e,n){return this.on(e,t,n)},e.fn.undelegate=function(t,e,n){return this.off(e,t,n)},e.fn.live=function(t,n){return e(document.body).delegate(this.selector,t,n),this},e.fn.die=function(t,n){return e(document.body).undelegate(this.selector,t,n),this},e.fn.on=function(t,i,a,u,c){var l,h,p=this;return t&&!o(t)?(e.each(t,(function(t,e){p.on(t,i,a,e,c)})),p):(o(i)||r(u)||!1===u||(u=a,a=i,i=n),u!==n&&!1!==a||(u=a,a=n),!1===u&&(u=C),p.each((function(n,r){c&&(l=function(t){return w(r,t.type,u),u.apply(this,arguments)}),i&&(h=function(t){var n,o=e(t.target).closest(i,r).get(0);if(o&&o!==r)return n=e.extend(E(t),{currentTarget:o,liveFired:r}),(l||u).apply(o,[n].concat(s.call(arguments,1)))}),y(r,t,u,a,i,h||l)})))},e.fn.off=function(t,i,s){var a=this;return t&&!o(t)?(e.each(t,(function(t,e){a.off(t,i,e)})),a):(o(i)||r(s)||!1===s||(s=i,i=n),!1===s&&(s=C),a.each((function(){w(this,t,s,i)})))},e.fn.trigger=function(t,n){return(t=o(t)||e.isPlainObject(t)?e.Event(t):S(t))._args=n,this.each((function(){t.type in l&&"function"==typeof this[t.type]?this[t.type]():"dispatchEvent"in this?this.dispatchEvent(t):e(this).triggerHandler(t,n)}))},e.fn.triggerHandler=function(t,n){var i,s;return this.each((function(r,a){(i=E(o(t)?e.Event(t):t))._args=n,i.target=a,e.each(f(a,t.type||t),(function(t,e){if(s=e.proxy(i),i.isImmediatePropagationStopped())return!1}))})),s},"focusin focusout focus blur load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select keydown keypress keyup error".split(" ").forEach((function(t){e.fn[t]=function(e){return 0 in arguments?this.bind(t,e):this.trigger(t)}})),e.Event=function(t,e){o(t)||(t=(e=t).type);var n=document.createEvent(u[t]||"Events"),i=!0;if(e)for(var s in e)"bubbles"==s?i=!!e[s]:n[s]=e[s];return n.initEvent(t,i,!0),S(n)}}(i),n=[],i.fn.remove=function(){return this.each((function(){this.parentNode&&("IMG"===this.tagName&&(n.push(this),this.src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=",e&&clearTimeout(e),e=setTimeout((function(){n=[]}),6e4)),this.parentNode.removeChild(this))}))},function(t){var e={},n=t.fn.data,i=t.camelCase,s=t.expando="Zepto"+ +new Date,r=[];function o(r,o){var u=r[s],c=u&&e[u];if(void 0===o)return c||a(r);if(c){if(o in c)return c[o];var l=i(o);if(l in c)return c[l]}return n.call(t(r),o)}function a(n,r,o){var a=n[s]||(n[s]=++t.uuid),c=e[a]||(e[a]=u(n));return void 0!==r&&(c[i(r)]=o),c}function u(e){var n={};return t.each(e.attributes||r,(function(e,s){0==s.name.indexOf("data-")&&(n[i(s.name.replace("data-",""))]=t.zepto.deserializeValue(s.value))})),n}t.fn.data=function(e,n){return void 0===n?t.isPlainObject(e)?this.each((function(n,i){t.each(e,(function(t,e){a(i,t,e)}))})):0 in this?o(this[0],e):void 0:this.each((function(){a(this,e,n)}))},t.data=function(e,n,i){return t(e).data(n,i)},t.hasData=function(n){var i=n[s],r=i&&e[i];return!!r&&!t.isEmptyObject(r)},t.fn.removeData=function(n){return"string"==typeof n&&(n=n.split(/\s+/)),this.each((function(){var r=this[s],o=r&&e[r];o&&t.each(n||o,(function(t){delete o[n?i(this):t]}))}))},["remove","empty"].forEach((function(e){var n=t.fn[e];t.fn[e]=function(){var t=this.find("*");return"remove"===e&&(t=t.add(this)),t.removeData(),n.call(this)}}))}(i),i}(e)},8820:t=>{"use strict";var e={}.hasOwnProperty,n=/[ -,\.\/:-@\[-\^`\{-~]/,i=/[ -,\.\/:-@\[\]\^`\{-~]/,s=/(^|\\+)?(\\[A-F0-9]{1,6})\x20(?![a-fA-F0-9\x20])/g,r=function t(r,o){"single"!=(o=function(t,n){if(!t)return n;var i={};for(var s in n)i[s]=e.call(t,s)?t[s]:n[s];return i}(o,t.options)).quotes&&"double"!=o.quotes&&(o.quotes="single");for(var a="double"==o.quotes?'"':"'",u=o.isIdentifier,c=r.charAt(0),l="",h=0,p=r.length;h<p;){var f=r.charAt(h++),d=f.charCodeAt(),g=void 0;if(d<32||d>126){if(d>=55296&&d<=56319&&h<p){var m=r.charCodeAt(h++);56320==(64512&m)?d=((1023&d)<<10)+(1023&m)+65536:h--}g="\\"+d.toString(16).toUpperCase()+" "}else g=o.escapeEverything?n.test(f)?"\\"+f:"\\"+d.toString(16).toUpperCase()+" ":/[\t\n\f\r\x0B]/.test(f)?"\\"+d.toString(16).toUpperCase()+" ":"\\"==f||!u&&('"'==f&&a==f||"'"==f&&a==f)||u&&i.test(f)?"\\"+f:f;l+=g}return u&&(/^-[-\d]/.test(l)?l="\\-"+l.slice(1):/\d/.test(c)&&(l="\\3"+c+" "+l.slice(1))),l=l.replace(s,(function(t,e,n){return e&&e.length%2?t:(e||"")+n})),!u&&o.wrap?a+l+a:l};r.options={escapeEverything:!1,isIdentifier:!1,quotes:"single",wrap:!1},r.version="3.0.0",t.exports=r},624:(t,e,n)=>{"use strict";var i,s,r,o=[n(5525),n(4785),n(8291),n(2709),n(2506),n(9176)],a=-1,u=[],c=!1;function l(){i&&s&&(i=!1,s.length?u=s.concat(u):a=-1,u.length&&h())}function h(){if(!i){c=!1,i=!0;for(var t=u.length,e=setTimeout(l);t;){for(s=u,u=[];s&&++a<t;)s[a].run();a=-1,t=u.length}s=null,a=-1,i=!1,clearTimeout(e)}}for(var p=-1,f=o.length;++p<f;)if(o[p]&&o[p].test&&o[p].test()){r=o[p].install(h);break}function d(t,e){this.fun=t,this.array=e}d.prototype.run=function(){var t=this.fun,e=this.array;switch(e.length){case 0:return t();case 1:return t(e[0]);case 2:return t(e[0],e[1]);case 3:return t(e[0],e[1],e[2]);default:return t.apply(null,e)}},t.exports=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)e[n-1]=arguments[n];u.push(new d(t,e)),c||i||(c=!0,r())}},2709:(t,e,n)=>{"use strict";e.test=function(){return!n.g.setImmediate&&void 0!==n.g.MessageChannel},e.install=function(t){var e=new n.g.MessageChannel;return e.port1.onmessage=t,function(){e.port2.postMessage(0)}}},8291:(t,e,n)=>{"use strict";var i=n.g.MutationObserver||n.g.WebKitMutationObserver;e.test=function(){return i},e.install=function(t){var e=0,s=new i(t),r=n.g.document.createTextNode("");return s.observe(r,{characterData:!0}),function(){r.data=e=++e%2}}},4785:(t,e,n)=>{"use strict";e.test=function(){return"function"==typeof n.g.queueMicrotask},e.install=function(t){return function(){n.g.queueMicrotask(t)}}},2506:(t,e,n)=>{"use strict";e.test=function(){return"document"in n.g&&"onreadystatechange"in n.g.document.createElement("script")},e.install=function(t){return function(){var e=n.g.document.createElement("script");return e.onreadystatechange=function(){t(),e.onreadystatechange=null,e.parentNode.removeChild(e),e=null},n.g.document.documentElement.appendChild(e),t}}},9176:(t,e)=>{"use strict";e.test=function(){return!0},e.install=function(t){return function(){setTimeout(t,0)}}}}]); \ No newline at end of file diff --git a/assets/js/443.3d74dd3a.js.LICENSE.txt b/assets/js/443.3d74dd3a.js.LICENSE.txt new file mode 100644 index 00000000..4f7ccd8a --- /dev/null +++ b/assets/js/443.3d74dd3a.js.LICENSE.txt @@ -0,0 +1 @@ +/*! https://mths.be/cssesc v3.0.0 by @mathias */ diff --git a/assets/js/456dc1ab.0ca46ae8.js b/assets/js/456dc1ab.0ca46ae8.js new file mode 100644 index 00000000..0206b9f7 --- /dev/null +++ b/assets/js/456dc1ab.0ca46ae8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[533],{2098:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>o,contentTitle:()=>l,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>d});var a=n(5893),i=n(1151);const r={sidebar_position:2},l="Installation & Getting Started",s={id:"getting_started",title:"Installation & Getting Started",description:"Install",source:"@site/docs/getting_started.mdx",sourceDirName:".",slug:"/getting_started",permalink:"/cardano-multiplatform-lib/getting_started",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"Introduction",permalink:"/cardano-multiplatform-lib/"},next:{title:"Crate Architecture",permalink:"/cardano-multiplatform-lib/crate_architecture"}},o={},d=[{value:"Install",id:"install",level:2},{value:"Run Example",id:"run-example",level:2},{value:"Build",id:"build",level:2},{value:"Test",id:"test",level:2}];function c(e){const t={code:"code",h1:"h1",h2:"h2",pre:"pre",...(0,i.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.h1,{id:"installation--getting-started",children:"Installation & Getting Started"}),"\n",(0,a.jsx)(t.h2,{id:"install",children:"Install"}),"\n",(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{className:"language-bash",children:"todo\n"})}),"\n",(0,a.jsx)(t.h2,{id:"run-example",children:"Run Example"}),"\n",(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{className:"language-bash",children:"todo\n"})}),"\n",(0,a.jsx)(t.h2,{id:"build",children:"Build"}),"\n",(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{className:"language-bash",children:"todo\n"})}),"\n",(0,a.jsx)(t.h2,{id:"test",children:"Test"}),"\n",(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{className:"language-bash",children:"nvm i && npm i && npm run rust:test\n"})})]})}function u(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(c,{...e})}):c(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>s,a:()=>l});var a=n(7294);const i={},r=a.createContext(i);function l(e){const t=a.useContext(r);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:l(e.components),a.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/525.2fbd60c6.js b/assets/js/525.2fbd60c6.js new file mode 100644 index 00000000..8c46bcc7 --- /dev/null +++ b/assets/js/525.2fbd60c6.js @@ -0,0 +1 @@ +(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[525],{5525:()=>{}}]); \ No newline at end of file diff --git a/assets/js/5e95c892.7fbf04ea.js b/assets/js/5e95c892.7fbf04ea.js new file mode 100644 index 00000000..a2911a0d --- /dev/null +++ b/assets/js/5e95c892.7fbf04ea.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[661],{1892:(e,c,d)=>{d.r(c),d.d(c,{default:()=>o});d(7294);var n=d(512),s=d(1944),r=d(5281),t=d(8790),u=d(8862),a=d(5893);function o(e){return(0,a.jsx)(s.FG,{className:(0,n.Z)(r.k.wrapper.docsPages),children:(0,a.jsx)(u.Z,{children:(0,t.H)(e.route.routes)})})}}}]); \ No newline at end of file diff --git a/assets/js/61955a96.49be3fcb.js b/assets/js/61955a96.49be3fcb.js new file mode 100644 index 00000000..c0dcc052 --- /dev/null +++ b/assets/js/61955a96.49be3fcb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[595],{5338:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>u,frontMatter:()=>s,metadata:()=>i,toc:()=>d});var o=n(5893),a=n(1151);const s={sidebar_position:6},r="WASM Usage",i={id:"modules/wasm",title:"WASM Usage",description:"Memory Management",source:"@site/docs/modules/wasm.mdx",sourceDirName:"modules",slug:"/modules/wasm",permalink:"/cardano-multiplatform-lib/modules/wasm",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:6,frontMatter:{sidebar_position:6},sidebar:"tutorialSidebar",previous:{title:"Metadata",permalink:"/cardano-multiplatform-lib/modules/metadata"}},l={},d=[{value:"Memory Management",id:"memory-management",level:2}];function c(e){const t={code:"code",h1:"h1",h2:"h2",p:"p",...(0,a.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.h1,{id:"wasm-usage",children:"WASM Usage"}),"\n",(0,o.jsx)(t.h2,{id:"memory-management",children:"Memory Management"}),"\n",(0,o.jsxs)(t.p,{children:["If you are using CML from the browser this section is likely irrelevant for you.\nUsing CML from a javascript environment with weakrefs enabled should have automatic memory cleanup.\nIf this is not the case (e.g. non-javascript/typescript WASM environment), or you are using CML inside of a very tight loop that is executed hundreds of thousands of times in a short period it might be advisable to explicitly call ",(0,o.jsx)(t.code,{children:".free()"})," on any CML types after they are used.\nThis is because while from an environment with weakrefs the types will eventually be freed automatically,\nit is still possible to use excessive memory or run out if, for example, large CML types are created in a constant loop that runs many times (e.g. hundreds of thousands of times without a break), as the automatic cleanup will not be run in time. Do not worry about this for normal CML usage.\nDo not call ",(0,o.jsx)(t.code,{children:".free()"})," on a type or use it after ",(0,o.jsx)(t.code,{children:".free()"})," has been called on it already.\nWASM types passed into other CML APIs will be done so by reference and will not have their ",(0,o.jsx)(t.code,{children:".free()"})," method called just by doing so, but will still eventually be cleaned up if weakrefs are available."]})]})}function u(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(c,{...e})}):c(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>i,a:()=>r});var o=n(7294);const a={},s=o.createContext(a);function r(e){const t=o.useContext(s);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),o.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/6c2c22d1.fe3782c7.js b/assets/js/6c2c22d1.fe3782c7.js new file mode 100644 index 00000000..d64ae279 --- /dev/null +++ b/assets/js/6c2c22d1.fe3782c7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[580],{2952:(a,e,n)=>{n.r(e),n.d(e,{assets:()=>c,contentTitle:()=>r,default:()=>h,frontMatter:()=>i,metadata:()=>s,toc:()=>l});var t=n(5893),o=n(1151);const i={sidebar_position:1},r="CBOR",s={id:"modules/cbor",title:"CBOR",description:"Cardano on-chain types are stored using CBOR, a data format similar to JSON but with many more features and in binary.",source:"@site/docs/modules/cbor.mdx",sourceDirName:"modules",slug:"/modules/cbor",permalink:"/cardano-multiplatform-lib/modules/cbor",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"Modules",permalink:"/cardano-multiplatform-lib/category/modules"},next:{title:"Core",permalink:"/cardano-multiplatform-lib/category/core"}},c={},l=[{value:"Tool Interoperability",id:"tool-interoperability",level:2},{value:"Rust",id:"rust",level:2},{value:"WASM",id:"wasm",level:2}];function d(a){const e={a:"a",code:"code",h1:"h1",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,o.a)(),...a.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.h1,{id:"cbor",children:"CBOR"}),"\n",(0,t.jsxs)(e.p,{children:["Cardano on-chain types are stored using ",(0,t.jsx)(e.a,{href:"https://www.rfc-editor.org/rfc/rfc7049",children:"CBOR"}),", a data format similar to JSON but with many more features and in binary."]}),"\n",(0,t.jsx)(e.h2,{id:"tool-interoperability",children:"Tool Interoperability"}),"\n",(0,t.jsx)(e.p,{children:"Due to CBOR's flexibility it is possible that one piece of CBOR can be represented in multiple ways in the binary encoding. This causes problems when using CBOR taken on-chain or from another tool and using it with another tool. Notably, one small difference in the binary encoding of CBOR could result in hashes being totally different. e.g. metadatum hashes or transaction hashes calculated in a dApp might be different than in the wallet causing the entire transaction to be rejected by the network."}),"\n",(0,t.jsx)(e.p,{children:"CML solves this by supporting automatically every single possible CBOR encoding variation. On-chain types created by deserializing from CBOR bytes will remember these details and re-serializing will use them and result in the same CBOR bytes, unlike some other tools."}),"\n",(0,t.jsx)(e.h2,{id:"rust",children:"Rust"}),"\n",(0,t.jsxs)(e.p,{children:["On-chan types in rust can (de)serialize to/from CBOR Via the ",(0,t.jsx)(e.code,{children:"Serialize"}),"/",(0,t.jsx)(e.code,{children:"Deserialize"})," and ",(0,t.jsx)(e.code,{children:"ToBytes"}),"/",(0,t.jsx)(e.code,{children:"FromBytes"})," traits located within the ",(0,t.jsx)(e.code,{children:"cml_core::serialize"})," module."]}),"\n",(0,t.jsxs)(e.p,{children:["Most on-chain types implement the ",(0,t.jsx)(e.code,{children:"Serialize"})," and ",(0,t.jsx)(e.code,{children:"Deserialize"})," traits. These traits guarantee that all CBOR encoding details are preserved upon deserialization and upon serialization it is possible to choose between canonical CBOR encoding and arbitrary encodings (the original it was decoded from)."]}),"\n",(0,t.jsxs)(e.p,{children:["Byron-era types do not implement ",(0,t.jsx)(e.code,{children:"Serialize"}),"/",(0,t.jsx)(e.code,{children:"Deserialize"})," and instead implement ",(0,t.jsx)(e.code,{children:"ToBytes"}),"/",(0,t.jsx)(e.code,{children:"FromBytes"}),". Byron on-chain types are always in canonical CBOR so this was not necessary."]}),"\n",(0,t.jsxs)(e.p,{children:["The types in the ",(0,t.jsx)(e.code,{children:"cip25"})," module also do not support ",(0,t.jsx)(e.code,{children:"Serialize"}),"/",(0,t.jsx)(e.code,{children:"Deserialize"})," in favor of ",(0,t.jsx)(e.code,{children:"ToBytes"}),"/",(0,t.jsx)(e.code,{children:"FromBytes"}),". The underlying metadata on-chain does and you should use the types in",(0,t.jsx)(e.code,{children:"cml_core::metadata"})]}),"\n",(0,t.jsx)(e.pre,{children:(0,t.jsx)(e.code,{className:"language-rust",children:'use cml_core::serialization::{Serialize, Deserialize};\nlet canonical_cbor_hex = "825820aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa01";\n// these all represent the following CBOR:\n// [ ; array of 2 elements (transaction input struct)\n// 0xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA, ; bytes (tx hash)\n// 1 ; unsigned integer (tx index)\n// ]\nlet non_canonical_cbor = [\n canonical_cbor_hex,\n "825820aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1a00000001",\n "9f5f48aaaaaaaaaaaaaaaa48aaaaaaaaaaaaaaaa48aaaaaaaaaaaaaaaa48aaaaaaaaaaaaaaaaff01ff",\n "9900025820aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa190001",\n "9b00000000000000025f41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aaff1b0000000000000001",\n];\nfor orig_cbor_hex in non_canonical_cbor {\n let tx_in = TransactionInput::from_cbor_bytes(&hex::decode(orig_cbor_hex).unwrap()).unwrap();\n // serialize back to cbor bytes using the same cbor encoding details so it will match\n // the format where it came from\n assert_eq!(hex::encode(tx_in.to_cbor_bytes()), orig_cbor_hex);\n // no matter how it was created it will represent the same data and can be encoded to\n // canonical cbor bytes which will be the same as all of these are the same transaction input\n assert_eq!(hex::encode(tx_in.to_canonical_cbor_bytes()), canonical_cbor_hex);\n}\n'})}),"\n",(0,t.jsx)(e.h2,{id:"wasm",children:"WASM"}),"\n",(0,t.jsx)(e.p,{children:"All on-chain types have the traits directly exposed on each struct as the methods:"}),"\n",(0,t.jsxs)(e.ul,{children:["\n",(0,t.jsx)(e.li,{children:(0,t.jsx)(e.code,{children:".to_cbor_bytes()"})}),"\n",(0,t.jsx)(e.li,{children:(0,t.jsx)(e.code,{children:".to_canonical_cbor_bytes()"})}),"\n",(0,t.jsx)(e.li,{children:(0,t.jsx)(e.code,{children:".from_cbor_bytes()"})}),"\n",(0,t.jsx)(e.li,{children:(0,t.jsx)(e.code,{children:".to_cbor_hex()"})}),"\n",(0,t.jsx)(e.li,{children:(0,t.jsx)(e.code,{children:".to_canonical_cbor_hex()"})}),"\n",(0,t.jsx)(e.li,{children:(0,t.jsx)(e.code,{children:".from_cbor_hex()"})}),"\n"]}),"\n",(0,t.jsx)(e.p,{children:"The hex ones are useful for working with CIP-30 (dApp connector)."}),"\n",(0,t.jsxs)(e.p,{children:["On post-Byron on-chain types this delegates to ",(0,t.jsx)(e.code,{children:"Serialize"}),"/",(0,t.jsx)(e.code,{children:"Deserialize"})," (see rust section) and preserve round-trip always. CIP25 and Byron types will always serialize to canonical CBOR. All on-chain data during the Byron era has to be canonical CBOR so this is not a big issue but is worth noting."]}),"\n",(0,t.jsx)(e.pre,{children:(0,t.jsx)(e.code,{className:"language-javascript",children:'let canonicalCborHex = "825820aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa01";\n// these all represent the following CBOR:\n// [ ; array of 2 elements (transaction input struct)\n// 0xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA, ; bytes (tx hash)\n// 1 ; unsigned integer (tx index)\n// ]\nlet nonCanonicalCbor = [\n canonicalCborHex,\n "825820aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1a00000001",\n "9f5f48aaaaaaaaaaaaaaaa48aaaaaaaaaaaaaaaa48aaaaaaaaaaaaaaaa48aaaaaaaaaaaaaaaaff01ff",\n "9900025820aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa190001",\n "9b00000000000000025f41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aaff1b0000000000000001",\n];\nfor (let origCborHex of nonCanonicalCbor) {\n let txIn = CML.TransactionInput.from_cbor_hex(orig_cbor_hex);\n // serialize back to cbor bytes using the same cbor encoding details so it will match\n // the format where it came from\n console.assert(txIn.to_cbor_hex() == origCborHex);\n // no matter how it was created it will represent the same data and can be encoded to\n // canonical cbor bytes which will be the same as all of these are the same transaction input\n console.assert(txIn.to_canonical_cbor_hex() == canonicalCborHex);\n}\n'})})]})}function h(a={}){const{wrapper:e}={...(0,o.a)(),...a.components};return e?(0,t.jsx)(e,{...a,children:(0,t.jsx)(d,{...a})}):d(a)}},1151:(a,e,n)=>{n.d(e,{Z:()=>s,a:()=>r});var t=n(7294);const o={},i=t.createContext(o);function r(a){const e=t.useContext(i);return t.useMemo((function(){return"function"==typeof a?a(e):{...e,...a}}),[e,a])}function s(a){let e;return e=a.disableParentContext?"function"==typeof a.components?a.components(o):a.components||o:r(a.components),t.createElement(i.Provider,{value:e},a.children)}}}]); \ No newline at end of file diff --git a/assets/js/772.0a40c231.js b/assets/js/772.0a40c231.js new file mode 100644 index 00000000..031006f6 --- /dev/null +++ b/assets/js/772.0a40c231.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[772],{5658:(e,t,n)=>{n.d(t,{Z:()=>a});n(7294);var o=n(512),i=n(5999),d=n(2503),s=n(5893);function a(e){let{className:t}=e;return(0,s.jsx)("main",{className:(0,o.Z)("container margin-vert--xl",t),children:(0,s.jsx)("div",{className:"row",children:(0,s.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,s.jsx)(d.Z,{as:"h1",className:"hero__title",children:(0,s.jsx)(i.Z,{id:"theme.NotFound.title",description:"The title of the 404 page",children:"Page Not Found"})}),(0,s.jsx)("p",{children:(0,s.jsx)(i.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page",children:"We could not find what you were looking for."})}),(0,s.jsx)("p",{children:(0,s.jsx)(i.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page",children:"Please contact the owner of the site that linked you to the original URL and let them know their link is broken."})})]})})})}},1772:(e,t,n)=>{n.r(t),n.d(t,{default:()=>r});n(7294);var o=n(5999),i=n(1944),d=n(8862),s=n(5658),a=n(5893);function r(){const e=(0,o.I)({id:"theme.NotFound.title",message:"Page Not Found"});return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(i.d,{title:e}),(0,a.jsx)(d.Z,{children:(0,a.jsx)(s.Z,{})})]})}}}]); \ No newline at end of file diff --git a/assets/js/8019ae33.f9697cba.js b/assets/js/8019ae33.f9697cba.js new file mode 100644 index 00000000..13483dfd --- /dev/null +++ b/assets/js/8019ae33.f9697cba.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[11],{7463:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>o,contentTitle:()=>c,default:()=>p,frontMatter:()=>i,metadata:()=>a,toc:()=>l});var t=s(5893),r=s(1151);const i={},c="crypto",a={id:"modules/crypto/index",title:"crypto",description:"AuxiliaryDataHash",source:"@site/docs/modules/crypto/index.mdx",sourceDirName:"modules/crypto",slug:"/modules/crypto/",permalink:"/cardano-multiplatform-lib/modules/crypto/",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Generating Keys and Addresses",permalink:"/cardano-multiplatform-lib/modules/crypto/generating_keys"},next:{title:"JSON",permalink:"/cardano-multiplatform-lib/modules/json"}},o={},l=[];function d(e){const n={h1:"h1",p:"p",...(0,r.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h1,{id:"crypto",children:"crypto"}),"\n",(0,t.jsx)(n.p,{children:"AuxiliaryDataHash"}),"\n",(0,t.jsx)(n.p,{children:"Bip32PrivateKey"}),"\n",(0,t.jsx)(n.p,{children:"Bip32PublicKey"}),"\n",(0,t.jsx)(n.p,{children:"BlockBodyHash"}),"\n",(0,t.jsx)(n.p,{children:"BlockHeaderHash"}),"\n",(0,t.jsx)(n.p,{children:"BootstrapWitness"}),"\n",(0,t.jsx)(n.p,{children:"BootstrapWitnesses"}),"\n",(0,t.jsx)(n.p,{children:"DataHash"}),"\n",(0,t.jsx)(n.p,{children:"Ed25519KeyHash"}),"\n",(0,t.jsx)(n.p,{children:"Ed25519Signature"}),"\n",(0,t.jsx)(n.p,{children:"GenesisDelegateHash"}),"\n",(0,t.jsx)(n.p,{children:"GenesisHash"}),"\n",(0,t.jsx)(n.p,{children:"KESSignature"}),"\n",(0,t.jsx)(n.p,{children:"KESVKey"}),"\n",(0,t.jsx)(n.p,{children:"LegacyDaedalusPrivateKey"}),"\n",(0,t.jsx)(n.p,{children:"Nonce"}),"\n",(0,t.jsx)(n.p,{children:"PoolMetadataHash"}),"\n",(0,t.jsx)(n.p,{children:"PrivateKey"}),"\n",(0,t.jsx)(n.p,{children:"PublicKey\tED25519 key used as public key"}),"\n",(0,t.jsx)(n.p,{children:"PublicKeys"}),"\n",(0,t.jsx)(n.p,{children:"ScriptDataHash"}),"\n",(0,t.jsx)(n.p,{children:"ScriptHash"}),"\n",(0,t.jsx)(n.p,{children:"TransactionHash"}),"\n",(0,t.jsx)(n.p,{children:"VRFCert"}),"\n",(0,t.jsx)(n.p,{children:"VRFKeyHash"}),"\n",(0,t.jsx)(n.p,{children:"VRFVKey"}),"\n",(0,t.jsx)(n.p,{children:"Vkey"}),"\n",(0,t.jsx)(n.p,{children:"Vkeys"}),"\n",(0,t.jsx)(n.p,{children:"Vkeywitness"}),"\n",(0,t.jsx)(n.p,{children:"Vkeywitnesses"})]})}function p(e={}){const{wrapper:n}={...(0,r.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},1151:(e,n,s)=>{s.d(n,{Z:()=>a,a:()=>c});var t=s(7294);const r={},i=t.createContext(r);function c(e){const n=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:c(e.components),t.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/82878dee.4db35e31.js b/assets/js/82878dee.4db35e31.js new file mode 100644 index 00000000..e7195c8f --- /dev/null +++ b/assets/js/82878dee.4db35e31.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[928],{4175:e=>{e.exports=JSON.parse('{"title":"Crypto","slug":"/category/crypto","permalink":"/cardano-multiplatform-lib/category/crypto","navigation":{"previous":{"title":"Chain","permalink":"/cardano-multiplatform-lib/modules/chain/"},"next":{"title":"Generating Keys and Addresses","permalink":"/cardano-multiplatform-lib/modules/crypto/generating_keys"}}}')}}]); \ No newline at end of file diff --git a/assets/js/8cf5c8a6.40ba156d.js b/assets/js/8cf5c8a6.40ba156d.js new file mode 100644 index 00000000..86debcef --- /dev/null +++ b/assets/js/8cf5c8a6.40ba156d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[926],{7965:e=>{e.exports=JSON.parse('{"title":"Builders","slug":"/category/builders","permalink":"/cardano-multiplatform-lib/category/builders","navigation":{"previous":{"title":"CIP25","permalink":"/cardano-multiplatform-lib/modules/CIP25"},"next":{"title":"generating_transactions","permalink":"/cardano-multiplatform-lib/modules/builders/generating_transactions"}}}')}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.a68d5b39.js b/assets/js/935f2afb.a68d5b39.js new file mode 100644 index 00000000..1e80646b --- /dev/null +++ b/assets/js/935f2afb.a68d5b39.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[53],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"link","label":"Introduction","href":"/cardano-multiplatform-lib/","docId":"index","unlisted":false},{"type":"link","label":"Installation & Getting Started","href":"/cardano-multiplatform-lib/getting_started","docId":"getting_started","unlisted":false},{"type":"link","label":"Crate Architecture","href":"/cardano-multiplatform-lib/crate_architecture","docId":"crate_architecture","unlisted":false},{"type":"category","label":"Modules","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"CBOR","href":"/cardano-multiplatform-lib/modules/cbor","docId":"modules/cbor","unlisted":false},{"type":"category","label":"Core","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Core","href":"/cardano-multiplatform-lib/modules/core/","docId":"modules/core/index","unlisted":false}],"href":"/cardano-multiplatform-lib/category/core"},{"type":"category","label":"Chain","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Chain","href":"/cardano-multiplatform-lib/modules/chain/","docId":"modules/chain/index","unlisted":false}],"href":"/cardano-multiplatform-lib/category/chain"},{"type":"category","label":"Crypto","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Generating Keys and Addresses","href":"/cardano-multiplatform-lib/modules/crypto/generating_keys","docId":"modules/crypto/generating_keys","unlisted":false},{"type":"link","label":"crypto","href":"/cardano-multiplatform-lib/modules/crypto/","docId":"modules/crypto/index","unlisted":false}],"href":"/cardano-multiplatform-lib/category/crypto"},{"type":"link","label":"JSON","href":"/cardano-multiplatform-lib/modules/json","docId":"modules/json","unlisted":false},{"type":"category","label":"Multi-Era","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Multi-Era","href":"/cardano-multiplatform-lib/modules/multi-era/","docId":"modules/multi-era/index","unlisted":false}],"href":"/cardano-multiplatform-lib/category/multi-era"},{"type":"link","label":"CIP25","href":"/cardano-multiplatform-lib/modules/CIP25","docId":"modules/CIP25","unlisted":false},{"type":"category","label":"Builders","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"generating_transactions","href":"/cardano-multiplatform-lib/modules/builders/generating_transactions","docId":"modules/builders/generating_transactions","unlisted":false},{"type":"link","label":"TransactionBuilder","href":"/cardano-multiplatform-lib/modules/builders/","docId":"modules/builders/index","unlisted":false}],"href":"/cardano-multiplatform-lib/category/builders"},{"type":"link","label":"CIP36","href":"/cardano-multiplatform-lib/modules/cip36","docId":"modules/cip36","unlisted":false},{"type":"link","label":"Metadata","href":"/cardano-multiplatform-lib/modules/metadata","docId":"modules/metadata","unlisted":false},{"type":"link","label":"WASM Usage","href":"/cardano-multiplatform-lib/modules/wasm","docId":"modules/wasm","unlisted":false}],"href":"/cardano-multiplatform-lib/category/modules"}]},"docs":{"crate_architecture":{"id":"crate_architecture","title":"Crate Architecture","description":"- Core - Core types common throughout all CML crates.","sidebar":"tutorialSidebar"},"getting_started":{"id":"getting_started","title":"Installation & Getting Started","description":"Install","sidebar":"tutorialSidebar"},"index":{"id":"index","title":"Cardano Multiplatform Lib","description":"This is a library, written in Rust, that can be deployed to multiple platforms (Rust crate, JS, Typescript, WASM, etc). It handles:","sidebar":"tutorialSidebar"},"modules/builders/generating_transactions":{"id":"modules/builders/generating_transactions","title":"generating_transactions","description":"Example code","sidebar":"tutorialSidebar"},"modules/builders/index":{"id":"modules/builders/index","title":"TransactionBuilder","description":"In order to simplify transaction creation, we provide a TransactionBuilder struct that manages witnesses, fee calculation, change addresses and such. Assume we have instantiated an instance under the variable builder for this explanation. The TransactionBuilder requires several protocol parameters governing Cardano to be created which is shown in the following section. These are specified initially in the genesis file for Cardano nodes.","sidebar":"tutorialSidebar"},"modules/cbor":{"id":"modules/cbor","title":"CBOR","description":"Cardano on-chain types are stored using CBOR, a data format similar to JSON but with many more features and in binary.","sidebar":"tutorialSidebar"},"modules/chain/index":{"id":"modules/chain/index","title":"Chain","description":"This crate contains all of the on-chain types used in the current Cardano era. All of these types can be serialized and deserialized from their on-chain CBOR encodings. Also included are some utility funtionality for working with them, as well as builders for creating them.","sidebar":"tutorialSidebar"},"modules/CIP25":{"id":"modules/CIP25","title":"CIP25","description":"Context","sidebar":"tutorialSidebar"},"modules/cip36":{"id":"modules/cip36","title":"CIP36","description":"","sidebar":"tutorialSidebar"},"modules/core/index":{"id":"modules/core/index","title":"Core","description":"This crate is for core features and traits common to all CML crates. Most users likely won\'t need to directly use this module except for possibly pulling in traits used with other cml crates. If you are using CML from WASM/typescript this module will not be needed as any used types will be re-exported in the crates (e.g. cml-chain-wasm, cml-cip25-wasm, etc) that use it.","sidebar":"tutorialSidebar"},"modules/crypto/generating_keys":{"id":"modules/crypto/generating_keys","title":"Generating Keys and Addresses","description":"BIP32 Keys","sidebar":"tutorialSidebar"},"modules/crypto/index":{"id":"modules/crypto/index","title":"crypto","description":"AuxiliaryDataHash","sidebar":"tutorialSidebar"},"modules/json":{"id":"modules/json","title":"JSON","description":"General structs","sidebar":"tutorialSidebar"},"modules/metadata":{"id":"modules/metadata","title":"Metadata","description":"Transaction Metadata format","sidebar":"tutorialSidebar"},"modules/multi-era/index":{"id":"modules/multi-era/index","title":"Multi-Era","description":"This crate contains all the on-chain types for previous eras (Byron, Shelley, Alonzo, Babbage, etc). There are also wrappers around this era if you need era-agnostic types e.g. parsing all blocks from genesis. The wrappers support the current era as well.","sidebar":"tutorialSidebar"},"modules/wasm":{"id":"modules/wasm","title":"WASM Usage","description":"Memory Management","sidebar":"tutorialSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/a6c5da82.dca57a8d.js b/assets/js/a6c5da82.dca57a8d.js new file mode 100644 index 00000000..62a35377 --- /dev/null +++ b/assets/js/a6c5da82.dca57a8d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[932],{5200:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>p,frontMatter:()=>s,metadata:()=>d,toc:()=>o});var t=a(5893),i=a(1151);const s={sidebar_position:3},r="CIP25",d={id:"modules/CIP25",title:"CIP25",description:"Context",source:"@site/docs/modules/CIP25.mdx",sourceDirName:"modules",slug:"/modules/CIP25",permalink:"/cardano-multiplatform-lib/modules/CIP25",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"tutorialSidebar",previous:{title:"Multi-Era",permalink:"/cardano-multiplatform-lib/modules/multi-era/"},next:{title:"Builders",permalink:"/cardano-multiplatform-lib/category/builders"}},l={},o=[{value:"Context",id:"context",level:2},{value:"Code Definitions",id:"code-definitions",level:2},{value:"Examples",id:"examples",level:2},{value:"Create",id:"create",level:3},{value:"Parse CIP25Metadata",id:"parse-cip25metadata",level:3},{value:"Parse Metadata Details",id:"parse-metadata-details",level:3},{value:"Loose Parse Metadata details",id:"loose-parse-metadata-details",level:3},{value:"Just name",id:"just-name",level:4},{value:"Upercase name",id:"upercase-name",level:4},{value:"id no name",id:"id-no-name",level:4},{value:"Image",id:"image",level:4}];function c(e){const n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h1,{id:"cip25",children:"CIP25"}),"\n",(0,t.jsx)(n.h2,{id:"context",children:"Context"}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://cips.cardano.org/cips/cip25/",children:"CIP25"})," defines an NFT Metadata Standard for Native Tokens."]}),"\n",(0,t.jsx)(n.p,{children:"Since tokens on Cardano are a part of the UTxO ledger, the metadata isn't directly attached to a token, but instead stored in the transaction data."}),"\n",(0,t.jsx)(n.p,{children:"When data is transmitted or stored in Cardano, it is often encoded as CBOR bytes to optimize space and facilitate fast processing. CBOR provides a standardized way to encode complex data structures, making it easier for different components of the Cardano ecosystem to interact and interpret the data."}),"\n",(0,t.jsx)(n.p,{children:"Below is the entire metadata schema for CIP-25, which can be parsed by passing in the CBOR bytes of the entire transaction metadata\nor by passing in an existing Metadata struct."}),"\n",(0,t.jsx)(n.p,{children:"Parsing from CBOR bytes should be marginally faster."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:'{\n "721": {\n "<policy_id>": {\n "<asset_name>": {\n "name": <string>,\n \n "image": <uri | array>,\n "mediaType": image/<mime_sub_type>,\n \n "description": <string | array>,\n \n "files": [{\n "name": <string>,\n "mediaType": <mime_type>,\n "src": <uri | array>,\n <other_properties>\n }],\n \n <other properties>\n }\n },\n "version": <version_id>\n }\n }\n'})}),"\n",(0,t.jsx)(n.h2,{id:"code-definitions",children:"Code Definitions"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.code,{children:"CIP25Metadata"})," struct is the top-level struct for CIP-25 metadata, and contains a ",(0,t.jsx)(n.code,{children:"key_721"})," field of type ",(0,t.jsx)(n.code,{children:"LabelMetadata"}),". The key_721 field will contain either a LabelMetadataV1 or LabelMetadataV2 instance."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.code,{children:"LabelMetadata"})," defines an enum type that can contain either a ",(0,t.jsx)(n.code,{children:"LabelMetadataV1"})," or ",(0,t.jsx)(n.code,{children:"LabelMetadataV2"})," instance. It also provides functions for creating instances of each type."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.code,{children:"MetadataDetails"})," defines a struct that represents metadata details for a specific asset. It contains fields for the asset name, an image associated with the asset, a media type, a description, and details about any associated files. The ",(0,t.jsx)(n.code,{children:"new()"})," method creates a new instance with the specified name and image, and sets the other fields to None."]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"examples",children:"Examples"}),"\n",(0,t.jsx)(n.h3,{id:"create",children:"Create"}),"\n",(0,t.jsx)(n.p,{children:"The following example shows how to create and populate the CIP25 metadata schema with the available structs."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-rust",children:' let mut details = MetadataDetails::new(\n String64::try_from("Metadata Name").unwrap(),\n ChunkableString::from("htts://some.website.com/image.png"),\n ); \n details.description = Some(ChunkableString::from("description of this NFT"));\n details.media_type = Some(String64::try_from("image/*").unwrap());\n details.files = Some(vec![\n FilesDetails::new(\n String64::new_str("filename1").unwrap(),\n String64::new_str("filetype1").unwrap(),\n ChunkableString::from("src1"),\n ),\n FilesDetails::new(\n String64::new_str("filename2").unwrap(),\n String64::new_str("filetype2").unwrap(),\n ChunkableString::from("src2"),\n ),\n ]);\n let mut v2 = Data::new();\n let mut v2_inner = BTreeMap::new();\n v2_inner.insert(AssetNameV2::from(vec![0xCA, 0xFE, 0xD0, 0x0D]), details);\n v2.insert(PolicyIdV2::from(vec![0xBA, 0xAD, 0xF0, 0x0D]), v2_inner);\n\n let metadata = CIP25Metadata::new(LabelMetadata::new_label_metadata_v2(\n LabelMetadataV2::new(v2),\n\n ));\n println!("{metadata:?}");\n\n'})}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"output:"})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:'CIP25Metadata {\n key_721: LabelMetadataV2(LabelMetadataV2 { \n data: {\n PolicyIdV2([186, 173, 240, 13]): {\n AssetNameV2([202, 254, 208, 13]): MetadataDetails { \n name: String64("Metadata Name"), \n image: Single(String64("htts://some.website.com/image.png")), \n media_type: Some(String64("image/*")), \n description: Some(Single(String64("description of this NFT"))), \n files: Some([\n FilesDetails { \n name: String64("filename1"), \n media_type: String64("filetype1"), \n src: Single(String64("src1")) \n }, \n FilesDetails { \n name: String64("filename2"), \n media_type: String64("filetype2"), \n src: Single(String64("src2")) \n }\n ]) \n }\n }\n } \n }) \n}\n'})}),"\n",(0,t.jsx)(n.h3,{id:"parse-cip25metadata",children:"Parse CIP25Metadata"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-rust",children:'let bytes = "bf1902d1a36464617461a244baadf00da344cafed00da6646e616d656d4d65746164617461204e616d656566696c657382a4637372636473726331646e616d656966696c656e616d6531696d65646961547970656966696c657479706531816864736b6a66616b7381a1403864a3637372636473726332646e616d656966696c656e616d6532696d65646961547970656966696c65747970653265696d6167657821687474733a2f2f736f6d652e776562736974652e636f6d2f696d6167652e706e67696d656469615479706567696d6167652f2a6b6465736372697074696f6e776465736372697074696f6e206f662074686973204e4654a14038641832a1403864a140386481a1403864816864736b6a66616b73a1403864a14038646776657273696f6e02a1403864a14038641905398144baadf00dff";\nlet data = CIP25Metadata::from_bytes(hex::decode(bytes).unwrap()).unwrap();\nprintln!("{data:?}");\n'})}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"output:"})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-json",children:'CIP25Metadata { \n key_721: LabelMetadataV2(\n LabelMetadataV2 { \n data: {\n PolicyIdV2([186, 173, 240, 13]): {\n AssetNameV2([202, 254, 208, 13]): MetadataDetails { \n name: String64("Metadata Name"), \n image: Single(String64("htts://some.website.com/image.png")), \n media_type: Some(String64("image/*")), \n description: Some(Single(String64("description of this NFT"))), \n files: Some([\n FilesDetails { \n name: String64("filename1"), \n media_type: String64("filetype1"), \n src: Single(String64("src1")) \n }, \n FilesDetails { \n name: String64("filename2"), \n media_type: String64("filetype2"), \n src: Single(String64("src2")) \n }\n ]) \n }\n }\n } \n }) \n }\n\n'})}),"\n",(0,t.jsx)(n.h3,{id:"parse-metadata-details",children:"Parse Metadata Details"}),"\n",(0,t.jsxs)(n.p,{children:["Fields can be extracted from the ",(0,t.jsx)(n.code,{children:"MetadataDetails"})," struct."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-rust",children:'// {\n// "arweaveId": "6srpXZOTfK_62KUrJKh4VdCFG0YS271pq20OMRpE5Ts",\n// "image": "ipfs://QmUWP6xGHucgBUv514gwgbt4yijg36aUQunEP61z5D8RKS",\n// "name": "SpaceBud #1507",\n// "traits": ["Star Suit", "Chestplate", "Belt", "Flag", "Pistol"],\n// "type": "Alien",\n// }\n\nlet bytes = "a569617277656176654964782b36737270585a4f54664b5f36324b55724a4b68345664434647305953323731707132304f4d52704535547365696d6167657835697066733a2f2f516d5557503678474875636742557635313467776762743479696a673336615551756e455036317a354438524b53646e616d656e53706163654275642023313530376674726169747385695374617220537569746a4368657374706c6174656442656c7464466c616766506973746f6c647479706565416c69656e";\n\nlet output = MetadataDetails::from_bytes(hex::decode(bytes).unwrap()).unwrap();\nprintln!("{output:?}") \n'})}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"output:"})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-json",children:'MetadataDetails { \n name: String64("SpaceBud #1507"), \n image: Single(String64("ipfs://QmUWP6xGHucgBUv514gwgbt4yijg36aUQunEP61z5D8RKS")), \n media_type: None, \n description: None, \n files: None\n}\n'})}),"\n",(0,t.jsx)(n.h3,{id:"loose-parse-metadata-details",children:"Loose Parse Metadata details"}),"\n",(0,t.jsxs)(n.p,{children:["The ",(0,t.jsx)(n.code,{children:"loose_parse()"})," function allows parsing of certain data that is technically non-compliant with CIP25 due to minor mistakes by their creators."]}),"\n",(0,t.jsxs)(n.admonition,{type:"note",children:[(0,t.jsx)(n.p,{children:"This function should only to be used to parse non conformant metadata, since it will return a different struct (MiniMetadataDetails) which will just (possibly)return the name/image."}),(0,t.jsx)(n.p,{children:"It's best to only use it as a fallback when the regular parsing fails."})]}),"\n",(0,t.jsx)(n.h4,{id:"just-name",children:"Just name"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-rust",children:'// {"name":"Metaverse"}\nlet details = MiniMetadataDetails::loose_parse(&TransactionMetadatum::from_bytes(hex::decode("a1646e616d65694d6574617665727365").unwrap()).unwrap()).unwrap();\nprintln!("{details:?}")\n'})}),"\n",(0,t.jsx)(n.p,{children:"ouput:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:'MiniMetadataDetails { \n name: Some(String64("Metaverse")), \n image: None \n}\n'})}),"\n",(0,t.jsx)(n.h4,{id:"upercase-name",children:"Upercase name"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-rust",children:'// {\n// "Date":"9 May 2021",\n// "Description":"Happy Mother\'s Day to all the Cardano Moms!",\n// "Image":"ipfs.io/ipfs/Qmah6QPKUKvp6K9XQB2SA42Q3yrffCbYBbk8EoRrB7FN2g",\n// "Name":"Mother\'s Day 2021",\n// "Ticker":"MOM21",\n// "URL":"ipfs.io/ipfs/Qmah6QPKUKvp6K9XQB2SA42Q3yrffCbYBbk8EoRrB7FN2g"\n// }\nlet details = MiniMetadataDetails::loose_parse(&TransactionMetadatum::from_bytes(hex::decode("a664446174656a39204d617920323032316b4465736372697074696f6e782b4861707079204d6f7468657227732044617920746f20616c6c207468652043617264616e6f204d6f6d732165496d616765783b697066732e696f2f697066732f516d61683651504b554b7670364b39585142325341343251337972666643625942626b38456f52724237464e3267644e616d65714d6f746865722773204461792032303231665469636b6572654d4f4d32316355524c783b697066732e696f2f697066732f516d61683651504b554b7670364b39585142325341343251337972666643625942626b38456f52724237464e3267").unwrap()).unwrap()).unwrap();\nlet name = details.name.unwrap().0;\nprintln!("{name:?}")\n'})}),"\n",(0,t.jsx)(n.p,{children:"output:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:'"Mother\'s Day 2021"\n'})}),"\n",(0,t.jsx)(n.h4,{id:"id-no-name",children:"id no name"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-rust",children:'// {\n// "id":"00",\n// "image":"ipfs://QmSfYTF8B4ua6hFdr6URdRDZBZ9FjCQNUdDcLr2f7P8xn3"\n// }\nlet details = MiniMetadataDetails::loose_parse(&TransactionMetadatum::from_bytes(hex::decode("a262696462303065696d6167657835697066733a2f2f516d5366595446384234756136684664723655526452445a425a39466a43514e556444634c723266375038786e33").unwrap()).unwrap()).unwrap();\nlet name = details.name.unwrap().0;\nprintln!("{name:?}")\n'})}),"\n",(0,t.jsx)(n.p,{children:"output:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:'"00"\n'})}),"\n",(0,t.jsx)(n.h4,{id:"image",children:"Image"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-rust",children:'// {\n// "image":"ipfs://QmSfYTF8B4ua6hFdr6URdRDZBZ9FjCQNUdDcLr2f7P8xn3"\n// }\nlet details = MiniMetadataDetails::loose_parse(&TransactionMetadatum::from_bytes(hex::decode("a165696d6167657835697066733a2f2f516d5366595446384234756136684664723655526452445a425a39466a43514e556444634c723266375038786e33").unwrap()).unwrap()).unwrap();\nlet image = String::from(&details.image.unwrap());\nprintln!("{image:?}");\n'})}),"\n",(0,t.jsx)(n.p,{children:"output:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:'"ipfs://QmSfYTF8B4ua6hFdr6URdRDZBZ9FjCQNUdDcLr2f7P8xn3"\n'})})]})}function p(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},1151:(e,n,a)=>{a.d(n,{Z:()=>d,a:()=>r});var t=a(7294);const i={},s=t.createContext(i);function r(e){const n=t.useContext(s);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),t.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/a7bd4aaa.5eb89804.js b/assets/js/a7bd4aaa.5eb89804.js new file mode 100644 index 00000000..93a74170 --- /dev/null +++ b/assets/js/a7bd4aaa.5eb89804.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[518],{8564:(n,e,s)=>{s.r(e),s.d(e,{default:()=>l});s(7294);var o=s(1944),r=s(3320),t=s(4477),c=s(8790),d=s(197),i=s(5893);function u(n){const{version:e}=n;return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(d.Z,{version:e.version,tag:(0,r.os)(e.pluginId,e.version)}),(0,i.jsx)(o.d,{children:e.noIndex&&(0,i.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})]})}function a(n){const{version:e,route:s}=n;return(0,i.jsx)(o.FG,{className:e.className,children:(0,i.jsx)(t.q,{version:e,children:(0,c.H)(s.routes)})})}function l(n){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(u,{...n}),(0,i.jsx)(a,{...n})]})}}}]); \ No newline at end of file diff --git a/assets/js/a94703ab.3baa4e38.js b/assets/js/a94703ab.3baa4e38.js new file mode 100644 index 00000000..adc1a05e --- /dev/null +++ b/assets/js/a94703ab.3baa4e38.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[368],{2674:(e,t,n)=>{n.r(t),n.d(t,{default:()=>be});var a=n(7294),o=n(512),i=n(1944),s=n(5281),l=n(2802),c=n(1116),r=n(5999),d=n(2466),u=n(5936);const m={backToTopButton:"backToTopButton_sjWU",backToTopButtonShow:"backToTopButtonShow_xfvO"};var b=n(5893);function h(){const{shown:e,scrollToTop:t}=function(e){let{threshold:t}=e;const[n,o]=(0,a.useState)(!1),i=(0,a.useRef)(!1),{startScroll:s,cancelScroll:l}=(0,d.Ct)();return(0,d.RF)(((e,n)=>{let{scrollY:a}=e;const s=n?.scrollY;s&&(i.current?i.current=!1:a>=s?(l(),o(!1)):a<t?o(!1):a+window.innerHeight<document.documentElement.scrollHeight&&o(!0))})),(0,u.S)((e=>{e.location.hash&&(i.current=!0,o(!1))})),{shown:n,scrollToTop:()=>s(0)}}({threshold:300});return(0,b.jsx)("button",{"aria-label":(0,r.I)({id:"theme.BackToTopButton.buttonAriaLabel",message:"Scroll back to top",description:"The ARIA label for the back to top button"}),className:(0,o.Z)("clean-btn",s.k.common.backToTopButton,m.backToTopButton,e&&m.backToTopButtonShow),type:"button",onClick:t})}var p=n(1442),x=n(6550),f=n(7524),j=n(6668),k=n(1327);function _(e){return(0,b.jsx)("svg",{width:"20",height:"20","aria-hidden":"true",...e,children:(0,b.jsxs)("g",{fill:"#7a7a7a",children:[(0,b.jsx)("path",{d:"M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.55 0-1-.453-1-1 0-.2.059-.403.168-.551l4.629-6.942L.168 3.078A.939.939 0 010 2.528c0-.548.45-.997 1-.997h2.996c.352 0 .649.18.828.45L9.82 9.472c.11.148.172.347.172.55zm0 0"}),(0,b.jsx)("path",{d:"M19.98 10.023c0 .2-.058.399-.168.547l-4.996 7.492a.987.987 0 01-.828.454h-3c-.547 0-.996-.453-.996-1 0-.2.059-.403.168-.551l4.625-6.942-4.625-6.945a.939.939 0 01-.168-.55 1 1 0 01.996-.997h3c.348 0 .649.18.828.45l4.996 7.492c.11.148.168.347.168.55zm0 0"})]})})}const v={collapseSidebarButton:"collapseSidebarButton_PEFL",collapseSidebarButtonIcon:"collapseSidebarButtonIcon_kv0_"};function g(e){let{onClick:t}=e;return(0,b.jsx)("button",{type:"button",title:(0,r.I)({id:"theme.docs.sidebar.collapseButtonTitle",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),"aria-label":(0,r.I)({id:"theme.docs.sidebar.collapseButtonAriaLabel",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),className:(0,o.Z)("button button--secondary button--outline",v.collapseSidebarButton),onClick:t,children:(0,b.jsx)(_,{className:v.collapseSidebarButtonIcon})})}var C=n(9689),S=n(902);const I=Symbol("EmptyContext"),N=a.createContext(I);function T(e){let{children:t}=e;const[n,o]=(0,a.useState)(null),i=(0,a.useMemo)((()=>({expandedItem:n,setExpandedItem:o})),[n]);return(0,b.jsx)(N.Provider,{value:i,children:t})}var B=n(6043),Z=n(8596),A=n(9960),L=n(2389);function y(e){let{collapsed:t,categoryLabel:n,onClick:a}=e;return(0,b.jsx)("button",{"aria-label":t?(0,r.I)({id:"theme.DocSidebarItem.expandCategoryAriaLabel",message:"Expand sidebar category '{label}'",description:"The ARIA label to expand the sidebar category"},{label:n}):(0,r.I)({id:"theme.DocSidebarItem.collapseCategoryAriaLabel",message:"Collapse sidebar category '{label}'",description:"The ARIA label to collapse the sidebar category"},{label:n}),type:"button",className:"clean-btn menu__caret",onClick:a})}function w(e){let{item:t,onItemClick:n,activePath:i,level:c,index:r,...d}=e;const{items:u,label:m,collapsible:h,className:p,href:x}=t,{docs:{sidebar:{autoCollapseCategories:f}}}=(0,j.L)(),k=function(e){const t=(0,L.Z)();return(0,a.useMemo)((()=>e.href&&!e.linkUnlisted?e.href:!t&&e.collapsible?(0,l.LM)(e):void 0),[e,t])}(t),_=(0,l._F)(t,i),v=(0,Z.Mg)(x,i),{collapsed:g,setCollapsed:C}=(0,B.u)({initialState:()=>!!h&&(!_&&t.collapsed)}),{expandedItem:T,setExpandedItem:w}=function(){const e=(0,a.useContext)(N);if(e===I)throw new S.i6("DocSidebarItemsExpandedStateProvider");return e}(),E=function(e){void 0===e&&(e=!g),w(e?null:r),C(e)};return function(e){let{isActive:t,collapsed:n,updateCollapsed:o}=e;const i=(0,S.D9)(t);(0,a.useEffect)((()=>{t&&!i&&n&&o(!1)}),[t,i,n,o])}({isActive:_,collapsed:g,updateCollapsed:E}),(0,a.useEffect)((()=>{h&&null!=T&&T!==r&&f&&C(!0)}),[h,T,r,C,f]),(0,b.jsxs)("li",{className:(0,o.Z)(s.k.docs.docSidebarItemCategory,s.k.docs.docSidebarItemCategoryLevel(c),"menu__list-item",{"menu__list-item--collapsed":g},p),children:[(0,b.jsxs)("div",{className:(0,o.Z)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":v}),children:[(0,b.jsx)(A.Z,{className:(0,o.Z)("menu__link",{"menu__link--sublist":h,"menu__link--sublist-caret":!x&&h,"menu__link--active":_}),onClick:h?e=>{n?.(t),x?E(!1):(e.preventDefault(),E())}:()=>{n?.(t)},"aria-current":v?"page":void 0,"aria-expanded":h?!g:void 0,href:h?k??"#":k,...d,children:m}),x&&h&&(0,b.jsx)(y,{collapsed:g,categoryLabel:m,onClick:e=>{e.preventDefault(),E()}})]}),(0,b.jsx)(B.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:g,children:(0,b.jsx)(V,{items:u,tabIndex:g?-1:0,onItemClick:n,activePath:i,level:c+1})})]})}var E=n(3919),H=n(9471);const M={menuExternalLink:"menuExternalLink_NmtK"};function R(e){let{item:t,onItemClick:n,activePath:a,level:i,index:c,...r}=e;const{href:d,label:u,className:m,autoAddBaseUrl:h}=t,p=(0,l._F)(t,a),x=(0,E.Z)(d);return(0,b.jsx)("li",{className:(0,o.Z)(s.k.docs.docSidebarItemLink,s.k.docs.docSidebarItemLinkLevel(i),"menu__list-item",m),children:(0,b.jsxs)(A.Z,{className:(0,o.Z)("menu__link",!x&&M.menuExternalLink,{"menu__link--active":p}),autoAddBaseUrl:h,"aria-current":p?"page":void 0,to:d,...x&&{onClick:n?()=>n(t):void 0},...r,children:[u,!x&&(0,b.jsx)(H.Z,{})]})},u)}const W={menuHtmlItem:"menuHtmlItem_M9Kj"};function F(e){let{item:t,level:n,index:a}=e;const{value:i,defaultStyle:l,className:c}=t;return(0,b.jsx)("li",{className:(0,o.Z)(s.k.docs.docSidebarItemLink,s.k.docs.docSidebarItemLinkLevel(n),l&&[W.menuHtmlItem,"menu__list-item"],c),dangerouslySetInnerHTML:{__html:i}},a)}function P(e){let{item:t,...n}=e;switch(t.type){case"category":return(0,b.jsx)(w,{item:t,...n});case"html":return(0,b.jsx)(F,{item:t,...n});default:return(0,b.jsx)(R,{item:t,...n})}}function D(e){let{items:t,...n}=e;const a=(0,l.f)(t,n.activePath);return(0,b.jsx)(T,{children:a.map(((e,t)=>(0,b.jsx)(P,{item:e,index:t,...n},t)))})}const V=(0,a.memo)(D),U={menu:"menu_SIkG",menuWithAnnouncementBar:"menuWithAnnouncementBar_GW3s"};function K(e){let{path:t,sidebar:n,className:i}=e;const l=function(){const{isActive:e}=(0,C.nT)(),[t,n]=(0,a.useState)(e);return(0,d.RF)((t=>{let{scrollY:a}=t;e&&n(0===a)}),[e]),e&&t}();return(0,b.jsx)("nav",{"aria-label":(0,r.I)({id:"theme.docs.sidebar.navAriaLabel",message:"Docs sidebar",description:"The ARIA label for the sidebar navigation"}),className:(0,o.Z)("menu thin-scrollbar",U.menu,l&&U.menuWithAnnouncementBar,i),children:(0,b.jsx)("ul",{className:(0,o.Z)(s.k.docs.docSidebarMenu,"menu__list"),children:(0,b.jsx)(V,{items:n,activePath:t,level:1})})})}const Y="sidebar_njMd",z="sidebarWithHideableNavbar_wUlq",G="sidebarHidden_VK0M",O="sidebarLogo_isFc";function q(e){let{path:t,sidebar:n,onCollapse:a,isHidden:i}=e;const{navbar:{hideOnScroll:s},docs:{sidebar:{hideable:l}}}=(0,j.L)();return(0,b.jsxs)("div",{className:(0,o.Z)(Y,s&&z,i&&G),children:[s&&(0,b.jsx)(k.Z,{tabIndex:-1,className:O}),(0,b.jsx)(K,{path:t,sidebar:n}),l&&(0,b.jsx)(g,{onClick:a})]})}const J=a.memo(q);var Q=n(3102),X=n(2961);const $=e=>{let{sidebar:t,path:n}=e;const a=(0,X.e)();return(0,b.jsx)("ul",{className:(0,o.Z)(s.k.docs.docSidebarMenu,"menu__list"),children:(0,b.jsx)(V,{items:t,activePath:n,onItemClick:e=>{"category"===e.type&&e.href&&a.toggle(),"link"===e.type&&a.toggle()},level:1})})};function ee(e){return(0,b.jsx)(Q.Zo,{component:$,props:e})}const te=a.memo(ee);function ne(e){const t=(0,f.i)(),n="desktop"===t||"ssr"===t,a="mobile"===t;return(0,b.jsxs)(b.Fragment,{children:[n&&(0,b.jsx)(J,{...e}),a&&(0,b.jsx)(te,{...e})]})}const ae={expandButton:"expandButton_TmdG",expandButtonIcon:"expandButtonIcon_i1dp"};function oe(e){let{toggleSidebar:t}=e;return(0,b.jsx)("div",{className:ae.expandButton,title:(0,r.I)({id:"theme.docs.sidebar.expandButtonTitle",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),"aria-label":(0,r.I)({id:"theme.docs.sidebar.expandButtonAriaLabel",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),tabIndex:0,role:"button",onKeyDown:t,onClick:t,children:(0,b.jsx)(_,{className:ae.expandButtonIcon})})}const ie={docSidebarContainer:"docSidebarContainer_YfHR",docSidebarContainerHidden:"docSidebarContainerHidden_DPk8",sidebarViewport:"sidebarViewport_aRkj"};function se(e){let{children:t}=e;const n=(0,c.V)();return(0,b.jsx)(a.Fragment,{children:t},n?.name??"noSidebar")}function le(e){let{sidebar:t,hiddenSidebarContainer:n,setHiddenSidebarContainer:i}=e;const{pathname:l}=(0,x.TH)(),[c,r]=(0,a.useState)(!1),d=(0,a.useCallback)((()=>{c&&r(!1),!c&&(0,p.n)()&&r(!0),i((e=>!e))}),[i,c]);return(0,b.jsx)("aside",{className:(0,o.Z)(s.k.docs.docSidebarContainer,ie.docSidebarContainer,n&&ie.docSidebarContainerHidden),onTransitionEnd:e=>{e.currentTarget.classList.contains(ie.docSidebarContainer)&&n&&r(!0)},children:(0,b.jsx)(se,{children:(0,b.jsxs)("div",{className:(0,o.Z)(ie.sidebarViewport,c&&ie.sidebarViewportHidden),children:[(0,b.jsx)(ne,{sidebar:t,path:l,onCollapse:d,isHidden:c}),c&&(0,b.jsx)(oe,{toggleSidebar:d})]})})})}const ce={docMainContainer:"docMainContainer_TBSr",docMainContainerEnhanced:"docMainContainerEnhanced_lQrH",docItemWrapperEnhanced:"docItemWrapperEnhanced_JWYK"};function re(e){let{hiddenSidebarContainer:t,children:n}=e;const a=(0,c.V)();return(0,b.jsx)("main",{className:(0,o.Z)(ce.docMainContainer,(t||!a)&&ce.docMainContainerEnhanced),children:(0,b.jsx)("div",{className:(0,o.Z)("container padding-top--md padding-bottom--lg",ce.docItemWrapper,t&&ce.docItemWrapperEnhanced),children:n})})}const de={docRoot:"docRoot_UBD9",docsWrapper:"docsWrapper_hBAB"};function ue(e){let{children:t}=e;const n=(0,c.V)(),[o,i]=(0,a.useState)(!1);return(0,b.jsxs)("div",{className:de.docsWrapper,children:[(0,b.jsx)(h,{}),(0,b.jsxs)("div",{className:de.docRoot,children:[n&&(0,b.jsx)(le,{sidebar:n.items,hiddenSidebarContainer:o,setHiddenSidebarContainer:i}),(0,b.jsx)(re,{hiddenSidebarContainer:o,children:t})]})]})}var me=n(5658);function be(e){const t=(0,l.SN)(e);if(!t)return(0,b.jsx)(me.Z,{});const{docElement:n,sidebarName:a,sidebarItems:r}=t;return(0,b.jsx)(i.FG,{className:(0,o.Z)(s.k.page.docsDocPage),children:(0,b.jsx)(c.b,{name:a,items:r,children:(0,b.jsx)(ue,{children:n})})})}},5658:(e,t,n)=>{n.d(t,{Z:()=>l});n(7294);var a=n(512),o=n(5999),i=n(2503),s=n(5893);function l(e){let{className:t}=e;return(0,s.jsx)("main",{className:(0,a.Z)("container margin-vert--xl",t),children:(0,s.jsx)("div",{className:"row",children:(0,s.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,s.jsx)(i.Z,{as:"h1",className:"hero__title",children:(0,s.jsx)(o.Z,{id:"theme.NotFound.title",description:"The title of the 404 page",children:"Page Not Found"})}),(0,s.jsx)("p",{children:(0,s.jsx)(o.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page",children:"We could not find what you were looking for."})}),(0,s.jsx)("p",{children:(0,s.jsx)(o.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page",children:"Please contact the owner of the site that linked you to the original URL and let them know their link is broken."})})]})})})}}}]); \ No newline at end of file diff --git a/assets/js/a9e02168.48f27996.js b/assets/js/a9e02168.48f27996.js new file mode 100644 index 00000000..198405e1 --- /dev/null +++ b/assets/js/a9e02168.48f27996.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[663],{960:e=>{e.exports=JSON.parse('{"title":"Multi-Era","slug":"/category/multi-era","permalink":"/cardano-multiplatform-lib/category/multi-era","navigation":{"previous":{"title":"JSON","permalink":"/cardano-multiplatform-lib/modules/json"},"next":{"title":"Multi-Era","permalink":"/cardano-multiplatform-lib/modules/multi-era/"}}}')}}]); \ No newline at end of file diff --git a/assets/js/b5ddca27.43511ee0.js b/assets/js/b5ddca27.43511ee0.js new file mode 100644 index 00000000..3a6a8b4e --- /dev/null +++ b/assets/js/b5ddca27.43511ee0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[258],{2608:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>d,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>i,toc:()=>c});var s=r(5893),t=r(1151);const a={sidebar_position:3},o="Generating Keys and Addresses",i={id:"modules/crypto/generating_keys",title:"Generating Keys and Addresses",description:"BIP32 Keys",source:"@site/docs/modules/crypto/generating_keys.mdx",sourceDirName:"modules/crypto",slug:"/modules/crypto/generating_keys",permalink:"/cardano-multiplatform-lib/modules/crypto/generating_keys",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"tutorialSidebar",previous:{title:"Crypto",permalink:"/cardano-multiplatform-lib/category/crypto"},next:{title:"crypto",permalink:"/cardano-multiplatform-lib/modules/crypto/"}},d={},c=[{value:"BIP32 Keys",id:"bip32-keys",level:2},{value:"BIP39 Entropy",id:"bip39-entropy",level:2},{value:"Use in Addresses",id:"use-in-addresses",level:2},{value:"Other Key Types",id:"other-key-types",level:2}];function l(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",p:"p",pre:"pre",...(0,t.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h1,{id:"generating-keys-and-addresses",children:"Generating Keys and Addresses"}),"\n",(0,s.jsx)(n.h2,{id:"bip32-keys",children:"BIP32 Keys"}),"\n",(0,s.jsxs)(n.p,{children:["There are two main categories of keys in this library. There are the raw ",(0,s.jsx)(n.code,{children:"PublicKey"})," and ",(0,s.jsx)(n.code,{children:"PrivateKey"})," which are used for cryptographically signing/verifying, and ",(0,s.jsx)(n.code,{children:"BIP32PrivateKey"}),"/",(0,s.jsx)(n.code,{children:"BIP32PublicKey"})," which in addition to this have the ability to derive additional keys from them following the ",(0,s.jsx)(n.a,{href:"https://en.bitcoin.it/wiki/BIP_0032",children:"BIP32 derivation scheme"})," variant called BIP32-Ed25519, which will be referred to as BIP32 for brevity. We use the ",(0,s.jsx)(n.a,{href:"https://en.bitcoin.it/wiki/BIP_0044",children:"BIP44 spec"})," variant for Ed25519 as well for the derivation paths using 1852 or 44 as the purpose consant and 1815 for the coin type depending on address type. See ",(0,s.jsx)(n.a,{href:"https://github.com/input-output-hk/implementation-decisions/pull/18",children:"this doc"})," for more details."]}),"\n",(0,s.jsx)(n.p,{children:"This is demonstrated with the below code"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-javascript",children:'function harden(num: number): number {\n return 0x80000000 + num;\n}\n\n\nconst rootKey = CardanoWasm.BIP32PrivateKey.from_bech32("xprv17qx9vxm6060qjn5fgazfue9nwyf448w7upk60c3epln82vumg9r9kxzsud9uv5rfscxp382j2aku254zj3qfx9fx39t6hjwtmwq85uunsd8x0st3j66lzf5yn30hwq5n75zeuplepx8vxc502txx09ygjgx06n0p");\nconst accountKey = rootKey\n .derive(harden(1852)) // purpose\n .derive(harden(1815)) // coin type\n .derive(harden(0)); // account #0\n\nconst utxoPubKey = accountKey\n .derive(0) // external\n .derive(0)\n .to_public();\n\nconst stakeKey = accountKey\n .derive(2) // chimeric\n .derive(0)\n .to_public();\n'})}),"\n",(0,s.jsx)(n.h2,{id:"bip39-entropy",children:"BIP39 Entropy"}),"\n",(0,s.jsxs)(n.p,{children:["To generate a ",(0,s.jsx)(n.code,{children:"BIP32PrivateKey"})," from a BIP39 recovery phrase it must be first converted to entropy following the BIP39 protocol(). This library does not directly handle that, but once entropy is created it is possible to use ",(0,s.jsx)(n.code,{children:"Bip32PrivateKey.from_bip39_entropy(entropy, password)"}),". For more information see the ",(0,s.jsx)(n.a,{href:"https://github.com/cardano-foundation/CIPs/pull/3",children:"CIP3"})," Cardano improvement proposal. The code below uses the ",(0,s.jsx)(n.code,{children:"bip39"})," npm package to generate a root ",(0,s.jsx)(n.code,{children:"BIP32PrivateKey"})," from a BIP39 mnemonic."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-javascript",children:'import { mnemonicToEntropy } from \'bip39\';\n\nconst entropy = mnemonicToEntropy(\n [ "test", "walk", "nut", "penalty", "hip", "pave", "soap", "entry", "language", "right", "filter", "choice" ].join(\' \')\n);\n\nconst rootKey = CardanoWasm.Bip32PrivateKey.from_bip39_entropy(\n Buffer.from(entropy, \'hex\'),\n Buffer.from(\'\'),\n);\n'})}),"\n",(0,s.jsx)(n.h2,{id:"use-in-addresses",children:"Use in Addresses"}),"\n",(0,s.jsxs)(n.p,{children:["Once we have reached the desired derivation path, we must convert the ",(0,s.jsx)(n.code,{children:"BIP32PrivateKey"})," or ",(0,s.jsx)(n.code,{children:"BIP32PublicKey"})," to a ",(0,s.jsx)(n.code,{children:"PrivateKey"})," or ",(0,s.jsx)(n.code,{children:"PublicKey"})," by calling ",(0,s.jsx)(n.code,{children:".to_raw_key()"})," on them with the exception of Byron addresses.\nFor example, to create an address using the ",(0,s.jsx)(n.code,{children:"utxoPubKey"})," and ",(0,s.jsx)(n.code,{children:"stakeKey"})," in the first example, we can do:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-javascript",children:"// base address with staking key\nconst baseAddr = CardanoWasm.BaseAddress.new(\n CardanoWasm.NetworkInfo.mainnet().network_id(),\n CardanoWasm.StakeCredential.from_keyhash(utxoPubKey.to_raw_key().hash()),\n CardanoWasm.StakeCredential.from_keyhash(stakeKey.to_raw_key().hash()),\n);\n\n// enterprise address without staking ability, for use by exchanges/etc\nconst enterpriseAddr = CardanoWasm.EnterpriseAddress.new(\n CardanoWasm.NetworkInfo.mainnet().network_id(),\n CardanoWasm.StakeCredential.from_keyhash(utxoPubKey.to_raw_key().hash())\n);\n\n// pointer address - similar to Base address but can be shorter, see formal spec for explanation\nconst ptrAddr = CardanoWasm.PointerAddress.new(\n CardanoWasm.NetworkInfo.mainnet().network_id(),\n CardanoWasm.StakeCredential.from_keyhash(utxoPubKey.to_raw_key().hash()),\n CardanoWasm.Pointer.new(\n 100, // slot\n 2, // tx index in slot\n 0 // cert indiex in tx\n )\n);\n\n// reward address - used for withdrawing accumulated staking rewards\nconst rewardAddr = CardanoWasm.RewardAddress.new(\n CardanoWasm.NetworkInfo.mainnet().network_id(),\n CardanoWasm.StakeCredential.from_keyhash(stakeKey.to_raw_key().hash())\n);\n\n// bootstrap address - byron-era addresses with no staking rights\nconst byronAddr = CardanoWasm.ByronAddress.icarus_from_key(\n utxoPubKey, // Ae2* style icarus address\n CardanoWasm.NetworkInfo.mainnet().protocol_magic()\n);\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Note that the byron-era address can only be created in this library from icarus-style addresses that start in ",(0,s.jsx)(n.code,{children:"Ae2"})," and that Daedalus-style addresses starting in ",(0,s.jsx)(n.code,{children:"Dd"})," are not directly supported."]}),"\n",(0,s.jsxs)(n.p,{children:["These are all address variant types with information specific to its address type. There is also an ",(0,s.jsx)(n.code,{children:"Address"})," type which represents any of those variants, which is the type use in most parts of the library. For example to create a ",(0,s.jsx)(n.code,{children:"TransactionOutput"})," manually we would have to first convert from one of the address variants by doing:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-javascript",children:'const address = baseAddress.to_address();\n\nconst output = CardanoWasm.TransactionOutput(address, BigNum.from_str("365"));\n'})}),"\n",(0,s.jsx)(n.p,{children:"If the address is already a Shelley address in raw bytes or a bech32 string we can create it directly via:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-javascript",children:'const addr = CardanoWasm.Address.from_bech32("addr1vyt3w9chzut3w9chzut3w9chzut3w9chzut3w9chzut3w9cj43ltf");\n\n'})}),"\n",(0,s.jsx)(n.h2,{id:"other-key-types",children:"Other Key Types"}),"\n",(0,s.jsxs)(n.p,{children:["Conversion between ",(0,s.jsx)(n.code,{children:"cardano-cli"})," 128-byte ",(0,s.jsx)(n.code,{children:"XPrv"})," keys and ",(0,s.jsx)(n.code,{children:"BIP32PrivateKey"})," is also supported:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-javascript",children:"const bip32PrivateKey = CardanoWasm.BIP32PrivateKey.from_128_xprv(xprvBytes);\nassert(xprvBytes == CardanoWasm.BIP32PrivateKey.to_128_xprv());\n"})}),"\n",(0,s.jsxs)(n.p,{children:["96-byte ",(0,s.jsx)(n.code,{children:"XPrv"})," keys are identical to ",(0,s.jsx)(n.code,{children:"BIP32PrivateKey"}),"s byte-wise and no conversion is needed.\nFor more details see ",(0,s.jsx)(n.a,{href:"https://docs.cardano.org/projects/cardano-node/en/latest/stake-pool-operations/keys_and_addresses.html",children:"this document"})," regarding legacy keys."]}),"\n",(0,s.jsxs)(n.p,{children:["There is also ",(0,s.jsx)(n.code,{children:"LegacyDaedalusPrivateKey"})," which is used for creating witnesses for legacy Daedalus ",(0,s.jsx)(n.code,{children:"Dd"}),"-type addresses."]})]})}function h(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},1151:(e,n,r)=>{r.d(n,{Z:()=>i,a:()=>o});var s=r(7294);const t={},a=s.createContext(t);function o(e){const n=s.useContext(a);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),s.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/bbe6d832.162d02e5.js b/assets/js/bbe6d832.162d02e5.js new file mode 100644 index 00000000..aa71ecfa --- /dev/null +++ b/assets/js/bbe6d832.162d02e5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[461],{2119:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>c,contentTitle:()=>a,default:()=>l,frontMatter:()=>r,metadata:()=>s,toc:()=>d});var o=n(5893),i=n(1151);const r={sidebar_position:4},a="CIP36",s={id:"modules/cip36",title:"CIP36",description:"",source:"@site/docs/modules/cip36.mdx",sourceDirName:"modules",slug:"/modules/cip36",permalink:"/cardano-multiplatform-lib/modules/cip36",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"tutorialSidebar",previous:{title:"TransactionBuilder",permalink:"/cardano-multiplatform-lib/modules/builders/"},next:{title:"Metadata",permalink:"/cardano-multiplatform-lib/modules/metadata"}},c={},d=[];function u(t){const e={h1:"h1",...(0,i.a)(),...t.components};return(0,o.jsx)(e.h1,{id:"cip36",children:"CIP36"})}function l(t={}){const{wrapper:e}={...(0,i.a)(),...t.components};return e?(0,o.jsx)(e,{...t,children:(0,o.jsx)(u,{...t})}):u(t)}},1151:(t,e,n)=>{n.d(e,{Z:()=>s,a:()=>a});var o=n(7294);const i={},r=o.createContext(i);function a(t){const e=o.useContext(r);return o.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function s(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(i):t.components||i:a(t.components),o.createElement(r.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/c377a04b.10e5b1c9.js b/assets/js/c377a04b.10e5b1c9.js new file mode 100644 index 00000000..ec703c9a --- /dev/null +++ b/assets/js/c377a04b.10e5b1c9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[971],{9925:(e,i,s)=>{s.r(i),s.d(i,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>r,metadata:()=>o,toc:()=>c});var n=s(5893),t=s(1151);const r={sidebar_label:"Introduction",sidebar_position:1},a="Cardano Multiplatform Lib",o={id:"index",title:"Cardano Multiplatform Lib",description:"This is a library, written in Rust, that can be deployed to multiple platforms (Rust crate, JS, Typescript, WASM, etc). It handles:",source:"@site/docs/index.md",sourceDirName:".",slug:"/",permalink:"/cardano-multiplatform-lib/",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_label:"Introduction",sidebar_position:1},sidebar:"tutorialSidebar",next:{title:"Installation & Getting Started",permalink:"/cardano-multiplatform-lib/getting_started"}},l={},c=[{value:"NPM packages",id:"npm-packages",level:5},{value:"Rust crates",id:"rust-crates",level:5},{value:"Mobile bindings",id:"mobile-bindings",level:5},{value:"Pre-requisite knowledge",id:"pre-requisite-knowledge",level:2},{value:"Benefits of using this library",id:"benefits-of-using-this-library",level:2},{value:"A note on code examples",id:"a-note-on-code-examples",level:2},{value:"Documentation",id:"documentation",level:2}];function d(e){const i={a:"a",code:"code",h1:"h1",h2:"h2",h5:"h5",li:"li",p:"p",ul:"ul",...(0,t.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(i.h1,{id:"cardano-multiplatform-lib",children:"Cardano Multiplatform Lib"}),"\n",(0,n.jsx)(i.p,{children:"This is a library, written in Rust, that can be deployed to multiple platforms (Rust crate, JS, Typescript, WASM, etc). It handles:"}),"\n",(0,n.jsxs)(i.ul,{children:["\n",(0,n.jsx)(i.li,{children:"Serialization & deserialization of core data structures"}),"\n",(0,n.jsx)(i.li,{children:"Builders to streamline and verify the construction of transactions and related components"}),"\n",(0,n.jsx)(i.li,{children:"Useful utility functions for dApps & wallets"}),"\n"]}),"\n",(0,n.jsx)(i.h5,{id:"npm-packages",children:"NPM packages"}),"\n",(0,n.jsxs)(i.ul,{children:["\n",(0,n.jsxs)(i.li,{children:["browser: ",(0,n.jsx)(i.a,{href:"https://www.npmjs.com/package/@dcspark/cardano-multiplatform-lib-browser",children:"link"})]}),"\n",(0,n.jsxs)(i.li,{children:["nodejs: ",(0,n.jsx)(i.a,{href:"https://www.npmjs.com/package/@dcspark/cardano-multiplatform-lib-nodejs",children:"link"})]}),"\n"]}),"\n",(0,n.jsx)(i.p,{children:"There is also an outdated asm.js . It is strongly discouraged from using this as it is out of date and asm.js results in incredibly slow cryptographic operations."}),"\n",(0,n.jsxs)(i.ul,{children:["\n",(0,n.jsxs)(i.li,{children:["asm.js (strongly discouraged): ",(0,n.jsx)(i.a,{href:"https://www.npmjs.com/package/@dcspark/cardano-multiplatform-lib-asmjs",children:"link"})]}),"\n"]}),"\n",(0,n.jsx)(i.p,{children:"Note: If you are using WebPack, you must use version 5 or later for CML to work."}),"\n",(0,n.jsx)(i.h5,{id:"rust-crates",children:"Rust crates"}),"\n",(0,n.jsx)(i.p,{children:"The rust crates are split up by functionality."}),"\n",(0,n.jsxs)(i.ul,{children:["\n",(0,n.jsxs)(i.li,{children:["core: ",(0,n.jsx)(i.a,{href:"https://crates.io/crates/cml-core",children:"link"})]}),"\n",(0,n.jsxs)(i.li,{children:["crypto: ",(0,n.jsx)(i.a,{href:"https://crates.io/crates/cml-crypto",children:"link"})]}),"\n",(0,n.jsxs)(i.li,{children:["chain: ",(0,n.jsx)(i.a,{href:"https://crates.io/crates/cml-chain",children:"link"})]}),"\n",(0,n.jsxs)(i.li,{children:["multi-era: ",(0,n.jsx)(i.a,{href:"https://crates.io/crates/cml-multi-era",children:"link"})]}),"\n",(0,n.jsxs)(i.li,{children:["cip25: ",(0,n.jsx)(i.a,{href:"https://crates.io/crates/cml-cip25",children:"link"})]}),"\n",(0,n.jsxs)(i.li,{children:["cip36: ",(0,n.jsx)(i.a,{href:"https://crates.io/crates/cml-cip36",children:"link"})]}),"\n"]}),"\n",(0,n.jsxs)(i.p,{children:["Most users will likely be using primarily ",(0,n.jsx)(i.code,{children:"cml-chain"})," for general uses, ",(0,n.jsx)(i.code,{children:"cml-multi-era"})," if they need historical (pre-babbage eras) chain-parsing and ",(0,n.jsx)(i.code,{children:"cip25"})," or ",(0,n.jsx)(i.code,{children:"cip36"})," if they need those specific metadata standards."]}),"\n",(0,n.jsx)(i.h5,{id:"mobile-bindings",children:"Mobile bindings"}),"\n",(0,n.jsx)(i.p,{children:"We recommend using Ionic + Capacitor or an equivalent setup to have the WASM bindings working in mobile"}),"\n",(0,n.jsx)(i.h2,{id:"pre-requisite-knowledge",children:"Pre-requisite knowledge"}),"\n",(0,n.jsx)(i.p,{children:"This library assumes a certain amount of knowledge about how Cardano works (to avoid re-documenting the wheel)."}),"\n",(0,n.jsxs)(i.p,{children:["You can find the specifications of Cardano's ledger ",(0,n.jsx)(i.a,{href:"https://github.com/input-output-hk/cardano-ledger-specs",children:"here"})," which we suggest consulting as you use this library. Notably, the ",(0,n.jsx)(i.code,{children:"Shelley ledger formal specification"})," covers the core concepts. Make sure to check the specs for later eras as well when needed."]}),"\n",(0,n.jsx)(i.h2,{id:"benefits-of-using-this-library",children:"Benefits of using this library"}),"\n",(0,n.jsxs)(i.p,{children:["Serialization/deserialization code is automatically generated from\nCardano\u2019s official specification, which guarantees it can easily stay up\nto date! We do this using a tool managed by EMURGO & dcSpark called ",(0,n.jsx)(i.code,{children:"cddl-codegen"}),"\nwhich can be re-used for other tasks such as automatically generate a\nRust library for Cardano metadata specifications!"]}),"\n",(0,n.jsx)(i.p,{children:"The most important feature of this is that CML has been generated to allow all CBOR details to be preserved.\nWith CBOR many CBOR structures can have multiple ways to serialize to bytes from the same equivalent structure.\nThis causes issues especially when computing hashes and is a frequent problem with working across tools e.g. cardano-node-cli and cardano-serialization-lib encoding plutus datums differently. This makes CML much more compatible with all other libraries as it will remember all these specific CBOR encoding details. This is particularly important for use with dApps and wallets connecting to dApps."}),"\n",(0,n.jsx)(i.p,{children:"It is also very easy to create scripts in Rust or WASM to share with\nstake pools, or even embed inside an online tool! No more crazy\ncardano-cli bash scripts!"}),"\n",(0,n.jsx)(i.p,{children:"Powerful and flexible enough to be used to power wallets and exchanges!\n(Yes, it\u2019s used in production!)"}),"\n",(0,n.jsx)(i.h2,{id:"a-note-on-code-examples",children:"A note on code examples"}),"\n",(0,n.jsxs)(i.p,{children:["All code examples are using the WASM (typescript/javascript) API. If you are using CML from rust you will need to change the code to rust syntax e.g. ",(0,n.jsx)(i.code,{children:"Foo.bar()"})," to ",(0,n.jsx)(i.code,{children:"Foo::new()"})," etc. We've tried to keep the API as consistent as possible between the different bindings but some exceptions exist. The array/map wrappers (e.g. ",(0,n.jsx)(i.code,{children:"FooList"})," / ",(0,n.jsx)(i.code,{children:"MapFooToBar"}),") in WASM are simply ",(0,n.jsx)(i.code,{children:"Vec<Foo>"})," and ",(0,n.jsx)(i.code,{children:"OrderedHashMap<Foo, Bar>"})," respectively. There will be some changes relating to reference params/moving/etc as well."]}),"\n",(0,n.jsxs)(i.p,{children:["You can find complete examples in the ",(0,n.jsx)(i.code,{children:"/examples/"})," directory."]}),"\n",(0,n.jsx)(i.h2,{id:"documentation",children:"Documentation"}),"\n",(0,n.jsxs)(i.p,{children:["This library generates ",(0,n.jsx)(i.code,{children:"Typescript"})," type definitions, so it\u2019s often easiest to see what is possible by just looking at the types! These are found in the ",(0,n.jsx)(i.code,{children:".ts"})," file in the npm package roots.\nIf you are using rust the full API will be shown in the respective crates.io pages."]})]})}function h(e={}){const{wrapper:i}={...(0,t.a)(),...e.components};return i?(0,n.jsx)(i,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},1151:(e,i,s)=>{s.d(i,{Z:()=>o,a:()=>a});var n=s(7294);const t={},r=n.createContext(t);function a(e){const i=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function o(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:a(e.components),n.createElement(r.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c7581e31.c24443d3.js b/assets/js/c7581e31.c24443d3.js new file mode 100644 index 00000000..f9581118 --- /dev/null +++ b/assets/js/c7581e31.c24443d3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[381],{3218:e=>{e.exports=JSON.parse('{"title":"Core","slug":"/category/core","permalink":"/cardano-multiplatform-lib/category/core","navigation":{"previous":{"title":"CBOR","permalink":"/cardano-multiplatform-lib/modules/cbor"},"next":{"title":"Core","permalink":"/cardano-multiplatform-lib/modules/core/"}}}')}}]); \ No newline at end of file diff --git a/assets/js/d16dc6d6.0e8b1a56.js b/assets/js/d16dc6d6.0e8b1a56.js new file mode 100644 index 00000000..40ef411d --- /dev/null +++ b/assets/js/d16dc6d6.0e8b1a56.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[200],{8646:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>d,default:()=>u,frontMatter:()=>o,metadata:()=>r,toc:()=>c});var s=n(5893),a=n(1151);const o={sidebar_position:2},d="JSON",r={id:"modules/json",title:"JSON",description:"General structs",source:"@site/docs/modules/json.mdx",sourceDirName:"modules",slug:"/modules/json",permalink:"/cardano-multiplatform-lib/modules/json",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"crypto",permalink:"/cardano-multiplatform-lib/modules/crypto/"},next:{title:"Multi-Era",permalink:"/cardano-multiplatform-lib/category/multi-era"}},i={},c=[{value:"General structs",id:"general-structs",level:2},{value:"WASM",id:"wasm",level:3},{value:"Rust",id:"rust",level:3},{value:"Metadata",id:"metadata",level:2},{value:"Plutus Datums",id:"plutus-datums",level:2}];function l(e){const t={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",p:"p",pre:"pre",...(0,a.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h1,{id:"json",children:"JSON"}),"\n",(0,s.jsx)(t.h2,{id:"general-structs",children:"General structs"}),"\n",(0,s.jsxs)(t.p,{children:["All on-chain types have to/from JSON support. The vast majority is auto-generated but some have custom logic e.g. ",(0,s.jsx)(t.code,{children:"Url"}),", ",(0,s.jsx)(t.code,{children:"Ipv4"}),", ",(0,s.jsx)(t.code,{children:"BigInteger"}),", etc."]}),"\n",(0,s.jsx)(t.h3,{id:"wasm",children:"WASM"}),"\n",(0,s.jsxs)(t.p,{children:["In WASM JSON conversions are exposed by ",(0,s.jsx)(t.code,{children:".to_json()"})," and ",(0,s.jsx)(t.code,{children:".from_json()"})," methods on all supported wrappers. There is also a ",(0,s.jsx)(t.code,{children:"to_js_value()"}),"."]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-javascript",children:'let txInJson = "{\\"transaction_id\\":\\"0fba1404ed9b82b41938ba2e8bda7bec8cce813fb7e7cd7692b43caa76fe891c\\",\\"index\\":3}";\n\nlet txIn = CML.TransactionInput.from_json(txInJson);\n\nconsole.log(`txIn JSON: ${txIn.to_json()}`);\n'})}),"\n",(0,s.jsx)(t.h3,{id:"rust",children:"Rust"}),"\n",(0,s.jsxs)(t.p,{children:["JSON conversions are exposed in rust via the ",(0,s.jsx)(t.a,{href:"https://docs.rs/serde/latest/serde/trait.Serialize.html",children:(0,s.jsx)(t.code,{children:"serde::Serialize"})})," and ",(0,s.jsx)(t.a,{href:"https://docs.rs/serde/latest/serde/trait.Deserialize.html",children:(0,s.jsx)(t.code,{children:"serde::Deserialize"})})," traits together with ",(0,s.jsx)(t.code,{children:"serde_json"}),"."]}),"\n",(0,s.jsx)(t.p,{children:"example:"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-rust",children:'let tx_in_json = "{\\"transaction_id\\":\\"0fba1404ed9b82b41938ba2e8bda7bec8cce813fb7e7cd7692b43caa76fe891c\\",\\"index\\":3}";\n\n// from JSON using serde_json::from_str() - note the type annotations\nlet tx_in: TransactionInput = serde_json::from_str(tx_in_json).unwrap();\n\n// to JSON using serde_json::to_string() - use to_string_pretty() if you want more human-readable formatting\nprintln!("tx_in JSON: {}", serde_json::to_string(&tx_in).unwrap());\n'})}),"\n",(0,s.jsx)(t.h2,{id:"metadata",children:"Metadata"}),"\n",(0,s.jsx)(t.p,{children:"Metadata, on top of the generic API mentioned above, has specific JSON functionality for compatability with cardano-node."}),"\n",(0,s.jsxs)(t.p,{children:["There are three formats on ",(0,s.jsx)(t.code,{children:"MetadataJsonSchema"}),". ",(0,s.jsx)(t.code,{children:"NoConversions"})," is the stricted, stricter than cardano-node and only converts when there are no implicit conversions at all. ",(0,s.jsx)(t.code,{children:"BasicConversions"})," is the node's ",(0,s.jsx)(t.code,{children:"TxMetadataJsonNoSchema"})," and ",(0,s.jsx)(t.code,{children:"DetailedSchema"})," its ",(0,s.jsx)(t.code,{children:"TxMetadataJsonDetailedSchema"}),". See ",(0,s.jsx)(t.code,{children:"MetadataJsonSchema"})," for more info on the schema."]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-javascript",children:'let basic_json = "{\\"0x8badf00d\\": \\"0xdeadbeef\\",\\"9\\": 5,\\"obj\\": {\\"a\\":[{\\"5\\": 2},{}]}}";\nlet metadatum = CML.encode_json_str_to_metadatum(basic_json, CML.MetadataJsonSchema.BasicConversions);\nconsole.log(`detailed json: ${CML.decode_metadatum_to_json_str(metadatum, CML.MetadataJsonSchema.DetailedSchema)}`);\n// OUTPUT:\n// detailed json: {"map":[{"k":{"bytes":"8badf00d"},"v":{"bytes":"deadbeef"}},{"k":{"int":9},"v":{"int":5}},{"k":{"string":"obj"},"v":{"map":[{"k":{"string":"a"},"v":{"list":[{"map":[{"k":{"int":5},"v":{"int":2}}]},{"map":[]}]}}]}}]}\n'})}),"\n",(0,s.jsx)(t.h2,{id:"plutus-datums",children:"Plutus Datums"}),"\n",(0,s.jsxs)(t.p,{children:["Plutus datums also have additional cardano-node JSON support. Remember that Plutus has no String datum so the strings there will be converted to utf8 bytes. See ",(0,s.jsx)(t.code,{children:"CardanoNodePlutusDatumSchema"})," for more info on the schema."]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-javascript",children:'let basic_json = "{ \\"100\\": [ { \\"x\\": \\"0\\", \\"y\\": 1 } ], \\"foo\\": \\"0x0000baadf00d0000cafed00d0000deadbeef0000\\" }";\nlet datum = CML.encode_json_str_to_plutus_datum(basic_json, CML.CardanoNodePlutusDatumSchema.BasicConversions);\nconsole.log(`detailed json: ${CML.decode_plutus_datum_to_json_str(datum, CML.CardanoNodePlutusDatumSchema.DetailedSchema,\n)}`);\n// OUTPUT:\n// detailed json: {"map":[{"k":{"int":100},"v":{"list":[{"map":[{"k":{"bytes":"78"},"v":{"bytes":"30"}},{"k":{"bytes":"79"},"v":{"int":1}}]}]}},{"k":{"bytes":"666f6f"},"v":{"bytes":"0000baadf00d0000cafed00d0000deadbeef0000"}}]}\n'})})]})}function u(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>r,a:()=>d});var s=n(7294);const a={},o=s.createContext(a);function d(e){const t=s.useContext(o);return s.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(a):e.components||a:d(e.components),s.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/d1737d8e.b0eec86d.js b/assets/js/d1737d8e.b0eec86d.js new file mode 100644 index 00000000..80288039 --- /dev/null +++ b/assets/js/d1737d8e.b0eec86d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[392],{654:e=>{e.exports=JSON.parse('{"title":"Chain","slug":"/category/chain","permalink":"/cardano-multiplatform-lib/category/chain","navigation":{"previous":{"title":"Core","permalink":"/cardano-multiplatform-lib/modules/core/"},"next":{"title":"Chain","permalink":"/cardano-multiplatform-lib/modules/chain/"}}}')}}]); \ No newline at end of file diff --git a/assets/js/dd8d23a4.8124b095.js b/assets/js/dd8d23a4.8124b095.js new file mode 100644 index 00000000..2668c16d --- /dev/null +++ b/assets/js/dd8d23a4.8124b095.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[953],{8516:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>r,default:()=>u,frontMatter:()=>i,metadata:()=>o,toc:()=>l});var a=n(5893),s=n(1151);const i={sidebar_position:4},r=void 0,o={id:"modules/builders/generating_transactions",title:"generating_transactions",description:"Example code",source:"@site/docs/modules/builders/generating_transactions.mdx",sourceDirName:"modules/builders",slug:"/modules/builders/generating_transactions",permalink:"/cardano-multiplatform-lib/modules/builders/generating_transactions",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"tutorialSidebar",previous:{title:"Builders",permalink:"/cardano-multiplatform-lib/category/builders"},next:{title:"TransactionBuilder",permalink:"/cardano-multiplatform-lib/modules/builders/"}},d={},l=[{value:"Example code",id:"example-code",level:2},{value:"A note on fees",id:"a-note-on-fees",level:2}];function c(e){const t={a:"a",code:"code",h2:"h2",p:"p",pre:"pre",...(0,s.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.h2,{id:"example-code",children:"Example code"}),"\n",(0,a.jsx)(t.p,{children:"The example below builds a transaction with all 2 of the 3 input types: key and bootstrap.\nMultisig (script) inputs are essentially identical to key inputs, but using the scripthash instead of the keyhash, however they are not supported for implicit fee calculation yet.\nFees are automatically calculated and sent to a change address in the example."}),"\n",(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{className:"language-javascript",children:'// instantiate the tx builder with the Cardano protocol parameters - these may change later on\nconst txBuilder = makeTxBuilder();\nconst testnetId = 0;\n// add a keyhash input - for ADA held in a Shelley-era normal address (Base, Enterprise, Pointer)\nconst prvKey = CML.PrivateKey.from_bech32("ed25519e_sk16rl5fqqf4mg27syjzjrq8h3vq44jnnv52mvyzdttldszjj7a64xtmjwgjtfy25lu0xmv40306lj9pcqpa6slry9eh3mtlqvfjz93vuq0grl80");\nconst inputAddr = CML.EnterpriseAddress.new(testnetId, CML.StakeCredential.new_key(prvKey.to_public().hash())).to_address();\ntxBuilder.add_input(CML.SingleInputBuilder.new(\n CML.TransactionInput.new(\n CML.TransactionHash.from_hex("8561258e210352fba2ac0488afed67b3427a27ccf1d41ec030c98a8199bc22ec"), // tx hash\n 0, // index\n ),\n CML.TransactionOutput.new(\n inputAddr,\n CML.Value.from_coin(BigInt(6000000)),\n )\n);\n\n// base address\nconst outputAddress = CML.Address.from_bech32("addr_test1qpu5vlrf4xkxv2qpwngf6cjhtw542ayty80v8dyr49rf5ewvxwdrt70qlcpeeagscasafhffqsxy36t90ldv06wqrk2qum8x5w");\n// pointer address\nconst changeAddress = CML.Address.from_bech32("addr_test1gz2fxv2umyhttkxyxp8x0dlpdt3k6cwng5pxj3jhsydzerspqgpsqe70et");\n\n// add output to the tx\ntxBuilder.add_output(\n CML.TransactionOutputBuilder()\n .with_address(outputAddress)\n .next()\n .with_value(CML.Value.from_coin(BigInt(1000000)))\n .build()\n);\n\n// calculate the min fee required and send any change to an address\n// this moves onto the next step of building the transaction: providing witnesses\nconst signedTxBuilder = tx_builder.build(\n changeAddress,\n CML.ChangeSelectionAlgo.Default\n);\n\n// sign with the key that owns the input used\nsignedTxBuilder.add_vkey(CML.make_vkey_witness(txHash, prvKey));\n\nconst tx = signedTxBuilder.build_checked();\n// ready to submit, can be converted to CBOR via tx.to_cbor_bytes() or to_cbor_hex() for hex\n'})}),"\n",(0,a.jsx)(t.h2,{id:"a-note-on-fees",children:"A note on fees"}),"\n",(0,a.jsxs)(t.p,{children:["Fees in Cardano are based directly on the size of the final encoded transaction. It is important to note that a transaction created by this library potentially can vary in size compared to one built with other tools. This is because transactions, as well as other Cardano structures, are encoded using ",(0,a.jsx)(t.a,{href:"https://cbor.io/",children:"CBOR"})," a binary JSON-like encoding. Due to arrays and maps allowing both definite or indefinite length encoding in the encoded transaction created by the library, the size can vary. This is because definite encoding consists of a tag containing the size of the array/map which can be 1 or more bytes long depending on the number of elements the size of the encoded structure, while indefinite length encoding consists of a 1 byte starting tag and after all elements are listed, a 1 byte ending tag. These variances should should only be a couple bytes and cardano-multiplatform-lib uses definite encoding by default which is the same length or smaller for any reasonable sized transaction."]})]})}function u(e={}){const{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(c,{...e})}):c(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>o,a:()=>r});var a=n(7294);const s={},i=a.createContext(s);function r(e){const t=a.useContext(i);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),a.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e7958d21.f670ea2c.js b/assets/js/e7958d21.f670ea2c.js new file mode 100644 index 00000000..115a7850 --- /dev/null +++ b/assets/js/e7958d21.f670ea2c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[659],{5871:(t,e,r)=>{r.r(e),r.d(e,{assets:()=>a,contentTitle:()=>o,default:()=>d,frontMatter:()=>s,metadata:()=>c,toc:()=>l});var n=r(5893),i=r(1151);const s={sidebar_position:3},o="Crate Architecture",c={id:"crate_architecture",title:"Crate Architecture",description:"- Core - Core types common throughout all CML crates.",source:"@site/docs/crate_architecture.mdx",sourceDirName:".",slug:"/crate_architecture",permalink:"/cardano-multiplatform-lib/crate_architecture",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"tutorialSidebar",previous:{title:"Installation & Getting Started",permalink:"/cardano-multiplatform-lib/getting_started"},next:{title:"Modules",permalink:"/cardano-multiplatform-lib/category/modules"}},a={},l=[];function u(t){const e={h1:"h1",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.a)(),...t.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(e.h1,{id:"crate-architecture",children:"Crate Architecture"}),"\n",(0,n.jsxs)(e.ul,{children:["\n",(0,n.jsxs)(e.li,{children:["\n",(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:"Core"})," - Core types common throughout all CML crates."]}),"\n"]}),"\n",(0,n.jsxs)(e.li,{children:["\n",(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:"Chain"})," - Current era on-chain types, plus utility functionality and builders for creating these types. This is likely the crate most users will want to use."]}),"\n"]}),"\n",(0,n.jsxs)(e.li,{children:["\n",(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:"Crypto"})," - Crypto primitives used throughout CML. Keys, signatures, etc."]}),"\n"]}),"\n",(0,n.jsxs)(e.li,{children:["\n",(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:"CIP25"})," - Library for working with CIP25 NFT metadata."]}),"\n"]}),"\n",(0,n.jsxs)(e.li,{children:["\n",(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:"CIP36"})," - Library for working with CIP36 (catalyst) registration types."]}),"\n"]}),"\n",(0,n.jsxs)(e.li,{children:["\n",(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:"Multi-Era"})," - On-chain types for previous eras (Byron, Shelley, Alonzo, Babbage, etc) plus era-agnostic wrappers around this for parsing historical blockchain data."]}),"\n"]}),"\n"]})]})}function d(t={}){const{wrapper:e}={...(0,i.a)(),...t.components};return e?(0,n.jsx)(e,{...t,children:(0,n.jsx)(u,{...t})}):u(t)}},1151:(t,e,r)=>{r.d(e,{Z:()=>c,a:()=>o});var n=r(7294);const i={},s=n.createContext(i);function o(t){const e=n.useContext(s);return n.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function c(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(i):t.components||i:o(t.components),n.createElement(s.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/eb14df67.6db07931.js b/assets/js/eb14df67.6db07931.js new file mode 100644 index 00000000..67b9cbc6 --- /dev/null +++ b/assets/js/eb14df67.6db07931.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[31],{3157:e=>{e.exports=JSON.parse('{"title":"Modules","slug":"/category/modules","permalink":"/cardano-multiplatform-lib/category/modules","navigation":{"previous":{"title":"Crate Architecture","permalink":"/cardano-multiplatform-lib/crate_architecture"},"next":{"title":"CBOR","permalink":"/cardano-multiplatform-lib/modules/cbor"}}}')}}]); \ No newline at end of file diff --git a/assets/js/f41b0af6.a76d7160.js b/assets/js/f41b0af6.a76d7160.js new file mode 100644 index 00000000..c7793647 --- /dev/null +++ b/assets/js/f41b0af6.a76d7160.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[650],{5783:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>r,default:()=>h,frontMatter:()=>i,metadata:()=>d,toc:()=>c});var a=t(5893),s=t(1151);const i={sidebar_position:6},r="Metadata",d={id:"modules/metadata",title:"Metadata",description:"Transaction Metadata format",source:"@site/docs/modules/metadata.mdx",sourceDirName:"modules",slug:"/modules/metadata",permalink:"/cardano-multiplatform-lib/modules/metadata",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:6,frontMatter:{sidebar_position:6},sidebar:"tutorialSidebar",previous:{title:"CIP36",permalink:"/cardano-multiplatform-lib/modules/cip36"},next:{title:"WASM Usage",permalink:"/cardano-multiplatform-lib/modules/wasm"}},o={},c=[{value:"Transaction Metadata format",id:"transaction-metadata-format",level:2},{value:"Metadata limitations",id:"metadata-limitations",level:2},{value:"Direct use",id:"direct-use",level:2},{value:"JSON conversion",id:"json-conversion",level:2},{value:"Using a CDDL Subset",id:"using-a-cddl-subset",level:2},{value:"Raw Bytes Encoding",id:"raw-bytes-encoding",level:2}];function l(e){const n={a:"a",code:"code",em:"em",h1:"h1",h2:"h2",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,s.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.h1,{id:"metadata",children:"Metadata"}),"\n",(0,a.jsx)(n.h2,{id:"transaction-metadata-format",children:"Transaction Metadata format"}),"\n",(0,a.jsxs)(n.p,{children:["Transaction after the Shelley hardfork can contain arbitrary transaction meta (",(0,a.jsx)(n.strong,{children:"note:"})," this is NOT the same as pool metadata)"]}),"\n",(0,a.jsx)(n.p,{children:"Transaction metadata takes the form of a map of metadatums, which are recursive JSON-like structures."}),"\n",(0,a.jsxs)(n.p,{children:["It is defined in ",(0,a.jsx)(n.a,{href:"https://tools.ietf.org/html/rfc8610",children:"CDDL"}),", a schema grammar for representing ",(0,a.jsx)(n.a,{href:"https://tools.ietf.org/html/rfc7049",children:"CBOR"})," binary encoding as:"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{children:"transaction_metadatum =\n { * transaction_metadatum => transaction_metadatum }\n / [ * transaction_metadatum ]\n / int\n / bytes .size (0..64)\n / text .size (0..64)\n\ntransaction_metadatum_label = uint\n\ntransaction_metadata =\n { * transaction_metadatum_label => transaction_metadatum }\n"})}),"\n",(0,a.jsxs)(n.p,{children:["For each use we use a metadatum label specific to our use into the ",(0,a.jsx)(n.code,{children:"TransactionMetadatum"})," map. If we had a JSON object such as"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-json",children:'{\n "receiver_id": "SJKdj34k3jjKFDKfjFUDfdjkfd",\n "sender_id": "jkfdsufjdk34h3Sdfjdhfduf873",\n "comment": "happy birthday",\n "tags": [0, 264, -1024, 32]\n}\n'})}),"\n",(0,a.jsx)(n.p,{children:"There are 4 ways we can achieve this with different trade-offs:"}),"\n",(0,a.jsxs)(n.ol,{children:["\n",(0,a.jsx)(n.li,{children:"Directly use: using the Metadata-related structures used in the library"}),"\n",(0,a.jsx)(n.li,{children:"JSON conversion: conversion to/from JSON using our utility functions"}),"\n",(0,a.jsx)(n.li,{children:"CDDL subset: writing a CDDL spec of this structure that is representable by that recursive metadatum CDDL"}),"\n",(0,a.jsx)(n.li,{children:"Raw bytes: encoding raw-bytes using our utility functions."}),"\n"]}),"\n",(0,a.jsx)(n.p,{children:"Each section will give examples of how to encode a similar structure. Understanding CDDL is only necessary for the last 2 options, but it is fairly simple to understand."}),"\n",(0,a.jsx)(n.p,{children:"If your metadata schema is fixed and will be used frequently you should consider the CDDL spec option.\nIf your schema is not often used or used from many languages, the JSON option can be good as it is low set-up and fairly tech agnostic.\nIf your schema is very dynamic or non-existent, the direct use or JSON options are likely best.\nThe raw bytes option is only recommended if your data does not conform to the metadata format."}),"\n",(0,a.jsx)(n.h2,{id:"metadata-limitations",children:"Metadata limitations"}),"\n",(0,a.jsx)(n.p,{children:"These limitations are mentioned in the CDDL definition, but are worth also mentioning in prose:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"Strings must be at most 64 bytes when UTF-8 encoded."}),"\n",(0,a.jsx)(n.li,{children:"Bytestrings are hex-encoded, with a maximum length of 64 bytes."}),"\n"]}),"\n",(0,a.jsx)(n.h2,{id:"direct-use",children:"Direct use"}),"\n",(0,a.jsx)(n.p,{children:"Upsides:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"Flexible"}),"\n",(0,a.jsx)(n.li,{children:"Readable by other methods"}),"\n"]}),"\n",(0,a.jsx)(n.p,{children:"Downsides:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"Can be quite tedious to write"}),"\n",(0,a.jsx)(n.li,{children:"Structural validation must be done by hand (partially)"}),"\n"]}),"\n",(0,a.jsx)(n.p,{children:"As the metadatum structure is fairly expressive, we can directly use it using the structs in the metadata module of this library. These directly represent the types given in the CDDL. Namely:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"TransactionMetadatum - Can represent one of those 5 variant types."}),"\n",(0,a.jsx)(n.li,{children:"MetadataMap - The map variant that maps from metadatums to other metadatums. This is unordered and indexed by metadatums. This is like an object in JSON."}),"\n",(0,a.jsx)(n.li,{children:"MetadataList - An ordered list indexed starting at 0. This is like an array in JSON."}),"\n"]}),"\n",(0,a.jsxs)(n.p,{children:["The variants for numbers, bytes and text are not specific to metadata and are directly used with the general ",(0,a.jsx)(n.code,{children:"Int"})," type representing a signed or unsigned number, byte arrays accepting byte arrays/",(0,a.jsx)(n.code,{children:"Buffer"}),", and strings being JS strings."]}),"\n",(0,a.jsx)(n.p,{children:"We could construct the JSON example above with the following code:"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-javascript",children:'const map = CardanoWasm.MetadataMap.new();\nmap.insert(\n CardanoWasm.TransactionMetadatum.new_text("receiver_id"),\n CardanoWasm.TransactionMetadatum.new_text("SJKdj34k3jjKFDKfjFUDfdjkfd"),\n);\nmap.insert(\n CardanoWasm.TransactionMetadatum.new_text("sender_id"),\n CardanoWasm.TransactionMetadatum.new_text("jkfdsufjdk34h3Sdfjdhfduf873"),\n);\nmap.insert(\n CardanoWasm.TransactionMetadatum.new_text("comment"),\n CardanoWasm.TransactionMetadatum.new_text("happy birthday"),\n);\nconst tags = CardanoWasm.MetadataList.new();\ntags.add(CardanoWasm.TransactionMetadatum.new_int(CardanoWasm.Int.new(CardanoWasm.BigNum.from_str("0"))));\ntags.add(CardanoWasm.TransactionMetadatum.new_int(CardanoWasm.Int.new(CardanoWasm.BigNum.from_str("264"))));\ntags.add(CardanoWasm.TransactionMetadatum.new_int(CardanoWasm.Int.new_negative(CardanoWasm.BigNum.from_str("1024"))));\ntags.add(CardanoWasm.TransactionMetadatum.new_int(CardanoWasm.Int.new(CardanoWasm.BigNum.from_str("32"))));\nmap.insert(\n CardanoWasm.TransactionMetadatum.new_text("tags"),\n CardanoWasm.TransactionMetadatum.new_list(tags),\n);\nconst metadatum = CardanoWasm.TransactionMetadatum.new_map(map);\n'})}),"\n",(0,a.jsx)(n.p,{children:"We could then parse the information back as such:"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-javascript",children:'try {\n const map = metadatum.as_map();\n const receiver = map.get(CardanoWasm.TransactionMetadatum.new_text("receiver_id"));\n const sender = map.get(CardanoWasm.TransactionMetadatum.new_text("sender_id"));\n const comment = map.get(CardanoWasm.TransactionMetadatum.new_text("comment"));\n const tags = map.get(CardanoWasm.TransactionMetadatum.new_text("tags"));\n} catch (e) {\n // structure did not match\n}\n'})}),"\n",(0,a.jsx)(n.p,{children:"For decoding in a more exploratory manner we can check the types first as such:"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-javascript",children:"function parseMetadata(metadata) {\n // we must check the type first to know how to handle it\n switch (metadata.kind()) {\n case CardanoWasm.TransactionMetadatumKind.MetadataMap:\n const mapRet = new Map();\n const map = metadata.as_map();\n const keys = maps.keys();\n for (var i = 0; i < keys.len(); i += 1) {\n const key = keys.get(i);\n const value = parseMetadata(map.get(key);\n mapRet.set(key, value);\n }\n return mapRet;\n case CardanoWasm.TransactionMetadatumKind.MetadataList:\n let arrRet = [];\n const arr = metadata.as_list();\n for (var i = 0; i < arr.len(); i += 1) {\n const elem = parseMetadata(arr.get(i));\n arrRet.push(elem);\n }\n return arrRet;\n case CardanoWasm.TransactionMetadatumKind.Int:\n const x = metadata.as_int();\n // If the integer is too big as_i32() returns undefined\n // to handle larger numbers we need to use x.as_positive() / x.as_negative() and\n // convert from BigNums after checking x.is_positive() first\n return x.as_i32();\n case CardanoWasm.TransactionMetadatumKind.Bytes:\n return Buffer.from(metadata.as_bytes());\n case CardanoWasm.TransactionMetadatumKind.Text:\n return metadata.as_text();\n }\n}\n"})}),"\n",(0,a.jsxs)(n.p,{children:["which recursively parses the ",(0,a.jsx)(n.code,{children:"TransactionMetadatum"})," struct and transforms it into a JS ",(0,a.jsx)(n.code,{children:"Map"})," / JS ",(0,a.jsx)(n.code,{children:"object"})," structure by manually checking the types."]}),"\n",(0,a.jsx)(n.h2,{id:"json-conversion",children:"JSON conversion"}),"\n",(0,a.jsx)(n.p,{children:"Upsides:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"Flexible"}),"\n",(0,a.jsx)(n.li,{children:"Readable by other methods"}),"\n",(0,a.jsx)(n.li,{children:"Lowest set-up work involved"}),"\n"]}),"\n",(0,a.jsx)(n.p,{children:"Downsides:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsxs)(n.li,{children:["Does not support negative integers between ",(0,a.jsx)(n.code,{children:"-2^64 + 1"})," and ",(0,a.jsx)(n.code,{children:"-2^63"})," (serde_json library restriction)"]}),"\n",(0,a.jsx)(n.li,{children:"Structural validation must be done by hand"}),"\n",(0,a.jsx)(n.li,{children:"Can use more space as string keyed maps are likely to be used more than arrays would be in the CDDL solutions"}),"\n"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-javascript",children:'const obj = {\n receiver_id: "SJKdj34k3jjKFDKfjFUDfdjkfd",\n sender_id: "jkfdsufjdk34h3Sdfjdhfduf873",\n comment: "happy birthday",\n tags: [0, 264, -1024, 32]\n};\nconst metadata = CardanoWasm.encode_json_str_to_metadatum(JSON.stringify(obj), CardanoWasm.MetadataJsonSchema.NoConversions);\nconst metadataString = CardanoWasm.decode_metadatum_to_json_str(metadata, CardanoWasm.MetadataJsonSchema.NoConversions);\n'})}),"\n",(0,a.jsxs)(n.p,{children:["To support an extended set of metadata we also support 3 additional modes for JSON conversion following IOHK's ",(0,a.jsx)(n.a,{href:"https://github.com/input-output-hk/cardano-node/blob/master/cardano-api/src/Cardano/Api/TxMetadata.hs",children:"cardano-node JSON schemas"}),"."]}),"\n",(0,a.jsx)(n.p,{children:"The three modes are:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"NoConversions"})," - Faithfully converts between the minimal shared feature set between JSON and Metadata"]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"BasicConversions"})," - Adds additional support for byte(as hex strings)/integers (as strings) keys / byte (as hex strings) values."]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"DetailedSchema"})," - Can convert almost all metadata into a specific JSON schema but is very verbose on the JSON side."]}),"\n"]}),"\n",(0,a.jsxs)(n.p,{children:["Details on the formats can be found in our library's metadata module or in the ",(0,a.jsx)(n.code,{children:"cardano-node"})," file linked above. ",(0,a.jsx)(n.code,{children:"DetailedSchema"})," is likely most useful if you need to parse any possible kind of metadata into JSON specifically, possibly to display or for debugging.\nFor most reasonable schemas ",(0,a.jsx)(n.code,{children:"NoConversions"})," should suffice, or ",(0,a.jsx)(n.code,{children:"BasicConversions"})," if byte/string keys and byte values are needed.\nIf you are in charge of your own schema and you do not need arbitrary keys, it is recommended not to use ",(0,a.jsx)(n.code,{children:"DetailedSchema"})," as it is significantly more complicated to use."]}),"\n",(0,a.jsxs)(n.p,{children:["The additions of ",(0,a.jsx)(n.code,{children:"BasicConversions"})," are demonstrated below"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-json",children:'{\n "0x8badf00d": "0xdeadbeef",\n "9": 5,\n "obj": {\n "a":[\n {\n "5": 2\n },\n {\n }\n ]\n }\n}\n'})}),"\n",(0,a.jsx)(n.p,{children:"which creates a map with 3 elements:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"4 byte bytestring (0x8badf00d) => 4 byte bytestring (0xdeadbeef)"}),"\n",(0,a.jsx)(n.li,{children:"int (9) => int (5)"}),"\n",(0,a.jsx)(n.li,{children:'string ("obj") => object (string ("a") => list [ object (int (5) => int (2)), object (empty) ])'}),"\n"]}),"\n",(0,a.jsx)(n.p,{children:'All bytestrings must be prefixed with "0x" or they will be treated as regular strings.\nAll strings that parse as an integer such as "125" will be treated as a metadata integer.'}),"\n",(0,a.jsxs)(n.p,{children:["The ",(0,a.jsx)(n.code,{children:"DetailedSchema"})," is here:"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-json",children:'{"map":[\n {\n "k":{"bytes":"8badf00d"},\n "v":{"bytes":"deadbeef"}\n },\n {\n "k":{"int":9},\n "v":{"int":5}\n },\n {\n "k":{"string":"obj"},\n "v":{"map":[\n {\n "k":{"string":"a"},\n "v":{"list":[\n {"map":[\n {\n "k":{"int":5},\n "v":{"int":2}\n }\n ]},\n {"map":[\n ]}\n ]}\n }\n ]}\n }\n]}\n'})}),"\n",(0,a.jsxs)(n.p,{children:["All values are represented as an object with 1 field with the key tagging the type and the value being the value itself.\nThis is the exact same metadata as the ",(0,a.jsx)(n.code,{children:"BasicConversions"}),' example which should illustrate that it is much more verbose to use this format,\nbut it can represent every kind of metadata possible, including non-string/byte/int keys.\nDo note that byte strings do not start with "0x", unlike with ',(0,a.jsx)(n.code,{children:"BasicConversions"}),"."]}),"\n",(0,a.jsx)(n.p,{children:"This additional freedom in keys can be seen here:"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-json",children:'{"map":[\n {\n "k":{"list":[\n {"map": [\n {\n "k": {"int": 5},\n "v": {"int": 7}\n },\n {\n "k": {"string": "hello"},\n "v": {"string": "world"}\n }\n ]},\n {"bytes": "ff00ff00"}\n ]},\n "v":{"int":5}\n }\n]}\n'})}),"\n",(0,a.jsx)(n.p,{children:"has a 1-element map with a value of just 5, but with a very complicated key consisting of a list with 2 elements:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:'a 2-element map (5 => 7, "hello" => "world")'}),"\n",(0,a.jsx)(n.li,{children:"a bytestring (0xFF00FF00)"}),"\n"]}),"\n",(0,a.jsxs)(n.p,{children:["Most reasonable metadata formats, however, likely do not use map/key/compound keys and thus this is more of a fringe use or when all possible metadata must be examined from JSON (almost) without exception.\nDue to library implementation details it can still fail to decode if there is a very negative number between ",(0,a.jsx)(n.code,{children:"-2^64 + 1"})," and ",(0,a.jsx)(n.code,{children:"-2^63"}),"."]}),"\n",(0,a.jsx)(n.h2,{id:"using-a-cddl-subset",children:"Using a CDDL Subset"}),"\n",(0,a.jsx)(n.p,{children:"Upsides:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"Automatic structural typing in deserialization"}),"\n",(0,a.jsx)(n.li,{children:"Readable by other methods"}),"\n",(0,a.jsx)(n.li,{children:"Possible reduced space due to array structs not serializing keys"}),"\n"]}),"\n",(0,a.jsx)(n.p,{children:"Downsides:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"Requires additional set-up"}),"\n"]}),"\n",(0,a.jsx)(n.p,{children:"For static or relatively static types this is probably the best choice, especially if you care about structural validation or need the binary types or more complex keys."}),"\n",(0,a.jsx)(n.p,{children:"As we saw in the other examples, most reasonable structures can be encoded using the standard metadata CDDL as it is almost a superset of JSON outside of true/false/null. Not only this, but if we represent a struct using an array in CDDL such as:"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{children:"foo = [\n receiver_id: text,\n sender_id: text,\n comment: text,\n tags: [*int]\n]\n"})}),"\n",(0,a.jsx)(n.p,{children:"there is space savings as the keys are not stored as it is represented as an ordered array of 4 elements instead of a direct map encoding of:"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{children:'foo = {\n receiver_id: text,\n sender_id: text,\n comment: text,\n tags": [*int]\n}\n'})}),"\n",(0,a.jsx)(n.p,{children:"which would serialize the keys as strings inside the resulting CBOR. Using these CDDL definitions for the example JSON structure we had results in sizes of 89 bytes for the array definition and 124 bytes for the map one. Using the JSON encoding would also result in a metadata size of 124 bytes. Maps however do have the advantage of easy optional fields and a more readable metadata for external users who don't have access to the CDDL as the field names will be stored directly."}),"\n",(0,a.jsxs)(n.p,{children:["After you have created your CDDL definition, if you need to check that your CDDL conforms to the metadata CDDL we have a tool located in the ",(0,a.jsx)(n.code,{children:"/tools/metadata-cddl-checker/"})," directory. Move to this directory and put your CDDL in a file called ",(0,a.jsx)(n.code,{children:"input.cddl"})," there first, then run"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{children:"cargo build\ncargo run\n"})}),"\n",(0,a.jsxs)(n.p,{children:["Once we have the CDDL file and it has passed metadata format validation we can use the ",(0,a.jsx)(n.a,{href:"https://github.com/Emurgo/cddl-codegen",children:"cddl-codegen"})," tool that we used to initially generate the serialization/deserialization/structural code for the core Shelley structures from the ",(0,a.jsx)(n.a,{href:"https://github.com/input-output-hk/cardano-ledger-specs/blob/master/shelley/chain-and-ledger/shelley-spec-ledger-test/cddl-files/shelley.cddl",children:"shelley cddl spec"}),"."]}),"\n",(0,a.jsxs)(n.p,{children:["Assuming we are in the ",(0,a.jsx)(n.code,{children:"cddl-codegen"})," root directory and have created a ",(0,a.jsx)(n.code,{children:"input.cddl"})," file in that directory containing the CDDL we wish to generate we can build and code-generate with"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{children:"cargo build\ncargo run\n"})}),"\n",(0,a.jsxs)(n.p,{children:["which should generate a wasm-convertible rust library for parsing our CDDL definition in the ",(0,a.jsx)(n.code,{children:"/export/"})," directory.\nAfter this we need to generate a wasm package from the rust code by running the following (you can do ",(0,a.jsx)(n.code,{children:"--target=browser"})," too)"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{children:"cd export\nwasm-pack build --target=nodejs\nwasm-pack pack\n"})}),"\n",(0,a.jsxs)(n.p,{children:["which should give you the library as a package in the ",(0,a.jsx)(n.code,{children:"/pkg/"})," directory."]}),"\n",(0,a.jsx)(n.p,{children:"Once we have imported the library we can then use it as such:"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-javascript",children:'const tags = OurMetadataLib.Ints.new();\n// if we have smaller (32-bit signed) numbers we can construct easier\ntags.add(OurMetadataLib.Int.new_i32(0));\n// but for bigger (>= 2^32) numbers we must use BigNum and specify the sign ourselves\ntags.add(OurMetadataLib.Int.new(CardanoWasm.Int.from_str("264")));\n// and for negative large (< -2^32) numbers (here we construct -1024)\ntags.add(OurMetadataLib.Int.new_negative(CardanoWasm.Int.from_str("1024")));\ntags.add(OurMetadataLib.Int.new_i32(32));\nconst map = OurMetadataLib.Foo.new("SJKdj34k3jjKFDKfjFUDfdjkfd", "jkfdsufjdk34h3Sdfjdhfduf873", "happy birthday", tags)\nlet metadata;\ntry {\n metadata = CardanoWasm.TransactionMetadata.from_bytes(map.to_bytes());\n} catch (e) {\n // this should never happen if OurMetadataLib was generated from compatible CDDL with the metadata definition\n}\n'})}),"\n",(0,a.jsx)(n.p,{children:"likewise you can parse the metadata back very simply with:"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-javascript",children:"let cddlMetadata;\ntry {\n cddlMetadata = OurMetadataLib.Foo.from_bytes(metadata.to_bytes());\n} catch (e) {\n // this should never happen if OurMetadataLib was generated from compatible CDDL with the metadata definition\n}\n// we can now directly access the fields with cddlMetadata.receiver_id(), etc\n"})}),"\n",(0,a.jsxs)(n.p,{children:["If we take advantage of the additional primitives not defined in CDDL but defined for ",(0,a.jsx)(n.code,{children:"cddl-codegen"}),", then we can specify precisions of ",(0,a.jsx)(n.code,{children:"u32"}),", ",(0,a.jsx)(n.code,{children:"u64"}),", ",(0,a.jsx)(n.code,{children:"i64"}),", ",(0,a.jsx)(n.code,{children:"i32"})," for specifying 32 or 64 bits instead of just a general purpose ",(0,a.jsx)(n.code,{children:"uint"}),"/",(0,a.jsx)(n.code,{children:"nint"}),"/",(0,a.jsx)(n.code,{children:"int"}),".\nIf you know your metadata will always be within one of these ranges it can be much more convenient to work with, and if you have signed data this will also make it easier to work with instead of the ",(0,a.jsx)(n.code,{children:"Int"})," class that CDDL ",(0,a.jsx)(n.code,{children:"int"})," might generate, since that is either an up to 64-bit positive or an up to 64 negative numbers.\nThis is particularly useful here as lists of CDDL primitives can be exposed directly as ",(0,a.jsx)(n.code,{children:"Vec<T>"})," to wasm from rust, but when we have ",(0,a.jsx)(n.code,{children:"int"})," (converts to ",(0,a.jsx)(n.code,{children:"Int"})," struct) or ",(0,a.jsx)(n.code,{children:"uint"})," (converts to ",(0,a.jsx)(n.code,{children:"BigNum"})," struct) a separate structure like that ",(0,a.jsx)(n.code,{children:"Ints"})," one used above is used. Using the 32-bit versions allows direct js ",(0,a.jsx)(n.code,{children:"number"})," conversions to/from wasm."]}),"\n",(0,a.jsxs)(n.p,{children:["If we simply change the ",(0,a.jsx)(n.code,{children:"tags"})," field to ",(0,a.jsx)(n.code,{children:"tags: [+i32]"})," our code becomes:"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-javascript",children:'// notice how we can directly work with js numbers here now!\n// but remember they must fit into a 32-bit number now - no 64-bit numbers like are allowed in the metadata\nconst tags = [0, 264, -1024, 32];\nconst map = OurMetadataLib.Foo.new("SJKdj34k3jjKFDKfjFUDfdjkfd", "jkfdsufjdk34h3Sdfjdhfduf873", "happy birthday", tags)\n'})}),"\n",(0,a.jsxs)(n.p,{children:["and deserializaing likewise is much simpler as ",(0,a.jsx)(n.code,{children:"metadata.tags()"})," will return a JS array or numbers rather than a rust-wasm struct that must be accessed via the wasm boundary."]}),"\n",(0,a.jsx)(n.h2,{id:"raw-bytes-encoding",children:"Raw Bytes Encoding"}),"\n",(0,a.jsx)(n.p,{children:"Upsides:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"Can store arbitrary data"}),"\n",(0,a.jsx)(n.li,{children:"Potential space-savings if the data is compressed"}),"\n"]}),"\n",(0,a.jsx)(n.p,{children:"Downsides:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"Not readable by other methods - must be decoded using this method"}),"\n",(0,a.jsx)(n.li,{children:"Requires additional set-up"}),"\n"]}),"\n",(0,a.jsx)(n.p,{children:"While most data would likely conform to the metadata CDDL subset (or JSON), if your data does not fit there then this encoding style will be necessary."}),"\n",(0,a.jsx)(n.p,{children:"If you still want to take advantage of CDDL type-checking it is possible to create a library just as in the CDDL subset section but without running the checker tool. This could be useful if you are using CDDL outside of the metadata CDDL structure. Otherwise, you can store whatever bytes you want."}),"\n",(0,a.jsxs)(n.p,{children:[(0,a.jsx)(n.em,{children:"Note"}),": To conform with the 64-byte limitation on metadata binary values, this method will split the bytes into 64-byte chunks"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-javascript",children:"const bytes = /* whatever method you want - you can use the CDDL solution in the 3rd option here */\nconst metadata = CardanoWasm.encode_arbitrary_bytes_as_metadatum(bytes);\nconst decoded_bytes = CardanoWasm.decode_arbitrary_bytes_from_metadatum(metadata);\nassertEquals(bytes, decoded_bytes);\n"})})]})}function h(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(l,{...e})}):l(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>d,a:()=>r});var a=t(7294);const s={},i=a.createContext(s);function r(e){const n=a.useContext(i);return a.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),a.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/f438ab24.413653ef.js b/assets/js/f438ab24.413653ef.js new file mode 100644 index 00000000..81c152bc --- /dev/null +++ b/assets/js/f438ab24.413653ef.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[698],{3769:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"default"}')}}]); \ No newline at end of file diff --git a/assets/js/main.a2f566e1.js b/assets/js/main.a2f566e1.js new file mode 100644 index 00000000..148360f6 --- /dev/null +++ b/assets/js/main.a2f566e1.js @@ -0,0 +1,2 @@ +/*! For license information please see main.a2f566e1.js.LICENSE.txt */ +(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[179],{1728:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=r(e[t]))&&(a&&(a+=" "),a+=n);else for(t in e)e[t]&&(a&&(a+=" "),a+=t);return a}n.d(t,{Z:()=>a});const a=function(){for(var e,t,n=0,a="";n<arguments.length;)(e=arguments[n++])&&(t=r(e))&&(a&&(a+=" "),a+=t);return a}},723:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});n(7294);var r=n(8356),a=n.n(r),o=n(6887);const i={"0109cddc":[()=>n.e(54).then(n.t.bind(n,2776,19)),"/home/sebdev20/Documents/git/cardano-multiplatform-lib/docs/.docusaurus/@easyops-cn/docusaurus-search-local/default/plugin-route-context-module-100.json",2776],"024b6465":[()=>n.e(675).then(n.bind(n,2467)),"@site/docs/modules/multi-era/index.md",2467],"14eb3368":[()=>Promise.all([n.e(532),n.e(817)]).then(n.bind(n,4228)),"@theme/DocCategoryGeneratedIndexPage",4228],17896441:[()=>Promise.all([n.e(532),n.e(918)]).then(n.bind(n,8032)),"@theme/DocItem",8032],"187dbc21":[()=>n.e(455).then(n.bind(n,6996)),"@site/docs/modules/core/index.md",6996],"1a4e3797":[()=>Promise.all([n.e(532),n.e(920)]).then(n.bind(n,2027)),"@theme/SearchPage",2027],"3c02cfd4":[()=>n.e(684).then(n.bind(n,8635)),"@site/docs/modules/builders/index.mdx",8635],"42a4384b":[()=>n.e(810).then(n.bind(n,3458)),"@site/docs/modules/chain/index.md",3458],"456dc1ab":[()=>n.e(533).then(n.bind(n,2098)),"@site/docs/getting_started.mdx",2098],"5e95c892":[()=>n.e(661).then(n.bind(n,1892)),"@theme/DocsRoot",1892],"61955a96":[()=>n.e(595).then(n.bind(n,5338)),"@site/docs/modules/wasm.mdx",5338],"6c2c22d1":[()=>n.e(580).then(n.bind(n,2952)),"@site/docs/modules/cbor.mdx",2952],"8019ae33":[()=>n.e(11).then(n.bind(n,7463)),"@site/docs/modules/crypto/index.mdx",7463],"82878dee":[()=>n.e(928).then(n.t.bind(n,4175,19)),"~docs/default/category-cardano-multiplatform-lib-tutorialsidebar-category-crypto-331.json",4175],"8cf5c8a6":[()=>n.e(926).then(n.t.bind(n,7965,19)),"~docs/default/category-cardano-multiplatform-lib-tutorialsidebar-category-builders-402.json",7965],"935f2afb":[()=>n.e(53).then(n.t.bind(n,1109,19)),"~docs/default/version-current-metadata-prop-751.json",1109],a6c5da82:[()=>n.e(932).then(n.bind(n,5200)),"@site/docs/modules/CIP25.mdx",5200],a7bd4aaa:[()=>n.e(518).then(n.bind(n,8564)),"@theme/DocVersionRoot",8564],a94703ab:[()=>Promise.all([n.e(532),n.e(368)]).then(n.bind(n,2674)),"@theme/DocRoot",2674],a9e02168:[()=>n.e(663).then(n.t.bind(n,960,19)),"~docs/default/category-cardano-multiplatform-lib-tutorialsidebar-category-multi-era-95c.json",960],b5ddca27:[()=>n.e(258).then(n.bind(n,2608)),"@site/docs/modules/crypto/generating_keys.mdx",2608],bbe6d832:[()=>n.e(461).then(n.bind(n,2119)),"@site/docs/modules/cip36.mdx",2119],c377a04b:[()=>n.e(971).then(n.bind(n,9925)),"@site/docs/index.md",9925],c7581e31:[()=>n.e(381).then(n.t.bind(n,3218,19)),"~docs/default/category-cardano-multiplatform-lib-tutorialsidebar-category-core-ad0.json",3218],d16dc6d6:[()=>n.e(200).then(n.bind(n,8646)),"@site/docs/modules/json.mdx",8646],d1737d8e:[()=>n.e(392).then(n.t.bind(n,654,19)),"~docs/default/category-cardano-multiplatform-lib-tutorialsidebar-category-chain-76b.json",654],dd8d23a4:[()=>n.e(953).then(n.bind(n,8516)),"@site/docs/modules/builders/generating_transactions.mdx",8516],e7958d21:[()=>n.e(659).then(n.bind(n,5871)),"@site/docs/crate_architecture.mdx",5871],eb14df67:[()=>n.e(31).then(n.t.bind(n,3157,19)),"~docs/default/category-cardano-multiplatform-lib-tutorialsidebar-category-modules-25d.json",3157],f41b0af6:[()=>n.e(650).then(n.bind(n,5783)),"@site/docs/modules/metadata.mdx",5783],f438ab24:[()=>n.e(698).then(n.t.bind(n,3769,19)),"/home/sebdev20/Documents/git/cardano-multiplatform-lib/docs/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",3769]};var l=n(5893);function s(e){let{error:t,retry:n,pastDelay:r}=e;return t?(0,l.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,l.jsx)("p",{children:String(t)}),(0,l.jsx)("div",{children:(0,l.jsx)("button",{type:"button",onClick:n,children:"Retry"})})]}):r?(0,l.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:(0,l.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,l.jsxs)("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2",children:[(0,l.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,l.jsx)("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,l.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,l.jsx)("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,l.jsx)("circle",{cx:"22",cy:"22",r:"8",children:(0,l.jsx)("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"})})]})})}):null}var u=n(9670),c=n(226);function d(e,t){if("*"===e)return a()({loading:s,loader:()=>n.e(772).then(n.bind(n,1772)),modules:["@theme/NotFound"],webpack:()=>[1772],render(e,t){const n=e.default;return(0,l.jsx)(c.z,{value:{plugin:{name:"native",id:"default"}},children:(0,l.jsx)(n,{...t})})}});const r=o[`${e}-${t}`],d={},f=[],p=[],h=(0,u.Z)(r);return Object.entries(h).forEach((e=>{let[t,n]=e;const r=i[n];r&&(d[t]=r[0],f.push(r[1]),p.push(r[2]))})),a().Map({loading:s,loader:d,modules:f,webpack:()=>p,render(t,n){const a=JSON.parse(JSON.stringify(r));Object.entries(t).forEach((t=>{let[n,r]=t;const o=r.default;if(!o)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof o&&"function"!=typeof o||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{o[e]=r[e]}));let i=a;const l=n.split(".");l.slice(0,-1).forEach((e=>{i=i[e]})),i[l[l.length-1]]=o}));const o=a.__comp;delete a.__comp;const i=a.__context;return delete a.__context,(0,l.jsx)(c.z,{value:i,children:(0,l.jsx)(o,{...a,...n})})}})}const f=[{path:"/cardano-multiplatform-lib/search",component:d("/cardano-multiplatform-lib/search","6b8"),exact:!0},{path:"/cardano-multiplatform-lib/",component:d("/cardano-multiplatform-lib/","6de"),routes:[{path:"/cardano-multiplatform-lib/",component:d("/cardano-multiplatform-lib/","001"),routes:[{path:"/cardano-multiplatform-lib/",component:d("/cardano-multiplatform-lib/","57d"),routes:[{path:"/cardano-multiplatform-lib/category/builders",component:d("/cardano-multiplatform-lib/category/builders","abb"),exact:!0,sidebar:"tutorialSidebar"},{path:"/cardano-multiplatform-lib/category/chain",component:d("/cardano-multiplatform-lib/category/chain","33e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/cardano-multiplatform-lib/category/core",component:d("/cardano-multiplatform-lib/category/core","e60"),exact:!0,sidebar:"tutorialSidebar"},{path:"/cardano-multiplatform-lib/category/crypto",component:d("/cardano-multiplatform-lib/category/crypto","f2e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/cardano-multiplatform-lib/category/modules",component:d("/cardano-multiplatform-lib/category/modules","d7c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/cardano-multiplatform-lib/category/multi-era",component:d("/cardano-multiplatform-lib/category/multi-era","98e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/cardano-multiplatform-lib/crate_architecture",component:d("/cardano-multiplatform-lib/crate_architecture","6ae"),exact:!0,sidebar:"tutorialSidebar"},{path:"/cardano-multiplatform-lib/getting_started",component:d("/cardano-multiplatform-lib/getting_started","712"),exact:!0,sidebar:"tutorialSidebar"},{path:"/cardano-multiplatform-lib/modules/builders/",component:d("/cardano-multiplatform-lib/modules/builders/","f4c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/cardano-multiplatform-lib/modules/builders/generating_transactions",component:d("/cardano-multiplatform-lib/modules/builders/generating_transactions","5d8"),exact:!0,sidebar:"tutorialSidebar"},{path:"/cardano-multiplatform-lib/modules/cbor",component:d("/cardano-multiplatform-lib/modules/cbor","27a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/cardano-multiplatform-lib/modules/chain/",component:d("/cardano-multiplatform-lib/modules/chain/","2fe"),exact:!0,sidebar:"tutorialSidebar"},{path:"/cardano-multiplatform-lib/modules/CIP25",component:d("/cardano-multiplatform-lib/modules/CIP25","99f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/cardano-multiplatform-lib/modules/cip36",component:d("/cardano-multiplatform-lib/modules/cip36","6ab"),exact:!0,sidebar:"tutorialSidebar"},{path:"/cardano-multiplatform-lib/modules/core/",component:d("/cardano-multiplatform-lib/modules/core/","d45"),exact:!0,sidebar:"tutorialSidebar"},{path:"/cardano-multiplatform-lib/modules/crypto/",component:d("/cardano-multiplatform-lib/modules/crypto/","a94"),exact:!0,sidebar:"tutorialSidebar"},{path:"/cardano-multiplatform-lib/modules/crypto/generating_keys",component:d("/cardano-multiplatform-lib/modules/crypto/generating_keys","425"),exact:!0,sidebar:"tutorialSidebar"},{path:"/cardano-multiplatform-lib/modules/json",component:d("/cardano-multiplatform-lib/modules/json","6a4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/cardano-multiplatform-lib/modules/metadata",component:d("/cardano-multiplatform-lib/modules/metadata","0a2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/cardano-multiplatform-lib/modules/multi-era/",component:d("/cardano-multiplatform-lib/modules/multi-era/","229"),exact:!0,sidebar:"tutorialSidebar"},{path:"/cardano-multiplatform-lib/modules/wasm",component:d("/cardano-multiplatform-lib/modules/wasm","db2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/cardano-multiplatform-lib/",component:d("/cardano-multiplatform-lib/","6ae"),exact:!0,sidebar:"tutorialSidebar"}]}]}]},{path:"*",component:d("*")}]},8934:(e,t,n)=>{"use strict";n.d(t,{_:()=>o,t:()=>i});var r=n(7294),a=n(5893);const o=r.createContext(!1);function i(e){let{children:t}=e;const[n,i]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{i(!0)}),[]),(0,a.jsx)(o.Provider,{value:n,children:t})}},7221:(e,t,n)=>{"use strict";var r=n(7294),a=n(745),o=n(3727),i=n(405),l=n(412);const s=[n(2497),n(3310),n(8320),n(2295)];var u=n(723),c=n(6550),d=n(8790),f=n(5893);function p(e){let{children:t}=e;return(0,f.jsx)(f.Fragment,{children:t})}var h=n(5742),m=n(2263),g=n(4996),y=n(6668),b=n(1944),v=n(4711),w=n(9727),x=n(3320),k=n(8780),S=n(197);function E(){const{i18n:{currentLocale:e,defaultLocale:t,localeConfigs:n}}=(0,m.Z)(),r=(0,v.l)(),a=n[e].htmlLang,o=e=>e.replace("-","_");return(0,f.jsxs)(h.Z,{children:[Object.entries(n).map((e=>{let[t,{htmlLang:n}]=e;return(0,f.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:n},t)})),(0,f.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:"x-default"}),(0,f.jsx)("meta",{property:"og:locale",content:o(a)}),Object.values(n).filter((e=>a!==e.htmlLang)).map((e=>(0,f.jsx)("meta",{property:"og:locale:alternate",content:o(e.htmlLang)},`meta-og-${e.htmlLang}`)))]})}function _(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,m.Z)(),r=function(){const{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,m.Z)(),{pathname:r}=(0,c.TH)();return e+(0,k.applyTrailingSlash)((0,g.Z)(r),{trailingSlash:n,baseUrl:t})}(),a=t?`${n}${t}`:r;return(0,f.jsxs)(h.Z,{children:[(0,f.jsx)("meta",{property:"og:url",content:a}),(0,f.jsx)("link",{rel:"canonical",href:a})]})}function C(){const{i18n:{currentLocale:e}}=(0,m.Z)(),{metadata:t,image:n}=(0,y.L)();return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)(h.Z,{children:[(0,f.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,f.jsx)("body",{className:w.h})]}),n&&(0,f.jsx)(b.d,{image:n}),(0,f.jsx)(_,{}),(0,f.jsx)(E,{}),(0,f.jsx)(S.Z,{tag:x.HX,locale:e}),(0,f.jsx)(h.Z,{children:t.map(((e,t)=>(0,f.jsx)("meta",{...e},t)))})]})}const T=new Map;function L(e){if(T.has(e.pathname))return{...e,pathname:T.get(e.pathname)};if((0,d.f)(u.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return T.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return T.set(e.pathname,t),{...e,pathname:t}}var N=n(8934),j=n(8940),P=n(469);function A(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];const a=s.map((t=>{const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>a.forEach((e=>e?.()))}const O=function(e){let{children:t,location:n,previousLocation:r}=e;return(0,P.Z)((()=>{r!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,a=t.hash===n.hash,o=t.search===n.search;if(r&&a&&!o)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:r}),A("onRouteDidUpdate",{previousLocation:r,location:n}))}),[r,n]),t};function I(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.f)(u.Z,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class R extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=l.Z.canUseDOM?A("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=A("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),I(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return(0,f.jsx)(O,{previousLocation:this.previousLocation,location:t,children:(0,f.jsx)(c.AW,{location:t,render:()=>e})})}}const F=R,D="__docusaurus-base-url-issue-banner-container",M="__docusaurus-base-url-issue-banner",z="__docusaurus-base-url-issue-banner-suggestion-container";function B(e){return`\ndocument.addEventListener('DOMContentLoaded', function maybeInsertBanner() {\n var shouldInsert = typeof window['docusaurus'] === 'undefined';\n shouldInsert && insertBanner();\n});\n\nfunction insertBanner() {\n var bannerContainer = document.createElement('div');\n bannerContainer.id = '${D}';\n var bannerHtml = ${JSON.stringify(function(e){return`\n<div id="${M}" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">${e}</span> ${"/"===e?" (default value)":""}</p>\n <p>We suggest trying baseUrl = <span id="${z}" style="font-weight: bold; color: green;"></span></p>\n</div>\n`}(e)).replace(/</g,"\\<")};\n bannerContainer.innerHTML = bannerHtml;\n document.body.prepend(bannerContainer);\n var suggestionContainer = document.getElementById('${z}');\n var actualHomePagePath = window.location.pathname;\n var suggestedBaseUrl = actualHomePagePath.substr(-1) === '/'\n ? actualHomePagePath\n : actualHomePagePath + '/';\n suggestionContainer.innerHTML = suggestedBaseUrl;\n}\n`}function $(){const{siteConfig:{baseUrl:e}}=(0,m.Z)();return(0,f.jsx)(f.Fragment,{children:!l.Z.canUseDOM&&(0,f.jsx)(h.Z,{children:(0,f.jsx)("script",{children:B(e)})})})}function U(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,m.Z)(),{pathname:n}=(0,c.TH)();return t&&n===e?(0,f.jsx)($,{}):null}function Q(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:r,localeConfigs:a}}=(0,m.Z)(),o=(0,g.Z)(e),{htmlLang:i,direction:l}=a[r];return(0,f.jsxs)(h.Z,{children:[(0,f.jsx)("html",{lang:i,dir:l}),(0,f.jsx)("title",{children:t}),(0,f.jsx)("meta",{property:"og:title",content:t}),(0,f.jsx)("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&(0,f.jsx)("meta",{name:"robots",content:"noindex, nofollow"}),e&&(0,f.jsx)("link",{rel:"icon",href:o})]})}var Z=n(4763),H=n(2389);function V(){const e=(0,H.Z)();return(0,f.jsx)(h.Z,{children:(0,f.jsx)("html",{"data-has-hydrated":e})})}function W(){const e=(0,d.H)(u.Z),t=(0,c.TH)();return(0,f.jsx)(Z.Z,{children:(0,f.jsx)(j.M,{children:(0,f.jsxs)(N.t,{children:[(0,f.jsxs)(p,{children:[(0,f.jsx)(Q,{}),(0,f.jsx)(C,{}),(0,f.jsx)(U,{}),(0,f.jsx)(F,{location:L(t),children:e})]}),(0,f.jsx)(V,{})]})})})}var q=n(6887);const G=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 a=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;a?.appendChild(r)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var Y=n(9670);const K=new Set,X=new Set,J=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,ee={prefetch(e){if(!(e=>!J()&&!X.has(e)&&!K.has(e))(e))return!1;K.add(e);const t=(0,d.f)(u.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(q).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,Y.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?G(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!J()&&!X.has(e))(e)&&(X.add(e),I(e))},te=Object.freeze(ee),ne=Boolean(!0);if(l.Z.canUseDOM){window.docusaurus=te;const e=document.getElementById("__docusaurus"),t=(0,f.jsx)(i.B6,{children:(0,f.jsx)(o.VK,{children:(0,f.jsx)(W,{})})}),n=(e,t)=>{console.error("Docusaurus React Root onRecoverableError:",e,t)},l=()=>{if(ne)r.startTransition((()=>{a.hydrateRoot(e,t,{onRecoverableError:n})}));else{const o=a.createRoot(e,{onRecoverableError:n});r.startTransition((()=>{o.render(t)}))}};I(window.location.pathname).then(l)}},8940:(e,t,n)=>{"use strict";n.d(t,{_:()=>d,M:()=>f});var r=n(7294),a=n(6809);const o=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/cardano-multiplatform-lib/","versions":[{"name":"current","label":"Next","isLast":true,"path":"/cardano-multiplatform-lib/","mainDocId":"index","docs":[{"id":"crate_architecture","path":"/cardano-multiplatform-lib/crate_architecture","sidebar":"tutorialSidebar"},{"id":"getting_started","path":"/cardano-multiplatform-lib/getting_started","sidebar":"tutorialSidebar"},{"id":"index","path":"/cardano-multiplatform-lib/","sidebar":"tutorialSidebar"},{"id":"modules/builders/generating_transactions","path":"/cardano-multiplatform-lib/modules/builders/generating_transactions","sidebar":"tutorialSidebar"},{"id":"modules/builders/index","path":"/cardano-multiplatform-lib/modules/builders/","sidebar":"tutorialSidebar"},{"id":"modules/cbor","path":"/cardano-multiplatform-lib/modules/cbor","sidebar":"tutorialSidebar"},{"id":"modules/chain/index","path":"/cardano-multiplatform-lib/modules/chain/","sidebar":"tutorialSidebar"},{"id":"modules/CIP25","path":"/cardano-multiplatform-lib/modules/CIP25","sidebar":"tutorialSidebar"},{"id":"modules/cip36","path":"/cardano-multiplatform-lib/modules/cip36","sidebar":"tutorialSidebar"},{"id":"modules/core/index","path":"/cardano-multiplatform-lib/modules/core/","sidebar":"tutorialSidebar"},{"id":"modules/crypto/generating_keys","path":"/cardano-multiplatform-lib/modules/crypto/generating_keys","sidebar":"tutorialSidebar"},{"id":"modules/crypto/index","path":"/cardano-multiplatform-lib/modules/crypto/","sidebar":"tutorialSidebar"},{"id":"modules/json","path":"/cardano-multiplatform-lib/modules/json","sidebar":"tutorialSidebar"},{"id":"modules/metadata","path":"/cardano-multiplatform-lib/modules/metadata","sidebar":"tutorialSidebar"},{"id":"modules/multi-era/index","path":"/cardano-multiplatform-lib/modules/multi-era/","sidebar":"tutorialSidebar"},{"id":"modules/wasm","path":"/cardano-multiplatform-lib/modules/wasm","sidebar":"tutorialSidebar"},{"id":"/category/modules","path":"/cardano-multiplatform-lib/category/modules","sidebar":"tutorialSidebar"},{"id":"/category/core","path":"/cardano-multiplatform-lib/category/core","sidebar":"tutorialSidebar"},{"id":"/category/chain","path":"/cardano-multiplatform-lib/category/chain","sidebar":"tutorialSidebar"},{"id":"/category/crypto","path":"/cardano-multiplatform-lib/category/crypto","sidebar":"tutorialSidebar"},{"id":"/category/multi-era","path":"/cardano-multiplatform-lib/category/multi-era","sidebar":"tutorialSidebar"},{"id":"/category/builders","path":"/cardano-multiplatform-lib/category/builders","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/cardano-multiplatform-lib/","label":"Introduction"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var l=n(7529);const s=JSON.parse('{"docusaurusVersion":"3.0.1","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"3.0.1"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"3.0.1"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"3.0.1"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"3.0.1"},"docusaurus-tailwindcss":{"type":"local"},"@easyops-cn/docusaurus-search-local":{"type":"package","name":"@easyops-cn/docusaurus-search-local","version":"0.40.0"}}}');var u=n(5893);const c={siteConfig:a.default,siteMetadata:s,globalData:o,i18n:i,codeTranslations:l},d=r.createContext(c);function f(e){let{children:t}=e;return(0,u.jsx)(d.Provider,{value:c,children:t})}},4763:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(7294),a=n(412),o=n(5742),i=n(8780),l=n(8862),s=n(5893);function u(e){let{error:t,tryAgain:n}=e;return(0,s.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,s.jsx)("h1",{style:{fontSize:"3rem"},children:"This page crashed"}),(0,s.jsx)("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"},children:"Try again"}),(0,s.jsx)(c,{error:t})]})}function c(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,s.jsx)("p",{style:{whiteSpace:"pre-wrap"},children:n})}function d(e){let{error:t,tryAgain:n}=e;return(0,s.jsxs)(p,{fallback:()=>(0,s.jsx)(u,{error:t,tryAgain:n}),children:[(0,s.jsx)(o.Z,{children:(0,s.jsx)("title",{children:"Page Error"})}),(0,s.jsx)(l.Z,{children:(0,s.jsx)(u,{error:t,tryAgain:n})})]})}const f=e=>(0,s.jsx)(d,{...e});class p extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){a.Z.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??f)(e)}return e??null}}},412:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,a={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},5742:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});n(7294);var r=n(405),a=n(5893);function o(e){return(0,a.jsx)(r.ql,{...e})}},9960:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(7294),a=n(3727),o=n(8780),i=n(2263),l=n(3919),s=n(412),u=n(5893);const c=r.createContext({collectLink:()=>{}});var d=n(4996);function f(e,t){let{isNavLink:n,to:f,href:p,activeClassName:h,isActive:m,"data-noBrokenLinkCheck":g,autoAddBaseUrl:y=!0,...b}=e;const{siteConfig:{trailingSlash:v,baseUrl:w}}=(0,i.Z)(),{withBaseUrl:x}=(0,d.C)(),k=(0,r.useContext)(c),S=(0,r.useRef)(null);(0,r.useImperativeHandle)(t,(()=>S.current));const E=f||p;const _=(0,l.Z)(E),C=E?.replace("pathname://","");let T=void 0!==C?(L=C,y&&(e=>e.startsWith("/"))(L)?x(L):L):void 0;var L;T&&_&&(T=(0,o.applyTrailingSlash)(T,{trailingSlash:v,baseUrl:w}));const N=(0,r.useRef)(!1),j=n?a.OL:a.rU,P=s.Z.canUseIntersectionObserver,A=(0,r.useRef)(),O=()=>{N.current||null==T||(window.docusaurus.preload(T),N.current=!0)};(0,r.useEffect)((()=>(!P&&_&&null!=T&&window.docusaurus.prefetch(T),()=>{P&&A.current&&A.current.disconnect()})),[A,T,P,_]);const I=T?.startsWith("#")??!1,R=!T||!_||I;return R||g||k.collectLink(T),R?(0,u.jsx)("a",{ref:S,href:T,...E&&!_&&{target:"_blank",rel:"noopener noreferrer"},...b}):(0,u.jsx)(j,{...b,onMouseEnter:O,onTouchStart:O,innerRef:e=>{S.current=e,P&&e&&_&&(A.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(A.current.unobserve(e),A.current.disconnect(),null!=T&&window.docusaurus.prefetch(T))}))})),A.current.observe(e))},to:T,...n&&{isActive:m,activeClassName:h}})}const p=r.forwardRef(f)},5999:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u,I:()=>s});var r=n(7294),a=n(5893);function o(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var i=n(7529);function l(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return i[t??n]??n??t}function s(e,t){let{message:n,id:r}=e;return o(l({message:n,id:r}),t)}function u(e){let{children:t,id:n,values:r}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal <Translate> children",t),new Error("The Docusaurus <Translate> component only accept simple string values");const i=l({message:t,id:n});return(0,a.jsx)(a.Fragment,{children:o(i,r)})}},9935:(e,t,n)=>{"use strict";n.d(t,{m:()=>r});const r="default"},3919:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{Z:()=>a,b:()=>r})},4996:(e,t,n)=>{"use strict";n.d(t,{C:()=>i,Z:()=>l});var r=n(7294),a=n(2263),o=n(3919);function i(){const{siteConfig:{baseUrl:e,url:t}}=(0,a.Z)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:a=!1,absolute:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,o.b)(n))return n;if(a)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const l=n.startsWith(t)?n:t+n.replace(/^\//,"");return i?e+l:l}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function l(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},2263:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(8940);function o(){return(0,r.useContext)(a._)}},2389:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(8934);function o(){return(0,r.useContext)(a._)}},469:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(7294);const a=n(412).Z.canUseDOM?r.useLayoutEffect:r.useEffect},9670:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function a(e){const t={};return function e(n,a){Object.entries(n).forEach((n=>{let[o,i]=n;const l=a?`${a}.${o}`:o;r(i)?e(i,l):t[l]=i}))}(e),t}},226:(e,t,n)=>{"use strict";n.d(t,{_:()=>o,z:()=>i});var r=n(7294),a=n(5893);const o=r.createContext(null);function i(e){let{children:t,value:n}=e;const i=r.useContext(o),l=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...n?.data};return{plugin:t.plugin,data:r}}({parent:i,value:n})),[i,n]);return(0,a.jsx)(o.Provider,{value:l,children:t})}},143:(e,t,n)=>{"use strict";n.d(t,{Iw:()=>m,gA:()=>f,_r:()=>c,Jo:()=>g,zh:()=>d,yW:()=>h,gB:()=>p});var r=n(6550),a=n(2263),o=n(9935);function i(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,a.Z)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const l=e=>e.versions.find((e=>e.isLast));function s(e,t){const n=function(e,t){const n=l(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.LX)(t,{path:e.path,exact:!1,strict:!1})))}(e,t),a=n?.docs.find((e=>!!(0,r.LX)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:a,alternateDocVersions:a?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(a.id):{}}}const u={},c=()=>i("docusaurus-plugin-content-docs")??u,d=e=>function(e,t,n){void 0===t&&(t=o.m),void 0===n&&(n={});const r=i(e),a=r?.[t];if(!a&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return a}("docusaurus-plugin-content-docs",e,{failfast:!0});function f(e){void 0===e&&(e={});const t=c(),{pathname:n}=(0,r.TH)();return function(e,t,n){void 0===n&&(n={});const a=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.LX)(t,{path:n.path,exact:!1,strict:!1})})),o=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!o&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return o}(t,n,e)}function p(e){return d(e).versions}function h(e){const t=d(e);return l(t)}function m(e){const t=d(e),{pathname:n}=(0,r.TH)();return s(t,n)}function g(e){const t=d(e),{pathname:n}=(0,r.TH)();return function(e,t){const n=l(e);return{latestDocSuggestion:s(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},8320:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n(4865),a=n.n(r);a().configure({showSpinner:!1});const o={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{a().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){a().done()}}},3310:(e,t,n)=>{"use strict";n.r(t);var r=n(2573),a=n(6809);!function(e){const{themeConfig:{prism:t}}=a.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{"php"===e&&n(6854),n(4294)(`./prism-${e}`)})),delete globalThis.Prism}(r.p1)},2503:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});n(7294);var r=n(512),a=n(5999),o=n(6668),i=n(9960);const l={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};var s=n(5893);function u(e){let{as:t,id:n,...u}=e;const{navbar:{hideOnScroll:c}}=(0,o.L)();if("h1"===t||!n)return(0,s.jsx)(t,{...u,id:void 0});const d=(0,a.I)({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,s.jsxs)(t,{...u,className:(0,r.Z)("anchor",c?l.anchorWithHideOnScrollNavbar:l.anchorWithStickyNavbar,u.className),id:n,children:[u.children,(0,s.jsx)(i.Z,{className:"hash-link",to:`#${n}`,"aria-label":d,title:d,children:"\u200b"})]})}},9471:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});n(7294);const r={iconExternalLink:"iconExternalLink_nPIU"};var a=n(5893);function o(e){let{width:t=13.5,height:n=13.5}=e;return(0,a.jsx)("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:r.iconExternalLink,children:(0,a.jsx)("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"})})}},8862:(e,t,n)=>{"use strict";n.d(t,{Z:()=>Rt});var r=n(7294),a=n(512),o=n(4763),i=n(1944),l=n(6550),s=n(5999),u=n(5936),c=n(5893);const d="__docusaurus_skipToContent_fallback";function f(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function p(){const e=(0,r.useRef)(null),{action:t}=(0,l.k6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&f(t)}),[]);return(0,u.S)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&f(e.current)})),{containerRef:e,onClick:n}}const h=(0,s.I)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function m(e){const t=e.children??h,{containerRef:n,onClick:r}=p();return(0,c.jsx)("div",{ref:n,role:"region","aria-label":h,children:(0,c.jsx)("a",{...e,href:`#${d}`,onClick:r,children:t})})}var g=n(5281),y=n(9727);const b={skipToContent:"skipToContent_fXgn"};function v(){return(0,c.jsx)(m,{className:b.skipToContent})}var w=n(6668),x=n(9689);function k(e){let{width:t=21,height:n=21,color:r="currentColor",strokeWidth:a=1.2,className:o,...i}=e;return(0,c.jsx)("svg",{viewBox:"0 0 15 15",width:t,height:n,...i,children:(0,c.jsx)("g",{stroke:r,strokeWidth:a,children:(0,c.jsx)("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})})})}const S={closeButton:"closeButton_CVFx"};function E(e){return(0,c.jsx)("button",{type:"button","aria-label":(0,s.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"}),...e,className:(0,a.Z)("clean-btn close",S.closeButton,e.className),children:(0,c.jsx)(k,{width:14,height:14,strokeWidth:3.1})})}const _={content:"content_knG7"};function C(e){const{announcementBar:t}=(0,w.L)(),{content:n}=t;return(0,c.jsx)("div",{...e,className:(0,a.Z)(_.content,e.className),dangerouslySetInnerHTML:{__html:n}})}const T={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function L(){const{announcementBar:e}=(0,w.L)(),{isActive:t,close:n}=(0,x.nT)();if(!t)return null;const{backgroundColor:r,textColor:a,isCloseable:o}=e;return(0,c.jsxs)("div",{className:T.announcementBar,style:{backgroundColor:r,color:a},role:"banner",children:[o&&(0,c.jsx)("div",{className:T.announcementBarPlaceholder}),(0,c.jsx)(C,{className:T.announcementBarContent}),o&&(0,c.jsx)(E,{onClick:n,className:T.announcementBarClose})]})}var N=n(2961),j=n(2466);var P=n(902),A=n(3102);const O=r.createContext(null);function I(e){let{children:t}=e;const n=function(){const e=(0,N.e)(),t=(0,A.HY)(),[n,a]=(0,r.useState)(!1),o=null!==t.component,i=(0,P.D9)(o);return(0,r.useEffect)((()=>{o&&!i&&a(!0)}),[o,i]),(0,r.useEffect)((()=>{o?e.shown||a(!0):a(!1)}),[e.shown,o]),(0,r.useMemo)((()=>[n,a]),[n])}();return(0,c.jsx)(O.Provider,{value:n,children:t})}function R(e){if(e.component){const t=e.component;return(0,c.jsx)(t,{...e.props})}}function F(){const e=(0,r.useContext)(O);if(!e)throw new P.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,a=(0,r.useCallback)((()=>n(!1)),[n]),o=(0,A.HY)();return(0,r.useMemo)((()=>({shown:t,hide:a,content:R(o)})),[a,o,t])}function D(e){let{header:t,primaryMenu:n,secondaryMenu:r}=e;const{shown:o}=F();return(0,c.jsxs)("div",{className:"navbar-sidebar",children:[t,(0,c.jsxs)("div",{className:(0,a.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":o}),children:[(0,c.jsx)("div",{className:"navbar-sidebar__item menu",children:n}),(0,c.jsx)("div",{className:"navbar-sidebar__item menu",children:r})]})]})}var M=n(2949),z=n(2389);function B(e){return(0,c.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,c.jsx)("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"})})}function $(e){return(0,c.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,c.jsx)("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"})})}const U={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function Q(e){let{className:t,buttonClassName:n,value:r,onChange:o}=e;const i=(0,z.Z)(),l=(0,s.I)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===r?(0,s.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,s.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return(0,c.jsx)("div",{className:(0,a.Z)(U.toggle,t),children:(0,c.jsxs)("button",{className:(0,a.Z)("clean-btn",U.toggleButton,!i&&U.toggleButtonDisabled,n),type:"button",onClick:()=>o("dark"===r?"light":"dark"),disabled:!i,title:l,"aria-label":l,"aria-live":"polite",children:[(0,c.jsx)(B,{className:(0,a.Z)(U.toggleIcon,U.lightToggleIcon)}),(0,c.jsx)($,{className:(0,a.Z)(U.toggleIcon,U.darkToggleIcon)})]})})}const Z=r.memo(Q),H={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function V(e){let{className:t}=e;const n=(0,w.L)().navbar.style,r=(0,w.L)().colorMode.disableSwitch,{colorMode:a,setColorMode:o}=(0,M.I)();return r?null:(0,c.jsx)(Z,{className:t,buttonClassName:"dark"===n?H.darkNavbarColorModeToggle:void 0,value:a,onChange:o})}var W=n(1327);function q(){return(0,c.jsx)(W.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function G(){const e=(0,N.e)();return(0,c.jsx)("button",{type:"button","aria-label":(0,s.I)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle(),children:(0,c.jsx)(k,{color:"var(--ifm-color-emphasis-600)"})})}function Y(){return(0,c.jsxs)("div",{className:"navbar-sidebar__brand",children:[(0,c.jsx)(q,{}),(0,c.jsx)(V,{className:"margin-right--md"}),(0,c.jsx)(G,{})]})}var K=n(9960),X=n(4996),J=n(3919);function ee(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var te=n(9471);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:r,href:a,label:o,html:i,isDropdownLink:l,prependBaseUrlToHref:s,...u}=e;const d=(0,X.Z)(r),f=(0,X.Z)(t),p=(0,X.Z)(a,{forcePrependBaseUrl:!0}),h=o&&a&&!(0,J.Z)(a),m=i?{dangerouslySetInnerHTML:{__html:i}}:{children:(0,c.jsxs)(c.Fragment,{children:[o,h&&(0,c.jsx)(te.Z,{...l&&{width:12,height:12}})]})};return a?(0,c.jsx)(K.Z,{href:s?p:a,...u,...m}):(0,c.jsx)(K.Z,{to:d,isNavLink:!0,...(t||n)&&{isActive:(e,t)=>n?ee(n,t.pathname):t.pathname.startsWith(f)},...u,...m})}function re(e){let{className:t,isDropdownItem:n=!1,...r}=e;const o=(0,c.jsx)(ne,{className:(0,a.Z)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n,...r});return n?(0,c.jsx)("li",{children:o}):o}function ae(e){let{className:t,isDropdownItem:n,...r}=e;return(0,c.jsx)("li",{className:"menu__list-item",children:(0,c.jsx)(ne,{className:(0,a.Z)("menu__link",t),...r})})}function oe(e){let{mobile:t=!1,position:n,...r}=e;const a=t?ae:re;return(0,c.jsx)(a,{...r,activeClassName:r.activeClassName??(t?"menu__link--active":"navbar__link--active")})}var ie=n(6043),le=n(8596),se=n(2263);const ue={dropdownNavbarItemMobile:"dropdownNavbarItemMobile_S0Fm"};function ce(e,t){return e.some((e=>function(e,t){return!!(0,le.Mg)(e.to,t)||!!ee(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function de(e){let{items:t,position:n,className:o,onClick:i,...l}=e;const s=(0,r.useRef)(null),[u,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{s.current&&!s.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)}}),[s]),(0,c.jsxs)("div",{ref:s,className:(0,a.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":u}),children:[(0,c.jsx)(ne,{"aria-haspopup":"true","aria-expanded":u,role:"button",href:l.to?void 0:"#",className:(0,a.Z)("navbar__link",o),...l,onClick:l.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!u))},children:l.children??l.label}),(0,c.jsx)("ul",{className:"dropdown__menu",children:t.map(((e,t)=>(0,r.createElement)(We,{isDropdownItem:!0,activeClassName:"dropdown__link--active",...e,key:t})))})]})}function fe(e){let{items:t,className:n,position:o,onClick:i,...s}=e;const u=function(){const{siteConfig:{baseUrl:e}}=(0,se.Z)(),{pathname:t}=(0,l.TH)();return t.replace(e,"/")}(),d=ce(t,u),{collapsed:f,toggleCollapsed:p,setCollapsed:h}=(0,ie.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&h(!d)}),[u,d,h]),(0,c.jsxs)("li",{className:(0,a.Z)("menu__list-item",{"menu__list-item--collapsed":f}),children:[(0,c.jsx)(ne,{role:"button",className:(0,a.Z)(ue.dropdownNavbarItemMobile,"menu__link menu__link--sublist menu__link--sublist-caret",n),...s,onClick:e=>{e.preventDefault(),p()},children:s.children??s.label}),(0,c.jsx)(ie.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:f,children:t.map(((e,t)=>(0,r.createElement)(We,{mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active",...e,key:t})))})]})}function pe(e){let{mobile:t=!1,...n}=e;const r=t?fe:de;return(0,c.jsx)(r,{...n})}var he=n(4711);function me(e){let{width:t=20,height:n=20,...r}=e;return(0,c.jsx)("svg",{viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0,...r,children:(0,c.jsx)("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"})})}const ge="iconLanguage_nlXk";var ye=n(1029),be=n(1728),ve=n(373),we=n(143),xe=n(22),ke=n(8202),Se=n(3926),Ee=n(1073),_e=n(2539),Ce=n(726);const Te='<svg width="20" height="20" viewBox="0 0 20 20"><path d="M17 6v12c0 .52-.2 1-1 1H4c-.7 0-1-.33-1-1V2c0-.55.42-1 1-1h8l5 5zM14 8h-3.13c-.51 0-.87-.34-.87-.87V4" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linejoin="round"></path></svg>',Le='<svg width="20" height="20" viewBox="0 0 20 20"><path d="M13 13h4-4V8H7v5h6v4-4H7V8H3h4V3v5h6V3v5h4-4v5zm-6 0v4-4H3h4z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg>',Ne='<svg width="20" height="20" viewBox="0 0 20 20"><path d="M17 5H3h14zm0 5H3h14zm0 5H3h14z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linejoin="round"></path></svg>',je='<svg width="20" height="20" viewBox="0 0 20 20"><g stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"><path d="M18 3v4c0 2-2 4-4 4H2"></path><path d="M8 17l-6-6 6-6"></path></g></svg>',Pe='<svg width="40" height="40" viewBox="0 0 20 20" fill="none" fill-rule="evenodd" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"><path d="M15.5 4.8c2 3 1.7 7-1 9.7h0l4.3 4.3-4.3-4.3a7.8 7.8 0 01-9.8 1m-2.2-2.2A7.8 7.8 0 0113.2 2.4M2 18L18 2"></path></svg>',Ae='<svg viewBox="0 0 24 54"><g stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"><path d="M8 6v42M20 27H8.3"></path></g></svg>',Oe='<svg viewBox="0 0 24 54"><g stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"><path d="M8 6v21M20 27H8.3"></path></g></svg>',Ie={searchBar:"searchBar_RVTs",dropdownMenu:"dropdownMenu_qbY6",searchBarLeft:"searchBarLeft_MXDe",suggestion:"suggestion_fB_2",cursor:"cursor_eG29",hitTree:"hitTree_kk6K",hitIcon:"hitIcon_a7Zy",hitPath:"hitPath_ieM4",noResultsIcon:"noResultsIcon_EBY5",hitFooter:"hitFooter_E9YW",hitWrapper:"hitWrapper_sAK8",hitTitle:"hitTitle_vyVt",hitAction:"hitAction_NqkB",hideAction:"hideAction_vcyE",noResults:"noResults_l6Q3",searchBarContainer:"searchBarContainer_NW3z",searchBarLoadingRing:"searchBarLoadingRing_YnHq",searchClearButton:"searchClearButton_qk4g",searchIndexLoading:"searchIndexLoading_EJ1f",searchHintContainer:"searchHintContainer_Pkmr",searchHint:"searchHint_iIMx",focused:"focused_OWtg",input:"input_FOTf",hint:"hint_URu1",suggestions:"suggestions_X8XU",dataset:"dataset_QiCy",empty:"empty_eITn"};function Re(e){let{document:t,type:n,page:r,metadata:a,tokens:o,isInterOfTree:i,isLastOfTree:l}=e;const s=0===n,u=1===n,c=[];i?c.push(Ae):l&&c.push(Oe);const d=c.map((e=>`<span class="${Ie.hitTree}">${e}</span>`)),f=`<span class="${Ie.hitIcon}">${s?Te:u?Le:Ne}</span>`,p=[`<span class="${Ie.hitTitle}">${(0,Ce.o)(t.t,(0,Ee.m)(a,"t"),o)}</span>`];if(!i&&!l&&ye.H6){const e=r?(r.b??[]).concat(r.t).concat(t.s&&t.s!==r.t?t.s:[]):t.b;p.push(`<span class="${Ie.hitPath}">${(0,Se.e)(e??[])}</span>`)}else s||p.push(`<span class="${Ie.hitPath}">${(0,_e.C)(r.t||(t.u.startsWith("/docs/api-reference/")?"API Reference":""),o)}</span>`);const h=`<span class="${Ie.hitAction}">${je}</span>`;return[...d,f,`<span class="${Ie.hitWrapper}">`,...p,"</span>",h].join("")}function Fe(){return`<span class="${Ie.noResults}"><span class="${Ie.noResultsIcon}">${Pe}</span><span>${(0,s.I)({id:"theme.SearchBar.noResultsText",message:"No results"})}</span></span>`}var De=n(311),Me=n(51);async function ze(){const e=await Promise.all([n.e(443),n.e(525)]).then(n.t.bind(n,8443,23)),t=e.default;return t.noConflict?t.noConflict():e.noConflict&&e.noConflict(),t}const Be="_highlight";const $e=function(e){let{handleSearchBarToggle:t}=e;const n=(0,z.Z)(),{siteConfig:{baseUrl:a},i18n:{currentLocale:o}}=(0,se.Z)(),i=(0,we.gA)();let u=a;try{const{preferredVersion:e}=(0,ve.J)(i?.pluginId??ye.gQ);e&&!e.isLast&&(u=e.path+"/")}catch(D){if(ye.l9&&!(D instanceof P.i6))throw D}const d=(0,l.k6)(),f=(0,l.TH)(),p=(0,r.useRef)(null),h=(0,r.useRef)(new Map),m=(0,r.useRef)(!1),[g,y]=(0,r.useState)(!1),[b,v]=(0,r.useState)(!1),[w,x]=(0,r.useState)(""),k=(0,r.useRef)(null),S=(0,r.useRef)(""),[E,_]=(0,r.useState)("");(0,r.useEffect)((()=>{if(!Array.isArray(ye.Kc))return;let e="";if(f.pathname.startsWith(u)){const t=f.pathname.substring(u.length);let n;for(const e of ye.Kc){const r="string"==typeof e?e:e.path;if(t===r||t.startsWith(`${r}/`)){n=r;break}}n&&(e=n)}S.current!==e&&(h.current.delete(e),S.current=e),_(e)}),[f.pathname,u]);const C=!!ye.hG&&Array.isArray(ye.Kc)&&""===E,T=(0,r.useCallback)((async()=>{if(C||h.current.get(E))return;h.current.set(E,"loading"),k.current?.autocomplete.destroy(),y(!0);const[{wrappedIndexes:e,zhDictionary:t},n]=await Promise.all([(0,xe.w)(u,E),ze()]);if(k.current=n(p.current,{hint:!1,autoselect:!0,openOnFocus:!0,cssClasses:{root:(0,be.Z)(Ie.searchBar,{[Ie.searchBarLeft]:"left"===ye.pu}),noPrefix:!0,dropdownMenu:Ie.dropdownMenu,input:Ie.input,hint:Ie.hint,suggestions:Ie.suggestions,suggestion:Ie.suggestion,cursor:Ie.cursor,dataset:Ie.dataset,empty:Ie.empty}},[{source:(0,ke.v)(e,t,ye.qo),templates:{suggestion:Re,empty:Fe,footer:e=>{let{query:t,isEmpty:n}=e;if(n&&(!E||!ye.pQ))return;const r=(e=>{let{query:t,isEmpty:n}=e;const r=document.createElement("a"),i=new URLSearchParams;let l;if(i.set("q",t),E){const e=E&&Array.isArray(ye.Kc)?ye.Kc.find((e=>"string"==typeof e?e===E:e.path===E)):E,t=e?(0,Me._)(e,o).label:E;l=ye.pQ&&n?(0,s.I)({id:"theme.SearchBar.seeAllOutsideContext",message:"See results outside {context}"},{context:t}):(0,s.I)({id:"theme.SearchBar.searchInContext",message:"See all results in {context}"},{context:t})}else l=(0,s.I)({id:"theme.SearchBar.seeAll",message:"See all results"});if(!E||!Array.isArray(ye.Kc)||ye.pQ&&n||i.set("ctx",E),u!==a){if(!u.startsWith(a))throw new Error(`Version url '${u}' does not start with base url '${a}', this is a bug of \`@easyops-cn/docusaurus-search-local\`, please report it.`);i.set("version",u.substring(a.length))}const c=`${a}search?${i.toString()}`;return r.href=c,r.textContent=l,r.addEventListener("click",(e=>{e.ctrlKey||e.metaKey||(e.preventDefault(),k.current?.autocomplete.close(),d.push(c))})),r})({query:t,isEmpty:n}),i=document.createElement("div");return i.className=Ie.hitFooter,i.appendChild(r),i}}}]).on("autocomplete:selected",(function(e,t){let{document:{u:n,h:r},tokens:a}=t;p.current?.blur();let o=n;if(ye.vc&&a.length>0){const e=new URLSearchParams;for(const t of a)e.append(Be,t);o+=`?${e.toString()}`}r&&(o+=r),d.push(o)})).on("autocomplete:closed",(()=>{p.current?.blur()})),h.current.set(E,"done"),y(!1),m.current){const e=p.current;e.value&&k.current?.autocomplete.open(),e.focus()}}),[C,E,u,a,d]);(0,r.useEffect)((()=>{if(!ye.vc)return;const e=n?new URLSearchParams(f.search).getAll(Be):[];setTimeout((()=>{const t=document.querySelector("article");if(!t)return;const n=new ye.vc(t);n.unmark(),0!==e.length&&n.mark(e),x(e.join(" ")),k.current?.autocomplete.setVal(e.join(" "))}))}),[n,f.search,f.pathname]);const[L,N]=(0,r.useState)(!1),j=(0,r.useCallback)((()=>{m.current=!0,T(),N(!0),t?.(!0)}),[t,T]),A=(0,r.useCallback)((()=>{N(!1),t?.(!1)}),[t]),O=(0,r.useCallback)((()=>{T()}),[T]),I=(0,r.useCallback)((e=>{x(e.target.value),e.target.value&&v(!0)}),[]),R=!!n&&/mac/i.test(navigator.userAgentData?.platform??navigator.platform);(0,r.useEffect)((()=>{if(!ye.AY)return;const e=e=>{!(R?e.metaKey:e.ctrlKey)||"k"!==e.key&&"K"!==e.key||(e.preventDefault(),p.current?.focus(),j())};return document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",e)}}),[R,j]);const F=(0,r.useCallback)((()=>{const e=new URLSearchParams(f.search);e.delete(Be);const t=e.toString(),n=f.pathname+(""!=t?`?${t}`:"")+f.hash;n!=f.pathname+f.search+f.hash&&d.push(n),x(""),k.current?.autocomplete.setVal("")}),[f.pathname,f.search,f.hash,d]);return(0,c.jsxs)("div",{className:(0,be.Z)("navbar__search",Ie.searchBarContainer,{[Ie.searchIndexLoading]:g&&b,[Ie.focused]:L}),hidden:C,children:[(0,c.jsx)("input",{placeholder:(0,s.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"}),"aria-label":"Search",className:"navbar__search-input",onMouseEnter:O,onFocus:j,onBlur:A,onChange:I,ref:p,value:w}),(0,c.jsx)(De.Z,{className:Ie.searchBarLoadingRing}),ye.AY&&ye.t_&&(""!==w?(0,c.jsx)("button",{className:Ie.searchClearButton,onClick:F,children:"\u2715"}):n&&(0,c.jsxs)("div",{className:Ie.searchHintContainer,children:[(0,c.jsx)("kbd",{className:Ie.searchHint,children:R?"\u2318":"ctrl"}),(0,c.jsx)("kbd",{className:Ie.searchHint,children:"K"})]}))]})},Ue={navbarSearchContainer:"navbarSearchContainer_Bca1"};function Qe(e){let{children:t,className:n}=e;return(0,c.jsx)("div",{className:(0,a.Z)(n,Ue.navbarSearchContainer),children:t})}var Ze=n(2802);const He=e=>e.docs.find((t=>t.id===e.mainDocId));const Ve={default:oe,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:r,queryString:a="",...o}=e;const{i18n:{currentLocale:i,locales:u,localeConfigs:d}}=(0,se.Z)(),f=(0,he.l)(),{search:p,hash:h}=(0,l.TH)(),m=[...n,...u.map((e=>{const n=`${`pathname://${f.createUrl({locale:e,fullyQualified:!1})}`}${p}${h}${a}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?t?"menu__link--active":"dropdown__link--active":""}})),...r],g=t?(0,s.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[i].label;return(0,c.jsx)(pe,{...o,mobile:t,label:(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(me,{className:ge}),g]}),items:m})},search:function(e){let{mobile:t,className:n}=e;return t?null:(0,c.jsx)(Qe,{className:n,children:(0,c.jsx)($e,{})})},dropdown:pe,html:function(e){let{value:t,className:n,mobile:r=!1,isDropdownItem:o=!1}=e;const i=o?"li":"div";return(0,c.jsx)(i,{className:(0,a.Z)({navbar__item:!r&&!o,"menu__list-item":r},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:r,...a}=e;const{activeDoc:o}=(0,we.Iw)(r),i=(0,Ze.vY)(t,r),l=o?.path===i?.path;return null===i||i.unlisted&&!l?null:(0,c.jsx)(oe,{exact:!0,...a,isActive:()=>l||!!o?.sidebar&&o.sidebar===i.sidebar,label:n??i.id,to:i.path})},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:r,...a}=e;const{activeDoc:o}=(0,we.Iw)(r),i=(0,Ze.oz)(t,r).link;if(!i)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return(0,c.jsx)(oe,{exact:!0,...a,isActive:()=>o?.sidebar===t,label:n??i.label,to:i.path})},docsVersion:function(e){let{label:t,to:n,docsPluginId:r,...a}=e;const o=(0,Ze.lO)(r)[0],i=t??o.label,l=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(o).path;return(0,c.jsx)(oe,{...a,label:i,to:l})},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:r,dropdownItemsBefore:a,dropdownItemsAfter:o,...i}=e;const{search:u,hash:d}=(0,l.TH)(),f=(0,we.Iw)(n),p=(0,we.gB)(n),{savePreferredVersionName:h}=(0,ve.J)(n),m=[...a,...p.map((e=>{const t=f.alternateDocVersions[e.name]??He(e);return{label:e.label,to:`${t.path}${u}${d}`,isActive:()=>e===f.activeVersion,onClick:()=>h(e.name)}})),...o],g=(0,Ze.lO)(n)[0],y=t&&m.length>1?(0,s.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):g.label,b=t&&m.length>1?void 0:He(g).path;return m.length<=1?(0,c.jsx)(oe,{...i,mobile:t,label:y,to:b,isActive:r?()=>!1:void 0}):(0,c.jsx)(pe,{...i,mobile:t,label:y,to:b,items:m,isActive:r?()=>!1:void 0})}};function We(e){let{type:t,...n}=e;const r=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),a=Ve[r];if(!a)throw new Error(`No NavbarItem component found for type "${t}".`);return(0,c.jsx)(a,{...n})}function qe(){const e=(0,N.e)(),t=(0,w.L)().navbar.items;return(0,c.jsx)("ul",{className:"menu__list",children:t.map(((t,n)=>(0,r.createElement)(We,{mobile:!0,...t,onClick:()=>e.toggle(),key:n})))})}function Ge(e){return(0,c.jsx)("button",{...e,type:"button",className:"clean-btn navbar-sidebar__back",children:(0,c.jsx)(s.Z,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)",children:"\u2190 Back to main menu"})})}function Ye(){const e=0===(0,w.L)().navbar.items.length,t=F();return(0,c.jsxs)(c.Fragment,{children:[!e&&(0,c.jsx)(Ge,{onClick:()=>t.hide()}),t.content]})}function Ke(){const e=(0,N.e)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?(0,c.jsx)(D,{header:(0,c.jsx)(Y,{}),primaryMenu:(0,c.jsx)(qe,{}),secondaryMenu:(0,c.jsx)(Ye,{})}):null}const Xe={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function Je(e){return(0,c.jsx)("div",{role:"presentation",...e,className:(0,a.Z)("navbar-sidebar__backdrop",e.className)})}function et(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:o}}=(0,w.L)(),i=(0,N.e)(),{navbarRef:l,isNavbarVisible:d}=function(e){const[t,n]=(0,r.useState)(e),a=(0,r.useRef)(!1),o=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(o.current=e.getBoundingClientRect().height)}),[]);return(0,j.RF)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i<o.current)return void n(!0);if(a.current)return void(a.current=!1);const l=r?.scrollY,s=document.documentElement.scrollHeight-o.current,u=window.innerHeight;l&&i>=l?n(!1):i+u<s&&n(!0)})),(0,u.S)((t=>{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return a.current=!0,void n(!1);n(!0)})),{navbarRef:i,isNavbarVisible:t}}(n);return(0,c.jsxs)("nav",{ref:l,"aria-label":(0,s.I)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,a.Z)("navbar","navbar--fixed-top",n&&[Xe.navbarHideable,!d&&Xe.navbarHidden],{"navbar--dark":"dark"===o,"navbar--primary":"primary"===o,"navbar-sidebar--show":i.shown}),children:[t,(0,c.jsx)(Je,{onClick:i.toggle}),(0,c.jsx)(Ke,{})]})}var tt=n(8780);const nt={errorBoundaryError:"errorBoundaryError_a6uf",errorBoundaryFallback:"errorBoundaryFallback_VBag"};function rt(e){return(0,c.jsx)("button",{type:"button",...e,children:(0,c.jsx)(s.Z,{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 at(e){let{error:t}=e;const n=(0,tt.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,c.jsx)("p",{className:nt.errorBoundaryError,children:n})}class ot extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const it="right";function lt(e){let{width:t=30,height:n=30,className:r,...a}=e;return(0,c.jsx)("svg",{className:r,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true",...a,children:(0,c.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"})})}function st(){const{toggle:e,shown:t}=(0,N.e)();return(0,c.jsx)("button",{onClick:e,"aria-label":(0,s.I)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button",children:(0,c.jsx)(lt,{})})}const ut={colorModeToggle:"colorModeToggle_DEke"};function ct(e){let{items:t}=e;return(0,c.jsx)(c.Fragment,{children:t.map(((e,t)=>(0,c.jsx)(ot,{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,c.jsx)(We,{...e})},t)))})}function dt(e){let{left:t,right:n}=e;return(0,c.jsxs)("div",{className:"navbar__inner",children:[(0,c.jsx)("div",{className:"navbar__items",children:t}),(0,c.jsx)("div",{className:"navbar__items navbar__items--right",children:n})]})}function ft(){const e=(0,N.e)(),t=(0,w.L)().navbar.items,[n,r]=function(e){function t(e){return"left"===(e.position??it)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),a=t.find((e=>"search"===e.type));return(0,c.jsx)(dt,{left:(0,c.jsxs)(c.Fragment,{children:[!e.disabled&&(0,c.jsx)(st,{}),(0,c.jsx)(q,{}),(0,c.jsx)(ct,{items:n})]}),right:(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(ct,{items:r}),(0,c.jsx)(V,{className:ut.colorModeToggle}),!a&&(0,c.jsx)(Qe,{children:(0,c.jsx)($e,{})})]})})}function pt(){return(0,c.jsx)(et,{children:(0,c.jsx)(ft,{})})}function ht(e){let{item:t}=e;const{to:n,href:r,label:a,prependBaseUrlToHref:o,...i}=t,l=(0,X.Z)(n),s=(0,X.Z)(r,{forcePrependBaseUrl:!0});return(0,c.jsxs)(K.Z,{className:"footer__link-item",...r?{href:o?s:r}:{to:l},...i,children:[a,r&&!(0,J.Z)(r)&&(0,c.jsx)(te.Z,{})]})}function mt(e){let{item:t}=e;return t.html?(0,c.jsx)("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):(0,c.jsx)("li",{className:"footer__item",children:(0,c.jsx)(ht,{item:t})},t.href??t.to)}function gt(e){let{column:t}=e;return(0,c.jsxs)("div",{className:"col footer__col",children:[(0,c.jsx)("div",{className:"footer__title",children:t.title}),(0,c.jsx)("ul",{className:"footer__items clean-list",children:t.items.map(((e,t)=>(0,c.jsx)(mt,{item:e},t)))})]})}function yt(e){let{columns:t}=e;return(0,c.jsx)("div",{className:"row footer__links",children:t.map(((e,t)=>(0,c.jsx)(gt,{column:e},t)))})}function bt(){return(0,c.jsx)("span",{className:"footer__link-separator",children:"\xb7"})}function vt(e){let{item:t}=e;return t.html?(0,c.jsx)("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):(0,c.jsx)(ht,{item:t})}function wt(e){let{links:t}=e;return(0,c.jsx)("div",{className:"footer__links text--center",children:(0,c.jsx)("div",{className:"footer__links",children:t.map(((e,n)=>(0,c.jsxs)(r.Fragment,{children:[(0,c.jsx)(vt,{item:e}),t.length!==n+1&&(0,c.jsx)(bt,{})]},n)))})})}function xt(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?(0,c.jsx)(yt,{columns:t}):(0,c.jsx)(wt,{links:t})}var kt=n(9965);const St={footerLogoLink:"footerLogoLink_BH7S"};function Et(e){let{logo:t}=e;const{withBaseUrl:n}=(0,X.C)(),r={light:n(t.src),dark:n(t.srcDark??t.src)};return(0,c.jsx)(kt.Z,{className:(0,a.Z)("footer__logo",t.className),alt:t.alt,sources:r,width:t.width,height:t.height,style:t.style})}function _t(e){let{logo:t}=e;return t.href?(0,c.jsx)(K.Z,{href:t.href,className:St.footerLogoLink,target:t.target,children:(0,c.jsx)(Et,{logo:t})}):(0,c.jsx)(Et,{logo:t})}function Ct(e){let{copyright:t}=e;return(0,c.jsx)("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function Tt(e){let{style:t,links:n,logo:r,copyright:o}=e;return(0,c.jsx)("footer",{className:(0,a.Z)("footer",{"footer--dark":"dark"===t}),children:(0,c.jsxs)("div",{className:"container container-fluid",children:[n,(r||o)&&(0,c.jsxs)("div",{className:"footer__bottom text--center",children:[r&&(0,c.jsx)("div",{className:"margin-bottom--sm",children:r}),o]})]})})}function Lt(){const{footer:e}=(0,w.L)();if(!e)return null;const{copyright:t,links:n,logo:r,style:a}=e;return(0,c.jsx)(Tt,{style:a,links:n&&n.length>0&&(0,c.jsx)(xt,{links:n}),logo:r&&(0,c.jsx)(_t,{logo:r}),copyright:t&&(0,c.jsx)(Ct,{copyright:t})})}const Nt=r.memo(Lt),jt=(0,P.Qc)([M.S,x.pl,j.OC,ve.L5,i.VC,function(e){let{children:t}=e;return(0,c.jsx)(A.n2,{children:(0,c.jsx)(N.M,{children:(0,c.jsx)(I,{children:t})})})}]);function Pt(e){let{children:t}=e;return(0,c.jsx)(jt,{children:t})}var At=n(2503);function Ot(e){let{error:t,tryAgain:n}=e;return(0,c.jsx)("main",{className:"container margin-vert--xl",children:(0,c.jsx)("div",{className:"row",children:(0,c.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,c.jsx)(At.Z,{as:"h1",className:"hero__title",children:(0,c.jsx)(s.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed",children:"This page crashed."})}),(0,c.jsx)("div",{className:"margin-vert--lg",children:(0,c.jsx)(rt,{onClick:n,className:"button button--primary shadow--lw"})}),(0,c.jsx)("hr",{}),(0,c.jsx)("div",{className:"margin-vert--md",children:(0,c.jsx)(at,{error:t})})]})})})}const It={mainWrapper:"mainWrapper_z2l0"};function Rt(e){const{children:t,noFooter:n,wrapperClassName:r,title:l,description:s}=e;return(0,y.t)(),(0,c.jsxs)(Pt,{children:[(0,c.jsx)(i.d,{title:l,description:s}),(0,c.jsx)(v,{}),(0,c.jsx)(L,{}),(0,c.jsx)(pt,{}),(0,c.jsx)("div",{id:d,className:(0,a.Z)(g.k.wrapper.main,It.mainWrapper,r),children:(0,c.jsx)(o.Z,{fallback:e=>(0,c.jsx)(Ot,{...e}),children:t})}),!n&&(0,c.jsx)(Nt,{})]})}},1327:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});n(7294);var r=n(9960),a=n(4996),o=n(2263),i=n(6668),l=n(9965),s=n(5893);function u(e){let{logo:t,alt:n,imageClassName:r}=e;const o={light:(0,a.Z)(t.src),dark:(0,a.Z)(t.srcDark||t.src)},i=(0,s.jsx)(l.Z,{className:t.className,sources:o,height:t.height,width:t.width,alt:n,style:t.style});return r?(0,s.jsx)("div",{className:r,children:i}):i}function c(e){const{siteConfig:{title:t}}=(0,o.Z)(),{navbar:{title:n,logo:l}}=(0,i.L)(),{imageClassName:c,titleClassName:d,...f}=e,p=(0,a.Z)(l?.href||"/"),h=n?"":t,m=l?.alt??h;return(0,s.jsxs)(r.Z,{to:p,...f,...l?.target&&{target:l.target},children:[l&&(0,s.jsx)(u,{logo:l,alt:m,imageClassName:c}),null!=n&&(0,s.jsx)("b",{className:d,children:n})]})}},197:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});n(7294);var r=n(5742),a=n(5893);function o(e){let{locale:t,version:n,tag:o}=e;const i=t;return(0,a.jsxs)(r.Z,{children:[t&&(0,a.jsx)("meta",{name:"docusaurus_locale",content:t}),n&&(0,a.jsx)("meta",{name:"docusaurus_version",content:n}),o&&(0,a.jsx)("meta",{name:"docusaurus_tag",content:o}),i&&(0,a.jsx)("meta",{name:"docsearch:language",content:i}),n&&(0,a.jsx)("meta",{name:"docsearch:version",content:n}),o&&(0,a.jsx)("meta",{name:"docsearch:docusaurus_tag",content:o})]})}},9965:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});var r=n(7294),a=n(512),o=n(2389),i=n(2949);const l={themedComponent:"themedComponent_mlkZ","themedComponent--light":"themedComponent--light_NVdE","themedComponent--dark":"themedComponent--dark_xIcU"};var s=n(5893);function u(e){let{className:t,children:n}=e;const u=(0,o.Z)(),{colorMode:c}=(0,i.I)();return(0,s.jsx)(s.Fragment,{children:(u?"dark"===c?["dark"]:["light"]:["light","dark"]).map((e=>{const o=n({theme:e,className:(0,a.Z)(t,l.themedComponent,l[`themedComponent--${e}`])});return(0,s.jsx)(r.Fragment,{children:o},e)}))})}function c(e){const{sources:t,className:n,alt:r,...a}=e;return(0,s.jsx)(u,{className:n,children:e=>{let{theme:n,className:o}=e;return(0,s.jsx)("img",{src:t[n],alt:r,className:o,...a})}})}},6043:(e,t,n)=>{"use strict";n.d(t,{u:()=>u,z:()=>y});var r=n(7294),a=n(412),o=n(469),i=n(1442),l=n(5893);const s="ease-in-out";function u(e){let{initialState:t}=e;const[n,a]=(0,r.useState)(t??!1),o=(0,r.useCallback)((()=>{a((e=>!e))}),[]);return{collapsed:n,setCollapsed:a,toggleCollapsed:o}}const c={display:"none",overflow:"hidden",height:"0px"},d={display:"block",overflow:"visible",height:"auto"};function f(e,t){const n=t?c:d;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function p(e){let{collapsibleRef:t,collapsed:n,animation:a}=e;const o=(0,r.useRef)(!1);(0,r.useEffect)((()=>{const e=t.current;function r(){const t=e.scrollHeight,n=a?.duration??function(e){if((0,i.n)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${a?.easing??s}`,height:`${t}px`}}function l(){const t=r();e.style.transition=t.transition,e.style.height=t.height}if(!o.current)return f(e,n),void(o.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(l(),requestAnimationFrame((()=>{e.style.height=c.height,e.style.overflow=c.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{l()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,a])}function h(e){if(!a.Z.canUseDOM)return e?c:d}function m(e){let{as:t="div",collapsed:n,children:a,animation:o,onCollapseTransitionEnd:i,className:s,disableSSRStyle:u}=e;const c=(0,r.useRef)(null);return p({collapsibleRef:c,collapsed:n,animation:o}),(0,l.jsx)(t,{ref:c,style:u?void 0:h(n),onTransitionEnd:e=>{"height"===e.propertyName&&(f(c.current,n),i?.(n))},className:s,children:a})}function g(e){let{collapsed:t,...n}=e;const[a,i]=(0,r.useState)(!t),[s,u]=(0,r.useState)(t);return(0,o.Z)((()=>{t||i(!0)}),[t]),(0,o.Z)((()=>{a&&u(t)}),[a,t]),a?(0,l.jsx)(m,{...n,collapsed:s}):null}function y(e){let{lazy:t,...n}=e;const r=t?g:m;return(0,l.jsx)(r,{...n})}},9689:(e,t,n)=>{"use strict";n.d(t,{nT:()=>m,pl:()=>h});var r=n(7294),a=n(2389),o=n(12),i=n(902),l=n(6668),s=n(5893);const u=(0,o.WA)("docusaurus.announcement.dismiss"),c=(0,o.WA)("docusaurus.announcement.id"),d=()=>"true"===u.get(),f=e=>u.set(String(e)),p=r.createContext(null);function h(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,l.L)(),t=(0,a.Z)(),[n,o]=(0,r.useState)((()=>!!t&&d()));(0,r.useEffect)((()=>{o(d())}),[]);const i=(0,r.useCallback)((()=>{f(!0),o(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=c.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;c.set(t),r&&f(!1),!r&&d()||o(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return(0,s.jsx)(p.Provider,{value:n,children:t})}function m(){const e=(0,r.useContext)(p);if(!e)throw new i.i6("AnnouncementBarProvider");return e}},2949:(e,t,n)=>{"use strict";n.d(t,{I:()=>y,S:()=>g});var r=n(7294),a=n(412),o=n(902),i=n(12),l=n(6668),s=n(5893);const u=r.createContext(void 0),c="theme",d=(0,i.WA)(c),f={light:"light",dark:"dark"},p=e=>e===f.dark?f.dark:f.light,h=e=>a.Z.canUseDOM?p(document.documentElement.getAttribute("data-theme")):p(e),m=e=>{d.set(p(e))};function g(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,l.L)(),[a,o]=(0,r.useState)(h(e));(0,r.useEffect)((()=>{t&&d.del()}),[t]);const i=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:a=!0}=r;t?(o(t),a&&m(t)):(o(n?window.matchMedia("(prefers-color-scheme: dark)").matches?f.dark:f.light:e),d.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",p(a))}),[a]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==c)return;const t=d.get();null!==t&&i(p(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,i]);const s=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||s.current?s.current=window.matchMedia("print").matches:i(null)};return e.addListener(r),()=>e.removeListener(r)}),[i,t,n]),(0,r.useMemo)((()=>({colorMode:a,setColorMode:i,get isDarkTheme(){return a===f.dark},setLightTheme(){i(f.light)},setDarkTheme(){i(f.dark)}})),[a,i])}();return(0,s.jsx)(u.Provider,{value:n,children:t})}function y(){const e=(0,r.useContext)(u);if(null==e)throw new o.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},373:(e,t,n)=>{"use strict";n.d(t,{J:()=>v,L5:()=>y});var r=n(7294),a=n(143),o=n(9935),i=n(6668),l=n(2802),s=n(902),u=n(12),c=n(5893);const d=e=>`docs-preferred-version-${e}`,f={save:(e,t,n)=>{(0,u.WA)(d(e),{persistence:t}).set(n)},read:(e,t)=>(0,u.WA)(d(e),{persistence:t}).get(),clear:(e,t)=>{(0,u.WA)(d(e),{persistence:t}).del()}},p=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const h=r.createContext(null);function m(){const e=(0,a._r)(),t=(0,i.L)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[o,l]=(0,r.useState)((()=>p(n)));(0,r.useEffect)((()=>{l(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function a(e){const t=f.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(f.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,a(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[o,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){f.save(e,t,n),l((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function g(e){let{children:t}=e;const n=m();return(0,c.jsx)(h.Provider,{value:n,children:t})}function y(e){let{children:t}=e;return l.cE?(0,c.jsx)(g,{children:t}):(0,c.jsx)(c.Fragment,{children:t})}function b(){const e=(0,r.useContext)(h);if(!e)throw new s.i6("DocsPreferredVersionContextProvider");return e}function v(e){void 0===e&&(e=o.m);const t=(0,a.zh)(e),[n,i]=b(),{preferredVersionName:l}=n[e];return{preferredVersion:t.versions.find((e=>e.name===l))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}},1116:(e,t,n)=>{"use strict";n.d(t,{V:()=>u,b:()=>s});var r=n(7294),a=n(902),o=n(5893);const i=Symbol("EmptyContext"),l=r.createContext(i);function s(e){let{children:t,name:n,items:a}=e;const i=(0,r.useMemo)((()=>n&&a?{name:n,items:a}:null),[n,a]);return(0,o.jsx)(l.Provider,{value:i,children:t})}function u(){const e=(0,r.useContext)(l);if(e===i)throw new a.i6("DocsSidebarProvider");return e}},4477:(e,t,n)=>{"use strict";n.d(t,{E:()=>s,q:()=>l});var r=n(7294),a=n(902),o=n(5893);const i=r.createContext(null);function l(e){let{children:t,version:n}=e;return(0,o.jsx)(i.Provider,{value:n,children:t})}function s(){const e=(0,r.useContext)(i);if(null===e)throw new a.i6("DocsVersionProvider");return e}},2961:(e,t,n)=>{"use strict";n.d(t,{M:()=>p,e:()=>h});var r=n(7294),a=n(3102),o=n(7524),i=n(6550),l=n(902);function s(e){!function(e){const t=(0,i.k6)(),n=(0,l.zX)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}var u=n(6668),c=n(5893);const d=r.createContext(void 0);function f(){const e=function(){const e=(0,a.HY)(),{items:t}=(0,u.L)().navbar;return 0===t.length&&!e.component}(),t=(0,o.i)(),n=!e&&"mobile"===t,[i,l]=(0,r.useState)(!1);s((()=>{if(i)return l(!1),!1}));const c=(0,r.useCallback)((()=>{l((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&l(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:c,shown:i})),[e,n,c,i])}function p(e){let{children:t}=e;const n=f();return(0,c.jsx)(d.Provider,{value:n,children:t})}function h(){const e=r.useContext(d);if(void 0===e)throw new l.i6("NavbarMobileSidebarProvider");return e}},3102:(e,t,n)=>{"use strict";n.d(t,{HY:()=>s,Zo:()=>u,n2:()=>l});var r=n(7294),a=n(902),o=n(5893);const i=r.createContext(null);function l(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return(0,o.jsx)(i.Provider,{value:n,children:t})}function s(){const e=(0,r.useContext)(i);if(!e)throw new a.i6("NavbarSecondaryMenuContentProvider");return e[0]}function u(e){let{component:t,props:n}=e;const o=(0,r.useContext)(i);if(!o)throw new a.i6("NavbarSecondaryMenuContentProvider");const[,l]=o,s=(0,a.Ql)(n);return(0,r.useEffect)((()=>{l({component:t,props:s})}),[l,t,s]),(0,r.useEffect)((()=>()=>l({component:null,props:null})),[l]),null}},9727:(e,t,n)=>{"use strict";n.d(t,{h:()=>a,t:()=>o});var r=n(7294);const a="navigation-with-keyboard";function o(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(a),"mousedown"===e.type&&document.body.classList.remove(a)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(a),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},7524:(e,t,n)=>{"use strict";n.d(t,{i:()=>l});var r=n(7294),a=n(412);const o={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function l(){const[e,t]=(0,r.useState)((()=>"ssr"));return(0,r.useEffect)((()=>{function e(){t(function(){if(!a.Z.canUseDOM)throw new Error("getWindowSize() should only be called after React hydration");return window.innerWidth>i?o.desktop:o.mobile}())}return e(),window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}}),[]),e}},5281:(e,t,n)=>{"use strict";n.d(t,{k:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",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:{}}},1442:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{n:()=>r})},2802:(e,t,n)=>{"use strict";n.d(t,{MN:()=>T,LM:()=>h,_F:()=>b,cE:()=>f,jA:()=>m,xz:()=>p,SN:()=>C,lO:()=>S,vY:()=>_,oz:()=>E,s1:()=>k,f:()=>w});var r=n(7294),a=n(6550),o=n(8790),i=n(143),l=n(373),s=n(4477),u=n(1116);function c(e){return Array.from(new Set(e))}var d=n(8596);const f=!!i._r;function p(e){const t=(0,s.E)();if(!e)return;const n=t.docs[e];if(!n)throw new Error(`no version doc found by id=${e}`);return n}function h(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=h(t);if(e)return e}}(e):void 0:e.href}function m(){const{pathname:e}=(0,a.TH)(),t=(0,u.V)();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 g=(e,t)=>void 0!==e&&(0,d.Mg)(e,t),y=(e,t)=>e.some((e=>b(e,t)));function b(e,t){return"link"===e.type?g(e.href,t):"category"===e.type&&(g(e.href,t)||y(e.items,t))}function v(e,t){switch(e.type){case"category":return b(e,t)||e.items.some((e=>v(e,t)));case"link":return!e.unlisted||b(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 a=[];return function e(t){for(const o of t)if("category"===o.type&&((0,d.Mg)(o.href,n)||e(o.items))||"link"===o.type&&(0,d.Mg)(o.href,n)){return r&&"category"!==o.type||a.unshift(o),!0}return!1}(t),a}function k(){const e=(0,u.V)(),{pathname:t}=(0,a.TH)(),n=(0,i.gA)()?.pluginData.breadcrumbs;return!1!==n&&e?x({sidebarItems:e.items,pathname:t}):null}function S(e){const{activeVersion:t}=(0,i.Iw)(e),{preferredVersion:n}=(0,l.J)(e),a=(0,i.yW)(e);return(0,r.useMemo)((()=>c([t,n,a].filter(Boolean))),[t,n,a])}function E(e,t){const n=S(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable sidebar ids are:\n- ${t.map((e=>e[0])).join("\n- ")}`);return r[1]}),[e,n])}function _(e,t){const n=S(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${c(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function C(e){let{route:t}=e;const n=(0,a.TH)(),r=(0,s.E)(),i=t.routes,l=i.find((e=>(0,a.LX)(n.pathname,e)));if(!l)return null;const u=l.sidebar,c=u?r.docsSidebars[u]:void 0;return{docElement:(0,o.H)(i),sidebarName:u,sidebarItems:c}}function T(e){return e.filter((e=>!("category"===e.type||"link"===e.type)||!!h(e)))}},1944:(e,t,n)=>{"use strict";n.d(t,{FG:()=>p,d:()=>d,VC:()=>h});var r=n(7294),a=n(512),o=n(5742),i=n(226);function l(){const e=r.useContext(i._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var s=n(4996),u=n(2263);var c=n(5893);function d(e){let{title:t,description:n,keywords:r,image:a,children:i}=e;const l=function(e){const{siteConfig:t}=(0,u.Z)(),{title:n,titleDelimiter:r}=t;return e?.trim().length?`${e.trim()} ${r} ${n}`:n}(t),{withBaseUrl:d}=(0,s.C)(),f=a?d(a,{absolute:!0}):void 0;return(0,c.jsxs)(o.Z,{children:[t&&(0,c.jsx)("title",{children:l}),t&&(0,c.jsx)("meta",{property:"og:title",content:l}),n&&(0,c.jsx)("meta",{name:"description",content:n}),n&&(0,c.jsx)("meta",{property:"og:description",content:n}),r&&(0,c.jsx)("meta",{name:"keywords",content:Array.isArray(r)?r.join(","):r}),f&&(0,c.jsx)("meta",{property:"og:image",content:f}),f&&(0,c.jsx)("meta",{name:"twitter:image",content:f}),i]})}const f=r.createContext(void 0);function p(e){let{className:t,children:n}=e;const i=r.useContext(f),l=(0,a.Z)(i,t);return(0,c.jsxs)(f.Provider,{value:l,children:[(0,c.jsx)(o.Z,{children:(0,c.jsx)("html",{className:l})}),n]})}function h(e){let{children:t}=e;const n=l(),r=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const o=`plugin-id-${n.plugin.id}`;return(0,c.jsx)(p,{className:(0,a.Z)(r,o),children:t})}},902:(e,t,n)=>{"use strict";n.d(t,{D9:()=>l,Qc:()=>c,Ql:()=>u,i6:()=>s,zX:()=>i});var r=n(7294),a=n(469),o=n(5893);function i(e){const t=(0,r.useRef)(e);return(0,a.Z)((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function l(e){const t=(0,r.useRef)();return(0,a.Z)((()=>{t.current=e})),t.current}class s extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?<name>\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function u(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function c(e){return t=>{let{children:n}=t;return(0,o.jsx)(o.Fragment,{children:e.reduceRight(((e,t)=>(0,o.jsx)(t,{children:e})),n)})}}},8596:(e,t,n)=>{"use strict";n.d(t,{Mg:()=>i,Ns:()=>l});var r=n(7294),a=n(723),o=n(2263);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function l(){const{baseUrl:e}=(0,o.Z)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function a(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(a).flatMap((e=>e.routes??[])))}(n)}({routes:a.Z,baseUrl:e})),[e])}},2466:(e,t,n)=>{"use strict";n.d(t,{Ct:()=>p,OC:()=>u,RF:()=>f});var r=n(7294),a=n(412),o=n(2389),i=(n(469),n(902)),l=n(5893);const s=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)(s.Provider,{value:n,children:t})}function c(){const e=(0,r.useContext)(s);if(null==e)throw new i.i6("ScrollControllerProvider");return e}const d=()=>a.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function f(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=c(),a=(0,r.useRef)(d()),o=(0,i.zX)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=d();o(e,a.current),a.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[o,n,...t])}function p(){const e=(0,r.useRef)(null),t=(0,o.Z)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const a=document.documentElement.scrollTop;(n&&a>e||!n&&a<e)&&(t=requestAnimationFrame(r),window.scrollTo(0,Math.floor(.85*(a-e))+e))}(),()=>t&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},3320:(e,t,n)=>{"use strict";n.d(t,{HX:()=>r,os:()=>a});n(2263);const r="default";function a(e,t){return`docs-${e}-${t}`}},12:(e,t,n)=>{"use strict";n.d(t,{WA:()=>s});n(7294);const r="localStorage";function a(e){let{key:t,oldValue:n,newValue:r,storage:a}=e;if(n===r)return;const o=document.createEvent("StorageEvent");o.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,a),window.dispatchEvent(o)}function o(e){if(void 0===e&&(e=r),"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 s(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=o(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),()=>{}}}}}},4711:(e,t,n)=>{"use strict";n.d(t,{l:()=>i});var r=n(2263),a=n(6550),o=n(8780);function i(){const{siteConfig:{baseUrl:e,url:t,trailingSlash:n},i18n:{defaultLocale:i,currentLocale:l}}=(0,r.Z)(),{pathname:s}=(0,a.TH)(),u=(0,o.applyTrailingSlash)(s,{trailingSlash:n,baseUrl:e}),c=l===i?e:e.replace(`/${l}/`,"/"),d=u.replace(e,"");return{createUrl:function(e){let{locale:n,fullyQualified:r}=e;return`${r?t:""}${function(e){return e===i?`${c}`:`${c}${e}/`}(n)}${d}`}}}},5936:(e,t,n)=>{"use strict";n.d(t,{S:()=>i});var r=n(7294),a=n(6550),o=n(902);function i(e){const t=(0,a.TH)(),n=(0,o.D9)(t),i=(0,o.zX)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},6668:(e,t,n)=>{"use strict";n.d(t,{L:()=>a});var r=n(2263);function a(){return(0,r.Z)().siteConfig.themeConfig}},8802:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[a]=e.split(/[#?]/),o="/"===a||a===r?a:(i=a,n?function(e){return e.endsWith("/")?e:`${e}/`}(i):function(e){return e.endsWith("/")?e.slice(0,-1):e}(i));var i;return e.replace(a,o)}},4143:(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]}},8780:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="__blog-post-container";var a=n(8802);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(a).default}});var o=n(4143);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return o.getErrorCausalChain}})},311:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});n(7294);var r=n(1728);const a={loadingRing:"loadingRing_RJI3","loading-ring":"loading-ring_FB5o"};var o=n(5893);function i(e){let{className:t}=e;return(0,o.jsxs)("div",{className:(0,r.Z)(a.loadingRing,t),children:[(0,o.jsx)("div",{}),(0,o.jsx)("div",{}),(0,o.jsx)("div",{}),(0,o.jsx)("div",{})]})}},22:(e,t,n)=>{"use strict";n.d(t,{w:()=>l});var r=n(1336),a=n.n(r),o=n(1029);const i=new Map;function l(e,t){const n=`${e}${t}`;let r=i.get(n);return r||(r=async function(e,t){{const n=`${e}${o.J.replace("{dir}",t?`-${t.replace(/\//g,"-")}`:"")}`;if(new URL(n,location.origin).origin!==location.origin)throw new Error("Unexpected version url");const r=await(await fetch(n)).json(),i=r.map(((e,t)=>{let{documents:n,index:r}=e;return{type:t,documents:n,index:a().Index.load(r)}})),l=r.reduce(((e,t)=>{for(const n of t.index.invertedIndex)/\p{Unified_Ideograph}/u.test(n[0][0])&&e.add(n[0]);return e}),new Set);return{wrappedIndexes:i,zhDictionary:Array.from(l)}}return{wrappedIndexes:[],zhDictionary:[]}}(e,t),i.set(n,r)),r}},8202:(e,t,n)=>{"use strict";n.d(t,{v:()=>s});var r=n(1336),a=n.n(r);var o=n(1029);function i(e){return l(e).concat(l(e.filter((e=>{const t=e[e.length-1];return!t.trailing&&t.maybeTyping})),!0))}function l(e,t){return e.map((e=>({tokens:e.map((e=>e.value)),term:e.map((e=>({value:e.value,presence:a().Query.presence.REQUIRED,wildcard:(t?e.trailing||e.maybeTyping:e.trailing)?a().Query.wildcard.TRAILING:a().Query.wildcard.NONE})))})))}function s(e,t,n){return function(r,l){const s=function(e,t){if(1===t.length&&["ja","jp","th"].includes(t[0]))return a()[t[0]].tokenizer(e).map((e=>e.toString()));let n=/[^-\s]+/g;return t.includes("zh")&&(n=/\w+|\p{Unified_Ideograph}+/gu),e.toLowerCase().match(n)||[]}(r,o.dK);if(0===s.length)return void l([]);const u=function(e,t){const n=function(e,t){const n=[];return function e(r,a){if(0===r.length)return void n.push(a);const o=r[0];if(/\p{Unified_Ideograph}/u.test(o)){const n=function(e,t){const n=[];return function e(r,a){let o=0,i=!1;for(const l of t)if(r.substr(0,l.length)===l){const t={missed:a.missed,term:a.term.concat({value:l})};r.length>l.length?e(r.substr(l.length),t):n.push(t),i=!0}else for(let t=l.length-1;t>o;t-=1){const s=l.substr(0,t);if(r.substr(0,t)===s){o=t;const l={missed:a.missed,term:a.term.concat({value:s,trailing:!0})};r.length>t?e(r.substr(t),l):n.push(l),i=!0;break}}i||(r.length>0?e(r.substr(1),{missed:a.missed+1,term:a.term}):a.term.length>0&&n.push(a))}(e,{missed:0,term:[]}),n.sort(((e,t)=>{const n=e.missed>0?1:0,r=t.missed>0?1:0;return n!==r?n-r:e.term.length-t.term.length})).map((e=>e.term))}(o,t);for(const t of n){const n=a.concat(...t);e(r.slice(1),n)}}else{const t=a.concat({value:o});e(r.slice(1),t)}}(e,[]),n}(e,t);if(0===n.length)return[{tokens:e,term:e.map((e=>({value:e,presence:a().Query.presence.REQUIRED,wildcard:a().Query.wildcard.LEADING|a().Query.wildcard.TRAILING})))}];for(const a of n)a[a.length-1].maybeTyping=!0;const r=[];for(const i of o.dK)if("en"===i)o._k||r.unshift(a().stopWordFilter);else{const e=a()[i];e.stopWordFilter&&r.unshift(e.stopWordFilter)}let l;if(r.length>0){const e=e=>r.reduce(((e,t)=>e.filter((e=>t(e.value)))),e);l=[];const t=[];for(const r of n){const n=e(r);l.push(n),n.length<r.length&&n.length>0&&t.push(n)}n.push(...t)}else l=n.slice();const s=[];for(const a of l)if(a.length>2)for(let e=a.length-1;e>=0;e-=1)s.push(a.slice(0,e).concat(a.slice(e+1)));return i(n).concat(i(s))}(s,t),c=[];e:for(const{term:t,tokens:a}of u)for(const{documents:r,index:o,type:i}of e)if(c.push(...o.query((e=>{for(const n of t)e.term(n.value,{wildcard:n.wildcard,presence:n.presence})})).slice(0,n).filter((e=>!c.some((t=>t.document.i.toString()===e.ref)))).slice(0,n-c.length).map((t=>{const n=r.find((e=>e.i.toString()===t.ref));return{document:n,type:i,page:0!==i&&e[0].documents.find((e=>e.i===n.p)),metadata:t.matchData.metadata,tokens:a,score:t.score}}))),c.length>=n)break e;!function(e){e.forEach(((e,t)=>{e.index=t})),e.sort(((t,n)=>{let r=t.type>0&&t.page?e.findIndex((e=>e.document===t.page)):t.index,a=n.type>0&&n.page?e.findIndex((e=>e.document===n.page)):n.index;return-1===r&&(r=t.index),-1===a&&(a=n.index),r===a?0===t.type?-1:0===n.type?1:t.index-n.index:r-a}))}(c),function(e){e.forEach(((t,n)=>{n>0&&t.page&&e.some((e=>e.document===t.page))&&(n<e.length-1&&e[n+1].page===t.page?t.isInterOfTree=!0:t.isLastOfTree=!0)}))}(c),l(c)}}},3926:(e,t,n)=>{"use strict";function r(e){return e.join(" \u203a ")}n.d(t,{e:()=>r})},1690:(e,t,n)=>{"use strict";function r(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}n.d(t,{X:()=>r})},1073:(e,t,n)=>{"use strict";function r(e,t){const n=[];for(const r of Object.values(e))r[t]&&n.push(...r[t].position);return n.sort(((e,t)=>e[0]-t[0]||t[1]-e[1]))}n.d(t,{m:()=>r})},2539:(e,t,n)=>{"use strict";n.d(t,{C:()=>a});var r=n(1690);function a(e,t,n){const o=[];for(const i of t){const n=e.toLowerCase().indexOf(i);if(n>=0){n>0&&o.push(a(e.substr(0,n),t)),o.push(`<mark>${(0,r.X)(e.substr(n,i.length))}</mark>`);const l=n+i.length;l<e.length&&o.push(a(e.substr(l),t));break}}return 0===o.length?n?`<mark>${(0,r.X)(e)}</mark>`:(0,r.X)(e):o.join("")}},726:(e,t,n)=>{"use strict";n.d(t,{o:()=>s});var r=n(1690),a=n(2539);const o=/\w+|\p{Unified_Ideograph}/u;function i(e){const t=[];let n=0,r=e;for(;r.length>0;){const a=r.match(o);if(!a){t.push(r);break}a.index>0&&t.push(r.substring(0,a.index)),t.push(a[0]),n+=a.index+a[0].length,r=e.substring(n)}return t}var l=n(1029);function s(e,t,n,o){void 0===o&&(o=l.Hk);const{chunkIndex:s,chunks:u}=function(e,t,n){const o=[];let l=0,s=0,u=-1;for(;l<t.length;){const[c,d]=t[l];if(l+=1,!(c<s)){if(c>s){const t=i(e.substring(s,c)).map((e=>({html:(0,r.X)(e),textLength:e.length})));for(const e of t)o.push(e)}-1===u&&(u=o.length),s=c+d,o.push({html:(0,a.C)(e.substring(c,s),n,!0),textLength:d})}}if(s<e.length){const t=i(e.substring(s)).map((e=>({html:(0,r.X)(e),textLength:e.length})));for(const e of t)o.push(e)}return{chunkIndex:u,chunks:o}}(e,t,n),c=u.slice(0,s),d=u[s],f=[d.html],p=u.slice(s+1);let h=d.textLength,m=0,g=0,y=!1,b=!1;for(;h<o;)if((m<=g||0===p.length)&&c.length>0){const e=c.pop();h+e.textLength<=o?(f.unshift(e.html),m+=e.textLength,h+=e.textLength):(y=!0,c.length=0)}else{if(!(p.length>0))break;{const e=p.shift();h+e.textLength<=o?(f.push(e.html),g+=e.textLength,h+=e.textLength):(b=!0,p.length=0)}}return(y||c.length>0)&&f.unshift("\u2026"),(b||p.length>0)&&f.push("\u2026"),f.join("")}},51:(e,t,n)=>{"use strict";function r(e,t){if("string"==typeof e)return{label:e,path:e};{const{label:n,path:r}=e;return"string"==typeof n?{label:n,path:r}:Object.prototype.hasOwnProperty.call(n,t)?{label:n[t],path:r}:{label:r,path:r}}}n.d(t,{_:()=>r})},1029:(e,t,n)=>{"use strict";n.d(t,{vc:()=>o,gQ:()=>p,H6:()=>u,hG:()=>g,l9:()=>h,dK:()=>r,_k:()=>a,pu:()=>f,AY:()=>c,t_:()=>d,Kc:()=>m,J:()=>i,Hk:()=>s,qo:()=>l,pQ:()=>y});n(1336);const r=["en"],a=!1,o=null,i="search-index{dir}.json?_=f9c520d8",l=8,s=50,u=!1,c=!0,d=!0,f="right",p=void 0,h=!0,m=null,g=!1,y=!1},9318:(e,t,n)=>{"use strict";n.d(t,{lX:()=>w,q_:()=>C,ob:()=>p,PP:()=>L,Ep:()=>f});var r=n(3117);function a(e){return"/"===e.charAt(0)}function o(e,t){for(var n=t,r=n+1,a=e.length;r<a;n+=1,r+=1)e[n]=e[r];e.pop()}const i=function(e,t){void 0===t&&(t="");var n,r=e&&e.split("/")||[],i=t&&t.split("/")||[],l=e&&a(e),s=t&&a(t),u=l||s;if(e&&a(e)?i=r:r.length&&(i.pop(),i=i.concat(r)),!i.length)return"/";if(i.length){var c=i[i.length-1];n="."===c||".."===c||""===c}else n=!1;for(var d=0,f=i.length;f>=0;f--){var p=i[f];"."===p?o(i,f):".."===p?(o(i,f),d++):d&&(o(i,f),d--)}if(!u)for(;d--;d)i.unshift("..");!u||""===i[0]||i[0]&&a(i[0])||i.unshift("");var h=i.join("/");return n&&"/"!==h.substr(-1)&&(h+="/"),h};var l=n(8776);function s(e){return"/"===e.charAt(0)?e:"/"+e}function u(e){return"/"===e.charAt(0)?e.substr(1):e}function c(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function f(e){var t=e.pathname,n=e.search,r=e.hash,a=t||"/";return n&&"?"!==n&&(a+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(a+="#"===r.charAt(0)?r:"#"+r),a}function p(e,t,n,a){var o;"string"==typeof e?(o=function(e){var t=e||"/",n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substr(a),t=t.substr(0,a));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),o.state=t):(void 0===(o=(0,r.Z)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(l){throw l instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):l}return n&&(o.key=n),a?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=i(o.pathname,a.pathname)):o.pathname=a.pathname:o.pathname||(o.pathname="/"),o}function h(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,a){if(null!=e){var o="function"==typeof e?e(t,n):e;"string"==typeof o?"function"==typeof r?r(o,a):a(!0):a(!1!==o)}else a(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];t.forEach((function(e){return e.apply(void 0,n)}))}}}var m=!("undefined"==typeof window||!window.document||!window.document.createElement);function g(e,t){t(window.confirm(e))}var y="popstate",b="hashchange";function v(){try{return window.history.state||{}}catch(e){return{}}}function w(e){void 0===e&&(e={}),m||(0,l.Z)(!1);var t,n=window.history,a=(-1===(t=window.navigator.userAgent).indexOf("Android 2.")&&-1===t.indexOf("Android 4.0")||-1===t.indexOf("Mobile Safari")||-1!==t.indexOf("Chrome")||-1!==t.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history,o=!(-1===window.navigator.userAgent.indexOf("Trident")),i=e,u=i.forceRefresh,w=void 0!==u&&u,x=i.getUserConfirmation,k=void 0===x?g:x,S=i.keyLength,E=void 0===S?6:S,_=e.basename?d(s(e.basename)):"";function C(e){var t=e||{},n=t.key,r=t.state,a=window.location,o=a.pathname+a.search+a.hash;return _&&(o=c(o,_)),p(o,r,n)}function T(){return Math.random().toString(36).substr(2,E)}var L=h();function N(e){(0,r.Z)($,e),$.length=n.length,L.notifyListeners($.location,$.action)}function j(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||O(C(e.state))}function P(){O(C(v()))}var A=!1;function O(e){if(A)A=!1,N();else{L.confirmTransitionTo(e,"POP",k,(function(t){t?N({action:"POP",location:e}):function(e){var t=$.location,n=R.indexOf(t.key);-1===n&&(n=0);var r=R.indexOf(e.key);-1===r&&(r=0);var a=n-r;a&&(A=!0,D(a))}(e)}))}}var I=C(v()),R=[I.key];function F(e){return _+f(e)}function D(e){n.go(e)}var M=0;function z(e){1===(M+=e)&&1===e?(window.addEventListener(y,j),o&&window.addEventListener(b,P)):0===M&&(window.removeEventListener(y,j),o&&window.removeEventListener(b,P))}var B=!1;var $={length:n.length,action:"POP",location:I,createHref:F,push:function(e,t){var r="PUSH",o=p(e,t,T(),$.location);L.confirmTransitionTo(o,r,k,(function(e){if(e){var t=F(o),i=o.key,l=o.state;if(a)if(n.pushState({key:i,state:l},null,t),w)window.location.href=t;else{var s=R.indexOf($.location.key),u=R.slice(0,s+1);u.push(o.key),R=u,N({action:r,location:o})}else window.location.href=t}}))},replace:function(e,t){var r="REPLACE",o=p(e,t,T(),$.location);L.confirmTransitionTo(o,r,k,(function(e){if(e){var t=F(o),i=o.key,l=o.state;if(a)if(n.replaceState({key:i,state:l},null,t),w)window.location.replace(t);else{var s=R.indexOf($.location.key);-1!==s&&(R[s]=o.key),N({action:r,location:o})}else window.location.replace(t)}}))},go:D,goBack:function(){D(-1)},goForward:function(){D(1)},block:function(e){void 0===e&&(e=!1);var t=L.setPrompt(e);return B||(z(1),B=!0),function(){return B&&(B=!1,z(-1)),t()}},listen:function(e){var t=L.appendListener(e);return z(1),function(){z(-1),t()}}};return $}var x="hashchange",k={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+u(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:u,decodePath:s},slash:{encodePath:s,decodePath:s}};function S(e){var t=e.indexOf("#");return-1===t?e:e.slice(0,t)}function E(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)}function _(e){window.location.replace(S(window.location.href)+"#"+e)}function C(e){void 0===e&&(e={}),m||(0,l.Z)(!1);var t=window.history,n=(window.navigator.userAgent.indexOf("Firefox"),e),a=n.getUserConfirmation,o=void 0===a?g:a,i=n.hashType,u=void 0===i?"slash":i,y=e.basename?d(s(e.basename)):"",b=k[u],v=b.encodePath,w=b.decodePath;function C(){var e=w(E());return y&&(e=c(e,y)),p(e)}var T=h();function L(e){(0,r.Z)(B,e),B.length=t.length,T.notifyListeners(B.location,B.action)}var N=!1,j=null;function P(){var e,t,n=E(),r=v(n);if(n!==r)_(r);else{var a=C(),i=B.location;if(!N&&(t=a,(e=i).pathname===t.pathname&&e.search===t.search&&e.hash===t.hash))return;if(j===f(a))return;j=null,function(e){if(N)N=!1,L();else{var t="POP";T.confirmTransitionTo(e,t,o,(function(n){n?L({action:t,location:e}):function(e){var t=B.location,n=R.lastIndexOf(f(t));-1===n&&(n=0);var r=R.lastIndexOf(f(e));-1===r&&(r=0);var a=n-r;a&&(N=!0,F(a))}(e)}))}}(a)}}var A=E(),O=v(A);A!==O&&_(O);var I=C(),R=[f(I)];function F(e){t.go(e)}var D=0;function M(e){1===(D+=e)&&1===e?window.addEventListener(x,P):0===D&&window.removeEventListener(x,P)}var z=!1;var B={length:t.length,action:"POP",location:I,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&(n=S(window.location.href)),n+"#"+v(y+f(e))},push:function(e,t){var n="PUSH",r=p(e,void 0,void 0,B.location);T.confirmTransitionTo(r,n,o,(function(e){if(e){var t=f(r),a=v(y+t);if(E()!==a){j=t,function(e){window.location.hash=e}(a);var o=R.lastIndexOf(f(B.location)),i=R.slice(0,o+1);i.push(t),R=i,L({action:n,location:r})}else L()}}))},replace:function(e,t){var n="REPLACE",r=p(e,void 0,void 0,B.location);T.confirmTransitionTo(r,n,o,(function(e){if(e){var t=f(r),a=v(y+t);E()!==a&&(j=t,_(a));var o=R.indexOf(f(B.location));-1!==o&&(R[o]=t),L({action:n,location:r})}}))},go:F,goBack:function(){F(-1)},goForward:function(){F(1)},block:function(e){void 0===e&&(e=!1);var t=T.setPrompt(e);return z||(M(1),z=!0),function(){return z&&(z=!1,M(-1)),t()}},listen:function(e){var t=T.appendListener(e);return M(1),function(){M(-1),t()}}};return B}function T(e,t,n){return Math.min(Math.max(e,t),n)}function L(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,a=t.initialEntries,o=void 0===a?["/"]:a,i=t.initialIndex,l=void 0===i?0:i,s=t.keyLength,u=void 0===s?6:s,c=h();function d(e){(0,r.Z)(w,e),w.length=w.entries.length,c.notifyListeners(w.location,w.action)}function m(){return Math.random().toString(36).substr(2,u)}var g=T(l,0,o.length-1),y=o.map((function(e){return p(e,void 0,"string"==typeof e?m():e.key||m())})),b=f;function v(e){var t=T(w.index+e,0,w.entries.length-1),r=w.entries[t];c.confirmTransitionTo(r,"POP",n,(function(e){e?d({action:"POP",location:r,index:t}):d()}))}var w={length:y.length,action:"POP",location:y[g],index:g,entries:y,createHref:b,push:function(e,t){var r="PUSH",a=p(e,t,m(),w.location);c.confirmTransitionTo(a,r,n,(function(e){if(e){var t=w.index+1,n=w.entries.slice(0);n.length>t?n.splice(t,n.length-t,a):n.push(a),d({action:r,location:a,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",a=p(e,t,m(),w.location);c.confirmTransitionTo(a,r,n,(function(e){e&&(w.entries[w.index]=a,d({action:r,location:a}))}))},go:v,goBack:function(){v(-1)},goForward:function(){v(1)},canGo:function(e){var t=w.index+e;return t>=0&&t<w.entries.length},block:function(e){return void 0===e&&(e=!1),c.setPrompt(e)},listen:function(e){return c.appendListener(e)}};return w}},8679:(e,t,n)=>{"use strict";var r=n(9864),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function s(e){return r.isMemo(e)?i:l[e.$$typeof]||a}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=i;var u=Object.defineProperty,c=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,f=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,h=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(h){var a=p(n);a&&a!==h&&e(t,a,r)}var i=c(n);d&&(i=i.concat(d(n)));for(var l=s(t),m=s(n),g=0;g<i.length;++g){var y=i[g];if(!(o[y]||r&&r[y]||m&&m[y]||l&&l[y])){var b=f(n,y);try{u(t,y,b)}catch(v){}}}}return t}},1143:e=>{"use strict";e.exports=function(e,t,n,r,a,o,i,l){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var u=[n,r,a,o,i,l],c=0;(s=new Error(t.replace(/%s/g,(function(){return u[c++]})))).name="Invariant Violation"}throw s.framesToPop=1,s}}},5826:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},1336:(e,t,n)=>{var r,a;!function(){var o,i,l,s,u,c,d,f,p,h,m,g,y,b,v,w,x,k,S,E,_,C,T,L,N,j,P,A,O,I,R=function(e){var t=new R.Builder;return t.pipeline.add(R.trimmer,R.stopWordFilter,R.stemmer),t.searchPipeline.add(R.stemmer),e.call(t,t),t.build()};R.version="2.3.9",R.utils={},R.utils.warn=(o=this,function(e){o.console&&console.warn&&console.warn(e)}),R.utils.asString=function(e){return null==e?"":e.toString()},R.utils.clone=function(e){if(null==e)return e;for(var t=Object.create(null),n=Object.keys(e),r=0;r<n.length;r++){var a=n[r],o=e[a];if(Array.isArray(o))t[a]=o.slice();else{if("string"!=typeof o&&"number"!=typeof o&&"boolean"!=typeof o)throw new TypeError("clone is not deep and does not support nested objects");t[a]=o}}return t},R.FieldRef=function(e,t,n){this.docRef=e,this.fieldName=t,this._stringValue=n},R.FieldRef.joiner="/",R.FieldRef.fromString=function(e){var t=e.indexOf(R.FieldRef.joiner);if(-1===t)throw"malformed field ref string";var n=e.slice(0,t),r=e.slice(t+1);return new R.FieldRef(r,n,e)},R.FieldRef.prototype.toString=function(){return null==this._stringValue&&(this._stringValue=this.fieldName+R.FieldRef.joiner+this.docRef),this._stringValue},R.Set=function(e){if(this.elements=Object.create(null),e){this.length=e.length;for(var t=0;t<this.length;t++)this.elements[e[t]]=!0}else this.length=0},R.Set.complete={intersect:function(e){return e},union:function(){return this},contains:function(){return!0}},R.Set.empty={intersect:function(){return this},union:function(e){return e},contains:function(){return!1}},R.Set.prototype.contains=function(e){return!!this.elements[e]},R.Set.prototype.intersect=function(e){var t,n,r,a=[];if(e===R.Set.complete)return this;if(e===R.Set.empty)return e;this.length<e.length?(t=this,n=e):(t=e,n=this),r=Object.keys(t.elements);for(var o=0;o<r.length;o++){var i=r[o];i in n.elements&&a.push(i)}return new R.Set(a)},R.Set.prototype.union=function(e){return e===R.Set.complete?R.Set.complete:e===R.Set.empty?this:new R.Set(Object.keys(this.elements).concat(Object.keys(e.elements)))},R.idf=function(e,t){var n=0;for(var r in e)"_index"!=r&&(n+=Object.keys(e[r]).length);var a=(t-n+.5)/(n+.5);return Math.log(1+Math.abs(a))},R.Token=function(e,t){this.str=e||"",this.metadata=t||{}},R.Token.prototype.toString=function(){return this.str},R.Token.prototype.update=function(e){return this.str=e(this.str,this.metadata),this},R.Token.prototype.clone=function(e){return e=e||function(e){return e},new R.Token(e(this.str,this.metadata),this.metadata)},R.tokenizer=function(e,t){if(null==e||null==e)return[];if(Array.isArray(e))return e.map((function(e){return new R.Token(R.utils.asString(e).toLowerCase(),R.utils.clone(t))}));for(var n=e.toString().toLowerCase(),r=n.length,a=[],o=0,i=0;o<=r;o++){var l=o-i;if(n.charAt(o).match(R.tokenizer.separator)||o==r){if(l>0){var s=R.utils.clone(t)||{};s.position=[i,l],s.index=a.length,a.push(new R.Token(n.slice(i,o),s))}i=o+1}}return a},R.tokenizer.separator=/[\s\-]+/,R.Pipeline=function(){this._stack=[]},R.Pipeline.registeredFunctions=Object.create(null),R.Pipeline.registerFunction=function(e,t){t in this.registeredFunctions&&R.utils.warn("Overwriting existing registered function: "+t),e.label=t,R.Pipeline.registeredFunctions[e.label]=e},R.Pipeline.warnIfFunctionNotRegistered=function(e){e.label&&e.label in this.registeredFunctions||R.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},R.Pipeline.load=function(e){var t=new R.Pipeline;return e.forEach((function(e){var n=R.Pipeline.registeredFunctions[e];if(!n)throw new Error("Cannot load unregistered function: "+e);t.add(n)})),t},R.Pipeline.prototype.add=function(){Array.prototype.slice.call(arguments).forEach((function(e){R.Pipeline.warnIfFunctionNotRegistered(e),this._stack.push(e)}),this)},R.Pipeline.prototype.after=function(e,t){R.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");n+=1,this._stack.splice(n,0,t)},R.Pipeline.prototype.before=function(e,t){R.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");this._stack.splice(n,0,t)},R.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);-1!=t&&this._stack.splice(t,1)},R.Pipeline.prototype.run=function(e){for(var t=this._stack.length,n=0;n<t;n++){for(var r=this._stack[n],a=[],o=0;o<e.length;o++){var i=r(e[o],o,e);if(null!=i&&""!==i)if(Array.isArray(i))for(var l=0;l<i.length;l++)a.push(i[l]);else a.push(i)}e=a}return e},R.Pipeline.prototype.runString=function(e,t){var n=new R.Token(e,t);return this.run([n]).map((function(e){return e.toString()}))},R.Pipeline.prototype.reset=function(){this._stack=[]},R.Pipeline.prototype.toJSON=function(){return this._stack.map((function(e){return R.Pipeline.warnIfFunctionNotRegistered(e),e.label}))},R.Vector=function(e){this._magnitude=0,this.elements=e||[]},R.Vector.prototype.positionForIndex=function(e){if(0==this.elements.length)return 0;for(var t=0,n=this.elements.length/2,r=n-t,a=Math.floor(r/2),o=this.elements[2*a];r>1&&(o<e&&(t=a),o>e&&(n=a),o!=e);)r=n-t,a=t+Math.floor(r/2),o=this.elements[2*a];return o==e||o>e?2*a:o<e?2*(a+1):void 0},R.Vector.prototype.insert=function(e,t){this.upsert(e,t,(function(){throw"duplicate index"}))},R.Vector.prototype.upsert=function(e,t,n){this._magnitude=0;var r=this.positionForIndex(e);this.elements[r]==e?this.elements[r+1]=n(this.elements[r+1],t):this.elements.splice(r,0,e,t)},R.Vector.prototype.magnitude=function(){if(this._magnitude)return this._magnitude;for(var e=0,t=this.elements.length,n=1;n<t;n+=2){var r=this.elements[n];e+=r*r}return this._magnitude=Math.sqrt(e)},R.Vector.prototype.dot=function(e){for(var t=0,n=this.elements,r=e.elements,a=n.length,o=r.length,i=0,l=0,s=0,u=0;s<a&&u<o;)(i=n[s])<(l=r[u])?s+=2:i>l?u+=2:i==l&&(t+=n[s+1]*r[u+1],s+=2,u+=2);return t},R.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},R.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,n=0;t<this.elements.length;t+=2,n++)e[n]=this.elements[t];return e},R.Vector.prototype.toJSON=function(){return this.elements},R.stemmer=(i={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},l={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},d="^("+(u="[^aeiou][^aeiouy]*")+")?"+(c=(s="[aeiouy]")+"[aeiou]*")+u+"("+c+")?$",f="^("+u+")?"+c+u+c+u,p="^("+u+")?"+s,h=new RegExp("^("+u+")?"+c+u),m=new RegExp(f),g=new RegExp(d),y=new RegExp(p),b=/^(.+?)(ss|i)es$/,v=/^(.+?)([^s])s$/,w=/^(.+?)eed$/,x=/^(.+?)(ed|ing)$/,k=/.$/,S=/(at|bl|iz)$/,E=new RegExp("([^aeiouylsz])\\1$"),_=new RegExp("^"+u+s+"[^aeiouwxy]$"),C=/^(.+?[^aeiou])y$/,T=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,L=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,N=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,j=/^(.+?)(s|t)(ion)$/,P=/^(.+?)e$/,A=/ll$/,O=new RegExp("^"+u+s+"[^aeiouwxy]$"),I=function(e){var t,n,r,a,o,s,u;if(e.length<3)return e;if("y"==(r=e.substr(0,1))&&(e=r.toUpperCase()+e.substr(1)),o=v,(a=b).test(e)?e=e.replace(a,"$1$2"):o.test(e)&&(e=e.replace(o,"$1$2")),o=x,(a=w).test(e)){var c=a.exec(e);(a=h).test(c[1])&&(a=k,e=e.replace(a,""))}else o.test(e)&&(t=(c=o.exec(e))[1],(o=y).test(t)&&(s=E,u=_,(o=S).test(e=t)?e+="e":s.test(e)?(a=k,e=e.replace(a,"")):u.test(e)&&(e+="e")));return(a=C).test(e)&&(e=(t=(c=a.exec(e))[1])+"i"),(a=T).test(e)&&(t=(c=a.exec(e))[1],n=c[2],(a=h).test(t)&&(e=t+i[n])),(a=L).test(e)&&(t=(c=a.exec(e))[1],n=c[2],(a=h).test(t)&&(e=t+l[n])),o=j,(a=N).test(e)?(t=(c=a.exec(e))[1],(a=m).test(t)&&(e=t)):o.test(e)&&(t=(c=o.exec(e))[1]+c[2],(o=m).test(t)&&(e=t)),(a=P).test(e)&&(t=(c=a.exec(e))[1],o=g,s=O,((a=m).test(t)||o.test(t)&&!s.test(t))&&(e=t)),o=m,(a=A).test(e)&&o.test(e)&&(a=k,e=e.replace(a,"")),"y"==r&&(e=r.toLowerCase()+e.substr(1)),e},function(e){return e.update(I)}),R.Pipeline.registerFunction(R.stemmer,"stemmer"),R.generateStopWordFilter=function(e){var t=e.reduce((function(e,t){return e[t]=t,e}),{});return function(e){if(e&&t[e.toString()]!==e.toString())return e}},R.stopWordFilter=R.generateStopWordFilter(["a","able","about","across","after","all","almost","also","am","among","an","and","any","are","as","at","be","because","been","but","by","can","cannot","could","dear","did","do","does","either","else","ever","every","for","from","get","got","had","has","have","he","her","hers","him","his","how","however","i","if","in","into","is","it","its","just","least","let","like","likely","may","me","might","most","must","my","neither","no","nor","not","of","off","often","on","only","or","other","our","own","rather","said","say","says","she","should","since","so","some","than","that","the","their","them","then","there","these","they","this","tis","to","too","twas","us","wants","was","we","were","what","when","where","which","while","who","whom","why","will","with","would","yet","you","your"]),R.Pipeline.registerFunction(R.stopWordFilter,"stopWordFilter"),R.trimmer=function(e){return e.update((function(e){return e.replace(/^\W+/,"").replace(/\W+$/,"")}))},R.Pipeline.registerFunction(R.trimmer,"trimmer"),R.TokenSet=function(){this.final=!1,this.edges={},this.id=R.TokenSet._nextId,R.TokenSet._nextId+=1},R.TokenSet._nextId=1,R.TokenSet.fromArray=function(e){for(var t=new R.TokenSet.Builder,n=0,r=e.length;n<r;n++)t.insert(e[n]);return t.finish(),t.root},R.TokenSet.fromClause=function(e){return"editDistance"in e?R.TokenSet.fromFuzzyString(e.term,e.editDistance):R.TokenSet.fromString(e.term)},R.TokenSet.fromFuzzyString=function(e,t){for(var n=new R.TokenSet,r=[{node:n,editsRemaining:t,str:e}];r.length;){var a=r.pop();if(a.str.length>0){var o,i=a.str.charAt(0);i in a.node.edges?o=a.node.edges[i]:(o=new R.TokenSet,a.node.edges[i]=o),1==a.str.length&&(o.final=!0),r.push({node:o,editsRemaining:a.editsRemaining,str:a.str.slice(1)})}if(0!=a.editsRemaining){if("*"in a.node.edges)var l=a.node.edges["*"];else{l=new R.TokenSet;a.node.edges["*"]=l}if(0==a.str.length&&(l.final=!0),r.push({node:l,editsRemaining:a.editsRemaining-1,str:a.str}),a.str.length>1&&r.push({node:a.node,editsRemaining:a.editsRemaining-1,str:a.str.slice(1)}),1==a.str.length&&(a.node.final=!0),a.str.length>=1){if("*"in a.node.edges)var s=a.node.edges["*"];else{s=new R.TokenSet;a.node.edges["*"]=s}1==a.str.length&&(s.final=!0),r.push({node:s,editsRemaining:a.editsRemaining-1,str:a.str.slice(1)})}if(a.str.length>1){var u,c=a.str.charAt(0),d=a.str.charAt(1);d in a.node.edges?u=a.node.edges[d]:(u=new R.TokenSet,a.node.edges[d]=u),1==a.str.length&&(u.final=!0),r.push({node:u,editsRemaining:a.editsRemaining-1,str:c+a.str.slice(2)})}}}return n},R.TokenSet.fromString=function(e){for(var t=new R.TokenSet,n=t,r=0,a=e.length;r<a;r++){var o=e[r],i=r==a-1;if("*"==o)t.edges[o]=t,t.final=i;else{var l=new R.TokenSet;l.final=i,t.edges[o]=l,t=l}}return n},R.TokenSet.prototype.toArray=function(){for(var e=[],t=[{prefix:"",node:this}];t.length;){var n=t.pop(),r=Object.keys(n.node.edges),a=r.length;n.node.final&&(n.prefix.charAt(0),e.push(n.prefix));for(var o=0;o<a;o++){var i=r[o];t.push({prefix:n.prefix.concat(i),node:n.node.edges[i]})}}return e},R.TokenSet.prototype.toString=function(){if(this._str)return this._str;for(var e=this.final?"1":"0",t=Object.keys(this.edges).sort(),n=t.length,r=0;r<n;r++){var a=t[r];e=e+a+this.edges[a].id}return e},R.TokenSet.prototype.intersect=function(e){for(var t=new R.TokenSet,n=void 0,r=[{qNode:e,output:t,node:this}];r.length;){n=r.pop();for(var a=Object.keys(n.qNode.edges),o=a.length,i=Object.keys(n.node.edges),l=i.length,s=0;s<o;s++)for(var u=a[s],c=0;c<l;c++){var d=i[c];if(d==u||"*"==u){var f=n.node.edges[d],p=n.qNode.edges[u],h=f.final&&p.final,m=void 0;d in n.output.edges?(m=n.output.edges[d]).final=m.final||h:((m=new R.TokenSet).final=h,n.output.edges[d]=m),r.push({qNode:p,output:m,node:f})}}}return t},R.TokenSet.Builder=function(){this.previousWord="",this.root=new R.TokenSet,this.uncheckedNodes=[],this.minimizedNodes={}},R.TokenSet.Builder.prototype.insert=function(e){var t,n=0;if(e<this.previousWord)throw new Error("Out of order word insertion");for(var r=0;r<e.length&&r<this.previousWord.length&&e[r]==this.previousWord[r];r++)n++;this.minimize(n),t=0==this.uncheckedNodes.length?this.root:this.uncheckedNodes[this.uncheckedNodes.length-1].child;for(r=n;r<e.length;r++){var a=new R.TokenSet,o=e[r];t.edges[o]=a,this.uncheckedNodes.push({parent:t,char:o,child:a}),t=a}t.final=!0,this.previousWord=e},R.TokenSet.Builder.prototype.finish=function(){this.minimize(0)},R.TokenSet.Builder.prototype.minimize=function(e){for(var t=this.uncheckedNodes.length-1;t>=e;t--){var n=this.uncheckedNodes[t],r=n.child.toString();r in this.minimizedNodes?n.parent.edges[n.char]=this.minimizedNodes[r]:(n.child._str=r,this.minimizedNodes[r]=n.child),this.uncheckedNodes.pop()}},R.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},R.Index.prototype.search=function(e){return this.query((function(t){new R.QueryParser(e,t).parse()}))},R.Index.prototype.query=function(e){for(var t=new R.Query(this.fields),n=Object.create(null),r=Object.create(null),a=Object.create(null),o=Object.create(null),i=Object.create(null),l=0;l<this.fields.length;l++)r[this.fields[l]]=new R.Vector;e.call(t,t);for(l=0;l<t.clauses.length;l++){var s=t.clauses[l],u=null,c=R.Set.empty;u=s.usePipeline?this.pipeline.runString(s.term,{fields:s.fields}):[s.term];for(var d=0;d<u.length;d++){var f=u[d];s.term=f;var p=R.TokenSet.fromClause(s),h=this.tokenSet.intersect(p).toArray();if(0===h.length&&s.presence===R.Query.presence.REQUIRED){for(var m=0;m<s.fields.length;m++){o[P=s.fields[m]]=R.Set.empty}break}for(var g=0;g<h.length;g++){var y=h[g],b=this.invertedIndex[y],v=b._index;for(m=0;m<s.fields.length;m++){var w=b[P=s.fields[m]],x=Object.keys(w),k=y+"/"+P,S=new R.Set(x);if(s.presence==R.Query.presence.REQUIRED&&(c=c.union(S),void 0===o[P]&&(o[P]=R.Set.complete)),s.presence!=R.Query.presence.PROHIBITED){if(r[P].upsert(v,s.boost,(function(e,t){return e+t})),!a[k]){for(var E=0;E<x.length;E++){var _,C=x[E],T=new R.FieldRef(C,P),L=w[C];void 0===(_=n[T])?n[T]=new R.MatchData(y,P,L):_.add(y,P,L)}a[k]=!0}}else void 0===i[P]&&(i[P]=R.Set.empty),i[P]=i[P].union(S)}}}if(s.presence===R.Query.presence.REQUIRED)for(m=0;m<s.fields.length;m++){o[P=s.fields[m]]=o[P].intersect(c)}}var N=R.Set.complete,j=R.Set.empty;for(l=0;l<this.fields.length;l++){var P;o[P=this.fields[l]]&&(N=N.intersect(o[P])),i[P]&&(j=j.union(i[P]))}var A=Object.keys(n),O=[],I=Object.create(null);if(t.isNegated()){A=Object.keys(this.fieldVectors);for(l=0;l<A.length;l++){T=A[l];var F=R.FieldRef.fromString(T);n[T]=new R.MatchData}}for(l=0;l<A.length;l++){var D=(F=R.FieldRef.fromString(A[l])).docRef;if(N.contains(D)&&!j.contains(D)){var M,z=this.fieldVectors[F],B=r[F.fieldName].similarity(z);if(void 0!==(M=I[D]))M.score+=B,M.matchData.combine(n[F]);else{var $={ref:D,score:B,matchData:n[F]};I[D]=$,O.push($)}}}return O.sort((function(e,t){return t.score-e.score}))},R.Index.prototype.toJSON=function(){var e=Object.keys(this.invertedIndex).sort().map((function(e){return[e,this.invertedIndex[e]]}),this),t=Object.keys(this.fieldVectors).map((function(e){return[e,this.fieldVectors[e].toJSON()]}),this);return{version:R.version,fields:this.fields,fieldVectors:t,invertedIndex:e,pipeline:this.pipeline.toJSON()}},R.Index.load=function(e){var t={},n={},r=e.fieldVectors,a=Object.create(null),o=e.invertedIndex,i=new R.TokenSet.Builder,l=R.Pipeline.load(e.pipeline);e.version!=R.version&&R.utils.warn("Version mismatch when loading serialised index. Current version of lunr '"+R.version+"' does not match serialized index '"+e.version+"'");for(var s=0;s<r.length;s++){var u=(d=r[s])[0],c=d[1];n[u]=new R.Vector(c)}for(s=0;s<o.length;s++){var d,f=(d=o[s])[0],p=d[1];i.insert(f),a[f]=p}return i.finish(),t.fields=e.fields,t.fieldVectors=n,t.invertedIndex=a,t.tokenSet=i.root,t.pipeline=l,new R.Index(t)},R.Builder=function(){this._ref="id",this._fields=Object.create(null),this._documents=Object.create(null),this.invertedIndex=Object.create(null),this.fieldTermFrequencies={},this.fieldLengths={},this.tokenizer=R.tokenizer,this.pipeline=new R.Pipeline,this.searchPipeline=new R.Pipeline,this.documentCount=0,this._b=.75,this._k1=1.2,this.termIndex=0,this.metadataWhitelist=[]},R.Builder.prototype.ref=function(e){this._ref=e},R.Builder.prototype.field=function(e,t){if(/\//.test(e))throw new RangeError("Field '"+e+"' contains illegal character '/'");this._fields[e]=t||{}},R.Builder.prototype.b=function(e){this._b=e<0?0:e>1?1:e},R.Builder.prototype.k1=function(e){this._k1=e},R.Builder.prototype.add=function(e,t){var n=e[this._ref],r=Object.keys(this._fields);this._documents[n]=t||{},this.documentCount+=1;for(var a=0;a<r.length;a++){var o=r[a],i=this._fields[o].extractor,l=i?i(e):e[o],s=this.tokenizer(l,{fields:[o]}),u=this.pipeline.run(s),c=new R.FieldRef(n,o),d=Object.create(null);this.fieldTermFrequencies[c]=d,this.fieldLengths[c]=0,this.fieldLengths[c]+=u.length;for(var f=0;f<u.length;f++){var p=u[f];if(null==d[p]&&(d[p]=0),d[p]+=1,null==this.invertedIndex[p]){var h=Object.create(null);h._index=this.termIndex,this.termIndex+=1;for(var m=0;m<r.length;m++)h[r[m]]=Object.create(null);this.invertedIndex[p]=h}null==this.invertedIndex[p][o][n]&&(this.invertedIndex[p][o][n]=Object.create(null));for(var g=0;g<this.metadataWhitelist.length;g++){var y=this.metadataWhitelist[g],b=p.metadata[y];null==this.invertedIndex[p][o][n][y]&&(this.invertedIndex[p][o][n][y]=[]),this.invertedIndex[p][o][n][y].push(b)}}}},R.Builder.prototype.calculateAverageFieldLengths=function(){for(var e=Object.keys(this.fieldLengths),t=e.length,n={},r={},a=0;a<t;a++){var o=R.FieldRef.fromString(e[a]),i=o.fieldName;r[i]||(r[i]=0),r[i]+=1,n[i]||(n[i]=0),n[i]+=this.fieldLengths[o]}var l=Object.keys(this._fields);for(a=0;a<l.length;a++){var s=l[a];n[s]=n[s]/r[s]}this.averageFieldLength=n},R.Builder.prototype.createFieldVectors=function(){for(var e={},t=Object.keys(this.fieldTermFrequencies),n=t.length,r=Object.create(null),a=0;a<n;a++){for(var o=R.FieldRef.fromString(t[a]),i=o.fieldName,l=this.fieldLengths[o],s=new R.Vector,u=this.fieldTermFrequencies[o],c=Object.keys(u),d=c.length,f=this._fields[i].boost||1,p=this._documents[o.docRef].boost||1,h=0;h<d;h++){var m,g,y,b=c[h],v=u[b],w=this.invertedIndex[b]._index;void 0===r[b]?(m=R.idf(this.invertedIndex[b],this.documentCount),r[b]=m):m=r[b],g=m*((this._k1+1)*v)/(this._k1*(1-this._b+this._b*(l/this.averageFieldLength[i]))+v),g*=f,g*=p,y=Math.round(1e3*g)/1e3,s.insert(w,y)}e[o]=s}this.fieldVectors=e},R.Builder.prototype.createTokenSet=function(){this.tokenSet=R.TokenSet.fromArray(Object.keys(this.invertedIndex).sort())},R.Builder.prototype.build=function(){return this.calculateAverageFieldLengths(),this.createFieldVectors(),this.createTokenSet(),new R.Index({invertedIndex:this.invertedIndex,fieldVectors:this.fieldVectors,tokenSet:this.tokenSet,fields:Object.keys(this._fields),pipeline:this.searchPipeline})},R.Builder.prototype.use=function(e){var t=Array.prototype.slice.call(arguments,1);t.unshift(this),e.apply(this,t)},R.MatchData=function(e,t,n){for(var r=Object.create(null),a=Object.keys(n||{}),o=0;o<a.length;o++){var i=a[o];r[i]=n[i].slice()}this.metadata=Object.create(null),void 0!==e&&(this.metadata[e]=Object.create(null),this.metadata[e][t]=r)},R.MatchData.prototype.combine=function(e){for(var t=Object.keys(e.metadata),n=0;n<t.length;n++){var r=t[n],a=Object.keys(e.metadata[r]);null==this.metadata[r]&&(this.metadata[r]=Object.create(null));for(var o=0;o<a.length;o++){var i=a[o],l=Object.keys(e.metadata[r][i]);null==this.metadata[r][i]&&(this.metadata[r][i]=Object.create(null));for(var s=0;s<l.length;s++){var u=l[s];null==this.metadata[r][i][u]?this.metadata[r][i][u]=e.metadata[r][i][u]:this.metadata[r][i][u]=this.metadata[r][i][u].concat(e.metadata[r][i][u])}}}},R.MatchData.prototype.add=function(e,t,n){if(!(e in this.metadata))return this.metadata[e]=Object.create(null),void(this.metadata[e][t]=n);if(t in this.metadata[e])for(var r=Object.keys(n),a=0;a<r.length;a++){var o=r[a];o in this.metadata[e][t]?this.metadata[e][t][o]=this.metadata[e][t][o].concat(n[o]):this.metadata[e][t][o]=n[o]}else this.metadata[e][t]=n},R.Query=function(e){this.clauses=[],this.allFields=e},R.Query.wildcard=new String("*"),R.Query.wildcard.NONE=0,R.Query.wildcard.LEADING=1,R.Query.wildcard.TRAILING=2,R.Query.presence={OPTIONAL:1,REQUIRED:2,PROHIBITED:3},R.Query.prototype.clause=function(e){return"fields"in e||(e.fields=this.allFields),"boost"in e||(e.boost=1),"usePipeline"in e||(e.usePipeline=!0),"wildcard"in e||(e.wildcard=R.Query.wildcard.NONE),e.wildcard&R.Query.wildcard.LEADING&&e.term.charAt(0)!=R.Query.wildcard&&(e.term="*"+e.term),e.wildcard&R.Query.wildcard.TRAILING&&e.term.slice(-1)!=R.Query.wildcard&&(e.term=e.term+"*"),"presence"in e||(e.presence=R.Query.presence.OPTIONAL),this.clauses.push(e),this},R.Query.prototype.isNegated=function(){for(var e=0;e<this.clauses.length;e++)if(this.clauses[e].presence!=R.Query.presence.PROHIBITED)return!1;return!0},R.Query.prototype.term=function(e,t){if(Array.isArray(e))return e.forEach((function(e){this.term(e,R.utils.clone(t))}),this),this;var n=t||{};return n.term=e.toString(),this.clause(n),this},R.QueryParseError=function(e,t,n){this.name="QueryParseError",this.message=e,this.start=t,this.end=n},R.QueryParseError.prototype=new Error,R.QueryLexer=function(e){this.lexemes=[],this.str=e,this.length=e.length,this.pos=0,this.start=0,this.escapeCharPositions=[]},R.QueryLexer.prototype.run=function(){for(var e=R.QueryLexer.lexText;e;)e=e(this)},R.QueryLexer.prototype.sliceString=function(){for(var e=[],t=this.start,n=this.pos,r=0;r<this.escapeCharPositions.length;r++)n=this.escapeCharPositions[r],e.push(this.str.slice(t,n)),t=n+1;return e.push(this.str.slice(t,this.pos)),this.escapeCharPositions.length=0,e.join("")},R.QueryLexer.prototype.emit=function(e){this.lexemes.push({type:e,str:this.sliceString(),start:this.start,end:this.pos}),this.start=this.pos},R.QueryLexer.prototype.escapeCharacter=function(){this.escapeCharPositions.push(this.pos-1),this.pos+=1},R.QueryLexer.prototype.next=function(){if(this.pos>=this.length)return R.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},R.QueryLexer.prototype.width=function(){return this.pos-this.start},R.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},R.QueryLexer.prototype.backup=function(){this.pos-=1},R.QueryLexer.prototype.acceptDigitRun=function(){var e,t;do{t=(e=this.next()).charCodeAt(0)}while(t>47&&t<58);e!=R.QueryLexer.EOS&&this.backup()},R.QueryLexer.prototype.more=function(){return this.pos<this.length},R.QueryLexer.EOS="EOS",R.QueryLexer.FIELD="FIELD",R.QueryLexer.TERM="TERM",R.QueryLexer.EDIT_DISTANCE="EDIT_DISTANCE",R.QueryLexer.BOOST="BOOST",R.QueryLexer.PRESENCE="PRESENCE",R.QueryLexer.lexField=function(e){return e.backup(),e.emit(R.QueryLexer.FIELD),e.ignore(),R.QueryLexer.lexText},R.QueryLexer.lexTerm=function(e){if(e.width()>1&&(e.backup(),e.emit(R.QueryLexer.TERM)),e.ignore(),e.more())return R.QueryLexer.lexText},R.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(R.QueryLexer.EDIT_DISTANCE),R.QueryLexer.lexText},R.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(R.QueryLexer.BOOST),R.QueryLexer.lexText},R.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(R.QueryLexer.TERM)},R.QueryLexer.termSeparator=R.tokenizer.separator,R.QueryLexer.lexText=function(e){for(;;){var t=e.next();if(t==R.QueryLexer.EOS)return R.QueryLexer.lexEOS;if(92!=t.charCodeAt(0)){if(":"==t)return R.QueryLexer.lexField;if("~"==t)return e.backup(),e.width()>0&&e.emit(R.QueryLexer.TERM),R.QueryLexer.lexEditDistance;if("^"==t)return e.backup(),e.width()>0&&e.emit(R.QueryLexer.TERM),R.QueryLexer.lexBoost;if("+"==t&&1===e.width())return e.emit(R.QueryLexer.PRESENCE),R.QueryLexer.lexText;if("-"==t&&1===e.width())return e.emit(R.QueryLexer.PRESENCE),R.QueryLexer.lexText;if(t.match(R.QueryLexer.termSeparator))return R.QueryLexer.lexTerm}else e.escapeCharacter()}},R.QueryParser=function(e,t){this.lexer=new R.QueryLexer(e),this.query=t,this.currentClause={},this.lexemeIdx=0},R.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=R.QueryParser.parseClause;e;)e=e(this);return this.query},R.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},R.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},R.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},R.QueryParser.parseClause=function(e){var t=e.peekLexeme();if(null!=t)switch(t.type){case R.QueryLexer.PRESENCE:return R.QueryParser.parsePresence;case R.QueryLexer.FIELD:return R.QueryParser.parseField;case R.QueryLexer.TERM:return R.QueryParser.parseTerm;default:var n="expected either a field or a term, found "+t.type;throw t.str.length>=1&&(n+=" with value '"+t.str+"'"),new R.QueryParseError(n,t.start,t.end)}},R.QueryParser.parsePresence=function(e){var t=e.consumeLexeme();if(null!=t){switch(t.str){case"-":e.currentClause.presence=R.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=R.Query.presence.REQUIRED;break;default:var n="unrecognised presence operator'"+t.str+"'";throw new R.QueryParseError(n,t.start,t.end)}var r=e.peekLexeme();if(null==r){n="expecting term or field, found nothing";throw new R.QueryParseError(n,t.start,t.end)}switch(r.type){case R.QueryLexer.FIELD:return R.QueryParser.parseField;case R.QueryLexer.TERM:return R.QueryParser.parseTerm;default:n="expecting term or field, found '"+r.type+"'";throw new R.QueryParseError(n,r.start,r.end)}}},R.QueryParser.parseField=function(e){var t=e.consumeLexeme();if(null!=t){if(-1==e.query.allFields.indexOf(t.str)){var n=e.query.allFields.map((function(e){return"'"+e+"'"})).join(", "),r="unrecognised field '"+t.str+"', possible fields: "+n;throw new R.QueryParseError(r,t.start,t.end)}e.currentClause.fields=[t.str];var a=e.peekLexeme();if(null==a){r="expecting term, found nothing";throw new R.QueryParseError(r,t.start,t.end)}if(a.type===R.QueryLexer.TERM)return R.QueryParser.parseTerm;r="expecting term, found '"+a.type+"'";throw new R.QueryParseError(r,a.start,a.end)}},R.QueryParser.parseTerm=function(e){var t=e.consumeLexeme();if(null!=t){e.currentClause.term=t.str.toLowerCase(),-1!=t.str.indexOf("*")&&(e.currentClause.usePipeline=!1);var n=e.peekLexeme();if(null!=n)switch(n.type){case R.QueryLexer.TERM:return e.nextClause(),R.QueryParser.parseTerm;case R.QueryLexer.FIELD:return e.nextClause(),R.QueryParser.parseField;case R.QueryLexer.EDIT_DISTANCE:return R.QueryParser.parseEditDistance;case R.QueryLexer.BOOST:return R.QueryParser.parseBoost;case R.QueryLexer.PRESENCE:return e.nextClause(),R.QueryParser.parsePresence;default:var r="Unexpected lexeme type '"+n.type+"'";throw new R.QueryParseError(r,n.start,n.end)}else e.nextClause()}},R.QueryParser.parseEditDistance=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var r="edit distance must be numeric";throw new R.QueryParseError(r,t.start,t.end)}e.currentClause.editDistance=n;var a=e.peekLexeme();if(null!=a)switch(a.type){case R.QueryLexer.TERM:return e.nextClause(),R.QueryParser.parseTerm;case R.QueryLexer.FIELD:return e.nextClause(),R.QueryParser.parseField;case R.QueryLexer.EDIT_DISTANCE:return R.QueryParser.parseEditDistance;case R.QueryLexer.BOOST:return R.QueryParser.parseBoost;case R.QueryLexer.PRESENCE:return e.nextClause(),R.QueryParser.parsePresence;default:r="Unexpected lexeme type '"+a.type+"'";throw new R.QueryParseError(r,a.start,a.end)}else e.nextClause()}},R.QueryParser.parseBoost=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var r="boost must be numeric";throw new R.QueryParseError(r,t.start,t.end)}e.currentClause.boost=n;var a=e.peekLexeme();if(null!=a)switch(a.type){case R.QueryLexer.TERM:return e.nextClause(),R.QueryParser.parseTerm;case R.QueryLexer.FIELD:return e.nextClause(),R.QueryParser.parseField;case R.QueryLexer.EDIT_DISTANCE:return R.QueryParser.parseEditDistance;case R.QueryLexer.BOOST:return R.QueryParser.parseBoost;case R.QueryLexer.PRESENCE:return e.nextClause(),R.QueryParser.parsePresence;default:r="Unexpected lexeme type '"+a.type+"'";throw new R.QueryParseError(r,a.start,a.end)}else e.nextClause()}},void 0===(a="function"==typeof(r=function(){return R})?r.call(t,n,t,e):r)||(e.exports=a)}()},2497:(e,t,n)=>{"use strict";n.r(t)},2295:(e,t,n)=>{"use strict";n.r(t)},4865:function(e,t,n){var r,a;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'};function a(e,t,n){return e<t?t:e>n?n:e}function o(e){return 100*(-1+e)}function i(e,t,n){var a;return(a="translate3d"===r.positionUsing?{transform:"translate3d("+o(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+o(e)+"%,0)"}:{"margin-left":o(e)+"%"}).transition="all "+t+"ms "+n,a}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=a(e,r.minimum,1),n.status=1===e?null:e;var o=n.render(!t),u=o.querySelector(r.barSelector),c=r.speed,d=r.easing;return o.offsetWidth,l((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(u,i(e,c,d)),1===e?(s(o,{transition:"none",opacity:1}),o.offsetWidth,setTimeout((function(){s(o,{transition:"all "+c+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),c)}),c)):setTimeout(t,c)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*a(Math.random()*t,.1,.95)),t=a(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");c(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var a,i=t.querySelector(r.barSelector),l=e?"-100":o(n.status||0),u=document.querySelector(r.parent);return s(i,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(a=t.querySelector(r.spinnerSelector))&&p(a),u!=document.body&&c(u,"nprogress-custom-parent"),u.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&p(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var l=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),s=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,a=e.length,o=t.charAt(0).toUpperCase()+t.slice(1);a--;)if((r=e[a]+o)in n)return r;return t}function a(e){return e=n(e),t[e]||(t[e]=r(e))}function o(e,t,n){t=a(t),e.style[t]=n}return function(e,t){var n,r,a=arguments;if(2==a.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&o(e,n,r);else o(e,a[1],a[2])}}();function u(e,t){return("string"==typeof e?e:f(e)).indexOf(" "+t+" ")>=0}function c(e,t){var n=f(e),r=n+t;u(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=f(e);u(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function f(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function p(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(a="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=a)},6854:()=>{!function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,a,o){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(a,(function(e){if("function"==typeof o&&!o(e))return e;for(var a,l=i.length;-1!==n.code.indexOf(a=t(r,l));)++l;return i[l]=e,a})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var a=0,o=Object.keys(n.tokenStack);!function i(l){for(var s=0;s<l.length&&!(a>=o.length);s++){var u=l[s];if("string"==typeof u||u.content&&"string"==typeof u.content){var c=o[a],d=n.tokenStack[c],f="string"==typeof u?u:u.content,p=t(r,c),h=f.indexOf(p);if(h>-1){++a;var m=f.substring(0,h),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),y=f.substring(h+p.length),b=[];m&&b.push.apply(b,i([m])),b.push(g),y&&b.push.apply(b,i([y])),"string"==typeof u?l.splice.apply(l,[s,1].concat(b)):u.content=b}}else u.content&&i(u.content)}return l}(n.tokens)}}}})}(Prism)},767:()=>{!function(e){for(var t=/\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|<self>)*\*\//.source,n=0;n<2;n++)t=t.replace(/<self>/g,(function(){return t}));t=t.replace(/<self>/g,(function(){return/[^\s\S]/.source})),e.languages.rust={comment:[{pattern:RegExp(/(^|[^\\])/.source+t),lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/b?"(?:\\[\s\S]|[^\\"])*"|b?r(#*)"(?:[^"]|"(?!\1))*"\1/,greedy:!0},char:{pattern:/b?'(?:\\(?:x[0-7][\da-fA-F]|u\{(?:[\da-fA-F]_*){1,6}\}|.)|[^\\\r\n\t'])'/,greedy:!0},attribute:{pattern:/#!?\[(?:[^\[\]"]|"(?:\\[\s\S]|[^\\"])*")*\]/,greedy:!0,alias:"attr-name",inside:{string:null}},"closure-params":{pattern:/([=(,:]\s*|\bmove\s*)\|[^|]*\||\|[^|]*\|(?=\s*(?:\{|->))/,lookbehind:!0,greedy:!0,inside:{"closure-punctuation":{pattern:/^\||\|$/,alias:"punctuation"},rest:null}},"lifetime-annotation":{pattern:/'\w+/,alias:"symbol"},"fragment-specifier":{pattern:/(\$\w+:)[a-z]+/,lookbehind:!0,alias:"punctuation"},variable:/\$\w+/,"function-definition":{pattern:/(\bfn\s+)\w+/,lookbehind:!0,alias:"function"},"type-definition":{pattern:/(\b(?:enum|struct|trait|type|union)\s+)\w+/,lookbehind:!0,alias:"class-name"},"module-declaration":[{pattern:/(\b(?:crate|mod)\s+)[a-z][a-z_\d]*/,lookbehind:!0,alias:"namespace"},{pattern:/(\b(?:crate|self|super)\s*)::\s*[a-z][a-z_\d]*\b(?:\s*::(?:\s*[a-z][a-z_\d]*\s*::)*)?/,lookbehind:!0,alias:"namespace",inside:{punctuation:/::/}}],keyword:[/\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,/\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\b/],function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())/,macro:{pattern:/\b\w+!/,alias:"property"},constant:/\b[A-Z_][A-Z_\d]+\b/,"class-name":/\b[A-Z]\w*\b/,namespace:{pattern:/(?:\b[a-z][a-z_\d]*\s*::\s*)*\b[a-z][a-z_\d]*\s*::(?!\s*<)/,inside:{punctuation:/::/}},number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\b/,boolean:/\b(?:false|true)\b/,punctuation:/->|\.\.=|\.{1,3}|::|[{}[\];(),:]/,operator:/[-+*\/%!^]=?|=[=>]?|&[&=]?|\|[|=]?|<<?=?|>>?=?|[@?]/},e.languages.rust["closure-params"].inside.rest=e.languages.rust,e.languages.rust.attribute.inside.string=e.languages.rust.string}(Prism)},4294:(e,t,n)=>{var r={"./prism-rust":767};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=4294},2703:(e,t,n)=>{"use strict";var r=n(414);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,i){if(i!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:a};return n.PropTypes=n,n}},5697:(e,t,n)=>{e.exports=n(2703)()},414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},4448:(e,t,n)=>{"use strict";var r=n(7294),a=n(3840);function o(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var i=new Set,l={};function s(e,t){u(e,t),u(e+"Capture",t)}function u(e,t){for(l[e]=t,e=0;e<t.length;e++)i.add(t[e])}var c=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),d=Object.prototype.hasOwnProperty,f=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,p={},h={};function m(e,t,n,r,a,o,i){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=i}var g={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){g[e]=new m(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];g[t]=new m(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){g[e]=new m(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){g[e]=new m(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){g[e]=new m(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){g[e]=new m(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){g[e]=new m(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){g[e]=new m(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){g[e]=new m(e,5,!1,e.toLowerCase(),null,!1,!1)}));var y=/[\-:]([a-z])/g;function b(e){return e[1].toUpperCase()}function v(e,t,n,r){var a=g.hasOwnProperty(t)?g[t]:null;(null!==a?0!==a.type:r||!(2<t.length)||"o"!==t[0]&&"O"!==t[0]||"n"!==t[1]&&"N"!==t[1])&&(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,a,r)&&(n=null),r||null===a?function(e){return!!d.call(h,e)||!d.call(p,e)&&(f.test(e)?h[e]=!0:(p[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):a.mustUseProperty?e[a.propertyName]=null===n?3!==a.type&&"":n:(t=a.attributeName,r=a.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(a=a.type)||4===a&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(y,b);g[t]=new m(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(y,b);g[t]=new m(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(y,b);g[t]=new m(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){g[e]=new m(e,1,!1,e.toLowerCase(),null,!1,!1)})),g.xlinkHref=new m("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){g[e]=new m(e,1,!1,e.toLowerCase(),null,!0,!0)}));var w=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,x=Symbol.for("react.element"),k=Symbol.for("react.portal"),S=Symbol.for("react.fragment"),E=Symbol.for("react.strict_mode"),_=Symbol.for("react.profiler"),C=Symbol.for("react.provider"),T=Symbol.for("react.context"),L=Symbol.for("react.forward_ref"),N=Symbol.for("react.suspense"),j=Symbol.for("react.suspense_list"),P=Symbol.for("react.memo"),A=Symbol.for("react.lazy");Symbol.for("react.scope"),Symbol.for("react.debug_trace_mode");var O=Symbol.for("react.offscreen");Symbol.for("react.legacy_hidden"),Symbol.for("react.cache"),Symbol.for("react.tracing_marker");var I=Symbol.iterator;function R(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=I&&e[I]||e["@@iterator"])?e:null}var F,D=Object.assign;function M(e){if(void 0===F)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);F=t&&t[1]||""}return"\n"+F+e}var z=!1;function B(e,t){if(!e||z)return"";z=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(u){var r=u}Reflect.construct(e,[],t)}else{try{t.call()}catch(u){r=u}e.call(t.prototype)}else{try{throw Error()}catch(u){r=u}e()}}catch(u){if(u&&r&&"string"==typeof u.stack){for(var a=u.stack.split("\n"),o=r.stack.split("\n"),i=a.length-1,l=o.length-1;1<=i&&0<=l&&a[i]!==o[l];)l--;for(;1<=i&&0<=l;i--,l--)if(a[i]!==o[l]){if(1!==i||1!==l)do{if(i--,0>--l||a[i]!==o[l]){var s="\n"+a[i].replace(" at new "," at ");return e.displayName&&s.includes("<anonymous>")&&(s=s.replace("<anonymous>",e.displayName)),s}}while(1<=i&&0<=l);break}}}finally{z=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?M(e):""}function $(e){switch(e.tag){case 5:return M(e.type);case 16:return M("Lazy");case 13:return M("Suspense");case 19:return M("SuspenseList");case 0:case 2:case 15:return e=B(e.type,!1);case 11:return e=B(e.type.render,!1);case 1:return e=B(e.type,!0);default:return""}}function U(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case S:return"Fragment";case k:return"Portal";case _:return"Profiler";case E:return"StrictMode";case N:return"Suspense";case j:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case T:return(e.displayName||"Context")+".Consumer";case C:return(e._context.displayName||"Context")+".Provider";case L:var t=e.render;return(e=e.displayName)||(e=""!==(e=t.displayName||t.name||"")?"ForwardRef("+e+")":"ForwardRef"),e;case P:return null!==(t=e.displayName||null)?t:U(e.type)||"Memo";case A:t=e._payload,e=e._init;try{return U(e(t))}catch(n){}}return null}function Q(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=(e=t.render).displayName||e.name||"",t.displayName||(""!==e?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return U(t);case 8:return t===E?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if("function"==typeof t)return t.displayName||t.name||null;if("string"==typeof t)return t}return null}function Z(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":case"object":return e;default:return""}}function H(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function V(e){e._valueTracker||(e._valueTracker=function(e){var t=H(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var a=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(e){r=""+e,o.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function W(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=H(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function q(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function G(e,t){var n=t.checked;return D({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function Y(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=Z(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function K(e,t){null!=(t=t.checked)&&v(e,"checked",t,!1)}function X(e,t){K(e,t);var n=Z(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?ee(e,t.type,n):t.hasOwnProperty("defaultValue")&&ee(e,t.type,Z(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function J(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function ee(e,t,n){"number"===t&&q(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var te=Array.isArray;function ne(e,t,n,r){if(e=e.options,t){t={};for(var a=0;a<n.length;a++)t["$"+n[a]]=!0;for(n=0;n<e.length;n++)a=t.hasOwnProperty("$"+e[n].value),e[n].selected!==a&&(e[n].selected=a),a&&r&&(e[n].defaultSelected=!0)}else{for(n=""+Z(n),t=null,a=0;a<e.length;a++){if(e[a].value===n)return e[a].selected=!0,void(r&&(e[a].defaultSelected=!0));null!==t||e[a].disabled||(t=e[a])}null!==t&&(t.selected=!0)}}function re(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(o(91));return D({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function ae(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(o(92));if(te(n)){if(1<n.length)throw Error(o(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:Z(n)}}function oe(e,t){var n=Z(t.value),r=Z(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function ie(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}function le(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function se(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?le(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var ue,ce,de=(ce=function(e,t){if("http://www.w3.org/2000/svg"!==e.namespaceURI||"innerHTML"in e)e.innerHTML=t;else{for((ue=ue||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=ue.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return ce(e,t)}))}:ce);function fe(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var pe={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},he=["Webkit","ms","Moz","O"];function me(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||pe.hasOwnProperty(e)&&pe[e]?(""+t).trim():t+"px"}function ge(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),a=me(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,a):e[n]=a}}Object.keys(pe).forEach((function(e){he.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),pe[t]=pe[e]}))}));var ye=D({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function be(e,t){if(t){if(ye[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(o(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(o(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(o(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(o(62))}}function ve(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var we=null;function xe(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var ke=null,Se=null,Ee=null;function _e(e){if(e=va(e)){if("function"!=typeof ke)throw Error(o(280));var t=e.stateNode;t&&(t=xa(t),ke(e.stateNode,e.type,t))}}function Ce(e){Se?Ee?Ee.push(e):Ee=[e]:Se=e}function Te(){if(Se){var e=Se,t=Ee;if(Ee=Se=null,_e(e),t)for(e=0;e<t.length;e++)_e(t[e])}}function Le(e,t){return e(t)}function Ne(){}var je=!1;function Pe(e,t,n){if(je)return e(t,n);je=!0;try{return Le(e,t,n)}finally{je=!1,(null!==Se||null!==Ee)&&(Ne(),Te())}}function Ae(e,t){var n=e.stateNode;if(null===n)return null;var r=xa(n);if(null===r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(o(231,t,typeof n));return n}var Oe=!1;if(c)try{var Ie={};Object.defineProperty(Ie,"passive",{get:function(){Oe=!0}}),window.addEventListener("test",Ie,Ie),window.removeEventListener("test",Ie,Ie)}catch(ce){Oe=!1}function Re(e,t,n,r,a,o,i,l,s){var u=Array.prototype.slice.call(arguments,3);try{t.apply(n,u)}catch(c){this.onError(c)}}var Fe=!1,De=null,Me=!1,ze=null,Be={onError:function(e){Fe=!0,De=e}};function $e(e,t,n,r,a,o,i,l,s){Fe=!1,De=null,Re.apply(Be,arguments)}function Ue(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!=(4098&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function Qe(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function Ze(e){if(Ue(e)!==e)throw Error(o(188))}function He(e){return null!==(e=function(e){var t=e.alternate;if(!t){if(null===(t=Ue(e)))throw Error(o(188));return t!==e?null:e}for(var n=e,r=t;;){var a=n.return;if(null===a)break;var i=a.alternate;if(null===i){if(null!==(r=a.return)){n=r;continue}break}if(a.child===i.child){for(i=a.child;i;){if(i===n)return Ze(a),e;if(i===r)return Ze(a),t;i=i.sibling}throw Error(o(188))}if(n.return!==r.return)n=a,r=i;else{for(var l=!1,s=a.child;s;){if(s===n){l=!0,n=a,r=i;break}if(s===r){l=!0,r=a,n=i;break}s=s.sibling}if(!l){for(s=i.child;s;){if(s===n){l=!0,n=i,r=a;break}if(s===r){l=!0,r=i,n=a;break}s=s.sibling}if(!l)throw Error(o(189))}}if(n.alternate!==r)throw Error(o(190))}if(3!==n.tag)throw Error(o(188));return n.stateNode.current===n?e:t}(e))?Ve(e):null}function Ve(e){if(5===e.tag||6===e.tag)return e;for(e=e.child;null!==e;){var t=Ve(e);if(null!==t)return t;e=e.sibling}return null}var We=a.unstable_scheduleCallback,qe=a.unstable_cancelCallback,Ge=a.unstable_shouldYield,Ye=a.unstable_requestPaint,Ke=a.unstable_now,Xe=a.unstable_getCurrentPriorityLevel,Je=a.unstable_ImmediatePriority,et=a.unstable_UserBlockingPriority,tt=a.unstable_NormalPriority,nt=a.unstable_LowPriority,rt=a.unstable_IdlePriority,at=null,ot=null;var it=Math.clz32?Math.clz32:function(e){return e>>>=0,0===e?32:31-(lt(e)/st|0)|0},lt=Math.log,st=Math.LN2;var ut=64,ct=4194304;function dt(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return 4194240&e;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return 130023424&e;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function ft(e,t){var n=e.pendingLanes;if(0===n)return 0;var r=0,a=e.suspendedLanes,o=e.pingedLanes,i=268435455&n;if(0!==i){var l=i&~a;0!==l?r=dt(l):0!==(o&=i)&&(r=dt(o))}else 0!==(i=n&~a)?r=dt(i):0!==o&&(r=dt(o));if(0===r)return 0;if(0!==t&&t!==r&&0==(t&a)&&((a=r&-r)>=(o=t&-t)||16===a&&0!=(4194240&o)))return t;if(0!=(4&r)&&(r|=16&n),0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)a=1<<(n=31-it(t)),r|=e[n],t&=~a;return r}function pt(e,t){switch(e){case 1:case 2:case 4:return t+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;default:return-1}}function ht(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function mt(){var e=ut;return 0==(4194240&(ut<<=1))&&(ut=64),e}function gt(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function yt(e,t,n){e.pendingLanes|=t,536870912!==t&&(e.suspendedLanes=0,e.pingedLanes=0),(e=e.eventTimes)[t=31-it(t)]=n}function bt(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-it(n),a=1<<r;a&t|e[r]&t&&(e[r]|=t),n&=~a}}var vt=0;function wt(e){return 1<(e&=-e)?4<e?0!=(268435455&e)?16:536870912:4:1}var xt,kt,St,Et,_t,Ct=!1,Tt=[],Lt=null,Nt=null,jt=null,Pt=new Map,At=new Map,Ot=[],It="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function Rt(e,t){switch(e){case"focusin":case"focusout":Lt=null;break;case"dragenter":case"dragleave":Nt=null;break;case"mouseover":case"mouseout":jt=null;break;case"pointerover":case"pointerout":Pt.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":At.delete(t.pointerId)}}function Ft(e,t,n,r,a,o){return null===e||e.nativeEvent!==o?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:o,targetContainers:[a]},null!==t&&(null!==(t=va(t))&&kt(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==a&&-1===t.indexOf(a)&&t.push(a),e)}function Dt(e){var t=ba(e.target);if(null!==t){var n=Ue(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=Qe(n)))return e.blockedOn=t,void _t(e.priority,(function(){St(n)}))}else if(3===t&&n.stateNode.current.memoizedState.isDehydrated)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function Mt(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Gt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=va(n))&&kt(t),e.blockedOn=n,!1;var r=new(n=e.nativeEvent).constructor(n.type,n);we=r,n.target.dispatchEvent(r),we=null,t.shift()}return!0}function zt(e,t,n){Mt(e)&&n.delete(t)}function Bt(){Ct=!1,null!==Lt&&Mt(Lt)&&(Lt=null),null!==Nt&&Mt(Nt)&&(Nt=null),null!==jt&&Mt(jt)&&(jt=null),Pt.forEach(zt),At.forEach(zt)}function $t(e,t){e.blockedOn===t&&(e.blockedOn=null,Ct||(Ct=!0,a.unstable_scheduleCallback(a.unstable_NormalPriority,Bt)))}function Ut(e){function t(t){return $t(t,e)}if(0<Tt.length){$t(Tt[0],e);for(var n=1;n<Tt.length;n++){var r=Tt[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==Lt&&$t(Lt,e),null!==Nt&&$t(Nt,e),null!==jt&&$t(jt,e),Pt.forEach(t),At.forEach(t),n=0;n<Ot.length;n++)(r=Ot[n]).blockedOn===e&&(r.blockedOn=null);for(;0<Ot.length&&null===(n=Ot[0]).blockedOn;)Dt(n),null===n.blockedOn&&Ot.shift()}var Qt=w.ReactCurrentBatchConfig,Zt=!0;function Ht(e,t,n,r){var a=vt,o=Qt.transition;Qt.transition=null;try{vt=1,Wt(e,t,n,r)}finally{vt=a,Qt.transition=o}}function Vt(e,t,n,r){var a=vt,o=Qt.transition;Qt.transition=null;try{vt=4,Wt(e,t,n,r)}finally{vt=a,Qt.transition=o}}function Wt(e,t,n,r){if(Zt){var a=Gt(e,t,n,r);if(null===a)Zr(e,t,r,qt,n),Rt(e,r);else if(function(e,t,n,r,a){switch(t){case"focusin":return Lt=Ft(Lt,e,t,n,r,a),!0;case"dragenter":return Nt=Ft(Nt,e,t,n,r,a),!0;case"mouseover":return jt=Ft(jt,e,t,n,r,a),!0;case"pointerover":var o=a.pointerId;return Pt.set(o,Ft(Pt.get(o)||null,e,t,n,r,a)),!0;case"gotpointercapture":return o=a.pointerId,At.set(o,Ft(At.get(o)||null,e,t,n,r,a)),!0}return!1}(a,e,t,n,r))r.stopPropagation();else if(Rt(e,r),4&t&&-1<It.indexOf(e)){for(;null!==a;){var o=va(a);if(null!==o&&xt(o),null===(o=Gt(e,t,n,r))&&Zr(e,t,r,qt,n),o===a)break;a=o}null!==a&&r.stopPropagation()}else Zr(e,t,r,null,n)}}var qt=null;function Gt(e,t,n,r){if(qt=null,null!==(e=ba(e=xe(r))))if(null===(t=Ue(e)))e=null;else if(13===(n=t.tag)){if(null!==(e=Qe(t)))return e;e=null}else if(3===n){if(t.stateNode.current.memoizedState.isDehydrated)return 3===t.tag?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null);return qt=e,null}function Yt(e){switch(e){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(Xe()){case Je:return 1;case et:return 4;case tt:case nt:return 16;case rt:return 536870912;default:return 16}default:return 16}}var Kt=null,Xt=null,Jt=null;function en(){if(Jt)return Jt;var e,t,n=Xt,r=n.length,a="value"in Kt?Kt.value:Kt.textContent,o=a.length;for(e=0;e<r&&n[e]===a[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===a[o-t];t++);return Jt=a.slice(e,1<t?1-t:void 0)}function tn(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function nn(){return!0}function rn(){return!1}function an(e){function t(t,n,r,a,o){for(var i in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=a,this.target=o,this.currentTarget=null,e)e.hasOwnProperty(i)&&(t=e[i],this[i]=t?t(a):a[i]);return this.isDefaultPrevented=(null!=a.defaultPrevented?a.defaultPrevented:!1===a.returnValue)?nn:rn,this.isPropagationStopped=rn,this}return D(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=nn)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=nn)},persist:function(){},isPersistent:nn}),t}var on,ln,sn,un={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},cn=an(un),dn=D({},un,{view:0,detail:0}),fn=an(dn),pn=D({},dn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:_n,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==sn&&(sn&&"mousemove"===e.type?(on=e.screenX-sn.screenX,ln=e.screenY-sn.screenY):ln=on=0,sn=e),on)},movementY:function(e){return"movementY"in e?e.movementY:ln}}),hn=an(pn),mn=an(D({},pn,{dataTransfer:0})),gn=an(D({},dn,{relatedTarget:0})),yn=an(D({},un,{animationName:0,elapsedTime:0,pseudoElement:0})),bn=D({},un,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),vn=an(bn),wn=an(D({},un,{data:0})),xn={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},kn={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Sn={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function En(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=Sn[e])&&!!t[e]}function _n(){return En}var Cn=D({},dn,{key:function(e){if(e.key){var t=xn[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=tn(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?kn[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:_n,charCode:function(e){return"keypress"===e.type?tn(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?tn(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),Tn=an(Cn),Ln=an(D({},pn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Nn=an(D({},dn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:_n})),jn=an(D({},un,{propertyName:0,elapsedTime:0,pseudoElement:0})),Pn=D({},pn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),An=an(Pn),On=[9,13,27,32],In=c&&"CompositionEvent"in window,Rn=null;c&&"documentMode"in document&&(Rn=document.documentMode);var Fn=c&&"TextEvent"in window&&!Rn,Dn=c&&(!In||Rn&&8<Rn&&11>=Rn),Mn=String.fromCharCode(32),zn=!1;function Bn(e,t){switch(e){case"keyup":return-1!==On.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function $n(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var Un=!1;var Qn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Zn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Qn[e.type]:"textarea"===t}function Hn(e,t,n,r){Ce(r),0<(t=Vr(t,"onChange")).length&&(n=new cn("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Vn=null,Wn=null;function qn(e){Mr(e,0)}function Gn(e){if(W(wa(e)))return e}function Yn(e,t){if("change"===e)return t}var Kn=!1;if(c){var Xn;if(c){var Jn="oninput"in document;if(!Jn){var er=document.createElement("div");er.setAttribute("oninput","return;"),Jn="function"==typeof er.oninput}Xn=Jn}else Xn=!1;Kn=Xn&&(!document.documentMode||9<document.documentMode)}function tr(){Vn&&(Vn.detachEvent("onpropertychange",nr),Wn=Vn=null)}function nr(e){if("value"===e.propertyName&&Gn(Wn)){var t=[];Hn(t,Wn,e,xe(e)),Pe(qn,t)}}function rr(e,t,n){"focusin"===e?(tr(),Wn=n,(Vn=t).attachEvent("onpropertychange",nr)):"focusout"===e&&tr()}function ar(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Gn(Wn)}function or(e,t){if("click"===e)return Gn(t)}function ir(e,t){if("input"===e||"change"===e)return Gn(t)}var lr="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t};function sr(e,t){if(lr(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var a=n[r];if(!d.call(t,a)||!lr(e[a],t[a]))return!1}return!0}function ur(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function cr(e,t){var n,r=ur(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=ur(r)}}function dr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?dr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function fr(){for(var e=window,t=q();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=q((e=t.contentWindow).document)}return t}function pr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}function hr(e){var t=fr(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&dr(n.ownerDocument.documentElement,n)){if(null!==r&&pr(n))if(t=r.start,void 0===(e=r.end)&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if((e=(t=n.ownerDocument||document)&&t.defaultView||window).getSelection){e=e.getSelection();var a=n.textContent.length,o=Math.min(r.start,a);r=void 0===r.end?o:Math.min(r.end,a),!e.extend&&o>r&&(a=r,r=o,o=a),a=cr(n,o);var i=cr(n,r);a&&i&&(1!==e.rangeCount||e.anchorNode!==a.node||e.anchorOffset!==a.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&((t=t.createRange()).setStart(a.node,a.offset),e.removeAllRanges(),o>r?(e.addRange(t),e.extend(i.node,i.offset)):(t.setEnd(i.node,i.offset),e.addRange(t)))}for(t=[],e=n;e=e.parentNode;)1===e.nodeType&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for("function"==typeof n.focus&&n.focus(),n=0;n<t.length;n++)(e=t[n]).element.scrollLeft=e.left,e.element.scrollTop=e.top}}var mr=c&&"documentMode"in document&&11>=document.documentMode,gr=null,yr=null,br=null,vr=!1;function wr(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;vr||null==gr||gr!==q(r)||("selectionStart"in(r=gr)&&pr(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},br&&sr(br,r)||(br=r,0<(r=Vr(yr,"onSelect")).length&&(t=new cn("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=gr)))}function xr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var kr={animationend:xr("Animation","AnimationEnd"),animationiteration:xr("Animation","AnimationIteration"),animationstart:xr("Animation","AnimationStart"),transitionend:xr("Transition","TransitionEnd")},Sr={},Er={};function _r(e){if(Sr[e])return Sr[e];if(!kr[e])return e;var t,n=kr[e];for(t in n)if(n.hasOwnProperty(t)&&t in Er)return Sr[e]=n[t];return e}c&&(Er=document.createElement("div").style,"AnimationEvent"in window||(delete kr.animationend.animation,delete kr.animationiteration.animation,delete kr.animationstart.animation),"TransitionEvent"in window||delete kr.transitionend.transition);var Cr=_r("animationend"),Tr=_r("animationiteration"),Lr=_r("animationstart"),Nr=_r("transitionend"),jr=new Map,Pr="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function Ar(e,t){jr.set(e,t),s(t,[e])}for(var Or=0;Or<Pr.length;Or++){var Ir=Pr[Or];Ar(Ir.toLowerCase(),"on"+(Ir[0].toUpperCase()+Ir.slice(1)))}Ar(Cr,"onAnimationEnd"),Ar(Tr,"onAnimationIteration"),Ar(Lr,"onAnimationStart"),Ar("dblclick","onDoubleClick"),Ar("focusin","onFocus"),Ar("focusout","onBlur"),Ar(Nr,"onTransitionEnd"),u("onMouseEnter",["mouseout","mouseover"]),u("onMouseLeave",["mouseout","mouseover"]),u("onPointerEnter",["pointerout","pointerover"]),u("onPointerLeave",["pointerout","pointerover"]),s("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),s("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),s("onBeforeInput",["compositionend","keypress","textInput","paste"]),s("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),s("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),s("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Rr="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Fr=new Set("cancel close invalid load scroll toggle".split(" ").concat(Rr));function Dr(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,a,i,l,s,u){if($e.apply(this,arguments),Fe){if(!Fe)throw Error(o(198));var c=De;Fe=!1,De=null,Me||(Me=!0,ze=c)}}(r,t,void 0,e),e.currentTarget=null}function Mr(e,t){t=0!=(4&t);for(var n=0;n<e.length;n++){var r=e[n],a=r.event;r=r.listeners;e:{var o=void 0;if(t)for(var i=r.length-1;0<=i;i--){var l=r[i],s=l.instance,u=l.currentTarget;if(l=l.listener,s!==o&&a.isPropagationStopped())break e;Dr(a,l,u),o=s}else for(i=0;i<r.length;i++){if(s=(l=r[i]).instance,u=l.currentTarget,l=l.listener,s!==o&&a.isPropagationStopped())break e;Dr(a,l,u),o=s}}}if(Me)throw e=ze,Me=!1,ze=null,e}function zr(e,t){var n=t[ma];void 0===n&&(n=t[ma]=new Set);var r=e+"__bubble";n.has(r)||(Qr(t,e,2,!1),n.add(r))}function Br(e,t,n){var r=0;t&&(r|=4),Qr(n,e,r,t)}var $r="_reactListening"+Math.random().toString(36).slice(2);function Ur(e){if(!e[$r]){e[$r]=!0,i.forEach((function(t){"selectionchange"!==t&&(Fr.has(t)||Br(t,!1,e),Br(t,!0,e))}));var t=9===e.nodeType?e:e.ownerDocument;null===t||t[$r]||(t[$r]=!0,Br("selectionchange",!1,t))}}function Qr(e,t,n,r){switch(Yt(t)){case 1:var a=Ht;break;case 4:a=Vt;break;default:a=Wt}n=a.bind(null,t,n,e),a=void 0,!Oe||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(a=!0),r?void 0!==a?e.addEventListener(t,n,{capture:!0,passive:a}):e.addEventListener(t,n,!0):void 0!==a?e.addEventListener(t,n,{passive:a}):e.addEventListener(t,n,!1)}function Zr(e,t,n,r,a){var o=r;if(0==(1&t)&&0==(2&t)&&null!==r)e:for(;;){if(null===r)return;var i=r.tag;if(3===i||4===i){var l=r.stateNode.containerInfo;if(l===a||8===l.nodeType&&l.parentNode===a)break;if(4===i)for(i=r.return;null!==i;){var s=i.tag;if((3===s||4===s)&&((s=i.stateNode.containerInfo)===a||8===s.nodeType&&s.parentNode===a))return;i=i.return}for(;null!==l;){if(null===(i=ba(l)))return;if(5===(s=i.tag)||6===s){r=o=i;continue e}l=l.parentNode}}r=r.return}Pe((function(){var r=o,a=xe(n),i=[];e:{var l=jr.get(e);if(void 0!==l){var s=cn,u=e;switch(e){case"keypress":if(0===tn(n))break e;case"keydown":case"keyup":s=Tn;break;case"focusin":u="focus",s=gn;break;case"focusout":u="blur",s=gn;break;case"beforeblur":case"afterblur":s=gn;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":s=hn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":s=mn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":s=Nn;break;case Cr:case Tr:case Lr:s=yn;break;case Nr:s=jn;break;case"scroll":s=fn;break;case"wheel":s=An;break;case"copy":case"cut":case"paste":s=vn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":s=Ln}var c=0!=(4&t),d=!c&&"scroll"===e,f=c?null!==l?l+"Capture":null:l;c=[];for(var p,h=r;null!==h;){var m=(p=h).stateNode;if(5===p.tag&&null!==m&&(p=m,null!==f&&(null!=(m=Ae(h,f))&&c.push(Hr(h,m,p)))),d)break;h=h.return}0<c.length&&(l=new s(l,u,null,n,a),i.push({event:l,listeners:c}))}}if(0==(7&t)){if(s="mouseout"===e||"pointerout"===e,(!(l="mouseover"===e||"pointerover"===e)||n===we||!(u=n.relatedTarget||n.fromElement)||!ba(u)&&!u[ha])&&(s||l)&&(l=a.window===a?a:(l=a.ownerDocument)?l.defaultView||l.parentWindow:window,s?(s=r,null!==(u=(u=n.relatedTarget||n.toElement)?ba(u):null)&&(u!==(d=Ue(u))||5!==u.tag&&6!==u.tag)&&(u=null)):(s=null,u=r),s!==u)){if(c=hn,m="onMouseLeave",f="onMouseEnter",h="mouse","pointerout"!==e&&"pointerover"!==e||(c=Ln,m="onPointerLeave",f="onPointerEnter",h="pointer"),d=null==s?l:wa(s),p=null==u?l:wa(u),(l=new c(m,h+"leave",s,n,a)).target=d,l.relatedTarget=p,m=null,ba(a)===r&&((c=new c(f,h+"enter",u,n,a)).target=p,c.relatedTarget=d,m=c),d=m,s&&u)e:{for(f=u,h=0,p=c=s;p;p=Wr(p))h++;for(p=0,m=f;m;m=Wr(m))p++;for(;0<h-p;)c=Wr(c),h--;for(;0<p-h;)f=Wr(f),p--;for(;h--;){if(c===f||null!==f&&c===f.alternate)break e;c=Wr(c),f=Wr(f)}c=null}else c=null;null!==s&&qr(i,l,s,c,!1),null!==u&&null!==d&&qr(i,d,u,c,!0)}if("select"===(s=(l=r?wa(r):window).nodeName&&l.nodeName.toLowerCase())||"input"===s&&"file"===l.type)var g=Yn;else if(Zn(l))if(Kn)g=ir;else{g=ar;var y=rr}else(s=l.nodeName)&&"input"===s.toLowerCase()&&("checkbox"===l.type||"radio"===l.type)&&(g=or);switch(g&&(g=g(e,r))?Hn(i,g,n,a):(y&&y(e,l,r),"focusout"===e&&(y=l._wrapperState)&&y.controlled&&"number"===l.type&&ee(l,"number",l.value)),y=r?wa(r):window,e){case"focusin":(Zn(y)||"true"===y.contentEditable)&&(gr=y,yr=r,br=null);break;case"focusout":br=yr=gr=null;break;case"mousedown":vr=!0;break;case"contextmenu":case"mouseup":case"dragend":vr=!1,wr(i,n,a);break;case"selectionchange":if(mr)break;case"keydown":case"keyup":wr(i,n,a)}var b;if(In)e:{switch(e){case"compositionstart":var v="onCompositionStart";break e;case"compositionend":v="onCompositionEnd";break e;case"compositionupdate":v="onCompositionUpdate";break e}v=void 0}else Un?Bn(e,n)&&(v="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(v="onCompositionStart");v&&(Dn&&"ko"!==n.locale&&(Un||"onCompositionStart"!==v?"onCompositionEnd"===v&&Un&&(b=en()):(Xt="value"in(Kt=a)?Kt.value:Kt.textContent,Un=!0)),0<(y=Vr(r,v)).length&&(v=new wn(v,e,null,n,a),i.push({event:v,listeners:y}),b?v.data=b:null!==(b=$n(n))&&(v.data=b))),(b=Fn?function(e,t){switch(e){case"compositionend":return $n(t);case"keypress":return 32!==t.which?null:(zn=!0,Mn);case"textInput":return(e=t.data)===Mn&&zn?null:e;default:return null}}(e,n):function(e,t){if(Un)return"compositionend"===e||!In&&Bn(e,t)?(e=en(),Jt=Xt=Kt=null,Un=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return Dn&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(r=Vr(r,"onBeforeInput")).length&&(a=new wn("onBeforeInput","beforeinput",null,n,a),i.push({event:a,listeners:r}),a.data=b))}Mr(i,t)}))}function Hr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Vr(e,t){for(var n=t+"Capture",r=[];null!==e;){var a=e,o=a.stateNode;5===a.tag&&null!==o&&(a=o,null!=(o=Ae(e,n))&&r.unshift(Hr(e,o,a)),null!=(o=Ae(e,t))&&r.push(Hr(e,o,a))),e=e.return}return r}function Wr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function qr(e,t,n,r,a){for(var o=t._reactName,i=[];null!==n&&n!==r;){var l=n,s=l.alternate,u=l.stateNode;if(null!==s&&s===r)break;5===l.tag&&null!==u&&(l=u,a?null!=(s=Ae(n,o))&&i.unshift(Hr(n,s,l)):a||null!=(s=Ae(n,o))&&i.push(Hr(n,s,l))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}var Gr=/\r\n?/g,Yr=/\u0000|\uFFFD/g;function Kr(e){return("string"==typeof e?e:""+e).replace(Gr,"\n").replace(Yr,"")}function Xr(e,t,n){if(t=Kr(t),Kr(e)!==t&&n)throw Error(o(425))}function Jr(){}var ea=null,ta=null;function na(e,t){return"textarea"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var ra="function"==typeof setTimeout?setTimeout:void 0,aa="function"==typeof clearTimeout?clearTimeout:void 0,oa="function"==typeof Promise?Promise:void 0,ia="function"==typeof queueMicrotask?queueMicrotask:void 0!==oa?function(e){return oa.resolve(null).then(e).catch(la)}:ra;function la(e){setTimeout((function(){throw e}))}function sa(e,t){var n=t,r=0;do{var a=n.nextSibling;if(e.removeChild(n),a&&8===a.nodeType)if("/$"===(n=a.data)){if(0===r)return e.removeChild(a),void Ut(t);r--}else"$"!==n&&"$?"!==n&&"$!"!==n||r++;n=a}while(n);Ut(t)}function ua(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break;if(8===t){if("$"===(t=e.data)||"$!"===t||"$?"===t)break;if("/$"===t)return null}}return e}function ca(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var da=Math.random().toString(36).slice(2),fa="__reactFiber$"+da,pa="__reactProps$"+da,ha="__reactContainer$"+da,ma="__reactEvents$"+da,ga="__reactListeners$"+da,ya="__reactHandles$"+da;function ba(e){var t=e[fa];if(t)return t;for(var n=e.parentNode;n;){if(t=n[ha]||n[fa]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=ca(e);null!==e;){if(n=e[fa])return n;e=ca(e)}return t}n=(e=n).parentNode}return null}function va(e){return!(e=e[fa]||e[ha])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function wa(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(o(33))}function xa(e){return e[pa]||null}var ka=[],Sa=-1;function Ea(e){return{current:e}}function _a(e){0>Sa||(e.current=ka[Sa],ka[Sa]=null,Sa--)}function Ca(e,t){Sa++,ka[Sa]=e.current,e.current=t}var Ta={},La=Ea(Ta),Na=Ea(!1),ja=Ta;function Pa(e,t){var n=e.type.contextTypes;if(!n)return Ta;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var a,o={};for(a in n)o[a]=t[a];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function Aa(e){return null!=(e=e.childContextTypes)}function Oa(){_a(Na),_a(La)}function Ia(e,t,n){if(La.current!==Ta)throw Error(o(168));Ca(La,t),Ca(Na,n)}function Ra(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var a in r=r.getChildContext())if(!(a in t))throw Error(o(108,Q(e)||"Unknown",a));return D({},n,r)}function Fa(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Ta,ja=La.current,Ca(La,e),Ca(Na,Na.current),!0}function Da(e,t,n){var r=e.stateNode;if(!r)throw Error(o(169));n?(e=Ra(e,t,ja),r.__reactInternalMemoizedMergedChildContext=e,_a(Na),_a(La),Ca(La,e)):_a(Na),Ca(Na,n)}var Ma=null,za=!1,Ba=!1;function $a(e){null===Ma?Ma=[e]:Ma.push(e)}function Ua(){if(!Ba&&null!==Ma){Ba=!0;var e=0,t=vt;try{var n=Ma;for(vt=1;e<n.length;e++){var r=n[e];do{r=r(!0)}while(null!==r)}Ma=null,za=!1}catch(a){throw null!==Ma&&(Ma=Ma.slice(e+1)),We(Je,Ua),a}finally{vt=t,Ba=!1}}return null}var Qa=[],Za=0,Ha=null,Va=0,Wa=[],qa=0,Ga=null,Ya=1,Ka="";function Xa(e,t){Qa[Za++]=Va,Qa[Za++]=Ha,Ha=e,Va=t}function Ja(e,t,n){Wa[qa++]=Ya,Wa[qa++]=Ka,Wa[qa++]=Ga,Ga=e;var r=Ya;e=Ka;var a=32-it(r)-1;r&=~(1<<a),n+=1;var o=32-it(t)+a;if(30<o){var i=a-a%5;o=(r&(1<<i)-1).toString(32),r>>=i,a-=i,Ya=1<<32-it(t)+a|n<<a|r,Ka=o+e}else Ya=1<<o|n<<a|r,Ka=e}function eo(e){null!==e.return&&(Xa(e,1),Ja(e,1,0))}function to(e){for(;e===Ha;)Ha=Qa[--Za],Qa[Za]=null,Va=Qa[--Za],Qa[Za]=null;for(;e===Ga;)Ga=Wa[--qa],Wa[qa]=null,Ka=Wa[--qa],Wa[qa]=null,Ya=Wa[--qa],Wa[qa]=null}var no=null,ro=null,ao=!1,oo=null;function io(e,t){var n=Au(5,null,null,0);n.elementType="DELETED",n.stateNode=t,n.return=e,null===(t=e.deletions)?(e.deletions=[n],e.flags|=16):t.push(n)}function lo(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,no=e,ro=ua(t.firstChild),!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,no=e,ro=null,!0);case 13:return null!==(t=8!==t.nodeType?null:t)&&(n=null!==Ga?{id:Ya,overflow:Ka}:null,e.memoizedState={dehydrated:t,treeContext:n,retryLane:1073741824},(n=Au(18,null,null,0)).stateNode=t,n.return=e,e.child=n,no=e,ro=null,!0);default:return!1}}function so(e){return 0!=(1&e.mode)&&0==(128&e.flags)}function uo(e){if(ao){var t=ro;if(t){var n=t;if(!lo(e,t)){if(so(e))throw Error(o(418));t=ua(n.nextSibling);var r=no;t&&lo(e,t)?io(r,n):(e.flags=-4097&e.flags|2,ao=!1,no=e)}}else{if(so(e))throw Error(o(418));e.flags=-4097&e.flags|2,ao=!1,no=e}}}function co(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;no=e}function fo(e){if(e!==no)return!1;if(!ao)return co(e),ao=!0,!1;var t;if((t=3!==e.tag)&&!(t=5!==e.tag)&&(t="head"!==(t=e.type)&&"body"!==t&&!na(e.type,e.memoizedProps)),t&&(t=ro)){if(so(e))throw po(),Error(o(418));for(;t;)io(e,t),t=ua(t.nextSibling)}if(co(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(o(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){ro=ua(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}ro=null}}else ro=no?ua(e.stateNode.nextSibling):null;return!0}function po(){for(var e=ro;e;)e=ua(e.nextSibling)}function ho(){ro=no=null,ao=!1}function mo(e){null===oo?oo=[e]:oo.push(e)}var go=w.ReactCurrentBatchConfig;function yo(e,t){if(e&&e.defaultProps){for(var n in t=D({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}var bo=Ea(null),vo=null,wo=null,xo=null;function ko(){xo=wo=vo=null}function So(e){var t=bo.current;_a(bo),e._currentValue=t}function Eo(e,t,n){for(;null!==e;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,null!==r&&(r.childLanes|=t)):null!==r&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function _o(e,t){vo=e,xo=wo=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!=(e.lanes&t)&&(wl=!0),e.firstContext=null)}function Co(e){var t=e._currentValue;if(xo!==e)if(e={context:e,memoizedValue:t,next:null},null===wo){if(null===vo)throw Error(o(308));wo=e,vo.dependencies={lanes:0,firstContext:e}}else wo=wo.next=e;return t}var To=null;function Lo(e){null===To?To=[e]:To.push(e)}function No(e,t,n,r){var a=t.interleaved;return null===a?(n.next=n,Lo(t)):(n.next=a.next,a.next=n),t.interleaved=n,jo(e,r)}function jo(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}var Po=!1;function Ao(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Oo(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Io(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Ro(e,t,n){var r=e.updateQueue;if(null===r)return null;if(r=r.shared,0!=(2&Ns)){var a=r.pending;return null===a?t.next=t:(t.next=a.next,a.next=t),r.pending=t,jo(e,n)}return null===(a=r.interleaved)?(t.next=t,Lo(r)):(t.next=a.next,a.next=t),r.interleaved=t,jo(e,n)}function Fo(e,t,n){if(null!==(t=t.updateQueue)&&(t=t.shared,0!=(4194240&n))){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,bt(e,n)}}function Do(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var a=null,o=null;if(null!==(n=n.firstBaseUpdate)){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===o?a=o=i:o=o.next=i,n=n.next}while(null!==n);null===o?a=o=t:o=o.next=t}else a=o=t;return n={baseState:r.baseState,firstBaseUpdate:a,lastBaseUpdate:o,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function Mo(e,t,n,r){var a=e.updateQueue;Po=!1;var o=a.firstBaseUpdate,i=a.lastBaseUpdate,l=a.shared.pending;if(null!==l){a.shared.pending=null;var s=l,u=s.next;s.next=null,null===i?o=u:i.next=u,i=s;var c=e.alternate;null!==c&&((l=(c=c.updateQueue).lastBaseUpdate)!==i&&(null===l?c.firstBaseUpdate=u:l.next=u,c.lastBaseUpdate=s))}if(null!==o){var d=a.baseState;for(i=0,c=u=s=null,l=o;;){var f=l.lane,p=l.eventTime;if((r&f)===f){null!==c&&(c=c.next={eventTime:p,lane:0,tag:l.tag,payload:l.payload,callback:l.callback,next:null});e:{var h=e,m=l;switch(f=t,p=n,m.tag){case 1:if("function"==typeof(h=m.payload)){d=h.call(p,d,f);break e}d=h;break e;case 3:h.flags=-65537&h.flags|128;case 0:if(null==(f="function"==typeof(h=m.payload)?h.call(p,d,f):h))break e;d=D({},d,f);break e;case 2:Po=!0}}null!==l.callback&&0!==l.lane&&(e.flags|=64,null===(f=a.effects)?a.effects=[l]:f.push(l))}else p={eventTime:p,lane:f,tag:l.tag,payload:l.payload,callback:l.callback,next:null},null===c?(u=c=p,s=d):c=c.next=p,i|=f;if(null===(l=l.next)){if(null===(l=a.shared.pending))break;l=(f=l).next,f.next=null,a.lastBaseUpdate=f,a.shared.pending=null}}if(null===c&&(s=d),a.baseState=s,a.firstBaseUpdate=u,a.lastBaseUpdate=c,null!==(t=a.shared.interleaved)){a=t;do{i|=a.lane,a=a.next}while(a!==t)}else null===o&&(a.shared.lanes=0);Ds|=i,e.lanes=i,e.memoizedState=d}}function zo(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],a=r.callback;if(null!==a){if(r.callback=null,r=n,"function"!=typeof a)throw Error(o(191,a));a.call(r)}}}var Bo=(new r.Component).refs;function $o(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:D({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var Uo={isMounted:function(e){return!!(e=e._reactInternals)&&Ue(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=tu(),a=nu(e),o=Io(r,a);o.payload=t,null!=n&&(o.callback=n),null!==(t=Ro(e,o,a))&&(ru(t,e,a,r),Fo(t,e,a))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=tu(),a=nu(e),o=Io(r,a);o.tag=1,o.payload=t,null!=n&&(o.callback=n),null!==(t=Ro(e,o,a))&&(ru(t,e,a,r),Fo(t,e,a))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=tu(),r=nu(e),a=Io(n,r);a.tag=2,null!=t&&(a.callback=t),null!==(t=Ro(e,a,r))&&(ru(t,e,r,n),Fo(t,e,r))}};function Qo(e,t,n,r,a,o,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,o,i):!t.prototype||!t.prototype.isPureReactComponent||(!sr(n,r)||!sr(a,o))}function Zo(e,t,n){var r=!1,a=Ta,o=t.contextType;return"object"==typeof o&&null!==o?o=Co(o):(a=Aa(t)?ja:La.current,o=(r=null!=(r=t.contextTypes))?Pa(e,a):Ta),t=new t(n,o),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=Uo,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=a,e.__reactInternalMemoizedMaskedChildContext=o),t}function Ho(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&Uo.enqueueReplaceState(t,t.state,null)}function Vo(e,t,n,r){var a=e.stateNode;a.props=n,a.state=e.memoizedState,a.refs=Bo,Ao(e);var o=t.contextType;"object"==typeof o&&null!==o?a.context=Co(o):(o=Aa(t)?ja:La.current,a.context=Pa(e,o)),a.state=e.memoizedState,"function"==typeof(o=t.getDerivedStateFromProps)&&($o(e,t,o,n),a.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof a.getSnapshotBeforeUpdate||"function"!=typeof a.UNSAFE_componentWillMount&&"function"!=typeof a.componentWillMount||(t=a.state,"function"==typeof a.componentWillMount&&a.componentWillMount(),"function"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount(),t!==a.state&&Uo.enqueueReplaceState(a,a.state,null),Mo(e,n,a,r),a.state=e.memoizedState),"function"==typeof a.componentDidMount&&(e.flags|=4194308)}function Wo(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(o(309));var r=n.stateNode}if(!r)throw Error(o(147,e));var a=r,i=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===i?t.ref:(t=function(e){var t=a.refs;t===Bo&&(t=a.refs={}),null===e?delete t[i]:t[i]=e},t._stringRef=i,t)}if("string"!=typeof e)throw Error(o(284));if(!n._owner)throw Error(o(290,e))}return e}function qo(e,t){throw e=Object.prototype.toString.call(t),Error(o(31,"[object Object]"===e?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function Go(e){return(0,e._init)(e._payload)}function Yo(e){function t(t,n){if(e){var r=t.deletions;null===r?(t.deletions=[n],t.flags|=16):r.push(n)}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function a(e,t){return(e=Iu(e,t)).index=0,e.sibling=null,e}function i(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.flags|=2,n):r:(t.flags|=2,n):(t.flags|=1048576,n)}function l(t){return e&&null===t.alternate&&(t.flags|=2),t}function s(e,t,n,r){return null===t||6!==t.tag?((t=Mu(n,e.mode,r)).return=e,t):((t=a(t,n)).return=e,t)}function u(e,t,n,r){var o=n.type;return o===S?d(e,t,n.props.children,r,n.key):null!==t&&(t.elementType===o||"object"==typeof o&&null!==o&&o.$$typeof===A&&Go(o)===t.type)?((r=a(t,n.props)).ref=Wo(e,t,n),r.return=e,r):((r=Ru(n.type,n.key,n.props,null,e.mode,r)).ref=Wo(e,t,n),r.return=e,r)}function c(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=zu(n,e.mode,r)).return=e,t):((t=a(t,n.children||[])).return=e,t)}function d(e,t,n,r,o){return null===t||7!==t.tag?((t=Fu(n,e.mode,r,o)).return=e,t):((t=a(t,n)).return=e,t)}function f(e,t,n){if("string"==typeof t&&""!==t||"number"==typeof t)return(t=Mu(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case x:return(n=Ru(t.type,t.key,t.props,null,e.mode,n)).ref=Wo(e,null,t),n.return=e,n;case k:return(t=zu(t,e.mode,n)).return=e,t;case A:return f(e,(0,t._init)(t._payload),n)}if(te(t)||R(t))return(t=Fu(t,e.mode,n,null)).return=e,t;qo(e,t)}return null}function p(e,t,n,r){var a=null!==t?t.key:null;if("string"==typeof n&&""!==n||"number"==typeof n)return null!==a?null:s(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case x:return n.key===a?u(e,t,n,r):null;case k:return n.key===a?c(e,t,n,r):null;case A:return p(e,t,(a=n._init)(n._payload),r)}if(te(n)||R(n))return null!==a?null:d(e,t,n,r,null);qo(e,n)}return null}function h(e,t,n,r,a){if("string"==typeof r&&""!==r||"number"==typeof r)return s(t,e=e.get(n)||null,""+r,a);if("object"==typeof r&&null!==r){switch(r.$$typeof){case x:return u(t,e=e.get(null===r.key?n:r.key)||null,r,a);case k:return c(t,e=e.get(null===r.key?n:r.key)||null,r,a);case A:return h(e,t,n,(0,r._init)(r._payload),a)}if(te(r)||R(r))return d(t,e=e.get(n)||null,r,a,null);qo(t,r)}return null}function m(a,o,l,s){for(var u=null,c=null,d=o,m=o=0,g=null;null!==d&&m<l.length;m++){d.index>m?(g=d,d=null):g=d.sibling;var y=p(a,d,l[m],s);if(null===y){null===d&&(d=g);break}e&&d&&null===y.alternate&&t(a,d),o=i(y,o,m),null===c?u=y:c.sibling=y,c=y,d=g}if(m===l.length)return n(a,d),ao&&Xa(a,m),u;if(null===d){for(;m<l.length;m++)null!==(d=f(a,l[m],s))&&(o=i(d,o,m),null===c?u=d:c.sibling=d,c=d);return ao&&Xa(a,m),u}for(d=r(a,d);m<l.length;m++)null!==(g=h(d,a,m,l[m],s))&&(e&&null!==g.alternate&&d.delete(null===g.key?m:g.key),o=i(g,o,m),null===c?u=g:c.sibling=g,c=g);return e&&d.forEach((function(e){return t(a,e)})),ao&&Xa(a,m),u}function g(a,l,s,u){var c=R(s);if("function"!=typeof c)throw Error(o(150));if(null==(s=c.call(s)))throw Error(o(151));for(var d=c=null,m=l,g=l=0,y=null,b=s.next();null!==m&&!b.done;g++,b=s.next()){m.index>g?(y=m,m=null):y=m.sibling;var v=p(a,m,b.value,u);if(null===v){null===m&&(m=y);break}e&&m&&null===v.alternate&&t(a,m),l=i(v,l,g),null===d?c=v:d.sibling=v,d=v,m=y}if(b.done)return n(a,m),ao&&Xa(a,g),c;if(null===m){for(;!b.done;g++,b=s.next())null!==(b=f(a,b.value,u))&&(l=i(b,l,g),null===d?c=b:d.sibling=b,d=b);return ao&&Xa(a,g),c}for(m=r(a,m);!b.done;g++,b=s.next())null!==(b=h(m,a,g,b.value,u))&&(e&&null!==b.alternate&&m.delete(null===b.key?g:b.key),l=i(b,l,g),null===d?c=b:d.sibling=b,d=b);return e&&m.forEach((function(e){return t(a,e)})),ao&&Xa(a,g),c}return function e(r,o,i,s){if("object"==typeof i&&null!==i&&i.type===S&&null===i.key&&(i=i.props.children),"object"==typeof i&&null!==i){switch(i.$$typeof){case x:e:{for(var u=i.key,c=o;null!==c;){if(c.key===u){if((u=i.type)===S){if(7===c.tag){n(r,c.sibling),(o=a(c,i.props.children)).return=r,r=o;break e}}else if(c.elementType===u||"object"==typeof u&&null!==u&&u.$$typeof===A&&Go(u)===c.type){n(r,c.sibling),(o=a(c,i.props)).ref=Wo(r,c,i),o.return=r,r=o;break e}n(r,c);break}t(r,c),c=c.sibling}i.type===S?((o=Fu(i.props.children,r.mode,s,i.key)).return=r,r=o):((s=Ru(i.type,i.key,i.props,null,r.mode,s)).ref=Wo(r,o,i),s.return=r,r=s)}return l(r);case k:e:{for(c=i.key;null!==o;){if(o.key===c){if(4===o.tag&&o.stateNode.containerInfo===i.containerInfo&&o.stateNode.implementation===i.implementation){n(r,o.sibling),(o=a(o,i.children||[])).return=r,r=o;break e}n(r,o);break}t(r,o),o=o.sibling}(o=zu(i,r.mode,s)).return=r,r=o}return l(r);case A:return e(r,o,(c=i._init)(i._payload),s)}if(te(i))return m(r,o,i,s);if(R(i))return g(r,o,i,s);qo(r,i)}return"string"==typeof i&&""!==i||"number"==typeof i?(i=""+i,null!==o&&6===o.tag?(n(r,o.sibling),(o=a(o,i)).return=r,r=o):(n(r,o),(o=Mu(i,r.mode,s)).return=r,r=o),l(r)):n(r,o)}}var Ko=Yo(!0),Xo=Yo(!1),Jo={},ei=Ea(Jo),ti=Ea(Jo),ni=Ea(Jo);function ri(e){if(e===Jo)throw Error(o(174));return e}function ai(e,t){switch(Ca(ni,t),Ca(ti,e),Ca(ei,Jo),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:se(null,"");break;default:t=se(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}_a(ei),Ca(ei,t)}function oi(){_a(ei),_a(ti),_a(ni)}function ii(e){ri(ni.current);var t=ri(ei.current),n=se(t,e.type);t!==n&&(Ca(ti,e),Ca(ei,n))}function li(e){ti.current===e&&(_a(ei),_a(ti))}var si=Ea(0);function ui(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(128&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var ci=[];function di(){for(var e=0;e<ci.length;e++)ci[e]._workInProgressVersionPrimary=null;ci.length=0}var fi=w.ReactCurrentDispatcher,pi=w.ReactCurrentBatchConfig,hi=0,mi=null,gi=null,yi=null,bi=!1,vi=!1,wi=0,xi=0;function ki(){throw Error(o(321))}function Si(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!lr(e[n],t[n]))return!1;return!0}function Ei(e,t,n,r,a,i){if(hi=i,mi=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,fi.current=null===e||null===e.memoizedState?ll:sl,e=n(r,a),vi){i=0;do{if(vi=!1,wi=0,25<=i)throw Error(o(301));i+=1,yi=gi=null,t.updateQueue=null,fi.current=ul,e=n(r,a)}while(vi)}if(fi.current=il,t=null!==gi&&null!==gi.next,hi=0,yi=gi=mi=null,bi=!1,t)throw Error(o(300));return e}function _i(){var e=0!==wi;return wi=0,e}function Ci(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===yi?mi.memoizedState=yi=e:yi=yi.next=e,yi}function Ti(){if(null===gi){var e=mi.alternate;e=null!==e?e.memoizedState:null}else e=gi.next;var t=null===yi?mi.memoizedState:yi.next;if(null!==t)yi=t,gi=e;else{if(null===e)throw Error(o(310));e={memoizedState:(gi=e).memoizedState,baseState:gi.baseState,baseQueue:gi.baseQueue,queue:gi.queue,next:null},null===yi?mi.memoizedState=yi=e:yi=yi.next=e}return yi}function Li(e,t){return"function"==typeof t?t(e):t}function Ni(e){var t=Ti(),n=t.queue;if(null===n)throw Error(o(311));n.lastRenderedReducer=e;var r=gi,a=r.baseQueue,i=n.pending;if(null!==i){if(null!==a){var l=a.next;a.next=i.next,i.next=l}r.baseQueue=a=i,n.pending=null}if(null!==a){i=a.next,r=r.baseState;var s=l=null,u=null,c=i;do{var d=c.lane;if((hi&d)===d)null!==u&&(u=u.next={lane:0,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null}),r=c.hasEagerState?c.eagerState:e(r,c.action);else{var f={lane:d,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null};null===u?(s=u=f,l=r):u=u.next=f,mi.lanes|=d,Ds|=d}c=c.next}while(null!==c&&c!==i);null===u?l=r:u.next=s,lr(r,t.memoizedState)||(wl=!0),t.memoizedState=r,t.baseState=l,t.baseQueue=u,n.lastRenderedState=r}if(null!==(e=n.interleaved)){a=e;do{i=a.lane,mi.lanes|=i,Ds|=i,a=a.next}while(a!==e)}else null===a&&(n.lanes=0);return[t.memoizedState,n.dispatch]}function ji(e){var t=Ti(),n=t.queue;if(null===n)throw Error(o(311));n.lastRenderedReducer=e;var r=n.dispatch,a=n.pending,i=t.memoizedState;if(null!==a){n.pending=null;var l=a=a.next;do{i=e(i,l.action),l=l.next}while(l!==a);lr(i,t.memoizedState)||(wl=!0),t.memoizedState=i,null===t.baseQueue&&(t.baseState=i),n.lastRenderedState=i}return[i,r]}function Pi(){}function Ai(e,t){var n=mi,r=Ti(),a=t(),i=!lr(r.memoizedState,a);if(i&&(r.memoizedState=a,wl=!0),r=r.queue,Zi(Ri.bind(null,n,r,e),[e]),r.getSnapshot!==t||i||null!==yi&&1&yi.memoizedState.tag){if(n.flags|=2048,zi(9,Ii.bind(null,n,r,a,t),void 0,null),null===js)throw Error(o(349));0!=(30&hi)||Oi(n,t,a)}return a}function Oi(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},null===(t=mi.updateQueue)?(t={lastEffect:null,stores:null},mi.updateQueue=t,t.stores=[e]):null===(n=t.stores)?t.stores=[e]:n.push(e)}function Ii(e,t,n,r){t.value=n,t.getSnapshot=r,Fi(t)&&Di(e)}function Ri(e,t,n){return n((function(){Fi(t)&&Di(e)}))}function Fi(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!lr(e,n)}catch(r){return!0}}function Di(e){var t=jo(e,1);null!==t&&ru(t,e,1,-1)}function Mi(e){var t=Ci();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Li,lastRenderedState:e},t.queue=e,e=e.dispatch=nl.bind(null,mi,e),[t.memoizedState,e]}function zi(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=mi.updateQueue)?(t={lastEffect:null,stores:null},mi.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function Bi(){return Ti().memoizedState}function $i(e,t,n,r){var a=Ci();mi.flags|=e,a.memoizedState=zi(1|t,n,void 0,void 0===r?null:r)}function Ui(e,t,n,r){var a=Ti();r=void 0===r?null:r;var o=void 0;if(null!==gi){var i=gi.memoizedState;if(o=i.destroy,null!==r&&Si(r,i.deps))return void(a.memoizedState=zi(t,n,o,r))}mi.flags|=e,a.memoizedState=zi(1|t,n,o,r)}function Qi(e,t){return $i(8390656,8,e,t)}function Zi(e,t){return Ui(2048,8,e,t)}function Hi(e,t){return Ui(4,2,e,t)}function Vi(e,t){return Ui(4,4,e,t)}function Wi(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function qi(e,t,n){return n=null!=n?n.concat([e]):null,Ui(4,4,Wi.bind(null,t,e),n)}function Gi(){}function Yi(e,t){var n=Ti();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&Si(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Ki(e,t){var n=Ti();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&Si(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Xi(e,t,n){return 0==(21&hi)?(e.baseState&&(e.baseState=!1,wl=!0),e.memoizedState=n):(lr(n,t)||(n=mt(),mi.lanes|=n,Ds|=n,e.baseState=!0),t)}function Ji(e,t){var n=vt;vt=0!==n&&4>n?n:4,e(!0);var r=pi.transition;pi.transition={};try{e(!1),t()}finally{vt=n,pi.transition=r}}function el(){return Ti().memoizedState}function tl(e,t,n){var r=nu(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},rl(e))al(t,n);else if(null!==(n=No(e,t,n,r))){ru(n,e,r,tu()),ol(n,t,r)}}function nl(e,t,n){var r=nu(e),a={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(rl(e))al(t,a);else{var o=e.alternate;if(0===e.lanes&&(null===o||0===o.lanes)&&null!==(o=t.lastRenderedReducer))try{var i=t.lastRenderedState,l=o(i,n);if(a.hasEagerState=!0,a.eagerState=l,lr(l,i)){var s=t.interleaved;return null===s?(a.next=a,Lo(t)):(a.next=s.next,s.next=a),void(t.interleaved=a)}}catch(u){}null!==(n=No(e,t,a,r))&&(ru(n,e,r,a=tu()),ol(n,t,r))}}function rl(e){var t=e.alternate;return e===mi||null!==t&&t===mi}function al(e,t){vi=bi=!0;var n=e.pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function ol(e,t,n){if(0!=(4194240&n)){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,bt(e,n)}}var il={readContext:Co,useCallback:ki,useContext:ki,useEffect:ki,useImperativeHandle:ki,useInsertionEffect:ki,useLayoutEffect:ki,useMemo:ki,useReducer:ki,useRef:ki,useState:ki,useDebugValue:ki,useDeferredValue:ki,useTransition:ki,useMutableSource:ki,useSyncExternalStore:ki,useId:ki,unstable_isNewReconciler:!1},ll={readContext:Co,useCallback:function(e,t){return Ci().memoizedState=[e,void 0===t?null:t],e},useContext:Co,useEffect:Qi,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,$i(4194308,4,Wi.bind(null,t,e),n)},useLayoutEffect:function(e,t){return $i(4194308,4,e,t)},useInsertionEffect:function(e,t){return $i(4,2,e,t)},useMemo:function(e,t){var n=Ci();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Ci();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=tl.bind(null,mi,e),[r.memoizedState,e]},useRef:function(e){return e={current:e},Ci().memoizedState=e},useState:Mi,useDebugValue:Gi,useDeferredValue:function(e){return Ci().memoizedState=e},useTransition:function(){var e=Mi(!1),t=e[0];return e=Ji.bind(null,e[1]),Ci().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=mi,a=Ci();if(ao){if(void 0===n)throw Error(o(407));n=n()}else{if(n=t(),null===js)throw Error(o(349));0!=(30&hi)||Oi(r,t,n)}a.memoizedState=n;var i={value:n,getSnapshot:t};return a.queue=i,Qi(Ri.bind(null,r,i,e),[e]),r.flags|=2048,zi(9,Ii.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=Ci(),t=js.identifierPrefix;if(ao){var n=Ka;t=":"+t+"R"+(n=(Ya&~(1<<32-it(Ya)-1)).toString(32)+n),0<(n=wi++)&&(t+="H"+n.toString(32)),t+=":"}else t=":"+t+"r"+(n=xi++).toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},sl={readContext:Co,useCallback:Yi,useContext:Co,useEffect:Zi,useImperativeHandle:qi,useInsertionEffect:Hi,useLayoutEffect:Vi,useMemo:Ki,useReducer:Ni,useRef:Bi,useState:function(){return Ni(Li)},useDebugValue:Gi,useDeferredValue:function(e){return Xi(Ti(),gi.memoizedState,e)},useTransition:function(){return[Ni(Li)[0],Ti().memoizedState]},useMutableSource:Pi,useSyncExternalStore:Ai,useId:el,unstable_isNewReconciler:!1},ul={readContext:Co,useCallback:Yi,useContext:Co,useEffect:Zi,useImperativeHandle:qi,useInsertionEffect:Hi,useLayoutEffect:Vi,useMemo:Ki,useReducer:ji,useRef:Bi,useState:function(){return ji(Li)},useDebugValue:Gi,useDeferredValue:function(e){var t=Ti();return null===gi?t.memoizedState=e:Xi(t,gi.memoizedState,e)},useTransition:function(){return[ji(Li)[0],Ti().memoizedState]},useMutableSource:Pi,useSyncExternalStore:Ai,useId:el,unstable_isNewReconciler:!1};function cl(e,t){try{var n="",r=t;do{n+=$(r),r=r.return}while(r);var a=n}catch(o){a="\nError generating stack: "+o.message+"\n"+o.stack}return{value:e,source:t,stack:a,digest:null}}function dl(e,t,n){return{value:e,source:null,stack:null!=n?n:null,digest:null!=t?t:null}}function fl(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}var pl="function"==typeof WeakMap?WeakMap:Map;function hl(e,t,n){(n=Io(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Hs||(Hs=!0,Vs=r),fl(0,t)},n}function ml(e,t,n){(n=Io(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var a=t.value;n.payload=function(){return r(a)},n.callback=function(){fl(0,t)}}var o=e.stateNode;return null!==o&&"function"==typeof o.componentDidCatch&&(n.callback=function(){fl(0,t),"function"!=typeof r&&(null===Ws?Ws=new Set([this]):Ws.add(this));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}function gl(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new pl;var a=new Set;r.set(t,a)}else void 0===(a=r.get(t))&&(a=new Set,r.set(t,a));a.has(n)||(a.add(n),e=Cu.bind(null,e,t,n),t.then(e,e))}function yl(e){do{var t;if((t=13===e.tag)&&(t=null===(t=e.memoizedState)||null!==t.dehydrated),t)return e;e=e.return}while(null!==e);return null}function bl(e,t,n,r,a){return 0==(1&e.mode)?(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,1===n.tag&&(null===n.alternate?n.tag=17:((t=Io(-1,1)).tag=2,Ro(n,t,1))),n.lanes|=1),e):(e.flags|=65536,e.lanes=a,e)}var vl=w.ReactCurrentOwner,wl=!1;function xl(e,t,n,r){t.child=null===e?Xo(t,null,n,r):Ko(t,e.child,n,r)}function kl(e,t,n,r,a){n=n.render;var o=t.ref;return _o(t,a),r=Ei(e,t,n,r,o,a),n=_i(),null===e||wl?(ao&&n&&eo(t),t.flags|=1,xl(e,t,r,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~a,Hl(e,t,a))}function Sl(e,t,n,r,a){if(null===e){var o=n.type;return"function"!=typeof o||Ou(o)||void 0!==o.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Ru(n.type,null,r,t,t.mode,a)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=o,El(e,t,o,r,a))}if(o=e.child,0==(e.lanes&a)){var i=o.memoizedProps;if((n=null!==(n=n.compare)?n:sr)(i,r)&&e.ref===t.ref)return Hl(e,t,a)}return t.flags|=1,(e=Iu(o,r)).ref=t.ref,e.return=t,t.child=e}function El(e,t,n,r,a){if(null!==e){var o=e.memoizedProps;if(sr(o,r)&&e.ref===t.ref){if(wl=!1,t.pendingProps=r=o,0==(e.lanes&a))return t.lanes=e.lanes,Hl(e,t,a);0!=(131072&e.flags)&&(wl=!0)}}return Tl(e,t,n,r,a)}function _l(e,t,n){var r=t.pendingProps,a=r.children,o=null!==e?e.memoizedState:null;if("hidden"===r.mode)if(0==(1&t.mode))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},Ca(Is,Os),Os|=n;else{if(0==(1073741824&n))return e=null!==o?o.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,Ca(Is,Os),Os|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=null!==o?o.baseLanes:n,Ca(Is,Os),Os|=r}else null!==o?(r=o.baseLanes|n,t.memoizedState=null):r=n,Ca(Is,Os),Os|=r;return xl(e,t,a,n),t.child}function Cl(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function Tl(e,t,n,r,a){var o=Aa(n)?ja:La.current;return o=Pa(t,o),_o(t,a),n=Ei(e,t,n,r,o,a),r=_i(),null===e||wl?(ao&&r&&eo(t),t.flags|=1,xl(e,t,n,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~a,Hl(e,t,a))}function Ll(e,t,n,r,a){if(Aa(n)){var o=!0;Fa(t)}else o=!1;if(_o(t,a),null===t.stateNode)Zl(e,t),Zo(t,n,r),Vo(t,n,r,a),r=!0;else if(null===e){var i=t.stateNode,l=t.memoizedProps;i.props=l;var s=i.context,u=n.contextType;"object"==typeof u&&null!==u?u=Co(u):u=Pa(t,u=Aa(n)?ja:La.current);var c=n.getDerivedStateFromProps,d="function"==typeof c||"function"==typeof i.getSnapshotBeforeUpdate;d||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==r||s!==u)&&Ho(t,i,r,u),Po=!1;var f=t.memoizedState;i.state=f,Mo(t,r,i,a),s=t.memoizedState,l!==r||f!==s||Na.current||Po?("function"==typeof c&&($o(t,n,c,r),s=t.memoizedState),(l=Po||Qo(t,n,l,r,f,s,u))?(d||"function"!=typeof i.UNSAFE_componentWillMount&&"function"!=typeof i.componentWillMount||("function"==typeof i.componentWillMount&&i.componentWillMount(),"function"==typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount()),"function"==typeof i.componentDidMount&&(t.flags|=4194308)):("function"==typeof i.componentDidMount&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=s),i.props=r,i.state=s,i.context=u,r=l):("function"==typeof i.componentDidMount&&(t.flags|=4194308),r=!1)}else{i=t.stateNode,Oo(e,t),l=t.memoizedProps,u=t.type===t.elementType?l:yo(t.type,l),i.props=u,d=t.pendingProps,f=i.context,"object"==typeof(s=n.contextType)&&null!==s?s=Co(s):s=Pa(t,s=Aa(n)?ja:La.current);var p=n.getDerivedStateFromProps;(c="function"==typeof p||"function"==typeof i.getSnapshotBeforeUpdate)||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==d||f!==s)&&Ho(t,i,r,s),Po=!1,f=t.memoizedState,i.state=f,Mo(t,r,i,a);var h=t.memoizedState;l!==d||f!==h||Na.current||Po?("function"==typeof p&&($o(t,n,p,r),h=t.memoizedState),(u=Po||Qo(t,n,u,r,f,h,s)||!1)?(c||"function"!=typeof i.UNSAFE_componentWillUpdate&&"function"!=typeof i.componentWillUpdate||("function"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,h,s),"function"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,h,s)),"function"==typeof i.componentDidUpdate&&(t.flags|=4),"function"==typeof i.getSnapshotBeforeUpdate&&(t.flags|=1024)):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=h),i.props=r,i.state=h,i.context=s,r=u):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),r=!1)}return Nl(e,t,n,r,o,a)}function Nl(e,t,n,r,a,o){Cl(e,t);var i=0!=(128&t.flags);if(!r&&!i)return a&&Da(t,n,!1),Hl(e,t,o);r=t.stateNode,vl.current=t;var l=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&i?(t.child=Ko(t,e.child,null,o),t.child=Ko(t,null,l,o)):xl(e,t,l,o),t.memoizedState=r.state,a&&Da(t,n,!0),t.child}function jl(e){var t=e.stateNode;t.pendingContext?Ia(0,t.pendingContext,t.pendingContext!==t.context):t.context&&Ia(0,t.context,!1),ai(e,t.containerInfo)}function Pl(e,t,n,r,a){return ho(),mo(a),t.flags|=256,xl(e,t,n,r),t.child}var Al,Ol,Il,Rl,Fl={dehydrated:null,treeContext:null,retryLane:0};function Dl(e){return{baseLanes:e,cachePool:null,transitions:null}}function Ml(e,t,n){var r,a=t.pendingProps,i=si.current,l=!1,s=0!=(128&t.flags);if((r=s)||(r=(null===e||null!==e.memoizedState)&&0!=(2&i)),r?(l=!0,t.flags&=-129):null!==e&&null===e.memoizedState||(i|=1),Ca(si,1&i),null===e)return uo(t),null!==(e=t.memoizedState)&&null!==(e=e.dehydrated)?(0==(1&t.mode)?t.lanes=1:"$!"===e.data?t.lanes=8:t.lanes=1073741824,null):(s=a.children,e=a.fallback,l?(a=t.mode,l=t.child,s={mode:"hidden",children:s},0==(1&a)&&null!==l?(l.childLanes=0,l.pendingProps=s):l=Du(s,a,0,null),e=Fu(e,a,n,null),l.return=t,e.return=t,l.sibling=e,t.child=l,t.child.memoizedState=Dl(n),t.memoizedState=Fl,e):zl(t,s));if(null!==(i=e.memoizedState)&&null!==(r=i.dehydrated))return function(e,t,n,r,a,i,l){if(n)return 256&t.flags?(t.flags&=-257,Bl(e,t,l,r=dl(Error(o(422))))):null!==t.memoizedState?(t.child=e.child,t.flags|=128,null):(i=r.fallback,a=t.mode,r=Du({mode:"visible",children:r.children},a,0,null),(i=Fu(i,a,l,null)).flags|=2,r.return=t,i.return=t,r.sibling=i,t.child=r,0!=(1&t.mode)&&Ko(t,e.child,null,l),t.child.memoizedState=Dl(l),t.memoizedState=Fl,i);if(0==(1&t.mode))return Bl(e,t,l,null);if("$!"===a.data){if(r=a.nextSibling&&a.nextSibling.dataset)var s=r.dgst;return r=s,Bl(e,t,l,r=dl(i=Error(o(419)),r,void 0))}if(s=0!=(l&e.childLanes),wl||s){if(null!==(r=js)){switch(l&-l){case 4:a=2;break;case 16:a=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:a=32;break;case 536870912:a=268435456;break;default:a=0}0!==(a=0!=(a&(r.suspendedLanes|l))?0:a)&&a!==i.retryLane&&(i.retryLane=a,jo(e,a),ru(r,e,a,-1))}return gu(),Bl(e,t,l,r=dl(Error(o(421))))}return"$?"===a.data?(t.flags|=128,t.child=e.child,t=Lu.bind(null,e),a._reactRetry=t,null):(e=i.treeContext,ro=ua(a.nextSibling),no=t,ao=!0,oo=null,null!==e&&(Wa[qa++]=Ya,Wa[qa++]=Ka,Wa[qa++]=Ga,Ya=e.id,Ka=e.overflow,Ga=t),t=zl(t,r.children),t.flags|=4096,t)}(e,t,s,a,r,i,n);if(l){l=a.fallback,s=t.mode,r=(i=e.child).sibling;var u={mode:"hidden",children:a.children};return 0==(1&s)&&t.child!==i?((a=t.child).childLanes=0,a.pendingProps=u,t.deletions=null):(a=Iu(i,u)).subtreeFlags=14680064&i.subtreeFlags,null!==r?l=Iu(r,l):(l=Fu(l,s,n,null)).flags|=2,l.return=t,a.return=t,a.sibling=l,t.child=a,a=l,l=t.child,s=null===(s=e.child.memoizedState)?Dl(n):{baseLanes:s.baseLanes|n,cachePool:null,transitions:s.transitions},l.memoizedState=s,l.childLanes=e.childLanes&~n,t.memoizedState=Fl,a}return e=(l=e.child).sibling,a=Iu(l,{mode:"visible",children:a.children}),0==(1&t.mode)&&(a.lanes=n),a.return=t,a.sibling=null,null!==e&&(null===(n=t.deletions)?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=a,t.memoizedState=null,a}function zl(e,t){return(t=Du({mode:"visible",children:t},e.mode,0,null)).return=e,e.child=t}function Bl(e,t,n,r){return null!==r&&mo(r),Ko(t,e.child,null,n),(e=zl(t,t.pendingProps.children)).flags|=2,t.memoizedState=null,e}function $l(e,t,n){e.lanes|=t;var r=e.alternate;null!==r&&(r.lanes|=t),Eo(e.return,t,n)}function Ul(e,t,n,r,a){var o=e.memoizedState;null===o?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:a}:(o.isBackwards=t,o.rendering=null,o.renderingStartTime=0,o.last=r,o.tail=n,o.tailMode=a)}function Ql(e,t,n){var r=t.pendingProps,a=r.revealOrder,o=r.tail;if(xl(e,t,r.children,n),0!=(2&(r=si.current)))r=1&r|2,t.flags|=128;else{if(null!==e&&0!=(128&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&$l(e,n,t);else if(19===e.tag)$l(e,n,t);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(Ca(si,r),0==(1&t.mode))t.memoizedState=null;else switch(a){case"forwards":for(n=t.child,a=null;null!==n;)null!==(e=n.alternate)&&null===ui(e)&&(a=n),n=n.sibling;null===(n=a)?(a=t.child,t.child=null):(a=n.sibling,n.sibling=null),Ul(t,!1,a,n,o);break;case"backwards":for(n=null,a=t.child,t.child=null;null!==a;){if(null!==(e=a.alternate)&&null===ui(e)){t.child=a;break}e=a.sibling,a.sibling=n,n=a,a=e}Ul(t,!0,n,null,o);break;case"together":Ul(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function Zl(e,t){0==(1&t.mode)&&null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2)}function Hl(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Ds|=t.lanes,0==(n&t.childLanes))return null;if(null!==e&&t.child!==e.child)throw Error(o(153));if(null!==t.child){for(n=Iu(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Iu(e,e.pendingProps)).return=t;n.sibling=null}return t.child}function Vl(e,t){if(!ao)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function Wl(e){var t=null!==e.alternate&&e.alternate.child===e.child,n=0,r=0;if(t)for(var a=e.child;null!==a;)n|=a.lanes|a.childLanes,r|=14680064&a.subtreeFlags,r|=14680064&a.flags,a.return=e,a=a.sibling;else for(a=e.child;null!==a;)n|=a.lanes|a.childLanes,r|=a.subtreeFlags,r|=a.flags,a.return=e,a=a.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function ql(e,t,n){var r=t.pendingProps;switch(to(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Wl(t),null;case 1:case 17:return Aa(t.type)&&Oa(),Wl(t),null;case 3:return r=t.stateNode,oi(),_a(Na),_a(La),di(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(fo(t)?t.flags|=4:null===e||e.memoizedState.isDehydrated&&0==(256&t.flags)||(t.flags|=1024,null!==oo&&(lu(oo),oo=null))),Ol(e,t),Wl(t),null;case 5:li(t);var a=ri(ni.current);if(n=t.type,null!==e&&null!=t.stateNode)Il(e,t,n,r,a),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(null===t.stateNode)throw Error(o(166));return Wl(t),null}if(e=ri(ei.current),fo(t)){r=t.stateNode,n=t.type;var i=t.memoizedProps;switch(r[fa]=t,r[pa]=i,e=0!=(1&t.mode),n){case"dialog":zr("cancel",r),zr("close",r);break;case"iframe":case"object":case"embed":zr("load",r);break;case"video":case"audio":for(a=0;a<Rr.length;a++)zr(Rr[a],r);break;case"source":zr("error",r);break;case"img":case"image":case"link":zr("error",r),zr("load",r);break;case"details":zr("toggle",r);break;case"input":Y(r,i),zr("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!i.multiple},zr("invalid",r);break;case"textarea":ae(r,i),zr("invalid",r)}for(var s in be(n,i),a=null,i)if(i.hasOwnProperty(s)){var u=i[s];"children"===s?"string"==typeof u?r.textContent!==u&&(!0!==i.suppressHydrationWarning&&Xr(r.textContent,u,e),a=["children",u]):"number"==typeof u&&r.textContent!==""+u&&(!0!==i.suppressHydrationWarning&&Xr(r.textContent,u,e),a=["children",""+u]):l.hasOwnProperty(s)&&null!=u&&"onScroll"===s&&zr("scroll",r)}switch(n){case"input":V(r),J(r,i,!0);break;case"textarea":V(r),ie(r);break;case"select":case"option":break;default:"function"==typeof i.onClick&&(r.onclick=Jr)}r=a,t.updateQueue=r,null!==r&&(t.flags|=4)}else{s=9===a.nodeType?a:a.ownerDocument,"http://www.w3.org/1999/xhtml"===e&&(e=le(n)),"http://www.w3.org/1999/xhtml"===e?"script"===n?((e=s.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=s.createElement(n,{is:r.is}):(e=s.createElement(n),"select"===n&&(s=e,r.multiple?s.multiple=!0:r.size&&(s.size=r.size))):e=s.createElementNS(e,n),e[fa]=t,e[pa]=r,Al(e,t,!1,!1),t.stateNode=e;e:{switch(s=ve(n,r),n){case"dialog":zr("cancel",e),zr("close",e),a=r;break;case"iframe":case"object":case"embed":zr("load",e),a=r;break;case"video":case"audio":for(a=0;a<Rr.length;a++)zr(Rr[a],e);a=r;break;case"source":zr("error",e),a=r;break;case"img":case"image":case"link":zr("error",e),zr("load",e),a=r;break;case"details":zr("toggle",e),a=r;break;case"input":Y(e,r),a=G(e,r),zr("invalid",e);break;case"option":default:a=r;break;case"select":e._wrapperState={wasMultiple:!!r.multiple},a=D({},r,{value:void 0}),zr("invalid",e);break;case"textarea":ae(e,r),a=re(e,r),zr("invalid",e)}for(i in be(n,a),u=a)if(u.hasOwnProperty(i)){var c=u[i];"style"===i?ge(e,c):"dangerouslySetInnerHTML"===i?null!=(c=c?c.__html:void 0)&&de(e,c):"children"===i?"string"==typeof c?("textarea"!==n||""!==c)&&fe(e,c):"number"==typeof c&&fe(e,""+c):"suppressContentEditableWarning"!==i&&"suppressHydrationWarning"!==i&&"autoFocus"!==i&&(l.hasOwnProperty(i)?null!=c&&"onScroll"===i&&zr("scroll",e):null!=c&&v(e,i,c,s))}switch(n){case"input":V(e),J(e,r,!1);break;case"textarea":V(e),ie(e);break;case"option":null!=r.value&&e.setAttribute("value",""+Z(r.value));break;case"select":e.multiple=!!r.multiple,null!=(i=r.value)?ne(e,!!r.multiple,i,!1):null!=r.defaultValue&&ne(e,!!r.multiple,r.defaultValue,!0);break;default:"function"==typeof a.onClick&&(e.onclick=Jr)}switch(n){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break e;case"img":r=!0;break e;default:r=!1}}r&&(t.flags|=4)}null!==t.ref&&(t.flags|=512,t.flags|=2097152)}return Wl(t),null;case 6:if(e&&null!=t.stateNode)Rl(e,t,e.memoizedProps,r);else{if("string"!=typeof r&&null===t.stateNode)throw Error(o(166));if(n=ri(ni.current),ri(ei.current),fo(t)){if(r=t.stateNode,n=t.memoizedProps,r[fa]=t,(i=r.nodeValue!==n)&&null!==(e=no))switch(e.tag){case 3:Xr(r.nodeValue,n,0!=(1&e.mode));break;case 5:!0!==e.memoizedProps.suppressHydrationWarning&&Xr(r.nodeValue,n,0!=(1&e.mode))}i&&(t.flags|=4)}else(r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[fa]=t,t.stateNode=r}return Wl(t),null;case 13:if(_a(si),r=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(ao&&null!==ro&&0!=(1&t.mode)&&0==(128&t.flags))po(),ho(),t.flags|=98560,i=!1;else if(i=fo(t),null!==r&&null!==r.dehydrated){if(null===e){if(!i)throw Error(o(318));if(!(i=null!==(i=t.memoizedState)?i.dehydrated:null))throw Error(o(317));i[fa]=t}else ho(),0==(128&t.flags)&&(t.memoizedState=null),t.flags|=4;Wl(t),i=!1}else null!==oo&&(lu(oo),oo=null),i=!0;if(!i)return 65536&t.flags?t:null}return 0!=(128&t.flags)?(t.lanes=n,t):((r=null!==r)!==(null!==e&&null!==e.memoizedState)&&r&&(t.child.flags|=8192,0!=(1&t.mode)&&(null===e||0!=(1&si.current)?0===Rs&&(Rs=3):gu())),null!==t.updateQueue&&(t.flags|=4),Wl(t),null);case 4:return oi(),Ol(e,t),null===e&&Ur(t.stateNode.containerInfo),Wl(t),null;case 10:return So(t.type._context),Wl(t),null;case 19:if(_a(si),null===(i=t.memoizedState))return Wl(t),null;if(r=0!=(128&t.flags),null===(s=i.rendering))if(r)Vl(i,!1);else{if(0!==Rs||null!==e&&0!=(128&e.flags))for(e=t.child;null!==e;){if(null!==(s=ui(e))){for(t.flags|=128,Vl(i,!1),null!==(r=s.updateQueue)&&(t.updateQueue=r,t.flags|=4),t.subtreeFlags=0,r=n,n=t.child;null!==n;)e=r,(i=n).flags&=14680066,null===(s=i.alternate)?(i.childLanes=0,i.lanes=e,i.child=null,i.subtreeFlags=0,i.memoizedProps=null,i.memoizedState=null,i.updateQueue=null,i.dependencies=null,i.stateNode=null):(i.childLanes=s.childLanes,i.lanes=s.lanes,i.child=s.child,i.subtreeFlags=0,i.deletions=null,i.memoizedProps=s.memoizedProps,i.memoizedState=s.memoizedState,i.updateQueue=s.updateQueue,i.type=s.type,e=s.dependencies,i.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return Ca(si,1&si.current|2),t.child}e=e.sibling}null!==i.tail&&Ke()>Qs&&(t.flags|=128,r=!0,Vl(i,!1),t.lanes=4194304)}else{if(!r)if(null!==(e=ui(s))){if(t.flags|=128,r=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),Vl(i,!0),null===i.tail&&"hidden"===i.tailMode&&!s.alternate&&!ao)return Wl(t),null}else 2*Ke()-i.renderingStartTime>Qs&&1073741824!==n&&(t.flags|=128,r=!0,Vl(i,!1),t.lanes=4194304);i.isBackwards?(s.sibling=t.child,t.child=s):(null!==(n=i.last)?n.sibling=s:t.child=s,i.last=s)}return null!==i.tail?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=Ke(),t.sibling=null,n=si.current,Ca(si,r?1&n|2:1&n),t):(Wl(t),null);case 22:case 23:return fu(),r=null!==t.memoizedState,null!==e&&null!==e.memoizedState!==r&&(t.flags|=8192),r&&0!=(1&t.mode)?0!=(1073741824&Os)&&(Wl(t),6&t.subtreeFlags&&(t.flags|=8192)):Wl(t),null;case 24:case 25:return null}throw Error(o(156,t.tag))}function Gl(e,t){switch(to(t),t.tag){case 1:return Aa(t.type)&&Oa(),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return oi(),_a(Na),_a(La),di(),0!=(65536&(e=t.flags))&&0==(128&e)?(t.flags=-65537&e|128,t):null;case 5:return li(t),null;case 13:if(_a(si),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(o(340));ho()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return _a(si),null;case 4:return oi(),null;case 10:return So(t.type._context),null;case 22:case 23:return fu(),null;default:return null}}Al=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Ol=function(){},Il=function(e,t,n,r){var a=e.memoizedProps;if(a!==r){e=t.stateNode,ri(ei.current);var o,i=null;switch(n){case"input":a=G(e,a),r=G(e,r),i=[];break;case"select":a=D({},a,{value:void 0}),r=D({},r,{value:void 0}),i=[];break;case"textarea":a=re(e,a),r=re(e,r),i=[];break;default:"function"!=typeof a.onClick&&"function"==typeof r.onClick&&(e.onclick=Jr)}for(c in be(n,r),n=null,a)if(!r.hasOwnProperty(c)&&a.hasOwnProperty(c)&&null!=a[c])if("style"===c){var s=a[c];for(o in s)s.hasOwnProperty(o)&&(n||(n={}),n[o]="")}else"dangerouslySetInnerHTML"!==c&&"children"!==c&&"suppressContentEditableWarning"!==c&&"suppressHydrationWarning"!==c&&"autoFocus"!==c&&(l.hasOwnProperty(c)?i||(i=[]):(i=i||[]).push(c,null));for(c in r){var u=r[c];if(s=null!=a?a[c]:void 0,r.hasOwnProperty(c)&&u!==s&&(null!=u||null!=s))if("style"===c)if(s){for(o in s)!s.hasOwnProperty(o)||u&&u.hasOwnProperty(o)||(n||(n={}),n[o]="");for(o in u)u.hasOwnProperty(o)&&s[o]!==u[o]&&(n||(n={}),n[o]=u[o])}else n||(i||(i=[]),i.push(c,n)),n=u;else"dangerouslySetInnerHTML"===c?(u=u?u.__html:void 0,s=s?s.__html:void 0,null!=u&&s!==u&&(i=i||[]).push(c,u)):"children"===c?"string"!=typeof u&&"number"!=typeof u||(i=i||[]).push(c,""+u):"suppressContentEditableWarning"!==c&&"suppressHydrationWarning"!==c&&(l.hasOwnProperty(c)?(null!=u&&"onScroll"===c&&zr("scroll",e),i||s===u||(i=[])):(i=i||[]).push(c,u))}n&&(i=i||[]).push("style",n);var c=i;(t.updateQueue=c)&&(t.flags|=4)}},Rl=function(e,t,n,r){n!==r&&(t.flags|=4)};var Yl=!1,Kl=!1,Xl="function"==typeof WeakSet?WeakSet:Set,Jl=null;function es(e,t){var n=e.ref;if(null!==n)if("function"==typeof n)try{n(null)}catch(r){_u(e,t,r)}else n.current=null}function ts(e,t,n){try{n()}catch(r){_u(e,t,r)}}var ns=!1;function rs(e,t,n){var r=t.updateQueue;if(null!==(r=null!==r?r.lastEffect:null)){var a=r=r.next;do{if((a.tag&e)===e){var o=a.destroy;a.destroy=void 0,void 0!==o&&ts(t,n,o)}a=a.next}while(a!==r)}}function as(e,t){if(null!==(t=null!==(t=t.updateQueue)?t.lastEffect:null)){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function os(e){var t=e.ref;if(null!==t){var n=e.stateNode;e.tag,e=n,"function"==typeof t?t(e):t.current=e}}function is(e){var t=e.alternate;null!==t&&(e.alternate=null,is(t)),e.child=null,e.deletions=null,e.sibling=null,5===e.tag&&(null!==(t=e.stateNode)&&(delete t[fa],delete t[pa],delete t[ma],delete t[ga],delete t[ya])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function ls(e){return 5===e.tag||3===e.tag||4===e.tag}function ss(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||ls(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(2&e.flags)continue e;if(null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function us(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=Jr));else if(4!==r&&null!==(e=e.child))for(us(e,t,n),e=e.sibling;null!==e;)us(e,t,n),e=e.sibling}function cs(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(cs(e,t,n),e=e.sibling;null!==e;)cs(e,t,n),e=e.sibling}var ds=null,fs=!1;function ps(e,t,n){for(n=n.child;null!==n;)hs(e,t,n),n=n.sibling}function hs(e,t,n){if(ot&&"function"==typeof ot.onCommitFiberUnmount)try{ot.onCommitFiberUnmount(at,n)}catch(l){}switch(n.tag){case 5:Kl||es(n,t);case 6:var r=ds,a=fs;ds=null,ps(e,t,n),fs=a,null!==(ds=r)&&(fs?(e=ds,n=n.stateNode,8===e.nodeType?e.parentNode.removeChild(n):e.removeChild(n)):ds.removeChild(n.stateNode));break;case 18:null!==ds&&(fs?(e=ds,n=n.stateNode,8===e.nodeType?sa(e.parentNode,n):1===e.nodeType&&sa(e,n),Ut(e)):sa(ds,n.stateNode));break;case 4:r=ds,a=fs,ds=n.stateNode.containerInfo,fs=!0,ps(e,t,n),ds=r,fs=a;break;case 0:case 11:case 14:case 15:if(!Kl&&(null!==(r=n.updateQueue)&&null!==(r=r.lastEffect))){a=r=r.next;do{var o=a,i=o.destroy;o=o.tag,void 0!==i&&(0!=(2&o)||0!=(4&o))&&ts(n,t,i),a=a.next}while(a!==r)}ps(e,t,n);break;case 1:if(!Kl&&(es(n,t),"function"==typeof(r=n.stateNode).componentWillUnmount))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(l){_u(n,t,l)}ps(e,t,n);break;case 21:ps(e,t,n);break;case 22:1&n.mode?(Kl=(r=Kl)||null!==n.memoizedState,ps(e,t,n),Kl=r):ps(e,t,n);break;default:ps(e,t,n)}}function ms(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new Xl),t.forEach((function(t){var r=Nu.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function gs(e,t){var n=t.deletions;if(null!==n)for(var r=0;r<n.length;r++){var a=n[r];try{var i=e,l=t,s=l;e:for(;null!==s;){switch(s.tag){case 5:ds=s.stateNode,fs=!1;break e;case 3:case 4:ds=s.stateNode.containerInfo,fs=!0;break e}s=s.return}if(null===ds)throw Error(o(160));hs(i,l,a),ds=null,fs=!1;var u=a.alternate;null!==u&&(u.return=null),a.return=null}catch(c){_u(a,t,c)}}if(12854&t.subtreeFlags)for(t=t.child;null!==t;)ys(t,e),t=t.sibling}function ys(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(gs(t,e),bs(e),4&r){try{rs(3,e,e.return),as(3,e)}catch(g){_u(e,e.return,g)}try{rs(5,e,e.return)}catch(g){_u(e,e.return,g)}}break;case 1:gs(t,e),bs(e),512&r&&null!==n&&es(n,n.return);break;case 5:if(gs(t,e),bs(e),512&r&&null!==n&&es(n,n.return),32&e.flags){var a=e.stateNode;try{fe(a,"")}catch(g){_u(e,e.return,g)}}if(4&r&&null!=(a=e.stateNode)){var i=e.memoizedProps,l=null!==n?n.memoizedProps:i,s=e.type,u=e.updateQueue;if(e.updateQueue=null,null!==u)try{"input"===s&&"radio"===i.type&&null!=i.name&&K(a,i),ve(s,l);var c=ve(s,i);for(l=0;l<u.length;l+=2){var d=u[l],f=u[l+1];"style"===d?ge(a,f):"dangerouslySetInnerHTML"===d?de(a,f):"children"===d?fe(a,f):v(a,d,f,c)}switch(s){case"input":X(a,i);break;case"textarea":oe(a,i);break;case"select":var p=a._wrapperState.wasMultiple;a._wrapperState.wasMultiple=!!i.multiple;var h=i.value;null!=h?ne(a,!!i.multiple,h,!1):p!==!!i.multiple&&(null!=i.defaultValue?ne(a,!!i.multiple,i.defaultValue,!0):ne(a,!!i.multiple,i.multiple?[]:"",!1))}a[pa]=i}catch(g){_u(e,e.return,g)}}break;case 6:if(gs(t,e),bs(e),4&r){if(null===e.stateNode)throw Error(o(162));a=e.stateNode,i=e.memoizedProps;try{a.nodeValue=i}catch(g){_u(e,e.return,g)}}break;case 3:if(gs(t,e),bs(e),4&r&&null!==n&&n.memoizedState.isDehydrated)try{Ut(t.containerInfo)}catch(g){_u(e,e.return,g)}break;case 4:default:gs(t,e),bs(e);break;case 13:gs(t,e),bs(e),8192&(a=e.child).flags&&(i=null!==a.memoizedState,a.stateNode.isHidden=i,!i||null!==a.alternate&&null!==a.alternate.memoizedState||(Us=Ke())),4&r&&ms(e);break;case 22:if(d=null!==n&&null!==n.memoizedState,1&e.mode?(Kl=(c=Kl)||d,gs(t,e),Kl=c):gs(t,e),bs(e),8192&r){if(c=null!==e.memoizedState,(e.stateNode.isHidden=c)&&!d&&0!=(1&e.mode))for(Jl=e,d=e.child;null!==d;){for(f=Jl=d;null!==Jl;){switch(h=(p=Jl).child,p.tag){case 0:case 11:case 14:case 15:rs(4,p,p.return);break;case 1:es(p,p.return);var m=p.stateNode;if("function"==typeof m.componentWillUnmount){r=p,n=p.return;try{t=r,m.props=t.memoizedProps,m.state=t.memoizedState,m.componentWillUnmount()}catch(g){_u(r,n,g)}}break;case 5:es(p,p.return);break;case 22:if(null!==p.memoizedState){ks(f);continue}}null!==h?(h.return=p,Jl=h):ks(f)}d=d.sibling}e:for(d=null,f=e;;){if(5===f.tag){if(null===d){d=f;try{a=f.stateNode,c?"function"==typeof(i=a.style).setProperty?i.setProperty("display","none","important"):i.display="none":(s=f.stateNode,l=null!=(u=f.memoizedProps.style)&&u.hasOwnProperty("display")?u.display:null,s.style.display=me("display",l))}catch(g){_u(e,e.return,g)}}}else if(6===f.tag){if(null===d)try{f.stateNode.nodeValue=c?"":f.memoizedProps}catch(g){_u(e,e.return,g)}}else if((22!==f.tag&&23!==f.tag||null===f.memoizedState||f===e)&&null!==f.child){f.child.return=f,f=f.child;continue}if(f===e)break e;for(;null===f.sibling;){if(null===f.return||f.return===e)break e;d===f&&(d=null),f=f.return}d===f&&(d=null),f.sibling.return=f.return,f=f.sibling}}break;case 19:gs(t,e),bs(e),4&r&&ms(e);case 21:}}function bs(e){var t=e.flags;if(2&t){try{e:{for(var n=e.return;null!==n;){if(ls(n)){var r=n;break e}n=n.return}throw Error(o(160))}switch(r.tag){case 5:var a=r.stateNode;32&r.flags&&(fe(a,""),r.flags&=-33),cs(e,ss(e),a);break;case 3:case 4:var i=r.stateNode.containerInfo;us(e,ss(e),i);break;default:throw Error(o(161))}}catch(l){_u(e,e.return,l)}e.flags&=-3}4096&t&&(e.flags&=-4097)}function vs(e,t,n){Jl=e,ws(e,t,n)}function ws(e,t,n){for(var r=0!=(1&e.mode);null!==Jl;){var a=Jl,o=a.child;if(22===a.tag&&r){var i=null!==a.memoizedState||Yl;if(!i){var l=a.alternate,s=null!==l&&null!==l.memoizedState||Kl;l=Yl;var u=Kl;if(Yl=i,(Kl=s)&&!u)for(Jl=a;null!==Jl;)s=(i=Jl).child,22===i.tag&&null!==i.memoizedState?Ss(a):null!==s?(s.return=i,Jl=s):Ss(a);for(;null!==o;)Jl=o,ws(o,t,n),o=o.sibling;Jl=a,Yl=l,Kl=u}xs(e)}else 0!=(8772&a.subtreeFlags)&&null!==o?(o.return=a,Jl=o):xs(e)}}function xs(e){for(;null!==Jl;){var t=Jl;if(0!=(8772&t.flags)){var n=t.alternate;try{if(0!=(8772&t.flags))switch(t.tag){case 0:case 11:case 15:Kl||as(5,t);break;case 1:var r=t.stateNode;if(4&t.flags&&!Kl)if(null===n)r.componentDidMount();else{var a=t.elementType===t.type?n.memoizedProps:yo(t.type,n.memoizedProps);r.componentDidUpdate(a,n.memoizedState,r.__reactInternalSnapshotBeforeUpdate)}var i=t.updateQueue;null!==i&&zo(t,i,r);break;case 3:var l=t.updateQueue;if(null!==l){if(n=null,null!==t.child)switch(t.child.tag){case 5:case 1:n=t.child.stateNode}zo(t,l,n)}break;case 5:var s=t.stateNode;if(null===n&&4&t.flags){n=s;var u=t.memoizedProps;switch(t.type){case"button":case"input":case"select":case"textarea":u.autoFocus&&n.focus();break;case"img":u.src&&(n.src=u.src)}}break;case 6:case 4:case 12:case 19:case 17:case 21:case 22:case 23:case 25:break;case 13:if(null===t.memoizedState){var c=t.alternate;if(null!==c){var d=c.memoizedState;if(null!==d){var f=d.dehydrated;null!==f&&Ut(f)}}}break;default:throw Error(o(163))}Kl||512&t.flags&&os(t)}catch(p){_u(t,t.return,p)}}if(t===e){Jl=null;break}if(null!==(n=t.sibling)){n.return=t.return,Jl=n;break}Jl=t.return}}function ks(e){for(;null!==Jl;){var t=Jl;if(t===e){Jl=null;break}var n=t.sibling;if(null!==n){n.return=t.return,Jl=n;break}Jl=t.return}}function Ss(e){for(;null!==Jl;){var t=Jl;try{switch(t.tag){case 0:case 11:case 15:var n=t.return;try{as(4,t)}catch(s){_u(t,n,s)}break;case 1:var r=t.stateNode;if("function"==typeof r.componentDidMount){var a=t.return;try{r.componentDidMount()}catch(s){_u(t,a,s)}}var o=t.return;try{os(t)}catch(s){_u(t,o,s)}break;case 5:var i=t.return;try{os(t)}catch(s){_u(t,i,s)}}}catch(s){_u(t,t.return,s)}if(t===e){Jl=null;break}var l=t.sibling;if(null!==l){l.return=t.return,Jl=l;break}Jl=t.return}}var Es,_s=Math.ceil,Cs=w.ReactCurrentDispatcher,Ts=w.ReactCurrentOwner,Ls=w.ReactCurrentBatchConfig,Ns=0,js=null,Ps=null,As=0,Os=0,Is=Ea(0),Rs=0,Fs=null,Ds=0,Ms=0,zs=0,Bs=null,$s=null,Us=0,Qs=1/0,Zs=null,Hs=!1,Vs=null,Ws=null,qs=!1,Gs=null,Ys=0,Ks=0,Xs=null,Js=-1,eu=0;function tu(){return 0!=(6&Ns)?Ke():-1!==Js?Js:Js=Ke()}function nu(e){return 0==(1&e.mode)?1:0!=(2&Ns)&&0!==As?As&-As:null!==go.transition?(0===eu&&(eu=mt()),eu):0!==(e=vt)?e:e=void 0===(e=window.event)?16:Yt(e.type)}function ru(e,t,n,r){if(50<Ks)throw Ks=0,Xs=null,Error(o(185));yt(e,n,r),0!=(2&Ns)&&e===js||(e===js&&(0==(2&Ns)&&(Ms|=n),4===Rs&&su(e,As)),au(e,r),1===n&&0===Ns&&0==(1&t.mode)&&(Qs=Ke()+500,za&&Ua()))}function au(e,t){var n=e.callbackNode;!function(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,a=e.expirationTimes,o=e.pendingLanes;0<o;){var i=31-it(o),l=1<<i,s=a[i];-1===s?0!=(l&n)&&0==(l&r)||(a[i]=pt(l,t)):s<=t&&(e.expiredLanes|=l),o&=~l}}(e,t);var r=ft(e,e===js?As:0);if(0===r)null!==n&&qe(n),e.callbackNode=null,e.callbackPriority=0;else if(t=r&-r,e.callbackPriority!==t){if(null!=n&&qe(n),1===t)0===e.tag?function(e){za=!0,$a(e)}(uu.bind(null,e)):$a(uu.bind(null,e)),ia((function(){0==(6&Ns)&&Ua()})),n=null;else{switch(wt(r)){case 1:n=Je;break;case 4:n=et;break;case 16:default:n=tt;break;case 536870912:n=rt}n=ju(n,ou.bind(null,e))}e.callbackPriority=t,e.callbackNode=n}}function ou(e,t){if(Js=-1,eu=0,0!=(6&Ns))throw Error(o(327));var n=e.callbackNode;if(Su()&&e.callbackNode!==n)return null;var r=ft(e,e===js?As:0);if(0===r)return null;if(0!=(30&r)||0!=(r&e.expiredLanes)||t)t=yu(e,r);else{t=r;var a=Ns;Ns|=2;var i=mu();for(js===e&&As===t||(Zs=null,Qs=Ke()+500,pu(e,t));;)try{vu();break}catch(s){hu(e,s)}ko(),Cs.current=i,Ns=a,null!==Ps?t=0:(js=null,As=0,t=Rs)}if(0!==t){if(2===t&&(0!==(a=ht(e))&&(r=a,t=iu(e,a))),1===t)throw n=Fs,pu(e,0),su(e,r),au(e,Ke()),n;if(6===t)su(e,r);else{if(a=e.current.alternate,0==(30&r)&&!function(e){for(var t=e;;){if(16384&t.flags){var n=t.updateQueue;if(null!==n&&null!==(n=n.stores))for(var r=0;r<n.length;r++){var a=n[r],o=a.getSnapshot;a=a.value;try{if(!lr(o(),a))return!1}catch(l){return!1}}}if(n=t.child,16384&t.subtreeFlags&&null!==n)n.return=t,t=n;else{if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}(a)&&(2===(t=yu(e,r))&&(0!==(i=ht(e))&&(r=i,t=iu(e,i))),1===t))throw n=Fs,pu(e,0),su(e,r),au(e,Ke()),n;switch(e.finishedWork=a,e.finishedLanes=r,t){case 0:case 1:throw Error(o(345));case 2:case 5:ku(e,$s,Zs);break;case 3:if(su(e,r),(130023424&r)===r&&10<(t=Us+500-Ke())){if(0!==ft(e,0))break;if(((a=e.suspendedLanes)&r)!==r){tu(),e.pingedLanes|=e.suspendedLanes&a;break}e.timeoutHandle=ra(ku.bind(null,e,$s,Zs),t);break}ku(e,$s,Zs);break;case 4:if(su(e,r),(4194240&r)===r)break;for(t=e.eventTimes,a=-1;0<r;){var l=31-it(r);i=1<<l,(l=t[l])>a&&(a=l),r&=~i}if(r=a,10<(r=(120>(r=Ke()-r)?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*_s(r/1960))-r)){e.timeoutHandle=ra(ku.bind(null,e,$s,Zs),r);break}ku(e,$s,Zs);break;default:throw Error(o(329))}}}return au(e,Ke()),e.callbackNode===n?ou.bind(null,e):null}function iu(e,t){var n=Bs;return e.current.memoizedState.isDehydrated&&(pu(e,t).flags|=256),2!==(e=yu(e,t))&&(t=$s,$s=n,null!==t&&lu(t)),e}function lu(e){null===$s?$s=e:$s.push.apply($s,e)}function su(e,t){for(t&=~zs,t&=~Ms,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-it(t),r=1<<n;e[n]=-1,t&=~r}}function uu(e){if(0!=(6&Ns))throw Error(o(327));Su();var t=ft(e,0);if(0==(1&t))return au(e,Ke()),null;var n=yu(e,t);if(0!==e.tag&&2===n){var r=ht(e);0!==r&&(t=r,n=iu(e,r))}if(1===n)throw n=Fs,pu(e,0),su(e,t),au(e,Ke()),n;if(6===n)throw Error(o(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,ku(e,$s,Zs),au(e,Ke()),null}function cu(e,t){var n=Ns;Ns|=1;try{return e(t)}finally{0===(Ns=n)&&(Qs=Ke()+500,za&&Ua())}}function du(e){null!==Gs&&0===Gs.tag&&0==(6&Ns)&&Su();var t=Ns;Ns|=1;var n=Ls.transition,r=vt;try{if(Ls.transition=null,vt=1,e)return e()}finally{vt=r,Ls.transition=n,0==(6&(Ns=t))&&Ua()}}function fu(){Os=Is.current,_a(Is)}function pu(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,aa(n)),null!==Ps)for(n=Ps.return;null!==n;){var r=n;switch(to(r),r.tag){case 1:null!=(r=r.type.childContextTypes)&&Oa();break;case 3:oi(),_a(Na),_a(La),di();break;case 5:li(r);break;case 4:oi();break;case 13:case 19:_a(si);break;case 10:So(r.type._context);break;case 22:case 23:fu()}n=n.return}if(js=e,Ps=e=Iu(e.current,null),As=Os=t,Rs=0,Fs=null,zs=Ms=Ds=0,$s=Bs=null,null!==To){for(t=0;t<To.length;t++)if(null!==(r=(n=To[t]).interleaved)){n.interleaved=null;var a=r.next,o=n.pending;if(null!==o){var i=o.next;o.next=a,r.next=i}n.pending=r}To=null}return e}function hu(e,t){for(;;){var n=Ps;try{if(ko(),fi.current=il,bi){for(var r=mi.memoizedState;null!==r;){var a=r.queue;null!==a&&(a.pending=null),r=r.next}bi=!1}if(hi=0,yi=gi=mi=null,vi=!1,wi=0,Ts.current=null,null===n||null===n.return){Rs=1,Fs=t,Ps=null;break}e:{var i=e,l=n.return,s=n,u=t;if(t=As,s.flags|=32768,null!==u&&"object"==typeof u&&"function"==typeof u.then){var c=u,d=s,f=d.tag;if(0==(1&d.mode)&&(0===f||11===f||15===f)){var p=d.alternate;p?(d.updateQueue=p.updateQueue,d.memoizedState=p.memoizedState,d.lanes=p.lanes):(d.updateQueue=null,d.memoizedState=null)}var h=yl(l);if(null!==h){h.flags&=-257,bl(h,l,s,0,t),1&h.mode&&gl(i,c,t),u=c;var m=(t=h).updateQueue;if(null===m){var g=new Set;g.add(u),t.updateQueue=g}else m.add(u);break e}if(0==(1&t)){gl(i,c,t),gu();break e}u=Error(o(426))}else if(ao&&1&s.mode){var y=yl(l);if(null!==y){0==(65536&y.flags)&&(y.flags|=256),bl(y,l,s,0,t),mo(cl(u,s));break e}}i=u=cl(u,s),4!==Rs&&(Rs=2),null===Bs?Bs=[i]:Bs.push(i),i=l;do{switch(i.tag){case 3:i.flags|=65536,t&=-t,i.lanes|=t,Do(i,hl(0,u,t));break e;case 1:s=u;var b=i.type,v=i.stateNode;if(0==(128&i.flags)&&("function"==typeof b.getDerivedStateFromError||null!==v&&"function"==typeof v.componentDidCatch&&(null===Ws||!Ws.has(v)))){i.flags|=65536,t&=-t,i.lanes|=t,Do(i,ml(i,s,t));break e}}i=i.return}while(null!==i)}xu(n)}catch(w){t=w,Ps===n&&null!==n&&(Ps=n=n.return);continue}break}}function mu(){var e=Cs.current;return Cs.current=il,null===e?il:e}function gu(){0!==Rs&&3!==Rs&&2!==Rs||(Rs=4),null===js||0==(268435455&Ds)&&0==(268435455&Ms)||su(js,As)}function yu(e,t){var n=Ns;Ns|=2;var r=mu();for(js===e&&As===t||(Zs=null,pu(e,t));;)try{bu();break}catch(a){hu(e,a)}if(ko(),Ns=n,Cs.current=r,null!==Ps)throw Error(o(261));return js=null,As=0,Rs}function bu(){for(;null!==Ps;)wu(Ps)}function vu(){for(;null!==Ps&&!Ge();)wu(Ps)}function wu(e){var t=Es(e.alternate,e,Os);e.memoizedProps=e.pendingProps,null===t?xu(e):Ps=t,Ts.current=null}function xu(e){var t=e;do{var n=t.alternate;if(e=t.return,0==(32768&t.flags)){if(null!==(n=ql(n,t,Os)))return void(Ps=n)}else{if(null!==(n=Gl(n,t)))return n.flags&=32767,void(Ps=n);if(null===e)return Rs=6,void(Ps=null);e.flags|=32768,e.subtreeFlags=0,e.deletions=null}if(null!==(t=t.sibling))return void(Ps=t);Ps=t=e}while(null!==t);0===Rs&&(Rs=5)}function ku(e,t,n){var r=vt,a=Ls.transition;try{Ls.transition=null,vt=1,function(e,t,n,r){do{Su()}while(null!==Gs);if(0!=(6&Ns))throw Error(o(327));n=e.finishedWork;var a=e.finishedLanes;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(o(177));e.callbackNode=null,e.callbackPriority=0;var i=n.lanes|n.childLanes;if(function(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0<n;){var a=31-it(n),o=1<<a;t[a]=0,r[a]=-1,e[a]=-1,n&=~o}}(e,i),e===js&&(Ps=js=null,As=0),0==(2064&n.subtreeFlags)&&0==(2064&n.flags)||qs||(qs=!0,ju(tt,(function(){return Su(),null}))),i=0!=(15990&n.flags),0!=(15990&n.subtreeFlags)||i){i=Ls.transition,Ls.transition=null;var l=vt;vt=1;var s=Ns;Ns|=4,Ts.current=null,function(e,t){if(ea=Zt,pr(e=fr())){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{var r=(n=(n=e.ownerDocument)&&n.defaultView||window).getSelection&&n.getSelection();if(r&&0!==r.rangeCount){n=r.anchorNode;var a=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch(x){n=null;break e}var l=0,s=-1,u=-1,c=0,d=0,f=e,p=null;t:for(;;){for(var h;f!==n||0!==a&&3!==f.nodeType||(s=l+a),f!==i||0!==r&&3!==f.nodeType||(u=l+r),3===f.nodeType&&(l+=f.nodeValue.length),null!==(h=f.firstChild);)p=f,f=h;for(;;){if(f===e)break t;if(p===n&&++c===a&&(s=l),p===i&&++d===r&&(u=l),null!==(h=f.nextSibling))break;p=(f=p).parentNode}f=h}n=-1===s||-1===u?null:{start:s,end:u}}else n=null}n=n||{start:0,end:0}}else n=null;for(ta={focusedElem:e,selectionRange:n},Zt=!1,Jl=t;null!==Jl;)if(e=(t=Jl).child,0!=(1028&t.subtreeFlags)&&null!==e)e.return=t,Jl=e;else for(;null!==Jl;){t=Jl;try{var m=t.alternate;if(0!=(1024&t.flags))switch(t.tag){case 0:case 11:case 15:case 5:case 6:case 4:case 17:break;case 1:if(null!==m){var g=m.memoizedProps,y=m.memoizedState,b=t.stateNode,v=b.getSnapshotBeforeUpdate(t.elementType===t.type?g:yo(t.type,g),y);b.__reactInternalSnapshotBeforeUpdate=v}break;case 3:var w=t.stateNode.containerInfo;1===w.nodeType?w.textContent="":9===w.nodeType&&w.documentElement&&w.removeChild(w.documentElement);break;default:throw Error(o(163))}}catch(x){_u(t,t.return,x)}if(null!==(e=t.sibling)){e.return=t.return,Jl=e;break}Jl=t.return}m=ns,ns=!1}(e,n),ys(n,e),hr(ta),Zt=!!ea,ta=ea=null,e.current=n,vs(n,e,a),Ye(),Ns=s,vt=l,Ls.transition=i}else e.current=n;if(qs&&(qs=!1,Gs=e,Ys=a),i=e.pendingLanes,0===i&&(Ws=null),function(e){if(ot&&"function"==typeof ot.onCommitFiberRoot)try{ot.onCommitFiberRoot(at,e,void 0,128==(128&e.current.flags))}catch(t){}}(n.stateNode),au(e,Ke()),null!==t)for(r=e.onRecoverableError,n=0;n<t.length;n++)a=t[n],r(a.value,{componentStack:a.stack,digest:a.digest});if(Hs)throw Hs=!1,e=Vs,Vs=null,e;0!=(1&Ys)&&0!==e.tag&&Su(),i=e.pendingLanes,0!=(1&i)?e===Xs?Ks++:(Ks=0,Xs=e):Ks=0,Ua()}(e,t,n,r)}finally{Ls.transition=a,vt=r}return null}function Su(){if(null!==Gs){var e=wt(Ys),t=Ls.transition,n=vt;try{if(Ls.transition=null,vt=16>e?16:e,null===Gs)var r=!1;else{if(e=Gs,Gs=null,Ys=0,0!=(6&Ns))throw Error(o(331));var a=Ns;for(Ns|=4,Jl=e.current;null!==Jl;){var i=Jl,l=i.child;if(0!=(16&Jl.flags)){var s=i.deletions;if(null!==s){for(var u=0;u<s.length;u++){var c=s[u];for(Jl=c;null!==Jl;){var d=Jl;switch(d.tag){case 0:case 11:case 15:rs(8,d,i)}var f=d.child;if(null!==f)f.return=d,Jl=f;else for(;null!==Jl;){var p=(d=Jl).sibling,h=d.return;if(is(d),d===c){Jl=null;break}if(null!==p){p.return=h,Jl=p;break}Jl=h}}}var m=i.alternate;if(null!==m){var g=m.child;if(null!==g){m.child=null;do{var y=g.sibling;g.sibling=null,g=y}while(null!==g)}}Jl=i}}if(0!=(2064&i.subtreeFlags)&&null!==l)l.return=i,Jl=l;else e:for(;null!==Jl;){if(0!=(2048&(i=Jl).flags))switch(i.tag){case 0:case 11:case 15:rs(9,i,i.return)}var b=i.sibling;if(null!==b){b.return=i.return,Jl=b;break e}Jl=i.return}}var v=e.current;for(Jl=v;null!==Jl;){var w=(l=Jl).child;if(0!=(2064&l.subtreeFlags)&&null!==w)w.return=l,Jl=w;else e:for(l=v;null!==Jl;){if(0!=(2048&(s=Jl).flags))try{switch(s.tag){case 0:case 11:case 15:as(9,s)}}catch(k){_u(s,s.return,k)}if(s===l){Jl=null;break e}var x=s.sibling;if(null!==x){x.return=s.return,Jl=x;break e}Jl=s.return}}if(Ns=a,Ua(),ot&&"function"==typeof ot.onPostCommitFiberRoot)try{ot.onPostCommitFiberRoot(at,e)}catch(k){}r=!0}return r}finally{vt=n,Ls.transition=t}}return!1}function Eu(e,t,n){e=Ro(e,t=hl(0,t=cl(n,t),1),1),t=tu(),null!==e&&(yt(e,1,t),au(e,t))}function _u(e,t,n){if(3===e.tag)Eu(e,e,n);else for(;null!==t;){if(3===t.tag){Eu(t,e,n);break}if(1===t.tag){var r=t.stateNode;if("function"==typeof t.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Ws||!Ws.has(r))){t=Ro(t,e=ml(t,e=cl(n,e),1),1),e=tu(),null!==t&&(yt(t,1,e),au(t,e));break}}t=t.return}}function Cu(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=tu(),e.pingedLanes|=e.suspendedLanes&n,js===e&&(As&n)===n&&(4===Rs||3===Rs&&(130023424&As)===As&&500>Ke()-Us?pu(e,0):zs|=n),au(e,t)}function Tu(e,t){0===t&&(0==(1&e.mode)?t=1:(t=ct,0==(130023424&(ct<<=1))&&(ct=4194304)));var n=tu();null!==(e=jo(e,t))&&(yt(e,t,n),au(e,n))}function Lu(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),Tu(e,n)}function Nu(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,a=e.memoizedState;null!==a&&(n=a.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(o(314))}null!==r&&r.delete(t),Tu(e,n)}function ju(e,t){return We(e,t)}function Pu(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Au(e,t,n,r){return new Pu(e,t,n,r)}function Ou(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Iu(e,t){var n=e.alternate;return null===n?((n=Au(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=14680064&e.flags,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Ru(e,t,n,r,a,i){var l=2;if(r=e,"function"==typeof e)Ou(e)&&(l=1);else if("string"==typeof e)l=5;else e:switch(e){case S:return Fu(n.children,a,i,t);case E:l=8,a|=8;break;case _:return(e=Au(12,n,t,2|a)).elementType=_,e.lanes=i,e;case N:return(e=Au(13,n,t,a)).elementType=N,e.lanes=i,e;case j:return(e=Au(19,n,t,a)).elementType=j,e.lanes=i,e;case O:return Du(n,a,i,t);default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case C:l=10;break e;case T:l=9;break e;case L:l=11;break e;case P:l=14;break e;case A:l=16,r=null;break e}throw Error(o(130,null==e?e:typeof e,""))}return(t=Au(l,n,t,a)).elementType=e,t.type=r,t.lanes=i,t}function Fu(e,t,n,r){return(e=Au(7,e,r,t)).lanes=n,e}function Du(e,t,n,r){return(e=Au(22,e,r,t)).elementType=O,e.lanes=n,e.stateNode={isHidden:!1},e}function Mu(e,t,n){return(e=Au(6,e,null,t)).lanes=n,e}function zu(e,t,n){return(t=Au(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Bu(e,t,n,r,a){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=gt(0),this.expirationTimes=gt(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=gt(0),this.identifierPrefix=r,this.onRecoverableError=a,this.mutableSourceEagerHydrationData=null}function $u(e,t,n,r,a,o,i,l,s){return e=new Bu(e,t,n,l,s),1===t?(t=1,!0===o&&(t|=8)):t=0,o=Au(3,null,null,t),e.current=o,o.stateNode=e,o.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Ao(o),e}function Uu(e){if(!e)return Ta;e:{if(Ue(e=e._reactInternals)!==e||1!==e.tag)throw Error(o(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(Aa(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(null!==t);throw Error(o(171))}if(1===e.tag){var n=e.type;if(Aa(n))return Ra(e,n,t)}return t}function Qu(e,t,n,r,a,o,i,l,s){return(e=$u(n,r,!0,e,0,o,0,l,s)).context=Uu(null),n=e.current,(o=Io(r=tu(),a=nu(n))).callback=null!=t?t:null,Ro(n,o,a),e.current.lanes=a,yt(e,a,r),au(e,r),e}function Zu(e,t,n,r){var a=t.current,o=tu(),i=nu(a);return n=Uu(n),null===t.context?t.context=n:t.pendingContext=n,(t=Io(o,i)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),null!==(e=Ro(a,t,i))&&(ru(e,a,i,o),Fo(e,a,i)),i}function Hu(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function Vu(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function Wu(e,t){Vu(e,t),(e=e.alternate)&&Vu(e,t)}Es=function(e,t,n){if(null!==e)if(e.memoizedProps!==t.pendingProps||Na.current)wl=!0;else{if(0==(e.lanes&n)&&0==(128&t.flags))return wl=!1,function(e,t,n){switch(t.tag){case 3:jl(t),ho();break;case 5:ii(t);break;case 1:Aa(t.type)&&Fa(t);break;case 4:ai(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,a=t.memoizedProps.value;Ca(bo,r._currentValue),r._currentValue=a;break;case 13:if(null!==(r=t.memoizedState))return null!==r.dehydrated?(Ca(si,1&si.current),t.flags|=128,null):0!=(n&t.child.childLanes)?Ml(e,t,n):(Ca(si,1&si.current),null!==(e=Hl(e,t,n))?e.sibling:null);Ca(si,1&si.current);break;case 19:if(r=0!=(n&t.childLanes),0!=(128&e.flags)){if(r)return Ql(e,t,n);t.flags|=128}if(null!==(a=t.memoizedState)&&(a.rendering=null,a.tail=null,a.lastEffect=null),Ca(si,si.current),r)break;return null;case 22:case 23:return t.lanes=0,_l(e,t,n)}return Hl(e,t,n)}(e,t,n);wl=0!=(131072&e.flags)}else wl=!1,ao&&0!=(1048576&t.flags)&&Ja(t,Va,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Zl(e,t),e=t.pendingProps;var a=Pa(t,La.current);_o(t,n),a=Ei(null,t,r,e,a,n);var i=_i();return t.flags|=1,"object"==typeof a&&null!==a&&"function"==typeof a.render&&void 0===a.$$typeof?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Aa(r)?(i=!0,Fa(t)):i=!1,t.memoizedState=null!==a.state&&void 0!==a.state?a.state:null,Ao(t),a.updater=Uo,t.stateNode=a,a._reactInternals=t,Vo(t,r,e,n),t=Nl(null,t,r,!0,i,n)):(t.tag=0,ao&&i&&eo(t),xl(null,t,a,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Zl(e,t),e=t.pendingProps,r=(a=r._init)(r._payload),t.type=r,a=t.tag=function(e){if("function"==typeof e)return Ou(e)?1:0;if(null!=e){if((e=e.$$typeof)===L)return 11;if(e===P)return 14}return 2}(r),e=yo(r,e),a){case 0:t=Tl(null,t,r,e,n);break e;case 1:t=Ll(null,t,r,e,n);break e;case 11:t=kl(null,t,r,e,n);break e;case 14:t=Sl(null,t,r,yo(r.type,e),n);break e}throw Error(o(306,r,""))}return t;case 0:return r=t.type,a=t.pendingProps,Tl(e,t,r,a=t.elementType===r?a:yo(r,a),n);case 1:return r=t.type,a=t.pendingProps,Ll(e,t,r,a=t.elementType===r?a:yo(r,a),n);case 3:e:{if(jl(t),null===e)throw Error(o(387));r=t.pendingProps,a=(i=t.memoizedState).element,Oo(e,t),Mo(t,r,null,n);var l=t.memoizedState;if(r=l.element,i.isDehydrated){if(i={element:r,isDehydrated:!1,cache:l.cache,pendingSuspenseBoundaries:l.pendingSuspenseBoundaries,transitions:l.transitions},t.updateQueue.baseState=i,t.memoizedState=i,256&t.flags){t=Pl(e,t,r,n,a=cl(Error(o(423)),t));break e}if(r!==a){t=Pl(e,t,r,n,a=cl(Error(o(424)),t));break e}for(ro=ua(t.stateNode.containerInfo.firstChild),no=t,ao=!0,oo=null,n=Xo(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|4096,n=n.sibling}else{if(ho(),r===a){t=Hl(e,t,n);break e}xl(e,t,r,n)}t=t.child}return t;case 5:return ii(t),null===e&&uo(t),r=t.type,a=t.pendingProps,i=null!==e?e.memoizedProps:null,l=a.children,na(r,a)?l=null:null!==i&&na(r,i)&&(t.flags|=32),Cl(e,t),xl(e,t,l,n),t.child;case 6:return null===e&&uo(t),null;case 13:return Ml(e,t,n);case 4:return ai(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=Ko(t,null,r,n):xl(e,t,r,n),t.child;case 11:return r=t.type,a=t.pendingProps,kl(e,t,r,a=t.elementType===r?a:yo(r,a),n);case 7:return xl(e,t,t.pendingProps,n),t.child;case 8:case 12:return xl(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,a=t.pendingProps,i=t.memoizedProps,l=a.value,Ca(bo,r._currentValue),r._currentValue=l,null!==i)if(lr(i.value,l)){if(i.children===a.children&&!Na.current){t=Hl(e,t,n);break e}}else for(null!==(i=t.child)&&(i.return=t);null!==i;){var s=i.dependencies;if(null!==s){l=i.child;for(var u=s.firstContext;null!==u;){if(u.context===r){if(1===i.tag){(u=Io(-1,n&-n)).tag=2;var c=i.updateQueue;if(null!==c){var d=(c=c.shared).pending;null===d?u.next=u:(u.next=d.next,d.next=u),c.pending=u}}i.lanes|=n,null!==(u=i.alternate)&&(u.lanes|=n),Eo(i.return,n,t),s.lanes|=n;break}u=u.next}}else if(10===i.tag)l=i.type===t.type?null:i.child;else if(18===i.tag){if(null===(l=i.return))throw Error(o(341));l.lanes|=n,null!==(s=l.alternate)&&(s.lanes|=n),Eo(l,n,t),l=i.sibling}else l=i.child;if(null!==l)l.return=i;else for(l=i;null!==l;){if(l===t){l=null;break}if(null!==(i=l.sibling)){i.return=l.return,l=i;break}l=l.return}i=l}xl(e,t,a.children,n),t=t.child}return t;case 9:return a=t.type,r=t.pendingProps.children,_o(t,n),r=r(a=Co(a)),t.flags|=1,xl(e,t,r,n),t.child;case 14:return a=yo(r=t.type,t.pendingProps),Sl(e,t,r,a=yo(r.type,a),n);case 15:return El(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:yo(r,a),Zl(e,t),t.tag=1,Aa(r)?(e=!0,Fa(t)):e=!1,_o(t,n),Zo(t,r,a),Vo(t,r,a,n),Nl(null,t,r,!0,e,n);case 19:return Ql(e,t,n);case 22:return _l(e,t,n)}throw Error(o(156,t.tag))};var qu="function"==typeof reportError?reportError:function(e){console.error(e)};function Gu(e){this._internalRoot=e}function Yu(e){this._internalRoot=e}function Ku(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType)}function Xu(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function Ju(){}function ec(e,t,n,r,a){var o=n._reactRootContainer;if(o){var i=o;if("function"==typeof a){var l=a;a=function(){var e=Hu(i);l.call(e)}}Zu(t,i,e,a)}else i=function(e,t,n,r,a){if(a){if("function"==typeof r){var o=r;r=function(){var e=Hu(i);o.call(e)}}var i=Qu(t,r,e,0,null,!1,0,"",Ju);return e._reactRootContainer=i,e[ha]=i.current,Ur(8===e.nodeType?e.parentNode:e),du(),i}for(;a=e.lastChild;)e.removeChild(a);if("function"==typeof r){var l=r;r=function(){var e=Hu(s);l.call(e)}}var s=$u(e,0,!1,null,0,!1,0,"",Ju);return e._reactRootContainer=s,e[ha]=s.current,Ur(8===e.nodeType?e.parentNode:e),du((function(){Zu(t,s,n,r)})),s}(n,t,e,a,r);return Hu(i)}Yu.prototype.render=Gu.prototype.render=function(e){var t=this._internalRoot;if(null===t)throw Error(o(409));Zu(e,t,null,null)},Yu.prototype.unmount=Gu.prototype.unmount=function(){var e=this._internalRoot;if(null!==e){this._internalRoot=null;var t=e.containerInfo;du((function(){Zu(null,e,null,null)})),t[ha]=null}},Yu.prototype.unstable_scheduleHydration=function(e){if(e){var t=Et();e={blockedOn:null,target:e,priority:t};for(var n=0;n<Ot.length&&0!==t&&t<Ot[n].priority;n++);Ot.splice(n,0,e),0===n&&Dt(e)}},xt=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var n=dt(t.pendingLanes);0!==n&&(bt(t,1|n),au(t,Ke()),0==(6&Ns)&&(Qs=Ke()+500,Ua()))}break;case 13:du((function(){var t=jo(e,1);if(null!==t){var n=tu();ru(t,e,1,n)}})),Wu(e,1)}},kt=function(e){if(13===e.tag){var t=jo(e,134217728);if(null!==t)ru(t,e,134217728,tu());Wu(e,134217728)}},St=function(e){if(13===e.tag){var t=nu(e),n=jo(e,t);if(null!==n)ru(n,e,t,tu());Wu(e,t)}},Et=function(){return vt},_t=function(e,t){var n=vt;try{return vt=e,t()}finally{vt=n}},ke=function(e,t,n){switch(t){case"input":if(X(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=xa(r);if(!a)throw Error(o(90));W(r),X(r,a)}}}break;case"textarea":oe(e,n);break;case"select":null!=(t=n.value)&&ne(e,!!n.multiple,t,!1)}},Le=cu,Ne=du;var tc={usingClientEntryPoint:!1,Events:[va,wa,xa,Ce,Te,cu]},nc={findFiberByHostInstance:ba,bundleType:0,version:"18.2.0",rendererPackageName:"react-dom"},rc={bundleType:nc.bundleType,version:nc.version,rendererPackageName:nc.rendererPackageName,rendererConfig:nc.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:w.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=He(e))?null:e.stateNode},findFiberByHostInstance:nc.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.2.0-next-9e3b772b8-20220608"};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var ac=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!ac.isDisabled&&ac.supportsFiber)try{at=ac.inject(rc),ot=ac}catch(ce){}}t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=tc,t.createPortal=function(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!Ku(t))throw Error(o(200));return function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:k,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}(e,t,null,n)},t.createRoot=function(e,t){if(!Ku(e))throw Error(o(299));var n=!1,r="",a=qu;return null!=t&&(!0===t.unstable_strictMode&&(n=!0),void 0!==t.identifierPrefix&&(r=t.identifierPrefix),void 0!==t.onRecoverableError&&(a=t.onRecoverableError)),t=$u(e,1,!1,null,0,n,0,r,a),e[ha]=t.current,Ur(8===e.nodeType?e.parentNode:e),new Gu(t)},t.findDOMNode=function(e){if(null==e)return null;if(1===e.nodeType)return e;var t=e._reactInternals;if(void 0===t){if("function"==typeof e.render)throw Error(o(188));throw e=Object.keys(e).join(","),Error(o(268,e))}return e=null===(e=He(t))?null:e.stateNode},t.flushSync=function(e){return du(e)},t.hydrate=function(e,t,n){if(!Xu(t))throw Error(o(200));return ec(null,e,t,!0,n)},t.hydrateRoot=function(e,t,n){if(!Ku(e))throw Error(o(405));var r=null!=n&&n.hydratedSources||null,a=!1,i="",l=qu;if(null!=n&&(!0===n.unstable_strictMode&&(a=!0),void 0!==n.identifierPrefix&&(i=n.identifierPrefix),void 0!==n.onRecoverableError&&(l=n.onRecoverableError)),t=Qu(t,null,e,1,null!=n?n:null,a,0,i,l),e[ha]=t.current,Ur(e),r)for(e=0;e<r.length;e++)a=(a=(n=r[e])._getVersion)(n._source),null==t.mutableSourceEagerHydrationData?t.mutableSourceEagerHydrationData=[n,a]:t.mutableSourceEagerHydrationData.push(n,a);return new Yu(t)},t.render=function(e,t,n){if(!Xu(t))throw Error(o(200));return ec(null,e,t,!1,n)},t.unmountComponentAtNode=function(e){if(!Xu(e))throw Error(o(40));return!!e._reactRootContainer&&(du((function(){ec(null,null,e,!1,(function(){e._reactRootContainer=null,e[ha]=null}))})),!0)},t.unstable_batchedUpdates=cu,t.unstable_renderSubtreeIntoContainer=function(e,t,n,r){if(!Xu(n))throw Error(o(200));if(null==e||void 0===e._reactInternals)throw Error(o(38));return ec(e,t,n,!1,r)},t.version="18.2.0-next-9e3b772b8-20220608"},745:(e,t,n)=>{"use strict";var r=n(3935);t.createRoot=r.createRoot,t.hydrateRoot=r.hydrateRoot},3935:(e,t,n)=>{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(4448)},9590:e=>{var t="undefined"!=typeof Element,n="function"==typeof Map,r="function"==typeof Set,a="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function o(e,i){if(e===i)return!0;if(e&&i&&"object"==typeof e&&"object"==typeof i){if(e.constructor!==i.constructor)return!1;var l,s,u,c;if(Array.isArray(e)){if((l=e.length)!=i.length)return!1;for(s=l;0!=s--;)if(!o(e[s],i[s]))return!1;return!0}if(n&&e instanceof Map&&i instanceof Map){if(e.size!==i.size)return!1;for(c=e.entries();!(s=c.next()).done;)if(!i.has(s.value[0]))return!1;for(c=e.entries();!(s=c.next()).done;)if(!o(s.value[1],i.get(s.value[0])))return!1;return!0}if(r&&e instanceof Set&&i instanceof Set){if(e.size!==i.size)return!1;for(c=e.entries();!(s=c.next()).done;)if(!i.has(s.value[0]))return!1;return!0}if(a&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(i)){if((l=e.length)!=i.length)return!1;for(s=l;0!=s--;)if(e[s]!==i[s])return!1;return!0}if(e.constructor===RegExp)return e.source===i.source&&e.flags===i.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===i.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===i.toString();if((l=(u=Object.keys(e)).length)!==Object.keys(i).length)return!1;for(s=l;0!=s--;)if(!Object.prototype.hasOwnProperty.call(i,u[s]))return!1;if(t&&e instanceof Element)return!1;for(s=l;0!=s--;)if(("_owner"!==u[s]&&"__v"!==u[s]&&"__o"!==u[s]||!e.$$typeof)&&!o(e[u[s]],i[u[s]]))return!1;return!0}return e!=e&&i!=i}e.exports=function(e,t){try{return o(e,t)}catch(n){if((n.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw n}}},405:(e,t,n)=>{"use strict";n.d(t,{B6:()=>H,ql:()=>J});var r=n(7294),a=n(5697),o=n.n(a),i=n(9590),l=n.n(i),s=n(1143),u=n.n(s),c=n(6774),d=n.n(c);function f(){return f=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},f.apply(this,arguments)}function p(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,h(e,t)}function h(e,t){return h=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},h(e,t)}function m(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)t.indexOf(n=o[r])>=0||(a[n]=e[n]);return a}var g={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title",FRAGMENT:"Symbol(react.fragment)"},y={rel:["amphtml","canonical","alternate"]},b={type:["application/ld+json"]},v={charset:"",name:["robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]},w=Object.keys(g).map((function(e){return g[e]})),x={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},k=Object.keys(x).reduce((function(e,t){return e[x[t]]=t,e}),{}),S=function(e,t){for(var n=e.length-1;n>=0;n-=1){var r=e[n];if(Object.prototype.hasOwnProperty.call(r,t))return r[t]}return null},E=function(e){var t=S(e,g.TITLE),n=S(e,"titleTemplate");if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,(function(){return t}));var r=S(e,"defaultTitle");return t||r||void 0},_=function(e){return S(e,"onChangeClientState")||function(){}},C=function(e,t){return t.filter((function(t){return void 0!==t[e]})).map((function(t){return t[e]})).reduce((function(e,t){return f({},e,t)}),{})},T=function(e,t){return t.filter((function(e){return void 0!==e[g.BASE]})).map((function(e){return e[g.BASE]})).reverse().reduce((function(t,n){if(!t.length)for(var r=Object.keys(n),a=0;a<r.length;a+=1){var o=r[a].toLowerCase();if(-1!==e.indexOf(o)&&n[o])return t.concat(n)}return t}),[])},L=function(e,t,n){var r={};return n.filter((function(t){return!!Array.isArray(t[e])||(void 0!==t[e]&&console&&"function"==typeof console.warn&&console.warn("Helmet: "+e+' should be of type "Array". Instead found type "'+typeof t[e]+'"'),!1)})).map((function(t){return t[e]})).reverse().reduce((function(e,n){var a={};n.filter((function(e){for(var n,o=Object.keys(e),i=0;i<o.length;i+=1){var l=o[i],s=l.toLowerCase();-1===t.indexOf(s)||"rel"===n&&"canonical"===e[n].toLowerCase()||"rel"===s&&"stylesheet"===e[s].toLowerCase()||(n=s),-1===t.indexOf(l)||"innerHTML"!==l&&"cssText"!==l&&"itemprop"!==l||(n=l)}if(!n||!e[n])return!1;var u=e[n].toLowerCase();return r[n]||(r[n]={}),a[n]||(a[n]={}),!r[n][u]&&(a[n][u]=!0,!0)})).reverse().forEach((function(t){return e.push(t)}));for(var o=Object.keys(a),i=0;i<o.length;i+=1){var l=o[i],s=f({},r[l],a[l]);r[l]=s}return e}),[]).reverse()},N=function(e,t){if(Array.isArray(e)&&e.length)for(var n=0;n<e.length;n+=1)if(e[n][t])return!0;return!1},j=function(e){return Array.isArray(e)?e.join(""):e},P=function(e,t){return Array.isArray(e)?e.reduce((function(e,n){return function(e,t){for(var n=Object.keys(e),r=0;r<n.length;r+=1)if(t[n[r]]&&t[n[r]].includes(e[n[r]]))return!0;return!1}(n,t)?e.priority.push(n):e.default.push(n),e}),{priority:[],default:[]}):{default:e}},A=function(e,t){var n;return f({},e,((n={})[t]=void 0,n))},O=[g.NOSCRIPT,g.SCRIPT,g.STYLE],I=function(e,t){return void 0===t&&(t=!0),!1===t?String(e):String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")},R=function(e){return Object.keys(e).reduce((function(t,n){var r=void 0!==e[n]?n+'="'+e[n]+'"':""+n;return t?t+" "+r:r}),"")},F=function(e,t){return void 0===t&&(t={}),Object.keys(e).reduce((function(t,n){return t[x[n]||n]=e[n],t}),t)},D=function(e,t){return t.map((function(t,n){var a,o=((a={key:n})["data-rh"]=!0,a);return Object.keys(t).forEach((function(e){var n=x[e]||e;"innerHTML"===n||"cssText"===n?o.dangerouslySetInnerHTML={__html:t.innerHTML||t.cssText}:o[n]=t[e]})),r.createElement(e,o)}))},M=function(e,t,n){switch(e){case g.TITLE:return{toComponent:function(){return n=t.titleAttributes,(a={key:e=t.title})["data-rh"]=!0,o=F(n,a),[r.createElement(g.TITLE,o,e)];var e,n,a,o},toString:function(){return function(e,t,n,r){var a=R(n),o=j(t);return a?"<"+e+' data-rh="true" '+a+">"+I(o,r)+"</"+e+">":"<"+e+' data-rh="true">'+I(o,r)+"</"+e+">"}(e,t.title,t.titleAttributes,n)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return F(t)},toString:function(){return R(t)}};default:return{toComponent:function(){return D(e,t)},toString:function(){return function(e,t,n){return t.reduce((function(t,r){var a=Object.keys(r).filter((function(e){return!("innerHTML"===e||"cssText"===e)})).reduce((function(e,t){var a=void 0===r[t]?t:t+'="'+I(r[t],n)+'"';return e?e+" "+a:a}),""),o=r.innerHTML||r.cssText||"",i=-1===O.indexOf(e);return t+"<"+e+' data-rh="true" '+a+(i?"/>":">"+o+"</"+e+">")}),"")}(e,t,n)}}}},z=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,a=e.htmlAttributes,o=e.noscriptTags,i=e.styleTags,l=e.title,s=void 0===l?"":l,u=e.titleAttributes,c=e.linkTags,d=e.metaTags,f=e.scriptTags,p={toComponent:function(){},toString:function(){return""}};if(e.prioritizeSeoTags){var h=function(e){var t=e.linkTags,n=e.scriptTags,r=e.encode,a=P(e.metaTags,v),o=P(t,y),i=P(n,b);return{priorityMethods:{toComponent:function(){return[].concat(D(g.META,a.priority),D(g.LINK,o.priority),D(g.SCRIPT,i.priority))},toString:function(){return M(g.META,a.priority,r)+" "+M(g.LINK,o.priority,r)+" "+M(g.SCRIPT,i.priority,r)}},metaTags:a.default,linkTags:o.default,scriptTags:i.default}}(e);p=h.priorityMethods,c=h.linkTags,d=h.metaTags,f=h.scriptTags}return{priority:p,base:M(g.BASE,t,r),bodyAttributes:M("bodyAttributes",n,r),htmlAttributes:M("htmlAttributes",a,r),link:M(g.LINK,c,r),meta:M(g.META,d,r),noscript:M(g.NOSCRIPT,o,r),script:M(g.SCRIPT,f,r),style:M(g.STYLE,i,r),title:M(g.TITLE,{title:s,titleAttributes:u},r)}},B=[],$=function(e,t){var n=this;void 0===t&&(t="undefined"!=typeof document),this.instances=[],this.value={setHelmet:function(e){n.context.helmet=e},helmetInstances:{get:function(){return n.canUseDOM?B:n.instances},add:function(e){(n.canUseDOM?B:n.instances).push(e)},remove:function(e){var t=(n.canUseDOM?B:n.instances).indexOf(e);(n.canUseDOM?B:n.instances).splice(t,1)}}},this.context=e,this.canUseDOM=t,t||(e.helmet=z({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},U=r.createContext({}),Q=o().shape({setHelmet:o().func,helmetInstances:o().shape({get:o().func,add:o().func,remove:o().func})}),Z="undefined"!=typeof document,H=function(e){function t(n){var r;return(r=e.call(this,n)||this).helmetData=new $(r.props.context,t.canUseDOM),r}return p(t,e),t.prototype.render=function(){return r.createElement(U.Provider,{value:this.helmetData.value},this.props.children)},t}(r.Component);H.canUseDOM=Z,H.propTypes={context:o().shape({helmet:o().shape()}),children:o().node.isRequired},H.defaultProps={context:{}},H.displayName="HelmetProvider";var V=function(e,t){var n,r=document.head||document.querySelector(g.HEAD),a=r.querySelectorAll(e+"[data-rh]"),o=[].slice.call(a),i=[];return t&&t.length&&t.forEach((function(t){var r=document.createElement(e);for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&("innerHTML"===a?r.innerHTML=t.innerHTML:"cssText"===a?r.styleSheet?r.styleSheet.cssText=t.cssText:r.appendChild(document.createTextNode(t.cssText)):r.setAttribute(a,void 0===t[a]?"":t[a]));r.setAttribute("data-rh","true"),o.some((function(e,t){return n=t,r.isEqualNode(e)}))?o.splice(n,1):i.push(r)})),o.forEach((function(e){return e.parentNode.removeChild(e)})),i.forEach((function(e){return r.appendChild(e)})),{oldTags:o,newTags:i}},W=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute("data-rh"),a=r?r.split(","):[],o=[].concat(a),i=Object.keys(t),l=0;l<i.length;l+=1){var s=i[l],u=t[s]||"";n.getAttribute(s)!==u&&n.setAttribute(s,u),-1===a.indexOf(s)&&a.push(s);var c=o.indexOf(s);-1!==c&&o.splice(c,1)}for(var d=o.length-1;d>=0;d-=1)n.removeAttribute(o[d]);a.length===o.length?n.removeAttribute("data-rh"):n.getAttribute("data-rh")!==i.join(",")&&n.setAttribute("data-rh",i.join(","))}},q=function(e,t){var n=e.baseTag,r=e.htmlAttributes,a=e.linkTags,o=e.metaTags,i=e.noscriptTags,l=e.onChangeClientState,s=e.scriptTags,u=e.styleTags,c=e.title,d=e.titleAttributes;W(g.BODY,e.bodyAttributes),W(g.HTML,r),function(e,t){void 0!==e&&document.title!==e&&(document.title=j(e)),W(g.TITLE,t)}(c,d);var f={baseTag:V(g.BASE,n),linkTags:V(g.LINK,a),metaTags:V(g.META,o),noscriptTags:V(g.NOSCRIPT,i),scriptTags:V(g.SCRIPT,s),styleTags:V(g.STYLE,u)},p={},h={};Object.keys(f).forEach((function(e){var t=f[e],n=t.newTags,r=t.oldTags;n.length&&(p[e]=n),r.length&&(h[e]=f[e].oldTags)})),t&&t(),l(e,p,h)},G=null,Y=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).rendered=!1,t}p(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!d()(e,this.props)},n.componentDidUpdate=function(){this.emitChange()},n.componentWillUnmount=function(){this.props.context.helmetInstances.remove(this),this.emitChange()},n.emitChange=function(){var e,t,n=this.props.context,r=n.setHelmet,a=null,o=(e=n.helmetInstances.get().map((function(e){var t=f({},e.props);return delete t.context,t})),{baseTag:T(["href"],e),bodyAttributes:C("bodyAttributes",e),defer:S(e,"defer"),encode:S(e,"encodeSpecialCharacters"),htmlAttributes:C("htmlAttributes",e),linkTags:L(g.LINK,["rel","href"],e),metaTags:L(g.META,["name","charset","http-equiv","property","itemprop"],e),noscriptTags:L(g.NOSCRIPT,["innerHTML"],e),onChangeClientState:_(e),scriptTags:L(g.SCRIPT,["src","innerHTML"],e),styleTags:L(g.STYLE,["cssText"],e),title:E(e),titleAttributes:C("titleAttributes",e),prioritizeSeoTags:N(e,"prioritizeSeoTags")});H.canUseDOM?(t=o,G&&cancelAnimationFrame(G),t.defer?G=requestAnimationFrame((function(){q(t,(function(){G=null}))})):(q(t),G=null)):z&&(a=z(o)),r(a)},n.init=function(){this.rendered||(this.rendered=!0,this.props.context.helmetInstances.add(this),this.emitChange())},n.render=function(){return this.init(),null},t}(r.Component);Y.propTypes={context:Q.isRequired},Y.displayName="HelmetDispatcher";var K=["children"],X=["children"],J=function(e){function t(){return e.apply(this,arguments)||this}p(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!l()(A(this.props,"helmetData"),A(e,"helmetData"))},n.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case g.SCRIPT:case g.NOSCRIPT:return{innerHTML:t};case g.STYLE:return{cssText:t};default:throw new Error("<"+e.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")}},n.flattenArrayTypeChildren=function(e){var t,n=e.child,r=e.arrayTypeChildren;return f({},r,((t={})[n.type]=[].concat(r[n.type]||[],[f({},e.newChildProps,this.mapNestedChildrenToProps(n,e.nestedChildren))]),t))},n.mapObjectTypeChildren=function(e){var t,n,r=e.child,a=e.newProps,o=e.newChildProps,i=e.nestedChildren;switch(r.type){case g.TITLE:return f({},a,((t={})[r.type]=i,t.titleAttributes=f({},o),t));case g.BODY:return f({},a,{bodyAttributes:f({},o)});case g.HTML:return f({},a,{htmlAttributes:f({},o)});default:return f({},a,((n={})[r.type]=f({},o),n))}},n.mapArrayTypeChildrenToProps=function(e,t){var n=f({},t);return Object.keys(e).forEach((function(t){var r;n=f({},n,((r={})[t]=e[t],r))})),n},n.warnOnInvalidChildren=function(e,t){return u()(w.some((function(t){return e.type===t})),"function"==typeof e.type?"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.":"Only elements types "+w.join(", ")+" are allowed. Helmet does not support rendering <"+e.type+"> elements. Refer to our API for more information."),u()(!t||"string"==typeof t||Array.isArray(t)&&!t.some((function(e){return"string"!=typeof e})),"Helmet expects a string as a child of <"+e.type+">. Did you forget to wrap your children in braces? ( <"+e.type+">{``}</"+e.type+"> ) Refer to our API for more information."),!0},n.mapChildrenToProps=function(e,t){var n=this,a={};return r.Children.forEach(e,(function(e){if(e&&e.props){var r=e.props,o=r.children,i=m(r,K),l=Object.keys(i).reduce((function(e,t){return e[k[t]||t]=i[t],e}),{}),s=e.type;switch("symbol"==typeof s?s=s.toString():n.warnOnInvalidChildren(e,o),s){case g.FRAGMENT:t=n.mapChildrenToProps(o,t);break;case g.LINK:case g.META:case g.NOSCRIPT:case g.SCRIPT:case g.STYLE:a=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:a,newChildProps:l,nestedChildren:o});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:l,nestedChildren:o})}}})),this.mapArrayTypeChildrenToProps(a,t)},n.render=function(){var e=this.props,t=e.children,n=m(e,X),a=f({},n),o=n.helmetData;return t&&(a=this.mapChildrenToProps(t,a)),!o||o instanceof $||(o=new $(o.context,o.instances)),o?r.createElement(Y,f({},a,{context:o.value,helmetData:void 0})):r.createElement(U.Consumer,null,(function(e){return r.createElement(Y,f({},a,{context:e}))}))},t}(r.Component);J.propTypes={base:o().object,bodyAttributes:o().object,children:o().oneOfType([o().arrayOf(o().node),o().node]),defaultTitle:o().string,defer:o().bool,encodeSpecialCharacters:o().bool,htmlAttributes:o().object,link:o().arrayOf(o().object),meta:o().arrayOf(o().object),noscript:o().arrayOf(o().object),onChangeClientState:o().func,script:o().arrayOf(o().object),style:o().arrayOf(o().object),title:o().string,titleAttributes:o().object,titleTemplate:o().string,prioritizeSeoTags:o().bool,helmetData:o().object},J.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},J.displayName="Helmet"},9921:(e,t)=>{"use strict";var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,a=n?Symbol.for("react.portal"):60106,o=n?Symbol.for("react.fragment"):60107,i=n?Symbol.for("react.strict_mode"):60108,l=n?Symbol.for("react.profiler"):60114,s=n?Symbol.for("react.provider"):60109,u=n?Symbol.for("react.context"):60110,c=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,f=n?Symbol.for("react.forward_ref"):60112,p=n?Symbol.for("react.suspense"):60113,h=n?Symbol.for("react.suspense_list"):60120,m=n?Symbol.for("react.memo"):60115,g=n?Symbol.for("react.lazy"):60116,y=n?Symbol.for("react.block"):60121,b=n?Symbol.for("react.fundamental"):60117,v=n?Symbol.for("react.responder"):60118,w=n?Symbol.for("react.scope"):60119;function x(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case c:case d:case o:case l:case i:case p:return e;default:switch(e=e&&e.$$typeof){case u:case f:case g:case m:case s:return e;default:return t}}case a:return t}}}function k(e){return x(e)===d}t.AsyncMode=c,t.ConcurrentMode=d,t.ContextConsumer=u,t.ContextProvider=s,t.Element=r,t.ForwardRef=f,t.Fragment=o,t.Lazy=g,t.Memo=m,t.Portal=a,t.Profiler=l,t.StrictMode=i,t.Suspense=p,t.isAsyncMode=function(e){return k(e)||x(e)===c},t.isConcurrentMode=k,t.isContextConsumer=function(e){return x(e)===u},t.isContextProvider=function(e){return x(e)===s},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return x(e)===f},t.isFragment=function(e){return x(e)===o},t.isLazy=function(e){return x(e)===g},t.isMemo=function(e){return x(e)===m},t.isPortal=function(e){return x(e)===a},t.isProfiler=function(e){return x(e)===l},t.isStrictMode=function(e){return x(e)===i},t.isSuspense=function(e){return x(e)===p},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===o||e===d||e===l||e===i||e===p||e===h||"object"==typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===m||e.$$typeof===s||e.$$typeof===u||e.$$typeof===f||e.$$typeof===b||e.$$typeof===v||e.$$typeof===w||e.$$typeof===y)},t.typeOf=x},9864:(e,t,n)=>{"use strict";e.exports=n(9921)},8356:(e,t,n)=>{"use strict";function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function a(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(){return i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}var l=n(7294),s=n(5697),u=[],c=[];function d(e){var t=e(),n={loading:!0,loaded:null,error:null};return n.promise=t.then((function(e){return n.loading=!1,n.loaded=e,e})).catch((function(e){throw n.loading=!1,n.error=e,e})),n}function f(e){var t={loading:!1,loaded:{},error:null},n=[];try{Object.keys(e).forEach((function(r){var a=d(e[r]);a.loading?t.loading=!0:(t.loaded[r]=a.loaded,t.error=a.error),n.push(a.promise),a.promise.then((function(e){t.loaded[r]=e})).catch((function(e){t.error=e}))}))}catch(r){t.error=r}return t.promise=Promise.all(n).then((function(e){return t.loading=!1,e})).catch((function(e){throw t.loading=!1,e})),t}function p(e,t){return l.createElement((n=e)&&n.__esModule?n.default:n,t);var n}function h(e,t){var d,f;if(!t.loading)throw new Error("react-loadable requires a `loading` component");var h=i({loader:null,loading:null,delay:200,timeout:null,render:p,webpack:null,modules:null},t),m=null;function g(){return m||(m=e(h.loader)),m.promise}return u.push(g),"function"==typeof h.webpack&&c.push((function(){if((0,h.webpack)().every((function(e){return void 0!==e&&void 0!==n.m[e]})))return g()})),f=d=function(t){function n(n){var r;return o(a(a(r=t.call(this,n)||this)),"retry",(function(){r.setState({error:null,loading:!0,timedOut:!1}),m=e(h.loader),r._loadModule()})),g(),r.state={error:m.error,pastDelay:!1,timedOut:!1,loading:m.loading,loaded:m.loaded},r}r(n,t),n.preload=function(){return g()};var i=n.prototype;return i.UNSAFE_componentWillMount=function(){this._loadModule()},i.componentDidMount=function(){this._mounted=!0},i._loadModule=function(){var e=this;if(this.context.loadable&&Array.isArray(h.modules)&&h.modules.forEach((function(t){e.context.loadable.report(t)})),m.loading){var t=function(t){e._mounted&&e.setState(t)};"number"==typeof h.delay&&(0===h.delay?this.setState({pastDelay:!0}):this._delay=setTimeout((function(){t({pastDelay:!0})}),h.delay)),"number"==typeof h.timeout&&(this._timeout=setTimeout((function(){t({timedOut:!0})}),h.timeout));var n=function(){t({error:m.error,loaded:m.loaded,loading:m.loading}),e._clearTimeouts()};m.promise.then((function(){return n(),null})).catch((function(e){return n(),null}))}},i.componentWillUnmount=function(){this._mounted=!1,this._clearTimeouts()},i._clearTimeouts=function(){clearTimeout(this._delay),clearTimeout(this._timeout)},i.render=function(){return this.state.loading||this.state.error?l.createElement(h.loading,{isLoading:this.state.loading,pastDelay:this.state.pastDelay,timedOut:this.state.timedOut,error:this.state.error,retry:this.retry}):this.state.loaded?h.render(this.state.loaded,this.props):null},n}(l.Component),o(d,"contextTypes",{loadable:s.shape({report:s.func.isRequired})}),f}function m(e){return h(d,e)}m.Map=function(e){if("function"!=typeof e.render)throw new Error("LoadableMap requires a `render(loaded, props)` function");return h(f,e)};var g=function(e){function t(){return e.apply(this,arguments)||this}r(t,e);var n=t.prototype;return n.getChildContext=function(){return{loadable:{report:this.props.report}}},n.render=function(){return l.Children.only(this.props.children)},t}(l.Component);function y(e){for(var t=[];e.length;){var n=e.pop();t.push(n())}return Promise.all(t).then((function(){if(e.length)return y(e)}))}o(g,"propTypes",{report:s.func.isRequired}),o(g,"childContextTypes",{loadable:s.shape({report:s.func.isRequired}).isRequired}),m.Capture=g,m.preloadAll=function(){return new Promise((function(e,t){y(u).then(e,t)}))},m.preloadReady=function(){return new Promise((function(e,t){y(c).then(e,e)}))},e.exports=m},8790:(e,t,n)=>{"use strict";n.d(t,{H:()=>l,f:()=>i});var r=n(6550),a=n(3117),o=n(7294);function i(e,t,n){return void 0===n&&(n=[]),e.some((function(e){var a=e.path?(0,r.LX)(t,e):n.length?n[n.length-1].match:r.F0.computeRootMatch(t);return a&&(n.push({route:e,match:a}),e.routes&&i(e.routes,t,n)),a})),n}function l(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e?o.createElement(r.rs,n,e.map((function(e,n){return o.createElement(r.AW,{key:e.key||n,path:e.path,exact:e.exact,strict:e.strict,render:function(n){return e.render?e.render((0,a.Z)({},n,{},t,{route:e})):o.createElement(e.component,(0,a.Z)({},n,t,{route:e}))}})}))):null}},3727:(e,t,n)=>{"use strict";n.d(t,{OL:()=>v,VK:()=>c,rU:()=>g});var r=n(6550),a=n(144),o=n(7294),i=n(9318),l=n(3117),s=n(102),u=n(8776),c=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).history=(0,i.lX)(t.props),t}return(0,a.Z)(t,e),t.prototype.render=function(){return o.createElement(r.F0,{history:this.history,children:this.props.children})},t}(o.Component);o.Component;var d=function(e,t){return"function"==typeof e?e(t):e},f=function(e,t){return"string"==typeof e?(0,i.ob)(e,null,null,t):e},p=function(e){return e},h=o.forwardRef;void 0===h&&(h=p);var m=h((function(e,t){var n=e.innerRef,r=e.navigate,a=e.onClick,i=(0,s.Z)(e,["innerRef","navigate","onClick"]),u=i.target,c=(0,l.Z)({},i,{onClick:function(e){try{a&&a(e)}catch(t){throw e.preventDefault(),t}e.defaultPrevented||0!==e.button||u&&"_self"!==u||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)||(e.preventDefault(),r())}});return c.ref=p!==h&&t||n,o.createElement("a",c)}));var g=h((function(e,t){var n=e.component,a=void 0===n?m:n,c=e.replace,g=e.to,y=e.innerRef,b=(0,s.Z)(e,["component","replace","to","innerRef"]);return o.createElement(r.s6.Consumer,null,(function(e){e||(0,u.Z)(!1);var n=e.history,r=f(d(g,e.location),e.location),s=r?n.createHref(r):"",m=(0,l.Z)({},b,{href:s,navigate:function(){var t=d(g,e.location),r=(0,i.Ep)(e.location)===(0,i.Ep)(f(t));(c||r?n.replace:n.push)(t)}});return p!==h?m.ref=t||y:m.innerRef=y,o.createElement(a,m)}))})),y=function(e){return e},b=o.forwardRef;void 0===b&&(b=y);var v=b((function(e,t){var n=e["aria-current"],a=void 0===n?"page":n,i=e.activeClassName,c=void 0===i?"active":i,p=e.activeStyle,h=e.className,m=e.exact,v=e.isActive,w=e.location,x=e.sensitive,k=e.strict,S=e.style,E=e.to,_=e.innerRef,C=(0,s.Z)(e,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return o.createElement(r.s6.Consumer,null,(function(e){e||(0,u.Z)(!1);var n=w||e.location,i=f(d(E,n),n),s=i.pathname,T=s&&s.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),L=T?(0,r.LX)(n.pathname,{path:T,exact:m,sensitive:x,strict:k}):null,N=!!(v?v(L,n):L),j="function"==typeof h?h(N):h,P="function"==typeof S?S(N):S;N&&(j=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.filter((function(e){return e})).join(" ")}(j,c),P=(0,l.Z)({},P,p));var A=(0,l.Z)({"aria-current":N&&a||null,className:j,style:P,to:i},C);return y!==b?A.ref=t||_:A.innerRef=_,o.createElement(g,A)}))}))},6550:(e,t,n)=>{"use strict";n.d(t,{AW:()=>E,F0:()=>v,LX:()=>S,TH:()=>O,k6:()=>A,rs:()=>j,s6:()=>b});var r=n(144),a=n(7294),o=n(5697),i=n.n(o),l=n(9318),s=n(8776),u=n(3117),c=n(9658),d=n.n(c),f=(n(9864),n(102)),p=(n(8679),1073741823),h="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:{};var m=a.createContext||function(e,t){var n,o,l="__create-react-context-"+function(){var e="__global_unique_id__";return h[e]=(h[e]||0)+1}()+"__",s=function(e){function n(){for(var t,n,r,a=arguments.length,o=new Array(a),i=0;i<a;i++)o[i]=arguments[i];return(t=e.call.apply(e,[this].concat(o))||this).emitter=(n=t.props.value,r=[],{on:function(e){r.push(e)},off:function(e){r=r.filter((function(t){return t!==e}))},get:function(){return n},set:function(e,t){n=e,r.forEach((function(e){return e(n,t)}))}}),t}(0,r.Z)(n,e);var a=n.prototype;return a.getChildContext=function(){var e;return(e={})[l]=this.emitter,e},a.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var n,r=this.props.value,a=e.value;((o=r)===(i=a)?0!==o||1/o==1/i:o!=o&&i!=i)?n=0:(n="function"==typeof t?t(r,a):p,0!==(n|=0)&&this.emitter.set(e.value,n))}var o,i},a.render=function(){return this.props.children},n}(a.Component);s.childContextTypes=((n={})[l]=i().object.isRequired,n);var u=function(t){function n(){for(var e,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(e=t.call.apply(t,[this].concat(r))||this).observedBits=void 0,e.state={value:e.getValue()},e.onUpdate=function(t,n){0!=((0|e.observedBits)&n)&&e.setState({value:e.getValue()})},e}(0,r.Z)(n,t);var a=n.prototype;return a.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?p:t},a.componentDidMount=function(){this.context[l]&&this.context[l].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?p:e},a.componentWillUnmount=function(){this.context[l]&&this.context[l].off(this.onUpdate)},a.getValue=function(){return this.context[l]?this.context[l].get():e},a.render=function(){return(e=this.props.children,Array.isArray(e)?e[0]:e)(this.state.value);var e},n}(a.Component);return u.contextTypes=((o={})[l]=i().object,o),{Provider:s,Consumer:u}},g=function(e){var t=m();return t.displayName=e,t},y=g("Router-History"),b=g("Router"),v=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={location:t.history.location},n._isMounted=!1,n._pendingLocation=null,t.staticContext||(n.unlisten=t.history.listen((function(e){n._pendingLocation=e}))),n}(0,r.Z)(t,e),t.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var n=t.prototype;return n.componentDidMount=function(){var e=this;this._isMounted=!0,this.unlisten&&this.unlisten(),this.props.staticContext||(this.unlisten=this.props.history.listen((function(t){e._isMounted&&e.setState({location:t})}))),this._pendingLocation&&this.setState({location:this._pendingLocation})},n.componentWillUnmount=function(){this.unlisten&&(this.unlisten(),this._isMounted=!1,this._pendingLocation=null)},n.render=function(){return a.createElement(b.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},a.createElement(y.Provider,{children:this.props.children||null,value:this.props.history}))},t}(a.Component);a.Component;a.Component;var w={},x=1e4,k=0;function S(e,t){void 0===t&&(t={}),("string"==typeof t||Array.isArray(t))&&(t={path:t});var n=t,r=n.path,a=n.exact,o=void 0!==a&&a,i=n.strict,l=void 0!==i&&i,s=n.sensitive,u=void 0!==s&&s;return[].concat(r).reduce((function(t,n){if(!n&&""!==n)return null;if(t)return t;var r=function(e,t){var n=""+t.end+t.strict+t.sensitive,r=w[n]||(w[n]={});if(r[e])return r[e];var a=[],o={regexp:d()(e,a,t),keys:a};return k<x&&(r[e]=o,k++),o}(n,{end:o,strict:l,sensitive:u}),a=r.regexp,i=r.keys,s=a.exec(e);if(!s)return null;var c=s[0],f=s.slice(1),p=e===c;return o&&!p?null:{path:n,url:"/"===n&&""===c?"/":c,isExact:p,params:i.reduce((function(e,t,n){return e[t.name]=f[n],e}),{})}}),null)}var E=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return a.createElement(b.Consumer,null,(function(t){t||(0,s.Z)(!1);var n=e.props.location||t.location,r=e.props.computedMatch?e.props.computedMatch:e.props.path?S(n.pathname,e.props):t.match,o=(0,u.Z)({},t,{location:n,match:r}),i=e.props,l=i.children,c=i.component,d=i.render;return Array.isArray(l)&&function(e){return 0===a.Children.count(e)}(l)&&(l=null),a.createElement(b.Provider,{value:o},o.match?l?"function"==typeof l?l(o):l:c?a.createElement(c,o):d?d(o):null:"function"==typeof l?l(o):null)}))},t}(a.Component);function _(e){return"/"===e.charAt(0)?e:"/"+e}function C(e,t){if(!e)return t;var n=_(e);return 0!==t.pathname.indexOf(n)?t:(0,u.Z)({},t,{pathname:t.pathname.substr(n.length)})}function T(e){return"string"==typeof e?e:(0,l.Ep)(e)}function L(e){return function(){(0,s.Z)(!1)}}function N(){}a.Component;var j=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return a.createElement(b.Consumer,null,(function(t){t||(0,s.Z)(!1);var n,r,o=e.props.location||t.location;return a.Children.forEach(e.props.children,(function(e){if(null==r&&a.isValidElement(e)){n=e;var i=e.props.path||e.props.from;r=i?S(o.pathname,(0,u.Z)({},e.props,{path:i})):t.match}})),r?a.cloneElement(n,{location:o,computedMatch:r}):null}))},t}(a.Component);var P=a.useContext;function A(){return P(y)}function O(){return P(b).location}},9658:(e,t,n)=>{var r=n(5826);e.exports=p,e.exports.parse=o,e.exports.compile=function(e,t){return l(o(e,t),t)},e.exports.tokensToFunction=l,e.exports.tokensToRegExp=f;var a=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function o(e,t){for(var n,r=[],o=0,i=0,l="",c=t&&t.delimiter||"/";null!=(n=a.exec(e));){var d=n[0],f=n[1],p=n.index;if(l+=e.slice(i,p),i=p+d.length,f)l+=f[1];else{var h=e[i],m=n[2],g=n[3],y=n[4],b=n[5],v=n[6],w=n[7];l&&(r.push(l),l="");var x=null!=m&&null!=h&&h!==m,k="+"===v||"*"===v,S="?"===v||"*"===v,E=n[2]||c,_=y||b;r.push({name:g||o++,prefix:m||"",delimiter:E,optional:S,repeat:k,partial:x,asterisk:!!w,pattern:_?u(_):w?".*":"[^"+s(E)+"]+?"})}}return i<e.length&&(l+=e.substr(i)),l&&r.push(l),r}function i(e){return encodeURI(e).replace(/[\/?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function l(e,t){for(var n=new Array(e.length),a=0;a<e.length;a++)"object"==typeof e[a]&&(n[a]=new RegExp("^(?:"+e[a].pattern+")$",d(t)));return function(t,a){for(var o="",l=t||{},s=(a||{}).pretty?i:encodeURIComponent,u=0;u<e.length;u++){var c=e[u];if("string"!=typeof c){var d,f=l[c.name];if(null==f){if(c.optional){c.partial&&(o+=c.prefix);continue}throw new TypeError('Expected "'+c.name+'" to be defined')}if(r(f)){if(!c.repeat)throw new TypeError('Expected "'+c.name+'" to not repeat, but received `'+JSON.stringify(f)+"`");if(0===f.length){if(c.optional)continue;throw new TypeError('Expected "'+c.name+'" to not be empty')}for(var p=0;p<f.length;p++){if(d=s(f[p]),!n[u].test(d))throw new TypeError('Expected all "'+c.name+'" to match "'+c.pattern+'", but received `'+JSON.stringify(d)+"`");o+=(0===p?c.prefix:c.delimiter)+d}}else{if(d=c.asterisk?encodeURI(f).replace(/[?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})):s(f),!n[u].test(d))throw new TypeError('Expected "'+c.name+'" to match "'+c.pattern+'", but received "'+d+'"');o+=c.prefix+d}}else o+=c}return o}}function s(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function u(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function c(e,t){return e.keys=t,e}function d(e){return e&&e.sensitive?"":"i"}function f(e,t,n){r(t)||(n=t||n,t=[]);for(var a=(n=n||{}).strict,o=!1!==n.end,i="",l=0;l<e.length;l++){var u=e[l];if("string"==typeof u)i+=s(u);else{var f=s(u.prefix),p="(?:"+u.pattern+")";t.push(u),u.repeat&&(p+="(?:"+f+p+")*"),i+=p=u.optional?u.partial?f+"("+p+")?":"(?:"+f+"("+p+"))?":f+"("+p+")"}}var h=s(n.delimiter||"/"),m=i.slice(-h.length)===h;return a||(i=(m?i.slice(0,-h.length):i)+"(?:"+h+"(?=$))?"),i+=o?"$":a&&m?"":"(?="+h+"|$)",c(new RegExp("^"+i,d(n)),t)}function p(e,t,n){return r(t)||(n=t||n,t=[]),n=n||{},e instanceof RegExp?function(e,t){var n=e.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)t.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return c(e,t)}(e,t):r(e)?function(e,t,n){for(var r=[],a=0;a<e.length;a++)r.push(p(e[a],t,n).source);return c(new RegExp("(?:"+r.join("|")+")",d(n)),t)}(e,t,n):function(e,t,n){return f(o(e,n),t,n)}(e,t,n)}},5251:(e,t,n)=>{"use strict";var r=n(7294),a=Symbol.for("react.element"),o=Symbol.for("react.fragment"),i=Object.prototype.hasOwnProperty,l=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s={key:!0,ref:!0,__self:!0,__source:!0};function u(e,t,n){var r,o={},u=null,c=null;for(r in void 0!==n&&(u=""+n),void 0!==t.key&&(u=""+t.key),void 0!==t.ref&&(c=t.ref),t)i.call(t,r)&&!s.hasOwnProperty(r)&&(o[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps)void 0===o[r]&&(o[r]=t[r]);return{$$typeof:a,type:e,key:u,ref:c,props:o,_owner:l.current}}t.Fragment=o,t.jsx=u,t.jsxs=u},2408:(e,t)=>{"use strict";var n=Symbol.for("react.element"),r=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),l=Symbol.for("react.provider"),s=Symbol.for("react.context"),u=Symbol.for("react.forward_ref"),c=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),f=Symbol.for("react.lazy"),p=Symbol.iterator;var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},m=Object.assign,g={};function y(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||h}function b(){}function v(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||h}y.prototype.isReactComponent={},y.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},y.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},b.prototype=y.prototype;var w=v.prototype=new b;w.constructor=v,m(w,y.prototype),w.isPureReactComponent=!0;var x=Array.isArray,k=Object.prototype.hasOwnProperty,S={current:null},E={key:!0,ref:!0,__self:!0,__source:!0};function _(e,t,r){var a,o={},i=null,l=null;if(null!=t)for(a in void 0!==t.ref&&(l=t.ref),void 0!==t.key&&(i=""+t.key),t)k.call(t,a)&&!E.hasOwnProperty(a)&&(o[a]=t[a]);var s=arguments.length-2;if(1===s)o.children=r;else if(1<s){for(var u=Array(s),c=0;c<s;c++)u[c]=arguments[c+2];o.children=u}if(e&&e.defaultProps)for(a in s=e.defaultProps)void 0===o[a]&&(o[a]=s[a]);return{$$typeof:n,type:e,key:i,ref:l,props:o,_owner:S.current}}function C(e){return"object"==typeof e&&null!==e&&e.$$typeof===n}var T=/\/+/g;function L(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function N(e,t,a,o,i){var l=typeof e;"undefined"!==l&&"boolean"!==l||(e=null);var s=!1;if(null===e)s=!0;else switch(l){case"string":case"number":s=!0;break;case"object":switch(e.$$typeof){case n:case r:s=!0}}if(s)return i=i(s=e),e=""===o?"."+L(s,0):o,x(i)?(a="",null!=e&&(a=e.replace(T,"$&/")+"/"),N(i,t,a,"",(function(e){return e}))):null!=i&&(C(i)&&(i=function(e,t){return{$$typeof:n,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(i,a+(!i.key||s&&s.key===i.key?"":(""+i.key).replace(T,"$&/")+"/")+e)),t.push(i)),1;if(s=0,o=""===o?".":o+":",x(e))for(var u=0;u<e.length;u++){var c=o+L(l=e[u],u);s+=N(l,t,a,c,i)}else if(c=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=p&&e[p]||e["@@iterator"])?e:null}(e),"function"==typeof c)for(e=c.call(e),u=0;!(l=e.next()).done;)s+=N(l=l.value,t,a,c=o+L(l,u++),i);else if("object"===l)throw t=String(e),Error("Objects are not valid as a React child (found: "+("[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return s}function j(e,t,n){if(null==e)return e;var r=[],a=0;return N(e,r,"","",(function(e){return t.call(n,e,a++)})),r}function P(e){if(-1===e._status){var t=e._result;(t=t()).then((function(t){0!==e._status&&-1!==e._status||(e._status=1,e._result=t)}),(function(t){0!==e._status&&-1!==e._status||(e._status=2,e._result=t)})),-1===e._status&&(e._status=0,e._result=t)}if(1===e._status)return e._result.default;throw e._result}var A={current:null},O={transition:null},I={ReactCurrentDispatcher:A,ReactCurrentBatchConfig:O,ReactCurrentOwner:S};t.Children={map:j,forEach:function(e,t,n){j(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return j(e,(function(){t++})),t},toArray:function(e){return j(e,(function(e){return e}))||[]},only:function(e){if(!C(e))throw Error("React.Children.only expected to receive a single React element child.");return e}},t.Component=y,t.Fragment=a,t.Profiler=i,t.PureComponent=v,t.StrictMode=o,t.Suspense=c,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=I,t.cloneElement=function(e,t,r){if(null==e)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var a=m({},e.props),o=e.key,i=e.ref,l=e._owner;if(null!=t){if(void 0!==t.ref&&(i=t.ref,l=S.current),void 0!==t.key&&(o=""+t.key),e.type&&e.type.defaultProps)var s=e.type.defaultProps;for(u in t)k.call(t,u)&&!E.hasOwnProperty(u)&&(a[u]=void 0===t[u]&&void 0!==s?s[u]:t[u])}var u=arguments.length-2;if(1===u)a.children=r;else if(1<u){s=Array(u);for(var c=0;c<u;c++)s[c]=arguments[c+2];a.children=s}return{$$typeof:n,type:e.type,key:o,ref:i,props:a,_owner:l}},t.createContext=function(e){return(e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null}).Provider={$$typeof:l,_context:e},e.Consumer=e},t.createElement=_,t.createFactory=function(e){var t=_.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:u,render:e}},t.isValidElement=C,t.lazy=function(e){return{$$typeof:f,_payload:{_status:-1,_result:e},_init:P}},t.memo=function(e,t){return{$$typeof:d,type:e,compare:void 0===t?null:t}},t.startTransition=function(e){var t=O.transition;O.transition={};try{e()}finally{O.transition=t}},t.unstable_act=function(){throw Error("act(...) is not supported in production builds of React.")},t.useCallback=function(e,t){return A.current.useCallback(e,t)},t.useContext=function(e){return A.current.useContext(e)},t.useDebugValue=function(){},t.useDeferredValue=function(e){return A.current.useDeferredValue(e)},t.useEffect=function(e,t){return A.current.useEffect(e,t)},t.useId=function(){return A.current.useId()},t.useImperativeHandle=function(e,t,n){return A.current.useImperativeHandle(e,t,n)},t.useInsertionEffect=function(e,t){return A.current.useInsertionEffect(e,t)},t.useLayoutEffect=function(e,t){return A.current.useLayoutEffect(e,t)},t.useMemo=function(e,t){return A.current.useMemo(e,t)},t.useReducer=function(e,t,n){return A.current.useReducer(e,t,n)},t.useRef=function(e){return A.current.useRef(e)},t.useState=function(e){return A.current.useState(e)},t.useSyncExternalStore=function(e,t,n){return A.current.useSyncExternalStore(e,t,n)},t.useTransition=function(){return A.current.useTransition()},t.version="18.2.0"},7294:(e,t,n)=>{"use strict";e.exports=n(2408)},5893:(e,t,n)=>{"use strict";e.exports=n(5251)},53:(e,t)=>{"use strict";function n(e,t){var n=e.length;e.push(t);e:for(;0<n;){var r=n-1>>>1,a=e[r];if(!(0<o(a,t)))break e;e[r]=t,e[n]=a,n=r}}function r(e){return 0===e.length?null:e[0]}function a(e){if(0===e.length)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,a=e.length,i=a>>>1;r<i;){var l=2*(r+1)-1,s=e[l],u=l+1,c=e[u];if(0>o(s,n))u<a&&0>o(c,s)?(e[r]=c,e[u]=n,r=u):(e[r]=s,e[l]=n,r=l);else{if(!(u<a&&0>o(c,n)))break e;e[r]=c,e[u]=n,r=u}}}return t}function o(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if("object"==typeof performance&&"function"==typeof performance.now){var i=performance;t.unstable_now=function(){return i.now()}}else{var l=Date,s=l.now();t.unstable_now=function(){return l.now()-s}}var u=[],c=[],d=1,f=null,p=3,h=!1,m=!1,g=!1,y="function"==typeof setTimeout?setTimeout:null,b="function"==typeof clearTimeout?clearTimeout:null,v="undefined"!=typeof setImmediate?setImmediate:null;function w(e){for(var t=r(c);null!==t;){if(null===t.callback)a(c);else{if(!(t.startTime<=e))break;a(c),t.sortIndex=t.expirationTime,n(u,t)}t=r(c)}}function x(e){if(g=!1,w(e),!m)if(null!==r(u))m=!0,O(k);else{var t=r(c);null!==t&&I(x,t.startTime-e)}}function k(e,n){m=!1,g&&(g=!1,b(C),C=-1),h=!0;var o=p;try{for(w(n),f=r(u);null!==f&&(!(f.expirationTime>n)||e&&!N());){var i=f.callback;if("function"==typeof i){f.callback=null,p=f.priorityLevel;var l=i(f.expirationTime<=n);n=t.unstable_now(),"function"==typeof l?f.callback=l:f===r(u)&&a(u),w(n)}else a(u);f=r(u)}if(null!==f)var s=!0;else{var d=r(c);null!==d&&I(x,d.startTime-n),s=!1}return s}finally{f=null,p=o,h=!1}}"undefined"!=typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);var S,E=!1,_=null,C=-1,T=5,L=-1;function N(){return!(t.unstable_now()-L<T)}function j(){if(null!==_){var e=t.unstable_now();L=e;var n=!0;try{n=_(!0,e)}finally{n?S():(E=!1,_=null)}}else E=!1}if("function"==typeof v)S=function(){v(j)};else if("undefined"!=typeof MessageChannel){var P=new MessageChannel,A=P.port2;P.port1.onmessage=j,S=function(){A.postMessage(null)}}else S=function(){y(j,0)};function O(e){_=e,E||(E=!0,S())}function I(e,n){C=y((function(){e(t.unstable_now())}),n)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){m||h||(m=!0,O(k))},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):T=0<e?Math.floor(1e3/e):5},t.unstable_getCurrentPriorityLevel=function(){return p},t.unstable_getFirstCallbackNode=function(){return r(u)},t.unstable_next=function(e){switch(p){case 1:case 2:case 3:var t=3;break;default:t=p}var n=p;p=t;try{return e()}finally{p=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=function(){},t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=p;p=e;try{return t()}finally{p=n}},t.unstable_scheduleCallback=function(e,a,o){var i=t.unstable_now();switch("object"==typeof o&&null!==o?o="number"==typeof(o=o.delay)&&0<o?i+o:i:o=i,e){case 1:var l=-1;break;case 2:l=250;break;case 5:l=1073741823;break;case 4:l=1e4;break;default:l=5e3}return e={id:d++,callback:a,priorityLevel:e,startTime:o,expirationTime:l=o+l,sortIndex:-1},o>i?(e.sortIndex=o,n(c,e),null===r(u)&&e===r(c)&&(g?(b(C),C=-1):g=!0,I(x,o-i))):(e.sortIndex=l,n(u,e),m||h||(m=!0,O(k))),e},t.unstable_shouldYield=N,t.unstable_wrapCallback=function(e){var t=p;return function(){var n=p;p=t;try{return e.apply(this,arguments)}finally{p=n}}}},3840:(e,t,n)=>{"use strict";e.exports=n(53)},6774:e=>{e.exports=function(e,t,n,r){var a=n?n.call(r,e,t):void 0;if(void 0!==a)return!!a;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var o=Object.keys(e),i=Object.keys(t);if(o.length!==i.length)return!1;for(var l=Object.prototype.hasOwnProperty.bind(t),s=0;s<o.length;s++){var u=o[s];if(!l(u))return!1;var c=e[u],d=t[u];if(!1===(a=n?n.call(r,c,d,u):void 0)||void 0===a&&c!==d)return!1}return!0}},6809:(e,t,n)=>{"use strict";n.d(t,{default:()=>r});const r={title:"CML",tagline:"Getting started",url:"https://dcspark.github.io",baseUrl:"/cardano-multiplatform-lib/",onBrokenLinks:"throw",onBrokenMarkdownLinks:"warn",favicon:"img/favicon.svg",organizationName:"dcSpark",projectName:"cardano-multiplatform-lib",themes:[["/home/sebdev20/Documents/git/cardano-multiplatform-lib/docs/node_modules/@easyops-cn/docusaurus-search-local/dist/server/server/index.js",{docsRouteBasePath:"/",hashed:!0}]],presets:[["classic",{docs:{sidebarPath:"/home/sebdev20/Documents/git/cardano-multiplatform-lib/docs/sidebars.js",routeBasePath:"/"},blog:!1,theme:{customCss:"/home/sebdev20/Documents/git/cardano-multiplatform-lib/docs/src/css/custom.css"}}]],plugins:[null],themeConfig:{navbar:{title:"Cardano Multiplatform Lib Docs",logo:{alt:"dcSpark logo",src:"img/favicon.svg"},items:[{type:"localeDropdown",position:"right",dropdownItemsBefore:[],dropdownItemsAfter:[]}],hideOnScroll:!1},footer:{style:"dark",copyright:"Copyright \xa9 2024 dcSpark. Built with Docusaurus.",links:[]},prism:{theme:{plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},darkTheme:{plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},additionalLanguages:["rust"],magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},colorMode:{defaultMode:"light",disableSwitch:!1,respectPrefersColorScheme:!1},docs:{versionPersistence:"localStorage",sidebar:{hideable:!1,autoCollapseCategories:!1}},metadata:[],tableOfContents:{minHeadingLevel:2,maxHeadingLevel:3}},baseUrlIssueBanner:!0,i18n:{defaultLocale:"en",path:"i18n",locales:["en"],localeConfigs:{}},onDuplicateRoutes:"warn",staticDirectories:["static"],customFields:{},scripts:[],headTags:[],stylesheets:[],clientModules:[],titleDelimiter:"|",noIndex:!1,markdown:{format:"mdx",mermaid:!1,mdx1Compat:{comments:!0,admonitions:!0,headingIds:!0}}}},3117:(e,t,n)=>{"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}n.d(t,{Z:()=>r})},144:(e,t,n)=>{"use strict";function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}function a(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,r(e,t)}n.d(t,{Z:()=>a})},102:(e,t,n)=>{"use strict";function r(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}n.d(t,{Z:()=>r})},512:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=r(e[t]))&&(a&&(a+=" "),a+=n);else for(t in e)e[t]&&(a&&(a+=" "),a+=t);return a}n.d(t,{Z:()=>a});const a=function(){for(var e,t,n=0,a="";n<arguments.length;)(e=arguments[n++])&&(t=r(e))&&(a&&(a+=" "),a+=t);return a}},2573:(e,t,n)=>{"use strict";n.d(t,{p1:()=>T,y$:()=>ee});var r,a,o,i,l,s,u,c=n(7294),d=n(512),f=Object.create,p=Object.defineProperty,h=Object.defineProperties,m=Object.getOwnPropertyDescriptor,g=Object.getOwnPropertyDescriptors,y=Object.getOwnPropertyNames,b=Object.getOwnPropertySymbols,v=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty,x=Object.prototype.propertyIsEnumerable,k=(e,t,n)=>t in e?p(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,S=(e,t)=>{for(var n in t||(t={}))w.call(t,n)&&k(e,n,t[n]);if(b)for(var n of b(t))x.call(t,n)&&k(e,n,t[n]);return e},E=(e,t)=>h(e,g(t)),_=(e,t)=>{var n={};for(var r in e)w.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&b)for(var r of b(e))t.indexOf(r)<0&&x.call(e,r)&&(n[r]=e[r]);return n},C=(r={"../../node_modules/.pnpm/prismjs@1.29.0_patch_hash=vrxx3pzkik6jpmgpayxfjunetu/node_modules/prismjs/prism.js"(e,t){var n=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof a?new a(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++t}),e.__id},clone:function e(t,n){var a,o;switch(n=n||{},r.util.type(t)){case"Object":if(o=r.util.objId(t),n[o])return n[o];for(var i in a={},n[o]=a,t)t.hasOwnProperty(i)&&(a[i]=e(t[i],n));return a;case"Array":return o=r.util.objId(t),n[o]?n[o]:(a=[],n[o]=a,t.forEach((function(t,r){a[r]=e(t,n)})),a);default:return t}},getLanguage:function(t){for(;t;){var n=e.exec(t.className);if(n)return n[1].toLowerCase();t=t.parentElement}return"none"},setLanguage:function(t,n){t.className=t.className.replace(RegExp(e,"gi"),""),t.classList.add("language-"+n)},isActive:function(e,t,n){for(var r="no-"+t;e;){var a=e.classList;if(a.contains(t))return!0;if(a.contains(r))return!1;e=e.parentElement}return!!n}},languages:{plain:n,plaintext:n,text:n,txt:n,extend:function(e,t){var n=r.util.clone(r.languages[e]);for(var a in t)n[a]=t[a];return n},insertBefore:function(e,t,n,a){var o=(a=a||r.languages)[e],i={};for(var l in o)if(o.hasOwnProperty(l)){if(l==t)for(var s in n)n.hasOwnProperty(s)&&(i[s]=n[s]);n.hasOwnProperty(l)||(i[l]=o[l])}var u=a[e];return a[e]=i,r.languages.DFS(r.languages,(function(t,n){n===u&&t!=e&&(this[t]=i)})),i},DFS:function e(t,n,a,o){o=o||{};var i=r.util.objId;for(var l in t)if(t.hasOwnProperty(l)){n.call(t,l,t[l],a||l);var s=t[l],u=r.util.type(s);"Object"!==u||o[i(s)]?"Array"!==u||o[i(s)]||(o[i(s)]=!0,e(s,n,l,o)):(o[i(s)]=!0,e(s,n,null,o))}}},plugins:{},highlight:function(e,t,n){var o={code:e,grammar:t,language:n};if(r.hooks.run("before-tokenize",o),!o.grammar)throw new Error('The language "'+o.language+'" has no grammar.');return o.tokens=r.tokenize(o.code,o.grammar),r.hooks.run("after-tokenize",o),a.stringify(r.util.encode(o.tokens),o.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var r in n)t[r]=n[r];delete t.rest}var a=new l;return s(a,a.head,e),i(e,a,t,a.head,0),function(e){for(var t=[],n=e.head.next;n!==e.tail;)t.push(n.value),n=n.next;return t}(a)},hooks:{all:{},add:function(e,t){var n=r.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=r.hooks.all[e];if(n&&n.length)for(var a,o=0;a=n[o++];)a(t)}},Token:a};function a(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length}function o(e,t,n,r){e.lastIndex=t;var a=e.exec(n);if(a&&r&&a[1]){var o=a[1].length;a.index+=o,a[0]=a[0].slice(o)}return a}function i(e,t,n,l,c,d){for(var f in n)if(n.hasOwnProperty(f)&&n[f]){var p=n[f];p=Array.isArray(p)?p:[p];for(var h=0;h<p.length;++h){if(d&&d.cause==f+","+h)return;var m=p[h],g=m.inside,y=!!m.lookbehind,b=!!m.greedy,v=m.alias;if(b&&!m.pattern.global){var w=m.pattern.toString().match(/[imsuy]*$/)[0];m.pattern=RegExp(m.pattern.source,w+"g")}for(var x=m.pattern||m,k=l.next,S=c;k!==t.tail&&!(d&&S>=d.reach);S+=k.value.length,k=k.next){var E=k.value;if(t.length>e.length)return;if(!(E instanceof a)){var _,C=1;if(b){if(!(_=o(x,S,e,y))||_.index>=e.length)break;var T=_.index,L=_.index+_[0].length,N=S;for(N+=k.value.length;T>=N;)N+=(k=k.next).value.length;if(S=N-=k.value.length,k.value instanceof a)continue;for(var j=k;j!==t.tail&&(N<L||"string"==typeof j.value);j=j.next)C++,N+=j.value.length;C--,E=e.slice(S,N),_.index-=S}else if(!(_=o(x,0,E,y)))continue;T=_.index;var P=_[0],A=E.slice(0,T),O=E.slice(T+P.length),I=S+E.length;d&&I>d.reach&&(d.reach=I);var R=k.prev;if(A&&(R=s(t,R,A),S+=A.length),u(t,R,C),k=s(t,R,new a(f,g?r.tokenize(P,g):P,v,P)),O&&s(t,k,O),C>1){var F={cause:f+","+h,reach:I};i(e,t,n,k.prev,S,F),d&&F.reach>d.reach&&(d.reach=F.reach)}}}}}}function l(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function s(e,t,n){var r=t.next,a={value:n,prev:t,next:r};return t.next=a,r.prev=a,e.length++,a}function u(e,t,n){for(var r=t.next,a=0;a<n&&r!==e.tail;a++)r=r.next;t.next=r,r.prev=t,e.length-=a}return a.stringify=function e(t,n){if("string"==typeof t)return t;if(Array.isArray(t)){var a="";return t.forEach((function(t){a+=e(t,n)})),a}var o={type:t.type,content:e(t.content,n),tag:"span",classes:["token",t.type],attributes:{},language:n},i=t.alias;i&&(Array.isArray(i)?Array.prototype.push.apply(o.classes,i):o.classes.push(i)),r.hooks.run("wrap",o);var l="";for(var s in o.attributes)l+=" "+s+'="'+(o.attributes[s]||"").replace(/"/g,""")+'"';return"<"+o.tag+' class="'+o.classes.join(" ")+'"'+l+">"+o.content+"</"+o.tag+">"},r}();t.exports=n,n.default=n}},function(){return a||(0,r[y(r)[0]])((a={exports:{}}).exports,a),a.exports}),T=((e,t,n)=>(n=null!=e?f(v(e)):{},((e,t,n,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of y(t))w.call(e,a)||a===n||p(e,a,{get:()=>t[a],enumerable:!(r=m(t,a))||r.enumerable});return e})(!t&&e&&e.__esModule?n:p(n,"default",{value:e,enumerable:!0}),e)))(C());T.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},T.languages.markup.tag.inside["attr-value"].inside.entity=T.languages.markup.entity,T.languages.markup.doctype.inside["internal-subset"].inside=T.languages.markup,T.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(T.languages.markup.tag,"addInlined",{value:function(e,t){var n;(t=((n=((n={})["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:T.languages[t]},n.cdata=/^<!\[CDATA\[|\]\]>$/i,{"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:n}}))["language-"+t]={pattern:/[\s\S]+/,inside:T.languages[t]},{}))[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:n},T.languages.insertBefore("markup","cdata",t)}}),Object.defineProperty(T.languages.markup.tag,"addAttribute",{value:function(e,t){T.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:T.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),T.languages.html=T.languages.markup,T.languages.mathml=T.languages.markup,T.languages.svg=T.languages.markup,T.languages.xml=T.languages.extend("markup",{}),T.languages.ssml=T.languages.xml,T.languages.atom=T.languages.xml,T.languages.rss=T.languages.xml,o=T,i={pattern:/\\[\\(){}[\]^$+*?|.]/,alias:"escape"},s="(?:[^\\\\-]|"+(l=/\\(?:x[\da-fA-F]{2}|u[\da-fA-F]{4}|u\{[\da-fA-F]+\}|0[0-7]{0,2}|[123][0-7]{2}|c[a-zA-Z]|.)/).source+")",s=RegExp(s+"-"+s),u={pattern:/(<|')[^<>']+(?=[>']$)/,lookbehind:!0,alias:"variable"},o.languages.regex={"char-class":{pattern:/((?:^|[^\\])(?:\\\\)*)\[(?:[^\\\]]|\\[\s\S])*\]/,lookbehind:!0,inside:{"char-class-negation":{pattern:/(^\[)\^/,lookbehind:!0,alias:"operator"},"char-class-punctuation":{pattern:/^\[|\]$/,alias:"punctuation"},range:{pattern:s,inside:{escape:l,"range-punctuation":{pattern:/-/,alias:"operator"}}},"special-escape":i,"char-set":{pattern:/\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},escape:l}},"special-escape":i,"char-set":{pattern:/\.|\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},backreference:[{pattern:/\\(?![123][0-7]{2})[1-9]/,alias:"keyword"},{pattern:/\\k<[^<>']+>/,alias:"keyword",inside:{"group-name":u}}],anchor:{pattern:/[$^]|\\[ABbGZz]/,alias:"function"},escape:l,group:[{pattern:/\((?:\?(?:<[^<>']+>|'[^<>']+'|[>:]|<?[=!]|[idmnsuxU]+(?:-[idmnsuxU]+)?:?))?/,alias:"punctuation",inside:{"group-name":u}},{pattern:/\)/,alias:"punctuation"}],quantifier:{pattern:/(?:[+*?]|\{\d+(?:,\d*)?\})[?+]?/,alias:"number"},alternation:{pattern:/\|/,alias:"keyword"}},T.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},T.languages.javascript=T.languages.extend("clike",{"class-name":[T.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),T.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,T.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:T.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:T.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:T.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:T.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:T.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),T.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:T.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),T.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),T.languages.markup&&(T.languages.markup.tag.addInlined("script","javascript"),T.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),T.languages.js=T.languages.javascript,T.languages.actionscript=T.languages.extend("javascript",{keyword:/\b(?:as|break|case|catch|class|const|default|delete|do|dynamic|each|else|extends|final|finally|for|function|get|if|implements|import|in|include|instanceof|interface|internal|is|namespace|native|new|null|override|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|use|var|void|while|with)\b/,operator:/\+\+|--|(?:[+\-*\/%^]|&&?|\|\|?|<<?|>>?>?|[!=]=?)=?|[~?@]/}),T.languages.actionscript["class-name"].alias="function",delete T.languages.actionscript.parameter,delete T.languages.actionscript["literal-property"],T.languages.markup&&T.languages.insertBefore("actionscript","string",{xml:{pattern:/(^|[^.])<\/?\w+(?:\s+[^\s>\/=]+=("|')(?:\\[\s\S]|(?!\2)[^\\])*\2)*\s*\/?>/,lookbehind:!0,inside:T.languages.markup}}),function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(T),function(e){var t=e.languages.javadoclike={parameter:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*@(?:arg|arguments|param)\s+)\w+/m,lookbehind:!0},keyword:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*|\{)@[a-z][a-zA-Z-]+\b/m,lookbehind:!0},punctuation:/[{}]/};Object.defineProperty(t,"addSupport",{value:function(t,n){(t="string"==typeof t?[t]:t).forEach((function(t){var r=function(e){e.inside||(e.inside={}),e.inside.rest=n},a="doc-comment";if(o=e.languages[t]){var o,i=o[a];if((i=i||(o=e.languages.insertBefore(t,"comment",{"doc-comment":{pattern:/(^|[^\\])\/\*\*[^/][\s\S]*?(?:\*\/|$)/,lookbehind:!0,alias:"comment"}}))[a])instanceof RegExp&&(i=o[a]={pattern:i}),Array.isArray(i))for(var l=0,s=i.length;l<s;l++)i[l]instanceof RegExp&&(i[l]={pattern:i[l]}),r(i[l]);else r(i)}}))}}),t.addSupport(["java","javascript","php"],t)}(T),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;(t=(e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+t.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css,e.languages.markup))&&(t.tag.addInlined("style","css"),t.tag.addAttribute("style","css"))}(T),function(e){var t=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,n=(t=(e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+t.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[t,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}}),{pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0}),{pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0});e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|RebeccaPurple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,number:n})}(T),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",a=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-]<PLAIN>)(?:[ \t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(/<PLAIN>/g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),o=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<<prop>>[ \t]+)?)(?:<<value>>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<value>>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<<prop>>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<<prop>>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<<prop>>[ \t]+)?)<<key>>(?=\s*:\s)/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<key>>/g,(function(){return"(?:"+a+"|"+o+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(o),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(T),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(/<inner>/g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,a=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),o=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source,i=(e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+a+o+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+o+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+o+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\b|\*\*(?:(?!\*)<inner>|\*(?:(?!\*)<inner>)+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\b|\*(?:(?!\*)<inner>|\*\*(?:(?!\*)<inner>)+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~)<inner>)+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\])<inner>)+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\])<inner>)+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n<r;n++){var a,o=t[n];"code"!==o.type?e(o.content):(a=o.content[1],o=o.content[3],a&&o&&"code-language"===a.type&&"code-block"===o.type&&"string"==typeof a.content&&(a=a.content.replace(/\b#/g,"sharp").replace(/\b\+\+/g,"pp"),a="language-"+(a=(/[a-z][\w-]*/i.exec(a)||[""])[0].toLowerCase()),o.alias?"string"==typeof o.alias?o.alias=[o.alias,a]:o.alias.push(a):o.alias=[a]))}}(e.tokens)})),e.hooks.add("wrap",(function(t){if("code-block"===t.type){for(var n="",r=0,a=t.classes.length;r<a;r++){var o=t.classes[r];if(o=/language-(.+)/.exec(o)){n=o[1];break}}var u,c=e.languages[n];c?t.content=e.highlight(t.content.replace(i,"").replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,(function(e,t){var n;return"#"===(t=t.toLowerCase())[0]?(n="x"===t[1]?parseInt(t.slice(2),16):Number(t.slice(1)),s(n)):l[t]||e})),c,n):n&&"none"!==n&&e.plugins.autoloader&&(u="md-"+(new Date).valueOf()+"-"+Math.floor(1e16*Math.random()),t.attributes.id=u,e.plugins.autoloader.loadLanguages(n,(function(){var t=document.getElementById(u);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[n],n))})))}})),RegExp(e.languages.markup.tag.pattern.source,"gi")),l={amp:"&",lt:"<",gt:">",quot:'"'},s=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(T),T.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:T.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},T.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n<t.length;){var r=t[n++];if("keyword"===r.type&&"mutation"===r.content){var a=[];if(d(["definition-mutation","punctuation"])&&"("===c(1).content){n+=2;var o=f(/^\($/,/^\)$/);if(-1===o)continue;for(;n<o;n++){var i=c(0);"variable"===i.type&&(p(i,"variable-input"),a.push(i.content))}n=o+1}if(d(["punctuation","property-query"])&&"{"===c(0).content&&(n++,p(c(0),"property-mutation"),0<a.length)){var l=f(/^\{$/,/^\}$/);if(-1!==l)for(var s=n;s<l;s++){var u=t[s];"variable"===u.type&&0<=a.indexOf(u.content)&&p(u,"variable-input")}}}}function c(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n<e.length;n++){var r=c(n+t);if(!r||r.type!==e[n])return}return 1}function f(e,r){for(var a=1,o=n;o<t.length;o++){var i=t[o],l=i.content;if("punctuation"===i.type&&"string"==typeof l)if(e.test(l))a++;else if(r.test(l)&&0==--a)return o}return-1}function p(e,t){var n=e.alias;n?Array.isArray(n)||(e.alias=n=[n]):e.alias=n=[],n.push(t)}})),T.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:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,a=r.inside["interpolation-punctuation"],o=r.pattern.source;function i(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function l(t,n,r){return t={code:t,grammar:n,language:r},e.hooks.run("before-tokenize",t),t.tokens=e.tokenize(t.code,t.grammar),e.hooks.run("after-tokenize",t),t.tokens}function s(t,n,i){var s=e.tokenize(t,{interpolation:{pattern:RegExp(o),lookbehind:!0}}),u=0,c={},d=(s=l(s.map((function(e){if("string"==typeof e)return e;var n,r;for(e=e.content;-1!==t.indexOf((r=u++,n="___"+i.toUpperCase()+"_"+r+"___")););return c[n]=e,n})).join(""),n,i),Object.keys(c));return u=0,function t(n){for(var o=0;o<n.length;o++){if(u>=d.length)return;var i,s,f,p,h,m,g,y=n[o];"string"==typeof y||"string"==typeof y.content?(i=d[u],-1!==(g=(m="string"==typeof y?y:y.content).indexOf(i))&&(++u,s=m.substring(0,g),h=c[i],f=void 0,(p={})["interpolation-punctuation"]=a,3===(p=e.tokenize(h,p)).length&&((f=[1,1]).push.apply(f,l(p[1],e.languages.javascript,"javascript")),p.splice.apply(p,f)),f=new e.Token("interpolation",p,r.alias,h),p=m.substring(g+i.length),h=[],s&&h.push(s),h.push(f),p&&(t(m=[p]),h.push.apply(h,m)),"string"==typeof y?(n.splice.apply(n,[o,1].concat(h)),o+=h.length-1):y.content=h)):(g=y.content,Array.isArray(g)?t(g):t([g]))}}(s),new e.Token(i,s,"language-"+i,t)}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var u={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function c(e){return"string"==typeof e?e:Array.isArray(e)?e.map(c).join(""):c(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in u&&function t(n){for(var r=0,a=n.length;r<a;r++){var o,i,l,u=n[r];"string"!=typeof u&&(o=u.content,Array.isArray(o)?"template-string"===u.type?(u=o[1],3===o.length&&"string"!=typeof u&&"embedded-code"===u.type&&(i=c(u),u=u.alias,u=Array.isArray(u)?u[0]:u,l=e.languages[u])&&(o[1]=s(i,l,u))):t(o):"string"!=typeof o&&t([o]))}}(t.tokens)}))}(T),function(e){e.languages.typescript=e.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(T),function(e){var t=e.languages.javascript,n=/\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})+\}/.source,r="(@(?:arg|argument|param|property)\\s+(?:"+n+"\\s+)?)";e.languages.jsdoc=e.languages.extend("javadoclike",{parameter:{pattern:RegExp(r+/(?:(?!\s)[$\w\xA0-\uFFFF.])+(?=\s|$)/.source),lookbehind:!0,inside:{punctuation:/\./}}}),e.languages.insertBefore("jsdoc","keyword",{"optional-parameter":{pattern:RegExp(r+/\[(?:(?!\s)[$\w\xA0-\uFFFF.])+(?:=[^[\]]+)?\](?=\s|$)/.source),lookbehind:!0,inside:{parameter:{pattern:/(^\[)[$\w\xA0-\uFFFF\.]+/,lookbehind:!0,inside:{punctuation:/\./}},code:{pattern:/(=)[\s\S]*(?=\]$)/,lookbehind:!0,inside:t,alias:"language-javascript"},punctuation:/[=[\]]/}},"class-name":[{pattern:RegExp(/(@(?:augments|class|extends|interface|memberof!?|template|this|typedef)\s+(?:<TYPE>\s+)?)[A-Z]\w*(?:\.[A-Z]\w*)*/.source.replace(/<TYPE>/g,(function(){return n}))),lookbehind:!0,inside:{punctuation:/\./}},{pattern:RegExp("(@[a-z]+\\s+)"+n),lookbehind:!0,inside:{string:t.string,number:t.number,boolean:t.boolean,keyword:e.languages.typescript.keyword,operator:/=>|\.\.\.|[&|?:*]/,punctuation:/[.,;=<>{}()[\]]/}}],example:{pattern:/(@example\s+(?!\s))(?:[^@\s]|\s+(?!\s))+?(?=\s*(?:\*\s*)?(?:@\w|\*\/))/,lookbehind:!0,inside:{code:{pattern:/^([\t ]*(?:\*\s*)?)\S.*$/m,lookbehind:!0,inside:t,alias:"language-javascript"}}}}),e.languages.javadoclike.addSupport("javascript",e.languages.jsdoc)}(T),function(e){e.languages.flow=e.languages.extend("javascript",{}),e.languages.insertBefore("flow","keyword",{type:[{pattern:/\b(?:[Bb]oolean|Function|[Nn]umber|[Ss]tring|[Ss]ymbol|any|mixed|null|void)\b/,alias:"class-name"}]}),e.languages.flow["function-variable"].pattern=/(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=\s*(?:function\b|(?:\([^()]*\)(?:\s*:\s*\w+)?|(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/i,delete e.languages.flow.parameter,e.languages.insertBefore("flow","operator",{"flow-punctuation":{pattern:/\{\||\|\}/,alias:"punctuation"}}),Array.isArray(e.languages.flow.keyword)||(e.languages.flow.keyword=[e.languages.flow.keyword]),e.languages.flow.keyword.unshift({pattern:/(^|[^$]\b)(?:Class|declare|opaque|type)\b(?!\$)/,lookbehind:!0},{pattern:/(^|[^$]\B)\$(?:Diff|Enum|Exact|Keys|ObjMap|PropertyType|Record|Shape|Subtype|Supertype|await)\b(?!\$)/,lookbehind:!0})}(T),T.languages.n4js=T.languages.extend("javascript",{keyword:/\b(?:Array|any|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/}),T.languages.insertBefore("n4js","constant",{annotation:{pattern:/@+\w+/,alias:"operator"}}),T.languages.n4jsd=T.languages.n4js,function(e){function t(e,t){return RegExp(e.replace(/<ID>/g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:<ID>(?:\s*,\s*(?:\*\s*as\s+<ID>|\{[^{}]*\}))?|\*\s*as\s+<ID>|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+<ID>)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?<ID>/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r<n.length;r++){var a=n[r],o=e.languages.javascript[a];a=(o="RegExp"===e.util.type(o)?e.languages.javascript[a]={pattern:o}:o).inside||{};(o.inside=a)["maybe-class-name"]=/^[A-Z][\s\S]*/}}(T),function(e){var t=e.util.clone(e.languages.javascript),n=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,r=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,a=/(?:\{<S>*\.{3}(?:[^{}]|<BRACES>)*\})/.source;function o(e,t){return e=e.replace(/<S>/g,(function(){return n})).replace(/<BRACES>/g,(function(){return r})).replace(/<SPREAD>/g,(function(){return a})),RegExp(e,t)}function i(t){for(var n=[],r=0;r<t.length;r++){var a=t[r],o=!1;"string"!=typeof a&&("tag"===a.type&&a.content[0]&&"tag"===a.content[0].type?"</"===a.content[0].content[0].content?0<n.length&&n[n.length-1].tagName===l(a.content[0].content[1])&&n.pop():"/>"!==a.content[a.content.length-1].content&&n.push({tagName:l(a.content[0].content[1]),openedBraces:0}):0<n.length&&"punctuation"===a.type&&"{"===a.content?n[n.length-1].openedBraces++:0<n.length&&0<n[n.length-1].openedBraces&&"punctuation"===a.type&&"}"===a.content?n[n.length-1].openedBraces--:o=!0),(o||"string"==typeof a)&&0<n.length&&0===n[n.length-1].openedBraces&&(o=l(a),r<t.length-1&&("string"==typeof t[r+1]||"plain-text"===t[r+1].type)&&(o+=l(t[r+1]),t.splice(r+1,1)),0<r&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(o=l(t[r-1])+o,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",o,null,o)),a.content&&"string"!=typeof a.content&&i(a.content)}}a=o(a).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=o(/<\/?(?:[\w.:-]+(?:<S>+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:o(/<SPREAD>/.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:o(/=<BRACES>/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var l=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(l).join(""):""};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||i(e.tokens)}))}(T),function(e){var t=e.util.clone(e.languages.typescript);(t=(e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"],e.languages.tsx.tag)).pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+t.pattern.source+")",t.pattern.flags),t.lookbehind=!0}(T),T.languages.swift={comment:{pattern:/(^|[^\\:])(?:\/\/.*|\/\*(?:[^/*]|\/(?!\*)|\*(?!\/)|\/\*(?:[^*]|\*(?!\/))*\*\/)*\*\/)/,lookbehind:!0,greedy:!0},"string-literal":[{pattern:RegExp(/(^|[^"#])/.source+"(?:"+/"(?:\\(?:\((?:[^()]|\([^()]*\))*\)|\r\n|[^(])|[^\\\r\n"])*"/.source+"|"+/"""(?:\\(?:\((?:[^()]|\([^()]*\))*\)|[^(])|[^\\"]|"(?!""))*"""/.source+")"+/(?!["#])/.source),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/(\\\()(?:[^()]|\([^()]*\))*(?=\))/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/^\)|\\\($/,alias:"punctuation"},punctuation:/\\(?=[\r\n])/,string:/[\s\S]+/}},{pattern:RegExp(/(^|[^"#])(#+)/.source+"(?:"+/"(?:\\(?:#+\((?:[^()]|\([^()]*\))*\)|\r\n|[^#])|[^\\\r\n])*?"/.source+"|"+/"""(?:\\(?:#+\((?:[^()]|\([^()]*\))*\)|[^#])|[^\\])*?"""/.source+")\\2"),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/(\\#+\()(?:[^()]|\([^()]*\))*(?=\))/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/^\)|\\#+\($/,alias:"punctuation"},string:/[\s\S]+/}}],directive:{pattern:RegExp(/#/.source+"(?:"+/(?:elseif|if)\b/.source+"(?:[ \t]*"+/(?:![ \t]*)?(?:\b\w+\b(?:[ \t]*\((?:[^()]|\([^()]*\))*\))?|\((?:[^()]|\([^()]*\))*\))(?:[ \t]*(?:&&|\|\|))?/.source+")+|"+/(?:else|endif)\b/.source+")"),alias:"property",inside:{"directive-name":/^#\w+/,boolean:/\b(?:false|true)\b/,number:/\b\d+(?:\.\d+)*\b/,operator:/!|&&|\|\||[<>]=?/,punctuation:/[(),]/}},literal:{pattern:/#(?:colorLiteral|column|dsohandle|file(?:ID|Literal|Path)?|function|imageLiteral|line)\b/,alias:"constant"},"other-directive":{pattern:/#\w+\b/,alias:"property"},attribute:{pattern:/@\w+/,alias:"atrule"},"function-definition":{pattern:/(\bfunc\s+)\w+/,lookbehind:!0,alias:"function"},label:{pattern:/\b(break|continue)\s+\w+|\b[a-zA-Z_]\w*(?=\s*:\s*(?:for|repeat|while)\b)/,lookbehind:!0,alias:"important"},keyword:/\b(?:Any|Protocol|Self|Type|actor|as|assignment|associatedtype|associativity|async|await|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic|else|enum|extension|fallthrough|fileprivate|final|for|func|get|guard|higherThan|if|import|in|indirect|infix|init|inout|internal|is|isolated|lazy|left|let|lowerThan|mutating|none|nonisolated|nonmutating|open|operator|optional|override|postfix|precedencegroup|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|set|some|static|struct|subscript|super|switch|throw|throws|try|typealias|unowned|unsafe|var|weak|where|while|willSet)\b/,boolean:/\b(?:false|true)\b/,nil:{pattern:/\bnil\b/,alias:"constant"},"short-argument":/\$\d+\b/,omit:{pattern:/\b_\b/,alias:"keyword"},number:/\b(?:[\d_]+(?:\.[\de_]+)?|0x[a-f0-9_]+(?:\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\b/i,"class-name":/\b[A-Z](?:[A-Z_\d]*[a-z]\w*)?\b/,function:/\b[a-z_]\w*(?=\s*\()/i,constant:/\b(?:[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\b/,operator:/[-+*/%=!<>&|^~?]+|\.[.\-+*/%=!<>&|^~?]+/,punctuation:/[{}[\]();,.:\\]/},T.languages.swift["string-literal"].forEach((function(e){e.inside.interpolation.inside=T.languages.swift})),function(e){e.languages.kotlin=e.languages.extend("clike",{keyword:{pattern:/(^|[^.])\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\b/,lookbehind:!0},function:[{pattern:/(?:`[^\r\n`]+`|\b\w+)(?=\s*\()/,greedy:!0},{pattern:/(\.)(?:`[^\r\n`]+`|\w+)(?=\s*\{)/,lookbehind:!0,greedy:!0}],number:/\b(?:0[xX][\da-fA-F]+(?:_[\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?[fFL]?)\b/,operator:/\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\/*%<>]=?|[?:]:?|\.\.|&&|\|\||\b(?:and|inv|or|shl|shr|ushr|xor)\b/}),delete e.languages.kotlin["class-name"];var t={"interpolation-punctuation":{pattern:/^\$\{?|\}$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:e.languages.kotlin}};e.languages.insertBefore("kotlin","string",{"string-literal":[{pattern:/"""(?:[^$]|\$(?:(?!\{)|\{[^{}]*\}))*?"""/,alias:"multiline",inside:{interpolation:{pattern:/\$(?:[a-z_]\w*|\{[^{}]*\})/i,inside:t},string:/[\s\S]+/}},{pattern:/"(?:[^"\\\r\n$]|\\.|\$(?:(?!\{)|\{[^{}]*\}))*"/,alias:"singleline",inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:[a-z_]\w*|\{[^{}]*\})/i,lookbehind:!0,inside:t},string:/[\s\S]+/}}],char:{pattern:/'(?:[^'\\\r\n]|\\(?:.|u[a-fA-F0-9]{0,4}))'/,greedy:!0}}),delete e.languages.kotlin.string,e.languages.insertBefore("kotlin","keyword",{annotation:{pattern:/\B@(?:\w+:)?(?:[A-Z]\w*|\[[^\]]+\])/,alias:"builtin"}}),e.languages.insertBefore("kotlin","function",{label:{pattern:/\b\w+@|@\w+\b/,alias:"symbol"}}),e.languages.kt=e.languages.kotlin,e.languages.kts=e.languages.kotlin}(T),T.languages.c=T.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),T.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),T.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},T.languages.c.string],char:T.languages.c.char,comment:T.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:T.languages.c}}}}),T.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete T.languages.c.boolean,T.languages.objectivec=T.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete T.languages.objectivec["class-name"],T.languages.objc=T.languages.objectivec,T.languages.reason=T.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),T.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete T.languages.reason.function,function(e){for(var t=/\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|<self>)*\*\//.source,n=0;n<2;n++)t=t.replace(/<self>/g,(function(){return t}));t=t.replace(/<self>/g,(function(){return/[^\s\S]/.source})),e.languages.rust={comment:[{pattern:RegExp(/(^|[^\\])/.source+t),lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/b?"(?:\\[\s\S]|[^\\"])*"|b?r(#*)"(?:[^"]|"(?!\1))*"\1/,greedy:!0},char:{pattern:/b?'(?:\\(?:x[0-7][\da-fA-F]|u\{(?:[\da-fA-F]_*){1,6}\}|.)|[^\\\r\n\t'])'/,greedy:!0},attribute:{pattern:/#!?\[(?:[^\[\]"]|"(?:\\[\s\S]|[^\\"])*")*\]/,greedy:!0,alias:"attr-name",inside:{string:null}},"closure-params":{pattern:/([=(,:]\s*|\bmove\s*)\|[^|]*\||\|[^|]*\|(?=\s*(?:\{|->))/,lookbehind:!0,greedy:!0,inside:{"closure-punctuation":{pattern:/^\||\|$/,alias:"punctuation"},rest:null}},"lifetime-annotation":{pattern:/'\w+/,alias:"symbol"},"fragment-specifier":{pattern:/(\$\w+:)[a-z]+/,lookbehind:!0,alias:"punctuation"},variable:/\$\w+/,"function-definition":{pattern:/(\bfn\s+)\w+/,lookbehind:!0,alias:"function"},"type-definition":{pattern:/(\b(?:enum|struct|trait|type|union)\s+)\w+/,lookbehind:!0,alias:"class-name"},"module-declaration":[{pattern:/(\b(?:crate|mod)\s+)[a-z][a-z_\d]*/,lookbehind:!0,alias:"namespace"},{pattern:/(\b(?:crate|self|super)\s*)::\s*[a-z][a-z_\d]*\b(?:\s*::(?:\s*[a-z][a-z_\d]*\s*::)*)?/,lookbehind:!0,alias:"namespace",inside:{punctuation:/::/}}],keyword:[/\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,/\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\b/],function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())/,macro:{pattern:/\b\w+!/,alias:"property"},constant:/\b[A-Z_][A-Z_\d]+\b/,"class-name":/\b[A-Z]\w*\b/,namespace:{pattern:/(?:\b[a-z][a-z_\d]*\s*::\s*)*\b[a-z][a-z_\d]*\s*::(?!\s*<)/,inside:{punctuation:/::/}},number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\b/,boolean:/\b(?:false|true)\b/,punctuation:/->|\.\.=|\.{1,3}|::|[{}[\];(),:]/,operator:/[-+*\/%!^]=?|=[=>]?|&[&=]?|\|[|=]?|<<?=?|>>?=?|[@?]/},e.languages.rust["closure-params"].inside.rest=e.languages.rust,e.languages.rust.attribute.inside.string=e.languages.rust.string}(T),T.languages.go=T.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),T.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete T.languages.go["class-name"],function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!<keyword>)\w+(?:\s*\.\s*\w+)*\b/.source.replace(/<keyword>/g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!<keyword>)\w+/.source.replace(/<keyword>/g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/<mod-name>(?:\s*:\s*<mod-name>)?|:\s*<mod-name>/.source.replace(/<mod-name>/g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(T),T.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},T.languages.python["string-interpolation"].inside.interpolation.inside.rest=T.languages.python,T.languages.py=T.languages.python;((e,t)=>{for(var n in t)p(e,n,{get:t[n],enumerable:!0})})({},{dracula:()=>L,duotoneDark:()=>N,duotoneLight:()=>j,github:()=>P,jettwaveDark:()=>Z,jettwaveLight:()=>H,nightOwl:()=>A,nightOwlLight:()=>O,oceanicNext:()=>F,okaidia:()=>D,oneDark:()=>V,oneLight:()=>W,palenight:()=>M,shadesOfPurple:()=>z,synthwave84:()=>B,ultramin:()=>$,vsDark:()=>U,vsLight:()=>Q});var L={plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},N={plain:{backgroundColor:"#2a2734",color:"#9a86fd"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#6c6783"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#e09142"}},{types:["property","function"],style:{color:"#9a86fd"}},{types:["tag-id","selector","atrule-id"],style:{color:"#eeebff"}},{types:["attr-name"],style:{color:"#c4b9fe"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule","placeholder","variable"],style:{color:"#ffcc99"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#c4b9fe"}}]},j={plain:{backgroundColor:"#faf8f5",color:"#728fcb"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#b6ad9a"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#063289"}},{types:["property","function"],style:{color:"#b29762"}},{types:["tag-id","selector","atrule-id"],style:{color:"#2d2006"}},{types:["attr-name"],style:{color:"#896724"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule"],style:{color:"#728fcb"}},{types:["placeholder","variable"],style:{color:"#93abdc"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#896724"}}]},P={plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},A={plain:{color:"#d6deeb",backgroundColor:"#011627"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(99, 119, 119)",fontStyle:"italic"}},{types:["string","url"],style:{color:"rgb(173, 219, 103)"}},{types:["variable"],style:{color:"rgb(214, 222, 235)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation"],style:{color:"rgb(199, 146, 234)"}},{types:["selector","doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(255, 203, 139)"}},{types:["tag","operator","keyword"],style:{color:"rgb(127, 219, 202)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["property"],style:{color:"rgb(128, 203, 196)"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}}]},O={plain:{color:"#403f53",backgroundColor:"#FBFBFB"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(72, 118, 214)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(152, 159, 177)",fontStyle:"italic"}},{types:["string","builtin","char","constant","url"],style:{color:"rgb(72, 118, 214)"}},{types:["variable"],style:{color:"rgb(201, 103, 101)"}},{types:["number"],style:{color:"rgb(170, 9, 130)"}},{types:["punctuation"],style:{color:"rgb(153, 76, 195)"}},{types:["function","selector","doctype"],style:{color:"rgb(153, 76, 195)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(17, 17, 17)"}},{types:["tag"],style:{color:"rgb(153, 76, 195)"}},{types:["operator","property","keyword","namespace"],style:{color:"rgb(12, 150, 155)"}},{types:["boolean"],style:{color:"rgb(188, 84, 84)"}}]},I="#c5a5c5",R="#8dc891",F={plain:{backgroundColor:"#282c34",color:"#ffffff"},styles:[{types:["attr-name"],style:{color:I}},{types:["attr-value"],style:{color:R}},{types:["comment","block-comment","prolog","doctype","cdata","shebang"],style:{color:"#999999"}},{types:["property","number","function-name","constant","symbol","deleted"],style:{color:"#5a9bcf"}},{types:["boolean"],style:{color:"#ff8b50"}},{types:["tag"],style:{color:"#fc929e"}},{types:["string"],style:{color:R}},{types:["punctuation"],style:{color:R}},{types:["selector","char","builtin","inserted"],style:{color:"#D8DEE9"}},{types:["function"],style:{color:"#79b6f2"}},{types:["operator","entity","url","variable"],style:{color:"#d7deea"}},{types:["keyword"],style:{color:I}},{types:["atrule","class-name"],style:{color:"#FAC863"}},{types:["important"],style:{fontWeight:"400"}},{types:["bold"],style:{fontWeight:"bold"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}}]},D={plain:{color:"#f8f8f2",backgroundColor:"#272822"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"#f92672",fontStyle:"italic"}},{types:["inserted"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"#8292a2",fontStyle:"italic"}},{types:["string","url"],style:{color:"#a6e22e"}},{types:["variable"],style:{color:"#f8f8f2"}},{types:["number"],style:{color:"#ae81ff"}},{types:["builtin","char","constant","function","class-name"],style:{color:"#e6db74"}},{types:["punctuation"],style:{color:"#f8f8f2"}},{types:["selector","doctype"],style:{color:"#a6e22e",fontStyle:"italic"}},{types:["tag","operator","keyword"],style:{color:"#66d9ef"}},{types:["boolean"],style:{color:"#ae81ff"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)",opacity:.7}},{types:["tag","property"],style:{color:"#f92672"}},{types:["attr-name"],style:{color:"#a6e22e !important"}},{types:["doctype"],style:{color:"#8292a2"}},{types:["rule"],style:{color:"#e6db74"}}]},M={plain:{color:"#bfc7d5",backgroundColor:"#292d3e"},styles:[{types:["comment"],style:{color:"rgb(105, 112, 152)",fontStyle:"italic"}},{types:["string","inserted"],style:{color:"rgb(195, 232, 141)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation","selector"],style:{color:"rgb(199, 146, 234)"}},{types:["variable"],style:{color:"rgb(191, 199, 213)"}},{types:["class-name","attr-name"],style:{color:"rgb(255, 203, 107)"}},{types:["tag","deleted"],style:{color:"rgb(255, 85, 114)"}},{types:["operator"],style:{color:"rgb(137, 221, 255)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["keyword"],style:{fontStyle:"italic"}},{types:["doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}},{types:["url"],style:{color:"rgb(221, 221, 221)"}}]},z={plain:{color:"#9EFEFF",backgroundColor:"#2D2A55"},styles:[{types:["changed"],style:{color:"rgb(255, 238, 128)"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)"}},{types:["inserted"],style:{color:"rgb(173, 219, 103)"}},{types:["comment"],style:{color:"rgb(179, 98, 255)",fontStyle:"italic"}},{types:["punctuation"],style:{color:"rgb(255, 255, 255)"}},{types:["constant"],style:{color:"rgb(255, 98, 140)"}},{types:["string","url"],style:{color:"rgb(165, 255, 144)"}},{types:["variable"],style:{color:"rgb(255, 238, 128)"}},{types:["number","boolean"],style:{color:"rgb(255, 98, 140)"}},{types:["attr-name"],style:{color:"rgb(255, 180, 84)"}},{types:["keyword","operator","property","namespace","tag","selector","doctype"],style:{color:"rgb(255, 157, 0)"}},{types:["builtin","char","constant","function","class-name"],style:{color:"rgb(250, 208, 0)"}}]},B={plain:{backgroundColor:"linear-gradient(to bottom, #2a2139 75%, #34294f)",backgroundImage:"#34294f",color:"#f92aad",textShadow:"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3"},styles:[{types:["comment","block-comment","prolog","doctype","cdata"],style:{color:"#495495",fontStyle:"italic"}},{types:["punctuation"],style:{color:"#ccc"}},{types:["tag","attr-name","namespace","number","unit","hexcode","deleted"],style:{color:"#e2777a"}},{types:["property","selector"],style:{color:"#72f1b8",textShadow:"0 0 2px #100c0f, 0 0 10px #257c5575, 0 0 35px #21272475"}},{types:["function-name"],style:{color:"#6196cc"}},{types:["boolean","selector-id","function"],style:{color:"#fdfdfd",textShadow:"0 0 2px #001716, 0 0 3px #03edf975, 0 0 5px #03edf975, 0 0 8px #03edf975"}},{types:["class-name","maybe-class-name","builtin"],style:{color:"#fff5f6",textShadow:"0 0 2px #000, 0 0 10px #fc1f2c75, 0 0 5px #fc1f2c75, 0 0 25px #fc1f2c75"}},{types:["constant","symbol"],style:{color:"#f92aad",textShadow:"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3"}},{types:["important","atrule","keyword","selector-class"],style:{color:"#f4eee4",textShadow:"0 0 2px #393a33, 0 0 8px #f39f0575, 0 0 2px #f39f0575"}},{types:["string","char","attr-value","regex","variable"],style:{color:"#f87c32"}},{types:["parameter"],style:{fontStyle:"italic"}},{types:["entity","url"],style:{color:"#67cdcc"}},{types:["operator"],style:{color:"ffffffee"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["entity"],style:{cursor:"help"}},{types:["inserted"],style:{color:"green"}}]},$={plain:{color:"#282a2e",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(197, 200, 198)"}},{types:["string","number","builtin","variable"],style:{color:"rgb(150, 152, 150)"}},{types:["class-name","function","tag","attr-name"],style:{color:"rgb(40, 42, 46)"}}]},U={plain:{color:"#9CDCFE",backgroundColor:"#1E1E1E"},styles:[{types:["prolog"],style:{color:"rgb(0, 0, 128)"}},{types:["comment"],style:{color:"rgb(106, 153, 85)"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"rgb(86, 156, 214)"}},{types:["number","inserted"],style:{color:"rgb(181, 206, 168)"}},{types:["constant"],style:{color:"rgb(100, 102, 149)"}},{types:["attr-name","variable"],style:{color:"rgb(156, 220, 254)"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"rgb(206, 145, 120)"}},{types:["selector"],style:{color:"rgb(215, 186, 125)"}},{types:["tag"],style:{color:"rgb(78, 201, 176)"}},{types:["tag"],languages:["markup"],style:{color:"rgb(86, 156, 214)"}},{types:["punctuation","operator"],style:{color:"rgb(212, 212, 212)"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"rgb(220, 220, 170)"}},{types:["class-name"],style:{color:"rgb(78, 201, 176)"}},{types:["char"],style:{color:"rgb(209, 105, 105)"}}]},Q={plain:{color:"#000000",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(0, 128, 0)"}},{types:["builtin"],style:{color:"rgb(0, 112, 193)"}},{types:["number","variable","inserted"],style:{color:"rgb(9, 134, 88)"}},{types:["operator"],style:{color:"rgb(0, 0, 0)"}},{types:["constant","char"],style:{color:"rgb(129, 31, 63)"}},{types:["tag"],style:{color:"rgb(128, 0, 0)"}},{types:["attr-name"],style:{color:"rgb(255, 0, 0)"}},{types:["deleted","string"],style:{color:"rgb(163, 21, 21)"}},{types:["changed","punctuation"],style:{color:"rgb(4, 81, 165)"}},{types:["function","keyword"],style:{color:"rgb(0, 0, 255)"}},{types:["class-name"],style:{color:"rgb(38, 127, 153)"}}]},Z={plain:{color:"#f8fafc",backgroundColor:"#011627"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#569CD6"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#f8fafc"}},{types:["attr-name","variable"],style:{color:"#9CDCFE"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#cbd5e1"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#D4D4D4"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#7dd3fc"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},H={plain:{color:"#0f172a",backgroundColor:"#f1f5f9"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#0c4a6e"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#0f172a"}},{types:["attr-name","variable"],style:{color:"#0c4a6e"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#64748b"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#475569"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#0e7490"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},V={plain:{backgroundColor:"hsl(220, 13%, 18%)",color:"hsl(220, 14%, 71%)",textShadow:"0 1px rgba(0, 0, 0, 0.3)"},styles:[{types:["comment","prolog","cdata"],style:{color:"hsl(220, 10%, 40%)"}},{types:["doctype","punctuation","entity"],style:{color:"hsl(220, 14%, 71%)"}},{types:["attr-name","class-name","maybe-class-name","boolean","constant","number","atrule"],style:{color:"hsl(29, 54%, 61%)"}},{types:["keyword"],style:{color:"hsl(286, 60%, 67%)"}},{types:["property","tag","symbol","deleted","important"],style:{color:"hsl(355, 65%, 65%)"}},{types:["selector","string","char","builtin","inserted","regex","attr-value"],style:{color:"hsl(95, 38%, 62%)"}},{types:["variable","operator","function"],style:{color:"hsl(207, 82%, 66%)"}},{types:["url"],style:{color:"hsl(187, 47%, 55%)"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"hsl(220, 14%, 71%)"}}]},W={plain:{backgroundColor:"hsl(230, 1%, 98%)",color:"hsl(230, 8%, 24%)"},styles:[{types:["comment","prolog","cdata"],style:{color:"hsl(230, 4%, 64%)"}},{types:["doctype","punctuation","entity"],style:{color:"hsl(230, 8%, 24%)"}},{types:["attr-name","class-name","boolean","constant","number","atrule"],style:{color:"hsl(35, 99%, 36%)"}},{types:["keyword"],style:{color:"hsl(301, 63%, 40%)"}},{types:["property","tag","symbol","deleted","important"],style:{color:"hsl(5, 74%, 59%)"}},{types:["selector","string","char","builtin","inserted","regex","attr-value","punctuation"],style:{color:"hsl(119, 34%, 47%)"}},{types:["variable","operator","function"],style:{color:"hsl(221, 87%, 60%)"}},{types:["url"],style:{color:"hsl(198, 99%, 37%)"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"hsl(230, 8%, 24%)"}}]},q=(e,t)=>{const{plain:n}=e,r=e.styles.reduce(((e,n)=>{const{languages:r,style:a}=n;return r&&!r.includes(t)||n.types.forEach((t=>{const n=S(S({},e[t]),a);e[t]=n})),e}),{});return r.root=n,r.plain=E(S({},n),{backgroundColor:void 0}),r},G=/\r\n|\r|\n/,Y=e=>{0===e.length?e.push({types:["plain"],content:"\n",empty:!0}):1===e.length&&""===e[0].content&&(e[0].content="\n",e[0].empty=!0)},K=(e,t)=>{const n=e.length;return n>0&&e[n-1]===t?e:e.concat(t)},X=e=>{const t=[[]],n=[e],r=[0],a=[e.length];let o=0,i=0,l=[];const s=[l];for(;i>-1;){for(;(o=r[i]++)<a[i];){let e,u=t[i];const c=n[i][o];if("string"==typeof c?(u=i>0?u:["plain"],e=c):(u=K(u,c.type),c.alias&&(u=K(u,c.alias)),e=c.content),"string"!=typeof e){i++,t.push(u),n.push(e),r.push(0),a.push(e.length);continue}const d=e.split(G),f=d.length;l.push({types:u,content:d[0]});for(let t=1;t<f;t++)Y(l),s.push(l=[]),l.push({types:u,content:d[t]})}i--,t.pop(),n.pop(),r.pop(),a.pop()}return Y(l),s},J=({children:e,language:t,code:n,theme:r,prism:a})=>{const o=t.toLowerCase(),i=((e,t)=>{const[n,r]=(0,c.useState)(q(t,e)),a=(0,c.useRef)(),o=(0,c.useRef)();return(0,c.useEffect)((()=>{t===a.current&&e===o.current||(a.current=t,o.current=e,r(q(t,e)))}),[e,t]),n})(o,r),l=(e=>(0,c.useCallback)((t=>{var n=t,{className:r,style:a,line:o}=n,i=_(n,["className","style","line"]);const l=E(S({},i),{className:(0,d.Z)("token-line",r)});return"object"==typeof e&&"plain"in e&&(l.style=e.plain),"object"==typeof a&&(l.style=S(S({},l.style||{}),a)),l}),[e]))(i),s=(e=>{const t=(0,c.useCallback)((({types:t,empty:n})=>{if(null!=e)return 1===t.length&&"plain"===t[0]?null!=n?{display:"inline-block"}:void 0:1===t.length&&null!=n?e[t[0]]:Object.assign(null!=n?{display:"inline-block"}:{},...t.map((t=>e[t])))}),[e]);return(0,c.useCallback)((e=>{var n=e,{token:r,className:a,style:o}=n,i=_(n,["token","className","style"]);const l=E(S({},i),{className:(0,d.Z)("token",...r.types,a),children:r.content,style:t(r)});return null!=o&&(l.style=S(S({},l.style||{}),o)),l}),[t])})(i),u=(({prism:e,code:t,grammar:n,language:r})=>{const a=(0,c.useRef)(e);return(0,c.useMemo)((()=>{if(null==n)return X([t]);const e={code:t,grammar:n,language:r,tokens:[]};return a.current.hooks.run("before-tokenize",e),e.tokens=a.current.tokenize(t,n),a.current.hooks.run("after-tokenize",e),X(e.tokens)}),[t,n,r])})({prism:a,language:o,code:n,grammar:a.languages[o]});return e({tokens:u,className:`prism-code language-${o}`,style:null!=i?i.root:{},getLineProps:l,getTokenProps:s})},ee=e=>(0,c.createElement)(J,E(S({},e),{prism:e.prism||T,theme:e.theme||U,code:e.code,language:e.language}))},8776:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=!0,a="Invariant failed";function o(e,t){if(!e){if(r)throw new Error(a);var n="function"==typeof t?t():t,o=n?"".concat(a,": ").concat(n):a;throw new Error(o)}}},7529:e=>{"use strict";e.exports={}},6887:e=>{"use strict";e.exports=JSON.parse('{"/cardano-multiplatform-lib/search-6b8":{"__comp":"1a4e3797","__context":{"plugin":"0109cddc"}},"/cardano-multiplatform-lib/-6de":{"__comp":"5e95c892","__context":{"plugin":"f438ab24"}},"/cardano-multiplatform-lib/-001":{"__comp":"a7bd4aaa","version":"935f2afb"},"/cardano-multiplatform-lib/-57d":{"__comp":"a94703ab"},"/cardano-multiplatform-lib/category/builders-abb":{"__comp":"14eb3368","categoryGeneratedIndex":"8cf5c8a6"},"/cardano-multiplatform-lib/category/chain-33e":{"__comp":"14eb3368","categoryGeneratedIndex":"d1737d8e"},"/cardano-multiplatform-lib/category/core-e60":{"__comp":"14eb3368","categoryGeneratedIndex":"c7581e31"},"/cardano-multiplatform-lib/category/crypto-f2e":{"__comp":"14eb3368","categoryGeneratedIndex":"82878dee"},"/cardano-multiplatform-lib/category/modules-d7c":{"__comp":"14eb3368","categoryGeneratedIndex":"eb14df67"},"/cardano-multiplatform-lib/category/multi-era-98e":{"__comp":"14eb3368","categoryGeneratedIndex":"a9e02168"},"/cardano-multiplatform-lib/crate_architecture-6ae":{"__comp":"17896441","content":"e7958d21"},"/cardano-multiplatform-lib/getting_started-712":{"__comp":"17896441","content":"456dc1ab"},"/cardano-multiplatform-lib/modules/builders/-f4c":{"__comp":"17896441","content":"3c02cfd4"},"/cardano-multiplatform-lib/modules/builders/generating_transactions-5d8":{"__comp":"17896441","content":"dd8d23a4"},"/cardano-multiplatform-lib/modules/cbor-27a":{"__comp":"17896441","content":"6c2c22d1"},"/cardano-multiplatform-lib/modules/chain/-2fe":{"__comp":"17896441","content":"42a4384b"},"/cardano-multiplatform-lib/modules/CIP25-99f":{"__comp":"17896441","content":"a6c5da82"},"/cardano-multiplatform-lib/modules/cip36-6ab":{"__comp":"17896441","content":"bbe6d832"},"/cardano-multiplatform-lib/modules/core/-d45":{"__comp":"17896441","content":"187dbc21"},"/cardano-multiplatform-lib/modules/crypto/-a94":{"__comp":"17896441","content":"8019ae33"},"/cardano-multiplatform-lib/modules/crypto/generating_keys-425":{"__comp":"17896441","content":"b5ddca27"},"/cardano-multiplatform-lib/modules/json-6a4":{"__comp":"17896441","content":"d16dc6d6"},"/cardano-multiplatform-lib/modules/metadata-0a2":{"__comp":"17896441","content":"f41b0af6"},"/cardano-multiplatform-lib/modules/multi-era/-229":{"__comp":"17896441","content":"024b6465"},"/cardano-multiplatform-lib/modules/wasm-db2":{"__comp":"17896441","content":"61955a96"},"/cardano-multiplatform-lib/-6ae":{"__comp":"17896441","content":"c377a04b"}}')}},e=>{e.O(0,[532],(()=>{return t=7221,e(e.s=t);var t}));e.O()}]); \ No newline at end of file diff --git a/assets/js/main.a2f566e1.js.LICENSE.txt b/assets/js/main.a2f566e1.js.LICENSE.txt new file mode 100644 index 00000000..5b49ae63 --- /dev/null +++ b/assets/js/main.a2f566e1.js.LICENSE.txt @@ -0,0 +1,126 @@ +/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress + * @license MIT */ + +/*! + * lunr.Builder + * Copyright (C) 2020 Oliver Nightingale + */ + +/*! + * lunr.Index + * Copyright (C) 2020 Oliver Nightingale + */ + +/*! + * lunr.Pipeline + * Copyright (C) 2020 Oliver Nightingale + */ + +/*! + * lunr.Set + * Copyright (C) 2020 Oliver Nightingale + */ + +/*! + * lunr.TokenSet + * Copyright (C) 2020 Oliver Nightingale + */ + +/*! + * lunr.Vector + * Copyright (C) 2020 Oliver Nightingale + */ + +/*! + * lunr.stemmer + * Copyright (C) 2020 Oliver Nightingale + * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt + */ + +/*! + * lunr.stopWordFilter + * Copyright (C) 2020 Oliver Nightingale + */ + +/*! + * lunr.tokenizer + * Copyright (C) 2020 Oliver Nightingale + */ + +/*! + * lunr.trimmer + * Copyright (C) 2020 Oliver Nightingale + */ + +/*! + * lunr.utils + * Copyright (C) 2020 Oliver Nightingale + */ + +/*! Bundled license information: + +prismjs/prism.js: + (** + * Prism: Lightweight, robust, elegant syntax highlighting + * + * @license MIT <https://opensource.org/licenses/MIT> + * @author Lea Verou <https://lea.verou.me> + * @namespace + * @public + *) +*/ + +/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * @license React + * react-jsx-runtime.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * @license React + * scheduler.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9 + * Copyright (C) 2020 Oliver Nightingale + * @license MIT + */ + +/** @license React v16.13.1 + * react-is.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ diff --git a/assets/js/runtime~main.9afd905d.js b/assets/js/runtime~main.9afd905d.js new file mode 100644 index 00000000..e2750205 --- /dev/null +++ b/assets/js/runtime~main.9afd905d.js @@ -0,0 +1 @@ +(()=>{"use strict";var e,t,a,r,d,o={},c={};function n(e){var t=c[e];if(void 0!==t)return t.exports;var a=c[e]={exports:{}};return o[e].call(a.exports,a,a.exports,n),a.exports}n.m=o,e=[],n.O=(t,a,r,d)=>{if(!a){var o=1/0;for(i=0;i<e.length;i++){a=e[i][0],r=e[i][1],d=e[i][2];for(var c=!0,f=0;f<a.length;f++)(!1&d||o>=d)&&Object.keys(n.O).every((e=>n.O[e](a[f])))?a.splice(f--,1):(c=!1,d<o&&(o=d));if(c){e.splice(i--,1);var b=r();void 0!==b&&(t=b)}}return t}d=d||0;for(var i=e.length;i>0&&e[i-1][2]>d;i--)e[i]=e[i-1];e[i]=[a,r,d]},n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,n.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if("object"==typeof e&&e){if(4&r&&e.__esModule)return e;if(16&r&&"function"==typeof e.then)return e}var d=Object.create(null);n.r(d);var o={};t=t||[null,a({}),a([]),a(a)];for(var c=2&r&&e;"object"==typeof c&&!~t.indexOf(c);c=a(c))Object.getOwnPropertyNames(c).forEach((t=>o[t]=()=>e[t]));return o.default=()=>e,n.d(d,o),d},n.d=(e,t)=>{for(var a in t)n.o(t,a)&&!n.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},n.f={},n.e=e=>Promise.all(Object.keys(n.f).reduce(((t,a)=>(n.f[a](e,t),t)),[])),n.u=e=>"assets/js/"+({11:"8019ae33",31:"eb14df67",53:"935f2afb",54:"0109cddc",200:"d16dc6d6",258:"b5ddca27",368:"a94703ab",381:"c7581e31",392:"d1737d8e",455:"187dbc21",461:"bbe6d832",518:"a7bd4aaa",533:"456dc1ab",580:"6c2c22d1",595:"61955a96",650:"f41b0af6",659:"e7958d21",661:"5e95c892",663:"a9e02168",675:"024b6465",684:"3c02cfd4",698:"f438ab24",810:"42a4384b",817:"14eb3368",918:"17896441",920:"1a4e3797",926:"8cf5c8a6",928:"82878dee",932:"a6c5da82",953:"dd8d23a4",971:"c377a04b"}[e]||e)+"."+{11:"f9697cba",31:"6db07931",53:"a68d5b39",54:"748be62a",200:"0e8b1a56",258:"43511ee0",368:"3baa4e38",381:"c24443d3",392:"b0eec86d",443:"3d74dd3a",455:"6d7a7433",461:"162d02e5",518:"5eb89804",525:"2fbd60c6",533:"0ca46ae8",580:"fe3782c7",595:"49be3fcb",650:"a76d7160",659:"f670ea2c",661:"7fbf04ea",663:"48f27996",675:"6664d642",684:"0b344bc8",698:"413653ef",772:"0a40c231",810:"2d67981c",817:"6bb3db11",918:"ff509f23",920:"e763b08d",926:"40ba156d",928:"4db35e31",932:"dca57a8d",953:"8124b095",971:"10e5b1c9"}[e]+".js",n.miniCssF=e=>{},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r={},d="cddl-codegen-documentation:",n.l=(e,t,a,o)=>{if(r[e])r[e].push(t);else{var c,f;if(void 0!==a)for(var b=document.getElementsByTagName("script"),i=0;i<b.length;i++){var u=b[i];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==d+a){c=u;break}}c||(f=!0,(c=document.createElement("script")).charset="utf-8",c.timeout=120,n.nc&&c.setAttribute("nonce",n.nc),c.setAttribute("data-webpack",d+a),c.src=e),r[e]=[t];var l=(t,a)=>{c.onerror=c.onload=null,clearTimeout(s);var d=r[e];if(delete r[e],c.parentNode&&c.parentNode.removeChild(c),d&&d.forEach((e=>e(a))),t)return t(a)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:c}),12e4);c.onerror=l.bind(null,c.onerror),c.onload=l.bind(null,c.onload),f&&document.head.appendChild(c)}},n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.p="/cardano-multiplatform-lib/",n.gca=function(e){return e={17896441:"918","8019ae33":"11",eb14df67:"31","935f2afb":"53","0109cddc":"54",d16dc6d6:"200",b5ddca27:"258",a94703ab:"368",c7581e31:"381",d1737d8e:"392","187dbc21":"455",bbe6d832:"461",a7bd4aaa:"518","456dc1ab":"533","6c2c22d1":"580","61955a96":"595",f41b0af6:"650",e7958d21:"659","5e95c892":"661",a9e02168:"663","024b6465":"675","3c02cfd4":"684",f438ab24:"698","42a4384b":"810","14eb3368":"817","1a4e3797":"920","8cf5c8a6":"926","82878dee":"928",a6c5da82:"932",dd8d23a4:"953",c377a04b:"971"}[e]||e,n.p+n.u(e)},(()=>{var e={303:0,532:0};n.f.j=(t,a)=>{var r=n.o(e,t)?e[t]:void 0;if(0!==r)if(r)a.push(r[2]);else if(/^(303|532)$/.test(t))e[t]=0;else{var d=new Promise(((a,d)=>r=e[t]=[a,d]));a.push(r[2]=d);var o=n.p+n.u(t),c=new Error;n.l(o,(a=>{if(n.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var d=a&&("load"===a.type?"missing":a.type),o=a&&a.target&&a.target.src;c.message="Loading chunk "+t+" failed.\n("+d+": "+o+")",c.name="ChunkLoadError",c.type=d,c.request=o,r[1](c)}}),"chunk-"+t,t)}},n.O.j=t=>0===e[t];var t=(t,a)=>{var r,d,o=a[0],c=a[1],f=a[2],b=0;if(o.some((t=>0!==e[t]))){for(r in c)n.o(c,r)&&(n.m[r]=c[r]);if(f)var i=f(n)}for(t&&t(a);b<o.length;b++)d=o[b],n.o(e,d)&&e[d]&&e[d][0](),e[d]=0;return n.O(i)},a=self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[];a.forEach(t.bind(null,0)),a.push=t.bind(null,a.push.bind(a))})()})(); \ No newline at end of file diff --git a/category/builders/index.html b/category/builders/index.html new file mode 100644 index 00000000..8634c336 --- /dev/null +++ b/category/builders/index.html @@ -0,0 +1,13 @@ +<!doctype html> +<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page" data-has-hydrated="false"> +<head> +<meta charset="UTF-8"> +<meta name="generator" content="Docusaurus v3.0.1"> +<title data-rh="true">Builders | CML + + + + + + + \ No newline at end of file diff --git a/category/chain/index.html b/category/chain/index.html new file mode 100644 index 00000000..6bb6a3a1 --- /dev/null +++ b/category/chain/index.html @@ -0,0 +1,13 @@ + + + + + +Chain | CML + + + + + + + \ No newline at end of file diff --git a/category/core/index.html b/category/core/index.html new file mode 100644 index 00000000..008acd93 --- /dev/null +++ b/category/core/index.html @@ -0,0 +1,13 @@ + + + + + +Core | CML + + + + + + + \ No newline at end of file diff --git a/category/crypto/index.html b/category/crypto/index.html new file mode 100644 index 00000000..2dfae41a --- /dev/null +++ b/category/crypto/index.html @@ -0,0 +1,13 @@ + + + + + +Crypto | CML + + + + + + + \ No newline at end of file diff --git a/category/modules/index.html b/category/modules/index.html new file mode 100644 index 00000000..62f61835 --- /dev/null +++ b/category/modules/index.html @@ -0,0 +1,13 @@ + + + + + +Modules | CML + + + + + + + \ No newline at end of file diff --git a/category/multi-era/index.html b/category/multi-era/index.html new file mode 100644 index 00000000..012ac4ea --- /dev/null +++ b/category/multi-era/index.html @@ -0,0 +1,13 @@ + + + + + +Multi-Era | CML + + + + + + + \ No newline at end of file diff --git a/crate_architecture/index.html b/crate_architecture/index.html new file mode 100644 index 00000000..01d296f3 --- /dev/null +++ b/crate_architecture/index.html @@ -0,0 +1,33 @@ + + + + + +Crate Architecture | CML + + + + +

Crate Architecture

+
    +
  • +

    Core - Core types common throughout all CML crates.

    +
  • +
  • +

    Chain - Current era on-chain types, plus utility functionality and builders for creating these types. This is likely the crate most users will want to use.

    +
  • +
  • +

    Crypto - Crypto primitives used throughout CML. Keys, signatures, etc.

    +
  • +
  • +

    CIP25 - Library for working with CIP25 NFT metadata.

    +
  • +
  • +

    CIP36 - Library for working with CIP36 (catalyst) registration types.

    +
  • +
  • +

    Multi-Era - On-chain types for previous eras (Byron, Shelley, Alonzo, Babbage, etc) plus era-agnostic wrappers around this for parsing historical blockchain data.

    +
  • +
+ + \ No newline at end of file diff --git a/getting_started/index.html b/getting_started/index.html new file mode 100644 index 00000000..958f6ad0 --- /dev/null +++ b/getting_started/index.html @@ -0,0 +1,21 @@ + + + + + +Installation & Getting Started | CML + + + + +

Installation & Getting Started

+

Install

+
todo
+

Run Example

+
todo
+

Build

+
todo
+

Test

+
nvm i && npm i && npm run rust:test
+ + \ No newline at end of file diff --git a/icons/danger-icon.svg b/icons/danger-icon.svg new file mode 100644 index 00000000..c8d879dc --- /dev/null +++ b/icons/danger-icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/info-icon.svg b/icons/info-icon.svg new file mode 100644 index 00000000..42b09ff3 --- /dev/null +++ b/icons/info-icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/favicon.svg b/img/favicon.svg new file mode 100644 index 00000000..24432265 --- /dev/null +++ b/img/favicon.svg @@ -0,0 +1,4973 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + 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 +mk+0PFtXW5p5StJjM+e6vJ+bnz5aPFla1kybElnz9ruf5rc0z9ahytPTuot0efLOIFraRo111917 +Id5d6WmVbn97Z/dea3ff+zNdJTROrDJ95R4r70h31faUK/OkV5frMjreddZF1COSy/RZtT8vvdc+ +o63renOP6pkkUjU92fYYraYuYurRPaOIZHd5uvmju4M3iXuXrpl+kNDsHp28wSvarr1nPfp7yjZK +uZlbNjpaiGz+fqVl2riENlaS7r58yoh2mJg23KPZ5prv40Ik6+kV7p50zZ6HjIZPWxdWZvq5ZfSj +RtzU55pxzVfStTGt0HqWsGxZurfrc4RndHe6pUVHf4u6V2jHv831S43wLDcL7Woxc7XMZwvpLpfu +9KQhvuiUhIjfMksfmq3y8qAh/mS5e//48Ia6u4q7eXgqEXPxufpr4pqiLh7xN0tKI2ad0aITfVdF +3MvvIcVU6+HiTwcVN1+4hkWnFikpcY2r54lGqVdcm+pUYt5ycY+oiEleJy4m2XkioqIm7t1+MrG+ +69wl68nDVbtbXEy8SlzLpPNENOIqbl7zVOLZ6dwj79FDH1VtuZV7iHvq0BbTKtdXe+4wg5N5KTdJ +fwjxuUdHRUQwk05xCfHOJZqp2RF9+axcROOxw8MyZW7u2iHDs0VdPDda5iLVKaN1M0/nhJa+Szpl +VL2LdO1MjxnznotYetJoPiTrou0OGe+oag8SIhGqjxLiVZ2XcK9OGtGKnLk2rCt15eoXDx5eVX2Y +Rl3cJfM5Ytnm60cPkzLJ8A7Jzz2jWuGPBwsRj2S5tEqnDreWKLecewy9xr1TxF+mcdHWR3dfSoWL +i3dJuFlVx0e0RNIyMsRSdFU+0al4dC3c29JTa11DXP/ulOalT7i3v0rjqs+OLpIRrm3iqeMenhZu +Jf3UYioSmqy/raOfO+7hwTrcO2jGKA/1tnZv8YfO7Ob+t87aY8c0iZlZSL/v0Bmsk0eb0TX63Zbe +jx00SpOZeqgM1iGT+nhuf2dOc1l4FI1v6VuHnEaN7JAae17+dq0+eLSbpHXtLVGa09pZNZmVe7vk +Oj8a9R07U3U7vGNfvUZz0W8rtTuTuWn2KTNYZ5EOnTmT+Tfu+pgZK7KurV7eWcPzWTO5N/Rp5Skz +V0ZFt3mIp+xlLtdeW0zaQ7d1e7bM5q7PtixNd4+WSU1Ssr08H9I0i3esjO3m7h1VquND63r3YJlr +Lm0trp5avXYrf1BT86wZtNaS7WYaK6daiWxL07xcZ82U2TnN0pNm7P9ure4Ll06dyTzS15bZt/Xo +mbUZ2pZQ92Qa0o+e+a3Wkab57BnLoz1eD52pxfPKPO0xmtvt1q35flxpsvLklW/vdmcLy87P3FXv +Zvo8RmPFutoWKR5fGszzWTQ+PHaHdyqNGY9qpy4N+k6hsbzm2i4unrU0ds9TaG5pV2dVZ3Scxvuj +u6UtO+/PoUnVW9/uHZ2sNEZb55hrOk9L+qE1ZkW3tmib55bGahTv3Lmq52swcc98zr5b/dJRp1r9 +kKbt7GnfVqoZ05eFtrotvM9Vmj3qyTRptrrbdBqr2mNriqxMb8lq5yiR6kyv5zpINnVTxFs7za92 +6gYPOo1W6sk1q4lVt4p15yrpdmxNomLeVs96ztJYKZ1dg77Rt4lnR/VG1T+7JTU8t36t9GST6UOV +RvPs3E1t0dVt6u2xSpOXeujGXJVpe2R68nx7Nk1R3Wp3aZynx9b4molGmHhzrHziYZpv+qysY2Rj +3rWjpbn9HrtxodLZXnlP/qAa4+2irRHm+SX9ztHYJzVbTPP7x84gKqZttdZOZhpc+1kzt6WmZZtr +54ZPg6p3fKaMi7XWtPNNoy49eEapTm1m4nGarVVNY0en1NyI8LXr+jlNc+o9XpPWvxYT6ZjerGfX +rDfJbHWvhzKN6d1JNZpXtq3rdzbT3BUdS2N0rZod7o/RvC69x2n295ZtefU40/yZ55oBxiytHCpI +eGB4qOAAChhAgGAcBwQmgoMECw8VDMBEYOYAgrqfPstqf3Z6bk/XDJ30f382pEOleg70jgrR2I5J +Z99n9a5GPjznqSS1TKSj+q6Leo5YdjTxUu3sHMuUFu0QS9MIzRQN7am7B1FLtc5Olj6U9k2zc5l6 +arTEvNMRLdFeq3oOt2zPFLFszexUpMfS9rTUOrNbFh7LOjyY3z17fe3QdrP9IUWzvW56rEW3pSLb +0y7N0vY12levJ3ERxF81U7spFaaa7UR3p86/q/PZdm6vS1/eZuqvWZ6qWR5iWeI5U135c2Ll4a4i +HimqN9Gc1/Ul4inlEX2kVFt8qeq59FmRGp5CgHBOO9MhrRZdZplN10ybnU9/tsgyzfCQfG42xDtp +ZZhomGv2Vl7SeanOl/f5dtmlz5dJls9zOm902etE65XZ0Ie+l51uUSp67a40JuYRnQ== + + + flb6ThMhHk8uH0of5Uk0pqrJ5/XxjSB5vR4j6kFMLD2bpRSOdlSR1KsHz6u1Wnb0vHauyvtMwYeo +3Wp/8up2X+XXiO6HaEetXIes7H5VSGZ3p6ofHroogMe6vV6YdmNlsM8qhK6OqvRKTzu/yvXl7nHW +1Vnd2o1VvjpdkWIdr/SUKwPktEgBCBSAQLfHl4F9Dn0SsVO6dHbsUKuOrXzsKx6lrHM7PKe0SEal +ZHuv9s7dfu9g4hLiOc3TH1U6l+s7p5V1rFr7PJm27bks+3EetUN4V+Q7iaZVv+MlH/p5zdTUyP7X +rnXwh0XH7ryV9GjjV5+/nWTpOlTeyzMkqzGX0GXk3LxyXm/toC35u2mVT1rSHyUeNJKiWRbealfd +YdYmln/KJ5XLVHp6Ip+Unq/KtFnd08ekaeuzz+DS7BzZNqoVqTpd6u/VlwfTiXeq7mBqkl6PpanV +OaadylPK88z6/ex1bTqW6VW+05ts+yM81qvdwauZqo7SaW2q1m/t7u6l+Vcd0vkK6VWl+XKtbh6X +9mDZ9NTyi3iX99lWP3jOp/mUzvLOiZiW99TFq7fyh9bTn/cMk5DKjFLR183cZ65XMdO2l8fSt6pX ++T1/j5w/XcVzvtBm0lrf7r6VioqVqWk6JCfpnVPZh8b7pjX6jAxxfbfeT5W3qvRZnUvNdyvVPWZl +m1T3qrLzqrS7VWXR6343nayy0V7dzb8lUx9ZGdYdrbIv7e5UdbLeqRLRdGr4WheqU03pINSuE5Xw +7tXFIrwRHWWdHZLRP76zUNVKu4k/3Tykzq0ju/06S9vppp7uiSc1FhEdvtb4tY9nxKtaq5IUr5s/ +T9/QlFd0HRrWmW46dQnxqr7dK7zPdrReQ1Ub3u9U9+419xiVvU7prsK1k553ch1a964nOkZFdJh3 +cuWx6+46Ge2V2qvozl4Zs/TUVd0yK/deq62qOt2L56q6Qr114c1cdF7lEyYeumiVSi9X736VeNal +VZaEvtvqqu5LtYtG4VV1w9saX89jtnlJt2ZaNwcG6UqN8LTICJ/3rSLVHlzXfQ+/6v3rDr8+lb0s +sdS+VxFParfoq1/i8apOqc/K1o623dBoaUdKb9KtZt17B9NbeKZF5zzp6ik0Fdkd7vk5rarp1EtN +vNVrLkS8bdJJtV3P3hRss2+qvWeVq1Cv8nd+H54M73hNdFCdeCW0SyferPCY+vofrlqN15uobHXq +nQpJ30mqrGfpfdW30rxS+VfOtC+6nFROc6HzjPfcSqrv3e+qLhXxji4spNu9qvLuLK2y2qq8l7dO +UunTcu9GVVg2NPMS3v3Sw9/vPZl+prKpD/de+jxGZduV3pdKdW/xXGXfqZpVbTx0qWh3u7aHSXiF +qUZnZXROLUvVu9dlrNex9M4VsYyz0udblEpLh3dXOzBJ+zppWWgiS720XS/m1YFx2uFmfUuthA5M +7qZW5e909/o6Vsil95qnNCzfGppl2eWzU5btec9uNDqL9bxb2rGqjD47ZdlhbRlmaeUhLUu8z165 +dyjrV2S0J5ZRSe1XiHX3W/Hs1WLh1drR66NXPlvXnf51de5KbdF0t1Krfa/+VN/oynu0KrVDuqNV +/Xi7rNC0VvfVpbNVGNyC8cCChgeGhgsaHPDgAgKQ0y8uHRO+9GdJR8n27ntOX9J70/KsL1veHvO/ +aP1S3ilj+nzOdaZapEab9Ova08O91eO5aRru1S7VCm/xVm1cO/l8MdW5mmfUNS7R4snFpfydXSU7 +0SISrpPyTkh1hKt2MssbPQ+Z93dHg0SqWfbLIz2/enjKjMj2KO333Sf9WHlv9S9Ls/Sem5LzrHZv +0WjU0Ih+jPVyJp6OZb9MKf08qZLz/Bedsltn3ir5jp0u3CQ8VDxzWVetPiKlXdprz9mBMRF9s/B3 +9tHaSkQkPQ7MrRnW3nQj3XOJatCWvofI1IEx41R67hEdmE37VdU2yWfLgSkHP2SL6MDYj78hY5ZW +iDE1sk+TUCvVbInUkujH8L6/yqi3atGJZtNptlimalfNO3llJN+uRjqmM8W9NOkXtbR8h69M3LLh +0URTtFu3sz1FVDRnr7Q6dmXumxpulrEoferKWBKt78fT3y2qGdHaWWGi9XxQke6MRr5T+Y5ZmbPD +NFxcMrM79P3yZr3VuJr5k3vvfW51X7/uhHj06gm/qGqnFOmpaJR339ldb/dYlVEypeIebh5LNOnX +kW3VR/lDRwF3iS63qCAQgCUjMiRMNXa4v9SiPX+pg8pLu2PmCGwzcEA4p3b8m+vc1UmmTyKyU5PR +Qjy/7g8+j1Wntyw6RQbTaqb30h2kvXGtV6s7tplV6en8czI3LCu9/vCcEBfT+vv6lE3ZWdZjxrMp +6e24B72oVdYffo8ZwpEhIhV9EfF0bbei4V7RcFfxbPEQFY30DBdTUbdwkW6nFk9bVLiUpwcXbdG2 +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 +dfHXnd52JcN1+MWdBnOZDXIhUzy565Z9/5Tif5aiNf3RkqSeH5TMRe8GO/vjPOSoiyLLaR717FPU +LkdZDNlNg7sNF0EPWobUsxY70VrC5BbGk5/stYpvx4j4kbu2ww4fvR8VSex3RWh36W0SnfZXEw65 +nkVvU9xNsQ69UYuy5tYkv1Gvq4ti3HF0+PWmiIdeq3F+VAzBZ9KKklTzN8fZ6/IQBJ2kqkX/UTyx +J0puh8wy6215UhzFLqqe5Y/bzZDUmqxXhc3ti35L78qjput9pqahm2aHnutdS2qJatGUm7Lol3XT +pLf1VbUWQ98se3PUS5EOvTrsdDIUsampXVcx7J/l7Hn8OIbOEtWmJrT8RdBTkj+KflTUk572GNKh +15skAFYpOunL5JAxkfhekzV5kzxN0i1SSJrUadIlxm2ZJlkAMABYCklKjaiYcbFDhWkGwABSKSRN +tiwABnBDRQ4cMiN+Tefyjbt0ft93EsftW8bxGiOytu3e3nc553O+7u+cx3ebl2+e7/E+x/k9rvta +l2kcv3FbhgzP8zvO1/y9g+d13qVC2mSO7zuJ1/u+0/u+k7tO1/m+xyDtHsdvm993mpZ7fN9JWwfA +AGhSTO49XoHj+Yyd7/tO9nQtE0PPb3rfydvm+QHwIHOZzutcpkm81/vdpne8pvmct/Ma3+967287 +52s9528dt0kAMAAXLtP5vsu8ze/xAF4kTvIgX5A1ySJrAAxglKLfMk3WvEyTdE7uvZ7j9t3fOs3f +fG6PzADAAFw77qr5vbZ5Gdf3ndxrModMCEkz4wTDr0YpAAZgstu8zdu8zfO7ruuyzsv83t+7fsv4 +7tJ3W69l1Ljd1zme33eu1zYv37me17l+5/Yt3zmu7z3P830v7ziO5zheu+r7pnEdx/GdxuU7x2v8 +xuu7xvVbr+Vbv3PbtvX61m9bvvVb1+vdzuU7r+X87ve+3/Ec13MZx28bv20Zdt3fOH7v947nsn3f +9l2i79zW69u+a3q/893Ob73ueRyXdxuvb3nHdT7v+f6ucbqXdT3XZei6idvbfM3f9i7zd5/L/H3n +d53zNy73933rcp7X+I7n+S7Xem73963LNr/rtZ7r/G73uozjPK/nPM/vOi/rO8/n923LuszzOq/v +fM7ztczzdH73d8zrPM/zei73PN/zNp7Xcs/vcs/nPa/ntUzTfc/Ted7ffL7vOL/Xd5/L9q7rd6/3 +uI73/Z3zPN7fcY73uu6ydVyv+5m9r+W91/mc72tb52ta3nv85mu9z/m+v3sZ3/v+zvOc7/ubl/mc +7+W+7++473FdxnsZx3t8l/P+5mk8lnM673HbpnV+1+k773M8x+m81+kap/Gezum6rne+72+9l/OS +LtM07sr7vL7zmsd3G7/vXL7xO7/zvK5del7T+G7v+F3X9m3be3/btU7jfI3X+s7zcr3zPY3XNF7f +NY3bNd/3NB7f9t7Te93TNB7LPE3jsb3fO57jNM7nuKzTt07TeJ3fvG7ndG3LOE3jsW2XcN6maXzG +7nsar/sd7/u+7vuel/m+pmWb7/m+7vFbrnm+1ut+t0t6Lu893tu13vd3LNt9f8f2jct1r8t3L9N9 +Lt/9Hdu93PN6T/e13d+xzd+3vPNyvfM7r/N2zvN2zt8yzvN9fvP8zfd3fPM8b/M2X/O9bPe7zdP8 +bus7Tueyvu/6vud0vtN4jcv4juv7fu94LeO7je/7fdt76d75vb/jet93ud5te8fpXd932aZ7ndbl +nr5lu9ft/uZruddt3ZZt3O5zWrbvvJZ3fZdtXdd1XqZvnJZpnbb5Xs/1XL97W8512w== + + + rvP+jml81225tvs63+tdtnvexvs8z+U913Pelu2cp3VZp+/91nOd13PZ1vMaz2U8r3Faxnud5+3b +tnuZxvs673k8p+u7tus7r3s6r3G5xuv61u3czvVatvPavuv+juVa7mUeL+H2neO4TNe3LtM4jeN3 +fuO2Ldc2Tct1ztM0vt+93Pf9HdP9rdu0XPM3zcv8Te/2ruvyvuc4ztf4vfP4reP6Ttt2TZdoee9t +uub1XdZ1vef3usbputdxOb9vXs7v/M7z/O5t/cZx2dZv23XbdEm2d7yX616/7f2me/red/q+afym +8d5133Sty3dP4/J99zdf9zdO93d81/Tdy3aN0/1d8/ht43Zd4zje37GM471s4zav6ziO4zgt43x/ +x3eO13KO4zgv5zhu8ziu4/u+3/KO572M3/KO93ds5/JO63cu7/iOyzu+4zy+87Yu8ziP4zzO4zze +4zTe33G+yz2u36Wcv2U6x+u8v3G5pnP8rnM9v+U6x+1cr/Nezm19z+3almnb1nM7t/P8lu+8v+X7 +7vM7x3GdxmU8z3cZz208x3M5z3dczvE6p2lZz+U8r3lZz3MZt2t5z/Eel3M9v+U9z20br3N5z3E7 +33U5x/Mcl/Gcz3Varmm9luucp3W5pnsZ1/G61nV7z+vatmvZ1nWbt+Vbp/m6vnV6d+G5fOs1n9/4 +nct4Xd+3vtu7fN95bdMyrvd3nMt5j+t6X/N0ruv6TH73NL3L+t3zMq73dm/3NS/jOH7ruo7T9y3f +N93zvG3Luq7ruqzrOb7r+c3LuN7fcU/LOa/3d5zzep3fMr7X+Z7XuU7TtpzX+97fsaz3umzvtKzj +sm7rey7f907nd47XPC3jOW7TfY/3dxw6TFivXfa4qIwSkSFgvCDVtMoo1EISoXz+kyyf2mZm2gcC +YnY6qradmWaPZU6aJPcFmadPkvs45qUpk+OJydRjxQpSnten+a/pDZUSHlzQiHj0k5AfkmGWJy+C +Bw0eLGZmQlhBzGixQ4uZkI8vk2PKcXAYtp7nWdU6DOuvw0EO/7h9FFEt24ph1OvuZip3HElu4ygJ +mRFzvehZBbsnt83N8m/VEczaIwjDaZLff+k4DUqEI4RFgwLFeBpXyRszKkz4wGOFiQhJp3E1zVNW +Dke442CPo0Vw5LZvx82haGbayOGs3LaXZm+aI5clyXFphpvgQYMDSwxRASJ4YOIGjB0rJDJKWLEf +v1lSJNS3mEap2JUZeVSgQLB7djtOJhUyyW+qaSAIyAcCMo+irpq/m6aAPKd15cFP3jKSg6JDcQIO +R5W+m2h6zbIQvF6iRYwBaGRS6HlUlrXniZwNfp4sJ9VJttdOx+SuJ6GPymhUwvM0WKkaKhRMhk38 +XQkffICRTnmqruza5KOL9Leqln01vU107Gi+C4uAPrd5+mtrl6cMinyqflq3R1W462isqLQoMSnB +cWuOVbQc0uMqpM/qrkdsy5tnLY4hPk+CYdw0ZxBst003T5Hr/qmKdrSSk7GkViilE2hlP2n6QdOP +qspheJNjChfLhYlJv6ohO95iZVKRIrl0uk/LT2rmpfiC3Q8VMjROTET2vUdVdetQbQs3HHLDabUt +/kB8LM1ONm426IZjdx6KXUd03HXbrhxX5fpJ13HAyNAwSWkRa+FQIXEpfVhMoBQ+60jBIoQasKAF +H+DATAzGyusUPotily9J+vNYbls3bQ7Dtutcz4s/jwY91NvCYtj1ujtJphvHr+sKCmWi61DLruq6 +BLutWRaxbCyGaqf9KnrEChoeWMBo7f6oTUdwOEXqMwM7xcBOQMiQmQl5xX5eBQrJqvfopnqHpC6S +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 +ROjAcVIa2ef5v22KVMn0wnUI1iGYctUTPH7F7KpxQhAU4QZFSE1R8txDirjXfVAzptsk/94ChooR +EhvJccuoN0LG5AeJ6yXkedkzqV1NLitqVRSRn4EDINEAI4yokUICASJ4LMFDhgyrNILdeSRNTfNT +E0bsdZplmK6X4JhH13TrxA0n/j78ROEwVO24yslUkuEYVMiHDEoPLWBqqJiwgLl6YBFDhA4aqV5f +4UK1WJlU8wtq1ZCbmmIXJ8c+Re/StMlR7Tqyk9GkSI8h23HptqWZRoOhPo56OXYndHDBkMV7PnPN +cp5oVVP8XgXLK1gmsS1oXVVNi8GPd+EaXUXuS5MqmfR8a55FqpqTIxI3ZlCAAEWUgH4RDIvo2hPT +Irm+y1LdsnTT2O/r1Vb1wHPjUE3r05VH1TkcaXEkOdnaeao7/6ytqm19qr72XQUrFaLnJNfdz7LU +svj7QCo7g2D8eXlJ5qaZkyWaZR5nw4YhbqKwF3Y6nCizzP283SxVM80CArGIQCO3lcGPBubagUZG +hNdpUiIeWEQC9R7b0HcZx/scJgXAADwxZGZIyBgyMFUKAAYgk0PGRDPjlKYCIGFFiKmJqYmpiamJ +qYmpiamJqYmpiamJqYmpiamJqYmpiamJqYmpiamJqYmpiamJqYmpiamJqYmpiamJqYmpiamJqYmp +iamJqYmpiamJqYmpiamJqYmpiamJqYmpiamJqYmpiamJqYmpiamJqYmpiamJqYmpiamJqYmpiamJ +qYmpiamJqYmpiamJqYmpiamJqYmpiamJqYmpiamJqYmpiamJqYmpiamJqYmpiamJqYmpiamJqYmp +iamJqYmpiamJqYmpiamJqYmpiamJqYmpiampqampqampqampqampqampqampqampqampqampqamp +qampqampqampqampqampqampiampqampqampqampqampqampqampqampqampqampqampqampqamp +qampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqamp +qampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqamp +qampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampwbfOyl7jgKUM +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 +aWNvZGV2YWx1aWQpIC9uYW07ICxvZjEwMCV3aHh4eXkybnVtT2N0YXZlc3R1cmJyZXN1bHQwLjA1 +YmFzZUZyZXF1ZW5jbm9TdGl0Y2hzVGlsdHVyYnVsZW5jZTFmZVRTb3VyY2VHcmFwaGljaW4yaW4y +b3BlLDFDb21wb3NpdC9EZWYgOzQ0ZnJhY3RhbE5vaXNCZXZlbFNoYWRvdzE0NC0yeXkyc3RkRGV2 +aWJsdXIxR2F1c3NpYW5CZGR5eHhvZmZzZXRPMXNwZWN1bGFyQ29uc3RhbjIoMTBFeHBvbmVzdXJm +YWNlbGlnaHRpbmctY29sb3I6d2h0eWxzcGVjT3UtenotNXh4MXl5MVBvaW50TDFTaW5nMTJrM2sz +azQxMTEyMmFyaXRobWV0bGl0Mk1lcmdlTm9kMUNvb2xCcmVlejE0LTUyKDEucmFkaXVkaWxhYWlk +TW9ycGhvbG9nYmItYmJubmJBeUNoYW5uZWxTZWxSeHgzczFubjJiM0Rpc3BsYWNlbWVudE1hcDAg +MTRtYXRyaUNvbG9yTW5uNTVsaW5lYWNhbGNNZnJvbTBiZWdyZWFkZGl0aXY1dG90b2Fsd2F5cmVz +dGFyNWRmZmlsbG5vbmNjdW11TjFhbmltLThjY2NjOGNjY2MxY2NjY2NjMTJubmIxRF8yKDE2NkVy +b2RlcjY2XzRfNzIoMTUwIDVSQUlfUGl4ZWxQbGF5MihpbmRlZmlucmVwZWF0RHNwbGkxcmVtb3Yx +IDE7MjAgMTU7MjAwIDIwMDsgMTUgMjA7MSAxIDEyN2RkMTJubmMxMTIyOzIwIDIwO2RpZmZ1c2V5 +ZWxsb3cyNTtncmVlbjtibHVlO2luZGlnbzt2aW9sZXQ7cmVkO29yYW4xOGF6aW11NmVsZXZmZURp +RDE1cmVsMTAxMIORqFK1aGYEAAAAggJCCQIGZ3AWpmnssAABEgBgGARDGBqDIAAAAAAAAAIAIaA4 +AoxBEAARIAgRIoBgjEACBeP0MCiokM8QzhrnDLmLn8ok9NTBUOLYJeMxX2eJ1LbqXisxNi+stEDe +FqSZjA02xiZDADQ4QLWxyTCeQiFf/OlgU/mVVQpuYvkaJWZKoUlTsELRnviaCY0iRZ4hJ2wgEKrG +21Zp2ETWYr8uR97Lxwp9qsgbEgEbHrnfNlWdoM0OkFN3snAjFHetWei+/avxIbipDg== + + + 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 +Nk+KJ8cvr/lSTOeuVL/d1WptOd+4fqVUV13p3JNrvjW1k1I6NfeWT023tdbOe7PF1c5r7a7VXj2v +3XhvjO3FfGarN6VbxjZbm6/F96+dOWfbcHBUbzXPS2/+m//+zZdvvXO2du7LZf16f6WWako5t1xT +W7Hemm69UT451b9pfV9vbbG+m1uNP1O9d54bzpnrfPPU+mIuU60353mjOeO960bxzDrzvO2+9Fq+ +/dtMLa6cVl1rzbzSWqmutmqLq0bt5nlbevPEeFee6eu6f+P8Toof/99L780b3erTbW9L8dW2pxZr +1HLMKc+YblzbG2sVZy1rO/+2szY551nTjzetb96yVq/Vv3Fuqbaz1uqlWWvWbrpWmquumtq3WePW +Zo3aqmWMNc1p3bZijVOLtU0t3tqtV8uZ0mrzrldbu3m9nNPXMCtXzN2rVW2jnFq6bWtfe3u1ie/W +99Z5r0b3lqe+W9+tXUzt8/oWb9ryWTWHrVap1XalfNu24eB0zW/txVabedMNB7e5fYwvrbhereFg +2HiW764z34nzxHXPmxsO2Z7Z0vv37++Z60+Nt622Tq251lVb3XBweu6rZ/1dNdfazFrjbK554te0 +Wf/mWrG93NpN40m51fSumq45582vtq931ffvbzq51fM+xbduf7V59bT3atParK+eU+d7+cavtmX9 +FeuL8ZY3rPXkb+vcGWs6042r3nhiTvVnOvXnm2/OHNeM694bz5y1hoPjFc+dtWkxv/jx/e05vnpP +y+/M9z7+q13MZ85Yb9dqk1INc823XOtv3XDI+Fazfl0bDo6+vY+1fTX6DQenp+Wa1fZqrreNr8ZY +m5dni7WZ86w0X37t9libFWtz84q1SS9vODisTZqxNjfHGq5Zo1m7Oeuatbltw8HpWq/WLt44Y503 +ztrE28Y80+1zprnh4KauG88468xzxg0Hp2e9uW450/x1y5lq+hummuq7661buzdrN2utzYvx1hrX +29V8q1ube9+t7a1NTO+2u/72W5u2cr1fm1Rr87Xd7p06X5u11nbdcNYmvdqWszY117JGLd3c041v +vPPWW96U0lfDzEDmjaB5orTljaAX6H0dy8Q1vRjHSlZ3jR1jK8P3Wot13rayKseU54yzpRrFWz+L +6/z4zrf/9uLM9b2VUmttw8GamF7quPWv4z8Y13vv73qpZqIctVSzlzYcA+5rTTnn/P+faiZbM329 +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 +9qFfHVF0lTJ4164iaePtiCL/IJghUAM= + + + diff --git a/img/output.png b/img/output.png new file mode 100644 index 0000000000000000000000000000000000000000..33bbb0d1fd16209b5d0c865eeb535ba5a4677e07 GIT binary patch literal 33118 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 Q_+3Friph#r3F`;^U+0JHaR2}S literal 0 HcmV?d00001 diff --git a/img/output2.png b/img/output2.png new file mode 100644 index 0000000000000000000000000000000000000000..6592b162c3000f5a9cbd5620b1e2a2f3ed7f9971 GIT binary patch literal 20854 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 literal 0 HcmV?d00001 diff --git a/index.html b/index.html new file mode 100644 index 00000000..ca18a9c0 --- /dev/null +++ b/index.html @@ -0,0 +1,65 @@ + + + + + +Cardano Multiplatform Lib | CML + + + + + + + \ No newline at end of file diff --git a/modules/CIP25/index.html b/modules/CIP25/index.html new file mode 100644 index 00000000..6adfad97 --- /dev/null +++ b/modules/CIP25/index.html @@ -0,0 +1,67 @@ + + + + + +CIP25 | CML + + + + +

CIP25

+

Context

+

CIP25 defines an NFT Metadata Standard for Native Tokens.

+

Since tokens on Cardano are a part of the UTxO ledger, the metadata isn't directly attached to a token, but instead stored in the transaction data.

+

When data is transmitted or stored in Cardano, it is often encoded as CBOR bytes to optimize space and facilitate fast processing. CBOR provides a standardized way to encode complex data structures, making it easier for different components of the Cardano ecosystem to interact and interpret the data.

+

Below is the entire metadata schema for CIP-25, which can be parsed by passing in the CBOR bytes of the entire transaction metadata +or by passing in an existing Metadata struct.

+

Parsing from CBOR bytes should be marginally faster.

+
{
"721": {
"<policy_id>": {
"<asset_name>": {
"name": <string>,

"image": <uri | array>,
"mediaType": image/<mime_sub_type>,

"description": <string | array>,

"files": [{
"name": <string>,
"mediaType": <mime_type>,
"src": <uri | array>,
<other_properties>
}],

<other properties>
}
},
"version": <version_id>
}
}
+

Code Definitions

+
    +
  • +

    CIP25Metadata struct is the top-level struct for CIP-25 metadata, and contains a key_721 field of type LabelMetadata. The key_721 field will contain either a LabelMetadataV1 or LabelMetadataV2 instance.

    +
  • +
  • +

    LabelMetadata defines an enum type that can contain either a LabelMetadataV1 or LabelMetadataV2 instance. It also provides functions for creating instances of each type.

    +
  • +
  • +

    MetadataDetails defines a struct that represents metadata details for a specific asset. It contains fields for the asset name, an image associated with the asset, a media type, a description, and details about any associated files. The new() method creates a new instance with the specified name and image, and sets the other fields to None.

    +
  • +
+

Examples

+

Create

+

The following example shows how to create and populate the CIP25 metadata schema with the available structs.

+
    let mut details = MetadataDetails::new(
String64::try_from("Metadata Name").unwrap(),
ChunkableString::from("htts://some.website.com/image.png"),
);
details.description = Some(ChunkableString::from("description of this NFT"));
details.media_type = Some(String64::try_from("image/*").unwrap());
details.files = Some(vec![
FilesDetails::new(
String64::new_str("filename1").unwrap(),
String64::new_str("filetype1").unwrap(),
ChunkableString::from("src1"),
),
FilesDetails::new(
String64::new_str("filename2").unwrap(),
String64::new_str("filetype2").unwrap(),
ChunkableString::from("src2"),
),
]);
let mut v2 = Data::new();
let mut v2_inner = BTreeMap::new();
v2_inner.insert(AssetNameV2::from(vec![0xCA, 0xFE, 0xD0, 0x0D]), details);
v2.insert(PolicyIdV2::from(vec![0xBA, 0xAD, 0xF0, 0x0D]), v2_inner);

let metadata = CIP25Metadata::new(LabelMetadata::new_label_metadata_v2(
LabelMetadataV2::new(v2),

));
println!("{metadata:?}");

+

output:

+
CIP25Metadata {
key_721: LabelMetadataV2(LabelMetadataV2 {
data: {
PolicyIdV2([186, 173, 240, 13]): {
AssetNameV2([202, 254, 208, 13]): MetadataDetails {
name: String64("Metadata Name"),
image: Single(String64("htts://some.website.com/image.png")),
media_type: Some(String64("image/*")),
description: Some(Single(String64("description of this NFT"))),
files: Some([
FilesDetails {
name: String64("filename1"),
media_type: String64("filetype1"),
src: Single(String64("src1"))
},
FilesDetails {
name: String64("filename2"),
media_type: String64("filetype2"),
src: Single(String64("src2"))
}
])
}
}
}
})
}
+

Parse CIP25Metadata

+
let bytes = "bf1902d1a36464617461a244baadf00da344cafed00da6646e616d656d4d65746164617461204e616d656566696c657382a4637372636473726331646e616d656966696c656e616d6531696d65646961547970656966696c657479706531816864736b6a66616b7381a1403864a3637372636473726332646e616d656966696c656e616d6532696d65646961547970656966696c65747970653265696d6167657821687474733a2f2f736f6d652e776562736974652e636f6d2f696d6167652e706e67696d656469615479706567696d6167652f2a6b6465736372697074696f6e776465736372697074696f6e206f662074686973204e4654a14038641832a1403864a140386481a1403864816864736b6a66616b73a1403864a14038646776657273696f6e02a1403864a14038641905398144baadf00dff";
let data = CIP25Metadata::from_bytes(hex::decode(bytes).unwrap()).unwrap();
println!("{data:?}");
+

output:

+
CIP25Metadata { 
key_721: LabelMetadataV2(
LabelMetadataV2 {
data: {
PolicyIdV2([186, 173, 240, 13]): {
AssetNameV2([202, 254, 208, 13]): MetadataDetails {
name: String64("Metadata Name"),
image: Single(String64("htts://some.website.com/image.png")),
media_type: Some(String64("image/*")),
description: Some(Single(String64("description of this NFT"))),
files: Some([
FilesDetails {
name: String64("filename1"),
media_type: String64("filetype1"),
src: Single(String64("src1"))
},
FilesDetails {
name: String64("filename2"),
media_type: String64("filetype2"),
src: Single(String64("src2"))
}
])
}
}
}
})
}

+

Parse Metadata Details

+

Fields can be extracted from the MetadataDetails struct.

+
// {
// "arweaveId": "6srpXZOTfK_62KUrJKh4VdCFG0YS271pq20OMRpE5Ts",
// "image": "ipfs://QmUWP6xGHucgBUv514gwgbt4yijg36aUQunEP61z5D8RKS",
// "name": "SpaceBud #1507",
// "traits": ["Star Suit", "Chestplate", "Belt", "Flag", "Pistol"],
// "type": "Alien",
// }

let bytes = "a569617277656176654964782b36737270585a4f54664b5f36324b55724a4b68345664434647305953323731707132304f4d52704535547365696d6167657835697066733a2f2f516d5557503678474875636742557635313467776762743479696a673336615551756e455036317a354438524b53646e616d656e53706163654275642023313530376674726169747385695374617220537569746a4368657374706c6174656442656c7464466c616766506973746f6c647479706565416c69656e";

let output = MetadataDetails::from_bytes(hex::decode(bytes).unwrap()).unwrap();
println!("{output:?}")
+

output:

+
MetadataDetails { 
name: String64("SpaceBud #1507"),
image: Single(String64("ipfs://QmUWP6xGHucgBUv514gwgbt4yijg36aUQunEP61z5D8RKS")),
media_type: None,
description: None,
files: None
}
+

Loose Parse Metadata details

+

The loose_parse() function allows parsing of certain data that is technically non-compliant with CIP25 due to minor mistakes by their creators.

+
note

This function should only to be used to parse non conformant metadata, since it will return a different struct (MiniMetadataDetails) which will just (possibly)return the name/image.

It's best to only use it as a fallback when the regular parsing fails.

+

Just name

+
// {"name":"Metaverse"}
let details = MiniMetadataDetails::loose_parse(&TransactionMetadatum::from_bytes(hex::decode("a1646e616d65694d6574617665727365").unwrap()).unwrap()).unwrap();
println!("{details:?}")
+

ouput:

+
MiniMetadataDetails { 
name: Some(String64("Metaverse")),
image: None
}
+

Upercase name

+
// {
// "Date":"9 May 2021",
// "Description":"Happy Mother's Day to all the Cardano Moms!",
// "Image":"ipfs.io/ipfs/Qmah6QPKUKvp6K9XQB2SA42Q3yrffCbYBbk8EoRrB7FN2g",
// "Name":"Mother's Day 2021",
// "Ticker":"MOM21",
// "URL":"ipfs.io/ipfs/Qmah6QPKUKvp6K9XQB2SA42Q3yrffCbYBbk8EoRrB7FN2g"
// }
let details = MiniMetadataDetails::loose_parse(&TransactionMetadatum::from_bytes(hex::decode("a664446174656a39204d617920323032316b4465736372697074696f6e782b4861707079204d6f7468657227732044617920746f20616c6c207468652043617264616e6f204d6f6d732165496d616765783b697066732e696f2f697066732f516d61683651504b554b7670364b39585142325341343251337972666643625942626b38456f52724237464e3267644e616d65714d6f746865722773204461792032303231665469636b6572654d4f4d32316355524c783b697066732e696f2f697066732f516d61683651504b554b7670364b39585142325341343251337972666643625942626b38456f52724237464e3267").unwrap()).unwrap()).unwrap();
let name = details.name.unwrap().0;
println!("{name:?}")
+

output:

+
"Mother's Day 2021"
+

id no name

+
// {
// "id":"00",
// "image":"ipfs://QmSfYTF8B4ua6hFdr6URdRDZBZ9FjCQNUdDcLr2f7P8xn3"
// }
let details = MiniMetadataDetails::loose_parse(&TransactionMetadatum::from_bytes(hex::decode("a262696462303065696d6167657835697066733a2f2f516d5366595446384234756136684664723655526452445a425a39466a43514e556444634c723266375038786e33").unwrap()).unwrap()).unwrap();
let name = details.name.unwrap().0;
println!("{name:?}")
+

output:

+
"00"
+

Image

+
// {
// "image":"ipfs://QmSfYTF8B4ua6hFdr6URdRDZBZ9FjCQNUdDcLr2f7P8xn3"
// }
let details = MiniMetadataDetails::loose_parse(&TransactionMetadatum::from_bytes(hex::decode("a165696d6167657835697066733a2f2f516d5366595446384234756136684664723655526452445a425a39466a43514e556444634c723266375038786e33").unwrap()).unwrap()).unwrap();
let image = String::from(&details.image.unwrap());
println!("{image:?}");
+

output:

+
"ipfs://QmSfYTF8B4ua6hFdr6URdRDZBZ9FjCQNUdDcLr2f7P8xn3"
+ + \ No newline at end of file diff --git a/modules/builders/generating_transactions/index.html b/modules/builders/generating_transactions/index.html new file mode 100644 index 00000000..2f69562e --- /dev/null +++ b/modules/builders/generating_transactions/index.html @@ -0,0 +1,19 @@ + + + + + +generating_transactions | CML + + + + +

generating_transactions

Example code

+

The example below builds a transaction with all 2 of the 3 input types: key and bootstrap. +Multisig (script) inputs are essentially identical to key inputs, but using the scripthash instead of the keyhash, however they are not supported for implicit fee calculation yet. +Fees are automatically calculated and sent to a change address in the example.

+
// instantiate the tx builder with the Cardano protocol parameters - these may change later on
const txBuilder = makeTxBuilder();
const testnetId = 0;
// add a keyhash input - for ADA held in a Shelley-era normal address (Base, Enterprise, Pointer)
const prvKey = CML.PrivateKey.from_bech32("ed25519e_sk16rl5fqqf4mg27syjzjrq8h3vq44jnnv52mvyzdttldszjj7a64xtmjwgjtfy25lu0xmv40306lj9pcqpa6slry9eh3mtlqvfjz93vuq0grl80");
const inputAddr = CML.EnterpriseAddress.new(testnetId, CML.StakeCredential.new_key(prvKey.to_public().hash())).to_address();
txBuilder.add_input(CML.SingleInputBuilder.new(
CML.TransactionInput.new(
CML.TransactionHash.from_hex("8561258e210352fba2ac0488afed67b3427a27ccf1d41ec030c98a8199bc22ec"), // tx hash
0, // index
),
CML.TransactionOutput.new(
inputAddr,
CML.Value.from_coin(BigInt(6000000)),
)
);

// base address
const outputAddress = CML.Address.from_bech32("addr_test1qpu5vlrf4xkxv2qpwngf6cjhtw542ayty80v8dyr49rf5ewvxwdrt70qlcpeeagscasafhffqsxy36t90ldv06wqrk2qum8x5w");
// pointer address
const changeAddress = CML.Address.from_bech32("addr_test1gz2fxv2umyhttkxyxp8x0dlpdt3k6cwng5pxj3jhsydzerspqgpsqe70et");

// add output to the tx
txBuilder.add_output(
CML.TransactionOutputBuilder()
.with_address(outputAddress)
.next()
.with_value(CML.Value.from_coin(BigInt(1000000)))
.build()
);

// calculate the min fee required and send any change to an address
// this moves onto the next step of building the transaction: providing witnesses
const signedTxBuilder = tx_builder.build(
changeAddress,
CML.ChangeSelectionAlgo.Default
);

// sign with the key that owns the input used
signedTxBuilder.add_vkey(CML.make_vkey_witness(txHash, prvKey));

const tx = signedTxBuilder.build_checked();
// ready to submit, can be converted to CBOR via tx.to_cbor_bytes() or to_cbor_hex() for hex
+

A note on fees

+

Fees in Cardano are based directly on the size of the final encoded transaction. It is important to note that a transaction created by this library potentially can vary in size compared to one built with other tools. This is because transactions, as well as other Cardano structures, are encoded using CBOR a binary JSON-like encoding. Due to arrays and maps allowing both definite or indefinite length encoding in the encoded transaction created by the library, the size can vary. This is because definite encoding consists of a tag containing the size of the array/map which can be 1 or more bytes long depending on the number of elements the size of the encoded structure, while indefinite length encoding consists of a 1 byte starting tag and after all elements are listed, a 1 byte ending tag. These variances should should only be a couple bytes and cardano-multiplatform-lib uses definite encoding by default which is the same length or smaller for any reasonable sized transaction.

+ + \ No newline at end of file diff --git a/modules/builders/index.html b/modules/builders/index.html new file mode 100644 index 00000000..50bb53b7 --- /dev/null +++ b/modules/builders/index.html @@ -0,0 +1,33 @@ + + + + + +TransactionBuilder | CML + + + + +

TransactionBuilder

+

In order to simplify transaction creation, we provide a TransactionBuilder struct that manages witnesses, fee calculation, change addresses and such. Assume we have instantiated an instance under the variable builder for this explanation. The TransactionBuilder requires several protocol parameters governing Cardano to be created which is shown in the following section. These are specified initially in the genesis file for Cardano nodes.

+

The minimum required for a valid transaction is to add inputs, outputs, and either set the fee explicitly with builder.set_fee(fee), or calculate it implicitly using builder.add_change_if_needed(address). +Optionally a transaction can also have certificates, reward withdrawals, metadata, and minting added to it. +Any change made to the builder can impact the size and thus the fee so the fee should be the last thing set. +If implicitly setting the fee any extra ADA (inputs + withdrawals - outputs + refund - deposit - min fee) is sent to the provided change address. +Fees must be sufficient, i.e. inputs + withdrawals + refund >= outputs + deposit + fee which must be manually ensured if you explicitly set the fee. Any extra fee is not necessary and the extra ADA beyond that will be burned. +Once the transaction is ready, const body = builder.build() can be called to return a ready TransactionBody.

+

Withdrawals are ADA withdrawn as part of the rewards generated by staking and deposits are refundable ADA locked while resources such as stake certificates or pool registrations exist on the blockchain. They are returned as refunds when these resources are deregistered/retired.

+

To get to a transaction ready to post on the blockchain, we must create a Transaction from that, which consists of the TransactionBody, a matching TransactionWitnessSet and optionally an AuxiliaryData. +The witnesses and optional metadata must match those provided to the builder. The witnesses must sign the hash of the transaction body returned by hash_transaction(body). In addition to the witnesses for inputs, withdrawals and some certificates require witnesses as well. For example, staking address registration does not require a witness while stake address de-registration requires one. For any questions or doubts about the rules governing fees, deposits, rewards, certificates or which witness types are required refer to the specs for the relevant era, specifically the Shelley design specification for general design for non-governance certificates. Refer to the Conway specs for those. The formal specification could be useful for specific details as well. The design spec contains details about which certificates require which type of witnesses in the Certificates and Registrations section.

+

TransactionBuilderConfig

+

To correctly make transactions the builder must know some on-chain parameters such as the current fee costs, key deposits, etc. These can all potentially change, even if some have largely been static for large periods of time. We pass these into the builder via the TransactionBuilderConfigBuilder. For test things out hard-coding them might suffice, but these parameters should ideally be fetched from the current blockchain head or your transactions could fail to be accepted by the network or will end up paying higher fees. The cost models parameter is optional if you are not building a transaction that utilizes Plutus smart contracts.

+

Code examples for the builders will assume you have a make_tx_builder() function that creates a TransactionBuilder with the appropriate config.

+

Blockfrost

+

One way of getting this information is via the epochs/latest/parameters endpoint of blockfrost. This can be automated from rust using the cml-blockfrost crate's make_tx_builder_cfg(). Blockfrost is by no means necessary but it can be convenient. It is possible to get this information by other means as well e.g. having a synced cardano node.

+

Using cml-blockfrost (rust):

+
let cfg = cml_blockfrost::make_tx_builder_cfg(&api).await.unwrap();
let mut tx_builder = TransactionBuilder::new(cfg);
+

This could also be done manually similar to below (or reference cml-blockfrost's code)

+

Manually using WASM:

+
let params = await blockfrost.epochsLatestParameters();

// cost order is based on lex ordering of keys
let costModels = CML.CostModels.new();
let v1Costs = params.cost_models['PlutusV1'];
if (v1Costs != null) {
let v1CMLCosts = CML.IntList.new();
for (key in Object.keys(v1Costs).toSorted()) {
v1CMLCosts.add(CML.Int.new(v1Costs[key]));
}
costModels.set_plutus_v1(v1CMLCosts);
}
// cost order is based on lex ordering of keys
let v2Costs = params.cost_models['PlutusV2'];
if (v2Costs != null) {
let v2CMLCosts = CML.IntList.new();
for (key in Object.keys(v2Costs).toSorted()) {
v2CMLCosts.add(CML.Int.new(v2Costs[key]));
}
costModels.set_plutus_v2(v2CMLCosts);
}
// note: as of writing this the sancho testnet format is different for v3
// compared to v1/v2. this may remain true once mainnet switches over so
// please inspect the object you are getting for cost models from blockfrost

let configBuilder = CML.TransactionBuilderConfigBuilder.new()
.fee_algo(CML.LinearFee.new(params.min_fee_a, params.min_fee_b))
.coins_per_utxo_byte(BigNum(params.coins_per_utxo_size))
.pool_deposit(BigNum(params.pool_deposit))
.key_deposit(BigNum(params.key_deposit))
.max_value_size(Number(params.max_val_size))
.max_tx_size(params.max_tx_size)
.ex_unit_prices(CML.ExUnitPrices.new(
CML.SubCoin.from_base10_f32(params.price_mem),
CML.SubCoin.from_base10_f32(params.price_step)
))
.cost_models(costModels)
.collateral_percentage(params.collateral_percent)
max_collateral_inputs(params.max_collateral_inputs);
let mut txBuilder = CML.TransactionBuilder.new(configBuilder.build());
+ + \ No newline at end of file diff --git a/modules/cbor/index.html b/modules/cbor/index.html new file mode 100644 index 00000000..9a6f53cc --- /dev/null +++ b/modules/cbor/index.html @@ -0,0 +1,36 @@ + + + + + +CBOR | CML + + + + +

CBOR

+

Cardano on-chain types are stored using CBOR, a data format similar to JSON but with many more features and in binary.

+

Tool Interoperability

+

Due to CBOR's flexibility it is possible that one piece of CBOR can be represented in multiple ways in the binary encoding. This causes problems when using CBOR taken on-chain or from another tool and using it with another tool. Notably, one small difference in the binary encoding of CBOR could result in hashes being totally different. e.g. metadatum hashes or transaction hashes calculated in a dApp might be different than in the wallet causing the entire transaction to be rejected by the network.

+

CML solves this by supporting automatically every single possible CBOR encoding variation. On-chain types created by deserializing from CBOR bytes will remember these details and re-serializing will use them and result in the same CBOR bytes, unlike some other tools.

+

Rust

+

On-chan types in rust can (de)serialize to/from CBOR Via the Serialize/Deserialize and ToBytes/FromBytes traits located within the cml_core::serialize module.

+

Most on-chain types implement the Serialize and Deserialize traits. These traits guarantee that all CBOR encoding details are preserved upon deserialization and upon serialization it is possible to choose between canonical CBOR encoding and arbitrary encodings (the original it was decoded from).

+

Byron-era types do not implement Serialize/Deserialize and instead implement ToBytes/FromBytes. Byron on-chain types are always in canonical CBOR so this was not necessary.

+

The types in the cip25 module also do not support Serialize/Deserialize in favor of ToBytes/FromBytes. The underlying metadata on-chain does and you should use the types incml_core::metadata

+
use cml_core::serialization::{Serialize, Deserialize};
let canonical_cbor_hex = "825820aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa01";
// these all represent the following CBOR:
// [ ; array of 2 elements (transaction input struct)
// 0xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA, ; bytes (tx hash)
// 1 ; unsigned integer (tx index)
// ]
let non_canonical_cbor = [
canonical_cbor_hex,
"825820aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1a00000001",
"9f5f48aaaaaaaaaaaaaaaa48aaaaaaaaaaaaaaaa48aaaaaaaaaaaaaaaa48aaaaaaaaaaaaaaaaff01ff",
"9900025820aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa190001",
"9b00000000000000025f41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aaff1b0000000000000001",
];
for orig_cbor_hex in non_canonical_cbor {
let tx_in = TransactionInput::from_cbor_bytes(&hex::decode(orig_cbor_hex).unwrap()).unwrap();
// serialize back to cbor bytes using the same cbor encoding details so it will match
// the format where it came from
assert_eq!(hex::encode(tx_in.to_cbor_bytes()), orig_cbor_hex);
// no matter how it was created it will represent the same data and can be encoded to
// canonical cbor bytes which will be the same as all of these are the same transaction input
assert_eq!(hex::encode(tx_in.to_canonical_cbor_bytes()), canonical_cbor_hex);
}
+

WASM

+

All on-chain types have the traits directly exposed on each struct as the methods:

+
    +
  • .to_cbor_bytes()
  • +
  • .to_canonical_cbor_bytes()
  • +
  • .from_cbor_bytes()
  • +
  • .to_cbor_hex()
  • +
  • .to_canonical_cbor_hex()
  • +
  • .from_cbor_hex()
  • +
+

The hex ones are useful for working with CIP-30 (dApp connector).

+

On post-Byron on-chain types this delegates to Serialize/Deserialize (see rust section) and preserve round-trip always. CIP25 and Byron types will always serialize to canonical CBOR. All on-chain data during the Byron era has to be canonical CBOR so this is not a big issue but is worth noting.

+
let canonicalCborHex = "825820aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa01";
// these all represent the following CBOR:
// [ ; array of 2 elements (transaction input struct)
// 0xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA, ; bytes (tx hash)
// 1 ; unsigned integer (tx index)
// ]
let nonCanonicalCbor = [
canonicalCborHex,
"825820aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1a00000001",
"9f5f48aaaaaaaaaaaaaaaa48aaaaaaaaaaaaaaaa48aaaaaaaaaaaaaaaa48aaaaaaaaaaaaaaaaff01ff",
"9900025820aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa190001",
"9b00000000000000025f41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aaff1b0000000000000001",
];
for (let origCborHex of nonCanonicalCbor) {
let txIn = CML.TransactionInput.from_cbor_hex(orig_cbor_hex);
// serialize back to cbor bytes using the same cbor encoding details so it will match
// the format where it came from
console.assert(txIn.to_cbor_hex() == origCborHex);
// no matter how it was created it will represent the same data and can be encoded to
// canonical cbor bytes which will be the same as all of these are the same transaction input
console.assert(txIn.to_canonical_cbor_hex() == canonicalCborHex);
}
+ + \ No newline at end of file diff --git a/modules/chain/index.html b/modules/chain/index.html new file mode 100644 index 00000000..1b4f9c8a --- /dev/null +++ b/modules/chain/index.html @@ -0,0 +1,14 @@ + + + + + +Chain | CML + + + + +

Chain

+

This crate contains all of the on-chain types used in the current Cardano era. All of these types can be serialized and deserialized from their on-chain CBOR encodings. Also included are some utility funtionality for working with them, as well as builders for creating them.

+ + \ No newline at end of file diff --git a/modules/cip36/index.html b/modules/cip36/index.html new file mode 100644 index 00000000..ba5bb3fb --- /dev/null +++ b/modules/cip36/index.html @@ -0,0 +1,13 @@ + + + + + +CIP36 | CML + + + + + + + \ No newline at end of file diff --git a/modules/core/index.html b/modules/core/index.html new file mode 100644 index 00000000..0d7ed1e7 --- /dev/null +++ b/modules/core/index.html @@ -0,0 +1,14 @@ + + + + + +Core | CML + + + + +

Core

+

This crate is for core features and traits common to all CML crates. Most users likely won't need to directly use this module except for possibly pulling in traits used with other cml crates. If you are using CML from WASM/typescript this module will not be needed as any used types will be re-exported in the crates (e.g. cml-chain-wasm, cml-cip25-wasm, etc) that use it.

+ + \ No newline at end of file diff --git a/modules/crypto/generating_keys/index.html b/modules/crypto/generating_keys/index.html new file mode 100644 index 00000000..c29309ef --- /dev/null +++ b/modules/crypto/generating_keys/index.html @@ -0,0 +1,35 @@ + + + + + +Generating Keys and Addresses | CML + + + + +

Generating Keys and Addresses

+

BIP32 Keys

+

There are two main categories of keys in this library. There are the raw PublicKey and PrivateKey which are used for cryptographically signing/verifying, and BIP32PrivateKey/BIP32PublicKey which in addition to this have the ability to derive additional keys from them following the BIP32 derivation scheme variant called BIP32-Ed25519, which will be referred to as BIP32 for brevity. We use the BIP44 spec variant for Ed25519 as well for the derivation paths using 1852 or 44 as the purpose consant and 1815 for the coin type depending on address type. See this doc for more details.

+

This is demonstrated with the below code

+
function harden(num: number): number {
return 0x80000000 + num;
}


const rootKey = CardanoWasm.BIP32PrivateKey.from_bech32("xprv17qx9vxm6060qjn5fgazfue9nwyf448w7upk60c3epln82vumg9r9kxzsud9uv5rfscxp382j2aku254zj3qfx9fx39t6hjwtmwq85uunsd8x0st3j66lzf5yn30hwq5n75zeuplepx8vxc502txx09ygjgx06n0p");
const accountKey = rootKey
.derive(harden(1852)) // purpose
.derive(harden(1815)) // coin type
.derive(harden(0)); // account #0

const utxoPubKey = accountKey
.derive(0) // external
.derive(0)
.to_public();

const stakeKey = accountKey
.derive(2) // chimeric
.derive(0)
.to_public();
+

BIP39 Entropy

+

To generate a BIP32PrivateKey from a BIP39 recovery phrase it must be first converted to entropy following the BIP39 protocol(). This library does not directly handle that, but once entropy is created it is possible to use Bip32PrivateKey.from_bip39_entropy(entropy, password). For more information see the CIP3 Cardano improvement proposal. The code below uses the bip39 npm package to generate a root BIP32PrivateKey from a BIP39 mnemonic.

+
import { mnemonicToEntropy } from 'bip39';

const entropy = mnemonicToEntropy(
[ "test", "walk", "nut", "penalty", "hip", "pave", "soap", "entry", "language", "right", "filter", "choice" ].join(' ')
);

const rootKey = CardanoWasm.Bip32PrivateKey.from_bip39_entropy(
Buffer.from(entropy, 'hex'),
Buffer.from(''),
);
+

Use in Addresses

+

Once we have reached the desired derivation path, we must convert the BIP32PrivateKey or BIP32PublicKey to a PrivateKey or PublicKey by calling .to_raw_key() on them with the exception of Byron addresses. +For example, to create an address using the utxoPubKey and stakeKey in the first example, we can do:

+
// base address with staking key
const baseAddr = CardanoWasm.BaseAddress.new(
CardanoWasm.NetworkInfo.mainnet().network_id(),
CardanoWasm.StakeCredential.from_keyhash(utxoPubKey.to_raw_key().hash()),
CardanoWasm.StakeCredential.from_keyhash(stakeKey.to_raw_key().hash()),
);

// enterprise address without staking ability, for use by exchanges/etc
const enterpriseAddr = CardanoWasm.EnterpriseAddress.new(
CardanoWasm.NetworkInfo.mainnet().network_id(),
CardanoWasm.StakeCredential.from_keyhash(utxoPubKey.to_raw_key().hash())
);

// pointer address - similar to Base address but can be shorter, see formal spec for explanation
const ptrAddr = CardanoWasm.PointerAddress.new(
CardanoWasm.NetworkInfo.mainnet().network_id(),
CardanoWasm.StakeCredential.from_keyhash(utxoPubKey.to_raw_key().hash()),
CardanoWasm.Pointer.new(
100, // slot
2, // tx index in slot
0 // cert indiex in tx
)
);

// reward address - used for withdrawing accumulated staking rewards
const rewardAddr = CardanoWasm.RewardAddress.new(
CardanoWasm.NetworkInfo.mainnet().network_id(),
CardanoWasm.StakeCredential.from_keyhash(stakeKey.to_raw_key().hash())
);

// bootstrap address - byron-era addresses with no staking rights
const byronAddr = CardanoWasm.ByronAddress.icarus_from_key(
utxoPubKey, // Ae2* style icarus address
CardanoWasm.NetworkInfo.mainnet().protocol_magic()
);
+

Note that the byron-era address can only be created in this library from icarus-style addresses that start in Ae2 and that Daedalus-style addresses starting in Dd are not directly supported.

+

These are all address variant types with information specific to its address type. There is also an Address type which represents any of those variants, which is the type use in most parts of the library. For example to create a TransactionOutput manually we would have to first convert from one of the address variants by doing:

+
const address = baseAddress.to_address();

const output = CardanoWasm.TransactionOutput(address, BigNum.from_str("365"));
+

If the address is already a Shelley address in raw bytes or a bech32 string we can create it directly via:

+
const addr = CardanoWasm.Address.from_bech32("addr1vyt3w9chzut3w9chzut3w9chzut3w9chzut3w9chzut3w9cj43ltf");

+

Other Key Types

+

Conversion between cardano-cli 128-byte XPrv keys and BIP32PrivateKey is also supported:

+
const bip32PrivateKey = CardanoWasm.BIP32PrivateKey.from_128_xprv(xprvBytes);
assert(xprvBytes == CardanoWasm.BIP32PrivateKey.to_128_xprv());
+

96-byte XPrv keys are identical to BIP32PrivateKeys byte-wise and no conversion is needed. +For more details see this document regarding legacy keys.

+

There is also LegacyDaedalusPrivateKey which is used for creating witnesses for legacy Daedalus Dd-type addresses.

+ + \ No newline at end of file diff --git a/modules/crypto/index.html b/modules/crypto/index.html new file mode 100644 index 00000000..85e6134e --- /dev/null +++ b/modules/crypto/index.html @@ -0,0 +1,43 @@ + + + + + +crypto | CML + + + + +

crypto

+

AuxiliaryDataHash

+

Bip32PrivateKey

+

Bip32PublicKey

+

BlockBodyHash

+

BlockHeaderHash

+

BootstrapWitness

+

BootstrapWitnesses

+

DataHash

+

Ed25519KeyHash

+

Ed25519Signature

+

GenesisDelegateHash

+

GenesisHash

+

KESSignature

+

KESVKey

+

LegacyDaedalusPrivateKey

+

Nonce

+

PoolMetadataHash

+

PrivateKey

+

PublicKey ED25519 key used as public key

+

PublicKeys

+

ScriptDataHash

+

ScriptHash

+

TransactionHash

+

VRFCert

+

VRFKeyHash

+

VRFVKey

+

Vkey

+

Vkeys

+

Vkeywitness

+

Vkeywitnesses

+ + \ No newline at end of file diff --git a/modules/json/index.html b/modules/json/index.html new file mode 100644 index 00000000..357d0ae1 --- /dev/null +++ b/modules/json/index.html @@ -0,0 +1,29 @@ + + + + + +JSON | CML + + + + +

JSON

+

General structs

+

All on-chain types have to/from JSON support. The vast majority is auto-generated but some have custom logic e.g. Url, Ipv4, BigInteger, etc.

+

WASM

+

In WASM JSON conversions are exposed by .to_json() and .from_json() methods on all supported wrappers. There is also a to_js_value().

+
let txInJson = "{\"transaction_id\":\"0fba1404ed9b82b41938ba2e8bda7bec8cce813fb7e7cd7692b43caa76fe891c\",\"index\":3}";

let txIn = CML.TransactionInput.from_json(txInJson);

console.log(`txIn JSON: ${txIn.to_json()}`);
+

Rust

+

JSON conversions are exposed in rust via the serde::Serialize and serde::Deserialize traits together with serde_json.

+

example:

+
let tx_in_json = "{\"transaction_id\":\"0fba1404ed9b82b41938ba2e8bda7bec8cce813fb7e7cd7692b43caa76fe891c\",\"index\":3}";

// from JSON using serde_json::from_str() - note the type annotations
let tx_in: TransactionInput = serde_json::from_str(tx_in_json).unwrap();

// to JSON using serde_json::to_string() - use to_string_pretty() if you want more human-readable formatting
println!("tx_in JSON: {}", serde_json::to_string(&tx_in).unwrap());
+

Metadata

+

Metadata, on top of the generic API mentioned above, has specific JSON functionality for compatability with cardano-node.

+

There are three formats on MetadataJsonSchema. NoConversions is the stricted, stricter than cardano-node and only converts when there are no implicit conversions at all. BasicConversions is the node's TxMetadataJsonNoSchema and DetailedSchema its TxMetadataJsonDetailedSchema. See MetadataJsonSchema for more info on the schema.

+
let basic_json = "{\"0x8badf00d\": \"0xdeadbeef\",\"9\": 5,\"obj\": {\"a\":[{\"5\": 2},{}]}}";
let metadatum = CML.encode_json_str_to_metadatum(basic_json, CML.MetadataJsonSchema.BasicConversions);
console.log(`detailed json: ${CML.decode_metadatum_to_json_str(metadatum, CML.MetadataJsonSchema.DetailedSchema)}`);
// OUTPUT:
// detailed json: {"map":[{"k":{"bytes":"8badf00d"},"v":{"bytes":"deadbeef"}},{"k":{"int":9},"v":{"int":5}},{"k":{"string":"obj"},"v":{"map":[{"k":{"string":"a"},"v":{"list":[{"map":[{"k":{"int":5},"v":{"int":2}}]},{"map":[]}]}}]}}]}
+

Plutus Datums

+

Plutus datums also have additional cardano-node JSON support. Remember that Plutus has no String datum so the strings there will be converted to utf8 bytes. See CardanoNodePlutusDatumSchema for more info on the schema.

+
let basic_json = "{ \"100\": [ { \"x\": \"0\", \"y\": 1 } ], \"foo\": \"0x0000baadf00d0000cafed00d0000deadbeef0000\" }";
let datum = CML.encode_json_str_to_plutus_datum(basic_json, CML.CardanoNodePlutusDatumSchema.BasicConversions);
console.log(`detailed json: ${CML.decode_plutus_datum_to_json_str(datum, CML.CardanoNodePlutusDatumSchema.DetailedSchema,
)}`);
// OUTPUT:
// detailed json: {"map":[{"k":{"int":100},"v":{"list":[{"map":[{"k":{"bytes":"78"},"v":{"bytes":"30"}},{"k":{"bytes":"79"},"v":{"int":1}}]}]}},{"k":{"bytes":"666f6f"},"v":{"bytes":"0000baadf00d0000cafed00d0000deadbeef0000"}}]}
+ + \ No newline at end of file diff --git a/modules/metadata/index.html b/modules/metadata/index.html new file mode 100644 index 00000000..45c1dcd6 --- /dev/null +++ b/modules/metadata/index.html @@ -0,0 +1,163 @@ + + + + + +Metadata | CML + + + + +

Metadata

+

Transaction Metadata format

+

Transaction after the Shelley hardfork can contain arbitrary transaction meta (note: this is NOT the same as pool metadata)

+

Transaction metadata takes the form of a map of metadatums, which are recursive JSON-like structures.

+

It is defined in CDDL, a schema grammar for representing CBOR binary encoding as:

+
transaction_metadatum =
{ * transaction_metadatum => transaction_metadatum }
/ [ * transaction_metadatum ]
/ int
/ bytes .size (0..64)
/ text .size (0..64)

transaction_metadatum_label = uint

transaction_metadata =
{ * transaction_metadatum_label => transaction_metadatum }
+

For each use we use a metadatum label specific to our use into the TransactionMetadatum map. If we had a JSON object such as

+
{
"receiver_id": "SJKdj34k3jjKFDKfjFUDfdjkfd",
"sender_id": "jkfdsufjdk34h3Sdfjdhfduf873",
"comment": "happy birthday",
"tags": [0, 264, -1024, 32]
}
+

There are 4 ways we can achieve this with different trade-offs:

+
    +
  1. Directly use: using the Metadata-related structures used in the library
  2. +
  3. JSON conversion: conversion to/from JSON using our utility functions
  4. +
  5. CDDL subset: writing a CDDL spec of this structure that is representable by that recursive metadatum CDDL
  6. +
  7. Raw bytes: encoding raw-bytes using our utility functions.
  8. +
+

Each section will give examples of how to encode a similar structure. Understanding CDDL is only necessary for the last 2 options, but it is fairly simple to understand.

+

If your metadata schema is fixed and will be used frequently you should consider the CDDL spec option. +If your schema is not often used or used from many languages, the JSON option can be good as it is low set-up and fairly tech agnostic. +If your schema is very dynamic or non-existent, the direct use or JSON options are likely best. +The raw bytes option is only recommended if your data does not conform to the metadata format.

+

Metadata limitations

+

These limitations are mentioned in the CDDL definition, but are worth also mentioning in prose:

+
    +
  • Strings must be at most 64 bytes when UTF-8 encoded.
  • +
  • Bytestrings are hex-encoded, with a maximum length of 64 bytes.
  • +
+

Direct use

+

Upsides:

+
    +
  • Flexible
  • +
  • Readable by other methods
  • +
+

Downsides:

+
    +
  • Can be quite tedious to write
  • +
  • Structural validation must be done by hand (partially)
  • +
+

As the metadatum structure is fairly expressive, we can directly use it using the structs in the metadata module of this library. These directly represent the types given in the CDDL. Namely:

+
    +
  • TransactionMetadatum - Can represent one of those 5 variant types.
  • +
  • MetadataMap - The map variant that maps from metadatums to other metadatums. This is unordered and indexed by metadatums. This is like an object in JSON.
  • +
  • MetadataList - An ordered list indexed starting at 0. This is like an array in JSON.
  • +
+

The variants for numbers, bytes and text are not specific to metadata and are directly used with the general Int type representing a signed or unsigned number, byte arrays accepting byte arrays/Buffer, and strings being JS strings.

+

We could construct the JSON example above with the following code:

+
const map = CardanoWasm.MetadataMap.new();
map.insert(
CardanoWasm.TransactionMetadatum.new_text("receiver_id"),
CardanoWasm.TransactionMetadatum.new_text("SJKdj34k3jjKFDKfjFUDfdjkfd"),
);
map.insert(
CardanoWasm.TransactionMetadatum.new_text("sender_id"),
CardanoWasm.TransactionMetadatum.new_text("jkfdsufjdk34h3Sdfjdhfduf873"),
);
map.insert(
CardanoWasm.TransactionMetadatum.new_text("comment"),
CardanoWasm.TransactionMetadatum.new_text("happy birthday"),
);
const tags = CardanoWasm.MetadataList.new();
tags.add(CardanoWasm.TransactionMetadatum.new_int(CardanoWasm.Int.new(CardanoWasm.BigNum.from_str("0"))));
tags.add(CardanoWasm.TransactionMetadatum.new_int(CardanoWasm.Int.new(CardanoWasm.BigNum.from_str("264"))));
tags.add(CardanoWasm.TransactionMetadatum.new_int(CardanoWasm.Int.new_negative(CardanoWasm.BigNum.from_str("1024"))));
tags.add(CardanoWasm.TransactionMetadatum.new_int(CardanoWasm.Int.new(CardanoWasm.BigNum.from_str("32"))));
map.insert(
CardanoWasm.TransactionMetadatum.new_text("tags"),
CardanoWasm.TransactionMetadatum.new_list(tags),
);
const metadatum = CardanoWasm.TransactionMetadatum.new_map(map);
+

We could then parse the information back as such:

+
try {
const map = metadatum.as_map();
const receiver = map.get(CardanoWasm.TransactionMetadatum.new_text("receiver_id"));
const sender = map.get(CardanoWasm.TransactionMetadatum.new_text("sender_id"));
const comment = map.get(CardanoWasm.TransactionMetadatum.new_text("comment"));
const tags = map.get(CardanoWasm.TransactionMetadatum.new_text("tags"));
} catch (e) {
// structure did not match
}
+

For decoding in a more exploratory manner we can check the types first as such:

+
function parseMetadata(metadata) {
// we must check the type first to know how to handle it
switch (metadata.kind()) {
case CardanoWasm.TransactionMetadatumKind.MetadataMap:
const mapRet = new Map();
const map = metadata.as_map();
const keys = maps.keys();
for (var i = 0; i < keys.len(); i += 1) {
const key = keys.get(i);
const value = parseMetadata(map.get(key);
mapRet.set(key, value);
}
return mapRet;
case CardanoWasm.TransactionMetadatumKind.MetadataList:
let arrRet = [];
const arr = metadata.as_list();
for (var i = 0; i < arr.len(); i += 1) {
const elem = parseMetadata(arr.get(i));
arrRet.push(elem);
}
return arrRet;
case CardanoWasm.TransactionMetadatumKind.Int:
const x = metadata.as_int();
// If the integer is too big as_i32() returns undefined
// to handle larger numbers we need to use x.as_positive() / x.as_negative() and
// convert from BigNums after checking x.is_positive() first
return x.as_i32();
case CardanoWasm.TransactionMetadatumKind.Bytes:
return Buffer.from(metadata.as_bytes());
case CardanoWasm.TransactionMetadatumKind.Text:
return metadata.as_text();
}
}
+

which recursively parses the TransactionMetadatum struct and transforms it into a JS Map / JS object structure by manually checking the types.

+

JSON conversion

+

Upsides:

+
    +
  • Flexible
  • +
  • Readable by other methods
  • +
  • Lowest set-up work involved
  • +
+

Downsides:

+
    +
  • Does not support negative integers between -2^64 + 1 and -2^63 (serde_json library restriction)
  • +
  • Structural validation must be done by hand
  • +
  • Can use more space as string keyed maps are likely to be used more than arrays would be in the CDDL solutions
  • +
+
const obj = {
receiver_id: "SJKdj34k3jjKFDKfjFUDfdjkfd",
sender_id: "jkfdsufjdk34h3Sdfjdhfduf873",
comment: "happy birthday",
tags: [0, 264, -1024, 32]
};
const metadata = CardanoWasm.encode_json_str_to_metadatum(JSON.stringify(obj), CardanoWasm.MetadataJsonSchema.NoConversions);
const metadataString = CardanoWasm.decode_metadatum_to_json_str(metadata, CardanoWasm.MetadataJsonSchema.NoConversions);
+

To support an extended set of metadata we also support 3 additional modes for JSON conversion following IOHK's cardano-node JSON schemas.

+

The three modes are:

+
    +
  • NoConversions - Faithfully converts between the minimal shared feature set between JSON and Metadata
  • +
  • BasicConversions - Adds additional support for byte(as hex strings)/integers (as strings) keys / byte (as hex strings) values.
  • +
  • DetailedSchema - Can convert almost all metadata into a specific JSON schema but is very verbose on the JSON side.
  • +
+

Details on the formats can be found in our library's metadata module or in the cardano-node file linked above. DetailedSchema is likely most useful if you need to parse any possible kind of metadata into JSON specifically, possibly to display or for debugging. +For most reasonable schemas NoConversions should suffice, or BasicConversions if byte/string keys and byte values are needed. +If you are in charge of your own schema and you do not need arbitrary keys, it is recommended not to use DetailedSchema as it is significantly more complicated to use.

+

The additions of BasicConversions are demonstrated below

+
{
"0x8badf00d": "0xdeadbeef",
"9": 5,
"obj": {
"a":[
{
"5": 2
},
{
}
]
}
}
+

which creates a map with 3 elements:

+
    +
  • 4 byte bytestring (0x8badf00d) => 4 byte bytestring (0xdeadbeef)
  • +
  • int (9) => int (5)
  • +
  • string ("obj") => object (string ("a") => list [ object (int (5) => int (2)), object (empty) ])
  • +
+

All bytestrings must be prefixed with "0x" or they will be treated as regular strings. +All strings that parse as an integer such as "125" will be treated as a metadata integer.

+

The DetailedSchema is here:

+
{"map":[
{
"k":{"bytes":"8badf00d"},
"v":{"bytes":"deadbeef"}
},
{
"k":{"int":9},
"v":{"int":5}
},
{
"k":{"string":"obj"},
"v":{"map":[
{
"k":{"string":"a"},
"v":{"list":[
{"map":[
{
"k":{"int":5},
"v":{"int":2}
}
]},
{"map":[
]}
]}
}
]}
}
]}
+

All values are represented as an object with 1 field with the key tagging the type and the value being the value itself. +This is the exact same metadata as the BasicConversions example which should illustrate that it is much more verbose to use this format, +but it can represent every kind of metadata possible, including non-string/byte/int keys. +Do note that byte strings do not start with "0x", unlike with BasicConversions.

+

This additional freedom in keys can be seen here:

+
{"map":[
{
"k":{"list":[
{"map": [
{
"k": {"int": 5},
"v": {"int": 7}
},
{
"k": {"string": "hello"},
"v": {"string": "world"}
}
]},
{"bytes": "ff00ff00"}
]},
"v":{"int":5}
}
]}
+

has a 1-element map with a value of just 5, but with a very complicated key consisting of a list with 2 elements:

+
    +
  • a 2-element map (5 => 7, "hello" => "world")
  • +
  • a bytestring (0xFF00FF00)
  • +
+

Most reasonable metadata formats, however, likely do not use map/key/compound keys and thus this is more of a fringe use or when all possible metadata must be examined from JSON (almost) without exception. +Due to library implementation details it can still fail to decode if there is a very negative number between -2^64 + 1 and -2^63.

+

Using a CDDL Subset

+

Upsides:

+
    +
  • Automatic structural typing in deserialization
  • +
  • Readable by other methods
  • +
  • Possible reduced space due to array structs not serializing keys
  • +
+

Downsides:

+
    +
  • Requires additional set-up
  • +
+

For static or relatively static types this is probably the best choice, especially if you care about structural validation or need the binary types or more complex keys.

+

As we saw in the other examples, most reasonable structures can be encoded using the standard metadata CDDL as it is almost a superset of JSON outside of true/false/null. Not only this, but if we represent a struct using an array in CDDL such as:

+
foo = [
receiver_id: text,
sender_id: text,
comment: text,
tags: [*int]
]
+

there is space savings as the keys are not stored as it is represented as an ordered array of 4 elements instead of a direct map encoding of:

+
foo = {
receiver_id: text,
sender_id: text,
comment: text,
tags": [*int]
}
+

which would serialize the keys as strings inside the resulting CBOR. Using these CDDL definitions for the example JSON structure we had results in sizes of 89 bytes for the array definition and 124 bytes for the map one. Using the JSON encoding would also result in a metadata size of 124 bytes. Maps however do have the advantage of easy optional fields and a more readable metadata for external users who don't have access to the CDDL as the field names will be stored directly.

+

After you have created your CDDL definition, if you need to check that your CDDL conforms to the metadata CDDL we have a tool located in the /tools/metadata-cddl-checker/ directory. Move to this directory and put your CDDL in a file called input.cddl there first, then run

+
cargo build
cargo run
+

Once we have the CDDL file and it has passed metadata format validation we can use the cddl-codegen tool that we used to initially generate the serialization/deserialization/structural code for the core Shelley structures from the shelley cddl spec.

+

Assuming we are in the cddl-codegen root directory and have created a input.cddl file in that directory containing the CDDL we wish to generate we can build and code-generate with

+
cargo build
cargo run
+

which should generate a wasm-convertible rust library for parsing our CDDL definition in the /export/ directory. +After this we need to generate a wasm package from the rust code by running the following (you can do --target=browser too)

+
cd export
wasm-pack build --target=nodejs
wasm-pack pack
+

which should give you the library as a package in the /pkg/ directory.

+

Once we have imported the library we can then use it as such:

+
const tags = OurMetadataLib.Ints.new();
// if we have smaller (32-bit signed) numbers we can construct easier
tags.add(OurMetadataLib.Int.new_i32(0));
// but for bigger (>= 2^32) numbers we must use BigNum and specify the sign ourselves
tags.add(OurMetadataLib.Int.new(CardanoWasm.Int.from_str("264")));
// and for negative large (< -2^32) numbers (here we construct -1024)
tags.add(OurMetadataLib.Int.new_negative(CardanoWasm.Int.from_str("1024")));
tags.add(OurMetadataLib.Int.new_i32(32));
const map = OurMetadataLib.Foo.new("SJKdj34k3jjKFDKfjFUDfdjkfd", "jkfdsufjdk34h3Sdfjdhfduf873", "happy birthday", tags)
let metadata;
try {
metadata = CardanoWasm.TransactionMetadata.from_bytes(map.to_bytes());
} catch (e) {
// this should never happen if OurMetadataLib was generated from compatible CDDL with the metadata definition
}
+

likewise you can parse the metadata back very simply with:

+
let cddlMetadata;
try {
cddlMetadata = OurMetadataLib.Foo.from_bytes(metadata.to_bytes());
} catch (e) {
// this should never happen if OurMetadataLib was generated from compatible CDDL with the metadata definition
}
// we can now directly access the fields with cddlMetadata.receiver_id(), etc
+

If we take advantage of the additional primitives not defined in CDDL but defined for cddl-codegen, then we can specify precisions of u32, u64, i64, i32 for specifying 32 or 64 bits instead of just a general purpose uint/nint/int. +If you know your metadata will always be within one of these ranges it can be much more convenient to work with, and if you have signed data this will also make it easier to work with instead of the Int class that CDDL int might generate, since that is either an up to 64-bit positive or an up to 64 negative numbers. +This is particularly useful here as lists of CDDL primitives can be exposed directly as Vec<T> to wasm from rust, but when we have int (converts to Int struct) or uint (converts to BigNum struct) a separate structure like that Ints one used above is used. Using the 32-bit versions allows direct js number conversions to/from wasm.

+

If we simply change the tags field to tags: [+i32] our code becomes:

+
// notice how we can directly work with js numbers here now!
// but remember they must fit into a 32-bit number now - no 64-bit numbers like are allowed in the metadata
const tags = [0, 264, -1024, 32];
const map = OurMetadataLib.Foo.new("SJKdj34k3jjKFDKfjFUDfdjkfd", "jkfdsufjdk34h3Sdfjdhfduf873", "happy birthday", tags)
+

and deserializaing likewise is much simpler as metadata.tags() will return a JS array or numbers rather than a rust-wasm struct that must be accessed via the wasm boundary.

+

Raw Bytes Encoding

+

Upsides:

+
    +
  • Can store arbitrary data
  • +
  • Potential space-savings if the data is compressed
  • +
+

Downsides:

+
    +
  • Not readable by other methods - must be decoded using this method
  • +
  • Requires additional set-up
  • +
+

While most data would likely conform to the metadata CDDL subset (or JSON), if your data does not fit there then this encoding style will be necessary.

+

If you still want to take advantage of CDDL type-checking it is possible to create a library just as in the CDDL subset section but without running the checker tool. This could be useful if you are using CDDL outside of the metadata CDDL structure. Otherwise, you can store whatever bytes you want.

+

Note: To conform with the 64-byte limitation on metadata binary values, this method will split the bytes into 64-byte chunks

+
const bytes = /* whatever method you want - you can use the CDDL solution in the 3rd option here */
const metadata = CardanoWasm.encode_arbitrary_bytes_as_metadatum(bytes);
const decoded_bytes = CardanoWasm.decode_arbitrary_bytes_from_metadatum(metadata);
assertEquals(bytes, decoded_bytes);
+ + \ No newline at end of file diff --git a/modules/multi-era/index.html b/modules/multi-era/index.html new file mode 100644 index 00000000..c31cdc2d --- /dev/null +++ b/modules/multi-era/index.html @@ -0,0 +1,16 @@ + + + + + +Multi-Era | CML + + + + +

Multi-Era

+

This crate contains all the on-chain types for previous eras (Byron, Shelley, Alonzo, Babbage, etc). There are also wrappers around this era if you need era-agnostic types e.g. parsing all blocks from genesis. The wrappers support the current era as well.

+

Parsing blocks across eras

+

MultiEraBlock can be used for this. Take care about the format you are giving it. Some tools (e.g. Pallas/Oura) won't give you the block format from the binary spec directly, but will instead have it wrapped in some network wrapper array containing the explicit era tag. If your CBOR looks like [uint, <actual block here>] (likely starting with 82 in hex e.g. 8201, 8204, 8207, etc) then you should use MultiEraBlock.from_explicit_network_cbor_bytes() instead of MultiEraBlock.from_cbor_bytes().

+ + \ No newline at end of file diff --git a/modules/wasm/index.html b/modules/wasm/index.html new file mode 100644 index 00000000..447f673f --- /dev/null +++ b/modules/wasm/index.html @@ -0,0 +1,21 @@ + + + + + +WASM Usage | CML + + + + +

WASM Usage

+

Memory Management

+

If you are using CML from the browser this section is likely irrelevant for you. +Using CML from a javascript environment with weakrefs enabled should have automatic memory cleanup. +If this is not the case (e.g. non-javascript/typescript WASM environment), or you are using CML inside of a very tight loop that is executed hundreds of thousands of times in a short period it might be advisable to explicitly call .free() on any CML types after they are used. +This is because while from an environment with weakrefs the types will eventually be freed automatically, +it is still possible to use excessive memory or run out if, for example, large CML types are created in a constant loop that runs many times (e.g. hundreds of thousands of times without a break), as the automatic cleanup will not be run in time. Do not worry about this for normal CML usage. +Do not call .free() on a type or use it after .free() has been called on it already. +WASM types passed into other CML APIs will be done so by reference and will not have their .free() method called just by doing so, but will still eventually be cleaned up if weakrefs are available.

+ + \ No newline at end of file diff --git a/search-index.json b/search-index.json new file mode 100644 index 00000000..f42503c7 --- /dev/null +++ b/search-index.json @@ -0,0 +1 @@ +[{"documents":[{"i":1,"t":"Installation & Getting Started","u":"/cardano-multiplatform-lib/getting_started","b":[]},{"i":10,"t":"Crate Architecture","u":"/cardano-multiplatform-lib/crate_architecture","b":[]},{"i":12,"t":"TransactionBuilder","u":"/cardano-multiplatform-lib/modules/builders/","b":["Modules","Builders"]},{"i":18,"t":"CIP25","u":"/cardano-multiplatform-lib/modules/CIP25","b":["Modules"]},{"i":32,"t":"CIP36","u":"/cardano-multiplatform-lib/modules/cip36","b":["Modules"]},{"i":33,"t":"Chain","u":"/cardano-multiplatform-lib/modules/chain/","b":["Modules","Chain"]},{"i":35,"t":"Core","u":"/cardano-multiplatform-lib/modules/core/","b":["Modules","Core"]},{"i":37,"t":"CBOR","u":"/cardano-multiplatform-lib/modules/cbor","b":["Modules"]},{"i":45,"t":"JSON","u":"/cardano-multiplatform-lib/modules/json","b":["Modules"]},{"i":56,"t":"Multi-Era","u":"/cardano-multiplatform-lib/modules/multi-era/","b":["Modules","Multi-Era"]},{"i":60,"t":"Generating Keys and Addresses","u":"/cardano-multiplatform-lib/modules/crypto/generating_keys","b":["Modules","Crypto"]},{"i":69,"t":"WASM Usage","u":"/cardano-multiplatform-lib/modules/wasm","b":["Modules"]},{"i":72,"t":"crypto","u":"/cardano-multiplatform-lib/modules/crypto/","b":["Modules","Crypto"]},{"i":74,"t":"Cardano Multiplatform Lib","u":"/cardano-multiplatform-lib/","b":[]},{"i":84,"t":"Metadata","u":"/cardano-multiplatform-lib/modules/metadata","b":["Modules"]},{"i":97,"t":"generating_transactions","u":"/cardano-multiplatform-lib/modules/builders/generating_transactions","b":["Modules","Builders"]}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/1",[0,1.519,1,1.519,2,1.519,3,1.519]],["t/10",[4,2.218,5,2.218]],["t/12",[6,2.881]],["t/18",[7,2.881]],["t/32",[8,2.881]],["t/33",[9,2.881]],["t/35",[10,2.881]],["t/37",[11,2.881]],["t/45",[12,2.881]],["t/56",[13,2.218,14,2.218]],["t/60",[15,1.803,16,1.803,17,1.803]],["t/69",[18,2.218,19,2.218]],["t/72",[20,2.881]],["t/74",[21,1.803,22,1.803,23,1.803]],["t/84",[24,2.881]],["t/97",[25,2.881]]],"invertedIndex":[["",{"_index":1,"t":{"1":{"position":[[13,1]]}}}],["address",{"_index":17,"t":{"60":{"position":[[20,9]]}}}],["architectur",{"_index":5,"t":{"10":{"position":[[6,12]]}}}],["cardano",{"_index":21,"t":{"74":{"position":[[0,7]]}}}],["cbor",{"_index":11,"t":{"37":{"position":[[0,4]]}}}],["chain",{"_index":9,"t":{"33":{"position":[[0,5]]}}}],["cip25",{"_index":7,"t":{"18":{"position":[[0,5]]}}}],["cip36",{"_index":8,"t":{"32":{"position":[[0,5]]}}}],["core",{"_index":10,"t":{"35":{"position":[[0,4]]}}}],["crate",{"_index":4,"t":{"10":{"position":[[0,5]]}}}],["crypto",{"_index":20,"t":{"72":{"position":[[0,6]]}}}],["era",{"_index":14,"t":{"56":{"position":[[6,3]]}}}],["gener",{"_index":15,"t":{"60":{"position":[[0,10]]}}}],["generating_transact",{"_index":25,"t":{"97":{"position":[[0,23]]}}}],["get",{"_index":2,"t":{"1":{"position":[[15,7]]}}}],["instal",{"_index":0,"t":{"1":{"position":[[0,12]]}}}],["json",{"_index":12,"t":{"45":{"position":[[0,4]]}}}],["key",{"_index":16,"t":{"60":{"position":[[11,4]]}}}],["lib",{"_index":23,"t":{"74":{"position":[[22,3]]}}}],["metadata",{"_index":24,"t":{"84":{"position":[[0,8]]}}}],["multi",{"_index":13,"t":{"56":{"position":[[0,5]]}}}],["multiplatform",{"_index":22,"t":{"74":{"position":[[8,13]]}}}],["start",{"_index":3,"t":{"1":{"position":[[23,7]]}}}],["transactionbuild",{"_index":6,"t":{"12":{"position":[[0,18]]}}}],["usag",{"_index":19,"t":{"69":{"position":[[5,5]]}}}],["wasm",{"_index":18,"t":{"69":{"position":[[0,4]]}}}]],"pipeline":["stemmer"]}},{"documents":[{"i":2,"t":"Install","u":"/cardano-multiplatform-lib/getting_started","h":"#install","p":1},{"i":4,"t":"Run Example","u":"/cardano-multiplatform-lib/getting_started","h":"#run-example","p":1},{"i":6,"t":"Build","u":"/cardano-multiplatform-lib/getting_started","h":"#build","p":1},{"i":8,"t":"Test","u":"/cardano-multiplatform-lib/getting_started","h":"#test","p":1},{"i":14,"t":"TransactionBuilderConfig","u":"/cardano-multiplatform-lib/modules/builders/","h":"","p":12},{"i":16,"t":"Blockfrost","u":"/cardano-multiplatform-lib/modules/builders/","h":"","p":12},{"i":19,"t":"Context","u":"/cardano-multiplatform-lib/modules/CIP25","h":"#context","p":18},{"i":21,"t":"Code Definitions","u":"/cardano-multiplatform-lib/modules/CIP25","h":"#code-definitions","p":18},{"i":23,"t":"Examples","u":"/cardano-multiplatform-lib/modules/CIP25","h":"#examples","p":18},{"i":24,"t":"Create","u":"/cardano-multiplatform-lib/modules/CIP25","h":"#create","p":18},{"i":26,"t":"Parse CIP25Metadata","u":"/cardano-multiplatform-lib/modules/CIP25","h":"#parse-cip25metadata","p":18},{"i":28,"t":"Parse Metadata Details","u":"/cardano-multiplatform-lib/modules/CIP25","h":"#parse-metadata-details","p":18},{"i":30,"t":"Loose Parse Metadata details","u":"/cardano-multiplatform-lib/modules/CIP25","h":"#loose-parse-metadata-details","p":18},{"i":39,"t":"Tool Interoperability","u":"/cardano-multiplatform-lib/modules/cbor","h":"#tool-interoperability","p":37},{"i":41,"t":"Rust","u":"/cardano-multiplatform-lib/modules/cbor","h":"#rust","p":37},{"i":43,"t":"WASM","u":"/cardano-multiplatform-lib/modules/cbor","h":"#wasm","p":37},{"i":46,"t":"General structs","u":"/cardano-multiplatform-lib/modules/json","h":"#general-structs","p":45},{"i":48,"t":"WASM","u":"/cardano-multiplatform-lib/modules/json","h":"#wasm","p":45},{"i":50,"t":"Rust","u":"/cardano-multiplatform-lib/modules/json","h":"#rust","p":45},{"i":52,"t":"Metadata","u":"/cardano-multiplatform-lib/modules/json","h":"#metadata","p":45},{"i":54,"t":"Plutus Datums","u":"/cardano-multiplatform-lib/modules/json","h":"#plutus-datums","p":45},{"i":58,"t":"Parsing blocks across eras","u":"/cardano-multiplatform-lib/modules/multi-era/","h":"#parsing-blocks-across-eras","p":56},{"i":61,"t":"BIP32 Keys","u":"/cardano-multiplatform-lib/modules/crypto/generating_keys","h":"#bip32-keys","p":60},{"i":63,"t":"BIP39 Entropy","u":"/cardano-multiplatform-lib/modules/crypto/generating_keys","h":"#bip39-entropy","p":60},{"i":65,"t":"Use in Addresses","u":"/cardano-multiplatform-lib/modules/crypto/generating_keys","h":"#use-in-addresses","p":60},{"i":67,"t":"Other Key Types","u":"/cardano-multiplatform-lib/modules/crypto/generating_keys","h":"#other-key-types","p":60},{"i":70,"t":"Memory Management","u":"/cardano-multiplatform-lib/modules/wasm","h":"#memory-management","p":69},{"i":76,"t":"Pre-requisite knowledge","u":"/cardano-multiplatform-lib/","h":"#pre-requisite-knowledge","p":74},{"i":78,"t":"Benefits of using this library","u":"/cardano-multiplatform-lib/","h":"#benefits-of-using-this-library","p":74},{"i":80,"t":"A note on code examples","u":"/cardano-multiplatform-lib/","h":"#a-note-on-code-examples","p":74},{"i":82,"t":"Documentation","u":"/cardano-multiplatform-lib/","h":"#documentation","p":74},{"i":85,"t":"Transaction Metadata format","u":"/cardano-multiplatform-lib/modules/metadata","h":"#transaction-metadata-format","p":84},{"i":87,"t":"Metadata limitations","u":"/cardano-multiplatform-lib/modules/metadata","h":"#metadata-limitations","p":84},{"i":89,"t":"Direct use","u":"/cardano-multiplatform-lib/modules/metadata","h":"#direct-use","p":84},{"i":91,"t":"JSON conversion","u":"/cardano-multiplatform-lib/modules/metadata","h":"#json-conversion","p":84},{"i":93,"t":"Using a CDDL Subset","u":"/cardano-multiplatform-lib/modules/metadata","h":"#using-a-cddl-subset","p":84},{"i":95,"t":"Raw Bytes Encoding","u":"/cardano-multiplatform-lib/modules/metadata","h":"#raw-bytes-encoding","p":84},{"i":98,"t":"Example code","u":"/cardano-multiplatform-lib/modules/builders/generating_transactions","h":"#example-code","p":97},{"i":100,"t":"A note on fees","u":"/cardano-multiplatform-lib/modules/builders/generating_transactions","h":"#a-note-on-fees","p":97}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/2",[0,4.071]],["t/4",[1,3.212,2,2.138]],["t/6",[3,4.071]],["t/8",[4,4.071]],["t/14",[5,4.071]],["t/16",[6,4.071]],["t/19",[7,4.071]],["t/21",[8,2.383,9,3.212]],["t/23",[2,2.709]],["t/24",[10,4.071]],["t/26",[11,2.138,12,3.212]],["t/28",[11,1.765,13,1.603,14,2.24]],["t/30",[11,1.503,13,1.365,14,1.908,15,2.259]],["t/39",[16,3.212,17,3.212]],["t/41",[18,3.438]],["t/43",[19,3.438]],["t/46",[20,3.212,21,3.212]],["t/48",[19,3.438]],["t/50",[18,3.438]],["t/52",[13,2.46]],["t/54",[22,3.212,23,3.212]],["t/58",[11,1.765,24,2.653,25,2.653]],["t/61",[26,3.212,27,2.713]],["t/63",[28,3.212,29,3.212]],["t/65",[30,2.138,31,3.212]],["t/67",[27,2.713,32,3.212]],["t/70",[33,3.212,34,3.212]],["t/76",[35,2.653,36,2.653,37,2.653]],["t/78",[30,1.765,38,2.653,39,2.653]],["t/80",[2,1.765,8,1.968,40,2.24]],["t/82",[41,4.071]],["t/85",[13,1.603,42,2.653,43,2.653]],["t/87",[13,1.941,44,3.212]],["t/89",[30,2.138,45,3.212]],["t/91",[46,3.212,47,3.212]],["t/93",[30,1.765,48,2.653,49,2.653]],["t/95",[50,2.653,51,2.653,52,2.653]],["t/98",[2,2.138,8,2.383]],["t/100",[40,2.713,53,3.212]]],"invertedIndex":[["address",{"_index":31,"t":{"65":{"position":[[7,9]]}}}],["benefit",{"_index":38,"t":{"78":{"position":[[0,8]]}}}],["bip32",{"_index":26,"t":{"61":{"position":[[0,5]]}}}],["bip39",{"_index":28,"t":{"63":{"position":[[0,5]]}}}],["block",{"_index":24,"t":{"58":{"position":[[8,6]]}}}],["blockfrost",{"_index":6,"t":{"16":{"position":[[0,10]]}}}],["build",{"_index":3,"t":{"6":{"position":[[0,5]]}}}],["byte",{"_index":51,"t":{"95":{"position":[[4,5]]}}}],["cddl",{"_index":48,"t":{"93":{"position":[[8,4]]}}}],["cip25metadata",{"_index":12,"t":{"26":{"position":[[6,13]]}}}],["code",{"_index":8,"t":{"21":{"position":[[0,4]]},"80":{"position":[[10,4]]},"98":{"position":[[8,4]]}}}],["context",{"_index":7,"t":{"19":{"position":[[0,7]]}}}],["convers",{"_index":47,"t":{"91":{"position":[[5,10]]}}}],["creat",{"_index":10,"t":{"24":{"position":[[0,6]]}}}],["datum",{"_index":23,"t":{"54":{"position":[[7,6]]}}}],["definit",{"_index":9,"t":{"21":{"position":[[5,11]]}}}],["detail",{"_index":14,"t":{"28":{"position":[[15,7]]},"30":{"position":[[21,7]]}}}],["direct",{"_index":45,"t":{"89":{"position":[[0,6]]}}}],["document",{"_index":41,"t":{"82":{"position":[[0,13]]}}}],["encod",{"_index":52,"t":{"95":{"position":[[10,8]]}}}],["entropi",{"_index":29,"t":{"63":{"position":[[6,7]]}}}],["era",{"_index":25,"t":{"58":{"position":[[22,4]]}}}],["exampl",{"_index":2,"t":{"4":{"position":[[4,7]]},"23":{"position":[[0,8]]},"80":{"position":[[15,8]]},"98":{"position":[[0,7]]}}}],["fee",{"_index":53,"t":{"100":{"position":[[10,4]]}}}],["format",{"_index":43,"t":{"85":{"position":[[21,6]]}}}],["gener",{"_index":20,"t":{"46":{"position":[[0,7]]}}}],["instal",{"_index":0,"t":{"2":{"position":[[0,7]]}}}],["interoper",{"_index":17,"t":{"39":{"position":[[5,16]]}}}],["json",{"_index":46,"t":{"91":{"position":[[0,4]]}}}],["key",{"_index":27,"t":{"61":{"position":[[6,4]]},"67":{"position":[[6,3]]}}}],["knowledg",{"_index":37,"t":{"76":{"position":[[14,9]]}}}],["librari",{"_index":39,"t":{"78":{"position":[[23,7]]}}}],["limit",{"_index":44,"t":{"87":{"position":[[9,11]]}}}],["loos",{"_index":15,"t":{"30":{"position":[[0,5]]}}}],["manag",{"_index":34,"t":{"70":{"position":[[7,10]]}}}],["memori",{"_index":33,"t":{"70":{"position":[[0,6]]}}}],["metadata",{"_index":13,"t":{"28":{"position":[[6,8]]},"30":{"position":[[12,8]]},"52":{"position":[[0,8]]},"85":{"position":[[12,8]]},"87":{"position":[[0,8]]}}}],["note",{"_index":40,"t":{"80":{"position":[[2,4]]},"100":{"position":[[2,4]]}}}],["pars",{"_index":11,"t":{"26":{"position":[[0,5]]},"28":{"position":[[0,5]]},"30":{"position":[[6,5]]},"58":{"position":[[0,7]]}}}],["plutu",{"_index":22,"t":{"54":{"position":[[0,6]]}}}],["pre",{"_index":35,"t":{"76":{"position":[[0,3]]}}}],["raw",{"_index":50,"t":{"95":{"position":[[0,3]]}}}],["requisit",{"_index":36,"t":{"76":{"position":[[4,9]]}}}],["run",{"_index":1,"t":{"4":{"position":[[0,3]]}}}],["rust",{"_index":18,"t":{"41":{"position":[[0,4]]},"50":{"position":[[0,4]]}}}],["struct",{"_index":21,"t":{"46":{"position":[[8,7]]}}}],["subset",{"_index":49,"t":{"93":{"position":[[13,6]]}}}],["test",{"_index":4,"t":{"8":{"position":[[0,4]]}}}],["tool",{"_index":16,"t":{"39":{"position":[[0,4]]}}}],["transact",{"_index":42,"t":{"85":{"position":[[0,11]]}}}],["transactionbuilderconfig",{"_index":5,"t":{"14":{"position":[[0,24]]}}}],["type",{"_index":32,"t":{"67":{"position":[[10,5]]}}}],["us",{"_index":30,"t":{"65":{"position":[[0,3]]},"78":{"position":[[12,5]]},"89":{"position":[[7,3]]},"93":{"position":[[0,5]]}}}],["wasm",{"_index":19,"t":{"43":{"position":[[0,4]]},"48":{"position":[[0,4]]}}}]],"pipeline":["stemmer"]}},{"documents":[{"i":3,"t":"todo","s":"Install","u":"/cardano-multiplatform-lib/getting_started","h":"#install","p":1},{"i":5,"t":"todo","s":"Run Example","u":"/cardano-multiplatform-lib/getting_started","h":"#run-example","p":1},{"i":7,"t":"todo","s":"Build","u":"/cardano-multiplatform-lib/getting_started","h":"#build","p":1},{"i":9,"t":"nvm i && npm i && npm run rust:test","s":"Test","u":"/cardano-multiplatform-lib/getting_started","h":"#test","p":1},{"i":11,"t":"Core - Core types common throughout all CML crates. Chain - Current era on-chain types, plus utility functionality and builders for creating these types. This is likely the crate most users will want to use. Crypto - Crypto primitives used throughout CML. Keys, signatures, etc. CIP25 - Library for working with CIP25 NFT metadata. CIP36 - Library for working with CIP36 (catalyst) registration types. Multi-Era - On-chain types for previous eras (Byron, Shelley, Alonzo, Babbage, etc) plus era-agnostic wrappers around this for parsing historical blockchain data.","s":"Crate Architecture","u":"/cardano-multiplatform-lib/crate_architecture","h":"","p":10},{"i":13,"t":"In order to simplify transaction creation, we provide a TransactionBuilder struct that manages witnesses, fee calculation, change addresses and such. Assume we have instantiated an instance under the variable builder for this explanation. The TransactionBuilder requires several protocol parameters governing Cardano to be created which is shown in the following section. These are specified initially in the genesis file for Cardano nodes. The minimum required for a valid transaction is to add inputs, outputs, and either set the fee explicitly with builder.set_fee(fee), or calculate it implicitly using builder.add_change_if_needed(address). Optionally a transaction can also have certificates, reward withdrawals, metadata, and minting added to it. Any change made to the builder can impact the size and thus the fee so the fee should be the last thing set. If implicitly setting the fee any extra ADA (inputs + withdrawals - outputs + refund - deposit - min fee) is sent to the provided change address. Fees must be sufficient, i.e. inputs + withdrawals + refund >= outputs + deposit + fee which must be manually ensured if you explicitly set the fee. Any extra fee is not necessary and the extra ADA beyond that will be burned. Once the transaction is ready, const body = builder.build() can be called to return a ready TransactionBody. Withdrawals are ADA withdrawn as part of the rewards generated by staking and deposits are refundable ADA locked while resources such as stake certificates or pool registrations exist on the blockchain. They are returned as refunds when these resources are deregistered/retired. To get to a transaction ready to post on the blockchain, we must create a Transaction from that, which consists of the TransactionBody, a matching TransactionWitnessSet and optionally an AuxiliaryData. The witnesses and optional metadata must match those provided to the builder. The witnesses must sign the hash of the transaction body returned by hash_transaction(body). In addition to the witnesses for inputs, withdrawals and some certificates require witnesses as well. For example, staking address registration does not require a witness while stake address de-registration requires one. For any questions or doubts about the rules governing fees, deposits, rewards, certificates or which witness types are required refer to the specs for the relevant era, specifically the Shelley design specification for general design for non-governance certificates. Refer to the Conway specs for those. The formal specification could be useful for specific details as well. The design spec contains details about which certificates require which type of witnesses in the Certificates and Registrations section.","s":"TransactionBuilder","u":"/cardano-multiplatform-lib/modules/builders/","h":"","p":12},{"i":15,"t":"To correctly make transactions the builder must know some on-chain parameters such as the current fee costs, key deposits, etc. These can all potentially change, even if some have largely been static for large periods of time. We pass these into the builder via the TransactionBuilderConfigBuilder. For test things out hard-coding them might suffice, but these parameters should ideally be fetched from the current blockchain head or your transactions could fail to be accepted by the network or will end up paying higher fees. The cost models parameter is optional if you are not building a transaction that utilizes Plutus smart contracts. Code examples for the builders will assume you have a make_tx_builder() function that creates a TransactionBuilder with the appropriate config.","s":"TransactionBuilderConfig","u":"/cardano-multiplatform-lib/modules/builders/","h":"","p":12},{"i":17,"t":"One way of getting this information is via the epochs/latest/parameters endpoint of blockfrost. This can be automated from rust using the cml-blockfrost crate's make_tx_builder_cfg(). Blockfrost is by no means necessary but it can be convenient. It is possible to get this information by other means as well e.g. having a synced cardano node. Using cml-blockfrost (rust): let cfg = cml_blockfrost::make_tx_builder_cfg(&api).await.unwrap(); let mut tx_builder = TransactionBuilder::new(cfg); This could also be done manually similar to below (or reference cml-blockfrost's code) Manually using WASM: let params = await blockfrost.epochsLatestParameters(); // cost order is based on lex ordering of keys let costModels = CML.CostModels.new(); let v1Costs = params.cost_models['PlutusV1']; if (v1Costs != null) { let v1CMLCosts = CML.IntList.new(); for (key in Object.keys(v1Costs).toSorted()) { v1CMLCosts.add(CML.Int.new(v1Costs[key])); } costModels.set_plutus_v1(v1CMLCosts); } // cost order is based on lex ordering of keys let v2Costs = params.cost_models['PlutusV2']; if (v2Costs != null) { let v2CMLCosts = CML.IntList.new(); for (key in Object.keys(v2Costs).toSorted()) { v2CMLCosts.add(CML.Int.new(v2Costs[key])); } costModels.set_plutus_v2(v2CMLCosts); } // note: as of writing this the sancho testnet format is different for v3 // compared to v1/v2. this may remain true once mainnet switches over so // please inspect the object you are getting for cost models from blockfrost let configBuilder = CML.TransactionBuilderConfigBuilder.new() .fee_algo(CML.LinearFee.new(params.min_fee_a, params.min_fee_b)) .coins_per_utxo_byte(BigNum(params.coins_per_utxo_size)) .pool_deposit(BigNum(params.pool_deposit)) .key_deposit(BigNum(params.key_deposit)) .max_value_size(Number(params.max_val_size)) .max_tx_size(params.max_tx_size) .ex_unit_prices(CML.ExUnitPrices.new( CML.SubCoin.from_base10_f32(params.price_mem), CML.SubCoin.from_base10_f32(params.price_step) )) .cost_models(costModels) .collateral_percentage(params.collateral_percent) max_collateral_inputs(params.max_collateral_inputs); let mut txBuilder = CML.TransactionBuilder.new(configBuilder.build());","s":"Blockfrost","u":"/cardano-multiplatform-lib/modules/builders/","h":"","p":12},{"i":20,"t":"CIP25 defines an NFT Metadata Standard for Native Tokens. Since tokens on Cardano are a part of the UTxO ledger, the metadata isn't directly attached to a token, but instead stored in the transaction data. When data is transmitted or stored in Cardano, it is often encoded as CBOR bytes to optimize space and facilitate fast processing. CBOR provides a standardized way to encode complex data structures, making it easier for different components of the Cardano ecosystem to interact and interpret the data. Below is the entire metadata schema for CIP-25, which can be parsed by passing in the CBOR bytes of the entire transaction metadata or by passing in an existing Metadata struct. Parsing from CBOR bytes should be marginally faster. { \"721\": { \"\": { \"\": { \"name\": , \"image\": , \"mediaType\": image/, \"description\": , \"files\": [{ \"name\": , \"mediaType\": , \"src\": , }], } }, \"version\": } }","s":"Context","u":"/cardano-multiplatform-lib/modules/CIP25","h":"#context","p":18},{"i":22,"t":"CIP25Metadata struct is the top-level struct for CIP-25 metadata, and contains a key_721 field of type LabelMetadata. The key_721 field will contain either a LabelMetadataV1 or LabelMetadataV2 instance. LabelMetadata defines an enum type that can contain either a LabelMetadataV1 or LabelMetadataV2 instance. It also provides functions for creating instances of each type. MetadataDetails defines a struct that represents metadata details for a specific asset. It contains fields for the asset name, an image associated with the asset, a media type, a description, and details about any associated files. The new() method creates a new instance with the specified name and image, and sets the other fields to None.","s":"Code Definitions","u":"/cardano-multiplatform-lib/modules/CIP25","h":"#code-definitions","p":18},{"i":25,"t":"The following example shows how to create and populate the CIP25 metadata schema with the available structs. let mut details = MetadataDetails::new( String64::try_from(\"Metadata Name\").unwrap(), ChunkableString::from(\"htts://some.website.com/image.png\"), ); details.description = Some(ChunkableString::from(\"description of this NFT\")); details.media_type = Some(String64::try_from(\"image/*\").unwrap()); details.files = Some(vec![ FilesDetails::new( String64::new_str(\"filename1\").unwrap(), String64::new_str(\"filetype1\").unwrap(), ChunkableString::from(\"src1\"), ), FilesDetails::new( String64::new_str(\"filename2\").unwrap(), String64::new_str(\"filetype2\").unwrap(), ChunkableString::from(\"src2\"), ), ]); let mut v2 = Data::new(); let mut v2_inner = BTreeMap::new(); v2_inner.insert(AssetNameV2::from(vec![0xCA, 0xFE, 0xD0, 0x0D]), details); v2.insert(PolicyIdV2::from(vec![0xBA, 0xAD, 0xF0, 0x0D]), v2_inner); let metadata = CIP25Metadata::new(LabelMetadata::new_label_metadata_v2( LabelMetadataV2::new(v2), )); println!(\"{metadata:?}\"); output: CIP25Metadata { key_721: LabelMetadataV2(LabelMetadataV2 { data: { PolicyIdV2([186, 173, 240, 13]): { AssetNameV2([202, 254, 208, 13]): MetadataDetails { name: String64(\"Metadata Name\"), image: Single(String64(\"htts://some.website.com/image.png\")), media_type: Some(String64(\"image/*\")), description: Some(Single(String64(\"description of this NFT\"))), files: Some([ FilesDetails { name: String64(\"filename1\"), media_type: String64(\"filetype1\"), src: Single(String64(\"src1\")) }, FilesDetails { name: String64(\"filename2\"), media_type: String64(\"filetype2\"), src: Single(String64(\"src2\")) } ]) } } } }) }","s":"Create","u":"/cardano-multiplatform-lib/modules/CIP25","h":"#create","p":18},{"i":27,"t":"let bytes = \"bf1902d1a36464617461a244baadf00da344cafed00da6646e616d656d4d65746164617461204e616d656566696c657382a4637372636473726331646e616d656966696c656e616d6531696d65646961547970656966696c657479706531816864736b6a66616b7381a1403864a3637372636473726332646e616d656966696c656e616d6532696d65646961547970656966696c65747970653265696d6167657821687474733a2f2f736f6d652e776562736974652e636f6d2f696d6167652e706e67696d656469615479706567696d6167652f2a6b6465736372697074696f6e776465736372697074696f6e206f662074686973204e4654a14038641832a1403864a140386481a1403864816864736b6a66616b73a1403864a14038646776657273696f6e02a1403864a14038641905398144baadf00dff\"; let data = CIP25Metadata::from_bytes(hex::decode(bytes).unwrap()).unwrap(); println!(\"{data:?}\"); output: CIP25Metadata { key_721: LabelMetadataV2( LabelMetadataV2 { data: { PolicyIdV2([186, 173, 240, 13]): { AssetNameV2([202, 254, 208, 13]): MetadataDetails { name: String64(\"Metadata Name\"), image: Single(String64(\"htts://some.website.com/image.png\")), media_type: Some(String64(\"image/*\")), description: Some(Single(String64(\"description of this NFT\"))), files: Some([ FilesDetails { name: String64(\"filename1\"), media_type: String64(\"filetype1\"), src: Single(String64(\"src1\")) }, FilesDetails { name: String64(\"filename2\"), media_type: String64(\"filetype2\"), src: Single(String64(\"src2\")) } ]) } } } }) }","s":"Parse CIP25Metadata","u":"/cardano-multiplatform-lib/modules/CIP25","h":"#parse-cip25metadata","p":18},{"i":29,"t":"Fields can be extracted from the MetadataDetails struct. // { // \"arweaveId\": \"6srpXZOTfK_62KUrJKh4VdCFG0YS271pq20OMRpE5Ts\", // \"image\": \"ipfs://QmUWP6xGHucgBUv514gwgbt4yijg36aUQunEP61z5D8RKS\", // \"name\": \"SpaceBud #1507\", // \"traits\": [\"Star Suit\", \"Chestplate\", \"Belt\", \"Flag\", \"Pistol\"], // \"type\": \"Alien\", // } let bytes = \"a569617277656176654964782b36737270585a4f54664b5f36324b55724a4b68345664434647305953323731707132304f4d52704535547365696d6167657835697066733a2f2f516d5557503678474875636742557635313467776762743479696a673336615551756e455036317a354438524b53646e616d656e53706163654275642023313530376674726169747385695374617220537569746a4368657374706c6174656442656c7464466c616766506973746f6c647479706565416c69656e\"; let output = MetadataDetails::from_bytes(hex::decode(bytes).unwrap()).unwrap(); println!(\"{output:?}\") output: MetadataDetails { name: String64(\"SpaceBud #1507\"), image: Single(String64(\"ipfs://QmUWP6xGHucgBUv514gwgbt4yijg36aUQunEP61z5D8RKS\")), media_type: None, description: None, files: None }","s":"Parse Metadata Details","u":"/cardano-multiplatform-lib/modules/CIP25","h":"#parse-metadata-details","p":18},{"i":31,"t":"The loose_parse() function allows parsing of certain data that is technically non-compliant with CIP25 due to minor mistakes by their creators. note This function should only to be used to parse non conformant metadata, since it will return a different struct (MiniMetadataDetails) which will just (possibly)return the name/image. It's best to only use it as a fallback when the regular parsing fails. Just name​ // {\"name\":\"Metaverse\"} let details = MiniMetadataDetails::loose_parse(&TransactionMetadatum::from_bytes(hex::decode(\"a1646e616d65694d6574617665727365\").unwrap()).unwrap()).unwrap(); println!(\"{details:?}\") ouput: MiniMetadataDetails { name: Some(String64(\"Metaverse\")), image: None } Upercase name​ // { // \"Date\":\"9 May 2021\", // \"Description\":\"Happy Mother's Day to all the Cardano Moms!\", // \"Image\":\"ipfs.io/ipfs/Qmah6QPKUKvp6K9XQB2SA42Q3yrffCbYBbk8EoRrB7FN2g\", // \"Name\":\"Mother's Day 2021\", // \"Ticker\":\"MOM21\", // \"URL\":\"ipfs.io/ipfs/Qmah6QPKUKvp6K9XQB2SA42Q3yrffCbYBbk8EoRrB7FN2g\" // } let details = MiniMetadataDetails::loose_parse(&TransactionMetadatum::from_bytes(hex::decode(\"a664446174656a39204d617920323032316b4465736372697074696f6e782b4861707079204d6f7468657227732044617920746f20616c6c207468652043617264616e6f204d6f6d732165496d616765783b697066732e696f2f697066732f516d61683651504b554b7670364b39585142325341343251337972666643625942626b38456f52724237464e3267644e616d65714d6f746865722773204461792032303231665469636b6572654d4f4d32316355524c783b697066732e696f2f697066732f516d61683651504b554b7670364b39585142325341343251337972666643625942626b38456f52724237464e3267\").unwrap()).unwrap()).unwrap(); let name = details.name.unwrap().0; println!(\"{name:?}\") output: \"Mother's Day 2021\" id no name​ // { // \"id\":\"00\", // \"image\":\"ipfs://QmSfYTF8B4ua6hFdr6URdRDZBZ9FjCQNUdDcLr2f7P8xn3\" // } let details = MiniMetadataDetails::loose_parse(&TransactionMetadatum::from_bytes(hex::decode(\"a262696462303065696d6167657835697066733a2f2f516d5366595446384234756136684664723655526452445a425a39466a43514e556444634c723266375038786e33\").unwrap()).unwrap()).unwrap(); let name = details.name.unwrap().0; println!(\"{name:?}\") output: \"00\" Image​ // { // \"image\":\"ipfs://QmSfYTF8B4ua6hFdr6URdRDZBZ9FjCQNUdDcLr2f7P8xn3\" // } let details = MiniMetadataDetails::loose_parse(&TransactionMetadatum::from_bytes(hex::decode(\"a165696d6167657835697066733a2f2f516d5366595446384234756136684664723655526452445a425a39466a43514e556444634c723266375038786e33\").unwrap()).unwrap()).unwrap(); let image = String::from(&details.image.unwrap()); println!(\"{image:?}\"); output: \"ipfs://QmSfYTF8B4ua6hFdr6URdRDZBZ9FjCQNUdDcLr2f7P8xn3\"","s":"Loose Parse Metadata details","u":"/cardano-multiplatform-lib/modules/CIP25","h":"#loose-parse-metadata-details","p":18},{"i":34,"t":"This crate contains all of the on-chain types used in the current Cardano era. All of these types can be serialized and deserialized from their on-chain CBOR encodings. Also included are some utility funtionality for working with them, as well as builders for creating them.","s":"Chain","u":"/cardano-multiplatform-lib/modules/chain/","h":"","p":33},{"i":36,"t":"This crate is for core features and traits common to all CML crates. Most users likely won't need to directly use this module except for possibly pulling in traits used with other cml crates. If you are using CML from WASM/typescript this module will not be needed as any used types will be re-exported in the crates (e.g. cml-chain-wasm, cml-cip25-wasm, etc) that use it.","s":"Core","u":"/cardano-multiplatform-lib/modules/core/","h":"","p":35},{"i":38,"t":"Cardano on-chain types are stored using CBOR, a data format similar to JSON but with many more features and in binary.","s":"CBOR","u":"/cardano-multiplatform-lib/modules/cbor","h":"","p":37},{"i":40,"t":"Due to CBOR's flexibility it is possible that one piece of CBOR can be represented in multiple ways in the binary encoding. This causes problems when using CBOR taken on-chain or from another tool and using it with another tool. Notably, one small difference in the binary encoding of CBOR could result in hashes being totally different. e.g. metadatum hashes or transaction hashes calculated in a dApp might be different than in the wallet causing the entire transaction to be rejected by the network. CML solves this by supporting automatically every single possible CBOR encoding variation. On-chain types created by deserializing from CBOR bytes will remember these details and re-serializing will use them and result in the same CBOR bytes, unlike some other tools.","s":"Tool Interoperability","u":"/cardano-multiplatform-lib/modules/cbor","h":"#tool-interoperability","p":37},{"i":42,"t":"On-chan types in rust can (de)serialize to/from CBOR Via the Serialize/Deserialize and ToBytes/FromBytes traits located within the cml_core::serialize module. Most on-chain types implement the Serialize and Deserialize traits. These traits guarantee that all CBOR encoding details are preserved upon deserialization and upon serialization it is possible to choose between canonical CBOR encoding and arbitrary encodings (the original it was decoded from). Byron-era types do not implement Serialize/Deserialize and instead implement ToBytes/FromBytes. Byron on-chain types are always in canonical CBOR so this was not necessary. The types in the cip25 module also do not support Serialize/Deserialize in favor of ToBytes/FromBytes. The underlying metadata on-chain does and you should use the types incml_core::metadata use cml_core::serialization::{Serialize, Deserialize}; let canonical_cbor_hex = \"825820aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa01\"; // these all represent the following CBOR: // [ ; array of 2 elements (transaction input struct) // 0xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA, ; bytes (tx hash) // 1 ; unsigned integer (tx index) // ] let non_canonical_cbor = [ canonical_cbor_hex, \"825820aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1a00000001\", \"9f5f48aaaaaaaaaaaaaaaa48aaaaaaaaaaaaaaaa48aaaaaaaaaaaaaaaa48aaaaaaaaaaaaaaaaff01ff\", \"9900025820aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa190001\", \"9b00000000000000025f41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aaff1b0000000000000001\", ]; for orig_cbor_hex in non_canonical_cbor { let tx_in = TransactionInput::from_cbor_bytes(&hex::decode(orig_cbor_hex).unwrap()).unwrap(); // serialize back to cbor bytes using the same cbor encoding details so it will match // the format where it came from assert_eq!(hex::encode(tx_in.to_cbor_bytes()), orig_cbor_hex); // no matter how it was created it will represent the same data and can be encoded to // canonical cbor bytes which will be the same as all of these are the same transaction input assert_eq!(hex::encode(tx_in.to_canonical_cbor_bytes()), canonical_cbor_hex); }","s":"Rust","u":"/cardano-multiplatform-lib/modules/cbor","h":"#rust","p":37},{"i":44,"t":"All on-chain types have the traits directly exposed on each struct as the methods: .to_cbor_bytes() .to_canonical_cbor_bytes() .from_cbor_bytes() .to_cbor_hex() .to_canonical_cbor_hex() .from_cbor_hex() The hex ones are useful for working with CIP-30 (dApp connector). On post-Byron on-chain types this delegates to Serialize/Deserialize (see rust section) and preserve round-trip always. CIP25 and Byron types will always serialize to canonical CBOR. All on-chain data during the Byron era has to be canonical CBOR so this is not a big issue but is worth noting. let canonicalCborHex = \"825820aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa01\"; // these all represent the following CBOR: // [ ; array of 2 elements (transaction input struct) // 0xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA, ; bytes (tx hash) // 1 ; unsigned integer (tx index) // ] let nonCanonicalCbor = [ canonicalCborHex, \"825820aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1a00000001\", \"9f5f48aaaaaaaaaaaaaaaa48aaaaaaaaaaaaaaaa48aaaaaaaaaaaaaaaa48aaaaaaaaaaaaaaaaff01ff\", \"9900025820aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa190001\", \"9b00000000000000025f41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aaff1b0000000000000001\", ]; for (let origCborHex of nonCanonicalCbor) { let txIn = CML.TransactionInput.from_cbor_hex(orig_cbor_hex); // serialize back to cbor bytes using the same cbor encoding details so it will match // the format where it came from console.assert(txIn.to_cbor_hex() == origCborHex); // no matter how it was created it will represent the same data and can be encoded to // canonical cbor bytes which will be the same as all of these are the same transaction input console.assert(txIn.to_canonical_cbor_hex() == canonicalCborHex); }","s":"WASM","u":"/cardano-multiplatform-lib/modules/cbor","h":"#wasm","p":37},{"i":47,"t":"All on-chain types have to/from JSON support. The vast majority is auto-generated but some have custom logic e.g. Url, Ipv4, BigInteger, etc.","s":"General structs","u":"/cardano-multiplatform-lib/modules/json","h":"#general-structs","p":45},{"i":49,"t":"In WASM JSON conversions are exposed by .to_json() and .from_json() methods on all supported wrappers. There is also a to_js_value(). let txInJson = \"{\\\"transaction_id\\\":\\\"0fba1404ed9b82b41938ba2e8bda7bec8cce813fb7e7cd7692b43caa76fe891c\\\",\\\"index\\\":3}\"; let txIn = CML.TransactionInput.from_json(txInJson); console.log(`txIn JSON: ${txIn.to_json()}`);","s":"WASM","u":"/cardano-multiplatform-lib/modules/json","h":"#wasm","p":45},{"i":51,"t":"JSON conversions are exposed in rust via the serde::Serialize and serde::Deserialize traits together with serde_json. example: let tx_in_json = \"{\\\"transaction_id\\\":\\\"0fba1404ed9b82b41938ba2e8bda7bec8cce813fb7e7cd7692b43caa76fe891c\\\",\\\"index\\\":3}\"; // from JSON using serde_json::from_str() - note the type annotations let tx_in: TransactionInput = serde_json::from_str(tx_in_json).unwrap(); // to JSON using serde_json::to_string() - use to_string_pretty() if you want more human-readable formatting println!(\"tx_in JSON: {}\", serde_json::to_string(&tx_in).unwrap());","s":"Rust","u":"/cardano-multiplatform-lib/modules/json","h":"#rust","p":45},{"i":53,"t":"Metadata, on top of the generic API mentioned above, has specific JSON functionality for compatability with cardano-node. There are three formats on MetadataJsonSchema. NoConversions is the stricted, stricter than cardano-node and only converts when there are no implicit conversions at all. BasicConversions is the node's TxMetadataJsonNoSchema and DetailedSchema its TxMetadataJsonDetailedSchema. See MetadataJsonSchema for more info on the schema. let basic_json = \"{\\\"0x8badf00d\\\": \\\"0xdeadbeef\\\",\\\"9\\\": 5,\\\"obj\\\": {\\\"a\\\":[{\\\"5\\\": 2},{}]}}\"; let metadatum = CML.encode_json_str_to_metadatum(basic_json, CML.MetadataJsonSchema.BasicConversions); console.log(`detailed json: ${CML.decode_metadatum_to_json_str(metadatum, CML.MetadataJsonSchema.DetailedSchema)}`); // OUTPUT: // detailed json: {\"map\":[{\"k\":{\"bytes\":\"8badf00d\"},\"v\":{\"bytes\":\"deadbeef\"}},{\"k\":{\"int\":9},\"v\":{\"int\":5}},{\"k\":{\"string\":\"obj\"},\"v\":{\"map\":[{\"k\":{\"string\":\"a\"},\"v\":{\"list\":[{\"map\":[{\"k\":{\"int\":5},\"v\":{\"int\":2}}]},{\"map\":[]}]}}]}}]}","s":"Metadata","u":"/cardano-multiplatform-lib/modules/json","h":"#metadata","p":45},{"i":55,"t":"Plutus datums also have additional cardano-node JSON support. Remember that Plutus has no String datum so the strings there will be converted to utf8 bytes. See CardanoNodePlutusDatumSchema for more info on the schema. let basic_json = \"{ \\\"100\\\": [ { \\\"x\\\": \\\"0\\\", \\\"y\\\": 1 } ], \\\"foo\\\": \\\"0x0000baadf00d0000cafed00d0000deadbeef0000\\\" }\"; let datum = CML.encode_json_str_to_plutus_datum(basic_json, CML.CardanoNodePlutusDatumSchema.BasicConversions); console.log(`detailed json: ${CML.decode_plutus_datum_to_json_str(datum, CML.CardanoNodePlutusDatumSchema.DetailedSchema, )}`); // OUTPUT: // detailed json: {\"map\":[{\"k\":{\"int\":100},\"v\":{\"list\":[{\"map\":[{\"k\":{\"bytes\":\"78\"},\"v\":{\"bytes\":\"30\"}},{\"k\":{\"bytes\":\"79\"},\"v\":{\"int\":1}}]}]}},{\"k\":{\"bytes\":\"666f6f\"},\"v\":{\"bytes\":\"0000baadf00d0000cafed00d0000deadbeef0000\"}}]}","s":"Plutus Datums","u":"/cardano-multiplatform-lib/modules/json","h":"#plutus-datums","p":45},{"i":57,"t":"This crate contains all the on-chain types for previous eras (Byron, Shelley, Alonzo, Babbage, etc). There are also wrappers around this era if you need era-agnostic types e.g. parsing all blocks from genesis. The wrappers support the current era as well.","s":"Multi-Era","u":"/cardano-multiplatform-lib/modules/multi-era/","h":"","p":56},{"i":59,"t":"MultiEraBlock can be used for this. Take care about the format you are giving it. Some tools (e.g. Pallas/Oura) won't give you the block format from the binary spec directly, but will instead have it wrapped in some network wrapper array containing the explicit era tag. If your CBOR looks like [uint, ] (likely starting with 82 in hex e.g. 8201, 8204, 8207, etc) then you should use MultiEraBlock.from_explicit_network_cbor_bytes() instead of MultiEraBlock.from_cbor_bytes().","s":"Parsing blocks across eras","u":"/cardano-multiplatform-lib/modules/multi-era/","h":"#parsing-blocks-across-eras","p":56},{"i":62,"t":"There are two main categories of keys in this library. There are the raw PublicKey and PrivateKey which are used for cryptographically signing/verifying, and BIP32PrivateKey/BIP32PublicKey which in addition to this have the ability to derive additional keys from them following the BIP32 derivation scheme variant called BIP32-Ed25519, which will be referred to as BIP32 for brevity. We use the BIP44 spec variant for Ed25519 as well for the derivation paths using 1852 or 44 as the purpose consant and 1815 for the coin type depending on address type. See this doc for more details. This is demonstrated with the below code function harden(num: number): number { return 0x80000000 + num; } const rootKey = CardanoWasm.BIP32PrivateKey.from_bech32(\"xprv17qx9vxm6060qjn5fgazfue9nwyf448w7upk60c3epln82vumg9r9kxzsud9uv5rfscxp382j2aku254zj3qfx9fx39t6hjwtmwq85uunsd8x0st3j66lzf5yn30hwq5n75zeuplepx8vxc502txx09ygjgx06n0p\"); const accountKey = rootKey .derive(harden(1852)) // purpose .derive(harden(1815)) // coin type .derive(harden(0)); // account #0 const utxoPubKey = accountKey .derive(0) // external .derive(0) .to_public(); const stakeKey = accountKey .derive(2) // chimeric .derive(0) .to_public();","s":"BIP32 Keys","u":"/cardano-multiplatform-lib/modules/crypto/generating_keys","h":"#bip32-keys","p":60},{"i":64,"t":"To generate a BIP32PrivateKey from a BIP39 recovery phrase it must be first converted to entropy following the BIP39 protocol(). This library does not directly handle that, but once entropy is created it is possible to use Bip32PrivateKey.from_bip39_entropy(entropy, password). For more information see the CIP3 Cardano improvement proposal. The code below uses the bip39 npm package to generate a root BIP32PrivateKey from a BIP39 mnemonic. import { mnemonicToEntropy } from 'bip39'; const entropy = mnemonicToEntropy( [ \"test\", \"walk\", \"nut\", \"penalty\", \"hip\", \"pave\", \"soap\", \"entry\", \"language\", \"right\", \"filter\", \"choice\" ].join(' ') ); const rootKey = CardanoWasm.Bip32PrivateKey.from_bip39_entropy( Buffer.from(entropy, 'hex'), Buffer.from(''), );","s":"BIP39 Entropy","u":"/cardano-multiplatform-lib/modules/crypto/generating_keys","h":"#bip39-entropy","p":60},{"i":66,"t":"Once we have reached the desired derivation path, we must convert the BIP32PrivateKey or BIP32PublicKey to a PrivateKey or PublicKey by calling .to_raw_key() on them with the exception of Byron addresses. For example, to create an address using the utxoPubKey and stakeKey in the first example, we can do: // base address with staking key const baseAddr = CardanoWasm.BaseAddress.new( CardanoWasm.NetworkInfo.mainnet().network_id(), CardanoWasm.StakeCredential.from_keyhash(utxoPubKey.to_raw_key().hash()), CardanoWasm.StakeCredential.from_keyhash(stakeKey.to_raw_key().hash()), ); // enterprise address without staking ability, for use by exchanges/etc const enterpriseAddr = CardanoWasm.EnterpriseAddress.new( CardanoWasm.NetworkInfo.mainnet().network_id(), CardanoWasm.StakeCredential.from_keyhash(utxoPubKey.to_raw_key().hash()) ); // pointer address - similar to Base address but can be shorter, see formal spec for explanation const ptrAddr = CardanoWasm.PointerAddress.new( CardanoWasm.NetworkInfo.mainnet().network_id(), CardanoWasm.StakeCredential.from_keyhash(utxoPubKey.to_raw_key().hash()), CardanoWasm.Pointer.new( 100, // slot 2, // tx index in slot 0 // cert indiex in tx ) ); // reward address - used for withdrawing accumulated staking rewards const rewardAddr = CardanoWasm.RewardAddress.new( CardanoWasm.NetworkInfo.mainnet().network_id(), CardanoWasm.StakeCredential.from_keyhash(stakeKey.to_raw_key().hash()) ); // bootstrap address - byron-era addresses with no staking rights const byronAddr = CardanoWasm.ByronAddress.icarus_from_key( utxoPubKey, // Ae2* style icarus address CardanoWasm.NetworkInfo.mainnet().protocol_magic() ); Note that the byron-era address can only be created in this library from icarus-style addresses that start in Ae2 and that Daedalus-style addresses starting in Dd are not directly supported. These are all address variant types with information specific to its address type. There is also an Address type which represents any of those variants, which is the type use in most parts of the library. For example to create a TransactionOutput manually we would have to first convert from one of the address variants by doing: const address = baseAddress.to_address(); const output = CardanoWasm.TransactionOutput(address, BigNum.from_str(\"365\")); If the address is already a Shelley address in raw bytes or a bech32 string we can create it directly via: const addr = CardanoWasm.Address.from_bech32(\"addr1vyt3w9chzut3w9chzut3w9chzut3w9chzut3w9chzut3w9cj43ltf\");","s":"Use in Addresses","u":"/cardano-multiplatform-lib/modules/crypto/generating_keys","h":"#use-in-addresses","p":60},{"i":68,"t":"Conversion between cardano-cli 128-byte XPrv keys and BIP32PrivateKey is also supported: const bip32PrivateKey = CardanoWasm.BIP32PrivateKey.from_128_xprv(xprvBytes); assert(xprvBytes == CardanoWasm.BIP32PrivateKey.to_128_xprv()); 96-byte XPrv keys are identical to BIP32PrivateKeys byte-wise and no conversion is needed. For more details see this document regarding legacy keys. There is also LegacyDaedalusPrivateKey which is used for creating witnesses for legacy Daedalus Dd-type addresses.","s":"Other Key Types","u":"/cardano-multiplatform-lib/modules/crypto/generating_keys","h":"#other-key-types","p":60},{"i":71,"t":"If you are using CML from the browser this section is likely irrelevant for you. Using CML from a javascript environment with weakrefs enabled should have automatic memory cleanup. If this is not the case (e.g. non-javascript/typescript WASM environment), or you are using CML inside of a very tight loop that is executed hundreds of thousands of times in a short period it might be advisable to explicitly call .free() on any CML types after they are used. This is because while from an environment with weakrefs the types will eventually be freed automatically, it is still possible to use excessive memory or run out if, for example, large CML types are created in a constant loop that runs many times (e.g. hundreds of thousands of times without a break), as the automatic cleanup will not be run in time. Do not worry about this for normal CML usage. Do not call .free() on a type or use it after .free() has been called on it already. WASM types passed into other CML APIs will be done so by reference and will not have their .free() method called just by doing so, but will still eventually be cleaned up if weakrefs are available.","s":"Memory Management","u":"/cardano-multiplatform-lib/modules/wasm","h":"#memory-management","p":69},{"i":73,"t":"AuxiliaryDataHash Bip32PrivateKey Bip32PublicKey BlockBodyHash BlockHeaderHash BootstrapWitness BootstrapWitnesses DataHash Ed25519KeyHash Ed25519Signature GenesisDelegateHash GenesisHash KESSignature KESVKey LegacyDaedalusPrivateKey Nonce PoolMetadataHash PrivateKey PublicKey ED25519 key used as public key PublicKeys ScriptDataHash ScriptHash TransactionHash VRFCert VRFKeyHash VRFVKey Vkey Vkeys Vkeywitness Vkeywitnesses","s":"crypto","u":"/cardano-multiplatform-lib/modules/crypto/","h":"","p":72},{"i":75,"t":"This is a library, written in Rust, that can be deployed to multiple platforms (Rust crate, JS, Typescript, WASM, etc). It handles: Serialization & deserialization of core data structures Builders to streamline and verify the construction of transactions and related components Useful utility functions for dApps & wallets NPM packages​ browser: link nodejs: link There is also an outdated asm.js . It is strongly discouraged from using this as it is out of date and asm.js results in incredibly slow cryptographic operations. asm.js (strongly discouraged): link Note: If you are using WebPack, you must use version 5 or later for CML to work. Rust crates​ The rust crates are split up by functionality. core: link crypto: link chain: link multi-era: link cip25: link cip36: link Most users will likely be using primarily cml-chain for general uses, cml-multi-era if they need historical (pre-babbage eras) chain-parsing and cip25 or cip36 if they need those specific metadata standards. Mobile bindings​ We recommend using Ionic + Capacitor or an equivalent setup to have the WASM bindings working in mobile","s":"Cardano Multiplatform Lib","u":"/cardano-multiplatform-lib/","h":"","p":74},{"i":77,"t":"This library assumes a certain amount of knowledge about how Cardano works (to avoid re-documenting the wheel). You can find the specifications of Cardano's ledger here which we suggest consulting as you use this library. Notably, the Shelley ledger formal specification covers the core concepts. Make sure to check the specs for later eras as well when needed.","s":"Pre-requisite knowledge","u":"/cardano-multiplatform-lib/","h":"#pre-requisite-knowledge","p":74},{"i":79,"t":"Serialization/deserialization code is automatically generated from Cardano’s official specification, which guarantees it can easily stay up to date! We do this using a tool managed by EMURGO & dcSpark called cddl-codegen which can be re-used for other tasks such as automatically generate a Rust library for Cardano metadata specifications! The most important feature of this is that CML has been generated to allow all CBOR details to be preserved. With CBOR many CBOR structures can have multiple ways to serialize to bytes from the same equivalent structure. This causes issues especially when computing hashes and is a frequent problem with working across tools e.g. cardano-node-cli and cardano-serialization-lib encoding plutus datums differently. This makes CML much more compatible with all other libraries as it will remember all these specific CBOR encoding details. This is particularly important for use with dApps and wallets connecting to dApps. It is also very easy to create scripts in Rust or WASM to share with stake pools, or even embed inside an online tool! No more crazy cardano-cli bash scripts! Powerful and flexible enough to be used to power wallets and exchanges! (Yes, it’s used in production!)","s":"Benefits of using this library","u":"/cardano-multiplatform-lib/","h":"#benefits-of-using-this-library","p":74},{"i":81,"t":"All code examples are using the WASM (typescript/javascript) API. If you are using CML from rust you will need to change the code to rust syntax e.g. Foo.bar() to Foo::new() etc. We've tried to keep the API as consistent as possible between the different bindings but some exceptions exist. The array/map wrappers (e.g. FooList / MapFooToBar) in WASM are simply Vec and OrderedHashMap respectively. There will be some changes relating to reference params/moving/etc as well. You can find complete examples in the /examples/ directory.","s":"A note on code examples","u":"/cardano-multiplatform-lib/","h":"#a-note-on-code-examples","p":74},{"i":83,"t":"This library generates Typescript type definitions, so it’s often easiest to see what is possible by just looking at the types! These are found in the .ts file in the npm package roots. If you are using rust the full API will be shown in the respective crates.io pages.","s":"Documentation","u":"/cardano-multiplatform-lib/","h":"#documentation","p":74},{"i":86,"t":"Transaction after the Shelley hardfork can contain arbitrary transaction meta (note: this is NOT the same as pool metadata) Transaction metadata takes the form of a map of metadatums, which are recursive JSON-like structures. It is defined in CDDL, a schema grammar for representing CBOR binary encoding as: transaction_metadatum = { * transaction_metadatum => transaction_metadatum } / [ * transaction_metadatum ] / int / bytes .size (0..64) / text .size (0..64) transaction_metadatum_label = uint transaction_metadata = { * transaction_metadatum_label => transaction_metadatum } For each use we use a metadatum label specific to our use into the TransactionMetadatum map. If we had a JSON object such as { \"receiver_id\": \"SJKdj34k3jjKFDKfjFUDfdjkfd\", \"sender_id\": \"jkfdsufjdk34h3Sdfjdhfduf873\", \"comment\": \"happy birthday\", \"tags\": [0, 264, -1024, 32] } There are 4 ways we can achieve this with different trade-offs: Directly use: using the Metadata-related structures used in the library JSON conversion: conversion to/from JSON using our utility functions CDDL subset: writing a CDDL spec of this structure that is representable by that recursive metadatum CDDL Raw bytes: encoding raw-bytes using our utility functions. Each section will give examples of how to encode a similar structure. Understanding CDDL is only necessary for the last 2 options, but it is fairly simple to understand. If your metadata schema is fixed and will be used frequently you should consider the CDDL spec option. If your schema is not often used or used from many languages, the JSON option can be good as it is low set-up and fairly tech agnostic. If your schema is very dynamic or non-existent, the direct use or JSON options are likely best. The raw bytes option is only recommended if your data does not conform to the metadata format.","s":"Transaction Metadata format","u":"/cardano-multiplatform-lib/modules/metadata","h":"#transaction-metadata-format","p":84},{"i":88,"t":"These limitations are mentioned in the CDDL definition, but are worth also mentioning in prose: Strings must be at most 64 bytes when UTF-8 encoded. Bytestrings are hex-encoded, with a maximum length of 64 bytes.","s":"Metadata limitations","u":"/cardano-multiplatform-lib/modules/metadata","h":"#metadata-limitations","p":84},{"i":90,"t":"Upsides: Flexible Readable by other methods Downsides: Can be quite tedious to write Structural validation must be done by hand (partially) As the metadatum structure is fairly expressive, we can directly use it using the structs in the metadata module of this library. These directly represent the types given in the CDDL. Namely: TransactionMetadatum - Can represent one of those 5 variant types. MetadataMap - The map variant that maps from metadatums to other metadatums. This is unordered and indexed by metadatums. This is like an object in JSON. MetadataList - An ordered list indexed starting at 0. This is like an array in JSON. The variants for numbers, bytes and text are not specific to metadata and are directly used with the general Int type representing a signed or unsigned number, byte arrays accepting byte arrays/Buffer, and strings being JS strings. We could construct the JSON example above with the following code: const map = CardanoWasm.MetadataMap.new(); map.insert( CardanoWasm.TransactionMetadatum.new_text(\"receiver_id\"), CardanoWasm.TransactionMetadatum.new_text(\"SJKdj34k3jjKFDKfjFUDfdjkfd\"), ); map.insert( CardanoWasm.TransactionMetadatum.new_text(\"sender_id\"), CardanoWasm.TransactionMetadatum.new_text(\"jkfdsufjdk34h3Sdfjdhfduf873\"), ); map.insert( CardanoWasm.TransactionMetadatum.new_text(\"comment\"), CardanoWasm.TransactionMetadatum.new_text(\"happy birthday\"), ); const tags = CardanoWasm.MetadataList.new(); tags.add(CardanoWasm.TransactionMetadatum.new_int(CardanoWasm.Int.new(CardanoWasm.BigNum.from_str(\"0\")))); tags.add(CardanoWasm.TransactionMetadatum.new_int(CardanoWasm.Int.new(CardanoWasm.BigNum.from_str(\"264\")))); tags.add(CardanoWasm.TransactionMetadatum.new_int(CardanoWasm.Int.new_negative(CardanoWasm.BigNum.from_str(\"1024\")))); tags.add(CardanoWasm.TransactionMetadatum.new_int(CardanoWasm.Int.new(CardanoWasm.BigNum.from_str(\"32\")))); map.insert( CardanoWasm.TransactionMetadatum.new_text(\"tags\"), CardanoWasm.TransactionMetadatum.new_list(tags), ); const metadatum = CardanoWasm.TransactionMetadatum.new_map(map); We could then parse the information back as such: try { const map = metadatum.as_map(); const receiver = map.get(CardanoWasm.TransactionMetadatum.new_text(\"receiver_id\")); const sender = map.get(CardanoWasm.TransactionMetadatum.new_text(\"sender_id\")); const comment = map.get(CardanoWasm.TransactionMetadatum.new_text(\"comment\")); const tags = map.get(CardanoWasm.TransactionMetadatum.new_text(\"tags\")); } catch (e) { // structure did not match } For decoding in a more exploratory manner we can check the types first as such: function parseMetadata(metadata) { // we must check the type first to know how to handle it switch (metadata.kind()) { case CardanoWasm.TransactionMetadatumKind.MetadataMap: const mapRet = new Map(); const map = metadata.as_map(); const keys = maps.keys(); for (var i = 0; i < keys.len(); i += 1) { const key = keys.get(i); const value = parseMetadata(map.get(key); mapRet.set(key, value); } return mapRet; case CardanoWasm.TransactionMetadatumKind.MetadataList: let arrRet = []; const arr = metadata.as_list(); for (var i = 0; i < arr.len(); i += 1) { const elem = parseMetadata(arr.get(i)); arrRet.push(elem); } return arrRet; case CardanoWasm.TransactionMetadatumKind.Int: const x = metadata.as_int(); // If the integer is too big as_i32() returns undefined // to handle larger numbers we need to use x.as_positive() / x.as_negative() and // convert from BigNums after checking x.is_positive() first return x.as_i32(); case CardanoWasm.TransactionMetadatumKind.Bytes: return Buffer.from(metadata.as_bytes()); case CardanoWasm.TransactionMetadatumKind.Text: return metadata.as_text(); } } which recursively parses the TransactionMetadatum struct and transforms it into a JS Map / JS object structure by manually checking the types.","s":"Direct use","u":"/cardano-multiplatform-lib/modules/metadata","h":"#direct-use","p":84},{"i":92,"t":"Upsides: Flexible Readable by other methods Lowest set-up work involved Downsides: Does not support negative integers between -2^64 + 1 and -2^63 (serde_json library restriction) Structural validation must be done by hand Can use more space as string keyed maps are likely to be used more than arrays would be in the CDDL solutions const obj = { receiver_id: \"SJKdj34k3jjKFDKfjFUDfdjkfd\", sender_id: \"jkfdsufjdk34h3Sdfjdhfduf873\", comment: \"happy birthday\", tags: [0, 264, -1024, 32] }; const metadata = CardanoWasm.encode_json_str_to_metadatum(JSON.stringify(obj), CardanoWasm.MetadataJsonSchema.NoConversions); const metadataString = CardanoWasm.decode_metadatum_to_json_str(metadata, CardanoWasm.MetadataJsonSchema.NoConversions); To support an extended set of metadata we also support 3 additional modes for JSON conversion following IOHK's cardano-node JSON schemas. The three modes are: NoConversions - Faithfully converts between the minimal shared feature set between JSON and Metadata BasicConversions - Adds additional support for byte(as hex strings)/integers (as strings) keys / byte (as hex strings) values. DetailedSchema - Can convert almost all metadata into a specific JSON schema but is very verbose on the JSON side. Details on the formats can be found in our library's metadata module or in the cardano-node file linked above. DetailedSchema is likely most useful if you need to parse any possible kind of metadata into JSON specifically, possibly to display or for debugging. For most reasonable schemas NoConversions should suffice, or BasicConversions if byte/string keys and byte values are needed. If you are in charge of your own schema and you do not need arbitrary keys, it is recommended not to use DetailedSchema as it is significantly more complicated to use. The additions of BasicConversions are demonstrated below { \"0x8badf00d\": \"0xdeadbeef\", \"9\": 5, \"obj\": { \"a\":[ { \"5\": 2 }, { } ] } } which creates a map with 3 elements: 4 byte bytestring (0x8badf00d) => 4 byte bytestring (0xdeadbeef) int (9) => int (5) string (\"obj\") => object (string (\"a\") => list [ object (int (5) => int (2)), object (empty) ]) All bytestrings must be prefixed with \"0x\" or they will be treated as regular strings. All strings that parse as an integer such as \"125\" will be treated as a metadata integer. The DetailedSchema is here: {\"map\":[ { \"k\":{\"bytes\":\"8badf00d\"}, \"v\":{\"bytes\":\"deadbeef\"} }, { \"k\":{\"int\":9}, \"v\":{\"int\":5} }, { \"k\":{\"string\":\"obj\"}, \"v\":{\"map\":[ { \"k\":{\"string\":\"a\"}, \"v\":{\"list\":[ {\"map\":[ { \"k\":{\"int\":5}, \"v\":{\"int\":2} } ]}, {\"map\":[ ]} ]} } ]} } ]} All values are represented as an object with 1 field with the key tagging the type and the value being the value itself. This is the exact same metadata as the BasicConversions example which should illustrate that it is much more verbose to use this format, but it can represent every kind of metadata possible, including non-string/byte/int keys. Do note that byte strings do not start with \"0x\", unlike with BasicConversions. This additional freedom in keys can be seen here: {\"map\":[ { \"k\":{\"list\":[ {\"map\": [ { \"k\": {\"int\": 5}, \"v\": {\"int\": 7} }, { \"k\": {\"string\": \"hello\"}, \"v\": {\"string\": \"world\"} } ]}, {\"bytes\": \"ff00ff00\"} ]}, \"v\":{\"int\":5} } ]} has a 1-element map with a value of just 5, but with a very complicated key consisting of a list with 2 elements: a 2-element map (5 => 7, \"hello\" => \"world\") a bytestring (0xFF00FF00) Most reasonable metadata formats, however, likely do not use map/key/compound keys and thus this is more of a fringe use or when all possible metadata must be examined from JSON (almost) without exception. Due to library implementation details it can still fail to decode if there is a very negative number between -2^64 + 1 and -2^63.","s":"JSON conversion","u":"/cardano-multiplatform-lib/modules/metadata","h":"#json-conversion","p":84},{"i":94,"t":"Upsides: Automatic structural typing in deserialization Readable by other methods Possible reduced space due to array structs not serializing keys Downsides: Requires additional set-up For static or relatively static types this is probably the best choice, especially if you care about structural validation or need the binary types or more complex keys. As we saw in the other examples, most reasonable structures can be encoded using the standard metadata CDDL as it is almost a superset of JSON outside of true/false/null. Not only this, but if we represent a struct using an array in CDDL such as: foo = [ receiver_id: text, sender_id: text, comment: text, tags: [*int] ] there is space savings as the keys are not stored as it is represented as an ordered array of 4 elements instead of a direct map encoding of: foo = { receiver_id: text, sender_id: text, comment: text, tags\": [*int] } which would serialize the keys as strings inside the resulting CBOR. Using these CDDL definitions for the example JSON structure we had results in sizes of 89 bytes for the array definition and 124 bytes for the map one. Using the JSON encoding would also result in a metadata size of 124 bytes. Maps however do have the advantage of easy optional fields and a more readable metadata for external users who don't have access to the CDDL as the field names will be stored directly. After you have created your CDDL definition, if you need to check that your CDDL conforms to the metadata CDDL we have a tool located in the /tools/metadata-cddl-checker/ directory. Move to this directory and put your CDDL in a file called input.cddl there first, then run cargo build cargo run Once we have the CDDL file and it has passed metadata format validation we can use the cddl-codegen tool that we used to initially generate the serialization/deserialization/structural code for the core Shelley structures from the shelley cddl spec. Assuming we are in the cddl-codegen root directory and have created a input.cddl file in that directory containing the CDDL we wish to generate we can build and code-generate with cargo build cargo run which should generate a wasm-convertible rust library for parsing our CDDL definition in the /export/ directory. After this we need to generate a wasm package from the rust code by running the following (you can do --target=browser too) cd export wasm-pack build --target=nodejs wasm-pack pack which should give you the library as a package in the /pkg/ directory. Once we have imported the library we can then use it as such: const tags = OurMetadataLib.Ints.new(); // if we have smaller (32-bit signed) numbers we can construct easier tags.add(OurMetadataLib.Int.new_i32(0)); // but for bigger (>= 2^32) numbers we must use BigNum and specify the sign ourselves tags.add(OurMetadataLib.Int.new(CardanoWasm.Int.from_str(\"264\"))); // and for negative large (< -2^32) numbers (here we construct -1024) tags.add(OurMetadataLib.Int.new_negative(CardanoWasm.Int.from_str(\"1024\"))); tags.add(OurMetadataLib.Int.new_i32(32)); const map = OurMetadataLib.Foo.new(\"SJKdj34k3jjKFDKfjFUDfdjkfd\", \"jkfdsufjdk34h3Sdfjdhfduf873\", \"happy birthday\", tags) let metadata; try { metadata = CardanoWasm.TransactionMetadata.from_bytes(map.to_bytes()); } catch (e) { // this should never happen if OurMetadataLib was generated from compatible CDDL with the metadata definition } likewise you can parse the metadata back very simply with: let cddlMetadata; try { cddlMetadata = OurMetadataLib.Foo.from_bytes(metadata.to_bytes()); } catch (e) { // this should never happen if OurMetadataLib was generated from compatible CDDL with the metadata definition } // we can now directly access the fields with cddlMetadata.receiver_id(), etc If we take advantage of the additional primitives not defined in CDDL but defined for cddl-codegen, then we can specify precisions of u32, u64, i64, i32 for specifying 32 or 64 bits instead of just a general purpose uint/nint/int. If you know your metadata will always be within one of these ranges it can be much more convenient to work with, and if you have signed data this will also make it easier to work with instead of the Int class that CDDL int might generate, since that is either an up to 64-bit positive or an up to 64 negative numbers. This is particularly useful here as lists of CDDL primitives can be exposed directly as Vec to wasm from rust, but when we have int (converts to Int struct) or uint (converts to BigNum struct) a separate structure like that Ints one used above is used. Using the 32-bit versions allows direct js number conversions to/from wasm. If we simply change the tags field to tags: [+i32] our code becomes: // notice how we can directly work with js numbers here now! // but remember they must fit into a 32-bit number now - no 64-bit numbers like are allowed in the metadata const tags = [0, 264, -1024, 32]; const map = OurMetadataLib.Foo.new(\"SJKdj34k3jjKFDKfjFUDfdjkfd\", \"jkfdsufjdk34h3Sdfjdhfduf873\", \"happy birthday\", tags) and deserializaing likewise is much simpler as metadata.tags() will return a JS array or numbers rather than a rust-wasm struct that must be accessed via the wasm boundary.","s":"Using a CDDL Subset","u":"/cardano-multiplatform-lib/modules/metadata","h":"#using-a-cddl-subset","p":84},{"i":96,"t":"Upsides: Can store arbitrary data Potential space-savings if the data is compressed Downsides: Not readable by other methods - must be decoded using this method Requires additional set-up While most data would likely conform to the metadata CDDL subset (or JSON), if your data does not fit there then this encoding style will be necessary. If you still want to take advantage of CDDL type-checking it is possible to create a library just as in the CDDL subset section but without running the checker tool. This could be useful if you are using CDDL outside of the metadata CDDL structure. Otherwise, you can store whatever bytes you want. Note: To conform with the 64-byte limitation on metadata binary values, this method will split the bytes into 64-byte chunks const bytes = /* whatever method you want - you can use the CDDL solution in the 3rd option here */ const metadata = CardanoWasm.encode_arbitrary_bytes_as_metadatum(bytes); const decoded_bytes = CardanoWasm.decode_arbitrary_bytes_from_metadatum(metadata); assertEquals(bytes, decoded_bytes);","s":"Raw Bytes Encoding","u":"/cardano-multiplatform-lib/modules/metadata","h":"#raw-bytes-encoding","p":84},{"i":99,"t":"The example below builds a transaction with all 2 of the 3 input types: key and bootstrap. Multisig (script) inputs are essentially identical to key inputs, but using the scripthash instead of the keyhash, however they are not supported for implicit fee calculation yet. Fees are automatically calculated and sent to a change address in the example. // instantiate the tx builder with the Cardano protocol parameters - these may change later on const txBuilder = makeTxBuilder(); const testnetId = 0; // add a keyhash input - for ADA held in a Shelley-era normal address (Base, Enterprise, Pointer) const prvKey = CML.PrivateKey.from_bech32(\"ed25519e_sk16rl5fqqf4mg27syjzjrq8h3vq44jnnv52mvyzdttldszjj7a64xtmjwgjtfy25lu0xmv40306lj9pcqpa6slry9eh3mtlqvfjz93vuq0grl80\"); const inputAddr = CML.EnterpriseAddress.new(testnetId, CML.StakeCredential.new_key(prvKey.to_public().hash())).to_address(); txBuilder.add_input(CML.SingleInputBuilder.new( CML.TransactionInput.new( CML.TransactionHash.from_hex(\"8561258e210352fba2ac0488afed67b3427a27ccf1d41ec030c98a8199bc22ec\"), // tx hash 0, // index ), CML.TransactionOutput.new( inputAddr, CML.Value.from_coin(BigInt(6000000)), ) ); // base address const outputAddress = CML.Address.from_bech32(\"addr_test1qpu5vlrf4xkxv2qpwngf6cjhtw542ayty80v8dyr49rf5ewvxwdrt70qlcpeeagscasafhffqsxy36t90ldv06wqrk2qum8x5w\"); // pointer address const changeAddress = CML.Address.from_bech32(\"addr_test1gz2fxv2umyhttkxyxp8x0dlpdt3k6cwng5pxj3jhsydzerspqgpsqe70et\"); // add output to the tx txBuilder.add_output( CML.TransactionOutputBuilder() .with_address(outputAddress) .next() .with_value(CML.Value.from_coin(BigInt(1000000))) .build() ); // calculate the min fee required and send any change to an address // this moves onto the next step of building the transaction: providing witnesses const signedTxBuilder = tx_builder.build( changeAddress, CML.ChangeSelectionAlgo.Default ); // sign with the key that owns the input used signedTxBuilder.add_vkey(CML.make_vkey_witness(txHash, prvKey)); const tx = signedTxBuilder.build_checked(); // ready to submit, can be converted to CBOR via tx.to_cbor_bytes() or to_cbor_hex() for hex","s":"Example code","u":"/cardano-multiplatform-lib/modules/builders/generating_transactions","h":"#example-code","p":97},{"i":101,"t":"Fees in Cardano are based directly on the size of the final encoded transaction. It is important to note that a transaction created by this library potentially can vary in size compared to one built with other tools. This is because transactions, as well as other Cardano structures, are encoded using CBOR a binary JSON-like encoding. Due to arrays and maps allowing both definite or indefinite length encoding in the encoded transaction created by the library, the size can vary. This is because definite encoding consists of a tag containing the size of the array/map which can be 1 or more bytes long depending on the number of elements the size of the encoded structure, while indefinite length encoding consists of a 1 byte starting tag and after all elements are listed, a 1 byte ending tag. These variances should should only be a couple bytes and cardano-multiplatform-lib uses definite encoding by default which is the same length or smaller for any reasonable sized transaction.","s":"A note on fees","u":"/cardano-multiplatform-lib/modules/builders/generating_transactions","h":"#a-note-on-fees","p":97}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/3",[0,4.364]],["t/5",[0,4.364]],["t/7",[0,4.364]],["t/9",[1,5.545,2,0.996,3,4.362,4,3.777,5,5.545]],["t/11",[6,3.245,7,1.29,8,3.38,9,5.21,10,2.586,11,3.245,12,2.377,13,2.703,14,2.523,15,5.21,16,2.472,17,1.842,18,2.279,19,1.074,20,2.703,21,2.993,22,0.654,23,4.437,24,3.38,25,1.622,26,3.969,27,2.418,28,2.586,29,1.779,30,2.586,31,2.703,32,1.278,33,4.437,34,3.969,35,3.38,36,3.38,37,3.38,38,2.472,39,1.97,40,3.38,41,2.993,42,2.993,43,2.472,44,3.38,45,1.97,46,3.38,47,2.993,48,1.526]],["t/13",[2,0.89,7,0.664,14,0.862,18,2.334,19,0.893,22,0.414,32,1.062,35,3.915,39,1.047,47,2.487,49,1.436,50,2.108,51,2.406,52,2.108,53,2.768,54,2.81,55,0.917,56,1.796,57,4.315,58,4.176,59,2.487,60,2.531,61,2.863,62,1.757,63,1.436,64,1.796,65,1.796,66,2.108,67,2.108,68,1.796,69,3.766,70,2.108,71,1.59,72,1.59,73,4.064,74,1.062,75,1.796,76,0.979,77,2.054,78,1.59,79,1.796,80,1.796,81,0.979,82,1.211,83,2.108,84,1.436,85,1.59,86,3.131,87,1.886,88,2.64,89,2.81,90,2.108,91,3.299,92,2.108,93,2.531,94,5.529,95,3.461,96,4.249,97,2.108,98,2.108,99,2.108,100,2.108,101,1.436,102,1.796,103,1.796,104,1.796,105,4.064,106,3.915,107,4.597,108,3.915,109,1.796,110,1.796,111,2.108,112,2.108,113,1.436,114,2.108,115,1.313,116,2.108,117,2.108,118,1.313,119,3.461,120,0.917,121,3.299,122,2.108,123,1.211,124,2.531,125,3.299,126,2.108,127,1.59,128,1.531,129,3.466,130,2.108,131,3.299,132,1.59,133,1.436,134,2.108,135,1.796,136,1.436,137,2.247,138,2.108,139,2.108,140,2.247,141,1.436,142,1.211,143,2.108,144,1.211,145,1.638,146,0.811,147,2.108,148,1.047,149,2.108,150,2.108,151,2.108,152,2.054,153,2.165,154,2.108,155,2,156,4.064,157,1.313,158,2.108,159,1.59,160,1.195,161,1.047]],["t/15",[12,1.598,13,3.514,16,2.436,17,1.815,18,3.316,19,1.058,25,1.598,27,1.815,47,2.949,51,2.512,54,3.331,58,3.514,60,2.436,62,2.083,63,2.663,72,4.353,93,2.436,104,3.331,108,3.331,146,1.504,162,3.91,163,2.436,164,2.949,165,4.394,166,2.949,167,3.331,168,3.89,169,3.331,170,3.331,171,3.331,172,2.663,173,2.083,174,3.91,175,3.331,176,2.949,177,3.91,178,2.561,179,3.331,180,3.91,181,3.91,182,3.91,183,2.949,184,3.331,185,2.949,186,3.331,187,1.941,188,3.91,189,3.91,190,3.331,191,2.949,192,2.949,193,3.91,194,3.91,195,3.91,196,3.91,197,3.91]],["t/17",[2,1.105,10,2.382,22,0.602,25,2.159,49,3.598,74,0.891,82,1.59,113,2.762,115,1.724,118,1.724,145,1.374,148,1.374,152,1.724,165,4.087,173,1.475,178,1.374,190,2.358,198,1.724,199,4.055,200,2.762,201,2.768,202,2.768,203,5.624,204,2.768,205,1.882,206,2.768,207,2.768,208,4.055,209,2.358,210,1.131,211,1.285,212,2.768,213,2.768,214,2.768,215,2.768,216,3.454,217,2.768,218,2.768,219,1.885,220,1.885,221,1.59,222,2.768,223,1.374,224,2.768,225,2.768,226,2.768,227,2.762,228,4.055,229,2.768,230,2.768,231,4.055,232,2.768,233,4.055,234,2.768,235,4.055,236,2.768,237,2.768,238,2.768,239,4.055,240,2.768,241,2.768,242,2.768,243,2.768,244,2.768,245,1.204,246,2.087,247,2.768,248,2.768,249,1.204,250,1.475,251,2.768,252,2.358,253,2.768,254,2.768,255,2.768,256,2.768,257,2.358,258,2.768,259,2.768,260,2.768,261,1.885,262,2.768,263,2.768,264,2.768,265,2.768,266,2.768,267,2.768,268,2.768,269,2.768,270,2.768,271,2.768,272,2.768,273,2.768,274,2.768,275,2.768,276,2.768,277,2.358,278,2.768]],["t/20",[2,1.068,28,1.603,31,2.199,32,1.922,45,2.248,48,2.18,51,1.97,53,2.199,55,1.405,74,1.684,81,1.498,127,2.434,133,2.199,163,2.011,172,3.084,198,2.011,221,1.854,250,1.72,279,2.199,280,3.414,281,3.228,282,5.23,283,3.228,284,2.75,285,3.228,286,1.405,287,3.228,288,2.011,289,3.084,290,3.228,291,1.85,292,2.18,293,1.5,294,3.228,295,2.199,296,3.228,297,3.228,298,3.228,299,2.75,300,1.498,301,2.75,302,2.75,303,3.228,304,3.228,305,3.228,306,3.856,307,1.854,308,2.434,309,2.75,310,3.228,311,3.228,312,3.228,313,3.228,314,3.228,315,2.248,316,2.786,317,1.854,318,4.528,319,2.596,320,4.528,321,3.228,322,2.011,323,3.228,324,2.434,325,3.228,326,3.228,327,2.434,328,3.228]],["t/22",[7,1.24,17,1.833,19,1.405,32,1.672,53,2.69,55,2.524,65,5.249,78,2.978,81,1.833,88,2.268,155,1.718,160,1.88,161,3.059,279,3.537,308,2.978,309,3.364,315,2.578,317,2.982,322,2.46,329,2.978,330,3.364,331,3.949,332,3.915,333,4.197,334,5.193,335,5.193,336,4.423,337,3.949,338,2.978,339,2.69,340,1.833,341,5.801,342,5.193,343,3.949,344,4.423,345,1.961,346,2.978]],["t/25",[2,1.12,19,0.85,28,1.558,31,3.024,32,1.43,48,1.207,55,1.366,76,1.457,81,1.457,87,1.457,146,1.207,160,1.608,216,4.387,307,1.803,315,2.78,317,1.803,322,1.955,324,3.348,329,2.367,332,2.367,339,2.138,347,3.139,348,3.139,349,2.674,350,3.139,351,3.139,352,3.139,353,3.139,354,3.139,355,3.139,356,3.139,357,3.139,358,3.139,359,3.139,360,4.44,361,3.139,362,3.139,363,3.139,364,3.139,365,3.139,366,3.139,367,3.139,368,3.139,369,4.44,370,3.139,371,3.139,372,3.139,373,3.139,374,4.44,375,3.139,376,3.139,377,3.139,378,3.139,379,3.139,380,3.139,381,3.139,382,2.674,383,2.674,384,2.674,385,3.781,386,2.674,387,2.674,388,2.674,389,2.674,390,2.674,391,3.884,392,2.674,393,2.674,394,3.781,395,2.674,396,2.674,397,2.674,398,2.674,399,2.674,400,2.674]],["t/27",[2,1.12,31,2.73,48,2.016,81,1.861,87,1.861,293,1.15,315,3.077,317,2.302,322,2.497,324,3.954,329,3.023,332,3.023,336,4.466,339,2.73,382,3.414,383,3.414,384,3.414,385,4.466,386,3.414,387,3.414,388,3.414,389,3.414,390,3.414,391,4.406,392,3.414,393,3.414,394,4.466,395,3.414,396,3.414,397,3.414,398,3.414,399,3.414,400,3.414,401,4.009,402,4.009,403,4.009]],["t/29",[2,1.112,7,0.854,55,1.847,81,1.97,87,2.525,293,1.217,315,2.701,317,3.125,322,2.643,333,2.891,339,3.706,346,4.528,391,3.2,404,4.244,405,4.244,406,4.244,407,4.244,408,4.244,409,5.441,410,2.643,411,4.244,412,4.244,413,4.244,414,4.244,415,4.244,416,4.244,417,4.244,418,4.244,419,4.244,420,4.244,421,4.244,422,4.244]],["t/31",[2,1.127,17,2.044,22,0.553,28,1.54,32,0.999,45,2.541,48,1.193,55,1.35,74,0.999,87,2.375,124,1.932,157,2.742,160,2.017,183,2.339,245,1.35,250,1.653,315,3.033,317,2.939,346,2.339,423,3.103,424,2.113,425,2.642,426,3.103,427,3.103,428,1.932,429,3.103,430,3.103,431,3.103,432,2.113,433,4.403,434,3.103,435,3.103,436,3.103,437,2.339,438,3.103,439,2.642,440,3.103,441,3.103,442,3.103,443,3.103,444,3.103,445,3.103,446,3.103,447,5.117,448,3.103,449,4.403,450,5.117,451,3.103,452,3.103,453,3.103,454,3.103,455,3.103,456,3.103,457,4.403,458,4.403,459,3.103,460,3.103,461,4.403,462,3.103,463,3.103,464,3.103,465,3.103,466,3.103,467,3.103]],["t/34",[7,1.22,11,3.147,12,2.478,13,3.441,14,2.065,16,3.147,18,2.902,19,1.368,22,0.634,30,2.508,74,1.627,145,2.508,161,2.508,291,2.065,292,1.943,468,2.692,469,3.147,470,4.303,471,5.052]],["t/36",[6,2.824,7,0.912,8,3.862,10,3.317,11,4.042,12,1.853,20,3.088,22,0.839,27,2.105,28,2.251,210,1.853,211,2.105,223,2.817,286,1.973,410,3.534,472,3.088,473,3.862,474,2.633,475,3.864,476,3.088,477,4.534,478,4.534,479,3.088,480,3.862]],["t/38",[7,1.064,12,2.161,22,0.664,48,2.033,74,1.703,220,3.601,249,2.3,289,3.601,292,2.033,472,3.601,481,2.033,482,3.601,483,2.033,484,2.817]],["t/40",[7,0.757,10,1.868,12,2.055,19,1.018,22,0.711,51,2.188,59,2.837,142,3.253,148,2.496,160,1.363,185,2.837,198,2.343,210,2.055,211,1.746,250,3.018,291,2.315,292,2.492,293,1.442,306,3.205,340,1.746,428,2.343,468,2.005,469,2.343,479,2.563,484,2.679,485,3.763,486,2.563,487,3.763,488,2.837,489,4.283,490,3.205,491,3.763,492,5.029,493,3.253,494,3.205,495,3.763,496,3.792,497,2.837,498,3.763,499,2.563,500,2.563,501,2.837,502,3.763,503,3.763,504,1.637,505,2.343,506,3.763,507,3.763,508,2.563,509,2.005,510,3.205]],["t/42",[2,1.089,7,1.182,12,1.961,14,1.131,19,0.749,22,0.602,28,1.374,32,0.891,38,2.526,48,1.064,51,1.764,55,1.204,76,1.285,86,2.762,115,1.724,137,1.885,142,1.59,160,1.468,173,1.475,205,1.285,210,1.131,249,1.204,288,1.724,291,2.298,292,2.394,293,1.376,319,1.374,340,1.882,410,2.989,468,2.557,469,2.989,475,2.762,504,1.204,509,2.815,511,2.768,512,2.768,513,1.885,514,4.087,515,4.799,516,2.358,517,2.358,518,2.768,519,4.087,520,2.358,521,2.087,522,4.055,523,2.768,524,1.885,525,4.087,526,1.885,527,2.768,528,1.885,529,2.087,530,2.768,531,2.768,532,2.768,533,2.768,534,4.799,535,2.358,536,1.475,537,1.724,538,2.358,539,2.762,540,1.59,541,2.087,542,1.885,543,1.724,544,4.055,545,2.358,546,2.358,547,2.358,548,2.358,549,4.055,550,2.358,551,2.768,552,1.885,553,2.358,554,2.768,555,2.358,556,2.768]],["t/44",[2,1.103,7,0.998,12,2.026,14,1.198,19,0.793,22,0.531,28,1.455,30,1.455,38,3.088,48,1.625,51,1.839,55,1.839,76,1.361,77,1.826,86,2.879,135,2.496,137,1.996,142,1.683,148,1.455,160,1.061,205,1.361,245,1.275,249,1.275,286,1.275,291,1.728,292,2.305,293,1.422,308,2.21,319,1.455,338,2.21,340,1.962,345,1.455,410,1.826,468,2.252,500,1.996,509,2.891,514,2.496,521,2.21,525,4.223,529,3.187,535,2.496,536,1.562,537,1.826,538,2.496,539,2.879,540,1.683,541,2.21,542,1.996,543,1.826,545,2.496,546,2.496,547,2.496,548,2.496,552,1.996,553,2.496,555,2.496,557,1.996,558,2.931,559,2.931,560,2.931,561,2.496,562,2.931,563,2.931,564,1.683,565,2.931,566,2.931,567,2.931,568,1.455,569,2.931,570,2.931,571,2.931,572,2.496,573,2.496,574,2.496,575,4.958,576,4.227,577,4.227,578,2.496,579,2.931,580,2.931,581,2.931]],["t/47",[7,1.05,12,2.133,27,2.422,128,2.422,211,2.422,481,2.006,504,2.27,513,3.554,582,5.218,583,5.218,584,5.218,585,5.218,586,5.218,587,5.218,588,5.218,589,5.218]],["t/49",[2,0.951,43,3.187,223,2.54,345,2.54,481,2.349,504,2.227,557,3.485,578,4.358,590,2.726,591,5.117,592,5.117,593,5.117,594,5.117,595,4.358,596,5.117,597,5.117,598,5.117]],["t/51",[2,1.038,7,0.907,21,3.4,22,0.775,146,1.733,173,2.402,205,2.093,245,1.962,249,1.962,410,2.808,481,2.49,483,1.733,550,3.84,557,3.071,590,2.402,595,3.84,599,4.509,600,4.509,601,4.509,602,3.84,603,4.509,604,4.509,605,4.509,606,4.509,607,4.509,608,4.509,609,4.509,610,4.509,611,2.808,612,4.509,613,4.509]],["t/53",[2,0.98,17,1.939,32,1.345,74,1.734,82,3.093,87,1.939,128,1.939,155,1.818,160,1.513,249,1.818,307,2.399,330,3.558,481,2.292,483,1.606,499,2.845,536,2.226,568,2.074,590,2.226,614,2.845,615,3.558,616,2.845,617,3.15,618,3.558,619,5.386,620,3.558,621,4.177,622,4.177,623,2.074,624,3.558,625,3.558,626,4.177,627,4.177,628,3.558,629,4.177,630,3.558,631,3.558,632,3.558,633,4.177,634,4.177,635,4.177,636,4.177,637,4.177,638,3.558,639,4.177,640,4.177,641,4.177]],["t/55",[2,1.101,74,1.374,82,2.451,87,1.98,144,2.451,160,1.545,192,4.117,293,1.224,307,2.451,316,2.909,481,2.315,483,1.641,504,1.857,508,2.906,540,2.451,568,2.118,623,2.118,630,3.634,631,3.634,638,3.634,642,5.128,643,4.267,644,4.267,645,3.634,646,3.634,647,2.118,648,4.267,649,3.634,650,4.267,651,4.267,652,4.267,653,4.267,654,4.267,655,4.267]],["t/57",[7,1.193,11,3.031,12,1.989,13,3.315,14,2.719,27,2.259,37,4.145,38,3.031,39,2.416,40,4.145,41,3.67,42,3.67,43,3.692,44,4.145,45,2.416,80,4.145,145,2.416,161,2.416,211,2.259,474,2.259,504,2.118,656,4.145]],["t/59",[14,1.812,22,0.702,27,2.058,43,2.761,153,2.362,161,2.201,185,3.343,211,2.596,249,2.434,286,1.929,288,3.484,292,1.704,319,2.201,473,3.776,484,2.362,493,2.546,564,2.546,656,4.764,657,4.433,658,3.019,659,3.776,660,4.218,661,4.433,662,4.433,663,4.433,664,2.546,665,3.776,666,3.343,667,4.433,668,2.761,669,2.761,670,4.433,671,4.433,672,4.433,673,4.433,674,4.433,675,4.433]],["t/62",[2,1.067,7,1.073,17,1.555,22,0.67,25,1.899,29,1.144,61,2.087,76,1.555,120,2.507,123,1.924,124,2.087,144,2.669,145,1.663,152,2.087,153,1.785,160,1.213,178,1.663,221,1.924,483,1.288,568,1.663,647,1.663,676,3.351,677,3.351,678,3.351,679,2.527,680,2.527,681,2.527,682,2.854,683,3.351,684,3.351,685,2.854,686,4.544,687,5.335,688,3.351,689,3.504,690,3.958,691,3.351,692,3.351,693,2.854,694,3.351,695,3.351,696,3.958,697,3.351,698,3.351,699,4.647,700,2.854,701,3.351,702,2.854,703,3.351,704,2.894,705,3.351,706,3.351,707,3.958,708,3.351,709,5.335,710,3.351,711,3.351,712,3.351,713,3.351,714,2.854,715,5.335,716,2.854,717,4.647,718,2.854,719,3.351,720,3.351]],["t/64",[2,1.05,3,2.599,19,1.033,22,0.637,29,1.303,71,2.878,74,1.229,76,1.772,118,2.377,120,2.209,128,2.356,175,3.251,178,1.895,200,2.599,210,1.56,221,2.192,286,1.661,483,1.467,564,2.192,568,1.895,623,1.895,707,3.251,721,3.458,722,6.33,723,3.817,724,3.817,725,2.599,726,5.704,727,2.878,728,3.817,729,3.817,730,3.817,731,3.817,732,3.817,733,2.599,734,2.878,735,3.817,736,2.599,737,5.077,738,3.817,739,3.817,740,3.817,741,3.817,742,3.817,743,3.817,744,3.817,745,3.251,746,3.251,747,3.817,748,3.251,749,3.817,750,3.817,751,3.817,752,3.817]],["t/66",[2,1.081,7,1.003,14,1.518,19,1.349,22,0.626,25,1.005,29,1.268,38,2.787,39,1.221,61,4.275,68,2.095,87,1.142,95,3.164,96,2.095,113,1.675,118,1.532,120,2.617,123,1.413,127,1.855,129,3.759,140,1.675,146,1.721,148,1.221,153,1.311,155,1.07,159,1.855,173,1.311,200,1.675,220,1.675,227,2.53,245,1.07,286,1.616,293,0.706,316,1.311,340,1.142,476,1.675,504,1.07,536,1.311,539,2.53,543,1.532,568,1.221,623,1.844,645,2.095,647,1.221,669,2.313,679,1.855,680,1.855,681,1.855,685,2.095,686,2.095,689,3.374,693,2.095,714,3.164,718,2.095,721,1.675,725,2.53,746,2.095,753,2.46,754,2.46,755,2.095,756,2.46,757,2.46,758,2.46,759,4.985,760,4.475,761,3.714,762,2.095,763,1.675,764,2.46,765,2.46,766,2.46,767,2.095,768,2.46,769,2.46,770,2.46,771,2.46,772,3.714,773,2.46,774,2.46,775,2.46,776,2.46,777,2.46,778,2.095,779,2.46,780,2.46,781,3.714,782,3.811,783,3.714,784,2.46,785,2.095,786,2.095,787,2.46,788,2.095,789,2.46,790,2.46,791,2.46,792,2.095,793,2.46,794,2.46,795,2.46]],["t/68",[2,0.87,7,0.892,19,1.2,22,0.557,25,2.505,57,3.343,61,2.761,74,1.428,120,1.929,160,1.605,293,1.758,474,2.058,483,1.704,504,1.929,524,3.019,568,2.201,590,2.98,721,4.174,785,3.776,786,3.776,796,3.776,797,4.433,798,5.594,799,4.433,800,4.433,801,4.433,802,4.433,803,3.776,804,4.433,805,3.776,806,4.433,807,5.594,808,3.776]],["t/71",[4,3.641,7,1.22,10,3.191,19,0.911,22,0.787,77,2.096,89,2.866,123,3.315,146,1.294,152,2.096,157,2.096,168,2.537,170,2.866,171,4.916,172,2.292,176,2.537,187,1.67,210,1.375,211,2.163,219,2.292,223,2.314,345,1.67,349,2.866,482,2.292,505,3.33,614,2.292,763,2.292,788,2.866,792,2.866,809,2.866,810,3.365,811,3.365,812,5.347,813,5.347,814,3.365,815,4.66,816,4.66,817,2.866,818,3.365,819,2.537,820,2.096,821,3.365,822,4.66,823,3.365,824,4.66,825,4.66,826,3.365,827,3.365,828,5.772,829,4.66,830,3.365,831,3.514,832,3.365,833,3.365,834,3.365,835,3.365,836,2.866,837,3.365,838,3.365]],["t/73",[22,0.582,25,2.352,680,4.34,681,3.499,690,3.952,721,3.16,755,3.952,808,3.952,839,4.64,840,4.64,841,4.64,842,5.756,843,4.64,844,4.64,845,4.64,846,4.64,847,4.64,848,4.64,849,4.64,850,4.64,851,4.64,852,4.64,853,4.64,854,3.952,855,4.64,856,4.64,857,4.64,858,4.64,859,5.756,860,5.756]],["t/75",[2,0.864,3,2.097,6,2.727,10,2.53,11,3.174,12,2.083,14,2.083,16,1.917,17,2.032,18,1.768,20,2.097,22,0.787,23,2.622,27,1.429,28,2.174,29,1.051,30,2.174,32,0.991,33,3.729,36,3.729,41,2.321,45,1.528,46,2.622,48,1.184,51,1.339,128,1.429,140,2.097,155,1.339,176,2.321,187,1.528,205,2.576,223,2.174,245,1.339,280,2.321,300,1.429,302,2.622,327,2.321,468,1.64,469,1.917,474,2.032,488,2.321,496,2.321,500,2.097,501,2.321,682,2.622,727,2.321,733,2.097,809,2.622,861,3.079,862,3.079,863,3.079,864,2.321,865,2.622,866,3.079,867,3.079,868,2.321,869,2.321,870,5.553,871,3.079,872,3.079,873,5.096,874,4.378,875,4.378,876,2.622,877,3.079,878,3.079,879,3.079,880,3.079,881,2.321,882,2.321,883,2.622,884,3.079,885,3.079,886,4.378,887,3.729,888,2.321,889,3.079,890,3.079,891,2.622,892,3.079]],["t/77",[6,2.873,14,1.885,22,0.579,29,1.958,30,2.29,39,2.29,63,3.142,74,1.486,145,2.29,153,2.458,155,2.495,159,3.478,163,2.873,284,4.885,425,3.929,474,2.141,479,3.142,494,3.929,668,2.873,805,3.929,882,3.478,893,4.613,894,4.613,895,4.613,896,4.613,897,3.929,898,4.613,899,4.613,900,4.613,901,4.613,902,4.613,903,4.613,904,3.142]],["t/79",[2,0.483,10,2.186,19,0.84,22,0.738,29,1.503,30,1.54,32,0.999,56,2.642,62,1.653,74,1.794,82,1.782,123,1.782,128,2.375,129,2.339,132,2.339,142,1.782,155,2.227,160,1.594,163,1.932,167,2.642,178,1.54,187,1.54,192,2.339,198,1.932,205,2.044,211,1.44,223,1.54,250,1.653,291,1.799,292,2.141,293,0.89,300,2.044,424,2.113,468,2.346,472,2.113,479,2.113,482,2.113,483,1.693,486,2.113,488,2.339,489,2.642,490,2.642,493,2.939,500,2.999,501,3.32,505,2.742,508,2.113,509,1.653,520,2.642,521,2.339,573,2.642,617,2.339,642,2.642,736,2.999,796,3.75,819,2.339,820,1.932,876,2.642,891,2.642,905,3.103,906,3.103,907,3.103,908,3.103,909,3.103,910,3.103,911,3.103,912,1.653,913,2.642,914,3.103,915,2.642,916,3.103,917,2.642,918,2.642,919,2.339,920,2.642,921,3.103,922,2.642,923,3.75,924,2.642,925,3.103,926,3.103,927,3.103,928,3.103,929,4.403,930,3.103,931,3.103,932,3.103,933,2.642,934,3.103]],["t/81",[2,0.66,10,2.107,22,0.683,27,1.97,43,2.643,60,3.389,133,2.891,136,2.891,145,2.107,146,2.309,152,2.643,178,2.701,205,2.525,210,1.735,211,2.525,223,2.701,250,2.261,474,1.97,476,2.891,524,2.891,614,3.706,869,3.2,887,3.615,897,3.615,935,4.244,936,4.244,937,4.244,938,4.244,939,4.244,940,3.2,941,4.244,942,3.615,943,4.244,944,4.244,945,3.615,946,4.244,947,4.244,948,4.244,949,3.615,950,4.244,951,4.244,952,3.615]],["t/83",[3,3.356,7,1.202,22,0.619,29,1.682,75,4.197,81,2.287,128,2.287,205,2.287,210,2.014,568,2.446,614,3.356,665,4.197,733,3.356,734,3.715,865,4.197,933,4.197,949,4.197,953,3.356,954,4.927,955,4.197,956,4.927,957,4.927,958,4.927,959,4.927]],["t/86",[2,1.069,16,2.324,17,1.732,22,0.812,29,0.845,32,1.728,39,1.229,42,1.866,48,0.952,51,1.954,62,1.319,77,1.542,88,1.422,93,3.342,101,2.542,103,2.108,115,1.542,132,1.866,133,1.686,146,0.952,153,1.988,155,1.077,157,1.542,161,1.229,187,1.229,198,1.542,220,1.686,245,1.077,246,1.866,249,1.077,250,1.319,261,1.686,279,1.686,286,1.077,291,1.836,292,0.952,293,1.434,300,2.321,307,2.872,338,2.814,340,1.149,432,1.686,437,1.866,481,2.169,482,1.686,484,1.319,499,3.059,509,1.319,513,1.686,526,1.686,536,1.319,590,1.988,647,1.229,658,1.686,660,1.866,664,1.422,666,1.866,679,3.387,745,2.108,820,1.542,869,1.866,888,1.866,912,3.005,917,2.108,960,2.475,961,2.475,962,2.475,963,2.324,964,3.178,965,2.475,966,5.366,967,1.686,968,3.732,969,1.866,970,3.732,971,2.475,972,2.475,973,2.108,974,1.866,975,2.108,976,1.866,977,1.866,978,1.686,979,1.866,980,1.686,981,1.866,982,1.866,983,1.866,984,1.866,985,2.475,986,2.475,987,2.475,988,2.108,989,2.475,990,3.732,991,3.178,992,2.475,993,2.475,994,2.475,995,2.475,996,2.475,997,2.475,998,2.475,999,2.108]],["t/88",[291,2.487,293,1.745,316,2.709,564,2.92,574,4.331,615,5.183,912,2.709,953,3.463,1000,4.331,1001,5.085,1002,4.589,1003,5.085,1004,5.085,1005,4.331,1006,5.085,1007,4.331]],["t/90",[2,1.108,7,1.013,17,0.872,22,0.541,25,1.231,29,0.642,32,0.97,45,1.495,49,1.28,55,1.31,62,1.605,76,0.872,84,1.28,113,1.28,120,2.772,124,3.135,128,0.872,137,1.28,140,1.28,141,1.28,146,0.723,148,0.933,155,0.818,164,1.417,178,0.933,184,1.601,200,1.28,219,1.28,246,1.417,257,1.601,261,2.051,286,1.64,293,1.081,300,2.001,315,0.933,316,1.605,319,1.495,340,1.749,344,1.601,345,0.933,474,0.872,475,1.28,481,1.449,483,0.723,486,1.28,497,1.417,499,3.213,528,1.28,540,1.73,541,1.417,542,1.28,543,1.876,552,1.28,572,1.601,611,1.17,616,1.28,623,0.933,646,1.601,647,1.871,664,1.73,669,1.17,689,2.842,704,2.347,725,2.567,727,2.271,817,4.018,864,2.842,868,1.417,881,1.417,904,2.936,912,1.001,940,1.417,963,3.293,964,1.601,967,1.28,969,1.417,973,2.565,978,1.28,980,1.28,991,1.601,1008,1.28,1009,1.28,1010,1.879,1011,1.879,1012,1.601,1013,1.879,1014,1.879,1015,1.879,1016,1.879,1017,1.879,1018,1.879,1019,1.28,1020,1.879,1021,1.879,1022,4.31,1023,1.879,1024,1.879,1025,1.879,1026,1.879,1027,1.879,1028,1.879,1029,1.879,1030,1.879,1031,1.879,1032,1.879,1033,1.879,1034,1.879,1035,1.879,1036,1.879,1037,1.879,1038,1.879,1039,1.879,1040,1.879,1041,1.879,1042,1.879,1043,1.879,1044,1.601,1045,1.601,1046,1.879,1047,1.879,1048,1.879,1049,1.879,1050,1.879,1051,3.012,1052,1.879,1053,1.879,1054,3.012,1055,1.879,1056,1.879,1057,2.271,1058,1.879,1059,1.879,1060,1.879,1061,3.012,1062,1.879,1063,1.879,1064,1.879,1065,1.879,1066,1.879,1067,1.879,1068,1.879,1069,1.879,1070,1.879,1071,1.879,1072,1.879,1073,1.879,1074,1.879,1075,1.601,1076,1.879,1077,1.879,1078,1.879,1079,1.879,1080,1.879,1081,1.879,1082,1.879]],["t/92",[2,1.094,7,0.307,19,0.413,22,0.636,25,2.15,29,0.867,30,0.758,32,1.794,45,1.261,62,0.813,74,0.818,76,0.708,81,0.708,82,1.459,84,1.039,85,1.151,88,1.874,102,1.3,120,1.42,136,1.039,144,2.186,146,0.587,155,1.105,157,0.95,160,0.92,179,1.3,183,1.151,187,0.758,210,1.555,219,1.039,221,0.876,245,0.664,249,1.42,261,2.592,293,1.309,295,1.039,300,0.708,307,2.186,316,2.891,319,0.758,333,1.039,340,1.179,345,0.758,428,0.95,439,1.3,470,1.3,472,1.039,474,1.515,475,1.039,476,1.039,481,1.86,483,1.625,486,1.039,497,1.151,504,1.656,509,0.813,510,1.3,519,1.3,524,2.592,526,1.039,528,1.039,536,2.027,537,2.37,540,2.186,542,2.223,564,1.459,590,0.813,602,1.3,611,0.95,616,1.039,618,1.3,620,2.164,623,1.261,625,3.599,628,3.241,632,2.164,647,0.758,664,1.459,668,1.582,669,0.95,702,1.3,704,0.95,763,1.039,820,2.033,831,1.151,870,1.3,881,3.648,888,1.151,912,0.813,919,1.151,924,1.3,955,1.3,963,3.276,967,3.107,974,1.151,975,1.3,976,1.151,977,1.151,978,1.039,979,1.151,980,1.039,981,1.151,982,1.151,983,1.151,984,1.916,1005,3.241,1008,1.039,1009,1.039,1012,1.3,1019,1.73,1057,3.44,1083,1.526,1084,1.526,1085,2.164,1086,2.541,1087,2.541,1088,1.526,1089,1.3,1090,3.264,1091,1.526,1092,2.541,1093,1.526,1094,1.526,1095,1.526,1096,2.164,1097,2.541,1098,1.526,1099,1.526,1100,1.526,1101,1.526,1102,1.526,1103,2.541,1104,1.526,1105,1.526,1106,2.541,1107,1.526,1108,1.526,1109,1.916,1110,1.526,1111,1.526,1112,1.526,1113,2.541,1114,2.541,1115,2.541,1116,1.526,1117,1.526,1118,2.541,1119,2.541,1120,1.526,1121,1.526,1122,1.526,1123,1.526,1124,2.541,1125,1.526,1126,1.526,1127,1.526,1128,1.526,1129,1.526,1130,1.526,1131,1.526,1132,1.526,1133,1.526,1134,1.526,1135,1.526,1136,1.526,1137,1.526,1138,2.541,1139,2.541,1140,2.541,1141,2.541,1142,2.541,1143,1.526,1144,1.526,1145,1.526,1146,1.526,1147,1.526]],["t/94",[2,1.011,4,2.298,6,0.789,7,0.573,19,0.587,20,0.862,22,0.672,24,1.848,25,1.379,27,0.588,29,0.972,30,1.414,32,1.724,39,1.077,45,1.077,48,0.487,49,0.862,55,1.651,60,0.789,62,1.156,63,0.862,69,0.862,76,0.588,78,2.147,79,1.079,81,1.322,84,1.478,88,0.727,93,0.789,101,1.478,118,1.352,120,1.468,123,0.727,124,0.789,128,2.264,141,1.939,144,1.246,146,0.834,148,1.414,153,0.675,161,0.629,163,0.789,164,0.955,168,0.955,169,1.848,172,0.862,173,0.675,178,1.675,187,1.414,191,2.544,205,1.566,209,1.079,210,0.518,223,2.318,249,0.551,279,1.478,280,0.955,286,1.468,288,1.773,289,1.478,291,1.164,292,0.487,293,0.817,295,1.478,299,1.079,300,1.921,301,1.848,315,0.629,316,0.675,319,1.884,327,0.955,333,2.298,340,1.007,345,0.629,424,1.478,428,0.789,432,0.862,437,0.955,468,1.156,469,0.789,474,1.322,480,1.848,481,1.095,483,1.095,484,0.675,493,1.246,496,2.147,505,0.789,508,0.862,513,0.862,516,1.079,517,1.079,529,0.955,537,0.789,552,0.862,557,0.862,590,0.675,611,1.352,616,0.862,617,1.636,623,1.414,647,0.629,649,1.848,658,0.862,659,1.079,660,0.955,664,2.682,666,0.955,668,1.773,696,1.079,704,3.038,716,1.079,725,0.862,733,1.478,734,0.955,736,0.862,748,1.079,819,0.955,820,0.789,864,2.147,868,1.636,904,0.862,912,3.263,913,2.425,915,1.079,919,1.636,920,1.079,922,1.079,940,1.636,945,1.848,952,3.526,953,2.819,963,2.364,967,3.015,969,3.121,974,1.636,976,1.636,977,1.636,978,1.478,979,1.636,980,1.478,981,0.955,982,1.636,983,2.862,984,0.955,999,1.848,1002,2.544,1008,0.862,1009,0.862,1019,0.862,1044,1.848,1045,1.848,1075,1.848,1085,1.848,1109,0.955,1148,1.266,1149,1.266,1150,1.266,1151,1.266,1152,1.266,1153,1.079,1154,1.266,1155,1.079,1156,1.266,1157,2.17,1158,1.848,1159,1.266,1160,2.847,1161,1.266,1162,1.079,1163,1.079,1164,1.266,1165,2.17,1166,3.374,1167,1.266,1168,1.266,1169,1.266,1170,1.266,1171,2.847,1172,1.266,1173,1.266,1174,1.266,1175,1.079,1176,4.139,1177,1.266,1178,1.266,1179,2.17,1180,1.266,1181,1.266,1182,1.266,1183,1.266,1184,2.17,1185,1.266,1186,2.17,1187,2.17,1188,2.17,1189,2.17,1190,2.17,1191,1.266,1192,2.847,1193,1.266,1194,1.266,1195,1.266,1196,1.266,1197,1.266,1198,2.17,1199,1.266,1200,1.266,1201,1.266,1202,1.266,1203,1.266,1204,1.266,1205,1.266,1206,1.266,1207,1.079,1208,1.266,1209,1.266,1210,1.266,1211,1.266]],["t/96",[2,0.947,4,2.321,7,0.686,19,0.922,21,4.059,22,0.728,29,1.164,32,1.869,48,2.231,69,2.321,77,2.123,88,1.957,93,2.123,115,2.123,120,2.342,144,1.957,166,2.57,187,1.692,210,1.393,245,1.483,289,3.202,291,1.393,293,1.746,295,2.321,300,1.582,345,2.881,432,3.202,481,1.31,484,1.816,493,1.957,526,2.321,528,2.321,611,2.123,658,2.321,668,2.123,763,2.321,782,2.903,831,2.57,883,2.903,904,2.321,912,3.354,988,4.005,1000,2.903,1002,3.545,1008,2.321,1009,2.321,1057,2.57,1089,2.903,1153,2.903,1155,2.903,1158,2.903,1162,2.903,1207,2.903,1212,3.408,1213,3.408,1214,4.702,1215,3.408,1216,3.408,1217,3.408,1218,4.702,1219,3.408,1220,3.408]],["t/99",[2,1.097,7,0.547,14,1.112,18,1.563,22,0.503,25,1.942,39,1.351,51,1.742,53,1.853,57,2.052,58,3.236,59,3.582,60,2.959,61,3.478,64,2.317,69,1.853,71,2.052,72,2.052,74,0.876,85,3.019,86,3.803,87,1.263,106,2.317,109,2.317,110,2.317,119,2.317,120,2.696,141,1.853,142,1.563,146,1.539,173,1.45,191,3.582,221,1.563,227,2.727,277,2.317,288,1.695,292,1.046,504,1.184,505,1.695,536,1.45,539,3.569,543,1.695,561,2.317,564,1.563,623,1.351,624,2.317,647,1.988,762,2.317,767,3.41,778,2.317,803,2.317,836,2.317,854,2.317,882,2.052,923,2.317,1096,2.317,1163,2.317,1221,2.721,1222,2.721,1223,4.004,1224,2.721,1225,2.721,1226,2.721,1227,4.004,1228,2.721,1229,4.004,1230,2.721,1231,2.721,1232,2.721,1233,2.721,1234,2.721,1235,2.721,1236,2.721,1237,2.721,1238,2.721,1239,4.004,1240,2.721,1241,2.721,1242,2.721,1243,2.721,1244,4.004,1245,2.721,1246,2.721,1247,2.721,1248,2.721,1249,2.721,1250,2.721,1251,2.721,1252,2.721,1253,2.721,1254,2.721,1255,2.721,1256,2.721]],["t/101",[19,1.292,22,0.599,29,1.629,51,2.669,58,2.372,74,1.753,101,4.316,136,3.25,145,1.729,148,1.729,161,1.729,166,2.626,186,2.966,227,2.372,245,1.515,252,2.966,286,1.515,291,2.739,292,1.339,293,1.68,300,2.215,319,1.729,424,2.372,428,2.169,481,1.339,483,1.339,484,1.855,493,2,509,1.855,537,2.972,540,3.127,664,3.127,669,2.169,700,2.966,704,2.169,736,2.372,918,2.966,942,2.966,953,3.708,963,2.169,1007,4.637,1019,2.372,1109,2.626,1175,2.966,1257,3.483,1258,4.772,1259,3.483,1260,3.483,1261,4.772,1262,3.483,1263,3.483,1264,3.483,1265,3.483,1266,3.483]]],"invertedIndex":[["",{"_index":2,"t":{"9":{"position":[[6,2],[15,2]]},"13":{"position":[[915,1],[939,1],[1046,1],[1060,1],[1069,2],[1080,1],[1090,1],[1277,1]]},"17":{"position":[[380,1],[459,1],[610,1],[655,2],[717,1],[753,1],[799,2],[808,1],[825,1],[891,1],[936,1],[976,1],[978,2],[1037,1],[1083,2],[1092,1],[1109,1],[1175,1],[1220,1],[1260,1],[1262,2],[1336,2],[1409,2],[1504,1],[1964,2],[2113,1]]},"20":{"position":[[739,1],[748,1],[765,1],[783,1],[817,1],[886,1],[905,2],[964,1],[993,3],[1016,1],[1018,2],[1045,1],[1047,1]]},"25":{"position":[[125,1],[255,2],[278,1],[355,1],[417,1],[562,2],[697,2],[700,3],[715,1],[747,1],[923,1],[1008,3],[1060,1],[1103,1],[1111,1],[1146,1],[1198,1],[1425,1],[1521,2],[1537,1],[1633,1],[1635,2],[1638,1],[1640,1],[1642,1],[1644,2],[1647,1]]},"27":{"position":[[10,1],[651,1],[762,1],[806,1],[814,1],[849,1],[901,1],[1128,1],[1224,2],[1240,1],[1336,1],[1338,2],[1341,1],[1343,1],[1345,1],[1347,2],[1350,1]]},"29":{"position":[[57,2],[60,1],[62,2],[125,2],[194,2],[223,2],[291,2],[311,2],[314,1],[326,1],[731,1],[847,1],[1014,1]]},"31":{"position":[[413,2],[449,1],[647,1],[696,1],[713,2],[716,1],[718,2],[742,2],[806,2],[880,2],[911,2],[932,2],[1003,2],[1006,1],[1020,1],[1628,1],[1716,2],[1719,1],[1721,2],[1735,2],[1802,2],[1805,1],[1819,1],[2079,1],[2147,2],[2150,1],[2152,2],[2219,2],[2222,1],[2236,1],[2485,1]]},"42":{"position":[[898,1],[976,2],[1019,2],[1022,1],[1024,1],[1073,2],[1136,1],[1154,2],[1159,1],[1189,2],[1192,1],[1217,1],[1219,1],[1667,2],[1710,1],[1722,1],[1806,2],[1892,2],[1988,2],[2074,2],[2246,1]]},"44":{"position":[[585,1],[663,2],[706,2],[709,1],[711,1],[760,2],[823,1],[841,2],[846,1],[876,2],[879,1],[902,1],[904,1],[1350,2],[1395,1],[1406,1],[1459,2],[1545,2],[1612,2],[1629,2],[1715,2],[1853,2],[1875,1]]},"49":{"position":[[147,1],[263,1]]},"51":{"position":[[142,1],[249,2],[347,1],[392,2],[523,4]]},"53":{"position":[[466,1],[560,1],[766,2],[777,2]]},"55":{"position":[[234,1],[236,2],[248,1],[250,1],[275,1],[277,2],[336,3],[350,1],[574,5],[580,2],[591,2]]},"62":{"position":[[662,1],[682,1],[689,1],[705,1],[934,1],[966,2],[999,2],[1032,2],[1063,1],[1087,2],[1139,1],[1163,2]]},"64":{"position":[[449,1],[469,1],[499,1],[520,1],[637,2],[640,2],[657,1],[753,2]]},"66":{"position":[[306,2],[354,1],[579,2],[582,2],[675,1],[833,2],[836,2],[947,1],[1133,2],[1144,2],[1166,2],[1187,1],[1189,2],[1192,2],[1278,1],[1430,2],[1433,2],[1515,1],[1571,2],[1651,2],[2189,1],[2230,1],[2414,1]]},"68":{"position":[[111,1],[184,2]]},"75":{"position":[[146,1],[313,1],[397,1],[1030,1]]},"79":{"position":[[191,1]]},"81":{"position":[[328,1]]},"86":{"position":[[330,1],[332,1],[334,1],[358,2],[383,1],[385,1],[387,1],[389,1],[413,1],[415,1],[421,1],[443,1],[492,1],[520,1],[522,1],[524,1],[554,2],[579,1],[706,1],[854,1]]},"90":{"position":[[947,1],[1123,2],[1268,2],[1398,2],[1412,1],[2001,2],[2020,1],[2123,1],[2135,1],[2172,1],[2254,1],[2335,1],[2411,1],[2473,1],[2485,1],[2487,2],[2514,1],[2629,1],[2631,2],[2713,1],[2783,1],[2806,1],[2838,1],[2864,1],[2871,1],[2887,2],[2893,1],[2905,1],[2932,1],[2986,1],[3070,1],[3072,3],[3086,1],[3119,1],[3126,1],[3141,2],[3147,1],[3160,1],[3208,1],[3280,1],[3301,2],[3357,2],[3416,1],[3438,2],[3683,1],[3685,1],[3776,1]]},"92":{"position":[[132,1],[342,1],[344,1],[484,2],[502,1],[634,1],[1089,1],[1848,1],[1893,1],[1901,1],[1910,2],[1913,1],[1915,1],[1917,1],[1919,1],[1921,1],[1991,2],[2033,2],[2059,2],[2083,2],[2091,1],[2109,2],[2137,2],[2354,1],[2407,2],[2410,1],[2441,2],[2444,1],[2481,1],[2526,1],[2557,1],[2559,3],[2572,2],[2575,2],[2578,1],[2580,2],[2583,1],[2585,2],[3075,1],[3099,1],[3101,1],[3136,2],[3139,1],[3192,1],[3194,3],[3220,3],[3238,1],[3240,2],[3376,2],[3390,2],[3749,1]]},"94":{"position":[[606,1],[608,1],[674,1],[822,1],[824,1],[891,1],[2559,1],[2588,2],[2699,2],[2717,3],[2852,2],[2878,2],[3051,1],[3179,1],[3190,1],[3252,1],[3264,1],[3266,2],[3376,1],[3459,1],[3474,1],[3528,1],[3540,1],[3542,2],[3652,1],[3654,2],[4682,2],[4743,2],[4862,1],[4895,1]]},"96":{"position":[[776,1],[778,2],[861,2],[879,1],[957,1]]},"99":{"position":[[350,2],[461,1],[496,1],[501,2],[612,1],[783,1],[1064,2],[1078,2],[1087,2],[1166,1],[1168,2],[1171,2],[1207,1],[1346,2],[1385,1],[1484,2],[1657,2],[1660,2],[1728,2],[1832,1],[1899,2],[1902,2],[2022,1],[2057,2]]}}}],["0",{"_index":647,"t":{"55":{"position":[[259,6]]},"62":{"position":[[1043,2]]},"66":{"position":[[1164,1]]},"86":{"position":[[834,3]]},"90":{"position":[[604,2],[2866,2],[3121,2]]},"92":{"position":[[464,3]]},"94":{"position":[[4864,3]]},"99":{"position":[[498,2],[1075,2]]}}}],["0..64",{"_index":968,"t":{"86":{"position":[[435,7],[456,7]]}}}],["00",{"_index":463,"t":{"31":{"position":[[2135,4]]}}}],["0x",{"_index":1118,"t":{"92":{"position":[[2178,4],[2980,5]]}}}],["0x0000baadf00d0000cafed00d0000deadbeef0000",{"_index":650,"t":{"55":{"position":[[289,46]]}}}],["0x0d",{"_index":374,"t":{"25":{"position":[[823,7],[891,7]]}}}],["0x80000000",{"_index":705,"t":{"62":{"position":[[671,10]]}}}],["0x8badf00d",{"_index":632,"t":{"53":{"position":[[468,17]]},"92":{"position":[[1850,13],[1978,12]]}}}],["0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",{"_index":538,"t":{"42":{"position":[[1076,59]]},"44":{"position":[[763,59]]}}}],["0xad",{"_index":376,"t":{"25":{"position":[[879,5]]}}}],["0xd0",{"_index":373,"t":{"25":{"position":[[817,5]]}}}],["0xdeadbeef",{"_index":1114,"t":{"92":{"position":[[1864,13],[2012,12]]}}}],["0xdeadbeef\\\",\\\"9",{"_index":633,"t":{"53":{"position":[[486,21]]}}}],["0xf0",{"_index":377,"t":{"25":{"position":[[885,5]]}}}],["0xfe",{"_index":372,"t":{"25":{"position":[[811,5]]}}}],["0xff00ff00",{"_index":1144,"t":{"92":{"position":[[3415,12]]}}}],["1",{"_index":540,"t":{"42":{"position":[[1157,1]]},"44":{"position":[[844,1]]},"55":{"position":[[273,1]]},"90":{"position":[[2890,2],[3144,2]]},"92":{"position":[[134,1],[2633,1],[3249,1],[3751,1]]},"101":{"position":[[584,1],[723,1],[780,1]]}}}],["100",{"_index":645,"t":{"55":{"position":[[239,8]]},"66":{"position":[[1128,4]]}}}],["1024",{"_index":982,"t":{"86":{"position":[[844,5]]},"92":{"position":[[474,5]]},"94":{"position":[[2916,5],[4874,5]]}}}],["124",{"_index":1157,"t":{"94":{"position":[[1087,3],[1178,3]]}}}],["125",{"_index":1120,"t":{"92":{"position":[[2272,5]]}}}],["128",{"_index":797,"t":{"68":{"position":[[31,3]]}}}],["13",{"_index":385,"t":{"25":{"position":[[1140,5],[1176,5]]},"27":{"position":[[843,5],[879,5]]}}}],["1507",{"_index":409,"t":{"29":{"position":[[215,7],[874,8]]}}}],["173",{"_index":383,"t":{"25":{"position":[[1130,4]]},"27":{"position":[[833,4]]}}}],["1815",{"_index":698,"t":{"62":{"position":[[503,4]]}}}],["1852",{"_index":694,"t":{"62":{"position":[[465,4]]}}}],["2",{"_index":536,"t":{"42":{"position":[[1035,1]]},"44":{"position":[[722,1]]},"53":{"position":[[535,10]]},"66":{"position":[[1141,2]]},"86":{"position":[[1346,1]]},"92":{"position":[[1908,1],[2116,5],[3345,1],[3359,1]]},"99":{"position":[[48,1]]}}}],["2021",{"_index":447,"t":{"31":{"position":[[735,6],[904,6],[1698,5]]}}}],["208",{"_index":388,"t":{"25":{"position":[[1171,4]]},"27":{"position":[[874,4]]}}}],["240",{"_index":384,"t":{"25":{"position":[[1135,4]]},"27":{"position":[[838,4]]}}}],["25",{"_index":309,"t":{"20":{"position":[[552,3]]},"22":{"position":[[53,2]]}}}],["254",{"_index":387,"t":{"25":{"position":[[1166,4]]},"27":{"position":[[869,4]]}}}],["264",{"_index":981,"t":{"86":{"position":[[838,4]]},"92":{"position":[[468,4]]},"94":{"position":[[4868,4]]}}}],["2^32",{"_index":1179,"t":{"94":{"position":[[2721,5],[2882,5]]}}}],["2^63",{"_index":1087,"t":{"92":{"position":[[141,4],[3758,5]]}}}],["2^64",{"_index":1086,"t":{"92":{"position":[[127,4],[3744,4]]}}}],["3",{"_index":1096,"t":{"92":{"position":[[789,1],[1948,1]]},"99":{"position":[[57,1]]}}}],["30",{"_index":565,"t":{"44":{"position":[[248,2]]}}}],["32",{"_index":983,"t":{"86":{"position":[[850,3]]},"92":{"position":[[480,3]]},"94":{"position":[[2610,3],[3900,2],[4547,2],[4780,2],[4880,4]]}}}],["3rd",{"_index":1216,"t":{"96":{"position":[[845,3]]}}}],["4",{"_index":984,"t":{"86":{"position":[[866,1]]},"92":{"position":[[1960,1],[1994,1]]},"94":{"position":[[770,1]]}}}],["44",{"_index":695,"t":{"62":{"position":[[473,2]]}}}],["5",{"_index":881,"t":{"75":{"position":[[616,1]]},"90":{"position":[[382,1]]},"92":{"position":[[1883,2],[1903,4],[2040,3],[2105,3],[3116,3],[3284,2],[3373,2]]}}}],["5,\\\"obj",{"_index":634,"t":{"53":{"position":[[508,10]]}}}],["64",{"_index":1002,"t":{"88":{"position":[[120,2],[203,2]]},"94":{"position":[[3906,2],[4232,2],[4260,2],[4803,2]]},"96":{"position":[[665,2],[749,2]]}}}],["6srpxzotfk_62kurjkh4vdcfg0ys271pq20omrpe5t",{"_index":406,"t":{"29":{"position":[[78,46]]}}}],["7",{"_index":1140,"t":{"92":{"position":[[3133,2],[3379,2]]}}}],["721",{"_index":312,"t":{"20":{"position":[[741,6]]}}}],["8",{"_index":1004,"t":{"88":{"position":[[138,1]]}}}],["82",{"_index":670,"t":{"59":{"position":[[345,2]]}}}],["8201",{"_index":671,"t":{"59":{"position":[[360,5]]}}}],["8204",{"_index":672,"t":{"59":{"position":[[366,5]]}}}],["8207",{"_index":673,"t":{"59":{"position":[[372,5]]}}}],["825820aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa01",{"_index":535,"t":{"42":{"position":[[900,75]]},"44":{"position":[[587,75]]}}}],["825820aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1a00000001",{"_index":545,"t":{"42":{"position":[[1241,83]]},"44":{"position":[[924,83]]}}}],["89",{"_index":1156,"t":{"94":{"position":[[1049,2]]}}}],["9",{"_index":1115,"t":{"92":{"position":[[1878,4],[2029,3]]}}}],["96",{"_index":802,"t":{"68":{"position":[[231,2]]}}}],["9900025820aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa190001",{"_index":547,"t":{"42":{"position":[[1411,83]]},"44":{"position":[[1094,83]]}}}],["9b00000000000000025f41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aaff1b0000000000000001",{"_index":548,"t":{"42":{"position":[[1495,171]]},"44":{"position":[[1178,171]]}}}],["9f5f48aaaaaaaaaaaaaaaa48aaaaaaaaaaaaaaaa48aaaaaaaaaaaaaaaa48aaaaaaaaaaaaaaaaff01ff",{"_index":546,"t":{"42":{"position":[[1325,85]]},"44":{"position":[[1008,85]]}}}],["a569617277656176654964782b36737270585a4f54664b5f36324b55724a4b68345664434647305953323731707132304f4d52704535547365696d6167657835697066733a2f2f516d5557503678474875636742557635313467776762743479696a673336615551756e455036317a354438524b53646e616d656e53706163654275642023313530376674726169747385695374617220537569746a4368657374706c6174656442656c7464466c616766506973746f6c647479706565416c69656",{"_index":418,"t":{"29":{"position":[[328,391]]}}}],["a\\\":[{\\\"5",{"_index":635,"t":{"53":{"position":[[519,15]]}}}],["abil",{"_index":685,"t":{"62":{"position":[[224,7]]},"66":{"position":[[620,8]]}}}],["abov",{"_index":616,"t":{"53":{"position":[[46,6]]},"90":{"position":[[906,5]]},"92":{"position":[[1340,6]]},"94":{"position":[[4522,5]]}}}],["accept",{"_index":184,"t":{"15":{"position":[[469,8]]},"90":{"position":[[810,9]]}}}],["access",{"_index":1160,"t":{"94":{"position":[[1311,6],[3677,6],[5146,8]]}}}],["account",{"_index":713,"t":{"62":{"position":[[1035,7]]}}}],["accountkey",{"_index":709,"t":{"62":{"position":[[923,10],[1065,10],[1141,10]]}}}],["accumul",{"_index":775,"t":{"66":{"position":[[1233,11]]}}}],["achiev",{"_index":985,"t":{"86":{"position":[[880,7]]}}}],["actual",{"_index":667,"t":{"59":{"position":[[302,7]]}}}],["ad",{"_index":98,"t":{"13":{"position":[[741,5]]}}}],["ada",{"_index":106,"t":{"13":{"position":[[903,3],[1203,3],[1360,3],[1446,3]]},"99":{"position":[[530,3]]}}}],["add",{"_index":85,"t":{"13":{"position":[[492,3]]},"92":{"position":[[1013,4]]},"99":{"position":[[504,3],[1487,3]]}}}],["addit",{"_index":144,"t":{"13":{"position":[[1999,8]]},"55":{"position":[[24,10]]},"62":{"position":[[198,8],[242,10]]},"92":{"position":[[791,10],[1018,10],[1795,9],[3021,10]]},"94":{"position":[[167,10],[3760,10]]},"96":{"position":[[170,10]]}}}],["addr",{"_index":794,"t":{"66":{"position":[[2409,4]]}}}],["address",{"_index":61,"t":{"13":{"position":[[130,9],[1000,8],[2119,7],[2179,7]]},"62":{"position":[[539,7]]},"66":{"position":[[194,10],[231,7],[314,7],[596,7],[847,7],[873,7],[1202,7],[1446,7],[1466,9],[1592,7],[1678,7],[1740,9],[1792,9],[1859,7],[1914,7],[1945,7],[2148,7],[2181,7],[2303,7],[2332,7]]},"68":{"position":[[484,10]]},"99":{"position":[[326,7],[563,7],[1179,7],[1357,7],[1720,7]]}}}],["advantag",{"_index":1158,"t":{"94":{"position":[[1214,9],[3743,9]]},"96":{"position":[[366,9]]}}}],["advis",{"_index":827,"t":{"71":{"position":[[383,9]]}}}],["ae2",{"_index":781,"t":{"66":{"position":[[1574,4],[1764,3]]}}}],["agnost",{"_index":42,"t":{"11":{"position":[[495,8]]},"57":{"position":[[157,8]]},"86":{"position":[[1625,9]]}}}],["alien",{"_index":417,"t":{"29":{"position":[[302,8]]}}}],["allow",{"_index":424,"t":{"31":{"position":[[27,6]]},"79":{"position":[[410,5]]},"94":{"position":[[4563,6],[4827,7]]},"101":{"position":[[359,8]]}}}],["alonzo",{"_index":40,"t":{"11":{"position":[[464,7]]},"57":{"position":[[78,7]]}}}],["alreadi",{"_index":792,"t":{"66":{"position":[[2314,7]]},"71":{"position":[[932,8]]}}}],["alway",{"_index":529,"t":{"42":{"position":[[577,6]]},"44":{"position":[[381,7],[416,6]]},"94":{"position":[[3994,6]]}}}],["amount",{"_index":893,"t":{"77":{"position":[[31,6]]}}}],["annot",{"_index":605,"t":{"51":{"position":[[307,11]]}}}],["anoth",{"_index":492,"t":{"40":{"position":[[184,7],[215,7]]}}}],["api",{"_index":614,"t":{"53":{"position":[[32,3]]},"71":{"position":[[974,4]]},"81":{"position":[[61,4],[203,3]]},"83":{"position":[[217,3]]}}}],["appropri",{"_index":196,"t":{"15":{"position":[[766,11]]}}}],["arbitrari",{"_index":526,"t":{"42":{"position":[[400,9]]},"86":{"position":[[51,9]]},"92":{"position":[[1683,9]]},"96":{"position":[[19,9]]}}}],["around",{"_index":44,"t":{"11":{"position":[[513,6]]},"57":{"position":[[125,6]]}}}],["arr",{"_index":1062,"t":{"90":{"position":[[3082,3]]}}}],["arr.len",{"_index":1064,"t":{"90":{"position":[[3128,10]]}}}],["array",{"_index":319,"t":{"20":{"position":[[819,7],[888,7],[966,7]]},"42":{"position":[[1026,5]]},"44":{"position":[[713,5]]},"59":{"position":[[232,5]]},"90":{"position":[[623,5],[803,6]]},"92":{"position":[[294,6]]},"94":{"position":[[112,5],[579,5],[761,5],[1066,5],[5085,5]]},"101":{"position":[[343,6]]}}}],["array/map",{"_index":942,"t":{"81":{"position":[[295,9]]},"101":{"position":[[561,9]]}}}],["arrays/buff",{"_index":1020,"t":{"90":{"position":[[825,14]]}}}],["arrret",{"_index":1061,"t":{"90":{"position":[[3063,6],[3217,7]]}}}],["arrret.push(elem",{"_index":1067,"t":{"90":{"position":[[3189,18]]}}}],["arweaveid",{"_index":405,"t":{"29":{"position":[[65,12]]}}}],["as_i32",{"_index":1070,"t":{"90":{"position":[[3330,8]]}}}],["asm.j",{"_index":873,"t":{"75":{"position":[[390,6],[467,6],[527,6]]}}}],["assert(xprvbyt",{"_index":800,"t":{"68":{"position":[[167,16]]}}}],["assert_eq!(hex::encode(tx_in.to_canonical_cbor_byt",{"_index":556,"t":{"42":{"position":[[2168,56]]}}}],["assert_eq!(hex::encode(tx_in.to_cbor_byt",{"_index":554,"t":{"42":{"position":[[1925,46]]}}}],["assertequals(byt",{"_index":1220,"t":{"96":{"position":[[1020,19]]}}}],["asset",{"_index":341,"t":{"22":{"position":[[454,6],[488,5],[529,6]]}}}],["asset_nam",{"_index":314,"t":{"20":{"position":[[767,15]]}}}],["assetnamev2([202",{"_index":386,"t":{"25":{"position":[[1148,17]]},"27":{"position":[[851,17]]}}}],["associ",{"_index":342,"t":{"22":{"position":[[509,10],[587,10]]}}}],["assum",{"_index":63,"t":{"13":{"position":[[150,6]]},"15":{"position":[[678,6]]},"77":{"position":[[13,7]]},"94":{"position":[[1919,8]]}}}],["attach",{"_index":287,"t":{"20":{"position":[[141,8]]}}}],["auto",{"_index":584,"t":{"47":{"position":[[67,4]]}}}],["autom",{"_index":204,"t":{"17":{"position":[[108,9]]}}}],["automat",{"_index":505,"t":{"40":{"position":[[533,13]]},"71":{"position":[[155,9],[549,14],[767,9]]},"79":{"position":[[38,13],[266,13]]},"94":{"position":[[9,9]]},"99":{"position":[[280,13]]}}}],["auxiliarydata",{"_index":139,"t":{"13":{"position":[[1810,14]]}}}],["auxiliarydatahash",{"_index":839,"t":{"73":{"position":[[0,17]]}}}],["avail",{"_index":349,"t":{"25":{"position":[[90,9]]},"71":{"position":[[1128,10]]}}}],["avoid",{"_index":895,"t":{"77":{"position":[[79,5]]}}}],["await",{"_index":225,"t":{"17":{"position":[[612,5]]}}}],["babbag",{"_index":41,"t":{"11":{"position":[[472,8]]},"57":{"position":[[86,8]]},"75":{"position":[[893,7]]}}}],["back",{"_index":552,"t":{"42":{"position":[[1819,4]]},"44":{"position":[[1472,4]]},"90":{"position":[[2105,4]]},"94":{"position":[[3414,4]]}}}],["bar",{"_index":948,"t":{"81":{"position":[[395,4]]}}}],["base",{"_index":227,"t":{"17":{"position":[[672,5],[995,5]]},"66":{"position":[[309,4],[868,4]]},"99":{"position":[[571,6],[1174,4]]},"101":{"position":[[20,5]]}}}],["baseaddr",{"_index":757,"t":{"66":{"position":[[345,8]]}}}],["baseaddress.to_address",{"_index":789,"t":{"66":{"position":[[2191,25]]}}}],["bash",{"_index":928,"t":{"79":{"position":[[1105,4]]}}}],["basic_json",{"_index":631,"t":{"53":{"position":[[455,10]]},"55":{"position":[[223,10]]}}}],["basicconvers",{"_index":625,"t":{"53":{"position":[[292,16]]},"92":{"position":[[994,16],[1558,16],[1808,16],[2748,16],[2998,17]]}}}],["be",{"_index":497,"t":{"40":{"position":[[313,5]]},"90":{"position":[[852,5]]},"92":{"position":[[2685,5]]}}}],["bech32",{"_index":793,"t":{"66":{"position":[[2358,6]]}}}],["becom",{"_index":1205,"t":{"94":{"position":[[4673,8]]}}}],["below",{"_index":221,"t":{"17":{"position":[[535,5]]},"20":{"position":[[508,5]]},"62":{"position":[[614,5]]},"64":{"position":[[351,5]]},"92":{"position":[[1842,5]]},"99":{"position":[[12,5]]}}}],["belt",{"_index":414,"t":{"29":{"position":[[264,7]]}}}],["best",{"_index":437,"t":{"31":{"position":[[336,4]]},"86":{"position":[[1725,5]]},"94":{"position":[[244,4]]}}}],["between",{"_index":524,"t":{"42":{"position":[[364,7]]},"68":{"position":[[11,7]]},"81":{"position":[[233,7]]},"92":{"position":[[118,7],[929,7],[968,7],[3735,7]]}}}],["beyond",{"_index":116,"t":{"13":{"position":[[1207,6]]}}}],["bf1902d1a36464617461a244baadf00da344cafed00da6646e616d656d4d65746164617461204e616d656566696c657382a4637372636473726331646e616d656966696c656e616d6531696d65646961547970656966696c657479706531816864736b6a66616b7381a1403864a3637372636473726332646e616d656966696c656e616d6532696d65646961547970656966696c65747970653265696d6167657821687474733a2f2f736f6d652e776562736974652e636f6d2f696d6167652e706e67696d656469615479706567696d6167652f2a6b6465736372697074696f6e776465736372697074696f6e206f662074686973204e4654a14038641832a1403864a140386481a1403864816864736b6a66616b73a1403864a14038646776657273696f6e02a1403864a14038641905398144baadf00dff",{"_index":401,"t":{"27":{"position":[[12,629]]}}}],["big",{"_index":572,"t":{"44":{"position":[[533,3]]},"90":{"position":[[3326,3]]}}}],["bigger",{"_index":1178,"t":{"94":{"position":[[2710,6]]}}}],["biginteg",{"_index":589,"t":{"47":{"position":[[125,11]]}}}],["bignum",{"_index":1075,"t":{"90":{"position":[[3454,7]]},"94":{"position":[[2747,6],[4462,6]]}}}],["bignum.from_str(\"365",{"_index":791,"t":{"66":{"position":[[2271,24]]}}}],["binari",{"_index":484,"t":{"38":{"position":[[111,7]]},"40":{"position":[[107,6],[266,6]]},"59":{"position":[[153,6]]},"86":{"position":[[288,6]]},"94":{"position":[[320,6]]},"96":{"position":[[696,6]]},"101":{"position":[[309,6]]}}}],["bind",{"_index":887,"t":{"75":{"position":[[995,9],[1082,8]]},"81":{"position":[[255,8]]}}}],["bip32",{"_index":687,"t":{"62":{"position":[[282,5],[321,5],[365,5]]}}}],["bip32privatekey",{"_index":721,"t":{"64":{"position":[[14,15],[403,15]]},"66":{"position":[[70,15]]},"68":{"position":[[54,15],[95,15],[266,16]]},"73":{"position":[[18,15]]}}}],["bip32privatekey.from_bip39_entropy(entropi",{"_index":728,"t":{"64":{"position":[[223,43]]}}}],["bip32privatekey/bip32publickey",{"_index":684,"t":{"62":{"position":[[158,30]]}}}],["bip32publickey",{"_index":755,"t":{"66":{"position":[[89,14]]},"73":{"position":[[34,14]]}}}],["bip39",{"_index":722,"t":{"64":{"position":[[37,5],[111,5],[366,5],[426,5],[476,8]]}}}],["bip44",{"_index":692,"t":{"62":{"position":[[395,5]]}}}],["birthday",{"_index":980,"t":{"86":{"position":[[815,10]]},"90":{"position":[[1386,11]]},"92":{"position":[[447,10]]},"94":{"position":[[3144,10],[4988,10]]}}}],["bit",{"_index":1176,"t":{"94":{"position":[[2614,3],[3909,4],[4235,3],[4550,3],[4783,3],[4806,3]]}}}],["block",{"_index":656,"t":{"57":{"position":[[189,6]]},"59":{"position":[[131,5],[310,5]]}}}],["blockbodyhash",{"_index":840,"t":{"73":{"position":[[49,13]]}}}],["blockchain",{"_index":47,"t":{"11":{"position":[[548,10]]},"13":{"position":[[1535,11],[1668,11]]},"15":{"position":[[415,10]]}}}],["blockfrost",{"_index":203,"t":{"17":{"position":[[84,11],[142,10],[184,10],[353,10],[1475,10]]}}}],["blockfrost'",{"_index":222,"t":{"17":{"position":[[559,12]]}}}],["blockfrost.epochslatestparamet",{"_index":226,"t":{"17":{"position":[[618,36]]}}}],["blockheaderhash",{"_index":841,"t":{"73":{"position":[[63,15]]}}}],["bodi",{"_index":121,"t":{"13":{"position":[[1272,4],[1955,4]]}}}],["bootstrap",{"_index":778,"t":{"66":{"position":[[1436,9]]},"99":{"position":[[80,10]]}}}],["bootstrapwit",{"_index":842,"t":{"73":{"position":[[79,16],[96,18]]}}}],["both",{"_index":1260,"t":{"101":{"position":[[368,4]]}}}],["boundari",{"_index":1211,"t":{"94":{"position":[[5168,9]]}}}],["break",{"_index":834,"t":{"71":{"position":[[752,7]]}}}],["breviti",{"_index":691,"t":{"62":{"position":[[375,8]]}}}],["browser",{"_index":809,"t":{"71":{"position":[[30,7]]},"75":{"position":[[337,8]]}}}],["btreemap::new",{"_index":370,"t":{"25":{"position":[[749,16]]}}}],["buffer.from",{"_index":752,"t":{"64":{"position":[[736,16]]}}}],["buffer.from(entropi",{"_index":751,"t":{"64":{"position":[[707,20]]}}}],["buffer.from(metadata.as_byt",{"_index":1079,"t":{"90":{"position":[[3574,33]]}}}],["build",{"_index":191,"t":{"15":{"position":[[581,8]]},"94":{"position":[[1653,5],[2070,5],[2105,5],[2378,5]]},"99":{"position":[[18,6],[1648,8],[1764,8]]}}}],["builder",{"_index":18,"t":{"11":{"position":[[119,8]]},"13":{"position":[[209,7],[777,7],[1894,8]]},"15":{"position":[[35,7],[250,7],[664,8]]},"34":{"position":[[247,8]]},"75":{"position":[[188,8]]},"99":{"position":[[372,7]]}}}],["builder.add_change_if_needed(address",{"_index":92,"t":{"13":{"position":[[607,38]]}}}],["builder.build",{"_index":122,"t":{"13":{"position":[[1279,15]]}}}],["builder.set_fee(fe",{"_index":90,"t":{"13":{"position":[[552,21]]}}}],["built",{"_index":1259,"t":{"101":{"position":[[193,5]]}}}],["burn",{"_index":117,"t":{"13":{"position":[[1227,7]]}}}],["byron",{"_index":38,"t":{"11":{"position":[[447,7]]},"42":{"position":[[456,5],[552,5]]},"44":{"position":[[277,5],[399,5],[481,5]]},"57":{"position":[[61,7]]},"66":{"position":[[188,5],[1456,5],[1668,5]]}}}],["byronaddr",{"_index":779,"t":{"66":{"position":[[1505,9]]}}}],["byte",{"_index":293,"t":{"20":{"position":[[281,5],[599,5],[704,5]]},"27":{"position":[[4,5]]},"29":{"position":[[320,5]]},"40":{"position":[[644,5],[739,6]]},"42":{"position":[[1138,5],[1832,5],[2092,5]]},"44":{"position":[[825,5],[1485,5],[1733,5]]},"55":{"position":[[150,6]]},"66":{"position":[[2347,5]]},"68":{"position":[[35,4],[234,4],[283,4]]},"79":{"position":[[520,5]]},"86":{"position":[[423,5],[1171,6],[1191,5],[1739,5]]},"88":{"position":[[123,5],[206,6]]},"90":{"position":[[664,5],[798,4],[820,4]]},"92":{"position":[[1091,4],[1599,4],[1962,4],[1996,4],[2949,4],[3198,9]]},"94":{"position":[[1052,5],[1091,5],[1182,6]]},"96":{"position":[[623,5],[668,4],[738,5],[752,4],[770,5]]},"101":{"position":[[594,5],[725,4],[782,4],[846,5]]}}}],["byte(a",{"_index":1101,"t":{"92":{"position":[[1041,7]]}}}],["byte/str",{"_index":1110,"t":{"92":{"position":[[1578,11]]}}}],["bytestr",{"_index":1005,"t":{"88":{"position":[[149,11]]},"92":{"position":[[1967,10],[2001,10],[2144,11],[3404,10]]}}}],["calcul",{"_index":59,"t":{"13":{"position":[[110,12],[577,9]]},"40":{"position":[[382,10]]},"99":{"position":[[254,11],[294,10],[1663,9]]}}}],["call",{"_index":123,"t":{"13":{"position":[[1302,6]]},"62":{"position":[[314,6]]},"66":{"position":[[136,7]]},"71":{"position":[[407,4],[863,4],[919,6],[1047,6]]},"79":{"position":[[201,6]]},"94":{"position":[[1607,6]]}}}],["came",{"_index":553,"t":{"42":{"position":[[1915,4]]},"44":{"position":[[1568,4]]}}}],["canon",{"_index":525,"t":{"42":{"position":[[372,9],[587,9],[2077,9]]},"44":{"position":[[436,9],[501,9],[1718,9]]}}}],["canonical_cbor_hex",{"_index":534,"t":{"42":{"position":[[879,18],[1221,19],[2225,20]]}}}],["canonicalcborhex",{"_index":575,"t":{"44":{"position":[[568,16],[906,17],[1856,18]]}}}],["capacitor",{"_index":890,"t":{"75":{"position":[[1032,9]]}}}],["cardano",{"_index":74,"t":{"13":{"position":[[309,7],[426,7]]},"17":{"position":[[329,7]]},"20":{"position":[[74,7],[244,8],[454,7]]},"31":{"position":[[790,7]]},"34":{"position":[[66,7]]},"38":{"position":[[0,7]]},"53":{"position":[[108,7],[214,7]]},"55":{"position":[[35,7]]},"64":{"position":[[312,7]]},"68":{"position":[[19,7]]},"77":{"position":[[61,7]]},"79":{"position":[[308,7],[671,7],[692,7],[1093,7]]},"92":{"position":[[845,7],[1315,7]]},"99":{"position":[[389,7]]},"101":{"position":[[8,7],[264,7],[856,7]]}}}],["cardano'",{"_index":898,"t":{"77":{"position":[[147,9]]}}}],["cardanonodeplutusdatumschema",{"_index":644,"t":{"55":{"position":[[161,28]]}}}],["cardanowasm.address.from_bech32(\"addr1vyt3w9chzut3w9chzut3w9chzut3w9chzut3w9chzut3w9cj43ltf",{"_index":795,"t":{"66":{"position":[[2416,94]]}}}],["cardanowasm.baseaddress.new",{"_index":758,"t":{"66":{"position":[[356,28]]}}}],["cardanowasm.bip32privatekey.from_128_xprv(xprvbyt",{"_index":799,"t":{"68":{"position":[[113,53]]}}}],["cardanowasm.bip32privatekey.from_bech32(\"xprv17qx9vxm6060qjn5fgazfue9nwyf448w7upk60c3epln82vumg9r9kxzsud9uv5rfscxp382j2aku254zj3qfx9fx39t6hjwtmwq85uunsd8x0st3j66lzf5yn30hwq5n75zeuplepx8vxc502txx09ygjgx06n0p",{"_index":708,"t":{"62":{"position":[[707,209]]}}}],["cardanowasm.bip32privatekey.from_bip39_entropi",{"_index":750,"t":{"64":{"position":[[659,47]]}}}],["cardanowasm.bip32privatekey.to_128_xprv",{"_index":801,"t":{"68":{"position":[[187,43]]}}}],["cardanowasm.byronaddress.icarus_from_key",{"_index":780,"t":{"66":{"position":[[1517,41]]}}}],["cardanowasm.decode_arbitrary_bytes_from_metadatum(metadata",{"_index":1219,"t":{"96":{"position":[[959,60]]}}}],["cardanowasm.decode_metadatum_to_json_str(metadata",{"_index":1094,"t":{"92":{"position":[[636,50]]}}}],["cardanowasm.encode_arbitrary_bytes_as_metadatum(byt",{"_index":1217,"t":{"96":{"position":[[881,55]]}}}],["cardanowasm.encode_json_str_to_metadatum(json.stringify(obj",{"_index":1091,"t":{"92":{"position":[[504,61]]}}}],["cardanowasm.enterpriseaddress.new",{"_index":766,"t":{"66":{"position":[[677,34]]}}}],["cardanowasm.metadatajsonschema.noconvers",{"_index":1092,"t":{"92":{"position":[[566,46],[687,46]]}}}],["cardanowasm.metadatalist.new",{"_index":1029,"t":{"90":{"position":[[1414,31]]}}}],["cardanowasm.metadatamap.new",{"_index":1021,"t":{"90":{"position":[[949,30]]}}}],["cardanowasm.networkinfo.mainnet().network_id",{"_index":759,"t":{"66":{"position":[[385,47],[712,47],[981,47],[1311,47]]}}}],["cardanowasm.networkinfo.mainnet().protocol_mag",{"_index":784,"t":{"66":{"position":[[1600,50]]}}}],["cardanowasm.pointer.new",{"_index":771,"t":{"66":{"position":[[1103,24]]}}}],["cardanowasm.pointeraddress.new",{"_index":770,"t":{"66":{"position":[[949,31]]}}}],["cardanowasm.rewardaddress.new",{"_index":777,"t":{"66":{"position":[[1280,30]]}}}],["cardanowasm.stakecredential.from_keyhash(stakekey.to_raw_key().hash",{"_index":761,"t":{"66":{"position":[[507,71],[1359,70]]}}}],["cardanowasm.stakecredential.from_keyhash(utxopubkey.to_raw_key().hash",{"_index":760,"t":{"66":{"position":[[433,73],[760,72],[1029,73]]}}}],["cardanowasm.transactionmetadata.from_bytes(map.to_byt",{"_index":1185,"t":{"94":{"position":[[3192,59]]}}}],["cardanowasm.transactionmetadatum.new_list(tag",{"_index":1035,"t":{"90":{"position":[[1952,48]]}}}],["cardanowasm.transactionmetadatum.new_map(map",{"_index":1036,"t":{"90":{"position":[[2022,46]]}}}],["cardanowasm.transactionmetadatum.new_text(\"com",{"_index":1027,"t":{"90":{"position":[[1283,53]]}}}],["cardanowasm.transactionmetadatum.new_text(\"happi",{"_index":1028,"t":{"90":{"position":[[1337,48]]}}}],["cardanowasm.transactionmetadatum.new_text(\"jkfdsufjdk34h3sdfjdhfduf873",{"_index":1026,"t":{"90":{"position":[[1194,73]]}}}],["cardanowasm.transactionmetadatum.new_text(\"receiver_id",{"_index":1023,"t":{"90":{"position":[[992,57]]}}}],["cardanowasm.transactionmetadatum.new_text(\"sender_id",{"_index":1025,"t":{"90":{"position":[[1138,55]]}}}],["cardanowasm.transactionmetadatum.new_text(\"sjkdj34k3jjkfdkfjfudfdjkfd",{"_index":1024,"t":{"90":{"position":[[1050,72]]}}}],["cardanowasm.transactionmetadatum.new_text(\"tag",{"_index":1034,"t":{"90":{"position":[[1901,50]]}}}],["cardanowasm.transactionmetadatumkind.byt",{"_index":1078,"t":{"90":{"position":[[3523,43]]}}}],["cardanowasm.transactionmetadatumkind.int",{"_index":1068,"t":{"90":{"position":[[3230,41]]}}}],["cardanowasm.transactionmetadatumkind.metadatalist",{"_index":1060,"t":{"90":{"position":[[3008,50]]}}}],["cardanowasm.transactionmetadatumkind.metadatamap",{"_index":1050,"t":{"90":{"position":[[2720,49]]}}}],["cardanowasm.transactionmetadatumkind.text",{"_index":1080,"t":{"90":{"position":[[3613,42]]}}}],["cardanowasm.transactionoutput(address",{"_index":790,"t":{"66":{"position":[[2232,38]]}}}],["cardano’",{"_index":906,"t":{"79":{"position":[[67,9]]}}}],["care",{"_index":659,"t":{"59":{"position":[[41,4]]},"94":{"position":[[275,4]]}}}],["cargo",{"_index":1166,"t":{"94":{"position":[[1647,5],[1659,5],[2099,5],[2111,5]]}}}],["case",{"_index":817,"t":{"71":{"position":[[200,4]]},"90":{"position":[[2715,4],[3003,4],[3225,4],[3518,4],[3608,4]]}}}],["catalyst",{"_index":34,"t":{"11":{"position":[[371,10]]}}}],["catch",{"_index":1044,"t":{"90":{"position":[[2475,5]]},"94":{"position":[[3254,5],[3530,5]]}}}],["categori",{"_index":678,"t":{"62":{"position":[[19,10]]}}}],["caus",{"_index":489,"t":{"40":{"position":[[129,6],[441,7]]},"79":{"position":[[567,6]]}}}],["cbor",{"_index":292,"t":{"20":{"position":[[276,4],[337,4],[594,4],[699,4]]},"34":{"position":[[153,4]]},"38":{"position":[[40,5]]},"40":{"position":[[59,4],[156,4],[285,4],[569,4],[639,4],[734,4]]},"42":{"position":[[48,4],[259,4],[382,4],[597,4],[1013,5],[1827,4],[1853,4],[2087,4]]},"44":{"position":[[446,5],[511,4],[700,5],[1480,4],[1506,4],[1728,4]]},"59":{"position":[[279,4]]},"79":{"position":[[420,4],[455,4],[465,4],[854,4]]},"86":{"position":[[283,4]]},"94":{"position":[[956,5]]},"99":{"position":[[2097,4]]},"101":{"position":[[302,4]]}}}],["cbor'",{"_index":485,"t":{"40":{"position":[[7,6]]}}}],["cd",{"_index":1170,"t":{"94":{"position":[[2358,2]]}}}],["cddl",{"_index":912,"t":{"79":{"position":[[208,4]]},"86":{"position":[[243,5],[1061,4],[1084,4],[1162,4],[1310,4],[1481,4]]},"88":{"position":[[39,4]]},"90":{"position":[[318,5]]},"92":{"position":[[317,4]]},"94":{"position":[[458,4],[588,4],[974,4],[1325,4],[1402,4],[1450,4],[1480,4],[1531,4],[1592,4],[1686,4],[1756,4],[1908,4],[1942,4],[2038,4],[2191,4],[3342,4],[3618,4],[3797,4],[3818,4],[4177,4],[4326,4]]},"96":{"position":[[241,4],[379,4],[448,4],[544,4],[573,4],[824,4]]}}}],["cddlmetadata",{"_index":1190,"t":{"94":{"position":[[3441,13],[3461,12]]}}}],["cddlmetadata.receiver_id",{"_index":1193,"t":{"94":{"position":[[3700,27]]}}}],["cert",{"_index":773,"t":{"66":{"position":[[1169,4]]}}}],["certain",{"_index":425,"t":{"31":{"position":[[45,7]]},"77":{"position":[[23,7]]}}}],["certif",{"_index":94,"t":{"13":{"position":[[685,13],[1487,12],[2058,12],[2296,12],[2470,13],[2637,12],[2689,12]]}}}],["cfg",{"_index":214,"t":{"17":{"position":[[376,3]]}}}],["chain",{"_index":12,"t":{"11":{"position":[[52,5],[75,5],[417,5]]},"15":{"position":[[61,5]]},"34":{"position":[[34,5],[147,5]]},"36":{"position":[[327,5]]},"38":{"position":[[11,5]]},"40":{"position":[[170,5],[597,5]]},"42":{"position":[[167,5],[561,5],[759,5]]},"44":{"position":[[7,5],[286,5],[459,5]]},"47":{"position":[[7,5]]},"57":{"position":[[31,5]]},"75":{"position":[[728,6],[826,5],[907,5]]}}}],["chan",{"_index":511,"t":{"42":{"position":[[3,4]]}}}],["chang",{"_index":60,"t":{"13":{"position":[[123,6],[758,6],[993,6]]},"15":{"position":[[154,7]]},"81":{"position":[[114,6],[433,7]]},"94":{"position":[[4626,6]]},"99":{"position":[[319,6],[429,6],[1707,6]]}}}],["changeaddress",{"_index":1239,"t":{"99":{"position":[[1371,13],[1852,14]]}}}],["charg",{"_index":1111,"t":{"92":{"position":[[1637,6]]}}}],["check",{"_index":904,"t":{"77":{"position":[[310,5]]},"90":{"position":[[2565,5],[2642,5],[3468,8],[3810,8]]},"94":{"position":[[1434,5]]},"96":{"position":[[389,8]]}}}],["checker",{"_index":1162,"t":{"94":{"position":[[1536,8]]},"96":{"position":[[492,7]]}}}],["chestplat",{"_index":413,"t":{"29":{"position":[[250,13]]}}}],["chimer",{"_index":720,"t":{"62":{"position":[[1166,8]]}}}],["choic",{"_index":748,"t":{"64":{"position":[[619,8]]},"94":{"position":[[249,7]]}}}],["choos",{"_index":523,"t":{"42":{"position":[[357,6]]}}}],["chunk",{"_index":1215,"t":{"96":{"position":[[757,6]]}}}],["chunkablestring::from(\"htts://some.website.com/image.png",{"_index":353,"t":{"25":{"position":[[195,59]]}}}],["chunkablestring::from(\"src1",{"_index":363,"t":{"25":{"position":[[531,30]]}}}],["chunkablestring::from(\"src2",{"_index":366,"t":{"25":{"position":[[666,30]]}}}],["cip",{"_index":308,"t":{"20":{"position":[[548,3]]},"22":{"position":[[49,3]]},"44":{"position":[[244,3]]}}}],["cip25",{"_index":28,"t":{"11":{"position":[[279,5],[312,5]]},"20":{"position":[[0,5]]},"25":{"position":[[59,5]]},"31":{"position":[[97,5]]},"36":{"position":[[343,5]]},"42":{"position":[[646,5]]},"44":{"position":[[389,5]]},"75":{"position":[[756,6],[925,5]]}}}],["cip25metadata",{"_index":329,"t":{"22":{"position":[[0,13]]},"25":{"position":[[1046,13]]},"27":{"position":[[748,13]]}}}],["cip25metadata::from_bytes(hex::decode(bytes).unwrap()).unwrap",{"_index":402,"t":{"27":{"position":[[653,64]]}}}],["cip25metadata::new(labelmetadata::new_label_metadata_v2",{"_index":378,"t":{"25":{"position":[[925,56]]}}}],["cip3",{"_index":730,"t":{"64":{"position":[[307,4]]}}}],["cip36",{"_index":33,"t":{"11":{"position":[[332,5],[365,5]]},"75":{"position":[[768,6],[934,5]]}}}],["class",{"_index":1201,"t":{"94":{"position":[[4166,5]]}}}],["clean",{"_index":838,"t":{"71":{"position":[[1101,7]]}}}],["cleanup",{"_index":816,"t":{"71":{"position":[[172,8],[777,7]]}}}],["cli",{"_index":796,"t":{"68":{"position":[[27,3]]},"79":{"position":[[684,3],[1101,3]]}}}],["cml",{"_index":10,"t":{"11":{"position":[[40,3],[251,4]]},"17":{"position":[[138,3],[349,3],[555,3]]},"36":{"position":[[57,3],[180,3],[209,3],[323,3],[339,3]]},"40":{"position":[[503,3]]},"71":{"position":[[17,3],[87,3],[273,3],[427,3],[643,3],[845,3],[970,3]]},"75":{"position":[[631,3],[822,3],[850,3]]},"79":{"position":[[384,3],[765,3]]},"81":{"position":[[83,3]]}}}],["cml.address.from_bech32(\"addr_test1gz2fxv2umyhttkxyxp8x0dlpdt3k6cwng5pxj3jhsydzerspqgpsqe70et",{"_index":1240,"t":{"99":{"position":[[1387,96]]}}}],["cml.address.from_bech32(\"addr_test1qpu5vlrf4xkxv2qpwngf6cjhtw542ayty80v8dyr49rf5ewvxwdrt70qlcpeeagscasafhffqsxy36t90ldv06wqrk2qum8x5w",{"_index":1238,"t":{"99":{"position":[[1209,136]]}}}],["cml.cardanonodeplutusdatumschema.basicconvers",{"_index":652,"t":{"55":{"position":[[400,51]]}}}],["cml.cardanonodeplutusdatumschema.detailedschema",{"_index":654,"t":{"55":{"position":[[525,48]]}}}],["cml.changeselectionalgo.default",{"_index":1251,"t":{"99":{"position":[[1867,31]]}}}],["cml.costmodels.new",{"_index":230,"t":{"17":{"position":[[719,21]]}}}],["cml.decode_metadatum_to_json_str(metadatum",{"_index":639,"t":{"53":{"position":[[677,45]]}}}],["cml.decode_plutus_datum_to_json_str(datum",{"_index":653,"t":{"55":{"position":[[480,44]]}}}],["cml.encode_json_str_to_metadatum(basic_json",{"_index":636,"t":{"53":{"position":[[562,44]]}}}],["cml.encode_json_str_to_plutus_datum(basic_json",{"_index":651,"t":{"55":{"position":[[352,47]]}}}],["cml.enterpriseaddress.new(testnetid",{"_index":1230,"t":{"99":{"position":[[785,36]]}}}],["cml.intlist.new",{"_index":235,"t":{"17":{"position":[[827,18],[1111,18]]}}}],["cml.metadatajsonschema.basicconvers",{"_index":637,"t":{"53":{"position":[[607,41]]}}}],["cml.metadatajsonschema.detailedschema",{"_index":640,"t":{"53":{"position":[[723,42]]}}}],["cml.privatekey.from_bech32(\"ed25519e_sk16rl5fqqf4mg27syjzjrq8h3vq44jnnv52mvyzdttldszjj7a64xtmjwgjtfy25lu0xmv40306lj9pcqpa6slry9eh3mtlqvfjz93vuq0grl80",{"_index":1228,"t":{"99":{"position":[[614,152]]}}}],["cml.stakecredential.new_key(prvkey.to_public().hash())).to_address",{"_index":1231,"t":{"99":{"position":[[822,69]]}}}],["cml.subcoin.from_base10_f32(params.price_mem",{"_index":272,"t":{"17":{"position":[[1870,46]]}}}],["cml.subcoin.from_base10_f32(params.price_step",{"_index":273,"t":{"17":{"position":[[1917,46]]}}}],["cml.transactionbuilder.new(configbuilder.build",{"_index":278,"t":{"17":{"position":[[2115,50]]}}}],["cml.transactionbuilderconfigbuilder.new",{"_index":263,"t":{"17":{"position":[[1506,41]]}}}],["cml.transactionhash.from_hex(\"8561258e210352fba2ac0488afed67b3427a27ccf1d41ec030c98a8199bc22ec",{"_index":1234,"t":{"99":{"position":[[966,97]]}}}],["cml.transactioninput.from_cbor_hex(orig_cbor_hex",{"_index":579,"t":{"44":{"position":[[1408,50]]}}}],["cml.transactioninput.from_json(txinjson",{"_index":596,"t":{"49":{"position":[[265,41]]}}}],["cml.transactioninput.new",{"_index":1233,"t":{"99":{"position":[[940,25]]}}}],["cml.transactionoutput.new",{"_index":1235,"t":{"99":{"position":[[1090,26]]}}}],["cml.transactionoutputbuild",{"_index":1242,"t":{"99":{"position":[[1530,30]]}}}],["cml.value.from_coin(bigint(6000000",{"_index":1236,"t":{"99":{"position":[[1128,37]]}}}],["cml_blockfrost::make_tx_builder_cfg(&api).await.unwrap",{"_index":215,"t":{"17":{"position":[[382,57]]}}}],["cml_core::seri",{"_index":518,"t":{"42":{"position":[[131,19]]}}}],["cml_core::serialization::{seri",{"_index":533,"t":{"42":{"position":[[824,36]]}}}],["code",{"_index":178,"t":{"15":{"position":[[324,6],[642,4]]},"17":{"position":[[572,5]]},"62":{"position":[[620,4]]},"64":{"position":[[346,4]]},"79":{"position":[[30,4]]},"81":{"position":[[4,4],[125,4]]},"90":{"position":[[931,5]]},"94":{"position":[[1854,4],[2080,4],[2294,4],[4668,4]]}}}],["codegen",{"_index":913,"t":{"79":{"position":[[213,7]]},"94":{"position":[[1761,7],[1947,7],[3823,8]]}}}],["coin",{"_index":699,"t":{"62":{"position":[[516,4],[1002,4]]}}}],["coins_per_utxo_byte(bignum(params.coins_per_utxo_s",{"_index":266,"t":{"17":{"position":[[1613,56]]}}}],["collateral_percentage(params.collateral_perc",{"_index":275,"t":{"17":{"position":[[1992,49]]}}}],["comment",{"_index":978,"t":{"86":{"position":[[797,10]]},"90":{"position":[[2327,7]]},"92":{"position":[[431,8]]},"94":{"position":[[646,8],[862,8]]}}}],["common",{"_index":8,"t":{"11":{"position":[[18,6]]},"36":{"position":[[43,6]]}}}],["compar",{"_index":252,"t":{"17":{"position":[[1339,8]]},"101":{"position":[[177,8]]}}}],["compat",{"_index":617,"t":{"53":{"position":[[89,13]]},"79":{"position":[[779,10]]},"94":{"position":[[3331,10],[3607,10]]}}}],["complet",{"_index":951,"t":{"81":{"position":[[503,8]]}}}],["complex",{"_index":299,"t":{"20":{"position":[[380,7]]},"94":{"position":[[341,7]]}}}],["compliant",{"_index":427,"t":{"31":{"position":[[82,9]]}}}],["complic",{"_index":1113,"t":{"92":{"position":[[1771,11],[3303,11]]}}}],["compon",{"_index":302,"t":{"20":{"position":[[436,10]]},"75":{"position":[[267,10]]}}}],["compress",{"_index":1212,"t":{"96":{"position":[[73,10]]}}}],["comput",{"_index":916,"t":{"79":{"position":[[597,9]]}}}],["concept",{"_index":902,"t":{"77":{"position":[[287,9]]}}}],["config",{"_index":197,"t":{"15":{"position":[[778,7]]}}}],["configbuild",{"_index":262,"t":{"17":{"position":[[1490,13]]}}}],["conform",{"_index":432,"t":{"31":{"position":[[199,10]]},"86":{"position":[[1794,7]]},"94":{"position":[[1455,8]]},"96":{"position":[[217,7],[648,7]]}}}],["connect",{"_index":921,"t":{"79":{"position":[[939,10]]}}}],["connector",{"_index":566,"t":{"44":{"position":[[257,11]]}}}],["consant",{"_index":697,"t":{"62":{"position":[[491,7]]}}}],["consid",{"_index":994,"t":{"86":{"position":[[1468,8]]}}}],["consist",{"_index":136,"t":{"13":{"position":[[1726,8]]},"81":{"position":[[210,10]]},"92":{"position":[[3319,10]]},"101":{"position":[[516,8],[709,8]]}}}],["console.assert(txin.to_canonical_cbor_hex",{"_index":581,"t":{"44":{"position":[[1809,43]]}}}],["console.assert(txin.to_cbor_hex",{"_index":580,"t":{"44":{"position":[[1578,33]]}}}],["console.log(`detail",{"_index":638,"t":{"53":{"position":[[649,21]]},"55":{"position":[[452,21]]}}}],["console.log(`txin",{"_index":597,"t":{"49":{"position":[[307,17]]}}}],["const",{"_index":120,"t":{"13":{"position":[[1266,5]]},"62":{"position":[[691,5],[917,5],[1046,5],[1124,5]]},"64":{"position":[[485,5],[643,5]]},"66":{"position":[[339,5],[654,5],[933,5],[1261,5],[1499,5],[2175,5],[2217,5],[2403,5]]},"68":{"position":[[89,5]]},"90":{"position":[[937,5],[1401,5],[2004,5],[2125,5],[2157,5],[2241,5],[2321,5],[2400,5],[2770,5],[2796,5],[2827,5],[2895,5],[2920,5],[3076,5],[3149,5],[3272,5]]},"92":{"position":[[332,5],[487,5],[613,5]]},"94":{"position":[[2548,5],[3041,5],[4851,5],[4885,5]]},"96":{"position":[[764,5],[864,5],[937,5]]},"99":{"position":[[445,5],[480,5],[599,5],[767,5],[1187,5],[1365,5],[1810,5],[2013,5]]}}}],["constant",{"_index":833,"t":{"71":{"position":[[670,8]]}}}],["construct",{"_index":868,"t":{"75":{"position":[[226,12]]},"90":{"position":[[879,9]]},"94":{"position":[[2641,9],[2905,9]]}}}],["consult",{"_index":900,"t":{"77":{"position":[[186,10]]}}}],["contain",{"_index":161,"t":{"13":{"position":[[2608,8]]},"22":{"position":[[70,8],[141,7],[247,7],[464,8]]},"34":{"position":[[11,8]]},"57":{"position":[[11,8]]},"59":{"position":[[238,10]]},"86":{"position":[[43,7]]},"94":{"position":[[2023,10]]},"101":{"position":[[534,10]]}}}],["contract",{"_index":194,"t":{"15":{"position":[[631,10]]}}}],["conveni",{"_index":209,"t":{"17":{"position":[[234,11]]},"94":{"position":[[4051,10]]}}}],["convers",{"_index":590,"t":{"49":{"position":[[13,11]]},"51":{"position":[[5,11]]},"53":{"position":[[272,11]]},"68":{"position":[[0,10],[300,10]]},"86":{"position":[[997,11],[1009,10]]},"92":{"position":[[817,10]]},"94":{"position":[[4587,11]]}}}],["convert",{"_index":623,"t":{"53":{"position":[[236,8]]},"55":{"position":[[132,9]]},"64":{"position":[[76,9]]},"66":{"position":[[58,7],[2124,7]]},"90":{"position":[[3441,7]]},"92":{"position":[[920,8],[1142,7]]},"94":{"position":[[2150,11],[4416,9],[4449,9]]},"99":{"position":[[2084,9]]}}}],["conway",{"_index":158,"t":{"13":{"position":[[2497,6]]}}}],["core",{"_index":6,"t":{"11":{"position":[[0,4],[7,4]]},"36":{"position":[[18,4]]},"75":{"position":[[167,4],[704,5]]},"77":{"position":[[282,4]]},"94":{"position":[[1867,4]]}}}],["correctli",{"_index":162,"t":{"15":{"position":[[3,9]]}}}],["cost",{"_index":165,"t":{"15":{"position":[[102,6],[532,4]]},"17":{"position":[[658,4],[981,4],[1458,4]]}}}],["cost_models(costmodel",{"_index":274,"t":{"17":{"position":[[1967,24]]}}}],["costmodel",{"_index":229,"t":{"17":{"position":[[706,10]]}}}],["costmodels.set_plutus_v1(v1cmlcost",{"_index":238,"t":{"17":{"position":[[938,37]]}}}],["costmodels.set_plutus_v2(v2cmlcost",{"_index":244,"t":{"17":{"position":[[1222,37]]}}}],["coupl",{"_index":1264,"t":{"101":{"position":[[839,6]]}}}],["cover",{"_index":901,"t":{"77":{"position":[[271,6]]}}}],["crate",{"_index":11,"t":{"11":{"position":[[44,7],[173,5]]},"34":{"position":[[5,5]]},"36":{"position":[[5,5],[61,7],[184,7],[310,6]]},"57":{"position":[[5,5]]},"75":{"position":[[85,6],[649,7],[666,6]]}}}],["crate'",{"_index":206,"t":{"17":{"position":[[153,7]]}}}],["crates.io",{"_index":958,"t":{"83":{"position":[[253,9]]}}}],["crazi",{"_index":927,"t":{"79":{"position":[[1087,5]]}}}],["creat",{"_index":19,"t":{"11":{"position":[[132,8]]},"13":{"position":[[323,7],[1688,6]]},"15":{"position":[[728,7]]},"22":{"position":[[340,8],[622,7]]},"25":{"position":[[35,6]]},"34":{"position":[[260,8]]},"40":{"position":[[609,7]]},"42":{"position":[[2012,7]]},"44":{"position":[[1653,7]]},"64":{"position":[[193,7]]},"66":{"position":[[221,6],[1698,7],[2065,6],[2379,6]]},"68":{"position":[[437,8]]},"71":{"position":[[657,7]]},"79":{"position":[[984,6]]},"92":{"position":[[1929,7]]},"94":{"position":[[1389,7],[1979,7]]},"96":{"position":[[416,6]]},"101":{"position":[[124,7],[439,7]]}}}],["creation",{"_index":52,"t":{"13":{"position":[[33,9]]}}}],["creator",{"_index":431,"t":{"31":{"position":[[134,9]]}}}],["crypto",{"_index":23,"t":{"11":{"position":[[208,6],[217,6]]},"75":{"position":[[715,7]]}}}],["cryptograph",{"_index":682,"t":{"62":{"position":[[117,17]]},"75":{"position":[[501,13]]}}}],["current",{"_index":13,"t":{"11":{"position":[[60,7]]},"15":{"position":[[90,7],[407,7]]},"34":{"position":[[58,7]]},"57":{"position":[[235,7]]}}}],["custom",{"_index":585,"t":{"47":{"position":[[96,6]]}}}],["daedalu",{"_index":785,"t":{"66":{"position":[[1777,8]]},"68":{"position":[[467,8]]}}}],["dapp",{"_index":500,"t":{"40":{"position":[[398,4]]},"44":{"position":[[251,5]]},"75":{"position":[[307,5]]},"79":{"position":[[921,5],[953,6]]}}}],["data",{"_index":48,"t":{"11":{"position":[[559,5]]},"20":{"position":[[200,5],[211,4],[388,4],[502,5]]},"25":{"position":[[1105,5]]},"27":{"position":[[646,4],[808,5]]},"31":{"position":[[53,4]]},"38":{"position":[[48,4]]},"42":{"position":[[2047,4]]},"44":{"position":[[465,4],[1688,4]]},"75":{"position":[[172,4]]},"86":{"position":[[1780,4]]},"94":{"position":[[4099,4]]},"96":{"position":[[29,4],[65,4],[199,4],[272,4]]}}}],["data::new",{"_index":368,"t":{"25":{"position":[[717,12]]}}}],["datahash",{"_index":843,"t":{"73":{"position":[[115,8]]}}}],["date",{"_index":876,"t":{"75":{"position":[[458,4]]},"79":{"position":[[143,5]]}}}],["date\":\"9",{"_index":446,"t":{"31":{"position":[[721,9]]}}}],["datum",{"_index":642,"t":{"55":{"position":[[7,6],[97,5],[344,5]]},"79":{"position":[[734,6]]}}}],["day",{"_index":450,"t":{"31":{"position":[[775,3],[900,3],[1694,3]]}}}],["dcspark",{"_index":911,"t":{"79":{"position":[[193,7]]}}}],["dd",{"_index":786,"t":{"66":{"position":[[1814,2]]},"68":{"position":[[476,2]]}}}],["de",{"_index":147,"t":{"13":{"position":[[2187,2]]}}}],["de)seri",{"_index":512,"t":{"42":{"position":[[26,13]]}}}],["debug",{"_index":1108,"t":{"92":{"position":[[1486,10]]}}}],["decod",{"_index":528,"t":{"42":{"position":[[441,7]]},"90":{"position":[[2520,8]]},"92":{"position":[[3693,6]]},"96":{"position":[[135,7]]}}}],["decoded_byt",{"_index":1218,"t":{"96":{"position":[[943,13],[1040,15]]}}}],["default",{"_index":1266,"t":{"101":{"position":[[908,7]]}}}],["defin",{"_index":279,"t":{"20":{"position":[[6,7]]},"22":{"position":[[217,7],[389,7]]},"86":{"position":[[232,7]]},"94":{"position":[[3786,7],[3806,7]]}}}],["definit",{"_index":953,"t":{"83":{"position":[[39,12]]},"88":{"position":[[44,11]]},"94":{"position":[[979,11],[1072,10],[1407,11],[2196,10],[3365,10],[3641,10]]},"101":{"position":[[373,8],[498,8],[887,8]]}}}],["deleg",{"_index":567,"t":{"44":{"position":[[303,9]]}}}],["demonstr",{"_index":702,"t":{"62":{"position":[[592,12]]},"92":{"position":[[1829,12]]}}}],["depend",{"_index":700,"t":{"62":{"position":[[526,9]]},"101":{"position":[[605,9]]}}}],["deploy",{"_index":862,"t":{"75":{"position":[[48,8]]}}}],["deposit",{"_index":108,"t":{"13":{"position":[[950,7],[1082,7],[1422,8],[2277,9]]},"15":{"position":[[113,9]]}}}],["deregistered/retir",{"_index":134,"t":{"13":{"position":[[1601,21]]}}}],["deriv",{"_index":686,"t":{"62":{"position":[[235,6],[288,10],[442,10]]},"66":{"position":[[33,10]]}}}],["derive(0",{"_index":715,"t":{"62":{"position":[[1076,10],[1099,10],[1175,10]]}}}],["derive(2",{"_index":719,"t":{"62":{"position":[[1152,10]]}}}],["derive(harden(0",{"_index":712,"t":{"62":{"position":[[1012,19]]}}}],["derive(harden(1815",{"_index":711,"t":{"62":{"position":[[977,21]]}}}],["derive(harden(1852",{"_index":710,"t":{"62":{"position":[[944,21]]}}}],["descript",{"_index":322,"t":{"20":{"position":[[863,14]]},"22":{"position":[[552,12]]},"25":{"position":[[1334,12]]},"27":{"position":[[1037,12]]},"29":{"position":[[983,12]]}}}],["description\":\"happi",{"_index":448,"t":{"31":{"position":[[745,20]]}}}],["deseri",{"_index":469,"t":{"34":{"position":[[120,12]]},"40":{"position":[[620,13]]},"42":{"position":[[207,11],[300,15],[861,13]]},"75":{"position":[[148,15]]},"94":{"position":[[40,15]]}}}],["deserializa",{"_index":1208,"t":{"94":{"position":[[5009,14]]}}}],["design",{"_index":156,"t":{"13":{"position":[[2411,6],[2444,6],[2596,6]]}}}],["desir",{"_index":754,"t":{"66":{"position":[[25,7]]}}}],["detail",{"_index":160,"t":{"13":{"position":[[2575,7],[2617,7]]},"22":{"position":[[431,7],[569,7]]},"25":{"position":[[117,7],[831,9]]},"31":{"position":[[441,7],[1012,7],[1811,7],[2228,7]]},"40":{"position":[[670,7]]},"42":{"position":[[273,7],[1867,7]]},"44":{"position":[[1520,7]]},"53":{"position":[[780,8]]},"55":{"position":[[594,8]]},"62":{"position":[[575,8]]},"68":{"position":[[331,7]]},"79":{"position":[[425,7],[868,8]]},"92":{"position":[[1236,7],[3664,7]]}}}],["detailedschema",{"_index":628,"t":{"53":{"position":[[350,14]]},"92":{"position":[[1121,14],[1347,14],[1728,14],[2321,14]]}}}],["details.descript",{"_index":354,"t":{"25":{"position":[[258,19]]}}}],["details.fil",{"_index":358,"t":{"25":{"position":[[403,13]]}}}],["details.media_typ",{"_index":356,"t":{"25":{"position":[[336,18]]}}}],["details.name.unwrap().0",{"_index":457,"t":{"31":{"position":[[1630,24],[2081,24]]}}}],["differ",{"_index":250,"t":{"17":{"position":[[1319,9]]},"20":{"position":[[426,9]]},"31":{"position":[[243,9]]},"40":{"position":[[248,10],[327,10],[412,9]]},"79":{"position":[[741,12]]},"81":{"position":[[245,9]]},"86":{"position":[[898,9]]}}}],["direct",{"_index":999,"t":{"86":{"position":[[1687,6]]},"94":{"position":[[794,6],[4570,6]]}}}],["directli",{"_index":286,"t":{"20":{"position":[[132,8]]},"36":{"position":[[101,8]]},"44":{"position":[[35,8]]},"59":{"position":[[165,9]]},"64":{"position":[[151,8]]},"66":{"position":[[1825,8],[2389,8]]},"86":{"position":[[920,8]]},"90":{"position":[[196,8],[276,8],[716,8]]},"94":{"position":[[1364,9],[3668,8],[4357,8],[4703,8]]},"101":{"position":[[26,8]]}}}],["directori",{"_index":952,"t":{"81":{"position":[[539,10]]},"94":{"position":[[1545,10],[1569,9],[1960,9],[2013,9],[2223,10],[2475,10]]}}}],["discourag",{"_index":875,"t":{"75":{"position":[[414,11],[544,13]]}}}],["display",{"_index":1107,"t":{"92":{"position":[[1471,7]]}}}],["do",{"_index":788,"t":{"66":{"position":[[2168,6]]},"71":{"position":[[1062,5]]}}}],["doc",{"_index":701,"t":{"62":{"position":[[562,3]]}}}],["document",{"_index":805,"t":{"68":{"position":[[348,8]]},"77":{"position":[[88,11]]}}}],["don't",{"_index":1159,"t":{"94":{"position":[[1300,5]]}}}],["done",{"_index":219,"t":{"17":{"position":[[510,4]]},"71":{"position":[[987,4]]},"90":{"position":[[115,4]]},"92":{"position":[[209,4]]}}}],["doubt",{"_index":150,"t":{"13":{"position":[[2238,6]]}}}],["downsid",{"_index":1009,"t":{"90":{"position":[[44,10]]},"92":{"position":[[72,10]]},"94":{"position":[[147,10]]},"96":{"position":[[84,10]]}}}],["due",{"_index":428,"t":{"31":{"position":[[103,3]]},"40":{"position":[[0,3]]},"92":{"position":[[3634,3]]},"94":{"position":[[105,3]]},"101":{"position":[[336,3]]}}}],["dure",{"_index":571,"t":{"44":{"position":[[470,6]]}}}],["dynam",{"_index":998,"t":{"86":{"position":[[1658,7]]}}}],["e",{"_index":1045,"t":{"90":{"position":[[2481,3]]},"94":{"position":[[3260,3],[3536,3]]}}}],["e.g",{"_index":211,"t":{"17":{"position":[[308,4]]},"36":{"position":[[317,5]]},"40":{"position":[[338,4]]},"47":{"position":[[109,4]]},"57":{"position":[[172,4]]},"59":{"position":[[93,5],[355,4]]},"71":{"position":[[205,5],[705,5]]},"79":{"position":[[666,4]]},"81":{"position":[[145,4],[314,5]]}}}],["each",{"_index":338,"t":{"22":{"position":[[362,4]]},"44":{"position":[[55,4]]},"86":{"position":[[585,4],[1226,4]]}}}],["easi",{"_index":922,"t":{"79":{"position":[[976,4]]},"94":{"position":[[1227,4]]}}}],["easier",{"_index":301,"t":{"20":{"position":[[415,6]]},"94":{"position":[[2651,6],[4127,6]]}}}],["easiest",{"_index":954,"t":{"83":{"position":[[66,7]]}}}],["easili",{"_index":908,"t":{"79":{"position":[[125,6]]}}}],["ecosystem",{"_index":303,"t":{"20":{"position":[[462,9]]}}}],["ed25519",{"_index":690,"t":{"62":{"position":[[327,8],[418,7]]},"73":{"position":[[278,7]]}}}],["ed25519keyhash",{"_index":844,"t":{"73":{"position":[[124,14]]}}}],["ed25519signatur",{"_index":845,"t":{"73":{"position":[[139,16]]}}}],["elem",{"_index":1065,"t":{"90":{"position":[[3155,4]]}}}],["element",{"_index":537,"t":{"42":{"position":[[1037,8]]},"44":{"position":[[724,8]]},"92":{"position":[[1950,9],[3251,7],[3347,9],[3361,7]]},"94":{"position":[[772,8]]},"101":{"position":[[632,8],[757,8]]}}}],["emb",{"_index":925,"t":{"79":{"position":[[1050,5]]}}}],["empti",{"_index":1116,"t":{"92":{"position":[[2129,7]]}}}],["emurgo",{"_index":910,"t":{"79":{"position":[[184,6]]}}}],["enabl",{"_index":814,"t":{"71":{"position":[[135,7]]}}}],["encod",{"_index":291,"t":{"20":{"position":[[265,7],[373,6]]},"34":{"position":[[158,10]]},"40":{"position":[[114,9],[273,8],[574,8]]},"42":{"position":[[264,8],[387,8],[410,9],[1858,8],[2063,7]]},"44":{"position":[[1511,8],[1704,7]]},"79":{"position":[[718,8],[859,8]]},"86":{"position":[[295,8],[1178,8],[1268,6]]},"88":{"position":[[140,8],[169,8]]},"94":{"position":[[422,7],[805,8],[1129,8]]},"96":{"position":[[306,8]]},"101":{"position":[[60,7],[288,7],[326,9],[403,8],[419,7],[507,8],[657,7],[700,8],[896,8]]}}}],["end",{"_index":186,"t":{"15":{"position":[[501,3]]},"101":{"position":[[787,6]]}}}],["endpoint",{"_index":202,"t":{"17":{"position":[[72,8]]}}}],["enough",{"_index":930,"t":{"79":{"position":[[1141,6]]}}}],["ensur",{"_index":114,"t":{"13":{"position":[[1119,7]]}}}],["enterpris",{"_index":762,"t":{"66":{"position":[[585,10]]},"99":{"position":[[578,11]]}}}],["enterpriseaddr",{"_index":765,"t":{"66":{"position":[[660,14]]}}}],["entir",{"_index":306,"t":{"20":{"position":[[521,6],[612,6]]},"40":{"position":[[453,6]]}}}],["entri",{"_index":744,"t":{"64":{"position":[[579,8]]}}}],["entropi",{"_index":726,"t":{"64":{"position":[[89,7],[182,7],[491,7]]}}}],["enum",{"_index":337,"t":{"22":{"position":[[228,4]]}}}],["environ",{"_index":812,"t":{"71":{"position":[[109,11],[242,13],[488,11]]}}}],["epochs/latest/paramet",{"_index":201,"t":{"17":{"position":[[47,24]]}}}],["equival",{"_index":891,"t":{"75":{"position":[[1048,10]]},"79":{"position":[[540,10]]}}}],["era",{"_index":14,"t":{"11":{"position":[[68,3],[408,3],[442,4],[491,3]]},"13":{"position":[[2381,4]]},"34":{"position":[[74,4]]},"42":{"position":[[462,3]]},"44":{"position":[[487,3]]},"57":{"position":[[56,4],[137,3],[153,3],[243,3]]},"59":{"position":[[262,3]]},"66":{"position":[[1462,3],[1674,3]]},"75":{"position":[[746,4],[860,3],[901,5]]},"77":{"position":[[336,4]]},"99":{"position":[[552,3]]}}}],["especi",{"_index":915,"t":{"79":{"position":[[581,10]]},"94":{"position":[[257,10]]}}}],["essenti",{"_index":1222,"t":{"99":{"position":[[120,11]]}}}],["etc",{"_index":27,"t":{"11":{"position":[[274,4],[481,4]]},"15":{"position":[[123,4]]},"36":{"position":[[355,4]]},"47":{"position":[[137,4]]},"57":{"position":[[95,5]]},"59":{"position":[[378,4]]},"75":{"position":[[114,5]]},"81":{"position":[[174,4]]},"94":{"position":[[3728,3]]}}}],["even",{"_index":167,"t":{"15":{"position":[[162,4]]},"79":{"position":[[1045,4]]}}}],["eventu",{"_index":829,"t":{"71":{"position":[[529,10],[1087,10]]}}}],["ex_unit_prices(cml.exunitprices.new",{"_index":271,"t":{"17":{"position":[[1832,37]]}}}],["exact",{"_index":1132,"t":{"92":{"position":[[2721,5]]}}}],["examin",{"_index":1147,"t":{"92":{"position":[[3587,8]]}}}],["exampl",{"_index":146,"t":{"13":{"position":[[2102,8]]},"15":{"position":[[647,8]]},"25":{"position":[[14,7]]},"51":{"position":[[118,8]]},"66":{"position":[[209,8],[286,8],[2054,7]]},"71":{"position":[[628,8]]},"81":{"position":[[9,8],[512,8],[528,10]]},"86":{"position":[[1249,8]]},"90":{"position":[[898,7]]},"92":{"position":[[2765,7]]},"94":{"position":[[378,9],[999,7]]},"99":{"position":[[4,7],[341,8]]}}}],["except",{"_index":476,"t":{"36":{"position":[[126,6]]},"66":{"position":[[175,9]]},"81":{"position":[[273,10]]},"92":{"position":[[3623,10]]}}}],["excess",{"_index":832,"t":{"71":{"position":[[592,9]]}}}],["exchang",{"_index":931,"t":{"79":{"position":[[1180,10]]}}}],["exchanges/etc",{"_index":764,"t":{"66":{"position":[[640,13]]}}}],["execut",{"_index":823,"t":{"71":{"position":[[313,8]]}}}],["exist",{"_index":133,"t":{"13":{"position":[[1522,5]]},"20":{"position":[[660,8]]},"81":{"position":[[284,6]]},"86":{"position":[[1673,9]]}}}],["explan",{"_index":68,"t":{"13":{"position":[[226,12]]},"66":{"position":[[921,11]]}}}],["explicit",{"_index":663,"t":{"59":{"position":[[253,8]]}}}],["explicitli",{"_index":89,"t":{"13":{"position":[[536,10],[1134,10]]},"71":{"position":[[396,10]]}}}],["exploratori",{"_index":1046,"t":{"90":{"position":[[2539,11]]}}}],["export",{"_index":480,"t":{"36":{"position":[[294,8]]},"94":{"position":[[2214,8],[2361,6]]}}}],["expos",{"_index":557,"t":{"44":{"position":[[44,7]]},"49":{"position":[[29,7]]},"51":{"position":[[21,7]]},"94":{"position":[[4349,7]]}}}],["express",{"_index":1014,"t":{"90":{"position":[[177,11]]}}}],["extend",{"_index":1095,"t":{"92":{"position":[[748,8]]}}}],["extern",{"_index":716,"t":{"62":{"position":[[1090,8]]},"94":{"position":[[1281,8]]}}}],["extra",{"_index":105,"t":{"13":{"position":[[897,5],[1162,5],[1197,5]]}}}],["extract",{"_index":404,"t":{"29":{"position":[[14,9]]}}}],["facilit",{"_index":296,"t":{"20":{"position":[[309,10]]}}}],["fail",{"_index":183,"t":{"15":{"position":[[458,4]]},"31":{"position":[[395,6]]},"92":{"position":[[3685,4]]}}}],["fairli",{"_index":991,"t":{"86":{"position":[[1367,6],[1613,6]]},"90":{"position":[[170,6]]}}}],["faithfulli",{"_index":1099,"t":{"92":{"position":[[909,10]]}}}],["fallback",{"_index":438,"t":{"31":{"position":[[361,8]]}}}],["fast",{"_index":297,"t":{"20":{"position":[[320,4]]}}}],["faster",{"_index":311,"t":{"20":{"position":[[731,7]]}}}],["favor",{"_index":530,"t":{"42":{"position":[[704,5]]}}}],["featur",{"_index":472,"t":{"36":{"position":[[23,8]]},"38":{"position":[[95,8]]},"79":{"position":[[360,7]]},"92":{"position":[[956,7]]}}}],["fee",{"_index":58,"t":{"13":{"position":[[106,3],[532,3],[818,3],[829,3],[889,3],[964,4],[1009,4],[1092,3],[1153,4],[1168,3],[2271,5]]},"15":{"position":[[98,3],[522,5]]},"99":{"position":[[250,3],[271,4],[1681,3]]},"101":{"position":[[0,4]]}}}],["fee_algo(cml.linearfee.new(params.min_fee_a",{"_index":264,"t":{"17":{"position":[[1548,45]]}}}],["fetch",{"_index":181,"t":{"15":{"position":[[390,7]]}}}],["ff00ff00",{"_index":1143,"t":{"92":{"position":[[3208,11]]}}}],["field",{"_index":333,"t":{"22":{"position":[[89,5],[130,5],[473,6],[699,6]]},"29":{"position":[[0,6]]},"92":{"position":[[2635,5]]},"94":{"position":[[1241,6],[1337,5],[3688,6],[4642,5]]}}}],["file",{"_index":81,"t":{"13":{"position":[[417,4]]},"20":{"position":[[896,8]]},"22":{"position":[[598,6]]},"25":{"position":[[1398,6]]},"27":{"position":[[1101,6]]},"29":{"position":[[1002,6]]},"83":{"position":[[155,4]]},"92":{"position":[[1328,4]]},"94":{"position":[[1602,4],[1691,4],[2000,4]]}}}],["filesdetail",{"_index":394,"t":{"25":{"position":[[1412,12],[1524,12]]},"27":{"position":[[1115,12],[1227,12]]}}}],["filesdetails::new",{"_index":360,"t":{"25":{"position":[[430,18],[565,18]]}}}],["filter",{"_index":747,"t":{"64":{"position":[[609,9]]}}}],["final",{"_index":1257,"t":{"101":{"position":[[54,5]]}}}],["find",{"_index":897,"t":{"77":{"position":[[120,4]]},"81":{"position":[[498,4]]}}}],["first",{"_index":725,"t":{"64":{"position":[[70,5]]},"66":{"position":[[280,5],[2118,5]]},"90":{"position":[[2581,5],[2657,5],[3493,5]]},"94":{"position":[[1631,6]]}}}],["fit",{"_index":1207,"t":{"94":{"position":[[4769,3]]},"96":{"position":[[286,3]]}}}],["fix",{"_index":993,"t":{"86":{"position":[[1423,5]]}}}],["flag",{"_index":415,"t":{"29":{"position":[[272,7]]}}}],["flexibl",{"_index":486,"t":{"40":{"position":[[14,11]]},"79":{"position":[[1132,8]]},"90":{"position":[[9,8]]},"92":{"position":[[9,8]]}}}],["follow",{"_index":76,"t":{"13":{"position":[[353,9]]},"25":{"position":[[4,9]]},"42":{"position":[[1003,9]]},"44":{"position":[[690,9]]},"62":{"position":[[268,9]]},"64":{"position":[[97,9]]},"90":{"position":[[921,9]]},"92":{"position":[[828,9]]},"94":{"position":[[2314,9]]}}}],["foo",{"_index":649,"t":{"55":{"position":[[280,8]]},"94":{"position":[[602,3],[818,3]]}}}],["foo.bar",{"_index":937,"t":{"81":{"position":[[150,9]]}}}],["foo::new",{"_index":938,"t":{"81":{"position":[[163,10]]}}}],["foolist",{"_index":943,"t":{"81":{"position":[[320,7]]}}}],["form",{"_index":962,"t":{"86":{"position":[[155,4]]}}}],["formal",{"_index":159,"t":{"13":{"position":[[2525,6]]},"66":{"position":[[905,6]]},"77":{"position":[[250,6]]}}}],["format",{"_index":249,"t":{"17":{"position":[[1309,6]]},"38":{"position":[[53,6]]},"42":{"position":[[1899,6]]},"44":{"position":[[1552,6]]},"51":{"position":[[490,10]]},"53":{"position":[[138,7]]},"59":{"position":[[56,6],[137,6]]},"86":{"position":[[1818,7]]},"92":{"position":[[1251,7],[2838,7],[3453,8]]},"94":{"position":[[1723,6]]}}}],["found",{"_index":955,"t":{"83":{"position":[[138,5]]},"92":{"position":[[1266,5]]}}}],["free",{"_index":828,"t":{"71":{"position":[[412,7],[868,7],[902,7],[1032,7]]}}}],["freed",{"_index":830,"t":{"71":{"position":[[543,5]]}}}],["freedom",{"_index":1135,"t":{"92":{"position":[[3032,7]]}}}],["frequent",{"_index":917,"t":{"79":{"position":[[623,8]]},"86":{"position":[[1446,10]]}}}],["fring",{"_index":1146,"t":{"92":{"position":[[3538,6]]}}}],["from_cbor_byt",{"_index":560,"t":{"44":{"position":[[127,18]]}}}],["from_cbor_hex",{"_index":563,"t":{"44":{"position":[[186,16]]}}}],["from_json",{"_index":592,"t":{"49":{"position":[[55,12]]}}}],["full",{"_index":957,"t":{"83":{"position":[[212,4]]}}}],["function",{"_index":17,"t":{"11":{"position":[[101,13]]},"15":{"position":[[714,8]]},"22":{"position":[[326,9]]},"31":{"position":[[18,8],[154,8]]},"53":{"position":[[71,13]]},"62":{"position":[[625,8]]},"75":{"position":[[293,9],[689,14]]},"86":{"position":[[1051,9],[1215,10]]},"90":{"position":[[2596,8]]}}}],["funtion",{"_index":471,"t":{"34":{"position":[[200,12]]}}}],["gener",{"_index":128,"t":{"13":{"position":[[1397,9],[2436,7]]},"47":{"position":[[72,9]]},"53":{"position":[[24,7]]},"64":{"position":[[3,8],[387,8]]},"75":{"position":[[836,7]]},"79":{"position":[[52,9],[280,8],[397,9]]},"83":{"position":[[13,9]]},"90":{"position":[[739,7]]},"94":{"position":[[1800,8],[2054,8],[2085,8],[2134,8],[2256,8],[3316,9],[3592,9],[3932,7],[4192,9]]}}}],["genesi",{"_index":80,"t":{"13":{"position":[[409,7]]},"57":{"position":[[201,8]]}}}],["genesisdelegatehash",{"_index":846,"t":{"73":{"position":[[156,19]]}}}],["genesishash",{"_index":847,"t":{"73":{"position":[[176,11]]}}}],["get",{"_index":199,"t":{"17":{"position":[[11,7],[1446,7]]}}}],["give",{"_index":660,"t":{"59":{"position":[[71,6],[118,4]]},"86":{"position":[[1244,4]]},"94":{"position":[[2428,4]]}}}],["given",{"_index":1015,"t":{"90":{"position":[[305,5]]}}}],["good",{"_index":995,"t":{"86":{"position":[[1584,4]]}}}],["govern",{"_index":73,"t":{"13":{"position":[[299,9],[2261,9],[2459,10]]}}}],["grammar",{"_index":965,"t":{"86":{"position":[[258,7]]}}}],["guarante",{"_index":520,"t":{"42":{"position":[[240,9]]},"79":{"position":[[107,10]]}}}],["hand",{"_index":1012,"t":{"90":{"position":[[123,4]]},"92":{"position":[[217,4]]}}}],["handl",{"_index":727,"t":{"64":{"position":[[160,6]]},"75":{"position":[[123,8]]},"90":{"position":[[2678,6],[3363,6]]}}}],["happen",{"_index":1187,"t":{"94":{"position":[[3287,6],[3563,6]]}}}],["happi",{"_index":979,"t":{"86":{"position":[[808,6]]},"92":{"position":[[440,6]]},"94":{"position":[[3137,6],[4981,6]]}}}],["hard",{"_index":177,"t":{"15":{"position":[[319,4]]}}}],["harden(num",{"_index":703,"t":{"62":{"position":[[634,11]]}}}],["hardfork",{"_index":960,"t":{"86":{"position":[[30,8]]}}}],["hash",{"_index":142,"t":{"13":{"position":[[1931,4]]},"40":{"position":[[306,6],[353,6],[375,6]]},"42":{"position":[[1148,5]]},"44":{"position":[[835,5]]},"79":{"position":[[607,6]]},"99":{"position":[[1070,4]]}}}],["hash_transaction(bodi",{"_index":143,"t":{"13":{"position":[[1972,23]]}}}],["have",{"_index":212,"t":{"17":{"position":[[313,6]]}}}],["head",{"_index":182,"t":{"15":{"position":[[426,4]]}}}],["held",{"_index":1226,"t":{"99":{"position":[[534,4]]}}}],["hello",{"_index":1141,"t":{"92":{"position":[[3157,9],[3382,7]]}}}],["here",{"_index":668,"t":{"59":{"position":[[316,6]]},"77":{"position":[[164,4]]},"92":{"position":[[2339,5],[3060,5]]},"94":{"position":[[2896,5],[4309,4],[4733,4]]},"96":{"position":[[856,4]]}}}],["hex",{"_index":564,"t":{"44":{"position":[[207,3]]},"59":{"position":[[351,3]]},"64":{"position":[[728,7]]},"88":{"position":[[165,3]]},"92":{"position":[[1049,3],[1100,3]]},"99":{"position":[[2146,3]]}}}],["higher",{"_index":189,"t":{"15":{"position":[[515,6]]}}}],["hip",{"_index":741,"t":{"64":{"position":[[556,6]]}}}],["histor",{"_index":46,"t":{"11":{"position":[[537,10]]},"75":{"position":[[877,10]]}}}],["human",{"_index":610,"t":{"51":{"position":[[475,5]]}}}],["hundr",{"_index":824,"t":{"71":{"position":[[322,8],[711,8]]}}}],["i.",{"_index":112,"t":{"13":{"position":[[1034,4]]}}}],["i32",{"_index":1198,"t":{"94":{"position":[[3881,3],[4657,6]]}}}],["i64",{"_index":1197,"t":{"94":{"position":[[3876,4]]}}}],["icaru",{"_index":783,"t":{"66":{"position":[[1585,6],[1727,6]]}}}],["id",{"_index":459,"t":{"31":{"position":[[1704,2]]}}}],["id\":\"00",{"_index":460,"t":{"31":{"position":[[1724,10]]}}}],["ideal",{"_index":180,"t":{"15":{"position":[[379,7]]}}}],["ident",{"_index":803,"t":{"68":{"position":[[253,9]]},"99":{"position":[[132,9]]}}}],["illustr",{"_index":1133,"t":{"92":{"position":[[2786,10]]}}}],["imag",{"_index":317,"t":{"20":{"position":[[803,8]]},"22":{"position":[[503,5],[673,6]]},"25":{"position":[[1233,6]]},"27":{"position":[[936,6]]},"29":{"position":[[128,8],[883,6]]},"31":{"position":[[684,6],[2140,6],[2479,5]]}}}],["image\":\"ipfs.io/ipfs/qmah6qpkukvp6k9xqb2sa42q3yrffcbybbk8eorrb7fn2g",{"_index":452,"t":{"31":{"position":[[809,70]]}}}],["image\":\"ipfs://qmsfytf8b4ua6hfdr6urdrdzbz9fjcqnuddclr2f7p8xn3",{"_index":461,"t":{"31":{"position":[[1738,63],[2155,63]]}}}],["image/ + + + + +Search the documentation + + + + +

Search the documentation

+ + \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 00000000..a8ec4fef --- /dev/null +++ b/sitemap.xml @@ -0,0 +1 @@ +https://dcspark.github.io/cardano-multiplatform-lib/searchweekly0.5https://dcspark.github.io/cardano-multiplatform-lib/category/buildersweekly0.5https://dcspark.github.io/cardano-multiplatform-lib/category/chainweekly0.5https://dcspark.github.io/cardano-multiplatform-lib/category/coreweekly0.5https://dcspark.github.io/cardano-multiplatform-lib/category/cryptoweekly0.5https://dcspark.github.io/cardano-multiplatform-lib/category/modulesweekly0.5https://dcspark.github.io/cardano-multiplatform-lib/category/multi-eraweekly0.5https://dcspark.github.io/cardano-multiplatform-lib/crate_architectureweekly0.5https://dcspark.github.io/cardano-multiplatform-lib/getting_startedweekly0.5https://dcspark.github.io/cardano-multiplatform-lib/modules/builders/weekly0.5https://dcspark.github.io/cardano-multiplatform-lib/modules/builders/generating_transactionsweekly0.5https://dcspark.github.io/cardano-multiplatform-lib/modules/cborweekly0.5https://dcspark.github.io/cardano-multiplatform-lib/modules/chain/weekly0.5https://dcspark.github.io/cardano-multiplatform-lib/modules/CIP25weekly0.5https://dcspark.github.io/cardano-multiplatform-lib/modules/cip36weekly0.5https://dcspark.github.io/cardano-multiplatform-lib/modules/core/weekly0.5https://dcspark.github.io/cardano-multiplatform-lib/modules/crypto/weekly0.5https://dcspark.github.io/cardano-multiplatform-lib/modules/crypto/generating_keysweekly0.5https://dcspark.github.io/cardano-multiplatform-lib/modules/jsonweekly0.5https://dcspark.github.io/cardano-multiplatform-lib/modules/metadataweekly0.5https://dcspark.github.io/cardano-multiplatform-lib/modules/multi-era/weekly0.5https://dcspark.github.io/cardano-multiplatform-lib/modules/wasmweekly0.5https://dcspark.github.io/cardano-multiplatform-lib/weekly0.5 \ No newline at end of file

Cardano Multiplatform Lib

+

This is a library, written in Rust, that can be deployed to multiple platforms (Rust crate, JS, Typescript, WASM, etc). It handles:

+
    +
  • Serialization & deserialization of core data structures
  • +
  • Builders to streamline and verify the construction of transactions and related components
  • +
  • Useful utility functions for dApps & wallets
  • +
+
NPM packages
+ +

There is also an outdated asm.js . It is strongly discouraged from using this as it is out of date and asm.js results in incredibly slow cryptographic operations.

+
    +
  • asm.js (strongly discouraged): link
  • +
+

Note: If you are using WebPack, you must use version 5 or later for CML to work.

+
Rust crates
+

The rust crates are split up by functionality.

+ +

Most users will likely be using primarily cml-chain for general uses, cml-multi-era if they need historical (pre-babbage eras) chain-parsing and cip25 or cip36 if they need those specific metadata standards.

+
Mobile bindings
+

We recommend using Ionic + Capacitor or an equivalent setup to have the WASM bindings working in mobile

+

Pre-requisite knowledge

+

This library assumes a certain amount of knowledge about how Cardano works (to avoid re-documenting the wheel).

+

You can find the specifications of Cardano's ledger here which we suggest consulting as you use this library. Notably, the Shelley ledger formal specification covers the core concepts. Make sure to check the specs for later eras as well when needed.

+

Benefits of using this library

+

Serialization/deserialization code is automatically generated from +Cardano’s official specification, which guarantees it can easily stay up +to date! We do this using a tool managed by EMURGO & dcSpark called cddl-codegen +which can be re-used for other tasks such as automatically generate a +Rust library for Cardano metadata specifications!

+

The most important feature of this is that CML has been generated to allow all CBOR details to be preserved. +With CBOR many CBOR structures can have multiple ways to serialize to bytes from the same equivalent structure. +This causes issues especially when computing hashes and is a frequent problem with working across tools e.g. cardano-node-cli and cardano-serialization-lib encoding plutus datums differently. This makes CML much more compatible with all other libraries as it will remember all these specific CBOR encoding details. This is particularly important for use with dApps and wallets connecting to dApps.

+

It is also very easy to create scripts in Rust or WASM to share with +stake pools, or even embed inside an online tool! No more crazy +cardano-cli bash scripts!

+

Powerful and flexible enough to be used to power wallets and exchanges! +(Yes, it’s used in production!)

+

A note on code examples

+

All code examples are using the WASM (typescript/javascript) API. If you are using CML from rust you will need to change the code to rust syntax e.g. Foo.bar() to Foo::new() etc. We've tried to keep the API as consistent as possible between the different bindings but some exceptions exist. The array/map wrappers (e.g. FooList / MapFooToBar) in WASM are simply Vec<Foo> and OrderedHashMap<Foo, Bar> respectively. There will be some changes relating to reference params/moving/etc as well.

+

You can find complete examples in the /examples/ directory.

+

Documentation

+

This library generates Typescript type definitions, so it’s often easiest to see what is possible by just looking at the types! These are found in the .ts file in the npm package roots. +If you are using rust the full API will be shown in the respective crates.io pages.