diff --git a/asset-manifest.json b/asset-manifest.json index 9a1993b7c..6e186c9e4 100644 --- a/asset-manifest.json +++ b/asset-manifest.json @@ -1,7 +1,7 @@ { "files": { "main.css": "/static/css/main.a778f35e.css", - "main.js": "/static/js/main.d45656dc.js", + "main.js": "/static/js/main.bfcd6ee8.js", "static/js/221.49458ca2.chunk.js": "/static/js/221.49458ca2.chunk.js", "static/js/837.afda5431.chunk.js": "/static/js/837.afda5431.chunk.js", "static/js/727.d4f51612.chunk.js": "/static/js/727.d4f51612.chunk.js", @@ -29,15 +29,15 @@ "static/js/467.9ffb262c.chunk.js": "/static/js/467.9ffb262c.chunk.js", "static/js/502.6fae4133.chunk.js": "/static/js/502.6fae4133.chunk.js", "static/js/45.7918c389.chunk.js": "/static/js/45.7918c389.chunk.js", - "refractor-vendor.js": "/static/js/refractor-vendor.0dcae3d7.js", - "parse5-vendor.js": "/static/js/parse5-vendor.85a22d8c.js", - "uiw-vendor.js": "/static/js/uiw-vendor.4c8d7e7a.js", - "react-vendor.js": "/static/js/react-vendor.eefbee93.js", + "refractor-vendor.js": "/static/js/refractor-vendor.3248bcab.js", + "uiw-vendor.js": "/static/js/uiw-vendor.56dca6a4.js", + "parse5-vendor.js": "/static/js/parse5-vendor.77e48597.js", + "react-vendor.js": "/static/js/react-vendor.ef3775ea.js", "babel-standalone-vendor.js": "/static/js/babel-standalone-vendor.ca22137e.js", "static/js/952.d4a94cf7.chunk.js": "/static/js/952.d4a94cf7.chunk.js", "index.html": "/index.html", "main.a778f35e.css.map": "/static/css/main.a778f35e.css.map", - "main.d45656dc.js.map": "/static/js/main.d45656dc.js.map", + "main.bfcd6ee8.js.map": "/static/js/main.bfcd6ee8.js.map", "221.49458ca2.chunk.js.map": "/static/js/221.49458ca2.chunk.js.map", "837.afda5431.chunk.js.map": "/static/js/837.afda5431.chunk.js.map", "727.d4f51612.chunk.js.map": "/static/js/727.d4f51612.chunk.js.map", @@ -65,20 +65,20 @@ "467.9ffb262c.chunk.js.map": "/static/js/467.9ffb262c.chunk.js.map", "502.6fae4133.chunk.js.map": "/static/js/502.6fae4133.chunk.js.map", "45.7918c389.chunk.js.map": "/static/js/45.7918c389.chunk.js.map", - "refractor-vendor.0dcae3d7.js.map": "/static/js/refractor-vendor.0dcae3d7.js.map", - "parse5-vendor.85a22d8c.js.map": "/static/js/parse5-vendor.85a22d8c.js.map", - "uiw-vendor.4c8d7e7a.js.map": "/static/js/uiw-vendor.4c8d7e7a.js.map", - "react-vendor.eefbee93.js.map": "/static/js/react-vendor.eefbee93.js.map", + "refractor-vendor.3248bcab.js.map": "/static/js/refractor-vendor.3248bcab.js.map", + "uiw-vendor.56dca6a4.js.map": "/static/js/uiw-vendor.56dca6a4.js.map", + "parse5-vendor.77e48597.js.map": "/static/js/parse5-vendor.77e48597.js.map", + "react-vendor.ef3775ea.js.map": "/static/js/react-vendor.ef3775ea.js.map", "babel-standalone-vendor.ca22137e.js.map": "/static/js/babel-standalone-vendor.ca22137e.js.map", "952.d4a94cf7.chunk.js.map": "/static/js/952.d4a94cf7.chunk.js.map" }, "entrypoints": [ - "static/js/refractor-vendor.0dcae3d7.js", - "static/js/parse5-vendor.85a22d8c.js", - "static/js/uiw-vendor.4c8d7e7a.js", - "static/js/react-vendor.eefbee93.js", + "static/js/refractor-vendor.3248bcab.js", + "static/js/uiw-vendor.56dca6a4.js", + "static/js/parse5-vendor.77e48597.js", + "static/js/react-vendor.ef3775ea.js", "static/js/babel-standalone-vendor.ca22137e.js", "static/css/main.a778f35e.css", - "static/js/main.d45656dc.js" + "static/js/main.bfcd6ee8.js" ] } \ No newline at end of file diff --git a/badges.svg b/badges.svg index 8ba63accd..a76890a15 100644 --- a/badges.svg +++ b/badges.svg @@ -1,14 +1,14 @@ coverage: 36.14% - + - - + + - +

All files api-loader/src

React Baidu Map - 百度地图 React 组件
\ No newline at end of file +React Baidu Map - 百度地图 React 组件React Baidu Map - 百度地图 React 组件
\ No newline at end of file diff --git a/static/css/main.a778f35e.css.map b/static/css/main.a778f35e.css.map index 7b4bb5c65..40973156f 100644 --- a/static/css/main.a778f35e.css.map +++ b/static/css/main.a778f35e.css.map @@ -1 +1 @@ -{"version":3,"file":"static/css/main.a778f35e.css","mappings":"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E,aACF,CAKA,2CAFE,UAAW,CADX,aAOF,CAJA,qBAEE,UAEF,CACA,4BACE,sBACF,CACA,2BACE,yBACF,CACA,6BACE,aAAc,CACd,oBACF,CACA,uBACE,4BACF,CACA,wBACE,UAAW,CAGX,aAAc,CADd,iBAAkB,CADlB,iBAGF,CACA,6BACE,YACF,CACA,gKASE,kBAAmB,CADnB,YAEF,CACA,uCACE,YACF,CACA,sCACE,eACF,CACA,4BACE,WACF,CACA,2BACE,WACF,CACA,gMAME,6BAA8B,CAC9B,qBAAsB,CACtB,iBACF,CACA,gMAME,oBACF,CACA,oRAME,kBACF,CACA,wQAaE,iBAAkB,CADlB,cAEF,CACA,oDAGE,oBAAqB,CADrB,SAEF,CACA,4BACE,uBACF,CACA,0BACE,2BACF,CACA,0BACE,2BACF,CACA,kCACE,uBACF,CACA,oFAKE,eAAgB,CADhB,YAEF,CACA,oBACE,eACF,CACA,qBACE,gBACF,CACA,kBACE,SACF,CACA,qBAGE,aAAc,CACd,iBAAkB,CAClB,eAAgB,CAHhB,eAAgB,CADhB,SAKF,CACA,qBAEE,kBAAmB,CADnB,cAEF,CACA,wBACE,eACF,CACA,gDAGE,4CAA6C,CAD7C,gBAEF,CACA,wBACE,4CAA6C,CAC7C,8CACF,CACA,sCACE,2CACF,CACA,yBACE,wBACF,CACA,gCACE,iBACF,CACA,+BACE,kBACF,CACA,sBAGE,wBAA6B,CAF7B,cAAe,CACf,uBAEF,CACA,0BACE,aAAc,CACd,eACF,CACA,+BAOE,4CAA6C,CAN7C,aAAc,CACd,UAAW,CAGX,eAAgB,CAChB,eAAgB,CAFhB,WAAY,CADZ,UAKF,CACA,mCACE,aAAc,CACd,UACF,CACA,oCAGE,UAAW,CACX,6BAA8B,CAH9B,aAAc,CACd,eAGF,CACA,iCAGE,UAAW,CAFX,aAAc,CACd,eAEF,CACA,sCACE,aAAc,CACd,kBAAmB,CACnB,eAAgB,CAChB,iBACF,CACA,0CACE,aAAc,CACd,iBACF,CACA,gCAGE,UAAW,CAFX,aAAc,CACd,eAEF,CACA,qCACE,aAAc,CACd,eAAgB,CAChB,eAAgB,CAChB,gBACF,CACA,yCACE,QAAS,CACT,gBACF,CACA,+BACE,aAAc,CACd,UAAW,CACX,iBAAkB,CAClB,eACF,CACA,oCACE,eACF,CACA,gCACE,aAAc,CACd,WAAY,CACZ,gBAAiB,CACjB,eACF,CACA,qCACE,aAAc,CACd,kBAAmB,CACnB,eAAgB,CAChB,gBACF,CACA,sCAKE,2CAA4C,CAC5C,iBAAkB,CAFlB,aAAc,CADd,QAAS,CADT,iBAKF,CACA,4CAEE,YACF,CACA,wBACE,uBACF,CACA,wBACE,cACF,CACA,wBAKE,gBAAuB,CACvB,QAAS,CAJT,QAAS,CADT,SAAU,CAGV,eAAgB,CADhB,iBAIF,CACA,mBAGE,2CAA4C,CAC5C,iBAAkB,CAHlB,aAAc,CACd,gBAGF,CACA,8CAQE,gBAAiB,CACjB,wBAA6B,CAC7B,QAAS,CART,cAAe,CAKf,mBAAoB,CAFpB,QAAS,CAFT,cAAe,CAGf,gBAAiB,CAFjB,SAOF,CACA,wBAGE,aAAc,CADd,aAAc,CADd,YAGF,CACA,wDAIE,cAAe,CACf,aAAc,CAFd,eAAgB,CADhB,WAAY,CAIZ,eAAgB,CAChB,kBACF,CACA,mCAGE,sCAAuC,CACvC,QAAS,CAHT,oBAAqB,CACrB,gBAGF,CACA,4BACE,YACF,CACA,4BAEE,qCAAsC,CACtC,YAAa,CAFb,eAGF,CACA,0BAGE,gDAAiD,CADjD,2BAA4B,CAD5B,cAGF,CACA,6BACE,iBACF,CACA,6BACE,iBACF,CACA,2CAQE,6CAA8C,CAC9C,iBAAkB,CALlB,WAAY,CAGZ,UAAW,CAFX,UAAW,CACX,mBAAoB,CALpB,iBAAkB,CAElB,UAAW,CADX,QAQF,CACA,oCACE,6BACF,CACA,yDACE,qBACF,CACA,+BACE,oBACF,CACA,qCACE,eACF,CACA,6CACE,cACF,CACA,8DACE,cACF,CACA,uCACE,YACF,CACA,gGAEE,0BAA6B,CAC7B,qBACF,CACA,sIAEE,0BACF,CACA,mDAEU,kBACV,CACA,mBACE,iBACF,CACA,2BASE,sCAAuC,CADvC,iBAAkB,CAHlB,4BAA6B,CAD7B,cAAe,CAFf,YAAa,CASb,cAAe,CADf,WAAY,CAPZ,iBAAkB,CAIlB,SAAU,CADV,OAAQ,CAMR,kBAAoB,CAXpB,iBAYF,CACA,yCACE,aACF,CACA,0CACE,YACF,CACA,iCACE,kBACF,CACA,uCACE,sDAAuD,CACvD,iCACF,CACA,0EAEE,kBAAmB,CACnB,iCACF,CACA,yCACE,YACF,CACA,0CACE,aACF,CACA,gBACE,2CACF,CACA,8BAKE,4BAA6B,CAC7B,kBAAmB,CALnB,oBAAqB,CAGrB,iBAAkB,CADlB,gBAAiB,CAIjB,kBAAmB,CALnB,UAMF,CACA,yDAIE,8CACF,CACA,iBACE,UACF,CACA,wFAME,iDACF,CACA,wBACE,+CACF,CACA,2JASE,+CACF,CACA,eACE,0DACF,CACA,0BACE,mEACF,CACA,gBACE,2DACF,CACA,2BACE,oEACF,CACA,gBACE,+CACF,CAOA,yJAKE,6CACF,CACA,yDAIE,8CACF,CACA,aACE,sDACF,CACA,6BAEE,eACF,CACA,cACE,iBACF,CACA,cACE,WACF,CCt/BA,UAGE,kIADA,cAAe,CAGf,QAAF,CAGA,cAGI,wBAAyB,CADzB,eADJ,CAMA,UAEE,sBAJF","sources":["../../node_modules/react-code-preview-layout/esm/styles.css","../../node_modules/@uiw/react-markdown-preview/esm/styles/markdown.css","index.less"],"sourcesContent":[".code-preview-layout[data-color-mode*='light'], [data-color-mode*='light'], body[data-color-mode*='light'] {\n --color-canvas-subtle: #f6f8fa;\n --color-border-muted: hsl(210, 18%, 87%);\n}\n.code-preview-layout[data-color-mode*='dark'], [data-color-mode*='dark'], body[data-color-mode*='dark'] {\n --color-canvas-subtle: #161b22;\n --color-border-muted: #21262d;\n}\n\n.w-rcpl.w-bordered {\n border: 1px solid var(--color-border-muted);\n}\n.w-rcpl.w-bordered > .w-rcpl-toolbar {\n border-top: 1px solid var(--color-border-muted);\n}\n.w-rcpl.w-bordered > .w-rcpl-code:not(.w-hidden) {\n border-top: 1px dashed var(--color-border-muted);\n}\n\n.w-rcpl {\n border-radius: 5px;\n background-color: var(--color-canvas-subtle);\n}\n.w-rcpl-preview:not(:last-child) {\n border-radius: 5px 5px 0 0;\n}\n.w-rcpl-code.w-hidden {\n height: 0;\n padding: 0;\n overflow: hidden;\n}\n.w-rcpl-code {\n transition: height cubic-bezier(0.360, 0.000, 0.660, -0.560);;\n height: auto;\n overflow: auto;\n border-top-left-radius: 0px;\n border-top-right-radius: 0px;\n}\n.w-rcpl-code > * {\n padding: 0 !important;\n margin: 0 !important;\n}\n.w-disable-checkered > .w-rcpl-preview {\n background-image: none;\n}\n.w-rcpl-preview {\n background: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cpattern id='a' width='16' height='16' patternUnits='userSpaceOnUse'%3E%3Cpath fill='rgba(0, 0, 0, 0.06)' d='M0 0h8v8H0zm8 8h8v8H8z'/%3E%3C/pattern%3E%3Crect fill='url(%23a)' width='100%25' height='100%25'/%3E%3C/svg%3E\")\n}\n.w-rcpl-preview, .w-rcpl-code {\n padding: 15px;\n}\n.w-rcpl-extra, .w-rcpl-title {\n display: flex;\n align-items: center;\n}\n.w-rcpl-toolbar button svg {\n opacity: 0.37;\n display: block;\n height: 18px;\n transition: opacity 0.3s;\n}\n.w-rcpl-toolbar button svg:hover {\n opacity: 1;\n}\n.w-rcpl-toolbar button {\n color: currentColor;\n position: relative;\n background-color: transparent;\n display: inline-block;\n height: inherit;\n padding: 3px 4px;\n border: 0;\n box-sizing: border-box;\n cursor: pointer;\n outline: none;\n transition: opacity .2s, background .2s;\n}\n.w-rcpl-toolbar {\n display: flex;\n justify-content: space-between;\n padding: 5px 5px;\n padding-left: 8px;\n}","@media (prefers-color-scheme: dark) {\n .wmde-markdown,\n .wmde-markdown-var {\n color-scheme: dark;\n --color-prettylights-syntax-comment: #8b949e;\n --color-prettylights-syntax-constant: #79c0ff;\n --color-prettylights-syntax-entity: #d2a8ff;\n --color-prettylights-syntax-storage-modifier-import: #c9d1d9;\n --color-prettylights-syntax-entity-tag: #7ee787;\n --color-prettylights-syntax-keyword: #ff7b72;\n --color-prettylights-syntax-string: #a5d6ff;\n --color-prettylights-syntax-variable: #ffa657;\n --color-prettylights-syntax-brackethighlighter-unmatched: #f85149;\n --color-prettylights-syntax-invalid-illegal-text: #f0f6fc;\n --color-prettylights-syntax-invalid-illegal-bg: #8e1519;\n --color-prettylights-syntax-carriage-return-text: #f0f6fc;\n --color-prettylights-syntax-carriage-return-bg: #b62324;\n --color-prettylights-syntax-string-regexp: #7ee787;\n --color-prettylights-syntax-markup-list: #f2cc60;\n --color-prettylights-syntax-markup-heading: #1f6feb;\n --color-prettylights-syntax-markup-italic: #c9d1d9;\n --color-prettylights-syntax-markup-bold: #c9d1d9;\n --color-prettylights-syntax-markup-deleted-text: #ffdcd7;\n --color-prettylights-syntax-markup-deleted-bg: #67060c;\n --color-prettylights-syntax-markup-inserted-text: #aff5b4;\n --color-prettylights-syntax-markup-inserted-bg: #033a16;\n --color-prettylights-syntax-markup-changed-text: #ffdfb6;\n --color-prettylights-syntax-markup-changed-bg: #5a1e02;\n --color-prettylights-syntax-markup-ignored-text: #c9d1d9;\n --color-prettylights-syntax-markup-ignored-bg: #1158c7;\n --color-prettylights-syntax-meta-diff-range: #d2a8ff;\n --color-prettylights-syntax-brackethighlighter-angle: #8b949e;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;\n --color-prettylights-syntax-constant-other-reference-link: #a5d6ff;\n --color-fg-default: #c9d1d9;\n --color-fg-muted: #8b949e;\n --color-fg-subtle: #484f58;\n --color-canvas-default: #0d1117;\n --color-canvas-subtle: #161b22;\n --color-border-default: #30363d;\n --color-border-muted: #21262d;\n --color-neutral-muted: rgba(110, 118, 129, 0.4);\n --color-accent-fg: #58a6ff;\n --color-accent-emphasis: #1f6feb;\n --color-attention-subtle: rgba(187, 128, 9, 0.15);\n --color-danger-fg: #f85149;\n }\n}\n@media (prefers-color-scheme: light) {\n .wmde-markdown,\n .wmde-markdown-var {\n color-scheme: light;\n --color-prettylights-syntax-comment: #6e7781;\n --color-prettylights-syntax-constant: #0550ae;\n --color-prettylights-syntax-entity: #8250df;\n --color-prettylights-syntax-storage-modifier-import: #24292f;\n --color-prettylights-syntax-entity-tag: #116329;\n --color-prettylights-syntax-keyword: #cf222e;\n --color-prettylights-syntax-string: #0a3069;\n --color-prettylights-syntax-variable: #953800;\n --color-prettylights-syntax-brackethighlighter-unmatched: #82071e;\n --color-prettylights-syntax-invalid-illegal-text: #f6f8fa;\n --color-prettylights-syntax-invalid-illegal-bg: #82071e;\n --color-prettylights-syntax-carriage-return-text: #f6f8fa;\n --color-prettylights-syntax-carriage-return-bg: #cf222e;\n --color-prettylights-syntax-string-regexp: #116329;\n --color-prettylights-syntax-markup-list: #3b2300;\n --color-prettylights-syntax-markup-heading: #0550ae;\n --color-prettylights-syntax-markup-italic: #24292f;\n --color-prettylights-syntax-markup-bold: #24292f;\n --color-prettylights-syntax-markup-deleted-text: #82071e;\n --color-prettylights-syntax-markup-deleted-bg: #ffebe9;\n --color-prettylights-syntax-markup-inserted-text: #116329;\n --color-prettylights-syntax-markup-inserted-bg: #dafbe1;\n --color-prettylights-syntax-markup-changed-text: #953800;\n --color-prettylights-syntax-markup-changed-bg: #ffd8b5;\n --color-prettylights-syntax-markup-ignored-text: #eaeef2;\n --color-prettylights-syntax-markup-ignored-bg: #0550ae;\n --color-prettylights-syntax-meta-diff-range: #8250df;\n --color-prettylights-syntax-brackethighlighter-angle: #57606a;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;\n --color-prettylights-syntax-constant-other-reference-link: #0a3069;\n --color-fg-default: #24292f;\n --color-fg-muted: #57606a;\n --color-fg-subtle: #6e7781;\n --color-canvas-default: #ffffff;\n --color-canvas-subtle: #f6f8fa;\n --color-border-default: #d0d7de;\n --color-border-muted: hsl(210, 18%, 87%);\n --color-neutral-muted: rgba(175, 184, 193, 0.2);\n --color-accent-fg: #0969da;\n --color-accent-emphasis: #0969da;\n --color-attention-subtle: #fff8c5;\n --color-danger-fg: #cf222e;\n }\n}\n[data-color-mode*='dark'] .wmde-markdown,\n[data-color-mode*='dark'] .wmde-markdown-var,\n.wmde-markdown-var[data-color-mode*='dark'],\n.wmde-markdown[data-color-mode*='dark'],\nbody[data-color-mode*='dark'] {\n color-scheme: dark;\n --color-prettylights-syntax-comment: #8b949e;\n --color-prettylights-syntax-constant: #79c0ff;\n --color-prettylights-syntax-entity: #d2a8ff;\n --color-prettylights-syntax-storage-modifier-import: #c9d1d9;\n --color-prettylights-syntax-entity-tag: #7ee787;\n --color-prettylights-syntax-keyword: #ff7b72;\n --color-prettylights-syntax-string: #a5d6ff;\n --color-prettylights-syntax-variable: #ffa657;\n --color-prettylights-syntax-brackethighlighter-unmatched: #f85149;\n --color-prettylights-syntax-invalid-illegal-text: #f0f6fc;\n --color-prettylights-syntax-invalid-illegal-bg: #8e1519;\n --color-prettylights-syntax-carriage-return-text: #f0f6fc;\n --color-prettylights-syntax-carriage-return-bg: #b62324;\n --color-prettylights-syntax-string-regexp: #7ee787;\n --color-prettylights-syntax-markup-list: #f2cc60;\n --color-prettylights-syntax-markup-heading: #1f6feb;\n --color-prettylights-syntax-markup-italic: #c9d1d9;\n --color-prettylights-syntax-markup-bold: #c9d1d9;\n --color-prettylights-syntax-markup-deleted-text: #ffdcd7;\n --color-prettylights-syntax-markup-deleted-bg: #67060c;\n --color-prettylights-syntax-markup-inserted-text: #aff5b4;\n --color-prettylights-syntax-markup-inserted-bg: #033a16;\n --color-prettylights-syntax-markup-changed-text: #ffdfb6;\n --color-prettylights-syntax-markup-changed-bg: #5a1e02;\n --color-prettylights-syntax-markup-ignored-text: #c9d1d9;\n --color-prettylights-syntax-markup-ignored-bg: #1158c7;\n --color-prettylights-syntax-meta-diff-range: #d2a8ff;\n --color-prettylights-syntax-brackethighlighter-angle: #8b949e;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;\n --color-prettylights-syntax-constant-other-reference-link: #a5d6ff;\n --color-fg-default: #c9d1d9;\n --color-fg-muted: #8b949e;\n --color-fg-subtle: #484f58;\n --color-canvas-default: #0d1117;\n --color-canvas-subtle: #161b22;\n --color-border-default: #30363d;\n --color-border-muted: #21262d;\n --color-neutral-muted: rgba(110, 118, 129, 0.4);\n --color-accent-fg: #58a6ff;\n --color-accent-emphasis: #1f6feb;\n --color-attention-subtle: rgba(187, 128, 9, 0.15);\n --color-danger-fg: #f85149;\n}\n[data-color-mode*='light'] .wmde-markdown,\n[data-color-mode*='light'] .wmde-markdown-var,\n.wmde-markdown-var[data-color-mode*='light'],\n.wmde-markdown[data-color-mode*='light'],\nbody[data-color-mode*='light'] {\n color-scheme: light;\n --color-prettylights-syntax-comment: #6e7781;\n --color-prettylights-syntax-constant: #0550ae;\n --color-prettylights-syntax-entity: #8250df;\n --color-prettylights-syntax-storage-modifier-import: #24292f;\n --color-prettylights-syntax-entity-tag: #116329;\n --color-prettylights-syntax-keyword: #cf222e;\n --color-prettylights-syntax-string: #0a3069;\n --color-prettylights-syntax-variable: #953800;\n --color-prettylights-syntax-brackethighlighter-unmatched: #82071e;\n --color-prettylights-syntax-invalid-illegal-text: #f6f8fa;\n --color-prettylights-syntax-invalid-illegal-bg: #82071e;\n --color-prettylights-syntax-carriage-return-text: #f6f8fa;\n --color-prettylights-syntax-carriage-return-bg: #cf222e;\n --color-prettylights-syntax-string-regexp: #116329;\n --color-prettylights-syntax-markup-list: #3b2300;\n --color-prettylights-syntax-markup-heading: #0550ae;\n --color-prettylights-syntax-markup-italic: #24292f;\n --color-prettylights-syntax-markup-bold: #24292f;\n --color-prettylights-syntax-markup-deleted-text: #82071e;\n --color-prettylights-syntax-markup-deleted-bg: #ffebe9;\n --color-prettylights-syntax-markup-inserted-text: #116329;\n --color-prettylights-syntax-markup-inserted-bg: #dafbe1;\n --color-prettylights-syntax-markup-changed-text: #953800;\n --color-prettylights-syntax-markup-changed-bg: #ffd8b5;\n --color-prettylights-syntax-markup-ignored-text: #eaeef2;\n --color-prettylights-syntax-markup-ignored-bg: #0550ae;\n --color-prettylights-syntax-meta-diff-range: #8250df;\n --color-prettylights-syntax-brackethighlighter-angle: #57606a;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;\n --color-prettylights-syntax-constant-other-reference-link: #0a3069;\n --color-fg-default: #24292f;\n --color-fg-muted: #57606a;\n --color-fg-subtle: #6e7781;\n --color-canvas-default: #ffffff;\n --color-canvas-subtle: #f6f8fa;\n --color-border-default: #d0d7de;\n --color-border-muted: hsl(210, 18%, 87%);\n --color-neutral-muted: rgba(175, 184, 193, 0.2);\n --color-accent-fg: #0969da;\n --color-accent-emphasis: #0969da;\n --color-attention-subtle: #fff8c5;\n --color-danger-fg: #cf222e;\n}\n.wmde-markdown {\n -webkit-text-size-adjust: 100%;\n font-family: -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';\n font-size: 16px;\n line-height: 1.5;\n word-wrap: break-word;\n color: var(--color-fg-default);\n background-color: var(--color-canvas-default);\n}\n.wmde-markdown details,\n.wmde-markdown figcaption,\n.wmde-markdown figure {\n display: block;\n}\n.wmde-markdown summary {\n display: list-item;\n}\n.wmde-markdown [hidden] {\n display: none !important;\n}\n.wmde-markdown a {\n background-color: transparent;\n color: var(--color-accent-fg);\n text-decoration: none;\n}\n.wmde-markdown a:active,\n.wmde-markdown a:hover {\n outline-width: 0;\n}\n.wmde-markdown abbr[title] {\n border-bottom: none;\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n}\n.wmde-markdown b,\n.wmde-markdown strong {\n font-weight: 600;\n}\n.wmde-markdown dfn {\n font-style: italic;\n}\n.wmde-markdown h1 {\n margin: 0.67em 0;\n font-weight: 600;\n padding-bottom: 0.3em;\n font-size: 2em;\n border-bottom: 1px solid var(--color-border-muted);\n}\n.wmde-markdown mark {\n background-color: var(--color-attention-subtle);\n color: var(--color-text-primary);\n}\n.wmde-markdown small {\n font-size: 90%;\n}\n.wmde-markdown sub,\n.wmde-markdown sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n.wmde-markdown sub {\n bottom: -0.25em;\n}\n.wmde-markdown sup {\n top: -0.5em;\n}\n.wmde-markdown img {\n display: inline-block;\n border-style: none;\n max-width: 100%;\n box-sizing: content-box;\n background-color: var(--color-canvas-default);\n}\n.wmde-markdown code,\n.wmde-markdown kbd,\n.wmde-markdown pre,\n.wmde-markdown samp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n.wmde-markdown figure {\n margin: 1em 40px;\n}\n.wmde-markdown hr {\n box-sizing: content-box;\n overflow: hidden;\n background: transparent;\n border: 0;\n border-bottom: 1px solid var(--color-border-muted);\n height: 0.25em;\n padding: 0;\n margin: 24px 0;\n background-color: var(--color-border-default);\n}\n.wmde-markdown input {\n font: inherit;\n margin: 0;\n overflow: visible;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n.wmde-markdown [type='button'],\n.wmde-markdown [type='reset'],\n.wmde-markdown [type='submit'] {\n -webkit-appearance: button;\n}\n.wmde-markdown [type='button']::-moz-focus-inner,\n.wmde-markdown [type='reset']::-moz-focus-inner,\n.wmde-markdown [type='submit']::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n.wmde-markdown [type='button']:-moz-focusring,\n.wmde-markdown [type='reset']:-moz-focusring,\n.wmde-markdown [type='submit']:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n.wmde-markdown [type='checkbox'],\n.wmde-markdown [type='radio'] {\n box-sizing: border-box;\n padding: 0;\n}\n.wmde-markdown [type='number']::-webkit-inner-spin-button,\n.wmde-markdown [type='number']::-webkit-outer-spin-button {\n height: auto;\n}\n.wmde-markdown [type='search'] {\n -webkit-appearance: textfield;\n outline-offset: -2px;\n}\n.wmde-markdown [type='search']::-webkit-search-cancel-button,\n.wmde-markdown [type='search']::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n.wmde-markdown ::-webkit-input-placeholder {\n color: inherit;\n opacity: 0.54;\n}\n.wmde-markdown ::-webkit-file-upload-button {\n -webkit-appearance: button;\n font: inherit;\n}\n.wmde-markdown a:hover {\n text-decoration: underline;\n}\n.wmde-markdown hr::before {\n display: table;\n content: '';\n}\n.wmde-markdown hr::after {\n display: table;\n clear: both;\n content: '';\n}\n.wmde-markdown table {\n border-spacing: 0;\n border-collapse: collapse;\n display: block;\n width: -webkit-max-content;\n width: max-content;\n max-width: 100%;\n}\n.wmde-markdown td,\n.wmde-markdown th {\n padding: 0;\n}\n.wmde-markdown details summary {\n cursor: pointer;\n}\n.wmde-markdown details:not([open]) > *:not(summary) {\n display: none !important;\n}\n.wmde-markdown kbd {\n display: inline-block;\n padding: 3px 5px;\n font: 11px ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace;\n line-height: 10px;\n color: var(--color-fg-default);\n vertical-align: middle;\n background-color: var(--color-canvas-subtle);\n border: solid 1px var(--color-neutral-muted);\n border-bottom-color: var(--color-neutral-muted);\n border-radius: 6px;\n box-shadow: inset 0 -1px 0 var(--color-neutral-muted);\n}\n.wmde-markdown h1,\n.wmde-markdown h2,\n.wmde-markdown h3,\n.wmde-markdown h4,\n.wmde-markdown h5,\n.wmde-markdown h6 {\n margin-top: 24px;\n margin-bottom: 16px;\n font-weight: 600;\n line-height: 1.25;\n}\n.wmde-markdown td,\n.wmde-markdown th {\n padding: 0;\n}\n.wmde-markdown details summary {\n cursor: pointer;\n}\n.wmde-markdown details:not([open]) > *:not(summary) {\n display: none !important;\n}\n.wmde-markdown kbd {\n display: inline-block;\n padding: 3px 5px;\n font: 11px ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace;\n line-height: 10px;\n color: var(--color-fg-default);\n vertical-align: middle;\n background-color: var(--color-canvas-subtle);\n border: solid 1px var(--color-neutral-muted);\n border-bottom-color: var(--color-neutral-muted);\n border-radius: 6px;\n box-shadow: inset 0 -1px 0 var(--color-neutral-muted);\n}\n.wmde-markdown h1,\n.wmde-markdown h2,\n.wmde-markdown h3,\n.wmde-markdown h4,\n.wmde-markdown h5,\n.wmde-markdown h6 {\n margin-top: 24px;\n margin-bottom: 16px;\n font-weight: 600;\n line-height: 1.25;\n}\n.wmde-markdown h2 {\n font-weight: 600;\n padding-bottom: 0.3em;\n font-size: 1.5em;\n border-bottom: 1px solid var(--color-border-muted);\n}\n.wmde-markdown h3 {\n font-weight: 600;\n font-size: 1.25em;\n}\n.wmde-markdown h4 {\n font-weight: 600;\n font-size: 1em;\n}\n.wmde-markdown h5 {\n font-weight: 600;\n font-size: 0.875em;\n}\n.wmde-markdown h6 {\n font-weight: 600;\n font-size: 0.85em;\n color: var(--color-fg-muted);\n}\n.wmde-markdown p {\n margin-top: 0;\n margin-bottom: 10px;\n}\n.wmde-markdown blockquote {\n margin: 0;\n padding: 0 1em;\n color: var(--color-fg-muted);\n border-left: 0.25em solid var(--color-border-default);\n}\n.wmde-markdown ul,\n.wmde-markdown ol {\n margin-top: 0;\n margin-bottom: 0;\n padding-left: 2em;\n}\n.wmde-markdown ol ol,\n.wmde-markdown ul ol {\n list-style-type: lower-roman;\n}\n.wmde-markdown ul ul ol,\n.wmde-markdown ul ol ol,\n.wmde-markdown ol ul ol,\n.wmde-markdown ol ol ol {\n list-style-type: lower-alpha;\n}\n.wmde-markdown dd {\n margin-left: 0;\n}\n.wmde-markdown tt,\n.wmde-markdown code {\n font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace;\n font-size: 12px;\n}\n.wmde-markdown pre {\n margin-top: 0;\n margin-bottom: 0;\n font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace;\n font-size: 12px;\n word-wrap: normal;\n}\n.wmde-markdown .octicon {\n display: inline-block;\n overflow: visible !important;\n vertical-align: text-bottom;\n fill: currentColor;\n}\n.wmde-markdown ::-webkit-input-placeholder {\n color: var(--color-fg-subtle);\n opacity: 1;\n}\n.wmde-markdown ::placeholder {\n color: var(--color-fg-subtle);\n opacity: 1;\n}\n.wmde-markdown input::-webkit-outer-spin-button,\n.wmde-markdown input::-webkit-inner-spin-button {\n margin: 0;\n -webkit-appearance: none;\n appearance: none;\n}\n.wmde-markdown [data-catalyst] {\n display: block;\n}\n.wmde-markdown::before {\n display: table;\n content: '';\n}\n.wmde-markdown::after {\n display: table;\n clear: both;\n content: '';\n}\n.wmde-markdown > *:first-child {\n margin-top: 0 !important;\n}\n.wmde-markdown > *:last-child {\n margin-bottom: 0 !important;\n}\n.wmde-markdown a:not([href]) {\n color: inherit;\n text-decoration: none;\n}\n.wmde-markdown .absent {\n color: var(--color-danger-fg);\n}\n.wmde-markdown a.anchor {\n float: left;\n padding-right: 4px;\n margin-left: -20px;\n line-height: 1;\n}\n.wmde-markdown .anchor:focus {\n outline: none;\n}\n.wmde-markdown p,\n.wmde-markdown blockquote,\n.wmde-markdown ul,\n.wmde-markdown ol,\n.wmde-markdown dl,\n.wmde-markdown table,\n.wmde-markdown pre,\n.wmde-markdown details {\n margin-top: 0;\n margin-bottom: 16px;\n}\n.wmde-markdown blockquote > :first-child {\n margin-top: 0;\n}\n.wmde-markdown blockquote > :last-child {\n margin-bottom: 0;\n}\n.wmde-markdown sup > a::before {\n content: '[';\n}\n.wmde-markdown sup > a::after {\n content: ']';\n}\n.wmde-markdown h1 .octicon-link,\n.wmde-markdown h2 .octicon-link,\n.wmde-markdown h3 .octicon-link,\n.wmde-markdown h4 .octicon-link,\n.wmde-markdown h5 .octicon-link,\n.wmde-markdown h6 .octicon-link {\n color: var(--color-fg-default);\n vertical-align: middle;\n visibility: hidden;\n}\n.wmde-markdown h1:hover .anchor,\n.wmde-markdown h2:hover .anchor,\n.wmde-markdown h3:hover .anchor,\n.wmde-markdown h4:hover .anchor,\n.wmde-markdown h5:hover .anchor,\n.wmde-markdown h6:hover .anchor {\n text-decoration: none;\n}\n.wmde-markdown h1:hover .anchor .octicon-link,\n.wmde-markdown h2:hover .anchor .octicon-link,\n.wmde-markdown h3:hover .anchor .octicon-link,\n.wmde-markdown h4:hover .anchor .octicon-link,\n.wmde-markdown h5:hover .anchor .octicon-link,\n.wmde-markdown h6:hover .anchor .octicon-link {\n visibility: visible;\n}\n.wmde-markdown h1 tt,\n.wmde-markdown h1 code,\n.wmde-markdown h2 tt,\n.wmde-markdown h2 code,\n.wmde-markdown h3 tt,\n.wmde-markdown h3 code,\n.wmde-markdown h4 tt,\n.wmde-markdown h4 code,\n.wmde-markdown h5 tt,\n.wmde-markdown h5 code,\n.wmde-markdown h6 tt,\n.wmde-markdown h6 code {\n padding: 0 0.2em;\n font-size: inherit;\n}\n.wmde-markdown ul.no-list,\n.wmde-markdown ol.no-list {\n padding: 0;\n list-style-type: none;\n}\n.wmde-markdown ol[type='1'] {\n list-style-type: decimal;\n}\n.wmde-markdown ol[type='a'] {\n list-style-type: lower-alpha;\n}\n.wmde-markdown ol[type='i'] {\n list-style-type: lower-roman;\n}\n.wmde-markdown div > ol:not([type]) {\n list-style-type: decimal;\n}\n.wmde-markdown ul ul,\n.wmde-markdown ul ol,\n.wmde-markdown ol ol,\n.wmde-markdown ol ul {\n margin-top: 0;\n margin-bottom: 0;\n}\n.wmde-markdown li > p {\n margin-top: 16px;\n}\n.wmde-markdown li + li {\n margin-top: 0.25em;\n}\n.wmde-markdown dl {\n padding: 0;\n}\n.wmde-markdown dl dt {\n padding: 0;\n margin-top: 16px;\n font-size: 1em;\n font-style: italic;\n font-weight: 600;\n}\n.wmde-markdown dl dd {\n padding: 0 16px;\n margin-bottom: 16px;\n}\n.wmde-markdown table th {\n font-weight: 600;\n}\n.wmde-markdown table th,\n.wmde-markdown table td {\n padding: 6px 13px;\n border: 1px solid var(--color-border-default);\n}\n.wmde-markdown table tr {\n background-color: var(--color-canvas-default);\n border-top: 1px solid var(--color-border-muted);\n}\n.wmde-markdown table tr:nth-child(2n) {\n background-color: var(--color-canvas-subtle);\n}\n.wmde-markdown table img {\n background-color: transparent;\n}\n.wmde-markdown img[align='right'] {\n padding-left: 20px;\n}\n.wmde-markdown img[align='left'] {\n padding-right: 20px;\n}\n.wmde-markdown .emoji {\n max-width: none;\n vertical-align: text-top;\n background-color: transparent;\n}\n.wmde-markdown span.frame {\n display: block;\n overflow: hidden;\n}\n.wmde-markdown span.frame > span {\n display: block;\n float: left;\n width: auto;\n padding: 7px;\n margin: 13px 0 0;\n overflow: hidden;\n border: 1px solid var(--color-border-default);\n}\n.wmde-markdown span.frame span img {\n display: block;\n float: left;\n}\n.wmde-markdown span.frame span span {\n display: block;\n padding: 5px 0 0;\n clear: both;\n color: var(--color-fg-default);\n}\n.wmde-markdown span.align-center {\n display: block;\n overflow: hidden;\n clear: both;\n}\n.wmde-markdown span.align-center > span {\n display: block;\n margin: 13px auto 0;\n overflow: hidden;\n text-align: center;\n}\n.wmde-markdown span.align-center span img {\n margin: 0 auto;\n text-align: center;\n}\n.wmde-markdown span.align-right {\n display: block;\n overflow: hidden;\n clear: both;\n}\n.wmde-markdown span.align-right > span {\n display: block;\n margin: 13px 0 0;\n overflow: hidden;\n text-align: right;\n}\n.wmde-markdown span.align-right span img {\n margin: 0;\n text-align: right;\n}\n.wmde-markdown span.float-left {\n display: block;\n float: left;\n margin-right: 13px;\n overflow: hidden;\n}\n.wmde-markdown span.float-left span {\n margin: 13px 0 0;\n}\n.wmde-markdown span.float-right {\n display: block;\n float: right;\n margin-left: 13px;\n overflow: hidden;\n}\n.wmde-markdown span.float-right > span {\n display: block;\n margin: 13px auto 0;\n overflow: hidden;\n text-align: right;\n}\n.wmde-markdown code,\n.wmde-markdown tt {\n padding: 0.2em 0.4em;\n margin: 0;\n font-size: 85%;\n background-color: var(--color-neutral-muted);\n border-radius: 6px;\n}\n.wmde-markdown code br,\n.wmde-markdown tt br {\n display: none;\n}\n.wmde-markdown del code {\n text-decoration: inherit;\n}\n.wmde-markdown pre code {\n font-size: 100%;\n}\n.wmde-markdown pre > code {\n padding: 0;\n margin: 0;\n word-break: normal;\n white-space: pre;\n background: transparent;\n border: 0;\n}\n.wmde-markdown pre {\n font-size: 85%;\n line-height: 1.45;\n background-color: var(--color-canvas-subtle);\n border-radius: 6px;\n}\n.wmde-markdown pre code,\n.wmde-markdown pre tt {\n display: inline;\n max-width: auto;\n padding: 0;\n margin: 0;\n overflow: visible;\n line-height: inherit;\n word-wrap: normal;\n background-color: transparent;\n border: 0;\n}\n.wmde-markdown pre > code {\n padding: 16px;\n overflow: auto;\n display: block;\n}\n.wmde-markdown .csv-data td,\n.wmde-markdown .csv-data th {\n padding: 5px;\n overflow: hidden;\n font-size: 12px;\n line-height: 1;\n text-align: left;\n white-space: nowrap;\n}\n.wmde-markdown .csv-data .blob-num {\n padding: 10px 8px 9px;\n text-align: right;\n background: var(--color-canvas-default);\n border: 0;\n}\n.wmde-markdown .csv-data tr {\n border-top: 0;\n}\n.wmde-markdown .csv-data th {\n font-weight: 600;\n background: var(--color-canvas-subtle);\n border-top: 0;\n}\n.wmde-markdown .footnotes {\n font-size: 12px;\n color: var(--color-fg-muted);\n border-top: 1px solid var(--color-border-default);\n}\n.wmde-markdown .footnotes ol {\n padding-left: 16px;\n}\n.wmde-markdown .footnotes li {\n position: relative;\n}\n.wmde-markdown .footnotes li:target::before {\n position: absolute;\n top: -8px;\n right: -8px;\n bottom: -8px;\n left: -24px;\n pointer-events: none;\n content: '';\n border: 2px solid var(--color-accent-emphasis);\n border-radius: 6px;\n}\n.wmde-markdown .footnotes li:target {\n color: var(--color-fg-default);\n}\n.wmde-markdown .footnotes .data-footnote-backref g-emoji {\n font-family: monospace;\n}\n.wmde-markdown .task-list-item {\n list-style-type: none;\n}\n.wmde-markdown .task-list-item label {\n font-weight: 400;\n}\n.wmde-markdown .task-list-item.enabled label {\n cursor: pointer;\n}\n.wmde-markdown .task-list-item + .wmde-markdown .task-list-item {\n margin-top: 3px;\n}\n.wmde-markdown .task-list-item .handle {\n display: none;\n}\n.wmde-markdown .task-list-item-checkbox,\n.wmde-markdown .contains-task-list input[type='checkbox'] {\n margin: 0 0.2em 0.25em -1.6em;\n vertical-align: middle;\n}\n.wmde-markdown .contains-task-list:dir(rtl) .task-list-item-checkbox,\n.wmde-markdown .contains-task-list:dir(rtl) input[type='checkbox'] {\n margin: 0 -1.6em 0.25em 0.2em;\n}\n.wmde-markdown ::-webkit-calendar-picker-indicator {\n -webkit-filter: invert(50%);\n filter: invert(50%);\n}\n.wmde-markdown pre {\n position: relative;\n}\n.wmde-markdown pre .copied {\n visibility: hidden;\n display: flex;\n position: absolute;\n cursor: pointer;\n color: var(--color-fg-defaul);\n top: 6px;\n right: 6px;\n border-radius: 5px;\n background: var(--color-border-default);\n padding: 6px;\n font-size: 12px;\n transition: all 0.3s;\n}\n.wmde-markdown pre .copied .octicon-copy {\n display: block;\n}\n.wmde-markdown pre .copied .octicon-check {\n display: none;\n}\n.wmde-markdown pre:hover .copied {\n visibility: visible;\n}\n.wmde-markdown pre:hover .copied:hover {\n background: var(--color-prettylights-syntax-entity-tag);\n color: var(--color-canvas-default);\n}\n.wmde-markdown pre:hover .copied:active,\n.wmde-markdown pre .copied.active {\n background: #2e9b33;\n color: var(--color-canvas-default);\n}\n.wmde-markdown pre .active .octicon-copy {\n display: none;\n}\n.wmde-markdown pre .active .octicon-check {\n display: block;\n}\n.highlight-line {\n background-color: var(--color-neutral-muted);\n}\n.code-line.line-number::before {\n display: inline-block;\n width: 1rem;\n text-align: right;\n margin-right: 16px;\n color: var(--color-fg-subtle);\n content: attr(line);\n white-space: nowrap;\n}\n.token.comment,\n.token.prolog,\n.token.doctype,\n.token.cdata {\n color: var(--color-prettylights-syntax-comment);\n}\n.token.namespace {\n opacity: 0.7;\n}\n.token.property,\n.token.tag,\n.token.selector,\n.token.constant,\n.token.symbol,\n.token.deleted {\n color: var(--color-prettylights-syntax-entity-tag);\n}\n.token.maybe-class-name {\n color: var(--color-prettylights-syntax-variable);\n}\n.token.property-access,\n.token.operator,\n.token.boolean,\n.token.number,\n.token.selector .token.class,\n.token.attr-name,\n.token.string,\n.token.char,\n.token.builtin {\n color: var(--color-prettylights-syntax-constant);\n}\n.token.deleted {\n color: var(--color-prettylights-syntax-markup-deleted-text);\n}\n.code-line .token.deleted {\n background-color: var(--color-prettylights-syntax-markup-deleted-bg);\n}\n.token.inserted {\n color: var(--color-prettylights-syntax-markup-inserted-text);\n}\n.code-line .token.inserted {\n background-color: var(--color-prettylights-syntax-markup-inserted-bg);\n}\n.token.variable {\n color: var(--color-prettylights-syntax-constant);\n}\n.token.entity,\n.token.url,\n.language-css .token.string,\n.style .token.string {\n color: var(--color-prettylights-syntax-string);\n}\n.token.color,\n.token.atrule,\n.token.attr-value,\n.token.function,\n.token.class-name {\n color: var(--color-prettylights-syntax-string);\n}\n.token.rule,\n.token.regex,\n.token.important,\n.token.keyword {\n color: var(--color-prettylights-syntax-keyword);\n}\n.token.coord {\n color: var(--color-prettylights-syntax-meta-diff-range);\n}\n.token.important,\n.token.bold {\n font-weight: bold;\n}\n.token.italic {\n font-style: italic;\n}\n.token.entity {\n cursor: help;\n}\n","body,\nhtml {\n font-size: 14px;\n font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, sans-serif, Apple Color Emoji,\n Segoe UI Emoji, Segoe UI Symbol;\n margin: 0;\n}\n\n:global {\n #root {\n min-height: 100%;\n background-color: #f3f3f3;\n }\n}\n\nhtml,\nmain {\n scroll-behavior: smooth;\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/css/main.a778f35e.css","mappings":"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E,aACF,CAKA,2CAFE,UAAW,CADX,aAOF,CAJA,qBAEE,UAEF,CACA,4BACE,sBACF,CACA,2BACE,yBACF,CACA,6BACE,aAAc,CACd,oBACF,CACA,uBACE,4BACF,CACA,wBACE,UAAW,CAGX,aAAc,CADd,iBAAkB,CADlB,iBAGF,CACA,6BACE,YACF,CACA,gKASE,kBAAmB,CADnB,YAEF,CACA,uCACE,YACF,CACA,sCACE,eACF,CACA,4BACE,WACF,CACA,2BACE,WACF,CACA,gMAME,6BAA8B,CAC9B,qBAAsB,CACtB,iBACF,CACA,gMAME,oBACF,CACA,oRAME,kBACF,CACA,wQAaE,iBAAkB,CADlB,cAEF,CACA,oDAGE,oBAAqB,CADrB,SAEF,CACA,4BACE,uBACF,CACA,0BACE,2BACF,CACA,0BACE,2BACF,CACA,kCACE,uBACF,CACA,oFAKE,eAAgB,CADhB,YAEF,CACA,oBACE,eACF,CACA,qBACE,gBACF,CACA,kBACE,SACF,CACA,qBAGE,aAAc,CACd,iBAAkB,CAClB,eAAgB,CAHhB,eAAgB,CADhB,SAKF,CACA,qBAEE,kBAAmB,CADnB,cAEF,CACA,wBACE,eACF,CACA,gDAGE,4CAA6C,CAD7C,gBAEF,CACA,wBACE,4CAA6C,CAC7C,8CACF,CACA,sCACE,2CACF,CACA,yBACE,wBACF,CACA,gCACE,iBACF,CACA,+BACE,kBACF,CACA,sBAGE,wBAA6B,CAF7B,cAAe,CACf,uBAEF,CACA,0BACE,aAAc,CACd,eACF,CACA,+BAOE,4CAA6C,CAN7C,aAAc,CACd,UAAW,CAGX,eAAgB,CAChB,eAAgB,CAFhB,WAAY,CADZ,UAKF,CACA,mCACE,aAAc,CACd,UACF,CACA,oCAGE,UAAW,CACX,6BAA8B,CAH9B,aAAc,CACd,eAGF,CACA,iCAGE,UAAW,CAFX,aAAc,CACd,eAEF,CACA,sCACE,aAAc,CACd,kBAAmB,CACnB,eAAgB,CAChB,iBACF,CACA,0CACE,aAAc,CACd,iBACF,CACA,gCAGE,UAAW,CAFX,aAAc,CACd,eAEF,CACA,qCACE,aAAc,CACd,eAAgB,CAChB,eAAgB,CAChB,gBACF,CACA,yCACE,QAAS,CACT,gBACF,CACA,+BACE,aAAc,CACd,UAAW,CACX,iBAAkB,CAClB,eACF,CACA,oCACE,eACF,CACA,gCACE,aAAc,CACd,WAAY,CACZ,gBAAiB,CACjB,eACF,CACA,qCACE,aAAc,CACd,kBAAmB,CACnB,eAAgB,CAChB,gBACF,CACA,sCAKE,2CAA4C,CAC5C,iBAAkB,CAFlB,aAAc,CADd,QAAS,CADT,iBAKF,CACA,4CAEE,YACF,CACA,wBACE,uBACF,CACA,wBACE,cACF,CACA,wBAKE,gBAAuB,CACvB,QAAS,CAJT,QAAS,CADT,SAAU,CAGV,eAAgB,CADhB,iBAIF,CACA,mBAGE,2CAA4C,CAC5C,iBAAkB,CAHlB,aAAc,CACd,gBAGF,CACA,8CAQE,gBAAiB,CACjB,wBAA6B,CAC7B,QAAS,CART,cAAe,CAKf,mBAAoB,CAFpB,QAAS,CAFT,cAAe,CAGf,gBAAiB,CAFjB,SAOF,CACA,wBAGE,aAAc,CADd,aAAc,CADd,YAGF,CACA,wDAIE,cAAe,CACf,aAAc,CAFd,eAAgB,CADhB,WAAY,CAIZ,eAAgB,CAChB,kBACF,CACA,mCAGE,sCAAuC,CACvC,QAAS,CAHT,oBAAqB,CACrB,gBAGF,CACA,4BACE,YACF,CACA,4BAEE,qCAAsC,CACtC,YAAa,CAFb,eAGF,CACA,0BAGE,gDAAiD,CADjD,2BAA4B,CAD5B,cAGF,CACA,6BACE,iBACF,CACA,6BACE,iBACF,CACA,2CAQE,6CAA8C,CAC9C,iBAAkB,CALlB,WAAY,CAGZ,UAAW,CAFX,UAAW,CACX,mBAAoB,CALpB,iBAAkB,CAElB,UAAW,CADX,QAQF,CACA,oCACE,6BACF,CACA,yDACE,qBACF,CACA,+BACE,oBACF,CACA,qCACE,eACF,CACA,6CACE,cACF,CACA,8DACE,cACF,CACA,uCACE,YACF,CACA,gGAEE,0BAA6B,CAC7B,qBACF,CACA,sIAEE,0BACF,CACA,mDACE,kBACF,CACA,mBACE,iBACF,CACA,2BASE,sCAAuC,CADvC,iBAAkB,CAHlB,4BAA6B,CAD7B,cAAe,CAFf,YAAa,CASb,cAAe,CADf,WAAY,CAPZ,iBAAkB,CAIlB,SAAU,CADV,OAAQ,CAMR,kBAAoB,CAXpB,iBAYF,CACA,yCACE,aACF,CACA,0CACE,YACF,CACA,iCACE,kBACF,CACA,uCACE,sDAAuD,CACvD,iCACF,CACA,0EAEE,kBAAmB,CACnB,iCACF,CACA,yCACE,YACF,CACA,0CACE,aACF,CACA,gBACE,2CACF,CACA,8BAKE,4BAA6B,CAC7B,kBAAmB,CALnB,oBAAqB,CAGrB,iBAAkB,CADlB,gBAAiB,CAIjB,kBAAmB,CALnB,UAMF,CACA,yDAIE,8CACF,CACA,iBACE,UACF,CACA,wFAME,iDACF,CACA,wBACE,+CACF,CACA,2JASE,+CACF,CACA,eACE,0DACF,CACA,0BACE,mEACF,CACA,gBACE,2DACF,CACA,2BACE,oEACF,CACA,gBACE,+CACF,CAOA,yJAKE,6CACF,CACA,yDAIE,8CACF,CACA,aACE,sDACF,CACA,6BAEE,eACF,CACA,cACE,iBACF,CACA,cACE,WACF,CCj/BA,UAGE,kIADA,cAAe,CAGf,QAAF,CAGA,cAGI,wBAAyB,CADzB,eADJ,CAMA,UAEE,sBAJF","sources":["../../node_modules/react-code-preview-layout/esm/styles.css","../../node_modules/@uiw/react-markdown-preview/esm/styles/markdown.css","index.less"],"sourcesContent":[".code-preview-layout[data-color-mode*='light'], [data-color-mode*='light'], body[data-color-mode*='light'] {\n --color-canvas-subtle: #f6f8fa;\n --color-border-muted: hsl(210, 18%, 87%);\n}\n.code-preview-layout[data-color-mode*='dark'], [data-color-mode*='dark'], body[data-color-mode*='dark'] {\n --color-canvas-subtle: #161b22;\n --color-border-muted: #21262d;\n}\n\n.w-rcpl.w-bordered {\n border: 1px solid var(--color-border-muted);\n}\n.w-rcpl.w-bordered > .w-rcpl-toolbar {\n border-top: 1px solid var(--color-border-muted);\n}\n.w-rcpl.w-bordered > .w-rcpl-code:not(.w-hidden) {\n border-top: 1px dashed var(--color-border-muted);\n}\n\n.w-rcpl {\n border-radius: 5px;\n background-color: var(--color-canvas-subtle);\n}\n.w-rcpl-preview:not(:last-child) {\n border-radius: 5px 5px 0 0;\n}\n.w-rcpl-code.w-hidden {\n height: 0;\n padding: 0;\n overflow: hidden;\n}\n.w-rcpl-code {\n transition: height cubic-bezier(0.360, 0.000, 0.660, -0.560);;\n height: auto;\n overflow: auto;\n border-top-left-radius: 0px;\n border-top-right-radius: 0px;\n}\n.w-rcpl-code > * {\n padding: 0 !important;\n margin: 0 !important;\n}\n.w-disable-checkered > .w-rcpl-preview {\n background-image: none;\n}\n.w-rcpl-preview {\n background: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cpattern id='a' width='16' height='16' patternUnits='userSpaceOnUse'%3E%3Cpath fill='rgba(0, 0, 0, 0.06)' d='M0 0h8v8H0zm8 8h8v8H8z'/%3E%3C/pattern%3E%3Crect fill='url(%23a)' width='100%25' height='100%25'/%3E%3C/svg%3E\")\n}\n.w-rcpl-preview, .w-rcpl-code {\n padding: 15px;\n}\n.w-rcpl-extra, .w-rcpl-title {\n display: flex;\n align-items: center;\n}\n.w-rcpl-toolbar button svg {\n opacity: 0.37;\n display: block;\n height: 18px;\n transition: opacity 0.3s;\n}\n.w-rcpl-toolbar button svg:hover {\n opacity: 1;\n}\n.w-rcpl-toolbar button {\n color: currentColor;\n position: relative;\n background-color: transparent;\n display: inline-block;\n height: inherit;\n padding: 3px 4px;\n border: 0;\n box-sizing: border-box;\n cursor: pointer;\n outline: none;\n transition: opacity .2s, background .2s;\n}\n.w-rcpl-toolbar {\n display: flex;\n justify-content: space-between;\n padding: 5px 5px;\n padding-left: 8px;\n}","@media (prefers-color-scheme: dark) {\n .wmde-markdown,\n .wmde-markdown-var {\n color-scheme: dark;\n --color-prettylights-syntax-comment: #8b949e;\n --color-prettylights-syntax-constant: #79c0ff;\n --color-prettylights-syntax-entity: #d2a8ff;\n --color-prettylights-syntax-storage-modifier-import: #c9d1d9;\n --color-prettylights-syntax-entity-tag: #7ee787;\n --color-prettylights-syntax-keyword: #ff7b72;\n --color-prettylights-syntax-string: #a5d6ff;\n --color-prettylights-syntax-variable: #ffa657;\n --color-prettylights-syntax-brackethighlighter-unmatched: #f85149;\n --color-prettylights-syntax-invalid-illegal-text: #f0f6fc;\n --color-prettylights-syntax-invalid-illegal-bg: #8e1519;\n --color-prettylights-syntax-carriage-return-text: #f0f6fc;\n --color-prettylights-syntax-carriage-return-bg: #b62324;\n --color-prettylights-syntax-string-regexp: #7ee787;\n --color-prettylights-syntax-markup-list: #f2cc60;\n --color-prettylights-syntax-markup-heading: #1f6feb;\n --color-prettylights-syntax-markup-italic: #c9d1d9;\n --color-prettylights-syntax-markup-bold: #c9d1d9;\n --color-prettylights-syntax-markup-deleted-text: #ffdcd7;\n --color-prettylights-syntax-markup-deleted-bg: #67060c;\n --color-prettylights-syntax-markup-inserted-text: #aff5b4;\n --color-prettylights-syntax-markup-inserted-bg: #033a16;\n --color-prettylights-syntax-markup-changed-text: #ffdfb6;\n --color-prettylights-syntax-markup-changed-bg: #5a1e02;\n --color-prettylights-syntax-markup-ignored-text: #c9d1d9;\n --color-prettylights-syntax-markup-ignored-bg: #1158c7;\n --color-prettylights-syntax-meta-diff-range: #d2a8ff;\n --color-prettylights-syntax-brackethighlighter-angle: #8b949e;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;\n --color-prettylights-syntax-constant-other-reference-link: #a5d6ff;\n --color-fg-default: #c9d1d9;\n --color-fg-muted: #8b949e;\n --color-fg-subtle: #484f58;\n --color-canvas-default: #0d1117;\n --color-canvas-subtle: #161b22;\n --color-border-default: #30363d;\n --color-border-muted: #21262d;\n --color-neutral-muted: rgba(110, 118, 129, 0.4);\n --color-accent-fg: #58a6ff;\n --color-accent-emphasis: #1f6feb;\n --color-attention-subtle: rgba(187, 128, 9, 0.15);\n --color-danger-fg: #f85149;\n }\n}\n@media (prefers-color-scheme: light) {\n .wmde-markdown,\n .wmde-markdown-var {\n color-scheme: light;\n --color-prettylights-syntax-comment: #6e7781;\n --color-prettylights-syntax-constant: #0550ae;\n --color-prettylights-syntax-entity: #8250df;\n --color-prettylights-syntax-storage-modifier-import: #24292f;\n --color-prettylights-syntax-entity-tag: #116329;\n --color-prettylights-syntax-keyword: #cf222e;\n --color-prettylights-syntax-string: #0a3069;\n --color-prettylights-syntax-variable: #953800;\n --color-prettylights-syntax-brackethighlighter-unmatched: #82071e;\n --color-prettylights-syntax-invalid-illegal-text: #f6f8fa;\n --color-prettylights-syntax-invalid-illegal-bg: #82071e;\n --color-prettylights-syntax-carriage-return-text: #f6f8fa;\n --color-prettylights-syntax-carriage-return-bg: #cf222e;\n --color-prettylights-syntax-string-regexp: #116329;\n --color-prettylights-syntax-markup-list: #3b2300;\n --color-prettylights-syntax-markup-heading: #0550ae;\n --color-prettylights-syntax-markup-italic: #24292f;\n --color-prettylights-syntax-markup-bold: #24292f;\n --color-prettylights-syntax-markup-deleted-text: #82071e;\n --color-prettylights-syntax-markup-deleted-bg: #ffebe9;\n --color-prettylights-syntax-markup-inserted-text: #116329;\n --color-prettylights-syntax-markup-inserted-bg: #dafbe1;\n --color-prettylights-syntax-markup-changed-text: #953800;\n --color-prettylights-syntax-markup-changed-bg: #ffd8b5;\n --color-prettylights-syntax-markup-ignored-text: #eaeef2;\n --color-prettylights-syntax-markup-ignored-bg: #0550ae;\n --color-prettylights-syntax-meta-diff-range: #8250df;\n --color-prettylights-syntax-brackethighlighter-angle: #57606a;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;\n --color-prettylights-syntax-constant-other-reference-link: #0a3069;\n --color-fg-default: #24292f;\n --color-fg-muted: #57606a;\n --color-fg-subtle: #6e7781;\n --color-canvas-default: #ffffff;\n --color-canvas-subtle: #f6f8fa;\n --color-border-default: #d0d7de;\n --color-border-muted: hsl(210, 18%, 87%);\n --color-neutral-muted: rgba(175, 184, 193, 0.2);\n --color-accent-fg: #0969da;\n --color-accent-emphasis: #0969da;\n --color-attention-subtle: #fff8c5;\n --color-danger-fg: #cf222e;\n }\n}\n[data-color-mode*='dark'] .wmde-markdown,\n[data-color-mode*='dark'] .wmde-markdown-var,\n.wmde-markdown-var[data-color-mode*='dark'],\n.wmde-markdown[data-color-mode*='dark'],\nbody[data-color-mode*='dark'] {\n color-scheme: dark;\n --color-prettylights-syntax-comment: #8b949e;\n --color-prettylights-syntax-constant: #79c0ff;\n --color-prettylights-syntax-entity: #d2a8ff;\n --color-prettylights-syntax-storage-modifier-import: #c9d1d9;\n --color-prettylights-syntax-entity-tag: #7ee787;\n --color-prettylights-syntax-keyword: #ff7b72;\n --color-prettylights-syntax-string: #a5d6ff;\n --color-prettylights-syntax-variable: #ffa657;\n --color-prettylights-syntax-brackethighlighter-unmatched: #f85149;\n --color-prettylights-syntax-invalid-illegal-text: #f0f6fc;\n --color-prettylights-syntax-invalid-illegal-bg: #8e1519;\n --color-prettylights-syntax-carriage-return-text: #f0f6fc;\n --color-prettylights-syntax-carriage-return-bg: #b62324;\n --color-prettylights-syntax-string-regexp: #7ee787;\n --color-prettylights-syntax-markup-list: #f2cc60;\n --color-prettylights-syntax-markup-heading: #1f6feb;\n --color-prettylights-syntax-markup-italic: #c9d1d9;\n --color-prettylights-syntax-markup-bold: #c9d1d9;\n --color-prettylights-syntax-markup-deleted-text: #ffdcd7;\n --color-prettylights-syntax-markup-deleted-bg: #67060c;\n --color-prettylights-syntax-markup-inserted-text: #aff5b4;\n --color-prettylights-syntax-markup-inserted-bg: #033a16;\n --color-prettylights-syntax-markup-changed-text: #ffdfb6;\n --color-prettylights-syntax-markup-changed-bg: #5a1e02;\n --color-prettylights-syntax-markup-ignored-text: #c9d1d9;\n --color-prettylights-syntax-markup-ignored-bg: #1158c7;\n --color-prettylights-syntax-meta-diff-range: #d2a8ff;\n --color-prettylights-syntax-brackethighlighter-angle: #8b949e;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;\n --color-prettylights-syntax-constant-other-reference-link: #a5d6ff;\n --color-fg-default: #c9d1d9;\n --color-fg-muted: #8b949e;\n --color-fg-subtle: #484f58;\n --color-canvas-default: #0d1117;\n --color-canvas-subtle: #161b22;\n --color-border-default: #30363d;\n --color-border-muted: #21262d;\n --color-neutral-muted: rgba(110, 118, 129, 0.4);\n --color-accent-fg: #58a6ff;\n --color-accent-emphasis: #1f6feb;\n --color-attention-subtle: rgba(187, 128, 9, 0.15);\n --color-danger-fg: #f85149;\n}\n[data-color-mode*='light'] .wmde-markdown,\n[data-color-mode*='light'] .wmde-markdown-var,\n.wmde-markdown-var[data-color-mode*='light'],\n.wmde-markdown[data-color-mode*='light'],\nbody[data-color-mode*='light'] {\n color-scheme: light;\n --color-prettylights-syntax-comment: #6e7781;\n --color-prettylights-syntax-constant: #0550ae;\n --color-prettylights-syntax-entity: #8250df;\n --color-prettylights-syntax-storage-modifier-import: #24292f;\n --color-prettylights-syntax-entity-tag: #116329;\n --color-prettylights-syntax-keyword: #cf222e;\n --color-prettylights-syntax-string: #0a3069;\n --color-prettylights-syntax-variable: #953800;\n --color-prettylights-syntax-brackethighlighter-unmatched: #82071e;\n --color-prettylights-syntax-invalid-illegal-text: #f6f8fa;\n --color-prettylights-syntax-invalid-illegal-bg: #82071e;\n --color-prettylights-syntax-carriage-return-text: #f6f8fa;\n --color-prettylights-syntax-carriage-return-bg: #cf222e;\n --color-prettylights-syntax-string-regexp: #116329;\n --color-prettylights-syntax-markup-list: #3b2300;\n --color-prettylights-syntax-markup-heading: #0550ae;\n --color-prettylights-syntax-markup-italic: #24292f;\n --color-prettylights-syntax-markup-bold: #24292f;\n --color-prettylights-syntax-markup-deleted-text: #82071e;\n --color-prettylights-syntax-markup-deleted-bg: #ffebe9;\n --color-prettylights-syntax-markup-inserted-text: #116329;\n --color-prettylights-syntax-markup-inserted-bg: #dafbe1;\n --color-prettylights-syntax-markup-changed-text: #953800;\n --color-prettylights-syntax-markup-changed-bg: #ffd8b5;\n --color-prettylights-syntax-markup-ignored-text: #eaeef2;\n --color-prettylights-syntax-markup-ignored-bg: #0550ae;\n --color-prettylights-syntax-meta-diff-range: #8250df;\n --color-prettylights-syntax-brackethighlighter-angle: #57606a;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;\n --color-prettylights-syntax-constant-other-reference-link: #0a3069;\n --color-fg-default: #24292f;\n --color-fg-muted: #57606a;\n --color-fg-subtle: #6e7781;\n --color-canvas-default: #ffffff;\n --color-canvas-subtle: #f6f8fa;\n --color-border-default: #d0d7de;\n --color-border-muted: hsl(210, 18%, 87%);\n --color-neutral-muted: rgba(175, 184, 193, 0.2);\n --color-accent-fg: #0969da;\n --color-accent-emphasis: #0969da;\n --color-attention-subtle: #fff8c5;\n --color-danger-fg: #cf222e;\n}\n.wmde-markdown {\n -webkit-text-size-adjust: 100%;\n font-family: -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';\n font-size: 16px;\n line-height: 1.5;\n word-wrap: break-word;\n color: var(--color-fg-default);\n background-color: var(--color-canvas-default);\n}\n.wmde-markdown details,\n.wmde-markdown figcaption,\n.wmde-markdown figure {\n display: block;\n}\n.wmde-markdown summary {\n display: list-item;\n}\n.wmde-markdown [hidden] {\n display: none !important;\n}\n.wmde-markdown a {\n background-color: transparent;\n color: var(--color-accent-fg);\n text-decoration: none;\n}\n.wmde-markdown a:active,\n.wmde-markdown a:hover {\n outline-width: 0;\n}\n.wmde-markdown abbr[title] {\n border-bottom: none;\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n}\n.wmde-markdown b,\n.wmde-markdown strong {\n font-weight: 600;\n}\n.wmde-markdown dfn {\n font-style: italic;\n}\n.wmde-markdown h1 {\n margin: 0.67em 0;\n font-weight: 600;\n padding-bottom: 0.3em;\n font-size: 2em;\n border-bottom: 1px solid var(--color-border-muted);\n}\n.wmde-markdown mark {\n background-color: var(--color-attention-subtle);\n color: var(--color-text-primary);\n}\n.wmde-markdown small {\n font-size: 90%;\n}\n.wmde-markdown sub,\n.wmde-markdown sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n.wmde-markdown sub {\n bottom: -0.25em;\n}\n.wmde-markdown sup {\n top: -0.5em;\n}\n.wmde-markdown img {\n display: inline-block;\n border-style: none;\n max-width: 100%;\n box-sizing: content-box;\n background-color: var(--color-canvas-default);\n}\n.wmde-markdown code,\n.wmde-markdown kbd,\n.wmde-markdown pre,\n.wmde-markdown samp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n.wmde-markdown figure {\n margin: 1em 40px;\n}\n.wmde-markdown hr {\n box-sizing: content-box;\n overflow: hidden;\n background: transparent;\n border: 0;\n border-bottom: 1px solid var(--color-border-muted);\n height: 0.25em;\n padding: 0;\n margin: 24px 0;\n background-color: var(--color-border-default);\n}\n.wmde-markdown input {\n font: inherit;\n margin: 0;\n overflow: visible;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n.wmde-markdown [type='button'],\n.wmde-markdown [type='reset'],\n.wmde-markdown [type='submit'] {\n -webkit-appearance: button;\n}\n.wmde-markdown [type='button']::-moz-focus-inner,\n.wmde-markdown [type='reset']::-moz-focus-inner,\n.wmde-markdown [type='submit']::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n.wmde-markdown [type='button']:-moz-focusring,\n.wmde-markdown [type='reset']:-moz-focusring,\n.wmde-markdown [type='submit']:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n.wmde-markdown [type='checkbox'],\n.wmde-markdown [type='radio'] {\n box-sizing: border-box;\n padding: 0;\n}\n.wmde-markdown [type='number']::-webkit-inner-spin-button,\n.wmde-markdown [type='number']::-webkit-outer-spin-button {\n height: auto;\n}\n.wmde-markdown [type='search'] {\n -webkit-appearance: textfield;\n outline-offset: -2px;\n}\n.wmde-markdown [type='search']::-webkit-search-cancel-button,\n.wmde-markdown [type='search']::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n.wmde-markdown ::-webkit-input-placeholder {\n color: inherit;\n opacity: 0.54;\n}\n.wmde-markdown ::-webkit-file-upload-button {\n -webkit-appearance: button;\n font: inherit;\n}\n.wmde-markdown a:hover {\n text-decoration: underline;\n}\n.wmde-markdown hr::before {\n display: table;\n content: '';\n}\n.wmde-markdown hr::after {\n display: table;\n clear: both;\n content: '';\n}\n.wmde-markdown table {\n border-spacing: 0;\n border-collapse: collapse;\n display: block;\n width: -webkit-max-content;\n width: max-content;\n max-width: 100%;\n}\n.wmde-markdown td,\n.wmde-markdown th {\n padding: 0;\n}\n.wmde-markdown details summary {\n cursor: pointer;\n}\n.wmde-markdown details:not([open]) > *:not(summary) {\n display: none !important;\n}\n.wmde-markdown kbd {\n display: inline-block;\n padding: 3px 5px;\n font: 11px ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace;\n line-height: 10px;\n color: var(--color-fg-default);\n vertical-align: middle;\n background-color: var(--color-canvas-subtle);\n border: solid 1px var(--color-neutral-muted);\n border-bottom-color: var(--color-neutral-muted);\n border-radius: 6px;\n box-shadow: inset 0 -1px 0 var(--color-neutral-muted);\n}\n.wmde-markdown h1,\n.wmde-markdown h2,\n.wmde-markdown h3,\n.wmde-markdown h4,\n.wmde-markdown h5,\n.wmde-markdown h6 {\n margin-top: 24px;\n margin-bottom: 16px;\n font-weight: 600;\n line-height: 1.25;\n}\n.wmde-markdown td,\n.wmde-markdown th {\n padding: 0;\n}\n.wmde-markdown details summary {\n cursor: pointer;\n}\n.wmde-markdown details:not([open]) > *:not(summary) {\n display: none !important;\n}\n.wmde-markdown kbd {\n display: inline-block;\n padding: 3px 5px;\n font: 11px ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace;\n line-height: 10px;\n color: var(--color-fg-default);\n vertical-align: middle;\n background-color: var(--color-canvas-subtle);\n border: solid 1px var(--color-neutral-muted);\n border-bottom-color: var(--color-neutral-muted);\n border-radius: 6px;\n box-shadow: inset 0 -1px 0 var(--color-neutral-muted);\n}\n.wmde-markdown h1,\n.wmde-markdown h2,\n.wmde-markdown h3,\n.wmde-markdown h4,\n.wmde-markdown h5,\n.wmde-markdown h6 {\n margin-top: 24px;\n margin-bottom: 16px;\n font-weight: 600;\n line-height: 1.25;\n}\n.wmde-markdown h2 {\n font-weight: 600;\n padding-bottom: 0.3em;\n font-size: 1.5em;\n border-bottom: 1px solid var(--color-border-muted);\n}\n.wmde-markdown h3 {\n font-weight: 600;\n font-size: 1.25em;\n}\n.wmde-markdown h4 {\n font-weight: 600;\n font-size: 1em;\n}\n.wmde-markdown h5 {\n font-weight: 600;\n font-size: 0.875em;\n}\n.wmde-markdown h6 {\n font-weight: 600;\n font-size: 0.85em;\n color: var(--color-fg-muted);\n}\n.wmde-markdown p {\n margin-top: 0;\n margin-bottom: 10px;\n}\n.wmde-markdown blockquote {\n margin: 0;\n padding: 0 1em;\n color: var(--color-fg-muted);\n border-left: 0.25em solid var(--color-border-default);\n}\n.wmde-markdown ul,\n.wmde-markdown ol {\n margin-top: 0;\n margin-bottom: 0;\n padding-left: 2em;\n}\n.wmde-markdown ol ol,\n.wmde-markdown ul ol {\n list-style-type: lower-roman;\n}\n.wmde-markdown ul ul ol,\n.wmde-markdown ul ol ol,\n.wmde-markdown ol ul ol,\n.wmde-markdown ol ol ol {\n list-style-type: lower-alpha;\n}\n.wmde-markdown dd {\n margin-left: 0;\n}\n.wmde-markdown tt,\n.wmde-markdown code {\n font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace;\n font-size: 12px;\n}\n.wmde-markdown pre {\n margin-top: 0;\n margin-bottom: 0;\n font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace;\n font-size: 12px;\n word-wrap: normal;\n}\n.wmde-markdown .octicon {\n display: inline-block;\n overflow: visible !important;\n vertical-align: text-bottom;\n fill: currentColor;\n}\n.wmde-markdown ::placeholder {\n color: var(--color-fg-subtle);\n opacity: 1;\n}\n.wmde-markdown input::-webkit-outer-spin-button,\n.wmde-markdown input::-webkit-inner-spin-button {\n margin: 0;\n -webkit-appearance: none;\n appearance: none;\n}\n.wmde-markdown [data-catalyst] {\n display: block;\n}\n.wmde-markdown::before {\n display: table;\n content: '';\n}\n.wmde-markdown::after {\n display: table;\n clear: both;\n content: '';\n}\n.wmde-markdown > *:first-child {\n margin-top: 0 !important;\n}\n.wmde-markdown > *:last-child {\n margin-bottom: 0 !important;\n}\n.wmde-markdown a:not([href]) {\n color: inherit;\n text-decoration: none;\n}\n.wmde-markdown .absent {\n color: var(--color-danger-fg);\n}\n.wmde-markdown a.anchor {\n float: left;\n padding-right: 4px;\n margin-left: -20px;\n line-height: 1;\n}\n.wmde-markdown .anchor:focus {\n outline: none;\n}\n.wmde-markdown p,\n.wmde-markdown blockquote,\n.wmde-markdown ul,\n.wmde-markdown ol,\n.wmde-markdown dl,\n.wmde-markdown table,\n.wmde-markdown pre,\n.wmde-markdown details {\n margin-top: 0;\n margin-bottom: 16px;\n}\n.wmde-markdown blockquote > :first-child {\n margin-top: 0;\n}\n.wmde-markdown blockquote > :last-child {\n margin-bottom: 0;\n}\n.wmde-markdown sup > a::before {\n content: '[';\n}\n.wmde-markdown sup > a::after {\n content: ']';\n}\n.wmde-markdown h1 .octicon-link,\n.wmde-markdown h2 .octicon-link,\n.wmde-markdown h3 .octicon-link,\n.wmde-markdown h4 .octicon-link,\n.wmde-markdown h5 .octicon-link,\n.wmde-markdown h6 .octicon-link {\n color: var(--color-fg-default);\n vertical-align: middle;\n visibility: hidden;\n}\n.wmde-markdown h1:hover .anchor,\n.wmde-markdown h2:hover .anchor,\n.wmde-markdown h3:hover .anchor,\n.wmde-markdown h4:hover .anchor,\n.wmde-markdown h5:hover .anchor,\n.wmde-markdown h6:hover .anchor {\n text-decoration: none;\n}\n.wmde-markdown h1:hover .anchor .octicon-link,\n.wmde-markdown h2:hover .anchor .octicon-link,\n.wmde-markdown h3:hover .anchor .octicon-link,\n.wmde-markdown h4:hover .anchor .octicon-link,\n.wmde-markdown h5:hover .anchor .octicon-link,\n.wmde-markdown h6:hover .anchor .octicon-link {\n visibility: visible;\n}\n.wmde-markdown h1 tt,\n.wmde-markdown h1 code,\n.wmde-markdown h2 tt,\n.wmde-markdown h2 code,\n.wmde-markdown h3 tt,\n.wmde-markdown h3 code,\n.wmde-markdown h4 tt,\n.wmde-markdown h4 code,\n.wmde-markdown h5 tt,\n.wmde-markdown h5 code,\n.wmde-markdown h6 tt,\n.wmde-markdown h6 code {\n padding: 0 0.2em;\n font-size: inherit;\n}\n.wmde-markdown ul.no-list,\n.wmde-markdown ol.no-list {\n padding: 0;\n list-style-type: none;\n}\n.wmde-markdown ol[type='1'] {\n list-style-type: decimal;\n}\n.wmde-markdown ol[type='a'] {\n list-style-type: lower-alpha;\n}\n.wmde-markdown ol[type='i'] {\n list-style-type: lower-roman;\n}\n.wmde-markdown div > ol:not([type]) {\n list-style-type: decimal;\n}\n.wmde-markdown ul ul,\n.wmde-markdown ul ol,\n.wmde-markdown ol ol,\n.wmde-markdown ol ul {\n margin-top: 0;\n margin-bottom: 0;\n}\n.wmde-markdown li > p {\n margin-top: 16px;\n}\n.wmde-markdown li + li {\n margin-top: 0.25em;\n}\n.wmde-markdown dl {\n padding: 0;\n}\n.wmde-markdown dl dt {\n padding: 0;\n margin-top: 16px;\n font-size: 1em;\n font-style: italic;\n font-weight: 600;\n}\n.wmde-markdown dl dd {\n padding: 0 16px;\n margin-bottom: 16px;\n}\n.wmde-markdown table th {\n font-weight: 600;\n}\n.wmde-markdown table th,\n.wmde-markdown table td {\n padding: 6px 13px;\n border: 1px solid var(--color-border-default);\n}\n.wmde-markdown table tr {\n background-color: var(--color-canvas-default);\n border-top: 1px solid var(--color-border-muted);\n}\n.wmde-markdown table tr:nth-child(2n) {\n background-color: var(--color-canvas-subtle);\n}\n.wmde-markdown table img {\n background-color: transparent;\n}\n.wmde-markdown img[align='right'] {\n padding-left: 20px;\n}\n.wmde-markdown img[align='left'] {\n padding-right: 20px;\n}\n.wmde-markdown .emoji {\n max-width: none;\n vertical-align: text-top;\n background-color: transparent;\n}\n.wmde-markdown span.frame {\n display: block;\n overflow: hidden;\n}\n.wmde-markdown span.frame > span {\n display: block;\n float: left;\n width: auto;\n padding: 7px;\n margin: 13px 0 0;\n overflow: hidden;\n border: 1px solid var(--color-border-default);\n}\n.wmde-markdown span.frame span img {\n display: block;\n float: left;\n}\n.wmde-markdown span.frame span span {\n display: block;\n padding: 5px 0 0;\n clear: both;\n color: var(--color-fg-default);\n}\n.wmde-markdown span.align-center {\n display: block;\n overflow: hidden;\n clear: both;\n}\n.wmde-markdown span.align-center > span {\n display: block;\n margin: 13px auto 0;\n overflow: hidden;\n text-align: center;\n}\n.wmde-markdown span.align-center span img {\n margin: 0 auto;\n text-align: center;\n}\n.wmde-markdown span.align-right {\n display: block;\n overflow: hidden;\n clear: both;\n}\n.wmde-markdown span.align-right > span {\n display: block;\n margin: 13px 0 0;\n overflow: hidden;\n text-align: right;\n}\n.wmde-markdown span.align-right span img {\n margin: 0;\n text-align: right;\n}\n.wmde-markdown span.float-left {\n display: block;\n float: left;\n margin-right: 13px;\n overflow: hidden;\n}\n.wmde-markdown span.float-left span {\n margin: 13px 0 0;\n}\n.wmde-markdown span.float-right {\n display: block;\n float: right;\n margin-left: 13px;\n overflow: hidden;\n}\n.wmde-markdown span.float-right > span {\n display: block;\n margin: 13px auto 0;\n overflow: hidden;\n text-align: right;\n}\n.wmde-markdown code,\n.wmde-markdown tt {\n padding: 0.2em 0.4em;\n margin: 0;\n font-size: 85%;\n background-color: var(--color-neutral-muted);\n border-radius: 6px;\n}\n.wmde-markdown code br,\n.wmde-markdown tt br {\n display: none;\n}\n.wmde-markdown del code {\n text-decoration: inherit;\n}\n.wmde-markdown pre code {\n font-size: 100%;\n}\n.wmde-markdown pre > code {\n padding: 0;\n margin: 0;\n word-break: normal;\n white-space: pre;\n background: transparent;\n border: 0;\n}\n.wmde-markdown pre {\n font-size: 85%;\n line-height: 1.45;\n background-color: var(--color-canvas-subtle);\n border-radius: 6px;\n}\n.wmde-markdown pre code,\n.wmde-markdown pre tt {\n display: inline;\n max-width: auto;\n padding: 0;\n margin: 0;\n overflow: visible;\n line-height: inherit;\n word-wrap: normal;\n background-color: transparent;\n border: 0;\n}\n.wmde-markdown pre > code {\n padding: 16px;\n overflow: auto;\n display: block;\n}\n.wmde-markdown .csv-data td,\n.wmde-markdown .csv-data th {\n padding: 5px;\n overflow: hidden;\n font-size: 12px;\n line-height: 1;\n text-align: left;\n white-space: nowrap;\n}\n.wmde-markdown .csv-data .blob-num {\n padding: 10px 8px 9px;\n text-align: right;\n background: var(--color-canvas-default);\n border: 0;\n}\n.wmde-markdown .csv-data tr {\n border-top: 0;\n}\n.wmde-markdown .csv-data th {\n font-weight: 600;\n background: var(--color-canvas-subtle);\n border-top: 0;\n}\n.wmde-markdown .footnotes {\n font-size: 12px;\n color: var(--color-fg-muted);\n border-top: 1px solid var(--color-border-default);\n}\n.wmde-markdown .footnotes ol {\n padding-left: 16px;\n}\n.wmde-markdown .footnotes li {\n position: relative;\n}\n.wmde-markdown .footnotes li:target::before {\n position: absolute;\n top: -8px;\n right: -8px;\n bottom: -8px;\n left: -24px;\n pointer-events: none;\n content: '';\n border: 2px solid var(--color-accent-emphasis);\n border-radius: 6px;\n}\n.wmde-markdown .footnotes li:target {\n color: var(--color-fg-default);\n}\n.wmde-markdown .footnotes .data-footnote-backref g-emoji {\n font-family: monospace;\n}\n.wmde-markdown .task-list-item {\n list-style-type: none;\n}\n.wmde-markdown .task-list-item label {\n font-weight: 400;\n}\n.wmde-markdown .task-list-item.enabled label {\n cursor: pointer;\n}\n.wmde-markdown .task-list-item + .wmde-markdown .task-list-item {\n margin-top: 3px;\n}\n.wmde-markdown .task-list-item .handle {\n display: none;\n}\n.wmde-markdown .task-list-item-checkbox,\n.wmde-markdown .contains-task-list input[type='checkbox'] {\n margin: 0 0.2em 0.25em -1.6em;\n vertical-align: middle;\n}\n.wmde-markdown .contains-task-list:dir(rtl) .task-list-item-checkbox,\n.wmde-markdown .contains-task-list:dir(rtl) input[type='checkbox'] {\n margin: 0 -1.6em 0.25em 0.2em;\n}\n.wmde-markdown ::-webkit-calendar-picker-indicator {\n filter: invert(50%);\n}\n.wmde-markdown pre {\n position: relative;\n}\n.wmde-markdown pre .copied {\n visibility: hidden;\n display: flex;\n position: absolute;\n cursor: pointer;\n color: var(--color-fg-defaul);\n top: 6px;\n right: 6px;\n border-radius: 5px;\n background: var(--color-border-default);\n padding: 6px;\n font-size: 12px;\n transition: all 0.3s;\n}\n.wmde-markdown pre .copied .octicon-copy {\n display: block;\n}\n.wmde-markdown pre .copied .octicon-check {\n display: none;\n}\n.wmde-markdown pre:hover .copied {\n visibility: visible;\n}\n.wmde-markdown pre:hover .copied:hover {\n background: var(--color-prettylights-syntax-entity-tag);\n color: var(--color-canvas-default);\n}\n.wmde-markdown pre:hover .copied:active,\n.wmde-markdown pre .copied.active {\n background: #2e9b33;\n color: var(--color-canvas-default);\n}\n.wmde-markdown pre .active .octicon-copy {\n display: none;\n}\n.wmde-markdown pre .active .octicon-check {\n display: block;\n}\n.highlight-line {\n background-color: var(--color-neutral-muted);\n}\n.code-line.line-number::before {\n display: inline-block;\n width: 1rem;\n text-align: right;\n margin-right: 16px;\n color: var(--color-fg-subtle);\n content: attr(line);\n white-space: nowrap;\n}\n.token.comment,\n.token.prolog,\n.token.doctype,\n.token.cdata {\n color: var(--color-prettylights-syntax-comment);\n}\n.token.namespace {\n opacity: 0.7;\n}\n.token.property,\n.token.tag,\n.token.selector,\n.token.constant,\n.token.symbol,\n.token.deleted {\n color: var(--color-prettylights-syntax-entity-tag);\n}\n.token.maybe-class-name {\n color: var(--color-prettylights-syntax-variable);\n}\n.token.property-access,\n.token.operator,\n.token.boolean,\n.token.number,\n.token.selector .token.class,\n.token.attr-name,\n.token.string,\n.token.char,\n.token.builtin {\n color: var(--color-prettylights-syntax-constant);\n}\n.token.deleted {\n color: var(--color-prettylights-syntax-markup-deleted-text);\n}\n.code-line .token.deleted {\n background-color: var(--color-prettylights-syntax-markup-deleted-bg);\n}\n.token.inserted {\n color: var(--color-prettylights-syntax-markup-inserted-text);\n}\n.code-line .token.inserted {\n background-color: var(--color-prettylights-syntax-markup-inserted-bg);\n}\n.token.variable {\n color: var(--color-prettylights-syntax-constant);\n}\n.token.entity,\n.token.url,\n.language-css .token.string,\n.style .token.string {\n color: var(--color-prettylights-syntax-string);\n}\n.token.color,\n.token.atrule,\n.token.attr-value,\n.token.function,\n.token.class-name {\n color: var(--color-prettylights-syntax-string);\n}\n.token.rule,\n.token.regex,\n.token.important,\n.token.keyword {\n color: var(--color-prettylights-syntax-keyword);\n}\n.token.coord {\n color: var(--color-prettylights-syntax-meta-diff-range);\n}\n.token.important,\n.token.bold {\n font-weight: bold;\n}\n.token.italic {\n font-style: italic;\n}\n.token.entity {\n cursor: help;\n}\n","body,\nhtml {\n font-size: 14px;\n font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, sans-serif, Apple Color Emoji,\n Segoe UI Emoji, Segoe UI Symbol;\n margin: 0;\n}\n\n:global {\n #root {\n min-height: 100%;\n background-color: #f3f3f3;\n }\n}\n\nhtml,\nmain {\n scroll-behavior: smooth;\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/main.bfcd6ee8.js b/static/js/main.bfcd6ee8.js new file mode 100644 index 000000000..69ea91044 --- /dev/null +++ b/static/js/main.bfcd6ee8.js @@ -0,0 +1,3 @@ +/*! For license information please see main.bfcd6ee8.js.LICENSE.txt */ +(()=>{var e={2669:(e,t,n)=>{"use strict";var r,o=n(8650),i=n(8573),a=n.t(i,2),u=n(6836),s=n.t(u,2);function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0&&(t.hash=e.substr(n),e=e.substr(0,n));let r=e.indexOf("?");r>=0&&(t.search=e.substr(r),e=e.substr(0,r)),e&&(t.pathname=e)}return t}function y(e,t,n,o){void 0===o&&(o={});let{window:i=document.defaultView,v5Compat:a=!1}=o,u=i.history,s=r.Pop,d=null,g=y();function y(){return(u.state||{idx:null}).idx}function v(){s=r.Pop;let e=y(),t=null==e?null:e-g;g=e,d&&d({action:s,location:x.location,delta:t})}function b(e){let t="null"!==i.location.origin?i.location.origin:i.location.href,n="string"===typeof e?e:m(e);return f(t,"No window.location.(origin|href) available to create URL for href: "+n),new URL(n,t)}null==g&&(g=0,u.replaceState(l({},u.state,{idx:g}),""));let x={get action(){return s},get location(){return e(i,u)},listen(e){if(d)throw new Error("A history only accepts one active listener");return i.addEventListener(c,v),d=e,()=>{i.removeEventListener(c,v),d=null}},createHref:e=>t(i,e),createURL:b,encodeLocation(e){let t=b(e);return{pathname:t.pathname,search:t.search,hash:t.hash}},push:function(e,t){s=r.Push;let o=h(x.location,e,t);n&&n(o,e),g=y()+1;let l=p(o,g),c=x.createHref(o);try{u.pushState(l,"",c)}catch(f){if(f instanceof DOMException&&"DataCloneError"===f.name)throw f;i.location.assign(c)}a&&d&&d({action:s,location:x.location,delta:1})},replace:function(e,t){s=r.Replace;let o=h(x.location,e,t);n&&n(o,e),g=y();let i=p(o,g),l=x.createHref(o);u.replaceState(i,"",l),a&&d&&d({action:s,location:x.location,delta:0})},go:e=>u.go(e)};return x}var v;!function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"}(v||(v={}));const b=new Set(["lazy","caseSensitive","path","id","index","children"]);function x(e,t,n,r){return void 0===n&&(n=[]),void 0===r&&(r={}),e.map(((e,o)=>{let i=[...n,o],a="string"===typeof e.id?e.id:i.join("-");if(f(!0!==e.index||!e.children,"Cannot specify children on an index route"),f(!r[a],'Found a route id collision on id "'+a+"\". Route id's must be globally unique within Data Router usages"),function(e){return!0===e.index}(e)){let n=l({},e,t(e),{id:a});return r[a]=n,n}{let n=l({},e,t(e),{id:a,children:void 0});return r[a]=n,e.children&&(n.children=x(e.children,t,i,r)),n}}))}function k(e,t,n){void 0===n&&(n="/");let r=I(("string"===typeof t?g(t):t).pathname||"/",n);if(null==r)return null;let o=w(e);!function(e){e.sort(((e,t)=>e.score!==t.score?t.score-e.score:function(e,t){let n=e.length===t.length&&e.slice(0,-1).every(((e,n)=>e===t[n]));return n?e[e.length-1]-t[t.length-1]:0}(e.routesMeta.map((e=>e.childrenIndex)),t.routesMeta.map((e=>e.childrenIndex)))))}(o);let i=null;for(let a=0;null==i&&a{let a={relativePath:void 0===i?e.path||"":i,caseSensitive:!0===e.caseSensitive,childrenIndex:o,route:e};a.relativePath.startsWith("/")&&(f(a.relativePath.startsWith(r),'Absolute route path "'+a.relativePath+'" nested under path "'+r+'" is not valid. An absolute child route path must start with the combined path of all its parent routes.'),a.relativePath=a.relativePath.slice(r.length));let u=U([r,a.relativePath]),s=n.concat(a);e.children&&e.children.length>0&&(f(!0!==e.index,'Index routes must not have child routes. Please remove all child routes from route path "'+u+'".'),w(e.children,t,s,u)),(null!=e.path||e.index)&&t.push({path:u,score:L(u,e.index),routesMeta:s})};return e.forEach(((e,t)=>{var n;if(""!==e.path&&null!=(n=e.path)&&n.includes("?"))for(let r of E(e.path))o(e,t,r);else o(e,t)})),t}function E(e){let t=e.split("/");if(0===t.length)return[];let[n,...r]=t,o=n.endsWith("?"),i=n.replace(/\?$/,"");if(0===r.length)return o?[i,""]:[i];let a=E(r.join("/")),u=[];return u.push(...a.map((e=>""===e?i:[i,e].join("/")))),o&&u.push(...a),u.map((t=>e.startsWith("/")&&""===t?"/":t))}const C=/^:\w+$/,F=3,S=2,A=1,T=10,P=-2,O=e=>"*"===e;function L(e,t){let n=e.split("/"),r=n.length;return n.some(O)&&(r+=P),t&&(r+=S),n.filter((e=>!O(e))).reduce(((e,t)=>e+(C.test(t)?F:""===t?A:T)),r)}function B(e,t){let{routesMeta:n}=e,r={},o="/",i=[];for(let a=0;a(r.push({paramName:t,isOptional:null!=n}),n?"/?([^\\/]+)?":"/([^\\/]+)")));e.endsWith("*")?(r.push({paramName:"*"}),o+="*"===e||"/*"===e?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?o+="\\/*$":""!==e&&"/"!==e&&(o+="(?:(?=\\/|$))");let i=new RegExp(o,t?void 0:"i");return[i,r]}(e.path,e.caseSensitive,e.end),o=t.match(n);if(!o)return null;let i=o[0],a=i.replace(/(.)\/+$/,"$1"),u=o.slice(1);return{params:r.reduce(((e,t,n)=>{let{paramName:r,isOptional:o}=t;if("*"===r){let e=u[n]||"";a=i.slice(0,i.length-e.length).replace(/(.)\/+$/,"$1")}const s=u[n];return e[r]=o&&!s?void 0:function(e,t){try{return decodeURIComponent(e)}catch(n){return d(!1,'The value for the URL param "'+t+'" will not be decoded because the string "'+e+'" is a malformed URL segment. This is probably due to a bad percent encoding ('+n+")."),e}}(s||"",r),e}),{}),pathname:i,pathnameBase:a,pattern:e}}function R(e){try{return decodeURI(e)}catch(t){return d(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent encoding ('+t+")."),e}}function I(e,t){if("/"===t)return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,r=e.charAt(n);return r&&"/"!==r?null:e.slice(n)||"/"}function j(e,t,n,r){return"Cannot include a '"+e+"' character in a manually specified `to."+t+"` field ["+JSON.stringify(r)+"]. Please separate it out to the `to."+n+'` field. Alternatively you may provide the full path as a string in and the router will parse it for you.'}function _(e){return e.filter(((e,t)=>0===t||e.route.path&&e.route.path.length>0))}function z(e){return _(e).map(((t,n)=>n===e.length-1?t.pathname:t.pathnameBase))}function M(e,t,n,r){let o;void 0===r&&(r=!1),"string"===typeof e?o=g(e):(o=l({},e),f(!o.pathname||!o.pathname.includes("?"),j("?","pathname","search",o)),f(!o.pathname||!o.pathname.includes("#"),j("#","pathname","hash",o)),f(!o.search||!o.search.includes("#"),j("#","search","hash",o)));let i,a=""===e||""===o.pathname,u=a?"/":o.pathname;if(null==u)i=n;else if(r){let e=t[t.length-1].replace(/^\//,"").split("/");if(u.startsWith("..")){let t=u.split("/");for(;".."===t[0];)t.shift(),e.pop();o.pathname=t.join("/")}i="/"+e.join("/")}else{let e=t.length-1;if(u.startsWith("..")){let t=u.split("/");for(;".."===t[0];)t.shift(),e-=1;o.pathname=t.join("/")}i=e>=0?t[e]:"/"}let s=function(e,t){void 0===t&&(t="/");let{pathname:n,search:r="",hash:o=""}="string"===typeof e?g(e):e,i=n?n.startsWith("/")?n:function(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach((e=>{".."===e?n.length>1&&n.pop():"."!==e&&n.push(e)})),n.length>1?n.join("/"):"/"}(n,t):t;return{pathname:i,search:H(r),hash:V(o)}}(o,i),c=u&&"/"!==u&&u.endsWith("/"),d=(a||"."===u)&&n.endsWith("/");return s.pathname.endsWith("/")||!c&&!d||(s.pathname+="/"),s}const U=e=>e.join("/").replace(/\/\/+/g,"/"),q=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),H=e=>e&&"?"!==e?e.startsWith("?")?e:"?"+e:"",V=e=>e&&"#"!==e?e.startsWith("#")?e:"#"+e:"";Error;class W{constructor(e,t,n,r){void 0===r&&(r=!1),this.status=e,this.statusText=t||"",this.internal=r,n instanceof Error?(this.data=n.toString(),this.error=n):this.data=n}}function $(e){return null!=e&&"number"===typeof e.status&&"string"===typeof e.statusText&&"boolean"===typeof e.internal&&"data"in e}const Z=["post","put","patch","delete"],G=new Set(Z),K=["get",...Z],Q=new Set(K),Y=new Set([301,302,303,307,308]),J=new Set([307,308]),X={state:"idle",location:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},ee={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},te={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},ne=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,re=e=>({hasErrorBoundary:Boolean(e.hasErrorBoundary)}),oe="remix-router-transitions";function ie(e){const t=e.window?e.window:"undefined"!==typeof window?window:void 0,n="undefined"!==typeof t&&"undefined"!==typeof t.document&&"undefined"!==typeof t.document.createElement,o=!n;let i;if(f(e.routes.length>0,"You must provide a non-empty routes array to createRouter"),e.mapRouteProperties)i=e.mapRouteProperties;else if(e.detectErrorBoundary){let t=e.detectErrorBoundary;i=e=>({hasErrorBoundary:t(e)})}else i=re;let a,u={},s=x(e.routes,i,void 0,u),c=e.basename||"/",p=l({v7_fetcherPersist:!1,v7_normalizeFormMethod:!1,v7_prependBasename:!1},e.future),m=null,g=new Set,y=null,b=null,w=null,E=null!=e.hydrationData,C=k(s,e.history.location,c),F=null;if(null==C){let t=De(404,{pathname:e.history.location.pathname}),{matches:n,route:r}=ke(s);C=n,F={[r.id]:t}}let S,A,T=!C.some((e=>e.route.lazy))&&(!C.some((e=>e.route.loader))||null!=e.hydrationData),P={historyAction:e.history.action,location:e.history.location,matches:C,initialized:T,navigation:X,restoreScrollPosition:null==e.hydrationData&&null,preventScrollReset:!1,revalidation:"idle",loaderData:e.hydrationData&&e.hydrationData.loaderData||{},actionData:e.hydrationData&&e.hydrationData.actionData||null,errors:e.hydrationData&&e.hydrationData.errors||F,fetchers:new Map,blockers:new Map},O=r.Pop,L=!1,B=!1,N=new Map,R=null,j=!1,_=!1,z=[],M=[],U=new Map,q=0,H=-1,V=new Map,W=new Set,$=new Map,Z=new Map,G=new Set,K=new Map,Q=new Map,Y=!1;function ie(e,t){void 0===t&&(t={}),P=l({},P,e);let n=[],r=[];p.v7_fetcherPersist&&P.fetchers.forEach(((e,t)=>{"idle"===e.state&&(G.has(t)?r.push(t):n.push(t))})),[...g].forEach((e=>e(P,{deletedFetchers:r,unstable_viewTransitionOpts:t.viewTransitionOpts,unstable_flushSync:!0===t.flushSync}))),p.v7_fetcherPersist&&(n.forEach((e=>P.fetchers.delete(e))),r.forEach((e=>Ae(e))))}function se(t,n,o){var i,u;let c,{flushSync:f}=void 0===o?{}:o,d=null!=P.actionData&&null!=P.navigation.formMethod&&Pe(P.navigation.formMethod)&&"loading"===P.navigation.state&&!0!==(null==(i=t.state)?void 0:i._isRedirect);c=n.actionData?Object.keys(n.actionData).length>0?n.actionData:null:d?P.actionData:null;let p=n.loaderData?be(P.loaderData,n.loaderData,n.matches||[],n.errors):P.loaderData,h=P.blockers;h.size>0&&(h=new Map(h),h.forEach(((e,t)=>h.set(t,te))));let m,g=!0===L||null!=P.navigation.formMethod&&Pe(P.navigation.formMethod)&&!0!==(null==(u=t.state)?void 0:u._isRedirect);if(a&&(s=a,a=void 0),j||O===r.Pop||(O===r.Push?e.history.push(t,t.state):O===r.Replace&&e.history.replace(t,t.state)),O===r.Pop){let e=N.get(P.location.pathname);e&&e.has(t.pathname)?m={currentLocation:P.location,nextLocation:t}:N.has(t.pathname)&&(m={currentLocation:t,nextLocation:P.location})}else if(B){let e=N.get(P.location.pathname);e?e.add(t.pathname):(e=new Set([t.pathname]),N.set(P.location.pathname,e)),m={currentLocation:P.location,nextLocation:t}}ie(l({},n,{actionData:c,loaderData:p,historyAction:O,location:t,initialized:!0,navigation:X,revalidation:"idle",restoreScrollPosition:$e(t,n.matches||P.matches),preventScrollReset:g,blockers:h}),{viewTransitionOpts:m,flushSync:!0===f}),O=r.Pop,L=!1,B=!1,j=!1,_=!1,z=[],M=[]}async function ce(t,n,o){A&&A.abort(),A=null,O=t,j=!0===(o&&o.startUninterruptedRevalidation),function(e,t){if(y&&w){let n=We(e,t);y[n]=w()}}(P.location,P.matches),L=!0===(o&&o.preventScrollReset),B=!0===(o&&o.enableViewTransition);let f=a||s,d=o&&o.overrideNavigation,p=k(f,n,c),h=!0===(o&&o.flushSync);if(!p){let e=De(404,{pathname:n.pathname}),{matches:t,route:r}=ke(f);return Ve(),void se(n,{matches:t,loaderData:{},errors:{[r.id]:e}},{flushSync:h})}if(P.initialized&&!_&&function(e,t){if(e.pathname!==t.pathname||e.search!==t.search)return!1;if(""===e.hash)return""!==t.hash;if(e.hash===t.hash)return!0;if(""!==t.hash)return!0;return!1}(P.location,n)&&!(o&&o.submission&&Pe(o.submission.formMethod)))return void se(n,{matches:p},{flushSync:h});A=new AbortController;let m,g,b=he(e.history,n,A.signal,o&&o.submission);if(o&&o.pendingError)g={[xe(p).route.id]:o.pendingError};else if(o&&o.submission&&Pe(o.submission.formMethod)){let e=await async function(e,t,n,o,a){void 0===a&&(a={});me();let s,l=function(e,t){let n={state:"submitting",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text};return n}(t,n);ie({navigation:l},{flushSync:!0===a.flushSync});let f=Ne(o,t);if(f.route.action||f.route.lazy){if(s=await pe("action",e,f,o,u,i,c),e.signal.aborted)return{shortCircuited:!0}}else s={type:v.error,error:De(405,{method:e.method,pathname:t.pathname,routeId:f.route.id})};if(Se(s)){let e;return e=a&&null!=a.replace?a.replace:s.location===P.location.pathname+P.location.search,await fe(P,s,{submission:n,replace:e}),{shortCircuited:!0}}if(Fe(s)){let e=xe(o,f.route.id);return!0!==(a&&a.replace)&&(O=r.Push),{pendingActionData:{},pendingActionError:{[e.route.id]:s.error}}}if(Ce(s))throw De(400,{type:"defer-action"});return{pendingActionData:{[f.route.id]:s.data}}}(b,n,o.submission,p,{replace:o.replace,flushSync:h});if(e.shortCircuited)return;m=e.pendingActionData,g=e.pendingActionError,d=Ie(n,o.submission),h=!1,b=new Request(b.url,{signal:b.signal})}let{shortCircuited:x,loaderData:D,errors:E}=await async function(t,n,r,o,i,u,f,d,p,h){let m=o||Ie(n,i),g=i||u||Re(m),y=a||s,[v,b]=le(e.history,P,r,g,n,_,z,M,G,$,W,y,c,p,h);if(Ve((e=>!(r&&r.some((t=>t.route.id===e)))||v&&v.some((t=>t.route.id===e)))),H=++q,0===v.length&&0===b.length){let e=ze();return se(n,l({matches:r,loaderData:{},errors:h||null},p?{actionData:p}:{},e?{fetchers:new Map(P.fetchers)}:{}),{flushSync:d}),{shortCircuited:!0}}if(!j){b.forEach((e=>{let t=P.fetchers.get(e.key),n=je(void 0,t?t.data:void 0);P.fetchers.set(e.key,n)}));let e=p||P.actionData;ie(l({navigation:m},e?0===Object.keys(e).length?{actionData:null}:{actionData:e}:{},b.length>0?{fetchers:new Map(P.fetchers)}:{}),{flushSync:d})}b.forEach((e=>{U.has(e.key)&&Te(e.key),e.controller&&U.set(e.key,e.controller)}));let x=()=>b.forEach((e=>Te(e.key)));A&&A.signal.addEventListener("abort",x);let{results:k,loaderResults:D,fetcherResults:w}=await de(P.matches,r,v,b,t);if(t.signal.aborted)return{shortCircuited:!0};A&&A.signal.removeEventListener("abort",x);b.forEach((e=>U.delete(e.key)));let E=we(k);if(E){if(E.idx>=v.length){let e=b[E.idx-v.length].key;W.add(e)}return await fe(P,E.result,{replace:f}),{shortCircuited:!0}}let{loaderData:C,errors:F}=ve(P,r,v,D,h,b,w,K);K.forEach(((e,t)=>{e.subscribe((n=>{(n||e.done)&&K.delete(t)}))}));let S=ze(),T=Me(H),O=S||T||b.length>0;return l({loaderData:C,errors:F},O?{fetchers:new Map(P.fetchers)}:{})}(b,n,p,d,o&&o.submission,o&&o.fetcherSubmission,o&&o.replace,h,m,g);x||(A=null,se(n,l({matches:p},m?{actionData:m}:{},{loaderData:D,errors:E})))}async function fe(o,i,a){let{submission:u,fetcherSubmission:s,replace:d}=void 0===a?{}:a;i.revalidate&&(_=!0);let p=h(o.location,i.location,{_isRedirect:!0});if(f(p,"Expected a location on the redirect navigation"),n){let n=!1;if(i.reloadDocument)n=!0;else if(ne.test(i.location)){const r=e.history.createURL(i.location);n=r.origin!==t.location.origin||null==I(r.pathname,c)}if(n)return void(d?t.location.replace(i.location):t.location.assign(i.location))}A=null;let m=!0===d?r.Replace:r.Push,{formMethod:g,formAction:y,formEncType:v}=o.navigation;!u&&!s&&g&&y&&v&&(u=Re(o.navigation));let b=u||s;if(J.has(i.status)&&b&&Pe(b.formMethod))await ce(m,p,{submission:l({},b,{formAction:i.location}),preventScrollReset:L});else{let e=Ie(p,u);await ce(m,p,{overrideNavigation:e,fetcherSubmission:s,preventScrollReset:L})}}async function de(t,n,r,o,a){let s=await Promise.all([...r.map((e=>pe("loader",a,e,n,u,i,c))),...o.map((t=>{if(t.matches&&t.match&&t.controller)return pe("loader",he(e.history,t.path,t.controller.signal),t.match,t.matches,u,i,c);return{type:v.error,error:De(404,{pathname:t.path})}}))]),l=s.slice(0,r.length),f=s.slice(r.length);return await Promise.all([Oe(t,r,l,l.map((()=>a.signal)),!1,P.loaderData),Oe(t,o.map((e=>e.match)),f,o.map((e=>e.controller?e.controller.signal:null)),!0)]),{results:s,loaderResults:l,fetcherResults:f}}function me(){_=!0,z.push(...Ve()),$.forEach(((e,t)=>{U.has(t)&&(M.push(t),Te(t))}))}function ge(e,t,n){void 0===n&&(n={}),P.fetchers.set(e,t),ie({fetchers:new Map(P.fetchers)},{flushSync:!0===(n&&n.flushSync)})}function ye(e,t,n,r){void 0===r&&(r={});let o=xe(P.matches,t);Ae(e),ie({errors:{[o.route.id]:n},fetchers:new Map(P.fetchers)},{flushSync:!0===(r&&r.flushSync)})}function Ee(e){return p.v7_fetcherPersist&&(Z.set(e,(Z.get(e)||0)+1),G.has(e)&&G.delete(e)),P.fetchers.get(e)||ee}function Ae(e){let t=P.fetchers.get(e);!U.has(e)||t&&"loading"===t.state&&V.has(e)||Te(e),$.delete(e),V.delete(e),W.delete(e),G.delete(e),P.fetchers.delete(e)}function Te(e){let t=U.get(e);f(t,"Expected fetch controller: "+e),t.abort(),U.delete(e)}function Be(e){for(let t of e){let e=_e(Ee(t).data);P.fetchers.set(t,e)}}function ze(){let e=[],t=!1;for(let n of W){let r=P.fetchers.get(n);f(r,"Expected fetcher: "+n),"loading"===r.state&&(W.delete(n),e.push(n),t=!0)}return Be(e),t}function Me(e){let t=[];for(let[n,r]of V)if(r0}function Ue(e){P.blockers.delete(e),Q.delete(e)}function qe(e,t){let n=P.blockers.get(e)||te;f("unblocked"===n.state&&"blocked"===t.state||"blocked"===n.state&&"blocked"===t.state||"blocked"===n.state&&"proceeding"===t.state||"blocked"===n.state&&"unblocked"===t.state||"proceeding"===n.state&&"unblocked"===t.state,"Invalid blocker state transition: "+n.state+" -> "+t.state);let r=new Map(P.blockers);r.set(e,t),ie({blockers:r})}function He(e){let{currentLocation:t,nextLocation:n,historyAction:r}=e;if(0===Q.size)return;Q.size>1&&d(!1,"A router only supports one blocker at a time");let o=Array.from(Q.entries()),[i,a]=o[o.length-1],u=P.blockers.get(i);return u&&"proceeding"===u.state?void 0:a({currentLocation:t,nextLocation:n,historyAction:r})?i:void 0}function Ve(e){let t=[];return K.forEach(((n,r)=>{e&&!e(r)||(n.cancel(),t.push(r),K.delete(r))})),t}function We(e,t){if(b){return b(e,t.map((e=>D(e,P.loaderData))))||e.key}return e.key}function $e(e,t){if(y){let n=We(e,t),r=y[n];if("number"===typeof r)return r}return null}return S={get basename(){return c},get state(){return P},get routes(){return s},get window(){return t},initialize:function(){if(m=e.history.listen((t=>{let{action:n,location:r,delta:o}=t;if(Y)return void(Y=!1);d(0===Q.size||null!=o,"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs. This can also happen if you are using createHashRouter and the user manually changes the URL.");let i=He({currentLocation:P.location,nextLocation:r,historyAction:n});return i&&null!=o?(Y=!0,e.history.go(-1*o),void qe(i,{state:"blocked",location:r,proceed(){qe(i,{state:"proceeding",proceed:void 0,reset:void 0,location:r}),e.history.go(o)},reset(){let e=new Map(P.blockers);e.set(i,te),ie({blockers:e})}})):ce(n,r)})),n){!function(e,t){try{let n=e.sessionStorage.getItem(oe);if(n){let e=JSON.parse(n);for(let[n,r]of Object.entries(e||{}))r&&Array.isArray(r)&&t.set(n,new Set(r||[]))}}catch(n){}}(t,N);let e=()=>function(e,t){if(t.size>0){let r={};for(let[e,n]of t)r[e]=[...n];try{e.sessionStorage.setItem(oe,JSON.stringify(r))}catch(n){d(!1,"Failed to save applied view transitions in sessionStorage ("+n+").")}}}(t,N);t.addEventListener("pagehide",e),R=()=>t.removeEventListener("pagehide",e)}return P.initialized||ce(r.Pop,P.location),S},subscribe:function(e){return g.add(e),()=>g.delete(e)},enableScrollRestoration:function(e,t,n){if(y=e,w=t,b=n||null,!E&&P.navigation===X){E=!0;let e=$e(P.location,P.matches);null!=e&&ie({restoreScrollPosition:e})}return()=>{y=null,w=null,b=null}},navigate:async function t(n,o){if("number"===typeof n)return void e.history.go(n);let i=ae(P.location,P.matches,c,p.v7_prependBasename,n,null==o?void 0:o.fromRouteId,null==o?void 0:o.relative),{path:a,submission:u,error:s}=ue(p.v7_normalizeFormMethod,!1,i,o),f=P.location,d=h(P.location,a,o&&o.state);d=l({},d,e.history.encodeLocation(d));let m=o&&null!=o.replace?o.replace:void 0,g=r.Push;!0===m?g=r.Replace:!1===m||null!=u&&Pe(u.formMethod)&&u.formAction===P.location.pathname+P.location.search&&(g=r.Replace);let y=o&&"preventScrollReset"in o?!0===o.preventScrollReset:void 0,v=!0===(o&&o.unstable_flushSync),b=He({currentLocation:f,nextLocation:d,historyAction:g});if(!b)return await ce(g,d,{submission:u,pendingError:s,preventScrollReset:y,replace:o&&o.replace,enableViewTransition:o&&o.unstable_viewTransition,flushSync:v});qe(b,{state:"blocked",location:d,proceed(){qe(b,{state:"proceeding",proceed:void 0,reset:void 0,location:d}),t(n,o)},reset(){let e=new Map(P.blockers);e.set(b,te),ie({blockers:e})}})},fetch:function(t,n,r,l){if(o)throw new Error("router.fetch() was called during the server render, but it shouldn't be. You are likely calling a useFetcher() method in the body of your component. Try moving it to a useEffect or a callback.");U.has(t)&&Te(t);let d=!0===(l&&l.unstable_flushSync),h=a||s,m=ae(P.location,P.matches,c,p.v7_prependBasename,r,n,null==l?void 0:l.relative),g=k(h,m,c);if(!g)return void ye(t,n,De(404,{pathname:m}),{flushSync:d});let{path:y,submission:v,error:b}=ue(p.v7_normalizeFormMethod,!0,m,l);if(b)return void ye(t,n,b,{flushSync:d});let x=Ne(g,y);L=!0===(l&&l.preventScrollReset),v&&Pe(v.formMethod)?async function(t,n,r,o,l,d,p){if(me(),$.delete(t),!o.route.action&&!o.route.lazy){let e=De(405,{method:p.formMethod,pathname:r,routeId:n});return void ye(t,n,e,{flushSync:d})}let h=P.fetchers.get(t);ge(t,function(e,t){let n={state:"submitting",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t?t.data:void 0};return n}(p,h),{flushSync:d});let m=new AbortController,g=he(e.history,r,m.signal,p);U.set(t,m);let y=q,v=await pe("action",g,o,l,u,i,c);if(g.signal.aborted)return void(U.get(t)===m&&U.delete(t));if(G.has(t))return void ge(t,_e(void 0));if(Se(v))return U.delete(t),H>y?void ge(t,_e(void 0)):(W.add(t),ge(t,je(p)),fe(P,v,{fetcherSubmission:p}));if(Fe(v))return void ye(t,n,v.error);if(Ce(v))throw De(400,{type:"defer-action"});let b=P.navigation.location||P.location,x=he(e.history,b,m.signal),D=a||s,w="idle"!==P.navigation.state?k(D,P.navigation.location,c):P.matches;f(w,"Didn't find any matches after fetcher action");let E=++q;V.set(t,E);let C=je(p,v.data);P.fetchers.set(t,C);let[F,S]=le(e.history,P,w,p,b,_,z,M,G,$,W,D,c,{[o.route.id]:v.data},void 0);S.filter((e=>e.key!==t)).forEach((e=>{let t=e.key,n=P.fetchers.get(t),r=je(void 0,n?n.data:void 0);P.fetchers.set(t,r),U.has(t)&&Te(t),e.controller&&U.set(t,e.controller)})),ie({fetchers:new Map(P.fetchers)});let T=()=>S.forEach((e=>Te(e.key)));m.signal.addEventListener("abort",T);let{results:L,loaderResults:B,fetcherResults:N}=await de(P.matches,w,F,S,x);if(m.signal.aborted)return;m.signal.removeEventListener("abort",T),V.delete(t),U.delete(t),S.forEach((e=>U.delete(e.key)));let R=we(L);if(R){if(R.idx>=F.length){let e=S[R.idx-F.length].key;W.add(e)}return fe(P,R.result)}let{loaderData:I,errors:j}=ve(P,P.matches,F,B,void 0,S,N,K);if(P.fetchers.has(t)){let e=_e(v.data);P.fetchers.set(t,e)}Me(E),"loading"===P.navigation.state&&E>H?(f(O,"Expected pending action"),A&&A.abort(),se(P.navigation.location,{matches:w,loaderData:I,errors:j,fetchers:new Map(P.fetchers)})):(ie({errors:j,loaderData:be(P.loaderData,I,w,j),fetchers:new Map(P.fetchers)}),_=!1)}(t,n,y,x,g,d,v):($.set(t,{routeId:n,path:y}),async function(t,n,r,o,a,s,l){let d=P.fetchers.get(t);ge(t,je(l,d?d.data:void 0),{flushSync:s});let p=new AbortController,h=he(e.history,r,p.signal);U.set(t,p);let m=q,g=await pe("loader",h,o,a,u,i,c);Ce(g)&&(g=await Le(g,h.signal,!0)||g);U.get(t)===p&&U.delete(t);if(h.signal.aborted)return;if(G.has(t))return void ge(t,_e(void 0));if(Se(g))return H>m?void ge(t,_e(void 0)):(W.add(t),void await fe(P,g));if(Fe(g))return void ye(t,n,g.error);f(!Ce(g),"Unhandled fetcher deferred data"),ge(t,_e(g.data))}(t,n,y,x,g,d,v))},revalidate:function(){me(),ie({revalidation:"loading"}),"submitting"!==P.navigation.state&&("idle"!==P.navigation.state?ce(O||P.historyAction,P.navigation.location,{overrideNavigation:P.navigation}):ce(P.historyAction,P.location,{startUninterruptedRevalidation:!0}))},createHref:t=>e.history.createHref(t),encodeLocation:t=>e.history.encodeLocation(t),getFetcher:Ee,deleteFetcher:function(e){if(p.v7_fetcherPersist){let t=(Z.get(e)||0)-1;t<=0?(Z.delete(e),G.add(e)):Z.set(e,t)}else Ae(e);ie({fetchers:new Map(P.fetchers)})},dispose:function(){m&&m(),R&&R(),g.clear(),A&&A.abort(),P.fetchers.forEach(((e,t)=>Ae(t))),P.blockers.forEach(((e,t)=>Ue(t)))},getBlocker:function(e,t){let n=P.blockers.get(e)||te;return Q.get(e)!==t&&Q.set(e,t),n},deleteBlocker:Ue,_internalFetchControllers:U,_internalActiveDeferreds:K,_internalSetRoutes:function(e){u={},a=x(e,i,void 0,u)}},S}Symbol("deferred");function ae(e,t,n,r,o,i,a){let u,s;if(i){u=[];for(let e of t)if(u.push(e),e.route.id===i){s=e;break}}else u=t,s=t[t.length-1];let l=M(o||".",z(u),I(e.pathname,n)||e.pathname,"path"===a);return null==o&&(l.search=e.search,l.hash=e.hash),null!=o&&""!==o&&"."!==o||!s||!s.route.index||Be(l.search)||(l.search=l.search?l.search.replace(/^\?/,"?index&"):"?index"),r&&"/"!==n&&(l.pathname="/"===l.pathname?n:U([n,l.pathname])),m(l)}function ue(e,t,n,r){if(!r||!function(e){return null!=e&&("formData"in e&&null!=e.formData||"body"in e&&void 0!==e.body)}(r))return{path:n};if(r.formMethod&&!Te(r.formMethod))return{path:n,error:De(405,{method:r.formMethod})};let o,i,a=()=>({path:n,error:De(400,{type:"invalid-body"})}),u=r.formMethod||"get",s=e?u.toUpperCase():u.toLowerCase(),l=Ee(n);if(void 0!==r.body){if("text/plain"===r.formEncType){if(!Pe(s))return a();let e="string"===typeof r.body?r.body:r.body instanceof FormData||r.body instanceof URLSearchParams?Array.from(r.body.entries()).reduce(((e,t)=>{let[n,r]=t;return""+e+n+"="+r+"\n"}),""):String(r.body);return{path:n,submission:{formMethod:s,formAction:l,formEncType:r.formEncType,formData:void 0,json:void 0,text:e}}}if("application/json"===r.formEncType){if(!Pe(s))return a();try{let e="string"===typeof r.body?JSON.parse(r.body):r.body;return{path:n,submission:{formMethod:s,formAction:l,formEncType:r.formEncType,formData:void 0,json:e,text:void 0}}}catch(p){return a()}}}if(f("function"===typeof FormData,"FormData is not available in this environment"),r.formData)o=me(r.formData),i=r.formData;else if(r.body instanceof FormData)o=me(r.body),i=r.body;else if(r.body instanceof URLSearchParams)o=r.body,i=ge(o);else if(null==r.body)o=new URLSearchParams,i=new FormData;else try{o=new URLSearchParams(r.body),i=ge(o)}catch(p){return a()}let c={formMethod:s,formAction:l,formEncType:r&&r.formEncType||"application/x-www-form-urlencoded",formData:i,json:void 0,text:void 0};if(Pe(c.formMethod))return{path:n,submission:c};let d=g(n);return t&&d.search&&Be(d.search)&&o.append("index",""),d.search="?"+o,{path:m(d),submission:c}}function se(e,t){let n=e;if(t){let r=e.findIndex((e=>e.route.id===t));r>=0&&(n=e.slice(0,r))}return n}function le(e,t,n,r,o,i,a,u,s,c,f,d,p,h,m){let g=m?Object.values(m)[0]:h?Object.values(h)[0]:void 0,y=e.createURL(t.location),v=e.createURL(o),b=m?Object.keys(m)[0]:void 0,x=se(n,b).filter(((e,n)=>{if(e.route.lazy)return!0;if(null==e.route.loader)return!1;if(function(e,t,n){let r=!t||n.route.id!==t.route.id,o=void 0===e[n.route.id];return r||o}(t.loaderData,t.matches[n],e)||a.some((t=>t===e.route.id)))return!0;let o=t.matches[n],u=e;return fe(e,l({currentUrl:y,currentParams:o.params,nextUrl:v,nextParams:u.params},r,{actionResult:g,defaultShouldRevalidate:i||y.pathname+y.search===v.pathname+v.search||y.search!==v.search||ce(o,u)}))})),D=[];return c.forEach(((e,o)=>{if(!n.some((t=>t.route.id===e.routeId))||s.has(o))return;let a=k(d,e.path,p);if(!a)return void D.push({key:o,routeId:e.routeId,path:e.path,matches:null,match:null,controller:null});let c=t.fetchers.get(o),h=Ne(a,e.path),m=!1;m=!f.has(o)&&(!!u.includes(o)||(c&&"idle"!==c.state&&void 0===c.data?i:fe(h,l({currentUrl:y,currentParams:t.matches[t.matches.length-1].params,nextUrl:v,nextParams:n[n.length-1].params},r,{actionResult:g,defaultShouldRevalidate:i})))),m&&D.push({key:o,routeId:e.routeId,path:e.path,matches:a,match:h,controller:new AbortController})})),[x,D]}function ce(e,t){let n=e.route.path;return e.pathname!==t.pathname||null!=n&&n.endsWith("*")&&e.params["*"]!==t.params["*"]}function fe(e,t){if(e.route.shouldRevalidate){let n=e.route.shouldRevalidate(t);if("boolean"===typeof n)return n}return t.defaultShouldRevalidate}async function de(e,t,n){if(!e.lazy)return;let r=await e.lazy();if(!e.lazy)return;let o=n[e.id];f(o,"No route found in manifest");let i={};for(let a in r){let e=void 0!==o[a]&&"hasErrorBoundary"!==a;d(!e,'Route "'+o.id+'" has a static property "'+a+'" defined but its lazy function is also returning a value for this property. The lazy route property "'+a+'" will be ignored.'),e||b.has(a)||(i[a]=r[a])}Object.assign(o,i),Object.assign(o,l({},t(o),{lazy:void 0}))}async function pe(e,t,n,r,o,i,a,u){let s,l,c;void 0===u&&(u={});let d=e=>{let r,o=new Promise(((e,t)=>r=t));return c=()=>r(),t.signal.addEventListener("abort",c),Promise.race([e({request:t,params:n.params,context:u.requestContext}),o])};try{let r=n.route[e];if(n.route.lazy)if(r){let e,t=await Promise.all([d(r).catch((t=>{e=t})),de(n.route,i,o)]);if(e)throw e;l=t[0]}else{if(await de(n.route,i,o),r=n.route[e],!r){if("action"===e){let e=new URL(t.url),r=e.pathname+e.search;throw De(405,{method:t.method,pathname:r,routeId:n.route.id})}return{type:v.data,data:void 0}}l=await d(r)}else{if(!r){let e=new URL(t.url);throw De(404,{pathname:e.pathname+e.search})}l=await d(r)}f(void 0!==l,"You defined "+("action"===e?"an action":"a loader")+' for route "'+n.route.id+"\" but didn't return anything from your `"+e+"` function. Please return a value or `null`.")}catch(m){s=v.error,l=m}finally{c&&t.signal.removeEventListener("abort",c)}if(Ae(l)){let e,o=l.status;if(Y.has(o)){let e=l.headers.get("Location");if(f(e,"Redirects returned/thrown from loaders/actions must have a Location header"),ne.test(e)){if(!u.isStaticRequest){let n=new URL(t.url),r=e.startsWith("//")?new URL(n.protocol+e):new URL(e),o=null!=I(r.pathname,a);r.origin===n.origin&&o&&(e=r.pathname+r.search+r.hash)}}else e=ae(new URL(t.url),r.slice(0,r.indexOf(n)+1),a,!0,e);if(u.isStaticRequest)throw l.headers.set("Location",e),l;return{type:v.redirect,status:o,location:e,revalidate:null!==l.headers.get("X-Remix-Revalidate"),reloadDocument:null!==l.headers.get("X-Remix-Reload-Document")}}if(u.isRouteRequest){throw{type:s===v.error?v.error:v.data,response:l}}let i=l.headers.get("Content-Type");return e=i&&/\bapplication\/json\b/.test(i)?await l.json():await l.text(),s===v.error?{type:s,error:new W(o,l.statusText,e),headers:l.headers}:{type:v.data,data:e,statusCode:l.status,headers:l.headers}}return s===v.error?{type:s,error:l}:function(e){let t=e;return t&&"object"===typeof t&&"object"===typeof t.data&&"function"===typeof t.subscribe&&"function"===typeof t.cancel&&"function"===typeof t.resolveData}(l)?{type:v.deferred,deferredData:l,statusCode:null==(p=l.init)?void 0:p.status,headers:(null==(h=l.init)?void 0:h.headers)&&new Headers(l.init.headers)}:{type:v.data,data:l};var p,h}function he(e,t,n,r){let o=e.createURL(Ee(t)).toString(),i={signal:n};if(r&&Pe(r.formMethod)){let{formMethod:e,formEncType:t}=r;i.method=e.toUpperCase(),"application/json"===t?(i.headers=new Headers({"Content-Type":t}),i.body=JSON.stringify(r.json)):"text/plain"===t?i.body=r.text:"application/x-www-form-urlencoded"===t&&r.formData?i.body=me(r.formData):i.body=r.formData}return new Request(o,i)}function me(e){let t=new URLSearchParams;for(let[n,r]of e.entries())t.append(n,"string"===typeof r?r:r.name);return t}function ge(e){let t=new FormData;for(let[n,r]of e.entries())t.append(n,r);return t}function ye(e,t,n,r,o){let i,a={},u=null,s=!1,l={};return n.forEach(((n,c)=>{let d=t[c].route.id;if(f(!Se(n),"Cannot handle redirect results in processLoaderData"),Fe(n)){let t=xe(e,d),o=n.error;r&&(o=Object.values(r)[0],r=void 0),u=u||{},null==u[t.route.id]&&(u[t.route.id]=o),a[d]=void 0,s||(s=!0,i=$(n.error)?n.error.status:500),n.headers&&(l[d]=n.headers)}else Ce(n)?(o.set(d,n.deferredData),a[d]=n.deferredData.data):a[d]=n.data,null==n.statusCode||200===n.statusCode||s||(i=n.statusCode),n.headers&&(l[d]=n.headers)})),r&&(u=r,a[Object.keys(r)[0]]=void 0),{loaderData:a,errors:u,statusCode:i||200,loaderHeaders:l}}function ve(e,t,n,r,o,i,a,u){let{loaderData:s,errors:c}=ye(t,n,r,o,u);for(let d=0;de.route.id===t))+1):[...e]).reverse().find((e=>!0===e.route.hasErrorBoundary))||e[0]}function ke(e){let t=1===e.length?e[0]:e.find((e=>e.index||!e.path||"/"===e.path))||{id:"__shim-error-route__"};return{matches:[{params:{},pathname:"",pathnameBase:"",route:t}],route:t}}function De(e,t){let{pathname:n,routeId:r,method:o,type:i}=void 0===t?{}:t,a="Unknown Server Error",u="Unknown @remix-run/router error";return 400===e?(a="Bad Request",o&&n&&r?u="You made a "+o+' request to "'+n+'" but did not provide a `loader` for route "'+r+'", so there is no way to handle the request.':"defer-action"===i?u="defer() is not supported in actions":"invalid-body"===i&&(u="Unable to encode submission body")):403===e?(a="Forbidden",u='Route "'+r+'" does not match URL "'+n+'"'):404===e?(a="Not Found",u='No route matches URL "'+n+'"'):405===e&&(a="Method Not Allowed",o&&n&&r?u="You made a "+o.toUpperCase()+' request to "'+n+'" but did not provide an `action` for route "'+r+'", so there is no way to handle the request.':o&&(u='Invalid request method "'+o.toUpperCase()+'"')),new W(e||500,a,new Error(u),!0)}function we(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(Se(n))return{result:n,idx:t}}}function Ee(e){return m(l({},"string"===typeof e?g(e):e,{hash:""}))}function Ce(e){return e.type===v.deferred}function Fe(e){return e.type===v.error}function Se(e){return(e&&e.type)===v.redirect}function Ae(e){return null!=e&&"number"===typeof e.status&&"string"===typeof e.statusText&&"object"===typeof e.headers&&"undefined"!==typeof e.body}function Te(e){return Q.has(e.toLowerCase())}function Pe(e){return G.has(e.toLowerCase())}async function Oe(e,t,n,r,o,i){for(let a=0;ae.route.id===s.route.id)),c=null!=l&&!ce(l,s)&&void 0!==(i&&i[s.route.id]);if(Ce(u)&&(o||c)){let e=r[a];f(e,"Expected an AbortSignal for revalidating fetcher deferred result"),await Le(u,e,o).then((e=>{e&&(n[a]=e||n[a])}))}}}async function Le(e,t,n){if(void 0===n&&(n=!1),!await e.deferredData.resolveData(t)){if(n)try{return{type:v.data,data:e.deferredData.unwrappedData}}catch(r){return{type:v.error,error:r}}return{type:v.data,data:e.deferredData.data}}}function Be(e){return new URLSearchParams(e).getAll("index").some((e=>""===e))}function Ne(e,t){let n="string"===typeof t?g(t).search:t.search;if(e[e.length-1].route.index&&Be(n||""))return e[e.length-1];let r=_(e);return r[r.length-1]}function Re(e){let{formMethod:t,formAction:n,formEncType:r,text:o,formData:i,json:a}=e;if(t&&n&&r)return null!=o?{formMethod:t,formAction:n,formEncType:r,formData:void 0,json:void 0,text:o}:null!=i?{formMethod:t,formAction:n,formEncType:r,formData:i,json:void 0,text:void 0}:void 0!==a?{formMethod:t,formAction:n,formEncType:r,formData:void 0,json:a,text:void 0}:void 0}function Ie(e,t){if(t){return{state:"loading",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}}return{state:"loading",location:e,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0}}function je(e,t){if(e){return{state:"loading",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t}}return{state:"loading",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:t}}function _e(e){return{state:"idle",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:e}}function ze(){return ze=Object.assign?Object.assign.bind():function(e){for(var t=1;t{n.current=!0})),i.useCallback((function(r,o){void 0===o&&(o={}),n.current&&("number"===typeof r?e.navigate(r):e.navigate(r,ze({fromRouteId:t},o)))}),[e,t])}():function(){$e()||f(!1);let e=i.useContext(Me),{basename:t,navigator:n}=i.useContext(qe),{matches:r}=i.useContext(Ve),{pathname:o}=Ze(),a=JSON.stringify(z(r)),u=i.useRef(!1);return Ge((()=>{u.current=!0})),i.useCallback((function(r,i){if(void 0===i&&(i={}),!u.current)return;if("number"===typeof r)return void n.go(r);let s=M(r,JSON.parse(a),o,"path"===i.relative);null==e&&"/"!==t&&(s.pathname="/"===s.pathname?t:U([t,s.pathname])),(i.replace?n.replace:n.push)(s,i.state,i)}),[t,n,a,o,e])}()}const Qe=i.createContext(null);function Ye(e,t){let{relative:n}=void 0===t?{}:t,{matches:r}=i.useContext(Ve),{pathname:o}=Ze(),a=JSON.stringify(z(r));return i.useMemo((()=>M(e,JSON.parse(a),o,"path"===n)),[e,a,o,n])}function Je(e,t,n){$e()||f(!1);let{navigator:o}=i.useContext(qe),{matches:a}=i.useContext(Ve),u=a[a.length-1],s=u?u.params:{},l=(u&&u.pathname,u?u.pathnameBase:"/");u&&u.route;let c,d=Ze();if(t){var p;let e="string"===typeof t?g(t):t;"/"===l||(null==(p=e.pathname)?void 0:p.startsWith(l))||f(!1),c=e}else c=d;let h=c.pathname||"/",m=k(e,{pathname:"/"===l?h:h.slice(l.length)||"/"});let y=rt(m&&m.map((e=>Object.assign({},e,{params:Object.assign({},s,e.params),pathname:U([l,o.encodeLocation?o.encodeLocation(e.pathname).pathname:e.pathname]),pathnameBase:"/"===e.pathnameBase?l:U([l,o.encodeLocation?o.encodeLocation(e.pathnameBase).pathname:e.pathnameBase])}))),a,n);return t&&y?i.createElement(He.Provider,{value:{location:ze({pathname:"/",search:"",hash:"",state:null,key:"default"},c),navigationType:r.Pop}},y):y}function Xe(){let e=function(){var e;let t=i.useContext(We),n=ut(it.UseRouteError),r=st(it.UseRouteError);if(t)return t;return null==(e=n.errors)?void 0:e[r]}(),t=$(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,r="rgba(200,200,200, 0.5)",o={padding:"0.5rem",backgroundColor:r};return i.createElement(i.Fragment,null,i.createElement("h2",null,"Unexpected Application Error!"),i.createElement("h3",{style:{fontStyle:"italic"}},t),n?i.createElement("pre",{style:o},n):null,null)}const et=i.createElement(Xe,null);class tt extends i.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||"idle"!==t.revalidation&&"idle"===e.revalidation?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error||t.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){console.error("React Router caught the following error during render",e,t)}render(){return this.state.error?i.createElement(Ve.Provider,{value:this.props.routeContext},i.createElement(We.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function nt(e){let{routeContext:t,match:n,children:r}=e,o=i.useContext(Me);return o&&o.static&&o.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(o.staticContext._deepestRenderedBoundaryId=n.route.id),i.createElement(Ve.Provider,{value:t},r)}function rt(e,t,n){var r;if(void 0===t&&(t=[]),void 0===n&&(n=null),null==e){var o;if(null==(o=n)||!o.errors)return null;e=n.matches}let a=e,u=null==(r=n)?void 0:r.errors;if(null!=u){let e=a.findIndex((e=>e.route.id&&(null==u?void 0:u[e.route.id])));e>=0||f(!1),a=a.slice(0,Math.min(a.length,e+1))}return a.reduceRight(((e,r,o)=>{let s=r.route.id?null==u?void 0:u[r.route.id]:null,l=null;n&&(l=r.route.errorElement||et);let c=t.concat(a.slice(0,o+1)),f=()=>{let t;return t=s?l:r.route.Component?i.createElement(r.route.Component,null):r.route.element?r.route.element:e,i.createElement(nt,{match:r,routeContext:{outlet:e,matches:c,isDataRoute:null!=n},children:t})};return n&&(r.route.ErrorBoundary||r.route.errorElement||0===o)?i.createElement(tt,{location:n.location,revalidation:n.revalidation,component:l,error:s,children:f(),routeContext:{outlet:null,matches:c,isDataRoute:!0}}):f()}),null)}var ot=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(ot||{}),it=function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e}(it||{});function at(e){let t=i.useContext(Me);return t||f(!1),t}function ut(e){let t=i.useContext(Ue);return t||f(!1),t}function st(e){let t=function(e){let t=i.useContext(Ve);return t||f(!1),t}(),n=t.matches[t.matches.length-1];return n.route.id||f(!1),n.route.id}a.startTransition;function lt(e){return function(e){let t=i.useContext(Ve).outlet;return t?i.createElement(Qe.Provider,{value:e},t):t}(e.context)}function ct(e){let{basename:t="/",children:n=null,location:o,navigationType:a=r.Pop,navigator:u,static:s=!1}=e;$e()&&f(!1);let l=t.replace(/^\/*/,"/"),c=i.useMemo((()=>({basename:l,navigator:u,static:s})),[l,u,s]);"string"===typeof o&&(o=g(o));let{pathname:d="/",search:p="",hash:h="",state:m=null,key:y="default"}=o,v=i.useMemo((()=>{let e=I(d,l);return null==e?null:{location:{pathname:e,search:p,hash:h,state:m,key:y},navigationType:a}}),[l,d,p,h,m,y,a]);return null==v?null:i.createElement(qe.Provider,{value:c},i.createElement(He.Provider,{children:n,value:v}))}new Promise((()=>{}));i.Component;function ft(e){let t={hasErrorBoundary:null!=e.ErrorBoundary||null!=e.errorElement};return e.Component&&Object.assign(t,{element:i.createElement(e.Component),Component:void 0}),e.ErrorBoundary&&Object.assign(t,{errorElement:i.createElement(e.ErrorBoundary),ErrorBoundary:void 0}),t}function dt(){return dt=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0||(o[n]=e[n]);return o}new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);const ht=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","unstable_viewTransition"],mt=["aria-current","caseSensitive","className","end","style","to","unstable_viewTransition","children"];function gt(){var e;let t=null==(e=window)?void 0:e.__staticRouterHydrationData;return t&&t.errors&&(t=dt({},t,{errors:yt(t.errors)})),t}function yt(e){if(!e)return null;let t=Object.entries(e),n={};for(let[o,i]of t)if(i&&"RouteErrorResponse"===i.__type)n[o]=new W(i.status,i.statusText,i.data,!0===i.internal);else if(i&&"Error"===i.__type){if(i.__subType){let e=window[i.__subType];if("function"===typeof e)try{let t=new e(i.message);t.stack="",n[o]=t}catch(r){}}if(null==n[o]){let e=new Error(i.message);e.stack="",n[o]=e}}else n[o]=i;return n}const vt=i.createContext({isTransitioning:!1});const bt=i.createContext(new Map);const xt=a.startTransition,kt=s.flushSync;function Dt(e){kt?kt(e):e()}class wt{constructor(){this.status="pending",this.promise=new Promise(((e,t)=>{this.resolve=t=>{"pending"===this.status&&(this.status="resolved",e(t))},this.reject=e=>{"pending"===this.status&&(this.status="rejected",t(e))}}))}}function Et(e){let{fallbackElement:t,router:n,future:r}=e,[o,a]=i.useState(n.state),[u,s]=i.useState(),[l,c]=i.useState({isTransitioning:!1}),[f,d]=i.useState(),[p,h]=i.useState(),[m,g]=i.useState(),y=i.useRef(new Map),{v7_startTransition:v}=r||{},b=i.useCallback((e=>{v?function(e){xt?xt(e):e()}(e):e()}),[v]),x=i.useCallback(((e,t)=>{let{deletedFetchers:r,unstable_flushSync:o,unstable_viewTransitionOpts:i}=t;r.forEach((e=>y.current.delete(e))),e.fetchers.forEach(((e,t)=>{void 0!==e.data&&y.current.set(t,e.data)}));let u=null==n.window||"function"!==typeof n.window.document.startViewTransition;if(i&&!u){if(o){Dt((()=>{p&&(f&&f.resolve(),p.skipTransition()),c({isTransitioning:!0,flushSync:!0,currentLocation:i.currentLocation,nextLocation:i.nextLocation})}));let t=n.window.document.startViewTransition((()=>{Dt((()=>a(e)))}));return t.finished.finally((()=>{Dt((()=>{d(void 0),h(void 0),s(void 0),c({isTransitioning:!1})}))})),void Dt((()=>h(t)))}p?(f&&f.resolve(),p.skipTransition(),g({state:e,currentLocation:i.currentLocation,nextLocation:i.nextLocation})):(s(e),c({isTransitioning:!0,flushSync:!1,currentLocation:i.currentLocation,nextLocation:i.nextLocation}))}else o?Dt((()=>a(e))):b((()=>a(e)))}),[n.window,p,f,y,b]);i.useLayoutEffect((()=>n.subscribe(x)),[n,x]),i.useEffect((()=>{l.isTransitioning&&!l.flushSync&&d(new wt)}),[l]),i.useEffect((()=>{if(f&&u&&n.window){let e=u,t=f.promise,r=n.window.document.startViewTransition((async()=>{b((()=>a(e))),await t}));r.finished.finally((()=>{d(void 0),h(void 0),s(void 0),c({isTransitioning:!1})})),h(r)}}),[b,u,f,n.window]),i.useEffect((()=>{f&&u&&o.location.key===u.location.key&&f.resolve()}),[f,p,o.location,u]),i.useEffect((()=>{!l.isTransitioning&&m&&(s(m.state),c({isTransitioning:!0,flushSync:!1,currentLocation:m.currentLocation,nextLocation:m.nextLocation}),g(void 0))}),[l.isTransitioning,m]);let k=i.useMemo((()=>({createHref:n.createHref,encodeLocation:n.encodeLocation,go:e=>n.navigate(e),push:(e,t,r)=>n.navigate(e,{state:t,preventScrollReset:null==r?void 0:r.preventScrollReset}),replace:(e,t,r)=>n.navigate(e,{replace:!0,state:t,preventScrollReset:null==r?void 0:r.preventScrollReset})})),[n]),D=n.basename||"/",w=i.useMemo((()=>({router:n,navigator:k,static:!1,basename:D})),[n,k,D]);return i.createElement(i.Fragment,null,i.createElement(Me.Provider,{value:w},i.createElement(Ue.Provider,{value:o},i.createElement(bt.Provider,{value:y.current},i.createElement(vt.Provider,{value:l},i.createElement(ct,{basename:D,location:o.location,navigationType:o.historyAction,navigator:k},o.initialized?i.createElement(Ct,{routes:n.routes,state:o}):t))))),null)}function Ct(e){let{routes:t,state:n}=e;return Je(t,void 0,n)}const Ft="undefined"!==typeof window&&"undefined"!==typeof window.document&&"undefined"!==typeof window.document.createElement,St=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,At=i.forwardRef((function(e,t){let n,{onClick:r,relative:o,reloadDocument:a,replace:u,state:s,target:l,to:c,preventScrollReset:d,unstable_viewTransition:p}=e,h=pt(e,ht),{basename:g}=i.useContext(qe),y=!1;if("string"===typeof c&&St.test(c)&&(n=c,Ft))try{let e=new URL(window.location.href),t=c.startsWith("//")?new URL(e.protocol+c):new URL(c),n=I(t.pathname,g);t.origin===e.origin&&null!=n?c=n+t.search+t.hash:y=!0}catch(x){}let v=function(e,t){let{relative:n}=void 0===t?{}:t;$e()||f(!1);let{basename:r,navigator:o}=i.useContext(qe),{hash:a,pathname:u,search:s}=Ye(e,{relative:n}),l=u;return"/"!==r&&(l="/"===u?r:U([r,u])),o.createHref({pathname:l,search:s,hash:a})}(c,{relative:o}),b=function(e,t){let{target:n,replace:r,state:o,preventScrollReset:a,relative:u,unstable_viewTransition:s}=void 0===t?{}:t,l=Ke(),c=Ze(),f=Ye(e,{relative:u});return i.useCallback((t=>{if(function(e,t){return 0===e.button&&(!t||"_self"===t)&&!function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)}(t,n)){t.preventDefault();let n=void 0!==r?r:m(c)===m(f);l(e,{replace:n,state:o,preventScrollReset:a,relative:u,unstable_viewTransition:s})}}),[c,l,f,r,o,n,e,a,u,s])}(c,{replace:u,state:s,target:l,preventScrollReset:d,relative:o,unstable_viewTransition:p});return i.createElement("a",dt({},h,{href:n||v,onClick:y||a?r:function(e){r&&r(e),e.defaultPrevented||b(e)},ref:t,target:l}))}));const Tt=i.forwardRef((function(e,t){let{"aria-current":n="page",caseSensitive:r=!1,className:o="",end:a=!1,style:u,to:s,unstable_viewTransition:l,children:c}=e,d=pt(e,mt),p=Ye(s,{relative:d.relative}),h=Ze(),m=i.useContext(Ue),{navigator:g}=i.useContext(qe),y=null!=m&&function(e,t){void 0===t&&(t={});let n=i.useContext(vt);null==n&&f(!1);let{basename:r}=Bt(Ot.useViewTransitionState),o=Ye(e,{relative:t.relative});if(!n.isTransitioning)return!1;let a=I(n.currentLocation.pathname,r)||n.currentLocation.pathname,u=I(n.nextLocation.pathname,r)||n.nextLocation.pathname;return null!=N(o.pathname,u)||null!=N(o.pathname,a)}(p)&&!0===l,v=g.encodeLocation?g.encodeLocation(p).pathname:p.pathname,b=h.pathname,x=m&&m.navigation&&m.navigation.location?m.navigation.location.pathname:null;r||(b=b.toLowerCase(),x=x?x.toLowerCase():null,v=v.toLowerCase());const k="/"!==v&&v.endsWith("/")?v.length-1:v.length;let D,w=b===v||!a&&b.startsWith(v)&&"/"===b.charAt(k),E=null!=x&&(x===v||!a&&x.startsWith(v)&&"/"===x.charAt(v.length)),C={isActive:w,isPending:E,isTransitioning:y},F=w?n:void 0;D="function"===typeof o?o(C):[o,w?"active":null,E?"pending":null,y?"transitioning":null].filter(Boolean).join(" ");let S="function"===typeof u?u(C):u;return i.createElement(At,dt({},d,{"aria-current":F,className:D,ref:t,style:S,to:s,unstable_viewTransition:l}),"function"===typeof c?c(C):c)}));function Pt(e){let{getKey:t,storageKey:n}=e;return function(e){let{getKey:t,storageKey:n}=void 0===e?{}:e,{router:r}=Bt(Ot.UseScrollRestoration),{restoreScrollPosition:o,preventScrollReset:a}=Nt(Lt.UseScrollRestoration),{basename:u}=i.useContext(qe),s=Ze(),l=function(){let{matches:e,loaderData:t}=ut(it.UseMatches);return i.useMemo((()=>e.map((e=>D(e,t)))),[e,t])}(),c=ut(it.UseNavigation).navigation;i.useEffect((()=>(window.history.scrollRestoration="manual",()=>{window.history.scrollRestoration="auto"})),[]),function(e,t){let{capture:n}=t||{};i.useEffect((()=>{let t=null!=n?{capture:n}:void 0;return window.addEventListener("pagehide",e,t),()=>{window.removeEventListener("pagehide",e,t)}}),[e,n])}(i.useCallback((()=>{if("idle"===c.state){let e=(t?t(s,l):null)||s.key;It[e]=window.scrollY}try{sessionStorage.setItem(n||Rt,JSON.stringify(It))}catch(e){}window.history.scrollRestoration="auto"}),[n,t,c.state,s,l])),"undefined"!==typeof document&&(i.useLayoutEffect((()=>{try{let e=sessionStorage.getItem(n||Rt);e&&(It=JSON.parse(e))}catch(e){}}),[n]),i.useLayoutEffect((()=>{let e=t&&"/"!==u?(e,n)=>t(dt({},e,{pathname:I(e.pathname,u)||e.pathname}),n):t,n=null==r?void 0:r.enableScrollRestoration(It,(()=>window.scrollY),e);return()=>n&&n()}),[r,u,t]),i.useLayoutEffect((()=>{if(!1!==o)if("number"!==typeof o){if(s.hash){let e=document.getElementById(decodeURIComponent(s.hash.slice(1)));if(e)return void e.scrollIntoView()}!0!==a&&window.scrollTo(0,0)}else window.scrollTo(0,o)}),[s,o,a]))}({getKey:t,storageKey:n}),null}var Ot,Lt;function Bt(e){let t=i.useContext(Me);return t||f(!1),t}function Nt(e){let t=i.useContext(Ue);return t||f(!1),t}(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(Ot||(Ot={})),function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"}(Lt||(Lt={}));const Rt="react-router-scroll-positions";let It={};function jt(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var _t,zt,Mt,Ut,qt=n(2864),Ht=n(645),Vt=n(2392),Wt=n(4760);const $t=Ht.ZP.div(_t||(_t=jt(["\n width: 250px;\n height: 100%;\n overflow: auto;\n position: fixed;\n background: #202225;\n &::-webkit-scrollbar {\n -webkit-appearance: none;\n width: 10px;\n height: 10px;\n }\n &::-webkit-scrollbar-thumb {\n cursor: pointer;\n border-radius: 5px;\n background: rgba(255, 255, 255, 0.25);\n transition: color 0.2s ease;\n }\n &::-webkit-scrollbar-track {\n background: rgba(255, 255, 255, 0.1);\n border-radius: 0;\n }\n a {\n color: #dcdcdc;\n display: block;\n padding: 8px 10px 8px 15px;\n text-decoration: none;\n display: flex;\n justify-content: space-between;\n > svg {\n fill: #888;\n }\n &:hover {\n text-decoration: underline;\n color: #eaeaea;\n background-color: #3e3e3e;\n }\n &.active {\n text-decoration: underline;\n background: #333;\n color: #fff;\n }\n }\n"]))),Zt=Ht.ZP.div(zt||(zt=jt(["\n padding: 18px 0 20px 0;\n margin-bottom: 6px;\n color: #fff;\n text-align: center;\n border-bottom: 1px solid rgba(255, 255, 255, 0.12);\n sup {\n color: #6f6f6f;\n margin-left: 5px;\n margin-top: -5px;\n position: absolute;\n }\n"]))),Gt=Ht.ZP.div(Mt||(Mt=jt(["\n padding-bottom: 20px;\n"]))),Kt=Ht.ZP.div(Ut||(Ut=jt(["\n color: #9e9e9e;\n padding: 5px 10px 5px 20px;\n"]))),Qt=function(){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).forEach(((t,n)=>{t.element&&t.children?e.push((0,Wt.jsx)(Kt,{children:t.menu})):t.path&&/^https?:\/\//.test(t.path)?/^https?:\/\/uiw.gitee.io/.test(t.path)?e.push((0,Wt.jsx)(Vt.Z,{href:"uiwjs.github.io",children:(0,Wt.jsxs)("a",{href:t.path,target:"__blank",children:[t.menu,(0,Wt.jsxs)("svg",{viewBox:"0 0 1024 1024",width:14,children:[(0,Wt.jsx)("path",{d:"M821.1456 276.8384c-235.9296 25.1392-449.1776 226.7136-490.5472 452.352a38.4 38.4 0 1 1-75.5712-13.824c45.568-248.576 269.312-468.48 526.6944-510.6688l-117.8112-69.1712a38.4 38.4 0 0 1 38.912-66.2528l223.3344 131.1744a38.4 38.4 0 0 1 10.1376 57.6l-170.752 206.6432a38.4 38.4 0 1 1-59.1872-48.9472l114.7904-138.9056z"}),(0,Wt.jsx)("path",{d:"M832 620.0832a38.4 38.4 0 0 1 76.8 0v158.208c0 85.9648-61.5936 157.8496-140.8 157.8496H204.8c-79.2064 0-140.8-71.8848-140.8-157.9008V300.3904c0-86.016 61.5936-157.8496 140.8-157.8496h220.2112a38.4 38.4 0 1 1 0 76.8H204.8c-33.8944 0-64 35.072-64 81.0496V778.24c0 45.9776 30.1056 81.1008 64 81.1008h563.2c33.8944 0 64-35.1232 64-81.1008v-158.1568z"})]})]})},n)):e.push((0,Wt.jsxs)("a",{href:t.path,target:"__blank",children:[t.menu,(0,Wt.jsxs)("svg",{viewBox:"0 0 1024 1024",width:14,children:[(0,Wt.jsx)("path",{d:"M821.1456 276.8384c-235.9296 25.1392-449.1776 226.7136-490.5472 452.352a38.4 38.4 0 1 1-75.5712-13.824c45.568-248.576 269.312-468.48 526.6944-510.6688l-117.8112-69.1712a38.4 38.4 0 0 1 38.912-66.2528l223.3344 131.1744a38.4 38.4 0 0 1 10.1376 57.6l-170.752 206.6432a38.4 38.4 0 1 1-59.1872-48.9472l114.7904-138.9056z"}),(0,Wt.jsx)("path",{d:"M832 620.0832a38.4 38.4 0 0 1 76.8 0v158.208c0 85.9648-61.5936 157.8496-140.8 157.8496H204.8c-79.2064 0-140.8-71.8848-140.8-157.9008V300.3904c0-86.016 61.5936-157.8496 140.8-157.8496h220.2112a38.4 38.4 0 1 1 0 76.8H204.8c-33.8944 0-64 35.072-64 81.0496V778.24c0 45.9776 30.1056 81.1008 64 81.1008h563.2c33.8944 0 64-35.1232 64-81.1008v-158.1568z"})]})]},n)):e.push((0,Wt.jsx)(Tt,{to:t.path||"",children:t.menu},n)),t.children&&(e=e.concat(Qt(t.children)))})),e};function Yt(){return(0,Wt.jsxs)($t,{id:"test",children:[(0,Wt.jsxs)(Zt,{children:[(0,Wt.jsx)("svg",{width:"42",height:"42",viewBox:"0 0 200 200",children:(0,Wt.jsx)("path",{fill:"#fff",d:"M76.2982,97.8642 C83.8948,85.233 106.6152,75.1252 122.604,99.964 C134.404,116.8096 154.6142,132.3964 154.6142,132.3964 C154.6142,132.3964 169.7504,144.1896 160.0774,166.9258 C150.4016,189.6648 115.0254,177.854 115.0254,177.854 C115.0254,177.854 101.9808,173.6724 86.8418,177.0188 C71.6968,180.398 58.646,179.1156 58.646,179.1156 L58.5170013,179.115945 C56.9070615,179.10197 40.68793,178.43222 35.8986,157.2324 C30.8574,134.9048 53.5688,122.6852 55.2622,120.6004 C56.9436,118.4858 68.7348,110.4954 76.2982,97.8642 Z M83.6554,110.6684 L83.6554,125.6678 L71.4089473,125.668111 C71.168535,125.689009 59.126666,126.80248 54.8762,140.512 C53.3864,149.7492 56.1958,155.1804 56.6894,156.3496 C57.192,157.5008 61.1474,164.2624 71.0804,166.234 L71.0804,166.234 L94.0762,166.234 L94.0762,110.8264 L83.6554,110.6684 Z M110.4478,126.822 L99.707,126.995 L99.707,156.1766 C99.707,156.1766 100.1946,163.4392 110.4478,166.076 L110.4478,166.076 L136.9142,166.076 L136.9142,126.995 L125.4972,126.995 L125.4972,156.3496 L114.5886,156.3496 C114.5886,156.3496 111.103,155.8426 110.4478,153.0508 L110.4478,153.0508 L110.4478,126.822 Z M83.4822,134.574 L83.4822,157.1548 L74.2146595,157.154538 C74.021778,157.14285 67.7381323,156.706911 65.7882,149.418 C64.7888,146.1164 65.9466,142.3254 66.4642,140.8432 C66.946,139.358 69.1,135.9012 73.558,134.574 L73.558,134.574 L83.4822,134.574 Z M154.6154,67.9576 C170.1884,67.9576 174.383,83.133 174.383,88.1676 C174.383,93.235 176.5042,114.6976 157.1226,115.1212 C137.7472,115.5506 136.9304,102.0634 136.9304,92.3998 L136.931036,92.0948755 C136.9734,81.9920439 139.168826,67.9576 154.6154,67.9576 Z M41.8012,56.1618 C53.1822,55.1836 61.5626,67.5942 62.4332,74.6986 C62.9628,79.3096 65.3682,100.3876 47.6772,104.1784 C30.025,107.9692 23.4518,87.5982 25.3906,78.063 C25.3906,78.063 27.4818,57.4414 41.8012,56.1618 Z M107.8742,45.2374 C108.9274,35.5886 120.497,20.7922 129.766,22.9096 C139.0108,25.0096 147.4392,37.232 145.7368,47.7456 C144.0674,58.2772 135.669,72.1728 122.6034,70.4848 C109.5706,68.8086 106.6146,57.0304 107.8742,45.2374 Z M80.5208,18.6934 C90.2924,18.6934 98.188,29.9018 98.188,43.7528 C98.188,57.6158 90.2924,68.8274 80.5208,68.8274 C70.7612,68.8274 62.8446,57.6158 62.8446,43.7528 C62.8446,29.9018 70.7612,18.6934 80.5208,18.6934 Z"})}),(0,Wt.jsxs)("div",{children:["\u767e\u5ea6\u5730\u56fe React \u7ec4\u4ef6",(0,Wt.jsx)("sup",{children:"2.6.2"})]})]}),(0,Wt.jsx)(Gt,{children:Qt(kn).map(((e,t)=>i.isValidElement(e)?i.cloneElement(e,{key:t}):null))})]})}var Jt,Xt;const en=Ht.ZP.div(Jt||(Jt=jt(["\n display: flex;\n height: 100%;\n"]))),tn=Ht.ZP.main(Xt||(Xt=jt(["\n flex: 1;\n min-height: 100%;\n box-sizing: border-box;\n margin-left: 250px;\n"])));function nn(){return(0,Wt.jsxs)(en,{className:"wmde-markdown-var",children:[(0,Wt.jsx)(qt.Z,{fixed:!0,zIndex:99,size:60,target:"__blank",href:"https://github.com/uiwjs/react-baidu-map"}),(0,Wt.jsx)(Yt,{}),(0,Wt.jsx)(tn,{children:(0,Wt.jsx)(lt,{})}),(0,Wt.jsx)(Pt,{})]})}var rn,on=n(8532),an=n(948);const un=Ht.ZP.div(rn||(rn=jt(["\n padding: 20px 23px 60px 23px;\n a {\n color: #ced1d4;\n text-decoration: none;\n transition: color 0.3s;\n margin: 0 3px;\n &:hover {\n color: black;\n }\n & + a {\n margin-left: 10px;\n }\n &::after {\n content: ' ';\n height: 13px;\n width: 1px;\n margin-left: 10px;\n display: inline-block;\n vertical-align: middle;\n background-color: #e5e9ec;\n }\n &:last-child::after {\n display: none;\n }\n }\n"]))),sn=e=>{const{editorUrl:t}=e||{};return(0,Wt.jsxs)(un,{children:[t&&(0,Wt.jsx)("a",{title:"Editor Current Page",target:"_blank",rel:"noreferrer",href:"https://github.com/uiwjs/react-baidu-map/tree/master/".concat(t),children:"\u7f16\u8f91\u5f53\u524d\u9875\u9762"}),(0,Wt.jsx)("a",{target:"_blank",rel:"noopener noreferrer",href:"https://github.com/uiwjs/react-baidu-map/issues/new",children:"\u63d0\u4ea4 Bug"}),(0,Wt.jsx)("a",{target:"_blank",rel:"noopener noreferrer",href:"https://github.com/uiwjs/react-baidu-map",children:"GitHub"}),(0,Wt.jsx)("a",{target:"_blank",rel:"noopener noreferrer",href:"https://github.com/kktjs/kkt",children:"kkt"}),(0,Wt.jsx)("a",{target:"_blank",rel:"noopener noreferrer",href:"https://github.com/uiwjs/uiw",children:"uiwjs"}),(0,Wt.jsx)("a",{target:"_blank",rel:"noopener noreferrer",href:"https://github.com/uiwjs/react-amap",children:"\u9ad8\u5fb7\u5730\u56fe React \u7248\u672c"})]})};var ln,cn;const fn=Ht.zo.nav(ln||(ln=jt(["\n ul,\n ul li {\n list-style: none;\n padding-left: 0;\n }\n"]))),dn=Ht.zo.aside(cn||(cn=jt(["\n position: sticky;\n right: 0;\n top: 0px;\n z-index: 999;\n max-height: calc(100vh - 6px);\n overflow: auto;\n > ul {\n padding-left: 10px;\n }\n li {\n height: 22px;\n line-height: 22px;\n }\n .active::before {\n content: ' ';\n display: block;\n background-color: #f38701;\n border-radius: 2px;\n margin-left: -10px;\n height: 18px;\n margin-top: 3px;\n position: absolute;\n transition: top 0.3s;\n width: 5px;\n }\n"])));const pn=e=>{let{dom:t,mdStr:n}=e;!function(e){const{dom:t,mdStr:n}=e;(0,i.useEffect)((()=>{const e=null===t||void 0===t?void 0:t.querySelectorAll('a.anchor[href^="#"]');e&&e.length>0&&e.forEach((e=>{e.onclick=t=>{t.preventDefault();const n=e.parentElement.id;var r;n&&(null===(r=document.querySelector("#".concat(n)))||void 0===r||r.scrollIntoView({behavior:"smooth"}))}}))}),[t,n])}({dom:t,mdStr:n});const r=(0,i.useRef)(null),o=function(e){const[t,n]=i.useState([]);return i.useEffect((()=>{const e=Array.from(document.querySelectorAll("h2, h3, h4, h5, h6")).filter((e=>e.id)).map((e=>{var t;return{id:e.id,text:null!==(t=e.textContent)&&void 0!==t?t:"",level:Number(e.tagName.substring(1))}}));n(e)}),[e]),t}(n),a=function(e,t){const[n,r]=i.useState(),o=i.useRef();return i.useEffect((()=>{var n;const i=e.map((e=>document.getElementById(e)));return null===(n=o.current)||void 0===n||n.disconnect(),o.current=new IntersectionObserver((e=>{e.forEach((e=>{null!==e&&void 0!==e&&e.isIntersecting&&r(e.target.id)}))}),t),i.forEach((e=>{var t;e&&(null===(t=o.current)||void 0===t||t.observe(e))})),()=>{var e;return null===(e=o.current)||void 0===e?void 0:e.disconnect()}}),[e,t]),n}(o.map((e=>{let{id:t}=e;return t})),{rootMargin:"0% 0% -50% 0%",threshold:1});return(0,Wt.jsx)(fn,{ref:r,className:"toc",children:(0,Wt.jsxs)(dn,{children:[(0,Wt.jsx)("h2",{children:"\u76ee\u5f55"}),(0,Wt.jsx)("ul",{children:o.map((e=>(0,Wt.jsx)("li",{className:a===e.id?"active":"",children:(0,Wt.jsx)("a",{style:{marginLeft:"".concat(.5*(e.level-2),"em"),fontWeight:a===e.id?"bold":"normal"},href:"#".concat(e.id),onClick:t=>{var n;t.preventDefault(),console.log("heading.id",a,e.id),null===(n=document.querySelector("#".concat(e.id)))||void 0===n||n.scrollIntoView({behavior:"smooth"})},children:e.text})},e.id)))})]})})};var hn,mn,gn;const yn=Ht.ZP.div(hn||(hn=jt(["\n width: 100%;\n height: 100%;\n position: relative;\n"]))),vn=(0,Ht.ZP)(on.Z)(mn||(mn=jt(["\n max-width: none;\n margin: inherit;\n box-shadow: 0 0 0;\n border: 0;\n pre[data-type='rehyp'] {\n overflow: initial;\n }\n"]))),bn=Ht.ZP.main(gn||(gn=jt(["\n padding: 20px 30px 120px 30px;\n display: grid;\n grid-template-columns: minmax(0, 3.5fr) 240px;\n grid-template-areas: 'main toc';\n border: 0;\n &::after,\n &::before {\n content: none;\n }\n"])));function xn(e){const t=(0,i.useRef)(null),[n,r]=(0,i.useState)(""),[o,a]=(0,i.useState)(),u=e.path;return(0,i.useEffect)((()=>{u&&u().then((e=>{r(e.default.source),a(e.default)}))}),[u]),(0,Wt.jsxs)(yn,{ref:t,children:[n&&(0,Wt.jsxs)(bn,{children:[(0,Wt.jsx)(vn,{source:n||"",data:o}),(0,Wt.jsx)(pn,{dom:t.current,mdStr:n})]}),(0,Wt.jsx)(an.Z,{style:{float:"right"},children:"Top"}),(0,Wt.jsx)(sn,{editorUrl:e.editor})]})}const kn=[{path:"/",element:(0,Wt.jsx)(nn,{}),children:[{index:!0,menu:"\u5feb\u901f\u5f00\u59cb",element:(0,Wt.jsx)(xn,{path:()=>Promise.all([n.e(952),n.e(221)]).then(n.bind(n,8221)),editor:"/packages/baidu-map/README.md"})},{menu:"\u5bb9\u5668",element:(0,Wt.jsx)(lt,{}),children:[{path:"api-loader",menu:"APILoader \u7ec4\u4ef6",element:(0,Wt.jsx)(xn,{path:()=>Promise.all([n.e(952),n.e(837)]).then(n.bind(n,837)),editor:"/packages/api-loader/README.md"})},{path:"map",menu:"Map \u7ec4\u4ef6",element:(0,Wt.jsx)(xn,{path:()=>Promise.all([n.e(952),n.e(727)]).then(n.bind(n,3727)),editor:"/packages/map/README.md"})},{path:"with-map",menu:"withMap",element:(0,Wt.jsx)(xn,{path:()=>Promise.all([n.e(952),n.e(436)]).then(n.bind(n,3436)),editor:"/packages/with-map/README.md"})},{path:"map-types",menu:"Support TypeScript",element:(0,Wt.jsx)(xn,{path:()=>n.e(97).then(n.bind(n,2097)),editor:"/packages/map-types/README.md"})}]},{menu:"\u63a7\u4ef6",element:(0,Wt.jsx)(lt,{}),children:[{menu:"Control \u81ea\u5b9a\u4e49\u63a7\u4ef6",path:"control",element:(0,Wt.jsx)(xn,{path:()=>Promise.all([n.e(952),n.e(234)]).then(n.bind(n,3234)),editor:"/packages/control/README.md"})},{menu:"CopyrightControl \u7248\u6743\u63a7\u4ef6",path:"copyright-control",element:(0,Wt.jsx)(xn,{path:()=>Promise.all([n.e(952),n.e(544)]).then(n.bind(n,7544)),editor:"/packages/copyright-control/README.md"})},{menu:"NavigationControl \u5e73\u79fb\u7f29\u653e\u63a7\u4ef6",path:"navigation-control",element:(0,Wt.jsx)(xn,{path:()=>Promise.all([n.e(952),n.e(783)]).then(n.bind(n,3783)),editor:"/packages/navigation-control/README.md"})},{menu:"GeolocationControl \u5b9a\u4f4d\u63a7\u4ef6",path:"geolocation-control",element:(0,Wt.jsx)(xn,{path:()=>Promise.all([n.e(952),n.e(805)]).then(n.bind(n,6805)),editor:"/packages/geolocation-control/README.md"})},{menu:"OverviewMapControl \u7f29\u7565\u5730\u56fe",path:"overview-map-control",element:(0,Wt.jsx)(xn,{path:()=>Promise.all([n.e(952),n.e(570)]).then(n.bind(n,7570)),editor:"/packages/overview-map-control/README.md"})},{menu:"ScaleControl \u6bd4\u4f8b\u5c3a\u63a7\u4ef6",path:"scale-control",element:(0,Wt.jsx)(xn,{path:()=>Promise.all([n.e(952),n.e(156)]).then(n.bind(n,2156)),editor:"/packages/scale-control/README.md"})},{menu:"MapTypeControl \u5730\u56fe\u7c7b\u578b\u63a7\u4ef6",path:"map-type-control",element:(0,Wt.jsx)(xn,{path:()=>Promise.all([n.e(952),n.e(914)]).then(n.bind(n,6914)),editor:"/packages/map-type-control/README.md"})},{menu:"PanoramaControl \u5168\u666f\u5730\u56fe\u63a7\u4ef6",path:"panorama-control",element:(0,Wt.jsx)(xn,{path:()=>Promise.all([n.e(952),n.e(688)]).then(n.bind(n,688)),editor:"/packages/panorama-control/README.md"})}]},{menu:"\u8986\u76d6\u7269",element:(0,Wt.jsx)(lt,{}),children:[{menu:"Marker \u70b9\u6807\u6ce8",path:"marker",element:(0,Wt.jsx)(xn,{path:()=>Promise.all([n.e(952),n.e(528)]).then(n.bind(n,2528)),editor:"/packages/marker/README.md"})},{menu:"InfoWindow \u4fe1\u606f\u7a97\u53e3",path:"info-window",element:(0,Wt.jsx)(xn,{path:()=>Promise.all([n.e(952),n.e(96)]).then(n.bind(n,96)),editor:"/packages/info-window/README.md"})},{menu:"Label \u6587\u672c\u6807\u6ce8",path:"label",element:(0,Wt.jsx)(xn,{path:()=>Promise.all([n.e(952),n.e(637)]).then(n.bind(n,4637)),editor:"/packages/label/README.md"})},{menu:"PointCollection \u52a0\u8f7d\u6d77\u91cf\u70b9",path:"point-collection",element:(0,Wt.jsx)(xn,{path:()=>Promise.all([n.e(952),n.e(276)]).then(n.bind(n,5276)),editor:"/packages/point-collection/README.md"})},{menu:"Polyline \u6298\u7ebf\u7ec4\u4ef6",path:"polyline",element:(0,Wt.jsx)(xn,{path:()=>Promise.all([n.e(952),n.e(603)]).then(n.bind(n,9603)),editor:"/packages/polyline/README.md"})},{menu:"Polygon \u591a\u8fb9\u5f62\u7ec4\u4ef6",path:"polygon",element:(0,Wt.jsx)(xn,{path:()=>Promise.all([n.e(952),n.e(930)]).then(n.bind(n,4930)),editor:"/packages/polygon/README.md"})},{menu:"Circle \u5706",path:"circle",element:(0,Wt.jsx)(xn,{path:()=>Promise.all([n.e(952),n.e(559)]).then(n.bind(n,3559)),editor:"/packages/circle/README.md"})},{menu:"GroundOverlay \u5730\u9762\u53e0\u52a0\u5c42",path:"ground-overlay",element:(0,Wt.jsx)(xn,{path:()=>Promise.all([n.e(952),n.e(48)]).then(n.bind(n,1048)),editor:"/packages/ground-overlay/README.md"})},{menu:"CanvasLayer \u81ea\u5b9a\u4e49Canvas",path:"canvas-layer",element:(0,Wt.jsx)(xn,{path:()=>n.e(451).then(n.bind(n,1451)),editor:"/packages/canvas-layer/README.md"})},{menu:"CustomOverlay \u81ea\u5b9a\u4e49\u8986\u76d6\u7269",path:"custom-overlay",element:(0,Wt.jsx)(xn,{path:()=>Promise.all([n.e(952),n.e(657)]).then(n.bind(n,6657)),editor:"/packages/custom-overlay/README.md"})},{menu:"TileLayer \u5730\u56fe\u56fe\u5c42",path:"tile-layer",element:(0,Wt.jsx)(xn,{path:()=>Promise.all([n.e(952),n.e(359)]).then(n.bind(n,7359)),editor:"/packages/tile-layer/README.md"})}]},{menu:"\u7b2c\u4e09\u65b9\u7ec4\u4ef6",element:(0,Wt.jsx)(lt,{}),children:[{menu:"RequireScript \u52a0\u8f7d\u7b2c\u4e09\u65b9\u5305",path:"require-script",element:(0,Wt.jsx)(xn,{path:()=>Promise.all([n.e(952),n.e(467)]).then(n.bind(n,9467)),editor:"/packages/require-script/README.md"})},{menu:"CurveLine \u5f27\u7ebf\u7ec4\u4ef6",path:"curve-line",element:(0,Wt.jsx)(xn,{path:()=>Promise.all([n.e(952),n.e(502)]).then(n.bind(n,5502)),editor:"/packages/curve-line/README.md"})},{menu:"DrawingManager \u9f20\u6807\u7ed8\u5236\u5de5\u5177",path:"drawing-manager",element:(0,Wt.jsx)(xn,{path:()=>Promise.all([n.e(952),n.e(45)]).then(n.bind(n,3045)),editor:"/packages/drawing-manager/README.md"})}]},{menu:"\u5176\u5b83",element:(0,Wt.jsx)(lt,{}),children:[{menu:"\u767e\u5ea6\u62fe\u53d6\u5750\u6807\u7cfb\u7edf",path:"https://api.map.baidu.com/lbsapi/getpoint/index.html"},{menu:"\u767e\u5ea6\u5730\u56fe\u5b98\u65b9 Demo \u793a\u4f8b",path:"https://lbsyun.baidu.com/jsdemo.htm"},{menu:"\u767e\u5ea6\u5730\u56fe API v3.0",path:"https://lbsyun.baidu.com/cms/jsapi/reference/jsapi_reference_3_0.html"},{menu:"\u767e\u5ea6\u5730\u56fe WebGL v1.0 \u7c7b\u53c2\u8003",path:"https://mapopen-pub-jsapi.bj.bcebos.com/jsapi/reference/jsapi_webgl_1_0.html#a2b7"},{menu:"\u6e90\u7801 Github \u4ed3\u5e93",path:"https://github.com/uiwjs/react-baidu-map"},{menu:"\u6e90\u7801 Gitee \u4ed3\u5e93",path:"https://gitee.com/uiw/react-baidu-map"},{menu:"\u56fd\u5185\u955c\u50cf \ud83c\udde8\ud83c\uddf3",path:"https://uiw.gitee.io/react-baidu-map"}]},{menu:"\u76f8\u5173\u8fde\u63a5",element:(0,Wt.jsx)(lt,{}),children:[{menu:"\u767e\u5ea6\u5b98\u65b9 React-BMapGL \u7ec4\u4ef6",path:"https://lbsyun.baidu.com/solutions/reactBmapDoc"},{menu:"\u9ad8\u5fb7\u5730\u56fe React \u7ec4\u4ef6",path:"https://uiwjs.github.io/react-amap/"}]}]}],Dn=document.getElementById("root");(0,o.s)(Dn).render((0,Wt.jsx)(Et,{router:function(e,t){return ie({basename:null==t?void 0:t.basename,future:dt({},null==t?void 0:t.future,{v7_prependBasename:!0}),history:(n={window:null==t?void 0:t.window},void 0===n&&(n={}),y((function(e,t){let{pathname:n="/",search:r="",hash:o=""}=g(e.location.hash.substr(1));return n.startsWith("/")||n.startsWith(".")||(n="/"+n),h("",{pathname:n,search:r,hash:o},t.state&&t.state.usr||null,t.state&&t.state.key||"default")}),(function(e,t){let n=e.document.querySelector("base"),r="";if(n&&n.getAttribute("href")){let t=e.location.href,n=t.indexOf("#");r=-1===n?t:t.slice(0,n)}return r+"#"+("string"===typeof t?t:m(t))}),(function(e,t){d("/"===e.pathname.charAt(0),"relative pathnames are not supported in hash history.push("+JSON.stringify(t)+")")}),n)),hydrationData:(null==t?void 0:t.hydrationData)||gt(),routes:e,mapRouteProperties:ft,window:null==t?void 0:t.window}).initialize();var n}(kn),fallbackElement:(0,Wt.jsx)("div",{children:"Loading..."})}))},4838:(e,t)=>{"use strict";function n(e,t){return(Array.isArray(t)?t:[t]).some((function(t){return"string"===typeof t&&(t=new RegExp(t)),t.test(e||"")}))}},8916:(e,t)=>{"use strict"},7190:e=>{e.exports={trueFunc:function(){return!0},falseFunc:function(){return!1}}},432:e=>{"use strict";var t=Object.prototype.hasOwnProperty,n=Object.prototype.toString,r=Object.defineProperty,o=Object.getOwnPropertyDescriptor,i=function(e){return"function"===typeof Array.isArray?Array.isArray(e):"[object Array]"===n.call(e)},a=function(e){if(!e||"[object Object]"!==n.call(e))return!1;var r,o=t.call(e,"constructor"),i=e.constructor&&e.constructor.prototype&&t.call(e.constructor.prototype,"isPrototypeOf");if(e.constructor&&!o&&!i)return!1;for(r in e);return"undefined"===typeof r||t.call(e,r)},u=function(e,t){r&&"__proto__"===t.name?r(e,t.name,{enumerable:!0,configurable:!0,value:t.newValue,writable:!0}):e[t.name]=t.newValue},s=function(e,n){if("__proto__"===n){if(!t.call(e,n))return;if(o)return o(e,n).value}return e[n]};e.exports=function e(){var t,n,r,o,l,c,f=arguments[0],d=1,p=arguments.length,h=!1;for("boolean"===typeof f&&(h=f,f=arguments[1]||{},d=2),(null==f||"object"!==typeof f&&"function"!==typeof f)&&(f={});d{var t=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,n=/\n/g,r=/^\s*/,o=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,i=/^:\s*/,a=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,u=/^[;\s]*/,s=/^\s+|\s+$/g,l="";function c(e){return e?e.replace(s,l):l}e.exports=function(e,s){if("string"!==typeof e)throw new TypeError("First argument must be a string");if(!e)return[];s=s||{};var f=1,d=1;function p(e){var t=e.match(n);t&&(f+=t.length);var r=e.lastIndexOf("\n");d=~r?e.length-r:d+e.length}function h(){var e={line:f,column:d};return function(t){return t.position=new m(e),b(),t}}function m(e){this.start=e,this.end={line:f,column:d},this.source=s.source}m.prototype.content=e;var g=[];function y(t){var n=new Error(s.source+":"+f+":"+d+": "+t);if(n.reason=t,n.filename=s.source,n.line=f,n.column=d,n.source=e,!s.silent)throw n;g.push(n)}function v(t){var n=t.exec(e);if(n){var r=n[0];return p(r),e=e.slice(r.length),n}}function b(){v(r)}function x(e){var t;for(e=e||[];t=k();)!1!==t&&e.push(t);return e}function k(){var t=h();if("/"==e.charAt(0)&&"*"==e.charAt(1)){for(var n=2;l!=e.charAt(n)&&("*"!=e.charAt(n)||"/"!=e.charAt(n+1));)++n;if(n+=2,l===e.charAt(n-1))return y("End of comment missing");var r=e.slice(2,n-2);return d+=2,p(r),e=e.slice(n),d+=2,t({type:"comment",comment:r})}}function D(){var e=h(),n=v(o);if(n){if(k(),!v(i))return y("property missing ':'");var r=v(a),s=e({type:"declaration",property:c(n[0].replace(t,l)),value:r?c(r[0].replace(t,l)):l});return v(u),s}}return b(),function(){var e,t=[];for(x(t);e=D();)!1!==e&&(t.push(e),x(t));return t}()}},1046:e=>{e.exports=function(e){return null!=e&&null!=e.constructor&&"function"===typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}},8563:(e,t,n)=>{"use strict";n.d(t,{Mx:()=>o,aE:()=>r,pN:()=>i});n(8634),n(5102),n(4838),n(8916);var r=e=>{for(var t,n=/([^?=&]+)=([^&]*)/g,r={};t=n.exec(e);)r[t[1]]=t[2];return r},o=function(e){void 0===e&&(e="");var[t=""]=/mdx:(.[\w|:]+)/i.exec(e)||[];return t.replace(/^mdx:preview:?/,"")},i=function(e){return void 0===e&&(e=""),e&&e.includes("mdx:preview")}},5318:(e,t)=>{function n(e){let t,n=[];for(let r of e.split(",").map((e=>e.trim())))if(/^-?\d+$/.test(r))n.push(parseInt(r,10));else if(t=r.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,r,o,i]=t;if(r&&i){r=parseInt(r),i=parseInt(i);const e=r{var t,n,r=e.exports={};function o(){throw new Error("setTimeout has not been defined")}function i(){throw new Error("clearTimeout has not been defined")}function a(e){if(t===setTimeout)return setTimeout(e,0);if((t===o||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(n){try{return t.call(null,e,0)}catch(n){return t.call(this,e,0)}}}!function(){try{t="function"===typeof setTimeout?setTimeout:o}catch(e){t=o}try{n="function"===typeof clearTimeout?clearTimeout:i}catch(e){n=i}}();var u,s=[],l=!1,c=-1;function f(){l&&u&&(l=!1,u.length?s=u.concat(s):c=-1,s.length&&d())}function d(){if(!l){var e=a(f);l=!0;for(var t=s.length;t;){for(u=s,s=[];++c1)for(var n=1;n{"use strict";n.d(t,{ZP:()=>S});var r=n(5773),o=n(808),i=n(8573),a=n(4760),u={},s=(0,i.createContext)({}),l=(e,t)=>(0,r.Z)({},e,t),c=e=>{var{children:t,value:n}=e,[o,c]=(0,i.useReducer)(l,(0,r.Z)({},u,n));return(0,a.jsx)(s.Provider,{value:(0,r.Z)({},o,{dispatch:c}),children:t})},f=["tagName","className","children"],d=i.forwardRef(((e,t)=>{var{tagName:n="div",className:a,children:u}=e,l=(0,o.Z)(e,f),c=[E+"-code",a].filter(Boolean).join(" ").trim();if((0,i.useContext)(s).collapse)return null;var d=e.href&&"string"===typeof n?"a":n,p=(0,r.Z)({},l,{className:c,ref:t});return i.createElement(d,p,u)}));d.displayName="uiw.CodeLayoutCode";var p=["className","children"],h=i.forwardRef(((e,t)=>{var{className:n,children:i}=e,u=(0,o.Z)(e,p),s=[E+"-preview",n].filter(Boolean).join(" ").trim();return(0,a.jsx)("div",(0,r.Z)({},u,{className:s,ref:t,children:i}))}));h.displayName="uiw.Preview";var m=n(3376),g=n.n(m),y=e=>(0,a.jsx)("svg",{viewBox:"0 0 24 24",fill:"currentColor",children:(0,a.jsx)("path",{d:"M8.64 5.23a1 1 0 0 0-1.41.13l-5 6a1 1 0 0 0 0 1.27l4.83 6a1 1 0 0 0 .78.37 1 1 0 0 0 .78-1.63L4.29 12l4.48-5.36a1 1 0 0 0-.13-1.41zm13.14 6.14-4.78-6a1 1 0 0 0-1.41-.15 1 1 0 0 0-.15 1.41L19.71 12l-4.48 5.37a1 1 0 0 0 .13 1.41A1 1 0 0 0 16 19a1 1 0 0 0 .77-.36l5-6a1 1 0 0 0 .01-1.27z","data-name":"code"})}),v=e=>(0,a.jsxs)("svg",{viewBox:"0 0 24 24",fill:"currentColor",children:[(0,a.jsx)("path",{d:"M18 21h-6a3 3 0 0 1-3-3v-6a3 3 0 0 1 3-3h6a3 3 0 0 1 3 3v6a3 3 0 0 1-3 3zm-6-10a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1v-6a1 1 0 0 0-1-1z"}),(0,a.jsx)("path",{d:"M9.73 15H5.67A2.68 2.68 0 0 1 3 12.33V5.67A2.68 2.68 0 0 1 5.67 3h6.66A2.68 2.68 0 0 1 15 5.67V9.4h-2V5.67a.67.67 0 0 0-.67-.67H5.67a.67.67 0 0 0-.67.67v6.66a.67.67 0 0 0 .67.67h4.06z"})]}),b=e=>(0,a.jsxs)("svg",{viewBox:"0 0 24 24",fill:"green",children:[(0,a.jsx)("path",{d:"M9.71 11.29a1 1 0 0 0-1.42 1.42l3 3A1 1 0 0 0 12 16a1 1 0 0 0 .72-.34l7-8a1 1 0 0 0-1.5-1.32L12 13.54z"}),(0,a.jsx)("path",{d:"M21 11a1 1 0 0 0-1 1 8 8 0 0 1-8 8A8 8 0 0 1 6.33 6.36 7.93 7.93 0 0 1 12 4a8.79 8.79 0 0 1 1.9.22 1 1 0 1 0 .47-1.94A10.54 10.54 0 0 0 12 2a10 10 0 0 0-7 17.09A9.93 9.93 0 0 0 12 22a10 10 0 0 0 10-10 1 1 0 0 0-1-1z"})]}),x=e=>{var[t,n]=(0,i.useState)(!1);return(0,a.jsx)("button",{onClick:()=>{n(!0),g()(e.text||"",(()=>{var e=setTimeout((()=>{n(!1),clearTimeout(e)}),2e3)}))},children:t?(0,a.jsx)(b,{}):(0,a.jsx)(v,{})})},k=["className","children","extra","text","copied","collapse","visibleButton","visible"],D=i.forwardRef(((e,t)=>{var{className:n,children:u,extra:l,text:c="",copied:f=!0,collapse:d=!0,visibleButton:p=!0,visible:h=!0}=e,m=(0,o.Z)(e,k),g=(0,i.useContext)(s),v=[E+"-toolbar",n].filter(Boolean).join(" ").trim();if((0,i.useEffect)((()=>g.dispatch({collapse:d})),[d]),!h)return null;return(0,a.jsxs)("div",(0,r.Z)({className:v},m,{ref:t,children:[(0,a.jsx)("div",{className:E+"-title",children:u}),(0,a.jsxs)("div",{className:E+"-extra",children:[l,f&&(0,a.jsx)(x,{text:c}),p&&(0,a.jsx)("button",{onClick:()=>g.dispatch({collapse:!g.collapse}),children:(0,a.jsx)(y,{})})]})]}))}));D.displayName="uiw.Toolbar";var w=["children","prefixCls","className","bordered","disableCheckered"],E="w-rcpl",C=i.forwardRef(((e,t)=>{var{children:n,prefixCls:u=E,className:s,bordered:l=!0,disableCheckered:c}=e,f=(0,o.Z)(e,w),d=[u,s,l?"w-bordered":null,c?"w-disable-checkered":null].filter(Boolean).join(" ").trim();return(0,a.jsx)("div",(0,r.Z)({ref:t},f,{className:d,children:i.Children.map(n,((e,t)=>i.isValidElement(e)?i.cloneElement(e,(0,r.Z)({},e.props,{key:t})):e))}))})),F=i.forwardRef(((e,t)=>(0,a.jsx)(c,{value:{collapse:!1},children:(0,a.jsx)(C,(0,r.Z)({},e,{ref:t}))})));F.Preview=h,F.Toolbar=D,F.Code=d;const S=F},6638:(e,t,n)=>{"use strict";e.exports=function(e){var t=this;this.Compiler=function(n){return r(n,Object.assign({},t.data("settings"),e,{extensions:t.data("toMarkdownExtensions")||[]}))}};var r=n(8397)},9528:e=>{"use strict";e.exports=function(e,t){var n,r,o=0,i=0;if("string"!==typeof t||1!==t.length)throw new Error("Expected character");e=String(e),r=e.indexOf(t),n=r;for(;-1!==r;)o++,r===n?o>i&&(i=o):o=1,n=r+1,r=e.indexOf(t,n);return i}},8397:(e,t,n)=>{e.exports=n(4059)},7282:e=>{e.exports=function e(t,n){var r,o=-1;if(n.extensions)for(;++o{e.exports=function(e,t,n){var a=n.enter("blockquote"),u=o(r(e,n),i);return a(),u};var r=n(5162),o=n(2357);function i(e,t,n){return">"+(n?"":" ")+e}},114:(e,t,n)=>{e.exports=function(e,t,n,o){var i=-1;for(;++i{e.exports=function(e,t,n){var c,f,d,p,h=a(n),m=e.value||"",g="`"===h?"GraveAccent":"Tilde";i(e,n)?(d=n.enter("codeIndented"),c=u(m,l)):(f=r(h,Math.max(o(m,h)+1,3)),d=n.enter("codeFenced"),c=f,e.lang&&(p=n.enter("codeFencedLang"+g),c+=s(n,e.lang,{before:"`",after:" ",encode:["`"]}),p()),e.lang&&e.meta&&(p=n.enter("codeFencedMeta"+g),c+=" "+s(n,e.meta,{before:" ",after:"\n",encode:["`"]}),p()),c+="\n",m&&(c+=m+"\n"),c+=f);return d(),c};var r=n(4400),o=n(9528),i=n(6363),a=n(8827),u=n(2357),s=n(4586);function l(e,t,n){return(n?"":" ")+e}},2654:(e,t,n)=>{e.exports=function(e,t,n){var a=o(n),u='"'===a?"Quote":"Apostrophe",s=n.enter("definition"),l=n.enter("label"),c="["+i(n,r(e),{before:"[",after:"]"})+"]: ";l(),!e.url||/[ \t\r\n]/.test(e.url)?(l=n.enter("destinationLiteral"),c+="<"+i(n,e.url,{before:"<",after:">"})+">"):(l=n.enter("destinationRaw"),c+=i(n,e.url,{before:" ",after:" "}));l(),e.title&&(l=n.enter("title"+u),c+=" "+a+i(n,e.title,{before:a,after:a})+a,l());return s(),c};var r=n(2638),o=n(5661),i=n(4586)},2486:(e,t,n)=>{e.exports=i,i.peek=function(e,t,n){return n.options.emphasis||"*"};var r=n(7166),o=n(7462);function i(e,t,n){var i=r(n),a=n.enter("emphasis"),u=o(e,n,{before:i,after:i});return a(),i+u+i}},6216:(e,t,n)=>{e.exports=function(e,t,n){var a,u,s,l,c=Math.max(Math.min(6,e.depth||1),1);if(o(e,n))return a=n.enter("headingSetext"),u=n.enter("phrasing"),s=i(e,n,{before:"\n",after:"\n"}),u(),a(),s+"\n"+r(1===c?"=":"-",s.length-(Math.max(s.lastIndexOf("\r"),s.lastIndexOf("\n"))+1));l=r("#",c),a=n.enter("headingAtx"),u=n.enter("phrasing"),s=(s=i(e,n,{before:"# ",after:"\n"}))?l+" "+s:l,n.options.closeAtx&&(s+=" "+l);return u(),a(),s};var r=n(4400),o=n(4797),i=n(7462)},2841:e=>{function t(e){return e.value||""}e.exports=t,t.peek=function(){return"<"}},4610:(e,t,n)=>{e.exports=i,i.peek=function(){return"!"};var r=n(2638),o=n(4586);function i(e,t,n){var i,a,u=e.referenceType,s=n.enter("imageReference"),l=n.enter("label"),c=o(n,e.alt,{before:"[",after:"]"}),f="!["+c+"]";return l(),a=n.stack,n.stack=[],l=n.enter("reference"),i=o(n,r(e),{before:"[",after:"]"}),l(),n.stack=a,s(),"full"!==u&&c&&c===i?"shortcut"!==u&&(f+="[]"):f+="["+i+"]",f}},7968:(e,t,n)=>{e.exports=i,i.peek=function(){return"!"};var r=n(5661),o=n(4586);function i(e,t,n){var i=r(n),a='"'===i?"Quote":"Apostrophe",u=n.enter("image"),s=n.enter("label"),l="!["+o(n,e.alt,{before:"[",after:"]"})+"](";return s(),!e.url&&e.title||/[ \t\r\n]/.test(e.url)?(s=n.enter("destinationLiteral"),l+="<"+o(n,e.url,{before:"<",after:">"})+">"):(s=n.enter("destinationRaw"),l+=o(n,e.url,{before:"(",after:e.title?" ":")"})),s(),e.title&&(s=n.enter("title"+a),l+=" "+i+o(n,e.title,{before:i,after:i})+i,s()),l+=")",u(),l}},875:(e,t,n)=>{t.blockquote=n(5673),t.break=n(114),t.code=n(854),t.definition=n(2654),t.emphasis=n(2486),t.hardBreak=n(114),t.heading=n(6216),t.html=n(2841),t.image=n(7968),t.imageReference=n(4610),t.inlineCode=n(5197),t.link=n(3215),t.linkReference=n(8134),t.list=n(107),t.listItem=n(7501),t.paragraph=n(2183),t.root=n(2580),t.strong=n(580),t.text=n(9329),t.thematicBreak=n(8369)},5197:(e,t,n)=>{e.exports=o,o.peek=function(){return"`"};var r=n(6020);function o(e,t,n){for(var o,i,a,u,s=e.value||"",l="`",c=-1;new RegExp("(^|[^`])"+l+"([^`]|$)").test(s);)l+="`";for(/[^ \r\n]/.test(s)&&(/[ \r\n`]/.test(s.charAt(0))||/[ \r\n`]/.test(s.charAt(s.length-1)))&&(s=" "+s+" ");++c{e.exports=a,a.peek=function(){return"["};var r=n(2638),o=n(7462),i=n(4586);function a(e,t,n){var a,u,s=e.referenceType,l=n.enter("linkReference"),c=n.enter("label"),f=o(e,n,{before:"[",after:"]"}),d="["+f+"]";return c(),u=n.stack,n.stack=[],c=n.enter("reference"),a=i(n,r(e),{before:"[",after:"]"}),c(),n.stack=u,l(),"full"!==s&&f&&f===a?"shortcut"!==s&&(d+="[]"):d+="["+a+"]",d}},3215:(e,t,n)=>{e.exports=u,u.peek=function(e,t,n){return o(e,n)?"<":"["};var r=n(5661),o=n(2787),i=n(7462),a=n(4586);function u(e,t,n){var u,s,l,c,f=r(n),d='"'===f?"Quote":"Apostrophe";return o(e,n)?(c=n.stack,n.stack=[],u=n.enter("autolink"),l="<"+i(e,n,{before:"<",after:">"})+">",u(),n.stack=c,l):(u=n.enter("link"),s=n.enter("label"),l="["+i(e,n,{before:"[",after:"]"})+"](",s(),!e.url&&e.title||/[ \t\r\n]/.test(e.url)?(s=n.enter("destinationLiteral"),l+="<"+a(n,e.url,{before:"<",after:">"})+">"):(s=n.enter("destinationRaw"),l+=a(n,e.url,{before:"(",after:e.title?" ":")"})),s(),e.title&&(s=n.enter("title"+d),l+=" "+f+a(n,e.title,{before:f,after:f})+f,s()),l+=")",u(),l)}},7501:(e,t,n)=>{e.exports=function(e,t,n){var s,l,c,f=o(n),d=i(n);t&&t.ordered&&(f=(t.start>-1?t.start:1)+(!1===n.options.incrementListMarker?0:t.children.indexOf(e))+".");s=f.length+1,("tab"===d||"mixed"===d&&(t&&t.spread||e.spread))&&(s=4*Math.ceil(s/4));return c=n.enter("listItem"),l=u(a(e,n),(function(e,t,n){if(t)return(n?"":r(" ",s))+e;return(n?f:f+r(" ",s-f.length))+e})),c(),l};var r=n(4400),o=n(7697),i=n(5211),a=n(5162),u=n(2357)},107:(e,t,n)=>{e.exports=function(e,t,n){var o=n.enter("list"),i=r(e,n);return o(),i};var r=n(5162)},2183:(e,t,n)=>{e.exports=function(e,t,n){var o=n.enter("paragraph"),i=n.enter("phrasing"),a=r(e,n,{before:"\n",after:"\n"});return i(),o(),a};var r=n(7462)},2580:(e,t,n)=>{e.exports=function(e,t,n){return r(e,n)};var r=n(5162)},580:(e,t,n)=>{e.exports=i,i.peek=function(e,t,n){return n.options.strong||"*"};var r=n(3312),o=n(7462);function i(e,t,n){var i=r(n),a=n.enter("strong"),u=o(e,n,{before:i,after:i});return a(),i+i+u+i+i}},9329:(e,t,n)=>{e.exports=function(e,t,n,o){return r(n,e.value,o)};var r=n(4586)},8369:(e,t,n)=>{e.exports=function(e,t,n){var a=r(i(n)+(n.options.ruleSpaces?" ":""),o(n));return n.options.ruleSpaces?a.slice(0,-1):a};var r=n(4400),o=n(9095),i=n(6899)},4059:(e,t,n)=>{e.exports=function(e,t){var n,f=t||{},d={enter:function(e){return d.stack.push(e),t;function t(){d.stack.pop()}},stack:[],unsafe:[],join:[],handlers:{},options:{}};o(d,{unsafe:u,join:a,handlers:i}),o(d,f),d.options.tightDefinitions&&(d.join=[c].concat(d.join));d.handle=r("type",{invalid:s,unknown:l,handlers:d.handlers}),(n=d.handle(e,null,d,{before:"\n",after:"\n"}))&&10!==n.charCodeAt(n.length-1)&&13!==n.charCodeAt(n.length-1)&&(n+="\n");return n};var r=n(1569),o=n(7282),i=n(875),a=n(9312),u=n(4459);function s(e){throw new Error("Cannot handle value `"+e+"`, expected node")}function l(e){throw new Error("Cannot handle unknown node `"+e.type+"`")}function c(e,t){if("definition"===e.type&&e.type===t.type)return 0}},9312:(e,t,n)=>{e.exports=[function(e,t,n,i){if("list"===t.type&&t.type===e.type&&Boolean(e.ordered)===Boolean(t.ordered)||"code"===t.type&&r(t,i)&&("list"===e.type||e.type===t.type&&r(e,i)))return!1;if("boolean"===typeof n.spread){if("paragraph"===e.type&&(e.type===t.type||"definition"===t.type||"heading"===t.type&&o(t,i)))return;return n.spread?1:0}}];var r=n(6363),o=n(4797)},4459:e=>{e.exports=[{character:"\t",inConstruct:["codeFencedLangGraveAccent","codeFencedLangTilde"]},{character:"\r",inConstruct:["codeFencedLangGraveAccent","codeFencedLangTilde","codeFencedMetaGraveAccent","codeFencedMetaTilde","destinationLiteral","headingAtx"]},{character:"\n",inConstruct:["codeFencedLangGraveAccent","codeFencedLangTilde","codeFencedMetaGraveAccent","codeFencedMetaTilde","destinationLiteral","headingAtx"]},{character:" ",inConstruct:["codeFencedLangGraveAccent","codeFencedLangTilde"]},{character:"!",after:"\\[",inConstruct:"phrasing"},{character:'"',inConstruct:"titleQuote"},{atBreak:!0,character:"#"},{character:"#",inConstruct:"headingAtx",after:"(?:[\r\n]|$)"},{character:"&",after:"[#A-Za-z]",inConstruct:"phrasing"},{character:"'",inConstruct:"titleApostrophe"},{character:"(",inConstruct:"destinationRaw"},{before:"\\]",character:"(",inConstruct:"phrasing"},{atBreak:!0,before:"\\d+",character:")"},{character:")",inConstruct:"destinationRaw"},{atBreak:!0,character:"*"},{character:"*",inConstruct:"phrasing"},{atBreak:!0,character:"+"},{atBreak:!0,character:"-"},{atBreak:!0,before:"\\d+",character:".",after:"(?:[ \t\r\n]|$)"},{atBreak:!0,character:"<",after:"[!/?A-Za-z]"},{character:"<",after:"[!/?A-Za-z]",inConstruct:"phrasing"},{character:"<",inConstruct:"destinationLiteral"},{atBreak:!0,character:"="},{atBreak:!0,character:">"},{character:">",inConstruct:"destinationLiteral"},{atBreak:!0,character:"["},{character:"[",inConstruct:["phrasing","label","reference"]},{character:"\\",after:"[\\r\\n]",inConstruct:"phrasing"},{character:"]",inConstruct:["label","reference"]},{atBreak:!0,character:"_"},{before:"[^A-Za-z]",character:"_",inConstruct:"phrasing"},{character:"_",after:"[^A-Za-z]",inConstruct:"phrasing"},{atBreak:!0,character:"`"},{character:"`",inConstruct:["codeFencedLangGraveAccent","codeFencedMetaGraveAccent","phrasing"]},{atBreak:!0,character:"~"}]},2638:(e,t,n)=>{e.exports=function(e){if(e.label||!e.identifier)return e.label||"";return e.identifier.replace(o,"$1").replace(i,a)};var r=n(7849),o=/\\([!-/:-@[-`{-~])/g,i=/&(#(\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function a(e,t){return r(t)||e}},7697:e=>{e.exports=function(e){var t=e.options.bullet||"*";if("*"!==t&&"+"!==t&&"-"!==t)throw new Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}},7166:e=>{e.exports=function(e){var t=e.options.emphasis||"*";if("*"!==t&&"_"!==t)throw new Error("Cannot serialize emphasis with `"+t+"` for `options.emphasis`, expected `*`, or `_`");return t}},8827:e=>{e.exports=function(e){var t=e.options.fence||"`";if("`"!==t&&"~"!==t)throw new Error("Cannot serialize code with `"+t+"` for `options.fence`, expected `` ` `` or `~`");return t}},5211:e=>{e.exports=function(e){var t=e.options.listItemIndent||"tab";if(1===t||"1"===t)return"one";if("tab"!==t&&"one"!==t&&"mixed"!==t)throw new Error("Cannot serialize items with `"+t+"` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`");return t}},5661:e=>{e.exports=function(e){var t=e.options.quote||'"';if('"'!==t&&"'"!==t)throw new Error("Cannot serialize title with `"+t+"` for `options.quote`, expected `\"`, or `'`");return t}},9095:e=>{e.exports=function(e){var t=e.options.ruleRepetition||3;if(t<3)throw new Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}},6899:e=>{e.exports=function(e){var t=e.options.rule||"*";if("*"!==t&&"-"!==t&&"_"!==t)throw new Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}},3312:e=>{e.exports=function(e){var t=e.options.strong||"*";if("*"!==t&&"_"!==t)throw new Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}},5162:(e,t,n)=>{e.exports=function(e,t){var n,o=e.children||[],i=[],a=-1;for(;++a{e.exports=function(e,t,n){var r,o,i,a=e.children||[],u=[],s=-1,l=n.before;for(;++s0&&("\r"===l||"\n"===l)&&"html"===i.type&&(u[u.length-1]=u[u.length-1].replace(/(\r?\n|\r)$/," "),l=" "),u.push(t.handle(i,e,t,{before:l,after:r})),l=u[u.length-1].slice(-1);return u.join("")}},6363:e=>{e.exports=function(e,t){return!t.options.fences&&e.value&&!e.lang&&/[^ \r\n]/.test(e.value)&&!/^[\t ]*(?:[\r\n]|$)|(?:^|[\r\n])[\t ]*$/.test(e.value)}},4797:(e,t,n)=>{e.exports=function(e,t){return t.options.setext&&(!e.depth||e.depth<3)&&r(e)};var r=n(9033)},2787:(e,t,n)=>{e.exports=function(e,t){var n=r(e);return!t.options.resourceLink&&e.url&&!e.title&&e.children&&1===e.children.length&&"text"===e.children[0].type&&(n===e.url||"mailto:"+n===e.url)&&/^[a-z][a-z+.-]+:/i.test(e.url)&&!/[\0- <>\u007F]/.test(e.url)};var r=n(9033)},2357:e=>{e.exports=function(e,n){var r,o=[],i=0,a=0;for(;r=t.exec(e);)u(e.slice(i,r.index)),o.push(r[0]),i=r.index+r[0].length,a++;return u(e.slice(i)),o.join("");function u(e){o.push(n(e,a,!e))}};var t=/\r?\n|\r/g},6020:e=>{e.exports=function(e){var t,n;e._compiled||(t=e.before?"(?:"+e.before+")":"",n=e.after?"(?:"+e.after+")":"",e.atBreak&&(t="[\\r\\n][\\t ]*"+t),e._compiled=new RegExp((t?"("+t+")":"")+(/[|\\{}()[\]^$+*?.-]/.test(e.character)?"\\":"")+e.character+(n||""),"g"));return e._compiled}},9906:e=>{function t(e,t,n){var r;if(!t)return n;for("string"===typeof t&&(t=[t]),r=-1;++r{e.exports=function(e,t,n){var u,s,l,c,f,d,p,h,m=(n.before||"")+(t||"")+(n.after||""),g=[],y=[],v={},b=-1;for(;++b=h||l+1{"use strict";function t(e){return e&&(e.value||e.alt||e.title||"children"in e&&n(e.children)||"length"in e&&n(e))||""}function n(e){for(var n=[],r=-1;++r{"use strict";var t;e.exports=function(e){var n,r="&"+e+";";if((t=t||document.createElement("i")).innerHTML=r,59===(n=t.textContent).charCodeAt(n.length-1)&&"semi"!==e)return!1;return n!==r&&n}},1569:e=>{"use strict";e.exports=function(e,r){var o=r||{};function i(r){var o=i.invalid,a=i.handlers;return r&&n.call(r,e)&&(o=n.call(a,r[e])?a[r[e]]:i.unknown),(o||t).apply(this,arguments)}return i.handlers=o.handlers||{},i.invalid=o.invalid,i.unknown=o.unknown,i};var t=Function.prototype,n={}.hasOwnProperty},8634:(e,t,n)=>{"use strict";var r=n(282),o=n(1676),i=n(6638);e.exports=r().use(o).use(i).freeze()},6415:e=>{"use strict";e.exports=function(e){if(e)throw e}},3731:e=>{"use strict";e.exports=e=>{if("[object Object]"!==Object.prototype.toString.call(e))return!1;const t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}},5715:(e,t,n)=>{"use strict";e.exports=function(e,t,n){"string"!==typeof t&&(n=t,t=void 0);return function(e){var t=e||{},n=function(e,t){var n=-1;for(;++n-1&&(j.call(this,e),_.call(this,e))}function M(){h("atHardBreak",!0)}function U(){var e=this.resume();this.stack[this.stack.length-1].value=e}function q(){var e=this.resume();this.stack[this.stack.length-1].value=e}function H(){var e=this.resume();this.stack[this.stack.length-1].value=e}function V(){var e=this.stack[this.stack.length-1];m("inReference")?(e.type+="Reference",e.referenceType=m("referenceType")||"shortcut",delete e.url,delete e.title):(delete e.identifier,delete e.label,delete e.referenceType),h("referenceType")}function W(){var e=this.stack[this.stack.length-1];m("inReference")?(e.type+="Reference",e.referenceType=m("referenceType")||"shortcut",delete e.url,delete e.title):(delete e.identifier,delete e.label,delete e.referenceType),h("referenceType")}function $(e){this.stack[this.stack.length-2].identifier=a(this.sliceSerialize(e)).toLowerCase()}function Z(){var e=this.stack[this.stack.length-1],t=this.resume();this.stack[this.stack.length-1].label=t,h("inReference",!0),"link"===this.stack[this.stack.length-1].type?this.stack[this.stack.length-1].children=e.children:this.stack[this.stack.length-1].alt=t}function G(){var e=this.resume();this.stack[this.stack.length-1].url=e}function K(){var e=this.resume();this.stack[this.stack.length-1].title=e}function Q(){h("inReference")}function Y(){h("referenceType","collapsed")}function J(e){var t=this.resume();this.stack[this.stack.length-1].label=t,this.stack[this.stack.length-1].identifier=a(this.sliceSerialize(e)).toLowerCase(),h("referenceType","full")}function X(e){h("characterReferenceType",e.type)}function ee(e){var t,n,r=this.sliceSerialize(e),o=m("characterReferenceType");o?(t=u(r,"characterReferenceMarkerNumeric"===o?10:16),h("characterReferenceType")):t=f(r),(n=this.stack.pop()).value+=t,n.position.end=g(e.end)}function te(e){_.call(this,e),this.stack[this.stack.length-1].url=this.sliceSerialize(e)}function ne(e){_.call(this,e),this.stack[this.stack.length-1].url="mailto:"+this.sliceSerialize(e)}function re(){return{type:"blockquote",children:[]}}function oe(){return{type:"code",lang:null,meta:null,value:""}}function ie(){return{type:"inlineCode",value:""}}function ae(){return{type:"definition",identifier:"",label:null,title:null,url:""}}function ue(){return{type:"emphasis",children:[]}}function se(){return{type:"heading",depth:void 0,children:[]}}function le(){return{type:"break"}}function ce(){return{type:"html",value:""}}function fe(){return{type:"image",title:null,url:"",alt:null}}function de(){return{type:"link",title:null,url:"",children:[]}}function pe(e){return{type:"list",ordered:"listOrdered"===e.type,start:null,spread:e._spread,children:[]}}function he(e){return{type:"listItem",spread:e._spread,checked:null,children:[]}}function me(){return{type:"paragraph",children:[]}}function ge(){return{type:"strong",children:[]}}function ye(){return{type:"text",value:""}}function ve(){return{type:"thematicBreak"}}}(n)(c(s(n).document().write(l()(e,t,!0))))};var r=n(8765),o=n(3667),i=n(8025),a=n(4991),u=n(1744),s=n(4751),l=n(5265),c=n(4811),f=n(4537),d=n(6934);function p(e,t){var n,r;for(n in t)r=i.call(e,n)?e[n]:e[n]={},"canContainEols"===n||"transforms"===n?e[n]=[].concat(r,t[n]):Object.assign(r,t[n])}},5184:(e,t,n)=>{"use strict";e.exports=n(5715)},8765:e=>{"use strict";function t(e){return e&&(e.value||e.alt||e.title||"children"in e&&n(e.children)||"length"in e&&n(e))||""}function n(e){for(var n=[],r=-1;++r{"use strict";var r=n(8254)(/[A-Za-z]/);e.exports=r},6995:(e,t,n)=>{"use strict";var r=n(8254)(/[\dA-Za-z]/);e.exports=r},3290:(e,t,n)=>{"use strict";var r=n(8254)(/[#-'*+\--9=?A-Z^-~]/);e.exports=r},1207:e=>{"use strict";e.exports=function(e){return e<32||127===e}},1091:(e,t,n)=>{"use strict";var r=n(8254)(/\d/);e.exports=r},4900:(e,t,n)=>{"use strict";var r=n(8254)(/[\dA-Fa-f]/);e.exports=r},769:(e,t,n)=>{"use strict";var r=n(8254)(/[!-/:-@[-`{-~]/);e.exports=r},6377:e=>{"use strict";e.exports=function(e){return e<0||32===e}},4392:e=>{"use strict";e.exports=function(e){return e<-2}},9056:e=>{"use strict";e.exports=function(e){return-2===e||-1===e||32===e}},5414:(e,t,n)=>{"use strict";var r=n(5696),o=n(8254)(r);e.exports=o},6548:(e,t,n)=>{"use strict";var r=n(8254)(/\s/);e.exports=r},3667:e=>{"use strict";var t=Object.assign;e.exports=t},9393:e=>{"use strict";var t=String.fromCharCode;e.exports=t},8025:e=>{"use strict";var t={}.hasOwnProperty;e.exports=t},8971:e=>{"use strict";e.exports=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","section","source","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"]},7322:e=>{"use strict";e.exports=["pre","script","style","textarea"]},7327:e=>{"use strict";var t=[].splice;e.exports=t},5696:e=>{"use strict";e.exports=/[!-\/:-@\[-`\{-~\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]/},6236:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(9402),o=n(2463),i=n(9829),a=n(581),u=n(3382),s=n(4671),l=n(601),c=n(1827),f=n(5518),d=n(8194),p=n(462),h=n(1034),m=n(4428),g=n(4945),y=n(9255),v=n(4902),b=n(721),x=n(2836),k=n(1699),D=n(1862),w=n(5861),E={42:k,43:k,45:k,48:k,49:k,50:k,51:k,52:k,53:k,54:k,55:k,56:k,57:k,62:a},C={91:d},F={"-2":c,"-1":c,32:c},S={35:h,42:w,45:[D,w],60:m,61:D,95:w,96:l,126:l},A={38:s,92:u},T={"-5":x,"-4":x,"-3":x,33:v,38:s,42:o,60:[i,g],91:b,92:[p,u],93:y,95:o,96:f},P={null:[o,r.resolver]};t.contentInitial=C,t.disable={null:[]},t.document=E,t.flow=S,t.flowInitial=F,t.insideSpan=P,t.string=A,t.text=T},490:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(4392),o=n(6231),i=function(e){var t,n=e.attempt(this.parser.constructs.contentInitial,(function(t){if(null===t)return void e.consume(t);return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),o(e,n,"linePrefix")}),(function(t){return e.enter("paragraph"),i(t)}));return n;function i(n){var r=e.enter("chunkText",{contentType:"text",previous:t});return t&&(t.next=r),t=r,a(n)}function a(t){return null===t?(e.exit("chunkText"),e.exit("paragraph"),void e.consume(t)):r(t)?(e.consume(t),e.exit("chunkText"),i):(e.consume(t),a)}};t.tokenize=i},1717:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(4392),o=n(6231),i=n(6941),a=function(e){var t,n,o,a=this,l=[],c=0,f={tokenize:function(e,r){var o=0;return t={},c;function c(r){return ot;)a.containerState=l[i][1],l[i][0].exit.call(a,e);l.length=t}},u={tokenize:function(e,t,n){return o(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.indexOf("codeIndented")>-1?void 0:4)}},s={tokenize:function(e,t,n){return o(e,e.lazy(this.parser.constructs.flow,t,n),"linePrefix",this.parser.constructs.disable.null.indexOf("codeIndented")>-1?void 0:4)}};t.tokenize=a},6604:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(2747),o=n(6231),i=n(6941),a=function(e){var t=this,n=e.attempt(i,(function(r){if(null===r)return void e.consume(r);return e.enter("lineEndingBlank"),e.consume(r),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}),e.attempt(this.parser.constructs.flowInitial,a,o(e,e.attempt(this.parser.constructs.flow,a,e.attempt(r,a)),"linePrefix")));return n;function a(r){if(null!==r)return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),t.currentConstruct=void 0,n;e.consume(r)}};t.tokenize=a},9402:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(3667),o=n(1339),i=s("text"),a=s("string"),u={resolveAll:l()};function s(e){return{tokenize:function(t){var n=this,r=this.parser.constructs[e],o=t.attempt(r,i,a);return i;function i(e){return s(e)?o(e):a(e)}function a(e){if(null!==e)return t.enter("data"),t.consume(e),u;t.consume(e)}function u(e){return s(e)?(t.exit("data"),o(e)):(t.consume(e),u)}function s(e){var t=r[e],o=-1;if(null===e)return!0;if(t)for(;++o{"use strict";var r=n(490),o=n(1717),i=n(6604),a=n(9402),u=n(6369),s=n(7058),l=n(9990),c=n(6236);e.exports=function(e){var t={defined:[],constructs:u([c].concat(l((e||{}).extensions))),content:n(r),document:n(o),flow:n(i),string:n(a.string),text:n(a.text)};return t;function n(e){return function(n){return s(t,e,n)}}}},4811:(e,t,n)=>{"use strict";var r=n(6308);e.exports=function(e){for(;!r(e););return e}},5265:e=>{"use strict";var t=/[\0\t\n\r]/g;e.exports=function(){var e,n=!0,r=1,o="";return function(i,a,u){var s,l,c,f,d,p=[];i=o+i.toString(a),c=0,o="",n&&(65279===i.charCodeAt(0)&&c++,n=void 0);for(;c{"use strict";var r=n(5911),o=n(4485),i=n(1084),a=n(8375),u=n(3173),s=n(1339),l={name:"attention",tokenize:function(e,t){var n,r=i(this.previous);return function(t){return e.enter("attentionSequence"),n=t,o(t)};function o(a){var u,s,l,c;return a===n?(e.consume(a),o):(u=e.exit("attentionSequence"),l=!(s=i(a))||2===s&&r,c=!r||2===r&&s,u._open=42===n?l:l&&(r||!c),u._close=42===n?c:c&&(s||!l),t(a))}},resolveAll:function(e,t){var n,i,l,c,f,d,p,h,m=-1;for(;++m1&&e[m][1].end.offset-e[m][1].start.offset>1?2:1)>1?"strongSequence":"emphasisSequence",start:a(s(e[n][1].end),-d),end:s(e[n][1].end)},f={type:d>1?"strongSequence":"emphasisSequence",start:s(e[m][1].start),end:a(s(e[m][1].start),d)},l={type:d>1?"strongText":"emphasisText",start:s(e[n][1].end),end:s(e[m][1].start)},i={type:d>1?"strong":"emphasis",start:s(c.start),end:s(f.end)},e[n][1].end=s(c.start),e[m][1].start=s(f.end),p=[],e[n][1].end.offset-e[n][1].start.offset&&(p=r(p,[["enter",e[n][1],t],["exit",e[n][1],t]])),p=r(p,[["enter",i,t],["enter",c,t],["exit",c,t],["enter",l,t]]),p=r(p,u(t.parser.constructs.insideSpan.null,e.slice(n+1,m),t)),p=r(p,[["exit",l,t],["enter",f,t],["exit",f,t],["exit",i,t]]),e[m][1].end.offset-e[m][1].start.offset?(h=2,p=r(p,[["enter",e[m][1],t],["exit",e[m][1],t]])):h=0,o(e,n-1,m-n+3,p),m=n+p.length-h-2;break}m=-1;for(;++m{"use strict";var r=n(277),o=n(6995),i=n(3290),a=n(1207),u={name:"autolink",tokenize:function(e,t,n){var u=1;return function(t){return e.enter("autolink"),e.enter("autolinkMarker"),e.consume(t),e.exit("autolinkMarker"),e.enter("autolinkProtocol"),s};function s(t){return r(t)?(e.consume(t),l):i(t)?d(t):n(t)}function l(e){return 43===e||45===e||46===e||o(e)?c(e):d(e)}function c(t){return 58===t?(e.consume(t),f):(43===t||45===t||46===t||o(t))&&u++<32?(e.consume(t),c):d(t)}function f(t){return 62===t?(e.exit("autolinkProtocol"),g(t)):32===t||60===t||a(t)?n(t):(e.consume(t),f)}function d(t){return 64===t?(e.consume(t),u=0,p):i(t)?(e.consume(t),d):n(t)}function p(e){return o(e)?h(e):n(e)}function h(t){return 46===t?(e.consume(t),u=0,p):62===t?(e.exit("autolinkProtocol").type="autolinkEmail",g(t)):m(t)}function m(t){return(45===t||o(t))&&u++<63?(e.consume(t),45===t?m:h):n(t)}function g(n){return e.enter("autolinkMarker"),e.consume(n),e.exit("autolinkMarker"),e.exit("autolink"),t}}};e.exports=u},581:(e,t,n)=>{"use strict";var r=n(9056),o=n(6231),i={name:"blockQuote",tokenize:function(e,t,n){var o=this;return function(t){if(62===t)return o.containerState.open||(e.enter("blockQuote",{_container:!0}),o.containerState.open=!0),e.enter("blockQuotePrefix"),e.enter("blockQuoteMarker"),e.consume(t),e.exit("blockQuoteMarker"),i;return n(t)};function i(n){return r(n)?(e.enter("blockQuotePrefixWhitespace"),e.consume(n),e.exit("blockQuotePrefixWhitespace"),e.exit("blockQuotePrefix"),t):(e.exit("blockQuotePrefix"),t(n))}},continuation:{tokenize:function(e,t,n){return o(e,e.attempt(i,t,n),"linePrefix",this.parser.constructs.disable.null.indexOf("codeIndented")>-1?void 0:4)}},exit:function(e){e.exit("blockQuote")}};e.exports=i},3382:(e,t,n)=>{"use strict";var r=n(769),o={name:"characterEscape",tokenize:function(e,t,n){return function(t){return e.enter("characterEscape"),e.enter("escapeMarker"),e.consume(t),e.exit("escapeMarker"),o};function o(o){return r(o)?(e.enter("characterEscapeValue"),e.consume(o),e.exit("characterEscapeValue"),e.exit("characterEscape"),t):n(o)}}};e.exports=o},4671:(e,t,n)=>{"use strict";var r=n(4537),o=n(6995),i=n(1091),a=n(4900);function u(e){return e&&"object"===typeof e&&"default"in e?e:{default:e}}var s=u(r),l={name:"characterReference",tokenize:function(e,t,n){var r,u,l=this,c=0;return function(t){return e.enter("characterReference"),e.enter("characterReferenceMarker"),e.consume(t),e.exit("characterReferenceMarker"),f};function f(t){return 35===t?(e.enter("characterReferenceMarkerNumeric"),e.consume(t),e.exit("characterReferenceMarkerNumeric"),d):(e.enter("characterReferenceValue"),r=31,u=o,p(t))}function d(t){return 88===t||120===t?(e.enter("characterReferenceMarkerHexadecimal"),e.consume(t),e.exit("characterReferenceMarkerHexadecimal"),e.enter("characterReferenceValue"),r=6,u=a,p):(e.enter("characterReferenceValue"),r=7,u=i,p(t))}function p(i){var a;return 59===i&&c?(a=e.exit("characterReferenceValue"),u!==o||s.default(l.sliceSerialize(a))?(e.enter("characterReferenceMarker"),e.consume(i),e.exit("characterReferenceMarker"),e.exit("characterReference"),t):n(i)):u(i)&&c++{"use strict";var r=n(4392),o=n(6377),i=n(557),a=n(6231),u={name:"codeFenced",tokenize:function(e,t,n){var u,s=this,l={tokenize:function(e,t,n){var o=0;return a(e,i,"linePrefix",this.parser.constructs.disable.null.indexOf("codeIndented")>-1?void 0:4);function i(t){return e.enter("codeFencedFence"),e.enter("codeFencedFenceSequence"),s(t)}function s(t){return t===u?(e.consume(t),o++,s):o{"use strict";var r=n(4392),o=n(4485),i=n(557),a=n(6231),u={name:"codeIndented",tokenize:function(e,t,n){return e.attempt(s,o,n);function o(n){return null===n?t(n):r(n)?e.attempt(s,o,t)(n):(e.enter("codeFlowValue"),i(n))}function i(t){return null===t||r(t)?(e.exit("codeFlowValue"),o(t)):(e.consume(t),i)}},resolve:function(e,t){var n={type:"codeIndented",start:e[0][1].start,end:e[e.length-1][1].end};return o(e,0,0,[["enter",n,t]]),o(e,e.length,0,[["exit",n,t]]),e}},s={tokenize:function(e,t,n){var o=this;return a(e,(function u(s){if(r(s))return e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),a(e,u,"linePrefix",5);return i(o.events,"linePrefix")<4?n(s):t(s)}),"linePrefix",5)},partial:!0};e.exports=u},5518:(e,t,n)=>{"use strict";var r=n(4392),o={name:"codeText",tokenize:function(e,t,n){var o,i,a=0;return function(t){return e.enter("codeText"),e.enter("codeTextSequence"),u(t)};function u(t){return 96===t?(e.consume(t),a++,u):(e.exit("codeTextSequence"),s(t))}function s(t){return null===t?n(t):96===t?(i=e.enter("codeTextSequence"),o=0,c(t)):32===t?(e.enter("space"),e.consume(t),e.exit("space"),s):r(t)?(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),s):(e.enter("codeTextData"),l(t))}function l(t){return null===t||32===t||96===t||r(t)?(e.exit("codeTextData"),s(t)):(e.consume(t),l)}function c(n){return 96===n?(e.consume(n),o++,c):o===a?(e.exit("codeTextSequence"),e.exit("codeText"),t(n)):(i.type="codeTextData",l(n))}},resolve:function(e){var t,n,r=e.length-4,o=3;if(("lineEnding"===e[o][1].type||"space"===e[o][1].type)&&("lineEnding"===e[r][1].type||"space"===e[r][1].type))for(t=o;++t{"use strict";var r=n(4392),o=n(557),i=n(6308),a=n(6231),u={tokenize:function(e,t){var n;return function(t){return e.enter("content"),n=e.enter("chunkContent",{contentType:"content"}),o(t)};function o(t){return null===t?i(t):r(t)?e.check(s,a,i)(t):(e.consume(t),o)}function i(n){return e.exit("chunkContent"),e.exit("content"),t(n)}function a(t){return e.consume(t),e.exit("chunkContent"),n=n.next=e.enter("chunkContent",{contentType:"content",previous:n}),o}},resolve:function(e){return i(e),e},interruptible:!0,lazy:!0},s={tokenize:function(e,t,n){var i=this;return function(t){return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),a(e,u,"linePrefix")};function u(a){return null===a||r(a)?n(a):i.parser.constructs.disable.null.indexOf("codeIndented")>-1||o(i.events,"linePrefix")<4?e.interrupt(i.parser.constructs.flow,n,t)(a):t(a)}},partial:!0};e.exports=u},8194:(e,t,n)=>{"use strict";var r=n(4392),o=n(6377),i=n(4991),a=n(4559),u=n(9304),s=n(6231),l=n(9943),c=n(5191),f={name:"definition",tokenize:function(e,t,n){var o,c=this;return function(t){return e.enter("definition"),u.call(c,e,f,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(t)};function f(t){return o=i(c.sliceSerialize(c.events[c.events.length-1][1]).slice(1,-1)),58===t?(e.enter("definitionMarker"),e.consume(t),e.exit("definitionMarker"),l(e,a(e,e.attempt(d,s(e,p,"whitespace"),s(e,p,"whitespace")),n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString"))):n(t)}function p(i){return null===i||r(i)?(e.exit("definition"),c.parser.defined.indexOf(o)<0&&c.parser.defined.push(o),t(i)):n(i)}}},d={tokenize:function(e,t,n){return function(t){return o(t)?l(e,i)(t):n(t)};function i(t){return 34===t||39===t||40===t?c(e,s(e,a,"whitespace"),n,"definitionTitle","definitionTitleMarker","definitionTitleString")(t):n(t)}function a(e){return null===e||r(e)?t(e):n(e)}},partial:!0};e.exports=f},4559:(e,t,n)=>{"use strict";var r=n(1207),o=n(6377),i=n(4392);e.exports=function(e,t,n,a,u,s,l,c,f){var d=f||1/0,p=0;return function(t){if(60===t)return e.enter(a),e.enter(u),e.enter(s),e.consume(t),e.exit(s),h;if(r(t)||41===t)return n(t);return e.enter(a),e.enter(l),e.enter(c),e.enter("chunkString",{contentType:"string"}),y(t)};function h(n){return 62===n?(e.enter(s),e.consume(n),e.exit(s),e.exit(u),e.exit(a),t):(e.enter(c),e.enter("chunkString",{contentType:"string"}),m(n))}function m(t){return 62===t?(e.exit("chunkString"),e.exit(c),h(t)):null===t||60===t||i(t)?n(t):(e.consume(t),92===t?g:m)}function g(t){return 60===t||62===t||92===t?(e.consume(t),m):m(t)}function y(i){return 40===i?++p>d?n(i):(e.consume(i),y):41===i?p--?(e.consume(i),y):(e.exit("chunkString"),e.exit(c),e.exit(l),e.exit(a),t(i)):null===i||o(i)?p?n(i):(e.exit("chunkString"),e.exit(c),e.exit(l),e.exit(a),t(i)):r(i)?n(i):(e.consume(i),92===i?v:y)}function v(t){return 40===t||41===t||92===t?(e.consume(t),y):y(t)}}},9304:(e,t,n)=>{"use strict";var r=n(4392),o=n(9056);e.exports=function(e,t,n,i,a,u){var s,l=this,c=0;return function(t){return e.enter(i),e.enter(a),e.consume(t),e.exit(a),e.enter(u),f};function f(o){return null===o||91===o||93===o&&!s||94===o&&!c&&"_hiddenFootnoteSupport"in l.parser.constructs||c>999?n(o):93===o?(e.exit(u),e.enter(a),e.consume(o),e.exit(a),e.exit(i),t):r(o)?(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),f):(e.enter("chunkString",{contentType:"string"}),d(o))}function d(t){return null===t||91===t||93===t||r(t)||c++>999?(e.exit("chunkString"),f(t)):(e.consume(t),s=s||!o(t),92===t?p:d)}function p(t){return 91===t||92===t||93===t?(e.consume(t),c++,d):d(t)}}},6231:(e,t,n)=>{"use strict";var r=n(9056);e.exports=function(e,t,n,o){var i=o?o-1:1/0,a=0;return function(o){if(r(o))return e.enter(n),u(o);return t(o)};function u(o){return r(o)&&a++{"use strict";var r=n(4392),o=n(6231);e.exports=function(e,t,n,i,a,u){var s;return function(t){return e.enter(i),e.enter(a),e.consume(t),e.exit(a),s=40===t?41:t,l};function l(n){return n===s?(e.enter(a),e.consume(n),e.exit(a),e.exit(i),t):(e.enter(u),c(n))}function c(t){return t===s?(e.exit(u),l(s)):null===t?n(t):r(t)?(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),o(e,c,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),f(t))}function f(t){return t===s||null===t||r(t)?(e.exit("chunkString"),c(t)):(e.consume(t),92===t?d:f)}function d(t){return t===s||92===t?(e.consume(t),f):f(t)}}},9943:(e,t,n)=>{"use strict";var r=n(4392),o=n(9056),i=n(6231);e.exports=function(e,t){var n;return function a(u){if(r(u))return e.enter("lineEnding"),e.consume(u),e.exit("lineEnding"),n=!0,a;if(o(u))return i(e,a,n?"linePrefix":"lineSuffix")(u);return t(u)}}},462:(e,t,n)=>{"use strict";var r=n(4392),o={name:"hardBreakEscape",tokenize:function(e,t,n){return function(t){return e.enter("hardBreakEscape"),e.enter("escapeMarker"),e.consume(t),o};function o(o){return r(o)?(e.exit("escapeMarker"),e.exit("hardBreakEscape"),t(o)):n(o)}}};e.exports=o},1034:(e,t,n)=>{"use strict";var r=n(4392),o=n(6377),i=n(9056),a=n(4485),u=n(6231),s={name:"headingAtx",tokenize:function(e,t,n){var a=this,s=0;return function(t){return e.enter("atxHeading"),e.enter("atxHeadingSequence"),l(t)};function l(r){return 35===r&&s++<6?(e.consume(r),l):null===r||o(r)?(e.exit("atxHeadingSequence"),a.interrupt?t(r):c(r)):n(r)}function c(n){return 35===n?(e.enter("atxHeadingSequence"),f(n)):null===n||r(n)?(e.exit("atxHeading"),t(n)):i(n)?u(e,c,"whitespace")(n):(e.enter("atxHeadingText"),d(n))}function f(t){return 35===t?(e.consume(t),f):(e.exit("atxHeadingSequence"),c(t))}function d(t){return null===t||35===t||o(t)?(e.exit("atxHeadingText"),c(t)):(e.consume(t),d)}},resolve:function(e,t){var n,r,o=e.length-2,i=3;"whitespace"===e[i][1].type&&(i+=2);o-2>i&&"whitespace"===e[o][1].type&&(o-=2);"atxHeadingSequence"===e[o][1].type&&(i===o-1||o-4>i&&"whitespace"===e[o-2][1].type)&&(o-=i+1===o?2:4);o>i&&(n={type:"atxHeadingText",start:e[i][1].start,end:e[o][1].end},r={type:"chunkText",start:e[i][1].start,end:e[o][1].end,contentType:"text"},a(e,i,o-i+1,[["enter",n,t],["enter",r,t],["exit",r,t],["exit",n,t]]));return e}};e.exports=s},4428:(e,t,n)=>{"use strict";var r=n(277),o=n(6995),i=n(4392),a=n(6377),u=n(9056),s=n(9393),l=n(8971),c=n(7322),f=n(6941),d={name:"htmlFlow",tokenize:function(e,t,n){var f,d,h,m,g,y=this;return function(t){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(t),v};function v(o){return 33===o?(e.consume(o),b):47===o?(e.consume(o),D):63===o?(e.consume(o),f=3,y.interrupt?t:q):r(o)?(e.consume(o),h=s(o),d=!0,w):n(o)}function b(o){return 45===o?(e.consume(o),f=2,x):91===o?(e.consume(o),f=5,h="CDATA[",m=0,k):r(o)?(e.consume(o),f=4,y.interrupt?t:q):n(o)}function x(r){return 45===r?(e.consume(r),y.interrupt?t:q):n(r)}function k(r){return r===h.charCodeAt(m++)?(e.consume(r),m===h.length?y.interrupt?t:R:k):n(r)}function D(t){return r(t)?(e.consume(t),h=s(t),w):n(t)}function w(r){return null===r||47===r||62===r||a(r)?47!==r&&d&&c.indexOf(h.toLowerCase())>-1?(f=1,y.interrupt?t(r):R(r)):l.indexOf(h.toLowerCase())>-1?(f=6,47===r?(e.consume(r),E):y.interrupt?t(r):R(r)):(f=7,y.interrupt?n(r):d?F(r):C(r)):45===r||o(r)?(e.consume(r),h+=s(r),w):n(r)}function E(r){return 62===r?(e.consume(r),y.interrupt?t:R):n(r)}function C(t){return u(t)?(e.consume(t),C):B(t)}function F(t){return 47===t?(e.consume(t),B):58===t||95===t||r(t)?(e.consume(t),S):u(t)?(e.consume(t),F):B(t)}function S(t){return 45===t||46===t||58===t||95===t||o(t)?(e.consume(t),S):A(t)}function A(t){return 61===t?(e.consume(t),T):u(t)?(e.consume(t),A):F(t)}function T(t){return null===t||60===t||61===t||62===t||96===t?n(t):34===t||39===t?(e.consume(t),g=t,P):u(t)?(e.consume(t),T):(g=void 0,O(t))}function P(t){return t===g?(e.consume(t),L):null===t||i(t)?n(t):(e.consume(t),P)}function O(t){return null===t||34===t||39===t||60===t||61===t||62===t||96===t||a(t)?A(t):(e.consume(t),O)}function L(e){return 47===e||62===e||u(e)?F(e):n(e)}function B(t){return 62===t?(e.consume(t),N):n(t)}function N(t){return u(t)?(e.consume(t),N):null===t||i(t)?R(t):n(t)}function R(t){return 45===t&&2===f?(e.consume(t),_):60===t&&1===f?(e.consume(t),z):62===t&&4===f?(e.consume(t),H):63===t&&3===f?(e.consume(t),q):93===t&&5===f?(e.consume(t),U):!i(t)||6!==f&&7!==f?null===t||i(t)?I(t):(e.consume(t),R):e.check(p,H,I)(t)}function I(t){return e.exit("htmlFlowData"),j(t)}function j(t){return null===t?V(t):i(t)?(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),j):(e.enter("htmlFlowData"),R(t))}function _(t){return 45===t?(e.consume(t),q):R(t)}function z(t){return 47===t?(e.consume(t),h="",M):R(t)}function M(t){return 62===t&&c.indexOf(h.toLowerCase())>-1?(e.consume(t),H):r(t)&&h.length<8?(e.consume(t),h+=s(t),M):R(t)}function U(t){return 93===t?(e.consume(t),q):R(t)}function q(t){return 62===t?(e.consume(t),H):R(t)}function H(t){return null===t||i(t)?(e.exit("htmlFlowData"),V(t)):(e.consume(t),H)}function V(n){return e.exit("htmlFlow"),t(n)}},resolveTo:function(e){var t=e.length;for(;t--&&("enter"!==e[t][0]||"htmlFlow"!==e[t][1].type););t>1&&"linePrefix"===e[t-2][1].type&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2));return e},concrete:!0},p={tokenize:function(e,t,n){return function(r){return e.exit("htmlFlowData"),e.enter("lineEndingBlank"),e.consume(r),e.exit("lineEndingBlank"),e.attempt(f,t,n)}},partial:!0};e.exports=d},4945:(e,t,n)=>{"use strict";var r=n(277),o=n(6995),i=n(4392),a=n(6377),u=n(9056),s=n(6231),l={name:"htmlText",tokenize:function(e,t,n){var l,c,f,d,p=this;return function(t){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(t),h};function h(t){return 33===t?(e.consume(t),m):47===t?(e.consume(t),A):63===t?(e.consume(t),F):r(t)?(e.consume(t),O):n(t)}function m(t){return 45===t?(e.consume(t),g):91===t?(e.consume(t),c="CDATA[",f=0,k):r(t)?(e.consume(t),C):n(t)}function g(t){return 45===t?(e.consume(t),y):n(t)}function y(t){return null===t||62===t?n(t):45===t?(e.consume(t),v):b(t)}function v(e){return null===e||62===e?n(e):b(e)}function b(t){return null===t?n(t):45===t?(e.consume(t),x):i(t)?(d=b,z(t)):(e.consume(t),b)}function x(t){return 45===t?(e.consume(t),U):b(t)}function k(t){return t===c.charCodeAt(f++)?(e.consume(t),f===c.length?D:k):n(t)}function D(t){return null===t?n(t):93===t?(e.consume(t),w):i(t)?(d=D,z(t)):(e.consume(t),D)}function w(t){return 93===t?(e.consume(t),E):D(t)}function E(t){return 62===t?U(t):93===t?(e.consume(t),E):D(t)}function C(t){return null===t||62===t?U(t):i(t)?(d=C,z(t)):(e.consume(t),C)}function F(t){return null===t?n(t):63===t?(e.consume(t),S):i(t)?(d=F,z(t)):(e.consume(t),F)}function S(e){return 62===e?U(e):F(e)}function A(t){return r(t)?(e.consume(t),T):n(t)}function T(t){return 45===t||o(t)?(e.consume(t),T):P(t)}function P(t){return i(t)?(d=P,z(t)):u(t)?(e.consume(t),P):U(t)}function O(t){return 45===t||o(t)?(e.consume(t),O):47===t||62===t||a(t)?L(t):n(t)}function L(t){return 47===t?(e.consume(t),U):58===t||95===t||r(t)?(e.consume(t),B):i(t)?(d=L,z(t)):u(t)?(e.consume(t),L):U(t)}function B(t){return 45===t||46===t||58===t||95===t||o(t)?(e.consume(t),B):N(t)}function N(t){return 61===t?(e.consume(t),R):i(t)?(d=N,z(t)):u(t)?(e.consume(t),N):L(t)}function R(t){return null===t||60===t||61===t||62===t||96===t?n(t):34===t||39===t?(e.consume(t),l=t,I):i(t)?(d=R,z(t)):u(t)?(e.consume(t),R):(e.consume(t),l=void 0,_)}function I(t){return t===l?(e.consume(t),j):null===t?n(t):i(t)?(d=I,z(t)):(e.consume(t),I)}function j(e){return 62===e||47===e||a(e)?L(e):n(e)}function _(t){return null===t||34===t||39===t||60===t||61===t||96===t?n(t):62===t||a(t)?L(t):(e.consume(t),_)}function z(t){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),s(e,M,"linePrefix",p.parser.constructs.disable.null.indexOf("codeIndented")>-1?void 0:4)}function M(t){return e.enter("htmlTextData"),d(t)}function U(r){return 62===r?(e.consume(r),e.exit("htmlTextData"),e.exit("htmlText"),t):n(r)}}};e.exports=l},9255:(e,t,n)=>{"use strict";var r=n(6377),o=n(5911),i=n(4485),a=n(4991),u=n(3173),s=n(1339),l=n(4559),c=n(9304),f=n(5191),d=n(9943),p={name:"labelEnd",tokenize:function(e,t,n){var r,o,i=this,u=i.events.length;for(;u--;)if(("labelImage"===i.events[u][1].type||"labelLink"===i.events[u][1].type)&&!i.events[u][1]._balanced){r=i.events[u][1];break}return function(t){if(!r)return n(t);return r._inactive?l(t):(o=i.parser.defined.indexOf(a(i.sliceSerialize({start:r.end,end:i.now()})))>-1,e.enter("labelEnd"),e.enter("labelMarker"),e.consume(t),e.exit("labelMarker"),e.exit("labelEnd"),s)};function s(n){return 40===n?e.attempt(h,t,o?t:l)(n):91===n?e.attempt(m,t,o?e.attempt(g,t,l):l)(n):o?t(n):l(n)}function l(e){return r._balanced=!0,n(e)}},resolveTo:function(e,t){var n,r,a,l,c,f,d,p=e.length,h=0;for(;p--;)if(l=e[p][1],c){if("link"===l.type||"labelLink"===l.type&&l._inactive)break;"enter"===e[p][0]&&"labelLink"===l.type&&(l._inactive=!0)}else if(f){if("enter"===e[p][0]&&("labelImage"===l.type||"labelLink"===l.type)&&!l._balanced&&(c=p,"labelLink"!==l.type)){h=2;break}}else"labelEnd"===l.type&&(f=p);return n={type:"labelLink"===e[c][1].type?"link":"image",start:s(e[c][1].start),end:s(e[e.length-1][1].end)},r={type:"label",start:s(e[c][1].start),end:s(e[f][1].end)},a={type:"labelText",start:s(e[c+h+2][1].end),end:s(e[f-2][1].start)},d=o(d=[["enter",n,t],["enter",r,t]],e.slice(c+1,c+h+3)),d=o(d,[["enter",a,t]]),d=o(d,u(t.parser.constructs.insideSpan.null,e.slice(c+h+4,f-3),t)),d=o(d,[["exit",a,t],e[f-2],e[f-1],["exit",r,t]]),d=o(d,e.slice(f+1)),d=o(d,[["exit",n,t]]),i(e,c,e.length,d),e},resolveAll:function(e){var t,n=-1;for(;++n{"use strict";var r={name:"labelStartImage",tokenize:function(e,t,n){var r=this;return function(t){return e.enter("labelImage"),e.enter("labelImageMarker"),e.consume(t),e.exit("labelImageMarker"),o};function o(t){return 91===t?(e.enter("labelMarker"),e.consume(t),e.exit("labelMarker"),e.exit("labelImage"),i):n(t)}function i(e){return 94===e&&"_hiddenFootnoteSupport"in r.parser.constructs?n(e):t(e)}},resolveAll:n(9255).resolveAll};e.exports=r},721:(e,t,n)=>{"use strict";var r={name:"labelStartLink",tokenize:function(e,t,n){var r=this;return function(t){return e.enter("labelLink"),e.enter("labelMarker"),e.consume(t),e.exit("labelMarker"),e.exit("labelLink"),o};function o(e){return 94===e&&"_hiddenFootnoteSupport"in r.parser.constructs?n(e):t(e)}},resolveAll:n(9255).resolveAll};e.exports=r},2836:(e,t,n)=>{"use strict";var r=n(6231),o={name:"lineEnding",tokenize:function(e,t){return function(n){return e.enter("lineEnding"),e.consume(n),e.exit("lineEnding"),r(e,t,"linePrefix")}}};e.exports=o},1699:(e,t,n)=>{"use strict";var r=n(1091),o=n(9056),i=n(557),a=n(353),u=n(6231),s=n(6941),l=n(5861),c={name:"list",tokenize:function(e,t,n){var u=this,c=i(u.events,"linePrefix"),d=0;return function(t){var o=u.containerState.type||(42===t||43===t||45===t?"listUnordered":"listOrdered");if("listUnordered"===o?!u.containerState.marker||t===u.containerState.marker:r(t)){if(u.containerState.type||(u.containerState.type=o,e.enter(o,{_container:!0})),"listUnordered"===o)return e.enter("listItemPrefix"),42===t||45===t?e.check(l,n,h)(t):h(t);if(!u.interrupt||49===t)return e.enter("listItemPrefix"),e.enter("listItemValue"),p(t)}return n(t)};function p(t){return r(t)&&++d<10?(e.consume(t),p):(!u.interrupt||d<2)&&(u.containerState.marker?t===u.containerState.marker:41===t||46===t)?(e.exit("listItemValue"),h(t)):n(t)}function h(t){return e.enter("listItemMarker"),e.consume(t),e.exit("listItemMarker"),u.containerState.marker=u.containerState.marker||t,e.check(s,u.interrupt?n:m,e.attempt(f,y,g))}function m(e){return u.containerState.initialBlankLine=!0,c++,y(e)}function g(t){return o(t)?(e.enter("listItemPrefixWhitespace"),e.consume(t),e.exit("listItemPrefixWhitespace"),y):n(t)}function y(n){return u.containerState.size=c+a(u.sliceStream(e.exit("listItemPrefix"))),t(n)}},continuation:{tokenize:function(e,t,n){var r=this;return r.containerState._closeFlow=void 0,e.check(s,(function(n){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,u(e,t,"listItemIndent",r.containerState.size+1)(n)}),(function(n){if(r.containerState.furtherBlankLines||!o(n))return r.containerState.furtherBlankLines=r.containerState.initialBlankLine=void 0,i(n);return r.containerState.furtherBlankLines=r.containerState.initialBlankLine=void 0,e.attempt(d,t,i)(n)}));function i(o){return r.containerState._closeFlow=!0,r.interrupt=void 0,u(e,e.attempt(c,t,n),"linePrefix",r.parser.constructs.disable.null.indexOf("codeIndented")>-1?void 0:4)(o)}}},exit:function(e){e.exit(this.containerState.type)}},f={tokenize:function(e,t,n){var r=this;return u(e,(function(e){return o(e)||!i(r.events,"listItemPrefixWhitespace")?n(e):t(e)}),"listItemPrefixWhitespace",r.parser.constructs.disable.null.indexOf("codeIndented")>-1?void 0:5)},partial:!0},d={tokenize:function(e,t,n){var r=this;return u(e,(function(e){return i(r.events,"listItemIndent")===r.containerState.size?t(e):n(e)}),"listItemIndent",r.containerState.size+1)},partial:!0};e.exports=c},6941:(e,t,n)=>{"use strict";var r=n(4392),o=n(6231),i={tokenize:function(e,t,n){return o(e,(function(e){return null===e||r(e)?t(e):n(e)}),"linePrefix")},partial:!0};e.exports=i},1862:(e,t,n)=>{"use strict";var r=n(4392),o=n(1339),i=n(6231),a={name:"setextUnderline",tokenize:function(e,t,n){var o,a,u=this,s=u.events.length;for(;s--;)if("lineEnding"!==u.events[s][1].type&&"linePrefix"!==u.events[s][1].type&&"content"!==u.events[s][1].type){a="paragraph"===u.events[s][1].type;break}return function(t){if(!u.lazy&&(u.interrupt||a))return e.enter("setextHeadingLine"),e.enter("setextHeadingLineSequence"),o=t,l(t);return n(t)};function l(t){return t===o?(e.consume(t),l):(e.exit("setextHeadingLineSequence"),i(e,c,"lineSuffix")(t))}function c(o){return null===o||r(o)?(e.exit("setextHeadingLine"),t(o)):n(o)}},resolveTo:function(e,t){var n,r,i,a,u=e.length;for(;u--;)if("enter"===e[u][0]){if("content"===e[u][1].type){n=u;break}"paragraph"===e[u][1].type&&(r=u)}else"content"===e[u][1].type&&e.splice(u,1),i||"definition"!==e[u][1].type||(i=u);a={type:"setextHeading",start:o(e[r][1].start),end:o(e[e.length-1][1].end)},e[r][1].type="setextHeadingText",i?(e.splice(r,0,["enter",a,t]),e.splice(i+1,0,["exit",e[n][1],t]),e[n][1].end=o(e[i][1].end)):e[n][1]=a;return e.push(["exit",a,t]),e}};e.exports=a},5861:(e,t,n)=>{"use strict";var r=n(4392),o=n(9056),i=n(6231),a={name:"thematicBreak",tokenize:function(e,t,n){var a,u=0;return function(t){return e.enter("thematicBreak"),a=t,s(t)};function s(c){return c===a?(e.enter("thematicBreakSequence"),l(c)):o(c)?i(e,s,"whitespace")(c):u<3||null!==c&&!r(c)?n(c):(e.exit("thematicBreak"),t(c))}function l(t){return t===a?(e.consume(t),u++,l):(e.exit("thematicBreakSequence"),s(t))}}};e.exports=a},5911:(e,t,n)=>{"use strict";var r=n(4485);e.exports=function(e,t){return e.length?(r(e,e.length,0,t),e):t}},4485:(e,t,n)=>{"use strict";var r=n(7327);e.exports=function(e,t,n,o){var i,a=e.length,u=0;if(t=t<0?-t>a?0:a+t:t>a?a:t,n=n>0?n:0,o.length<1e4)(i=Array.from(o)).unshift(t,n),r.apply(e,i);else for(n&&r.apply(e,[t,n]);u{"use strict";var r=n(6377),o=n(5414),i=n(6548);e.exports=function(e){return null===e||r(e)||i(e)?1:o(e)?2:void 0}},6369:(e,t,n)=>{"use strict";var r=n(8025),o=n(4485),i=n(9990);function a(e,t){var n,o,a,s;for(n in t)for(s in o=r.call(e,n)?e[n]:e[n]={},a=t[n])o[s]=u(i(a[s]),r.call(o,s)?o[s]:[])}function u(e,t){for(var n=-1,r=[];++n{"use strict";var r=n(3667),o=n(4392),i=n(5911),a=n(4485),u=n(9990),s=n(3173),l=n(6392),c=n(1339),f=n(2569);e.exports=function(e,t,n){var d=n?c(n):{line:1,column:1,offset:0},p={},h=[],m=[],g=[],y={consume:function(e){o(e)?(d.line++,d.column=1,d.offset+=-3===e?2:1,S()):-1!==e&&(d.column++,d.offset++);d._bufferIndex<0?d._index++:(d._bufferIndex++,d._bufferIndex===m[d._index].length&&(d._bufferIndex=-1,d._index++));v.previous=e},enter:function(e,t){var n=t||{};return n.type=e,n.start=k(),v.events.push(["enter",n,v]),g.push(n),n},exit:function(e){var t=g.pop();return t.end=k(),v.events.push(["exit",t,v]),t},attempt:C((function(e,t){F(e,t.from)})),check:C(E),interrupt:C(E,{interrupt:!0}),lazy:C(E,{lazy:!0})},v={previous:null,events:[],parser:e,sliceStream:x,sliceSerialize:function(e){return l(x(e))},now:k,defineSkip:function(e){p[e.line]=e.column,S()},write:function(e){if(m=i(m,e),D(),null!==m[m.length-1])return[];return F(t,0),v.events=s(h,v.events,v),v.events}},b=t.tokenize.call(v,y);return t.resolveAll&&h.push(t),d._index=0,d._bufferIndex=-1,v;function x(e){return f(m,e)}function k(){return c(d)}function D(){for(var e,t;d._index-1)return m();return e.tokenize.call(t?r({},v,t):v,y,h,m)(n)}}function h(t){return e(l,c),o}function m(e){return c.restore(),++s{"use strict";e.exports=function(e){return null===e||void 0===e?[]:"length"in e?e:[e]}},8375:e=>{"use strict";e.exports=function(e,t){return e.column+=t,e.offset+=t,e._bufferIndex+=t,e}},4991:e=>{"use strict";e.exports=function(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}},557:(e,t,n)=>{"use strict";var r=n(353);e.exports=function(e,t){var n=e[e.length-1];return n&&n[1].type===t?r(n[2].sliceStream(n[1])):0}},8254:(e,t,n)=>{"use strict";var r=n(9393);e.exports=function(e){return function(t){return e.test(r(t))}}},3173:e=>{"use strict";e.exports=function(e,t,n){for(var r,o=[],i=-1;++i{"use strict";var r=n(9393);e.exports=function(e,t){var n=parseInt(e,t);return n<9||11===n||n>13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||65535===(65535&n)||65534===(65535&n)||n>1114111?"\ufffd":r(n)}},6392:(e,t,n)=>{"use strict";var r=n(9393);e.exports=function(e){for(var t,n,o,i=-1,a=[];++i{"use strict";var r=n(3667);e.exports=function(e){return r({},e)}},353:e=>{"use strict";e.exports=function(e){for(var t=-1,n=0;++t{"use strict";e.exports=function(e,t){var n,r=t.start._index,o=t.start._bufferIndex,i=t.end._index,a=t.end._bufferIndex;return r===i?n=[e[r].slice(o,a)]:(n=e.slice(r,i),o>-1&&(n[0]=n[0].slice(o)),a>0&&n.push(e[i].slice(0,a))),n}},6308:(e,t,n)=>{"use strict";var r=n(3667),o=n(4485),i=n(1339);function a(e,t){for(var n,r,i,a,u,s,l=e[t][1],c=e[t][2],f=t-1,d=[],p=l._tokenizer||c.parser[l.contentType](l.start),h=p.events,m=[],g={};l;){for(;e[++f][1]!==l;);d.push(f),l._tokenizer||(n=c.sliceStream(l),l.next||n.push(null),r&&p.defineSkip(l.start),l.isInFirstContentOfListItem&&(p._gfmTasklistFirstContentOfListItem=!0),p.write(n),l.isInFirstContentOfListItem&&(p._gfmTasklistFirstContentOfListItem=void 0)),r=l,l=l.next}for(l=r,i=h.length;i--;)"enter"===h[i][0]?a=!0:a&&h[i][1].type===h[i-1][1].type&&h[i][1].start.line!==h[i][1].end.line&&(y(h.slice(i+1,u)),l._tokenizer=l.next=void 0,l=l.previous,u=i+1);for(p.events=l._tokenizer=l.next=void 0,y(h.slice(0,u)),i=-1,s=0;++i{"use strict";var t;e.exports=function(e){var n,r="&"+e+";";if((t=t||document.createElement("i")).innerHTML=r,59===(n=t.textContent).charCodeAt(n.length-1)&&"semi"!==e)return!1;return n!==r&&n}},1676:(e,t,n)=>{"use strict";e.exports=function(e){var t=this;this.Parser=function(n){return r(n,Object.assign({},t.data("settings"),e,{extensions:t.data("micromarkExtensions")||[],mdastExtensions:t.data("fromMarkdownExtensions")||[]}))}};var r=n(5184)},6745:(e,t,n)=>{"use strict";var r=n(4918);e.exports=i,i.wrap=r;var o=[].slice;function i(){var e=[],t={run:function(){var t=-1,n=o.call(arguments,0,-1),i=arguments[arguments.length-1];if("function"!==typeof i)throw new Error("Expected function as last argument, not "+i);(function a(u){var s=e[++t],l=o.call(arguments,0).slice(1),c=n.length,f=-1;if(u)i(u);else{for(;++f{"use strict";var t=[].slice;e.exports=function(e,n){var r;return function(){var n,a=t.call(arguments,0),u=e.length>a.length;u&&a.push(o);try{n=e.apply(null,a)}catch(s){if(u&&r)throw s;return o(s)}u||(n&&"function"===typeof n.then?n.then(i,o):n instanceof Error?o(n):i(n))};function o(){r||(r=!0,n.apply(null,arguments))}function i(e){o(null,e)}}},282:(e,t,n)=>{"use strict";var r=n(6415),o=n(1046),i=n(432),a=n(3731),u=n(6745),s=n(9418);e.exports=function e(){var t,n=[],o=u(),v={},b=-1;return x.data=function(e,n){if("string"===typeof e)return 2===arguments.length?(m("data",t),v[e]=n,x):c.call(v,e)&&v[e]||null;if(e)return m("data",t),v=e,x;return v},x.freeze=k,x.attachers=n,x.use=function(e){var r;if(m("use",t),null===e||void 0===e);else if("function"===typeof e)c.apply(null,arguments);else{if("object"!==typeof e)throw new Error("Expected usable value, not `"+e+"`");"length"in e?s(e):o(e)}r&&(v.settings=i(v.settings||{},r));return x;function o(e){s(e.plugins),e.settings&&(r=i(r||{},e.settings))}function u(e){if("function"===typeof e)c(e);else{if("object"!==typeof e)throw new Error("Expected usable value, not `"+e+"`");"length"in e?c.apply(null,e):o(e)}}function s(e){var t=-1;if(null===e||void 0===e);else{if("object"!==typeof e||!("length"in e))throw new Error("Expected a list of plugins, not `"+e+"`");for(;++t{"use strict";var t={}.hasOwnProperty;function n(e){return e&&"object"===typeof e||(e={}),o(e.line)+":"+o(e.column)}function r(e){return e&&"object"===typeof e||(e={}),n(e.start)+"-"+n(e.end)}function o(e){return e&&"number"===typeof e?e:1}e.exports=function(e){if(!e||"object"!==typeof e)return"";if(t.call(e,"position")||t.call(e,"type"))return r(e.position);if(t.call(e,"start")||t.call(e,"end"))return r(e);if(t.call(e,"line")||t.call(e,"column"))return n(e);return""}},851:(e,t,n)=>{"use strict";var r=n(6934);function o(){}e.exports=a,o.prototype=Error.prototype,a.prototype=new o;var i=a.prototype;function a(e,t,n){var o,i,a;"string"===typeof t&&(n=t,t=null),o=function(e){var t,n=[null,null];"string"===typeof e&&(-1===(t=e.indexOf(":"))?n[1]=e:(n[0]=e.slice(0,t),n[1]=e.slice(t+1)));return n}(n),i=r(t)||"1:1",a={start:{line:null,column:null},end:{line:null,column:null}},t&&t.position&&(t=t.position),t&&(t.start?(a=t,t=t.start):a.start=t),e.stack&&(this.stack=e.stack,e=e.message),this.message=e,this.name=i,this.reason=e,this.line=t?t.line:null,this.column=t?t.column:null,this.location=a,this.source=o[0],this.ruleId=o[1]}i.file="",i.name="",i.reason="",i.message="",i.stack="",i.fatal=null,i.column=null,i.line=null},9418:(e,t,n)=>{"use strict";e.exports=n(2276)},8884:(e,t,n)=>{"use strict";var r=n(4322),o=n(8833),i=n(1046);e.exports=s;var a={}.hasOwnProperty,u=["history","path","basename","stem","extname","dirname"];function s(e){var t,n;if(e){if("string"===typeof e||i(e))e={contents:e};else if("message"in e&&"messages"in e)return e}else e={};if(!(this instanceof s))return new s(e);for(this.data={},this.messages=[],this.history=[],this.cwd=o.cwd(),n=-1;++n-1)throw new Error("`"+t+"` cannot be a path: did not expect `"+r.sep+"`")}function c(e,t){if(!e)throw new Error("`"+t+"` cannot be empty")}function f(e,t){if(!e)throw new Error("Setting `"+t+"` requires `path` to be set too")}s.prototype.toString=function(e){return(this.contents||"").toString(e)},Object.defineProperty(s.prototype,"path",{get:function(){return this.history[this.history.length-1]},set:function(e){c(e,"path"),this.path!==e&&this.history.push(e)}}),Object.defineProperty(s.prototype,"dirname",{get:function(){return"string"===typeof this.path?r.dirname(this.path):void 0},set:function(e){f(this.path,"dirname"),this.path=r.join(e||"",this.basename)}}),Object.defineProperty(s.prototype,"basename",{get:function(){return"string"===typeof this.path?r.basename(this.path):void 0},set:function(e){c(e,"basename"),l(e,"basename"),this.path=r.join(this.dirname||"",e)}}),Object.defineProperty(s.prototype,"extname",{get:function(){return"string"===typeof this.path?r.extname(this.path):void 0},set:function(e){if(l(e,"extname"),f(this.path,"extname"),e){if(46!==e.charCodeAt(0))throw new Error("`extname` must start with `.`");if(e.indexOf(".",1)>-1)throw new Error("`extname` cannot contain multiple dots")}this.path=r.join(this.dirname,this.stem+(e||""))}}),Object.defineProperty(s.prototype,"stem",{get:function(){return"string"===typeof this.path?r.basename(this.path,this.extname):void 0},set:function(e){c(e,"stem"),l(e,"stem"),this.path=r.join(this.dirname||"",e+(this.extname||""))}})},2276:(e,t,n)=>{"use strict";var r=n(851),o=n(8884);e.exports=o,o.prototype.message=function(e,t,n){var o=new r(e,t,n);this.path&&(o.name=this.path+":"+o.name,o.file=this.path);return o.fatal=!1,this.messages.push(o),o},o.prototype.info=function(){var e=this.message.apply(this,arguments);return e.fatal=null,e},o.prototype.fail=function(){var e=this.message.apply(this,arguments);throw e.fatal=!0,e}},4322:(e,t)=>{"use strict";function n(e){if("string"!==typeof e)throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}t.basename=function(e,t){var r,o,i,a,u=0,s=-1;if(void 0!==t&&"string"!==typeof t)throw new TypeError('"ext" argument must be a string');if(n(e),r=e.length,void 0===t||!t.length||t.length>e.length){for(;r--;)if(47===e.charCodeAt(r)){if(i){u=r+1;break}}else s<0&&(i=!0,s=r+1);return s<0?"":e.slice(u,s)}if(t===e)return"";o=-1,a=t.length-1;for(;r--;)if(47===e.charCodeAt(r)){if(i){u=r+1;break}}else o<0&&(i=!0,o=r+1),a>-1&&(e.charCodeAt(r)===t.charCodeAt(a--)?a<0&&(s=r):(a=-1,s=o));u===s?s=o:s<0&&(s=e.length);return e.slice(u,s)},t.dirname=function(e){var t,r,o;if(n(e),!e.length)return".";t=-1,o=e.length;for(;--o;)if(47===e.charCodeAt(o)){if(r){t=o;break}}else r||(r=!0);return t<0?47===e.charCodeAt(0)?"/":".":1===t&&47===e.charCodeAt(0)?"//":e.slice(0,t)},t.extname=function(e){var t,r,o,i=-1,a=0,u=-1,s=0;n(e),o=e.length;for(;o--;)if(47!==(r=e.charCodeAt(o)))u<0&&(t=!0,u=o+1),46===r?i<0?i=o:1!==s&&(s=1):i>-1&&(s=-1);else if(t){a=o+1;break}if(i<0||u<0||0===s||1===s&&i===u-1&&i===a+1)return"";return e.slice(i,u)},t.join=function(){var e,t=-1;for(;++t2){if((r=o.lastIndexOf("/"))!==o.length-1){r<0?(o="",i=0):i=(o=o.slice(0,r)).length-1-o.lastIndexOf("/"),a=s,u=0;continue}}else if(o.length){o="",i=0,a=s,u=0;continue}t&&(o=o.length?o+"/..":"..",i=2)}else o.length?o+="/"+e.slice(a+1,s):o=e.slice(a+1,s),i=s-a-1;a=s,u=0}else 46===n&&u>-1?u++:u=-1}return o}(e,!t),r.length||t||(r=".");r.length&&47===e.charCodeAt(e.length-1)&&(r+="/");return t?"/"+r:r}(e)},t.sep="/"},8833:(e,t)=>{"use strict";t.cwd=function(){return"/"}},4400:e=>{"use strict";var t,n="";e.exports=function(e,r){if("string"!==typeof e)throw new TypeError("expected a string");if(1===r)return e;if(2===r)return e+e;var o=e.length*r;if(t!==e||"undefined"===typeof t)t=e,n="";else if(n.length>=o)return n.substr(0,o);for(;o>n.length&&r>1;)1&r&&(n+=e),r>>=1,e+=e;return n=(n+=e).substr(0,o)}},4478:(e,t)=>{"use strict";function n(e,t){var n=e.length;e.push(t);e:for(;0>>1,o=e[r];if(!(0>>1;ri(s,n))li(c,s)?(e[r]=c,e[l]=n,r=l):(e[r]=s,e[u]=n,r=u);else{if(!(li(c,n)))break e;e[r]=c,e[l]=n,r=l}}}return t}function i(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 a=performance;t.unstable_now=function(){return a.now()}}else{var u=Date,s=u.now();t.unstable_now=function(){return u.now()-s}}var l=[],c=[],f=1,d=null,p=3,h=!1,m=!1,g=!1,y="function"===typeof setTimeout?setTimeout:null,v="function"===typeof clearTimeout?clearTimeout:null,b="undefined"!==typeof setImmediate?setImmediate:null;function x(e){for(var t=r(c);null!==t;){if(null===t.callback)o(c);else{if(!(t.startTime<=e))break;o(c),t.sortIndex=t.expirationTime,n(l,t)}t=r(c)}}function k(e){if(g=!1,x(e),!m)if(null!==r(l))m=!0,B(D);else{var t=r(c);null!==t&&N(k,t.startTime-e)}}function D(e,n){m=!1,g&&(g=!1,v(F),F=-1),h=!0;var i=p;try{for(x(n),d=r(l);null!==d&&(!(d.expirationTime>n)||e&&!T());){var a=d.callback;if("function"===typeof a){d.callback=null,p=d.priorityLevel;var u=a(d.expirationTime<=n);n=t.unstable_now(),"function"===typeof u?d.callback=u:d===r(l)&&o(l),x(n)}else o(l);d=r(l)}if(null!==d)var s=!0;else{var f=r(c);null!==f&&N(k,f.startTime-n),s=!1}return s}finally{d=null,p=i,h=!1}}"undefined"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);var w,E=!1,C=null,F=-1,S=5,A=-1;function T(){return!(t.unstable_now()-Ae||125a?(e.sortIndex=i,n(c,e),null===r(l)&&e===r(c)&&(g?(v(F),F=-1):g=!0,N(k,i-a))):(e.sortIndex=u,n(l,e),m||h||(m=!0,B(D))),e},t.unstable_shouldYield=T,t.unstable_wrapCallback=function(e){var t=p;return function(){var n=p;p=t;try{return e.apply(this,arguments)}finally{p=n}}}},7029:(e,t,n)=>{"use strict";e.exports=n(4478)},1985:e=>{e.exports=function(e,t,n,r){var o=n?n.call(r,e,t):void 0;if(void 0!==o)return!!o;if(e===t)return!0;if("object"!==typeof e||!e||"object"!==typeof t||!t)return!1;var i=Object.keys(e),a=Object.keys(t);if(i.length!==a.length)return!1;for(var u=Object.prototype.hasOwnProperty.bind(t),s=0;s{var r=n(5965);function o(e,t){var n,o=null;if(!e||"string"!==typeof e)return o;for(var i,a,u=r(e),s="function"===typeof t,l=0,c=u.length;l{"use strict";n.d(t,{ZP:()=>Ht,zo:()=>Ht});var r=function(){return r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0?E(R,--B):0,O--,10===N&&(O=1,P--),N}function M(){return N=B2||V(N)>3?"":" "}function K(e,t){for(;--t&&M()&&!(N<48||N>102||N>57&&N<65||N>70&&N<97););return H(e,q()+(t<6&&32==U()&&32==M()))}function Q(e){for(;M();)switch(N){case e:return B;case 34:case 39:34!==e&&39!==e&&Q(N);break;case 40:41===e&&Q(e);break;case 92:M()}return B}function Y(e,t){for(;M()&&e+N!==57&&(e+N!==84||47!==U()););return"/*"+H(t,B-1)+"*"+v(47===e?e:M())}function J(e){for(;!V(U());)M();return H(e,B)}function X(e,t){for(var n="",r=0;r6)switch(E(e,t+1)){case 109:if(45!==E(e,t+4))break;case 102:return D(e,/(.+:)(.+)-([^]+)/,"$1"+c+"$2-$3$1"+l+(108==E(e,t+3)?"$3":"$2-$3"))+e;case 115:return~w(e,"stretch")?te(D(e,"stretch","fill-available"),t,n)+e:e}break;case 5152:case 5920:return D(e,/(.+?):(\d+)(\s*\/\s*(span)?\s*(\d+))?(.*)/,(function(t,n,r,o,i,a,u){return s+n+":"+r+u+(o?s+n+"-span:"+(i?a:+a-+r)+u:"")+e}));case 4949:if(121===E(e,t+6))return D(e,":",":"+c)+e;break;case 6444:switch(E(e,45===E(e,14)?18:11)){case 120:return D(e,/(.+:)([^;\s!]+)(;|(\s+)?!.+)?/,"$1"+c+(45===E(e,14)?"inline-":"")+"box$3$1"+c+"$2$3$1"+s+"$2box$3")+e;case 100:return D(e,":",":"+s)+e}break;case 5719:case 2647:case 2135:case 3927:case 2391:return D(e,"scroll-","scroll-snap-")+e}return e}function ne(e,t,n,r){if(e.length>-1&&!e.return)switch(e.type){case p:return void(e.return=te(e.value,e.length,n));case m:return X([j(e,{value:D(e.value,"@","@"+c)})],r);case d:if(e.length)return function(e,t){return e.map(t).join("")}(n=e.props,(function(t){switch(k(t,r=/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":_(j(e,{props:[D(t,/:(read-\w+)/,":"+l+"$1")]})),_(j(e,{props:[t]})),b(e,{props:T(n,r)});break;case"::placeholder":_(j(e,{props:[D(t,/:(plac\w+)/,":"+c+"input-$1")]})),_(j(e,{props:[D(t,/:(plac\w+)/,":"+l+"$1")]})),_(j(e,{props:[D(t,/:(plac\w+)/,s+"input-$1")]})),_(j(e,{props:[t]})),b(e,{props:T(n,r)})}return""}))}}function re(e){return $(oe("",null,null,null,[""],e=W(e),0,[0],e))}function oe(e,t,n,r,o,i,a,u,s){for(var l=0,c=0,f=a,d=0,p=0,h=0,m=1,g=1,y=1,b=0,x="",k=o,C=i,S=r,T=x;g;)switch(h=b,b=M()){case 40:if(108!=h&&58==E(T,f-1)){-1!=w(T+=D(Z(b),"&","&\f"),"&\f")&&(y=-1);break}case 34:case 39:case 91:T+=Z(b);break;case 9:case 10:case 13:case 32:T+=G(h);break;case 92:T+=K(q()-1,7);continue;case 47:switch(U()){case 42:case 47:A(ae(Y(M(),q()),t,n,s),s);break;default:T+="/"}break;case 123*m:u[l++]=F(T)*y;case 125*m:case 59:case 0:switch(b){case 0:case 125:g=0;case 59+c:-1==y&&(T=D(T,/\f/g,"")),p>0&&F(T)-f&&A(p>32?ue(T+";",r,n,f-1,s):ue(D(T," ","")+";",r,n,f-2,s),s);break;case 59:T+=";";default:if(A(S=ie(T,t,n,l,c,o,u,x,k=[],C=[],f,i),i),123===b)if(0===c)oe(T,t,S,S,k,i,f,u,C);else switch(99===d&&110===E(T,3)?100:d){case 100:case 108:case 109:case 115:oe(e,S,S,r&&A(ie(e,S,S,0,0,o,u,x,o,k=[],f,C),C),o,C,f,u,r?k:C);break;default:oe(T,S,S,S,[""],C,0,u,C)}}l=c=p=0,m=y=1,x=T="",f=a;break;case 58:f=1+F(T),p=h;default:if(m<1)if(123==b)--m;else if(125==b&&0==m++&&125==z())continue;switch(T+=v(b),b*m){case 38:y=c>0?1:(T+="\f",-1);break;case 44:u[l++]=(F(T)-1)*y,y=1;break;case 64:45===U()&&(T+=Z(M())),d=U(),c=f=F(x=T+=J(q())),b++;break;case 45:45===h&&2==F(T)&&(m=0)}}return i}function ie(e,t,n,r,o,i,a,u,s,l,c,f){for(var p=o-1,h=0===o?i:[""],m=S(h),g=0,v=0,b=0;g0?h[k]+" "+w:D(w,/&\f/g,h[k])))&&(s[b++]=E);return I(e,t,n,0===o?d:u,s,l,c,f)}function ae(e,t,n,r){return I(e,t,n,f,v(N),C(e,2,-2),0,r)}function ue(e,t,n,r,o){return I(e,t,n,p,C(e,0,r),C(e,r+1,-1),r,o)}var se={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},le=n(1713),ce="undefined"!=typeof le&&void 0!=={NODE_ENV:"production",PUBLIC_URL:"",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0,FAST_REFRESH:!0}&&({NODE_ENV:"production",PUBLIC_URL:"",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0,FAST_REFRESH:!0}.REACT_APP_SC_ATTR||{NODE_ENV:"production",PUBLIC_URL:"",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0,FAST_REFRESH:!0}.SC_ATTR)||"data-styled",fe="undefined"!=typeof window&&"HTMLElement"in window,de=Boolean("boolean"==typeof SC_DISABLE_SPEEDY?SC_DISABLE_SPEEDY:"undefined"!=typeof le&&void 0!=={NODE_ENV:"production",PUBLIC_URL:"",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0,FAST_REFRESH:!0}&&void 0!=={NODE_ENV:"production",PUBLIC_URL:"",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0,FAST_REFRESH:!0}.REACT_APP_SC_DISABLE_SPEEDY&&""!=={NODE_ENV:"production",PUBLIC_URL:"",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0,FAST_REFRESH:!0}.REACT_APP_SC_DISABLE_SPEEDY?"false"!=={NODE_ENV:"production",PUBLIC_URL:"",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0,FAST_REFRESH:!0}.REACT_APP_SC_DISABLE_SPEEDY&&{NODE_ENV:"production",PUBLIC_URL:"",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0,FAST_REFRESH:!0}.REACT_APP_SC_DISABLE_SPEEDY:"undefined"!=typeof le&&void 0!=={NODE_ENV:"production",PUBLIC_URL:"",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0,FAST_REFRESH:!0}&&void 0!=={NODE_ENV:"production",PUBLIC_URL:"",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0,FAST_REFRESH:!0}.SC_DISABLE_SPEEDY&&""!=={NODE_ENV:"production",PUBLIC_URL:"",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0,FAST_REFRESH:!0}.SC_DISABLE_SPEEDY&&("false"!=={NODE_ENV:"production",PUBLIC_URL:"",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0,FAST_REFRESH:!0}.SC_DISABLE_SPEEDY&&{NODE_ENV:"production",PUBLIC_URL:"",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0,FAST_REFRESH:!0}.SC_DISABLE_SPEEDY)),pe=(new Set,Object.freeze([])),he=Object.freeze({});function me(e,t,n){return void 0===n&&(n=he),e.theme!==n.theme&&e.theme||t||n.theme}var ge=new Set(["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","track","u","ul","use","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","marker","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","tspan"]),ye=/[!"#$%&'()*+,./:;<=>?@[\\\]^`{|}~-]+/g,ve=/(^-|-$)/g;function be(e){return e.replace(ye,"-").replace(ve,"")}var xe=/(a)(d)/gi,ke=function(e){return String.fromCharCode(e+(e>25?39:97))};function De(e){var t,n="";for(t=Math.abs(e);t>52;t=t/52|0)n=ke(t%52)+n;return(ke(t%52)+n).replace(xe,"$1-$2")}var we,Ee=function(e,t){for(var n=t.length;n;)e=33*e^t.charCodeAt(--n);return e},Ce=function(e){return Ee(5381,e)};function Fe(e){return De(Ce(e)>>>0)}function Se(e){return e.displayName||e.name||"Component"}function Ae(e){return"string"==typeof e&&!0}var Te="function"==typeof Symbol&&Symbol.for,Pe=Te?Symbol.for("react.memo"):60115,Oe=Te?Symbol.for("react.forward_ref"):60112,Le={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},Be={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},Ne={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},Re=((we={})[Oe]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},we[Pe]=Ne,we);function Ie(e){return("type"in(t=e)&&t.type.$$typeof)===Pe?Ne:"$$typeof"in e?Re[e.$$typeof]:Le;var t}var je=Object.defineProperty,_e=Object.getOwnPropertyNames,ze=Object.getOwnPropertySymbols,Me=Object.getOwnPropertyDescriptor,Ue=Object.getPrototypeOf,qe=Object.prototype;function He(e,t,n){if("string"!=typeof t){if(qe){var r=Ue(t);r&&r!==qe&&He(e,r,n)}var o=_e(t);ze&&(o=o.concat(ze(t)));for(var i=Ie(e),a=Ie(t),u=0;u0?" Args: ".concat(t.join(", ")):""))}var Je=function(){function e(e){this.groupSizes=new Uint32Array(512),this.length=512,this.tag=e}return e.prototype.indexOfGroup=function(e){for(var t=0,n=0;n=this.groupSizes.length){for(var n=this.groupSizes,r=n.length,o=r;e>=o;)if((o<<=1)<0)throw Ye(16,"".concat(e));this.groupSizes=new Uint32Array(o),this.groupSizes.set(n),this.length=o;for(var i=r;i=this.length||0===this.groupSizes[e])return t;for(var n=this.groupSizes[e],r=this.indexOfGroup(e),o=r+n,i=r;i=0){var n=document.createTextNode(t);return this.element.insertBefore(n,this.nodes[e]||null),this.length++,!0}return!1},e.prototype.deleteRule=function(e){this.element.removeChild(this.nodes[e]),this.length--},e.prototype.getRule=function(e){return e0&&(s+="".concat(e,","))})),r+="".concat(a).concat(u,'{content:"').concat(s,'"}').concat("/*!sc*/\n")},i=0;i0?".".concat(t):e},c=s.slice();c.push((function(e){e.type===d&&e.value.includes("&")&&(e.props[0]=e.props[0].replace(gt,n).replace(r,l))})),a.prefix&&c.push(ne),c.push(ee);var f=function(e,o,i,u){void 0===o&&(o=""),void 0===i&&(i=""),void 0===u&&(u="&"),t=u,n=o,r=new RegExp("\\".concat(n,"\\b"),"g");var s=e.replace(yt,""),l=re(i||o?"".concat(i," ").concat(o," { ").concat(s," }"):s);a.namespace&&(l=vt(l,a.namespace));var f,d=[];return X(l,function(e){var t=S(e);return function(n,r,o,i){for(var a="",u=0;u="A"&&e<="Z"};function At(e){for(var t="",n=0;n>>0);if(!t.hasNameForId(this.componentId,i)){var a=n(o,".".concat(i),void 0,this.componentId);t.insertRules(this.componentId,i,a)}r=$e(r,i),this.staticRulesId=i}else{for(var u=Ee(this.baseHash,n.hash),s="",l=0;l>>0);t.hasNameForId(this.componentId,d)||t.insertRules(this.componentId,d,n(s,".".concat(d),void 0,this.componentId)),r=$e(r,d)}}return r},e}(),Rt=i.createContext(void 0);Rt.Consumer;var It={};new Set;function jt(e,t,n){var o=We(e),a=e,u=!Ae(e),s=t.attrs,l=void 0===s?pe:s,c=t.componentId,f=void 0===c?function(e,t){var n="string"!=typeof e?"sc":be(e);It[n]=(It[n]||0)+1;var r="".concat(n,"-").concat(Fe("6.1.1"+n+It[n]));return t?"".concat(t,"-").concat(r):r}(t.displayName,t.parentComponentId):c,d=t.displayName,p=void 0===d?function(e){return Ae(e)?"styled.".concat(e):"Styled(".concat(Se(e),")")}(e):d,h=t.displayName&&t.componentId?"".concat(be(t.displayName),"-").concat(t.componentId):t.componentId||f,m=o&&a.attrs?a.attrs.concat(l).filter(Boolean):l,g=t.shouldForwardProp;if(o&&a.shouldForwardProp){var y=a.shouldForwardProp;if(t.shouldForwardProp){var v=t.shouldForwardProp;g=function(e,t){return y(e,t)&&v(e,t)}}else g=y}var b=new Nt(n,h,o?a.componentStyle:void 0);function x(e,t){return function(e,t,n){var o=e.attrs,a=e.componentStyle,u=e.defaultProps,s=e.foldedComponentIds,l=e.styledComponentId,c=e.target,f=i.useContext(Rt),d=Et(),p=e.shouldForwardProp||d.shouldForwardProp,h=function(e,t,n){for(var o,i=r(r({},t),{className:void 0,theme:n}),a=0;a2&&mt.registerId(this.componentId+e),this.removeStyles(e,n),this.createStyles(e,t,n,r)}}();(function(){function e(){var e=this;this._emitSheetCSS=function(){var t=e.instance.toString(),n=st(),r=Ze([n&&'nonce="'.concat(n,'"'),"".concat(ce,'="true"'),"".concat("data-styled-version",'="').concat("6.1.1",'"')].filter(Boolean)," ");return"")},this.getStyleTags=function(){if(e.sealed)throw Ye(2);return e._emitSheetCSS()},this.getStyleElement=function(){var t;if(e.sealed)throw Ye(2);var n=((t={})[ce]="",t["data-styled-version"]="6.1.1",t.dangerouslySetInnerHTML={__html:e.instance.toString()},t),o=st();return o&&(n.nonce=o),[i.createElement("style",r({},n,{key:"sc-0-0"}))]},this.seal=function(){e.sealed=!0},this.instance=new mt({isServer:!0}),this.sealed=!1}e.prototype.collectStyles=function(e){if(this.sealed)throw Ye(2);return i.createElement(Ct,{sheet:this.instance},e)},e.prototype.interleaveWithNodeStream=function(e){throw Ye(3)}})(),"__sc-".concat(ce,"__")},9369:e=>{function t(e){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}t.keys=()=>[],t.resolve=t,t.id=9369,e.exports=t},5773:(e,t,n)=>{"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;tr})},808:(e,t,n)=>{"use strict";function r(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}n.d(t,{Z:()=>r})},6732:(e,t,n)=>{"use strict";function r(e,t){return t||(t=e.slice(0)),e.raw=t,e}n.d(t,{Z:()=>r})},4621:(e,t,n)=>{"use strict";n.d(t,{ZP:()=>f});const r="object"===typeof self?self:globalThis,o=e=>((e,t)=>{const n=(t,n)=>(e.set(n,t),t),o=i=>{if(e.has(i))return e.get(i);const[a,u]=t[i];switch(a){case 0:case-1:return n(u,i);case 1:{const e=n([],i);for(const t of u)e.push(o(t));return e}case 2:{const e=n({},i);for(const[t,n]of u)e[o(t)]=o(n);return e}case 3:return n(new Date(u),i);case 4:{const{source:e,flags:t}=u;return n(new RegExp(e,t),i)}case 5:{const e=n(new Map,i);for(const[t,n]of u)e.set(o(t),o(n));return e}case 6:{const e=n(new Set,i);for(const t of u)e.add(o(t));return e}case 7:{const{name:e,message:t}=u;return n(new r[e](t),i)}case 8:return n(BigInt(u),i);case"BigInt":return n(Object(BigInt(u)),i)}return n(new r[a](u),i)};return o})(new Map,e)(0),i="",{toString:a}={},{keys:u}=Object,s=e=>{const t=typeof e;if("object"!==t||!e)return[0,t];const n=a.call(e).slice(8,-1);switch(n){case"Array":return[1,i];case"Object":return[2,i];case"Date":return[3,i];case"RegExp":return[4,i];case"Map":return[5,i];case"Set":return[6,i]}return n.includes("Array")?[1,n]:n.includes("Error")?[7,n]:[2,n]},l=e=>{let[t,n]=e;return 0===t&&("function"===n||"symbol"===n)},c=function(e){let{json:t,lossy:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r=[];return((e,t,n,r)=>{const o=(e,t)=>{const o=r.push(e)-1;return n.set(t,o),o},i=r=>{if(n.has(r))return n.get(r);let[a,c]=s(r);switch(a){case 0:{let t=r;switch(c){case"bigint":a=8,t=r.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+c);t=null;break;case"undefined":return o([-1],r)}return o([a,t],r)}case 1:{if(c)return o([c,[...r]],r);const e=[],t=o([a,e],r);for(const n of r)e.push(i(n));return t}case 2:{if(c)switch(c){case"BigInt":return o([c,r.toString()],r);case"Boolean":case"Number":case"String":return o([c,r.valueOf()],r)}if(t&&"toJSON"in r)return i(r.toJSON());const n=[],f=o([a,n],r);for(const t of u(r))!e&&l(s(r[t]))||n.push([i(t),i(r[t])]);return f}case 3:return o([a,r.toISOString()],r);case 4:{const{source:e,flags:t}=r;return o([a,{source:e,flags:t}],r)}case 5:{const t=[],n=o([a,t],r);for(const[o,a]of r)(e||!l(s(o))&&!l(s(a)))&&t.push([i(o),i(a)]);return n}case 6:{const t=[],n=o([a,t],r);for(const o of r)!e&&l(s(o))||t.push(i(o));return n}}const{message:f}=r;return o([a,{name:c,message:f}],r)};return i})(!(t||n),!!t,new Map,r)(e),r},f="function"===typeof structuredClone?(e,t)=>t&&("json"in t||"lossy"in t)?o(c(e,t)):structuredClone(e):(e,t)=>o(c(e,t))},1064:(e,t,n)=>{"use strict";function r(e){const t=[],n=String(e||"");let r=n.indexOf(","),o=0,i=!1;for(;!i;){-1===r&&(r=n.length,i=!0);const e=n.slice(o,r).trim();!e&&i||t.push(e),o=r+1,r=n.indexOf(",",o)}return t}function o(e,t){const n=t||{};return(""===e[e.length-1]?[...e,""]:e).join((n.padRight?" ":"")+","+(!1===n.padLeft?"":" ")).trim()}n.d(t,{P:()=>o,Q:()=>r})},6068:(e,t,n)=>{"use strict";n.d(t,{T:()=>o});const r=document.createElement("i");function o(e){const t="&"+e+";";r.innerHTML=t;const n=r.textContent;return(59!==n.charCodeAt(n.length-1)||"semi"===e)&&(n!==t&&n)}},2337:(e,t,n)=>{"use strict";function r(){}function o(){}n.d(t,{ok:()=>r,t1:()=>o})},920:(e,t,n)=>{"use strict";n.d(t,{ge:()=>c,Go:()=>y,HP:()=>r});const r=new Uint16Array('\u1d41<\xd5\u0131\u028a\u049d\u057b\u05d0\u0675\u06de\u07a2\u07d6\u080f\u0a4a\u0a91\u0da1\u0e6d\u0f09\u0f26\u10ca\u1228\u12e1\u1415\u149d\u14c3\u14df\u1525\0\0\0\0\0\0\u156b\u16cd\u198d\u1c12\u1ddd\u1f7e\u2060\u21b0\u228d\u23c0\u23fb\u2442\u2824\u2912\u2d08\u2e48\u2fce\u3016\u32ba\u3639\u37ac\u38fe\u3a28\u3a71\u3ae0\u3b2e\u0800EMabcfglmnoprstu\\bfms\x7f\x84\x8b\x90\x95\x98\xa6\xb3\xb9\xc8\xcflig\u803b\xc6\u40c6P\u803b&\u4026cute\u803b\xc1\u40c1reve;\u4102\u0100iyx}rc\u803b\xc2\u40c2;\u4410r;\uc000\ud835\udd04rave\u803b\xc0\u40c0pha;\u4391acr;\u4100d;\u6a53\u0100gp\x9d\xa1on;\u4104f;\uc000\ud835\udd38plyFunction;\u6061ing\u803b\xc5\u40c5\u0100cs\xbe\xc3r;\uc000\ud835\udc9cign;\u6254ilde\u803b\xc3\u40c3ml\u803b\xc4\u40c4\u0400aceforsu\xe5\xfb\xfe\u0117\u011c\u0122\u0127\u012a\u0100cr\xea\xf2kslash;\u6216\u0176\xf6\xf8;\u6ae7ed;\u6306y;\u4411\u0180crt\u0105\u010b\u0114ause;\u6235noullis;\u612ca;\u4392r;\uc000\ud835\udd05pf;\uc000\ud835\udd39eve;\u42d8c\xf2\u0113mpeq;\u624e\u0700HOacdefhilorsu\u014d\u0151\u0156\u0180\u019e\u01a2\u01b5\u01b7\u01ba\u01dc\u0215\u0273\u0278\u027ecy;\u4427PY\u803b\xa9\u40a9\u0180cpy\u015d\u0162\u017aute;\u4106\u0100;i\u0167\u0168\u62d2talDifferentialD;\u6145leys;\u612d\u0200aeio\u0189\u018e\u0194\u0198ron;\u410cdil\u803b\xc7\u40c7rc;\u4108nint;\u6230ot;\u410a\u0100dn\u01a7\u01adilla;\u40b8terDot;\u40b7\xf2\u017fi;\u43a7rcle\u0200DMPT\u01c7\u01cb\u01d1\u01d6ot;\u6299inus;\u6296lus;\u6295imes;\u6297o\u0100cs\u01e2\u01f8kwiseContourIntegral;\u6232eCurly\u0100DQ\u0203\u020foubleQuote;\u601duote;\u6019\u0200lnpu\u021e\u0228\u0247\u0255on\u0100;e\u0225\u0226\u6237;\u6a74\u0180git\u022f\u0236\u023aruent;\u6261nt;\u622fourIntegral;\u622e\u0100fr\u024c\u024e;\u6102oduct;\u6210nterClockwiseContourIntegral;\u6233oss;\u6a2fcr;\uc000\ud835\udc9ep\u0100;C\u0284\u0285\u62d3ap;\u624d\u0580DJSZacefios\u02a0\u02ac\u02b0\u02b4\u02b8\u02cb\u02d7\u02e1\u02e6\u0333\u048d\u0100;o\u0179\u02a5trahd;\u6911cy;\u4402cy;\u4405cy;\u440f\u0180grs\u02bf\u02c4\u02c7ger;\u6021r;\u61a1hv;\u6ae4\u0100ay\u02d0\u02d5ron;\u410e;\u4414l\u0100;t\u02dd\u02de\u6207a;\u4394r;\uc000\ud835\udd07\u0100af\u02eb\u0327\u0100cm\u02f0\u0322ritical\u0200ADGT\u0300\u0306\u0316\u031ccute;\u40b4o\u0174\u030b\u030d;\u42d9bleAcute;\u42ddrave;\u4060ilde;\u42dcond;\u62c4ferentialD;\u6146\u0470\u033d\0\0\0\u0342\u0354\0\u0405f;\uc000\ud835\udd3b\u0180;DE\u0348\u0349\u034d\u40a8ot;\u60dcqual;\u6250ble\u0300CDLRUV\u0363\u0372\u0382\u03cf\u03e2\u03f8ontourIntegra\xec\u0239o\u0274\u0379\0\0\u037b\xbb\u0349nArrow;\u61d3\u0100eo\u0387\u03a4ft\u0180ART\u0390\u0396\u03a1rrow;\u61d0ightArrow;\u61d4e\xe5\u02cang\u0100LR\u03ab\u03c4eft\u0100AR\u03b3\u03b9rrow;\u67f8ightArrow;\u67faightArrow;\u67f9ight\u0100AT\u03d8\u03derrow;\u61d2ee;\u62a8p\u0241\u03e9\0\0\u03efrrow;\u61d1ownArrow;\u61d5erticalBar;\u6225n\u0300ABLRTa\u0412\u042a\u0430\u045e\u047f\u037crrow\u0180;BU\u041d\u041e\u0422\u6193ar;\u6913pArrow;\u61f5reve;\u4311eft\u02d2\u043a\0\u0446\0\u0450ightVector;\u6950eeVector;\u695eector\u0100;B\u0459\u045a\u61bdar;\u6956ight\u01d4\u0467\0\u0471eeVector;\u695fector\u0100;B\u047a\u047b\u61c1ar;\u6957ee\u0100;A\u0486\u0487\u62a4rrow;\u61a7\u0100ct\u0492\u0497r;\uc000\ud835\udc9frok;\u4110\u0800NTacdfglmopqstux\u04bd\u04c0\u04c4\u04cb\u04de\u04e2\u04e7\u04ee\u04f5\u0521\u052f\u0536\u0552\u055d\u0560\u0565G;\u414aH\u803b\xd0\u40d0cute\u803b\xc9\u40c9\u0180aiy\u04d2\u04d7\u04dcron;\u411arc\u803b\xca\u40ca;\u442dot;\u4116r;\uc000\ud835\udd08rave\u803b\xc8\u40c8ement;\u6208\u0100ap\u04fa\u04fecr;\u4112ty\u0253\u0506\0\0\u0512mallSquare;\u65fberySmallSquare;\u65ab\u0100gp\u0526\u052aon;\u4118f;\uc000\ud835\udd3csilon;\u4395u\u0100ai\u053c\u0549l\u0100;T\u0542\u0543\u6a75ilde;\u6242librium;\u61cc\u0100ci\u0557\u055ar;\u6130m;\u6a73a;\u4397ml\u803b\xcb\u40cb\u0100ip\u056a\u056fsts;\u6203onentialE;\u6147\u0280cfios\u0585\u0588\u058d\u05b2\u05ccy;\u4424r;\uc000\ud835\udd09lled\u0253\u0597\0\0\u05a3mallSquare;\u65fcerySmallSquare;\u65aa\u0370\u05ba\0\u05bf\0\0\u05c4f;\uc000\ud835\udd3dAll;\u6200riertrf;\u6131c\xf2\u05cb\u0600JTabcdfgorst\u05e8\u05ec\u05ef\u05fa\u0600\u0612\u0616\u061b\u061d\u0623\u066c\u0672cy;\u4403\u803b>\u403emma\u0100;d\u05f7\u05f8\u4393;\u43dcreve;\u411e\u0180eiy\u0607\u060c\u0610dil;\u4122rc;\u411c;\u4413ot;\u4120r;\uc000\ud835\udd0a;\u62d9pf;\uc000\ud835\udd3eeater\u0300EFGLST\u0635\u0644\u064e\u0656\u065b\u0666qual\u0100;L\u063e\u063f\u6265ess;\u62dbullEqual;\u6267reater;\u6aa2ess;\u6277lantEqual;\u6a7eilde;\u6273cr;\uc000\ud835\udca2;\u626b\u0400Aacfiosu\u0685\u068b\u0696\u069b\u069e\u06aa\u06be\u06caRDcy;\u442a\u0100ct\u0690\u0694ek;\u42c7;\u405eirc;\u4124r;\u610clbertSpace;\u610b\u01f0\u06af\0\u06b2f;\u610dizontalLine;\u6500\u0100ct\u06c3\u06c5\xf2\u06a9rok;\u4126mp\u0144\u06d0\u06d8ownHum\xf0\u012fqual;\u624f\u0700EJOacdfgmnostu\u06fa\u06fe\u0703\u0707\u070e\u071a\u071e\u0721\u0728\u0744\u0778\u078b\u078f\u0795cy;\u4415lig;\u4132cy;\u4401cute\u803b\xcd\u40cd\u0100iy\u0713\u0718rc\u803b\xce\u40ce;\u4418ot;\u4130r;\u6111rave\u803b\xcc\u40cc\u0180;ap\u0720\u072f\u073f\u0100cg\u0734\u0737r;\u412ainaryI;\u6148lie\xf3\u03dd\u01f4\u0749\0\u0762\u0100;e\u074d\u074e\u622c\u0100gr\u0753\u0758ral;\u622bsection;\u62c2isible\u0100CT\u076c\u0772omma;\u6063imes;\u6062\u0180gpt\u077f\u0783\u0788on;\u412ef;\uc000\ud835\udd40a;\u4399cr;\u6110ilde;\u4128\u01eb\u079a\0\u079ecy;\u4406l\u803b\xcf\u40cf\u0280cfosu\u07ac\u07b7\u07bc\u07c2\u07d0\u0100iy\u07b1\u07b5rc;\u4134;\u4419r;\uc000\ud835\udd0dpf;\uc000\ud835\udd41\u01e3\u07c7\0\u07ccr;\uc000\ud835\udca5rcy;\u4408kcy;\u4404\u0380HJacfos\u07e4\u07e8\u07ec\u07f1\u07fd\u0802\u0808cy;\u4425cy;\u440cppa;\u439a\u0100ey\u07f6\u07fbdil;\u4136;\u441ar;\uc000\ud835\udd0epf;\uc000\ud835\udd42cr;\uc000\ud835\udca6\u0580JTaceflmost\u0825\u0829\u082c\u0850\u0863\u09b3\u09b8\u09c7\u09cd\u0a37\u0a47cy;\u4409\u803b<\u403c\u0280cmnpr\u0837\u083c\u0841\u0844\u084dute;\u4139bda;\u439bg;\u67ealacetrf;\u6112r;\u619e\u0180aey\u0857\u085c\u0861ron;\u413ddil;\u413b;\u441b\u0100fs\u0868\u0970t\u0500ACDFRTUVar\u087e\u08a9\u08b1\u08e0\u08e6\u08fc\u092f\u095b\u0390\u096a\u0100nr\u0883\u088fgleBracket;\u67e8row\u0180;BR\u0899\u089a\u089e\u6190ar;\u61e4ightArrow;\u61c6eiling;\u6308o\u01f5\u08b7\0\u08c3bleBracket;\u67e6n\u01d4\u08c8\0\u08d2eeVector;\u6961ector\u0100;B\u08db\u08dc\u61c3ar;\u6959loor;\u630aight\u0100AV\u08ef\u08f5rrow;\u6194ector;\u694e\u0100er\u0901\u0917e\u0180;AV\u0909\u090a\u0910\u62a3rrow;\u61a4ector;\u695aiangle\u0180;BE\u0924\u0925\u0929\u62b2ar;\u69cfqual;\u62b4p\u0180DTV\u0937\u0942\u094cownVector;\u6951eeVector;\u6960ector\u0100;B\u0956\u0957\u61bfar;\u6958ector\u0100;B\u0965\u0966\u61bcar;\u6952ight\xe1\u039cs\u0300EFGLST\u097e\u098b\u0995\u099d\u09a2\u09adqualGreater;\u62daullEqual;\u6266reater;\u6276ess;\u6aa1lantEqual;\u6a7dilde;\u6272r;\uc000\ud835\udd0f\u0100;e\u09bd\u09be\u62d8ftarrow;\u61daidot;\u413f\u0180npw\u09d4\u0a16\u0a1bg\u0200LRlr\u09de\u09f7\u0a02\u0a10eft\u0100AR\u09e6\u09ecrrow;\u67f5ightArrow;\u67f7ightArrow;\u67f6eft\u0100ar\u03b3\u0a0aight\xe1\u03bfight\xe1\u03caf;\uc000\ud835\udd43er\u0100LR\u0a22\u0a2ceftArrow;\u6199ightArrow;\u6198\u0180cht\u0a3e\u0a40\u0a42\xf2\u084c;\u61b0rok;\u4141;\u626a\u0400acefiosu\u0a5a\u0a5d\u0a60\u0a77\u0a7c\u0a85\u0a8b\u0a8ep;\u6905y;\u441c\u0100dl\u0a65\u0a6fiumSpace;\u605flintrf;\u6133r;\uc000\ud835\udd10nusPlus;\u6213pf;\uc000\ud835\udd44c\xf2\u0a76;\u439c\u0480Jacefostu\u0aa3\u0aa7\u0aad\u0ac0\u0b14\u0b19\u0d91\u0d97\u0d9ecy;\u440acute;\u4143\u0180aey\u0ab4\u0ab9\u0aberon;\u4147dil;\u4145;\u441d\u0180gsw\u0ac7\u0af0\u0b0eative\u0180MTV\u0ad3\u0adf\u0ae8ediumSpace;\u600bhi\u0100cn\u0ae6\u0ad8\xeb\u0ad9eryThi\xee\u0ad9ted\u0100GL\u0af8\u0b06reaterGreate\xf2\u0673essLes\xf3\u0a48Line;\u400ar;\uc000\ud835\udd11\u0200Bnpt\u0b22\u0b28\u0b37\u0b3areak;\u6060BreakingSpace;\u40a0f;\u6115\u0680;CDEGHLNPRSTV\u0b55\u0b56\u0b6a\u0b7c\u0ba1\u0beb\u0c04\u0c5e\u0c84\u0ca6\u0cd8\u0d61\u0d85\u6aec\u0100ou\u0b5b\u0b64ngruent;\u6262pCap;\u626doubleVerticalBar;\u6226\u0180lqx\u0b83\u0b8a\u0b9bement;\u6209ual\u0100;T\u0b92\u0b93\u6260ilde;\uc000\u2242\u0338ists;\u6204reater\u0380;EFGLST\u0bb6\u0bb7\u0bbd\u0bc9\u0bd3\u0bd8\u0be5\u626fqual;\u6271ullEqual;\uc000\u2267\u0338reater;\uc000\u226b\u0338ess;\u6279lantEqual;\uc000\u2a7e\u0338ilde;\u6275ump\u0144\u0bf2\u0bfdownHump;\uc000\u224e\u0338qual;\uc000\u224f\u0338e\u0100fs\u0c0a\u0c27tTriangle\u0180;BE\u0c1a\u0c1b\u0c21\u62eaar;\uc000\u29cf\u0338qual;\u62ecs\u0300;EGLST\u0c35\u0c36\u0c3c\u0c44\u0c4b\u0c58\u626equal;\u6270reater;\u6278ess;\uc000\u226a\u0338lantEqual;\uc000\u2a7d\u0338ilde;\u6274ested\u0100GL\u0c68\u0c79reaterGreater;\uc000\u2aa2\u0338essLess;\uc000\u2aa1\u0338recedes\u0180;ES\u0c92\u0c93\u0c9b\u6280qual;\uc000\u2aaf\u0338lantEqual;\u62e0\u0100ei\u0cab\u0cb9verseElement;\u620cghtTriangle\u0180;BE\u0ccb\u0ccc\u0cd2\u62ebar;\uc000\u29d0\u0338qual;\u62ed\u0100qu\u0cdd\u0d0cuareSu\u0100bp\u0ce8\u0cf9set\u0100;E\u0cf0\u0cf3\uc000\u228f\u0338qual;\u62e2erset\u0100;E\u0d03\u0d06\uc000\u2290\u0338qual;\u62e3\u0180bcp\u0d13\u0d24\u0d4eset\u0100;E\u0d1b\u0d1e\uc000\u2282\u20d2qual;\u6288ceeds\u0200;EST\u0d32\u0d33\u0d3b\u0d46\u6281qual;\uc000\u2ab0\u0338lantEqual;\u62e1ilde;\uc000\u227f\u0338erset\u0100;E\u0d58\u0d5b\uc000\u2283\u20d2qual;\u6289ilde\u0200;EFT\u0d6e\u0d6f\u0d75\u0d7f\u6241qual;\u6244ullEqual;\u6247ilde;\u6249erticalBar;\u6224cr;\uc000\ud835\udca9ilde\u803b\xd1\u40d1;\u439d\u0700Eacdfgmoprstuv\u0dbd\u0dc2\u0dc9\u0dd5\u0ddb\u0de0\u0de7\u0dfc\u0e02\u0e20\u0e22\u0e32\u0e3f\u0e44lig;\u4152cute\u803b\xd3\u40d3\u0100iy\u0dce\u0dd3rc\u803b\xd4\u40d4;\u441eblac;\u4150r;\uc000\ud835\udd12rave\u803b\xd2\u40d2\u0180aei\u0dee\u0df2\u0df6cr;\u414cga;\u43a9cron;\u439fpf;\uc000\ud835\udd46enCurly\u0100DQ\u0e0e\u0e1aoubleQuote;\u601cuote;\u6018;\u6a54\u0100cl\u0e27\u0e2cr;\uc000\ud835\udcaaash\u803b\xd8\u40d8i\u016c\u0e37\u0e3cde\u803b\xd5\u40d5es;\u6a37ml\u803b\xd6\u40d6er\u0100BP\u0e4b\u0e60\u0100ar\u0e50\u0e53r;\u603eac\u0100ek\u0e5a\u0e5c;\u63deet;\u63b4arenthesis;\u63dc\u0480acfhilors\u0e7f\u0e87\u0e8a\u0e8f\u0e92\u0e94\u0e9d\u0eb0\u0efcrtialD;\u6202y;\u441fr;\uc000\ud835\udd13i;\u43a6;\u43a0usMinus;\u40b1\u0100ip\u0ea2\u0eadncareplan\xe5\u069df;\u6119\u0200;eio\u0eb9\u0eba\u0ee0\u0ee4\u6abbcedes\u0200;EST\u0ec8\u0ec9\u0ecf\u0eda\u627aqual;\u6aaflantEqual;\u627cilde;\u627eme;\u6033\u0100dp\u0ee9\u0eeeuct;\u620fortion\u0100;a\u0225\u0ef9l;\u621d\u0100ci\u0f01\u0f06r;\uc000\ud835\udcab;\u43a8\u0200Ufos\u0f11\u0f16\u0f1b\u0f1fOT\u803b"\u4022r;\uc000\ud835\udd14pf;\u611acr;\uc000\ud835\udcac\u0600BEacefhiorsu\u0f3e\u0f43\u0f47\u0f60\u0f73\u0fa7\u0faa\u0fad\u1096\u10a9\u10b4\u10bearr;\u6910G\u803b\xae\u40ae\u0180cnr\u0f4e\u0f53\u0f56ute;\u4154g;\u67ebr\u0100;t\u0f5c\u0f5d\u61a0l;\u6916\u0180aey\u0f67\u0f6c\u0f71ron;\u4158dil;\u4156;\u4420\u0100;v\u0f78\u0f79\u611cerse\u0100EU\u0f82\u0f99\u0100lq\u0f87\u0f8eement;\u620builibrium;\u61cbpEquilibrium;\u696fr\xbb\u0f79o;\u43a1ght\u0400ACDFTUVa\u0fc1\u0feb\u0ff3\u1022\u1028\u105b\u1087\u03d8\u0100nr\u0fc6\u0fd2gleBracket;\u67e9row\u0180;BL\u0fdc\u0fdd\u0fe1\u6192ar;\u61e5eftArrow;\u61c4eiling;\u6309o\u01f5\u0ff9\0\u1005bleBracket;\u67e7n\u01d4\u100a\0\u1014eeVector;\u695dector\u0100;B\u101d\u101e\u61c2ar;\u6955loor;\u630b\u0100er\u102d\u1043e\u0180;AV\u1035\u1036\u103c\u62a2rrow;\u61a6ector;\u695biangle\u0180;BE\u1050\u1051\u1055\u62b3ar;\u69d0qual;\u62b5p\u0180DTV\u1063\u106e\u1078ownVector;\u694feeVector;\u695cector\u0100;B\u1082\u1083\u61bear;\u6954ector\u0100;B\u1091\u1092\u61c0ar;\u6953\u0100pu\u109b\u109ef;\u611dndImplies;\u6970ightarrow;\u61db\u0100ch\u10b9\u10bcr;\u611b;\u61b1leDelayed;\u69f4\u0680HOacfhimoqstu\u10e4\u10f1\u10f7\u10fd\u1119\u111e\u1151\u1156\u1161\u1167\u11b5\u11bb\u11bf\u0100Cc\u10e9\u10eeHcy;\u4429y;\u4428FTcy;\u442ccute;\u415a\u0280;aeiy\u1108\u1109\u110e\u1113\u1117\u6abcron;\u4160dil;\u415erc;\u415c;\u4421r;\uc000\ud835\udd16ort\u0200DLRU\u112a\u1134\u113e\u1149ownArrow\xbb\u041eeftArrow\xbb\u089aightArrow\xbb\u0fddpArrow;\u6191gma;\u43a3allCircle;\u6218pf;\uc000\ud835\udd4a\u0272\u116d\0\0\u1170t;\u621aare\u0200;ISU\u117b\u117c\u1189\u11af\u65a1ntersection;\u6293u\u0100bp\u118f\u119eset\u0100;E\u1197\u1198\u628fqual;\u6291erset\u0100;E\u11a8\u11a9\u6290qual;\u6292nion;\u6294cr;\uc000\ud835\udcaear;\u62c6\u0200bcmp\u11c8\u11db\u1209\u120b\u0100;s\u11cd\u11ce\u62d0et\u0100;E\u11cd\u11d5qual;\u6286\u0100ch\u11e0\u1205eeds\u0200;EST\u11ed\u11ee\u11f4\u11ff\u627bqual;\u6ab0lantEqual;\u627dilde;\u627fTh\xe1\u0f8c;\u6211\u0180;es\u1212\u1213\u1223\u62d1rset\u0100;E\u121c\u121d\u6283qual;\u6287et\xbb\u1213\u0580HRSacfhiors\u123e\u1244\u1249\u1255\u125e\u1271\u1276\u129f\u12c2\u12c8\u12d1ORN\u803b\xde\u40deADE;\u6122\u0100Hc\u124e\u1252cy;\u440by;\u4426\u0100bu\u125a\u125c;\u4009;\u43a4\u0180aey\u1265\u126a\u126fron;\u4164dil;\u4162;\u4422r;\uc000\ud835\udd17\u0100ei\u127b\u1289\u01f2\u1280\0\u1287efore;\u6234a;\u4398\u0100cn\u128e\u1298kSpace;\uc000\u205f\u200aSpace;\u6009lde\u0200;EFT\u12ab\u12ac\u12b2\u12bc\u623cqual;\u6243ullEqual;\u6245ilde;\u6248pf;\uc000\ud835\udd4bipleDot;\u60db\u0100ct\u12d6\u12dbr;\uc000\ud835\udcafrok;\u4166\u0ae1\u12f7\u130e\u131a\u1326\0\u132c\u1331\0\0\0\0\0\u1338\u133d\u1377\u1385\0\u13ff\u1404\u140a\u1410\u0100cr\u12fb\u1301ute\u803b\xda\u40dar\u0100;o\u1307\u1308\u619fcir;\u6949r\u01e3\u1313\0\u1316y;\u440eve;\u416c\u0100iy\u131e\u1323rc\u803b\xdb\u40db;\u4423blac;\u4170r;\uc000\ud835\udd18rave\u803b\xd9\u40d9acr;\u416a\u0100di\u1341\u1369er\u0100BP\u1348\u135d\u0100ar\u134d\u1350r;\u405fac\u0100ek\u1357\u1359;\u63dfet;\u63b5arenthesis;\u63ddon\u0100;P\u1370\u1371\u62c3lus;\u628e\u0100gp\u137b\u137fon;\u4172f;\uc000\ud835\udd4c\u0400ADETadps\u1395\u13ae\u13b8\u13c4\u03e8\u13d2\u13d7\u13f3rrow\u0180;BD\u1150\u13a0\u13a4ar;\u6912ownArrow;\u61c5ownArrow;\u6195quilibrium;\u696eee\u0100;A\u13cb\u13cc\u62a5rrow;\u61a5own\xe1\u03f3er\u0100LR\u13de\u13e8eftArrow;\u6196ightArrow;\u6197i\u0100;l\u13f9\u13fa\u43d2on;\u43a5ing;\u416ecr;\uc000\ud835\udcb0ilde;\u4168ml\u803b\xdc\u40dc\u0480Dbcdefosv\u1427\u142c\u1430\u1433\u143e\u1485\u148a\u1490\u1496ash;\u62abar;\u6aeby;\u4412ash\u0100;l\u143b\u143c\u62a9;\u6ae6\u0100er\u1443\u1445;\u62c1\u0180bty\u144c\u1450\u147aar;\u6016\u0100;i\u144f\u1455cal\u0200BLST\u1461\u1465\u146a\u1474ar;\u6223ine;\u407ceparator;\u6758ilde;\u6240ThinSpace;\u600ar;\uc000\ud835\udd19pf;\uc000\ud835\udd4dcr;\uc000\ud835\udcb1dash;\u62aa\u0280cefos\u14a7\u14ac\u14b1\u14b6\u14bcirc;\u4174dge;\u62c0r;\uc000\ud835\udd1apf;\uc000\ud835\udd4ecr;\uc000\ud835\udcb2\u0200fios\u14cb\u14d0\u14d2\u14d8r;\uc000\ud835\udd1b;\u439epf;\uc000\ud835\udd4fcr;\uc000\ud835\udcb3\u0480AIUacfosu\u14f1\u14f5\u14f9\u14fd\u1504\u150f\u1514\u151a\u1520cy;\u442fcy;\u4407cy;\u442ecute\u803b\xdd\u40dd\u0100iy\u1509\u150drc;\u4176;\u442br;\uc000\ud835\udd1cpf;\uc000\ud835\udd50cr;\uc000\ud835\udcb4ml;\u4178\u0400Hacdefos\u1535\u1539\u153f\u154b\u154f\u155d\u1560\u1564cy;\u4416cute;\u4179\u0100ay\u1544\u1549ron;\u417d;\u4417ot;\u417b\u01f2\u1554\0\u155boWidt\xe8\u0ad9a;\u4396r;\u6128pf;\u6124cr;\uc000\ud835\udcb5\u0be1\u1583\u158a\u1590\0\u15b0\u15b6\u15bf\0\0\0\0\u15c6\u15db\u15eb\u165f\u166d\0\u1695\u169b\u16b2\u16b9\0\u16becute\u803b\xe1\u40e1reve;\u4103\u0300;Ediuy\u159c\u159d\u15a1\u15a3\u15a8\u15ad\u623e;\uc000\u223e\u0333;\u623frc\u803b\xe2\u40e2te\u80bb\xb4\u0306;\u4430lig\u803b\xe6\u40e6\u0100;r\xb2\u15ba;\uc000\ud835\udd1erave\u803b\xe0\u40e0\u0100ep\u15ca\u15d6\u0100fp\u15cf\u15d4sym;\u6135\xe8\u15d3ha;\u43b1\u0100ap\u15dfc\u0100cl\u15e4\u15e7r;\u4101g;\u6a3f\u0264\u15f0\0\0\u160a\u0280;adsv\u15fa\u15fb\u15ff\u1601\u1607\u6227nd;\u6a55;\u6a5clope;\u6a58;\u6a5a\u0380;elmrsz\u1618\u1619\u161b\u161e\u163f\u164f\u1659\u6220;\u69a4e\xbb\u1619sd\u0100;a\u1625\u1626\u6221\u0461\u1630\u1632\u1634\u1636\u1638\u163a\u163c\u163e;\u69a8;\u69a9;\u69aa;\u69ab;\u69ac;\u69ad;\u69ae;\u69aft\u0100;v\u1645\u1646\u621fb\u0100;d\u164c\u164d\u62be;\u699d\u0100pt\u1654\u1657h;\u6222\xbb\xb9arr;\u637c\u0100gp\u1663\u1667on;\u4105f;\uc000\ud835\udd52\u0380;Eaeiop\u12c1\u167b\u167d\u1682\u1684\u1687\u168a;\u6a70cir;\u6a6f;\u624ad;\u624bs;\u4027rox\u0100;e\u12c1\u1692\xf1\u1683ing\u803b\xe5\u40e5\u0180cty\u16a1\u16a6\u16a8r;\uc000\ud835\udcb6;\u402amp\u0100;e\u12c1\u16af\xf1\u0288ilde\u803b\xe3\u40e3ml\u803b\xe4\u40e4\u0100ci\u16c2\u16c8onin\xf4\u0272nt;\u6a11\u0800Nabcdefiklnoprsu\u16ed\u16f1\u1730\u173c\u1743\u1748\u1778\u177d\u17e0\u17e6\u1839\u1850\u170d\u193d\u1948\u1970ot;\u6aed\u0100cr\u16f6\u171ek\u0200ceps\u1700\u1705\u170d\u1713ong;\u624cpsilon;\u43f6rime;\u6035im\u0100;e\u171a\u171b\u623dq;\u62cd\u0176\u1722\u1726ee;\u62bded\u0100;g\u172c\u172d\u6305e\xbb\u172drk\u0100;t\u135c\u1737brk;\u63b6\u0100oy\u1701\u1741;\u4431quo;\u601e\u0280cmprt\u1753\u175b\u1761\u1764\u1768aus\u0100;e\u010a\u0109ptyv;\u69b0s\xe9\u170cno\xf5\u0113\u0180ahw\u176f\u1771\u1773;\u43b2;\u6136een;\u626cr;\uc000\ud835\udd1fg\u0380costuvw\u178d\u179d\u17b3\u17c1\u17d5\u17db\u17de\u0180aiu\u1794\u1796\u179a\xf0\u0760rc;\u65efp\xbb\u1371\u0180dpt\u17a4\u17a8\u17adot;\u6a00lus;\u6a01imes;\u6a02\u0271\u17b9\0\0\u17becup;\u6a06ar;\u6605riangle\u0100du\u17cd\u17d2own;\u65bdp;\u65b3plus;\u6a04e\xe5\u1444\xe5\u14adarow;\u690d\u0180ako\u17ed\u1826\u1835\u0100cn\u17f2\u1823k\u0180lst\u17fa\u05ab\u1802ozenge;\u69ebriangle\u0200;dlr\u1812\u1813\u1818\u181d\u65b4own;\u65beeft;\u65c2ight;\u65b8k;\u6423\u01b1\u182b\0\u1833\u01b2\u182f\0\u1831;\u6592;\u65914;\u6593ck;\u6588\u0100eo\u183e\u184d\u0100;q\u1843\u1846\uc000=\u20e5uiv;\uc000\u2261\u20e5t;\u6310\u0200ptwx\u1859\u185e\u1867\u186cf;\uc000\ud835\udd53\u0100;t\u13cb\u1863om\xbb\u13cctie;\u62c8\u0600DHUVbdhmptuv\u1885\u1896\u18aa\u18bb\u18d7\u18db\u18ec\u18ff\u1905\u190a\u1910\u1921\u0200LRlr\u188e\u1890\u1892\u1894;\u6557;\u6554;\u6556;\u6553\u0280;DUdu\u18a1\u18a2\u18a4\u18a6\u18a8\u6550;\u6566;\u6569;\u6564;\u6567\u0200LRlr\u18b3\u18b5\u18b7\u18b9;\u655d;\u655a;\u655c;\u6559\u0380;HLRhlr\u18ca\u18cb\u18cd\u18cf\u18d1\u18d3\u18d5\u6551;\u656c;\u6563;\u6560;\u656b;\u6562;\u655fox;\u69c9\u0200LRlr\u18e4\u18e6\u18e8\u18ea;\u6555;\u6552;\u6510;\u650c\u0280;DUdu\u06bd\u18f7\u18f9\u18fb\u18fd;\u6565;\u6568;\u652c;\u6534inus;\u629flus;\u629eimes;\u62a0\u0200LRlr\u1919\u191b\u191d\u191f;\u655b;\u6558;\u6518;\u6514\u0380;HLRhlr\u1930\u1931\u1933\u1935\u1937\u1939\u193b\u6502;\u656a;\u6561;\u655e;\u653c;\u6524;\u651c\u0100ev\u0123\u1942bar\u803b\xa6\u40a6\u0200ceio\u1951\u1956\u195a\u1960r;\uc000\ud835\udcb7mi;\u604fm\u0100;e\u171a\u171cl\u0180;bh\u1968\u1969\u196b\u405c;\u69c5sub;\u67c8\u016c\u1974\u197el\u0100;e\u1979\u197a\u6022t\xbb\u197ap\u0180;Ee\u012f\u1985\u1987;\u6aae\u0100;q\u06dc\u06db\u0ce1\u19a7\0\u19e8\u1a11\u1a15\u1a32\0\u1a37\u1a50\0\0\u1ab4\0\0\u1ac1\0\0\u1b21\u1b2e\u1b4d\u1b52\0\u1bfd\0\u1c0c\u0180cpr\u19ad\u19b2\u19ddute;\u4107\u0300;abcds\u19bf\u19c0\u19c4\u19ca\u19d5\u19d9\u6229nd;\u6a44rcup;\u6a49\u0100au\u19cf\u19d2p;\u6a4bp;\u6a47ot;\u6a40;\uc000\u2229\ufe00\u0100eo\u19e2\u19e5t;\u6041\xee\u0693\u0200aeiu\u19f0\u19fb\u1a01\u1a05\u01f0\u19f5\0\u19f8s;\u6a4don;\u410ddil\u803b\xe7\u40e7rc;\u4109ps\u0100;s\u1a0c\u1a0d\u6a4cm;\u6a50ot;\u410b\u0180dmn\u1a1b\u1a20\u1a26il\u80bb\xb8\u01adptyv;\u69b2t\u8100\xa2;e\u1a2d\u1a2e\u40a2r\xe4\u01b2r;\uc000\ud835\udd20\u0180cei\u1a3d\u1a40\u1a4dy;\u4447ck\u0100;m\u1a47\u1a48\u6713ark\xbb\u1a48;\u43c7r\u0380;Ecefms\u1a5f\u1a60\u1a62\u1a6b\u1aa4\u1aaa\u1aae\u65cb;\u69c3\u0180;el\u1a69\u1a6a\u1a6d\u42c6q;\u6257e\u0261\u1a74\0\0\u1a88rrow\u0100lr\u1a7c\u1a81eft;\u61baight;\u61bb\u0280RSacd\u1a92\u1a94\u1a96\u1a9a\u1a9f\xbb\u0f47;\u64c8st;\u629birc;\u629aash;\u629dnint;\u6a10id;\u6aefcir;\u69c2ubs\u0100;u\u1abb\u1abc\u6663it\xbb\u1abc\u02ec\u1ac7\u1ad4\u1afa\0\u1b0aon\u0100;e\u1acd\u1ace\u403a\u0100;q\xc7\xc6\u026d\u1ad9\0\0\u1ae2a\u0100;t\u1ade\u1adf\u402c;\u4040\u0180;fl\u1ae8\u1ae9\u1aeb\u6201\xee\u1160e\u0100mx\u1af1\u1af6ent\xbb\u1ae9e\xf3\u024d\u01e7\u1afe\0\u1b07\u0100;d\u12bb\u1b02ot;\u6a6dn\xf4\u0246\u0180fry\u1b10\u1b14\u1b17;\uc000\ud835\udd54o\xe4\u0254\u8100\xa9;s\u0155\u1b1dr;\u6117\u0100ao\u1b25\u1b29rr;\u61b5ss;\u6717\u0100cu\u1b32\u1b37r;\uc000\ud835\udcb8\u0100bp\u1b3c\u1b44\u0100;e\u1b41\u1b42\u6acf;\u6ad1\u0100;e\u1b49\u1b4a\u6ad0;\u6ad2dot;\u62ef\u0380delprvw\u1b60\u1b6c\u1b77\u1b82\u1bac\u1bd4\u1bf9arr\u0100lr\u1b68\u1b6a;\u6938;\u6935\u0270\u1b72\0\0\u1b75r;\u62dec;\u62dfarr\u0100;p\u1b7f\u1b80\u61b6;\u693d\u0300;bcdos\u1b8f\u1b90\u1b96\u1ba1\u1ba5\u1ba8\u622arcap;\u6a48\u0100au\u1b9b\u1b9ep;\u6a46p;\u6a4aot;\u628dr;\u6a45;\uc000\u222a\ufe00\u0200alrv\u1bb5\u1bbf\u1bde\u1be3rr\u0100;m\u1bbc\u1bbd\u61b7;\u693cy\u0180evw\u1bc7\u1bd4\u1bd8q\u0270\u1bce\0\0\u1bd2re\xe3\u1b73u\xe3\u1b75ee;\u62ceedge;\u62cfen\u803b\xa4\u40a4earrow\u0100lr\u1bee\u1bf3eft\xbb\u1b80ight\xbb\u1bbde\xe4\u1bdd\u0100ci\u1c01\u1c07onin\xf4\u01f7nt;\u6231lcty;\u632d\u0980AHabcdefhijlorstuwz\u1c38\u1c3b\u1c3f\u1c5d\u1c69\u1c75\u1c8a\u1c9e\u1cac\u1cb7\u1cfb\u1cff\u1d0d\u1d7b\u1d91\u1dab\u1dbb\u1dc6\u1dcdr\xf2\u0381ar;\u6965\u0200glrs\u1c48\u1c4d\u1c52\u1c54ger;\u6020eth;\u6138\xf2\u1133h\u0100;v\u1c5a\u1c5b\u6010\xbb\u090a\u016b\u1c61\u1c67arow;\u690fa\xe3\u0315\u0100ay\u1c6e\u1c73ron;\u410f;\u4434\u0180;ao\u0332\u1c7c\u1c84\u0100gr\u02bf\u1c81r;\u61catseq;\u6a77\u0180glm\u1c91\u1c94\u1c98\u803b\xb0\u40b0ta;\u43b4ptyv;\u69b1\u0100ir\u1ca3\u1ca8sht;\u697f;\uc000\ud835\udd21ar\u0100lr\u1cb3\u1cb5\xbb\u08dc\xbb\u101e\u0280aegsv\u1cc2\u0378\u1cd6\u1cdc\u1ce0m\u0180;os\u0326\u1cca\u1cd4nd\u0100;s\u0326\u1cd1uit;\u6666amma;\u43ddin;\u62f2\u0180;io\u1ce7\u1ce8\u1cf8\u40f7de\u8100\xf7;o\u1ce7\u1cf0ntimes;\u62c7n\xf8\u1cf7cy;\u4452c\u026f\u1d06\0\0\u1d0arn;\u631eop;\u630d\u0280lptuw\u1d18\u1d1d\u1d22\u1d49\u1d55lar;\u4024f;\uc000\ud835\udd55\u0280;emps\u030b\u1d2d\u1d37\u1d3d\u1d42q\u0100;d\u0352\u1d33ot;\u6251inus;\u6238lus;\u6214quare;\u62a1blebarwedg\xe5\xfan\u0180adh\u112e\u1d5d\u1d67ownarrow\xf3\u1c83arpoon\u0100lr\u1d72\u1d76ef\xf4\u1cb4igh\xf4\u1cb6\u0162\u1d7f\u1d85karo\xf7\u0f42\u026f\u1d8a\0\0\u1d8ern;\u631fop;\u630c\u0180cot\u1d98\u1da3\u1da6\u0100ry\u1d9d\u1da1;\uc000\ud835\udcb9;\u4455l;\u69f6rok;\u4111\u0100dr\u1db0\u1db4ot;\u62f1i\u0100;f\u1dba\u1816\u65bf\u0100ah\u1dc0\u1dc3r\xf2\u0429a\xf2\u0fa6angle;\u69a6\u0100ci\u1dd2\u1dd5y;\u445fgrarr;\u67ff\u0900Dacdefglmnopqrstux\u1e01\u1e09\u1e19\u1e38\u0578\u1e3c\u1e49\u1e61\u1e7e\u1ea5\u1eaf\u1ebd\u1ee1\u1f2a\u1f37\u1f44\u1f4e\u1f5a\u0100Do\u1e06\u1d34o\xf4\u1c89\u0100cs\u1e0e\u1e14ute\u803b\xe9\u40e9ter;\u6a6e\u0200aioy\u1e22\u1e27\u1e31\u1e36ron;\u411br\u0100;c\u1e2d\u1e2e\u6256\u803b\xea\u40ealon;\u6255;\u444dot;\u4117\u0100Dr\u1e41\u1e45ot;\u6252;\uc000\ud835\udd22\u0180;rs\u1e50\u1e51\u1e57\u6a9aave\u803b\xe8\u40e8\u0100;d\u1e5c\u1e5d\u6a96ot;\u6a98\u0200;ils\u1e6a\u1e6b\u1e72\u1e74\u6a99nters;\u63e7;\u6113\u0100;d\u1e79\u1e7a\u6a95ot;\u6a97\u0180aps\u1e85\u1e89\u1e97cr;\u4113ty\u0180;sv\u1e92\u1e93\u1e95\u6205et\xbb\u1e93p\u01001;\u1e9d\u1ea4\u0133\u1ea1\u1ea3;\u6004;\u6005\u6003\u0100gs\u1eaa\u1eac;\u414bp;\u6002\u0100gp\u1eb4\u1eb8on;\u4119f;\uc000\ud835\udd56\u0180als\u1ec4\u1ece\u1ed2r\u0100;s\u1eca\u1ecb\u62d5l;\u69e3us;\u6a71i\u0180;lv\u1eda\u1edb\u1edf\u43b5on\xbb\u1edb;\u43f5\u0200csuv\u1eea\u1ef3\u1f0b\u1f23\u0100io\u1eef\u1e31rc\xbb\u1e2e\u0269\u1ef9\0\0\u1efb\xed\u0548ant\u0100gl\u1f02\u1f06tr\xbb\u1e5dess\xbb\u1e7a\u0180aei\u1f12\u1f16\u1f1als;\u403dst;\u625fv\u0100;D\u0235\u1f20D;\u6a78parsl;\u69e5\u0100Da\u1f2f\u1f33ot;\u6253rr;\u6971\u0180cdi\u1f3e\u1f41\u1ef8r;\u612fo\xf4\u0352\u0100ah\u1f49\u1f4b;\u43b7\u803b\xf0\u40f0\u0100mr\u1f53\u1f57l\u803b\xeb\u40ebo;\u60ac\u0180cip\u1f61\u1f64\u1f67l;\u4021s\xf4\u056e\u0100eo\u1f6c\u1f74ctatio\xee\u0559nential\xe5\u0579\u09e1\u1f92\0\u1f9e\0\u1fa1\u1fa7\0\0\u1fc6\u1fcc\0\u1fd3\0\u1fe6\u1fea\u2000\0\u2008\u205allingdotse\xf1\u1e44y;\u4444male;\u6640\u0180ilr\u1fad\u1fb3\u1fc1lig;\u8000\ufb03\u0269\u1fb9\0\0\u1fbdg;\u8000\ufb00ig;\u8000\ufb04;\uc000\ud835\udd23lig;\u8000\ufb01lig;\uc000fj\u0180alt\u1fd9\u1fdc\u1fe1t;\u666dig;\u8000\ufb02ns;\u65b1of;\u4192\u01f0\u1fee\0\u1ff3f;\uc000\ud835\udd57\u0100ak\u05bf\u1ff7\u0100;v\u1ffc\u1ffd\u62d4;\u6ad9artint;\u6a0d\u0100ao\u200c\u2055\u0100cs\u2011\u2052\u03b1\u201a\u2030\u2038\u2045\u2048\0\u2050\u03b2\u2022\u2025\u2027\u202a\u202c\0\u202e\u803b\xbd\u40bd;\u6153\u803b\xbc\u40bc;\u6155;\u6159;\u615b\u01b3\u2034\0\u2036;\u6154;\u6156\u02b4\u203e\u2041\0\0\u2043\u803b\xbe\u40be;\u6157;\u615c5;\u6158\u01b6\u204c\0\u204e;\u615a;\u615d8;\u615el;\u6044wn;\u6322cr;\uc000\ud835\udcbb\u0880Eabcdefgijlnorstv\u2082\u2089\u209f\u20a5\u20b0\u20b4\u20f0\u20f5\u20fa\u20ff\u2103\u2112\u2138\u0317\u213e\u2152\u219e\u0100;l\u064d\u2087;\u6a8c\u0180cmp\u2090\u2095\u209dute;\u41f5ma\u0100;d\u209c\u1cda\u43b3;\u6a86reve;\u411f\u0100iy\u20aa\u20aerc;\u411d;\u4433ot;\u4121\u0200;lqs\u063e\u0642\u20bd\u20c9\u0180;qs\u063e\u064c\u20c4lan\xf4\u0665\u0200;cdl\u0665\u20d2\u20d5\u20e5c;\u6aa9ot\u0100;o\u20dc\u20dd\u6a80\u0100;l\u20e2\u20e3\u6a82;\u6a84\u0100;e\u20ea\u20ed\uc000\u22db\ufe00s;\u6a94r;\uc000\ud835\udd24\u0100;g\u0673\u061bmel;\u6137cy;\u4453\u0200;Eaj\u065a\u210c\u210e\u2110;\u6a92;\u6aa5;\u6aa4\u0200Eaes\u211b\u211d\u2129\u2134;\u6269p\u0100;p\u2123\u2124\u6a8arox\xbb\u2124\u0100;q\u212e\u212f\u6a88\u0100;q\u212e\u211bim;\u62e7pf;\uc000\ud835\udd58\u0100ci\u2143\u2146r;\u610am\u0180;el\u066b\u214e\u2150;\u6a8e;\u6a90\u8300>;cdlqr\u05ee\u2160\u216a\u216e\u2173\u2179\u0100ci\u2165\u2167;\u6aa7r;\u6a7aot;\u62d7Par;\u6995uest;\u6a7c\u0280adels\u2184\u216a\u2190\u0656\u219b\u01f0\u2189\0\u218epro\xf8\u209er;\u6978q\u0100lq\u063f\u2196les\xf3\u2088i\xed\u066b\u0100en\u21a3\u21adrtneqq;\uc000\u2269\ufe00\xc5\u21aa\u0500Aabcefkosy\u21c4\u21c7\u21f1\u21f5\u21fa\u2218\u221d\u222f\u2268\u227dr\xf2\u03a0\u0200ilmr\u21d0\u21d4\u21d7\u21dbrs\xf0\u1484f\xbb\u2024il\xf4\u06a9\u0100dr\u21e0\u21e4cy;\u444a\u0180;cw\u08f4\u21eb\u21efir;\u6948;\u61adar;\u610firc;\u4125\u0180alr\u2201\u220e\u2213rts\u0100;u\u2209\u220a\u6665it\xbb\u220alip;\u6026con;\u62b9r;\uc000\ud835\udd25s\u0100ew\u2223\u2229arow;\u6925arow;\u6926\u0280amopr\u223a\u223e\u2243\u225e\u2263rr;\u61fftht;\u623bk\u0100lr\u2249\u2253eftarrow;\u61a9ightarrow;\u61aaf;\uc000\ud835\udd59bar;\u6015\u0180clt\u226f\u2274\u2278r;\uc000\ud835\udcbdas\xe8\u21f4rok;\u4127\u0100bp\u2282\u2287ull;\u6043hen\xbb\u1c5b\u0ae1\u22a3\0\u22aa\0\u22b8\u22c5\u22ce\0\u22d5\u22f3\0\0\u22f8\u2322\u2367\u2362\u237f\0\u2386\u23aa\u23b4cute\u803b\xed\u40ed\u0180;iy\u0771\u22b0\u22b5rc\u803b\xee\u40ee;\u4438\u0100cx\u22bc\u22bfy;\u4435cl\u803b\xa1\u40a1\u0100fr\u039f\u22c9;\uc000\ud835\udd26rave\u803b\xec\u40ec\u0200;ino\u073e\u22dd\u22e9\u22ee\u0100in\u22e2\u22e6nt;\u6a0ct;\u622dfin;\u69dcta;\u6129lig;\u4133\u0180aop\u22fe\u231a\u231d\u0180cgt\u2305\u2308\u2317r;\u412b\u0180elp\u071f\u230f\u2313in\xe5\u078ear\xf4\u0720h;\u4131f;\u62b7ed;\u41b5\u0280;cfot\u04f4\u232c\u2331\u233d\u2341are;\u6105in\u0100;t\u2338\u2339\u621eie;\u69dddo\xf4\u2319\u0280;celp\u0757\u234c\u2350\u235b\u2361al;\u62ba\u0100gr\u2355\u2359er\xf3\u1563\xe3\u234darhk;\u6a17rod;\u6a3c\u0200cgpt\u236f\u2372\u2376\u237by;\u4451on;\u412ff;\uc000\ud835\udd5aa;\u43b9uest\u803b\xbf\u40bf\u0100ci\u238a\u238fr;\uc000\ud835\udcben\u0280;Edsv\u04f4\u239b\u239d\u23a1\u04f3;\u62f9ot;\u62f5\u0100;v\u23a6\u23a7\u62f4;\u62f3\u0100;i\u0777\u23aelde;\u4129\u01eb\u23b8\0\u23bccy;\u4456l\u803b\xef\u40ef\u0300cfmosu\u23cc\u23d7\u23dc\u23e1\u23e7\u23f5\u0100iy\u23d1\u23d5rc;\u4135;\u4439r;\uc000\ud835\udd27ath;\u4237pf;\uc000\ud835\udd5b\u01e3\u23ec\0\u23f1r;\uc000\ud835\udcbfrcy;\u4458kcy;\u4454\u0400acfghjos\u240b\u2416\u2422\u2427\u242d\u2431\u2435\u243bppa\u0100;v\u2413\u2414\u43ba;\u43f0\u0100ey\u241b\u2420dil;\u4137;\u443ar;\uc000\ud835\udd28reen;\u4138cy;\u4445cy;\u445cpf;\uc000\ud835\udd5ccr;\uc000\ud835\udcc0\u0b80ABEHabcdefghjlmnoprstuv\u2470\u2481\u2486\u248d\u2491\u250e\u253d\u255a\u2580\u264e\u265e\u2665\u2679\u267d\u269a\u26b2\u26d8\u275d\u2768\u278b\u27c0\u2801\u2812\u0180art\u2477\u247a\u247cr\xf2\u09c6\xf2\u0395ail;\u691barr;\u690e\u0100;g\u0994\u248b;\u6a8bar;\u6962\u0963\u24a5\0\u24aa\0\u24b1\0\0\0\0\0\u24b5\u24ba\0\u24c6\u24c8\u24cd\0\u24f9ute;\u413amptyv;\u69b4ra\xee\u084cbda;\u43bbg\u0180;dl\u088e\u24c1\u24c3;\u6991\xe5\u088e;\u6a85uo\u803b\xab\u40abr\u0400;bfhlpst\u0899\u24de\u24e6\u24e9\u24eb\u24ee\u24f1\u24f5\u0100;f\u089d\u24e3s;\u691fs;\u691d\xeb\u2252p;\u61abl;\u6939im;\u6973l;\u61a2\u0180;ae\u24ff\u2500\u2504\u6aabil;\u6919\u0100;s\u2509\u250a\u6aad;\uc000\u2aad\ufe00\u0180abr\u2515\u2519\u251drr;\u690crk;\u6772\u0100ak\u2522\u252cc\u0100ek\u2528\u252a;\u407b;\u405b\u0100es\u2531\u2533;\u698bl\u0100du\u2539\u253b;\u698f;\u698d\u0200aeuy\u2546\u254b\u2556\u2558ron;\u413e\u0100di\u2550\u2554il;\u413c\xec\u08b0\xe2\u2529;\u443b\u0200cqrs\u2563\u2566\u256d\u257da;\u6936uo\u0100;r\u0e19\u1746\u0100du\u2572\u2577har;\u6967shar;\u694bh;\u61b2\u0280;fgqs\u258b\u258c\u0989\u25f3\u25ff\u6264t\u0280ahlrt\u2598\u25a4\u25b7\u25c2\u25e8rrow\u0100;t\u0899\u25a1a\xe9\u24f6arpoon\u0100du\u25af\u25b4own\xbb\u045ap\xbb\u0966eftarrows;\u61c7ight\u0180ahs\u25cd\u25d6\u25derrow\u0100;s\u08f4\u08a7arpoon\xf3\u0f98quigarro\xf7\u21f0hreetimes;\u62cb\u0180;qs\u258b\u0993\u25falan\xf4\u09ac\u0280;cdgs\u09ac\u260a\u260d\u261d\u2628c;\u6aa8ot\u0100;o\u2614\u2615\u6a7f\u0100;r\u261a\u261b\u6a81;\u6a83\u0100;e\u2622\u2625\uc000\u22da\ufe00s;\u6a93\u0280adegs\u2633\u2639\u263d\u2649\u264bppro\xf8\u24c6ot;\u62d6q\u0100gq\u2643\u2645\xf4\u0989gt\xf2\u248c\xf4\u099bi\xed\u09b2\u0180ilr\u2655\u08e1\u265asht;\u697c;\uc000\ud835\udd29\u0100;E\u099c\u2663;\u6a91\u0161\u2669\u2676r\u0100du\u25b2\u266e\u0100;l\u0965\u2673;\u696alk;\u6584cy;\u4459\u0280;acht\u0a48\u2688\u268b\u2691\u2696r\xf2\u25c1orne\xf2\u1d08ard;\u696bri;\u65fa\u0100io\u269f\u26a4dot;\u4140ust\u0100;a\u26ac\u26ad\u63b0che\xbb\u26ad\u0200Eaes\u26bb\u26bd\u26c9\u26d4;\u6268p\u0100;p\u26c3\u26c4\u6a89rox\xbb\u26c4\u0100;q\u26ce\u26cf\u6a87\u0100;q\u26ce\u26bbim;\u62e6\u0400abnoptwz\u26e9\u26f4\u26f7\u271a\u272f\u2741\u2747\u2750\u0100nr\u26ee\u26f1g;\u67ecr;\u61fdr\xeb\u08c1g\u0180lmr\u26ff\u270d\u2714eft\u0100ar\u09e6\u2707ight\xe1\u09f2apsto;\u67fcight\xe1\u09fdparrow\u0100lr\u2725\u2729ef\xf4\u24edight;\u61ac\u0180afl\u2736\u2739\u273dr;\u6985;\uc000\ud835\udd5dus;\u6a2dimes;\u6a34\u0161\u274b\u274fst;\u6217\xe1\u134e\u0180;ef\u2757\u2758\u1800\u65cange\xbb\u2758ar\u0100;l\u2764\u2765\u4028t;\u6993\u0280achmt\u2773\u2776\u277c\u2785\u2787r\xf2\u08a8orne\xf2\u1d8car\u0100;d\u0f98\u2783;\u696d;\u600eri;\u62bf\u0300achiqt\u2798\u279d\u0a40\u27a2\u27ae\u27bbquo;\u6039r;\uc000\ud835\udcc1m\u0180;eg\u09b2\u27aa\u27ac;\u6a8d;\u6a8f\u0100bu\u252a\u27b3o\u0100;r\u0e1f\u27b9;\u601arok;\u4142\u8400<;cdhilqr\u082b\u27d2\u2639\u27dc\u27e0\u27e5\u27ea\u27f0\u0100ci\u27d7\u27d9;\u6aa6r;\u6a79re\xe5\u25f2mes;\u62c9arr;\u6976uest;\u6a7b\u0100Pi\u27f5\u27f9ar;\u6996\u0180;ef\u2800\u092d\u181b\u65c3r\u0100du\u2807\u280dshar;\u694ahar;\u6966\u0100en\u2817\u2821rtneqq;\uc000\u2268\ufe00\xc5\u281e\u0700Dacdefhilnopsu\u2840\u2845\u2882\u288e\u2893\u28a0\u28a5\u28a8\u28da\u28e2\u28e4\u0a83\u28f3\u2902Dot;\u623a\u0200clpr\u284e\u2852\u2863\u287dr\u803b\xaf\u40af\u0100et\u2857\u2859;\u6642\u0100;e\u285e\u285f\u6720se\xbb\u285f\u0100;s\u103b\u2868to\u0200;dlu\u103b\u2873\u2877\u287bow\xee\u048cef\xf4\u090f\xf0\u13d1ker;\u65ae\u0100oy\u2887\u288cmma;\u6a29;\u443cash;\u6014asuredangle\xbb\u1626r;\uc000\ud835\udd2ao;\u6127\u0180cdn\u28af\u28b4\u28c9ro\u803b\xb5\u40b5\u0200;acd\u1464\u28bd\u28c0\u28c4s\xf4\u16a7ir;\u6af0ot\u80bb\xb7\u01b5us\u0180;bd\u28d2\u1903\u28d3\u6212\u0100;u\u1d3c\u28d8;\u6a2a\u0163\u28de\u28e1p;\u6adb\xf2\u2212\xf0\u0a81\u0100dp\u28e9\u28eeels;\u62a7f;\uc000\ud835\udd5e\u0100ct\u28f8\u28fdr;\uc000\ud835\udcc2pos\xbb\u159d\u0180;lm\u2909\u290a\u290d\u43bctimap;\u62b8\u0c00GLRVabcdefghijlmoprstuvw\u2942\u2953\u297e\u2989\u2998\u29da\u29e9\u2a15\u2a1a\u2a58\u2a5d\u2a83\u2a95\u2aa4\u2aa8\u2b04\u2b07\u2b44\u2b7f\u2bae\u2c34\u2c67\u2c7c\u2ce9\u0100gt\u2947\u294b;\uc000\u22d9\u0338\u0100;v\u2950\u0bcf\uc000\u226b\u20d2\u0180elt\u295a\u2972\u2976ft\u0100ar\u2961\u2967rrow;\u61cdightarrow;\u61ce;\uc000\u22d8\u0338\u0100;v\u297b\u0c47\uc000\u226a\u20d2ightarrow;\u61cf\u0100Dd\u298e\u2993ash;\u62afash;\u62ae\u0280bcnpt\u29a3\u29a7\u29ac\u29b1\u29ccla\xbb\u02deute;\u4144g;\uc000\u2220\u20d2\u0280;Eiop\u0d84\u29bc\u29c0\u29c5\u29c8;\uc000\u2a70\u0338d;\uc000\u224b\u0338s;\u4149ro\xf8\u0d84ur\u0100;a\u29d3\u29d4\u666el\u0100;s\u29d3\u0b38\u01f3\u29df\0\u29e3p\u80bb\xa0\u0b37mp\u0100;e\u0bf9\u0c00\u0280aeouy\u29f4\u29fe\u2a03\u2a10\u2a13\u01f0\u29f9\0\u29fb;\u6a43on;\u4148dil;\u4146ng\u0100;d\u0d7e\u2a0aot;\uc000\u2a6d\u0338p;\u6a42;\u443dash;\u6013\u0380;Aadqsx\u0b92\u2a29\u2a2d\u2a3b\u2a41\u2a45\u2a50rr;\u61d7r\u0100hr\u2a33\u2a36k;\u6924\u0100;o\u13f2\u13f0ot;\uc000\u2250\u0338ui\xf6\u0b63\u0100ei\u2a4a\u2a4ear;\u6928\xed\u0b98ist\u0100;s\u0ba0\u0b9fr;\uc000\ud835\udd2b\u0200Eest\u0bc5\u2a66\u2a79\u2a7c\u0180;qs\u0bbc\u2a6d\u0be1\u0180;qs\u0bbc\u0bc5\u2a74lan\xf4\u0be2i\xed\u0bea\u0100;r\u0bb6\u2a81\xbb\u0bb7\u0180Aap\u2a8a\u2a8d\u2a91r\xf2\u2971rr;\u61aear;\u6af2\u0180;sv\u0f8d\u2a9c\u0f8c\u0100;d\u2aa1\u2aa2\u62fc;\u62facy;\u445a\u0380AEadest\u2ab7\u2aba\u2abe\u2ac2\u2ac5\u2af6\u2af9r\xf2\u2966;\uc000\u2266\u0338rr;\u619ar;\u6025\u0200;fqs\u0c3b\u2ace\u2ae3\u2aeft\u0100ar\u2ad4\u2ad9rro\xf7\u2ac1ightarro\xf7\u2a90\u0180;qs\u0c3b\u2aba\u2aealan\xf4\u0c55\u0100;s\u0c55\u2af4\xbb\u0c36i\xed\u0c5d\u0100;r\u0c35\u2afei\u0100;e\u0c1a\u0c25i\xe4\u0d90\u0100pt\u2b0c\u2b11f;\uc000\ud835\udd5f\u8180\xac;in\u2b19\u2b1a\u2b36\u40acn\u0200;Edv\u0b89\u2b24\u2b28\u2b2e;\uc000\u22f9\u0338ot;\uc000\u22f5\u0338\u01e1\u0b89\u2b33\u2b35;\u62f7;\u62f6i\u0100;v\u0cb8\u2b3c\u01e1\u0cb8\u2b41\u2b43;\u62fe;\u62fd\u0180aor\u2b4b\u2b63\u2b69r\u0200;ast\u0b7b\u2b55\u2b5a\u2b5flle\xec\u0b7bl;\uc000\u2afd\u20e5;\uc000\u2202\u0338lint;\u6a14\u0180;ce\u0c92\u2b70\u2b73u\xe5\u0ca5\u0100;c\u0c98\u2b78\u0100;e\u0c92\u2b7d\xf1\u0c98\u0200Aait\u2b88\u2b8b\u2b9d\u2ba7r\xf2\u2988rr\u0180;cw\u2b94\u2b95\u2b99\u619b;\uc000\u2933\u0338;\uc000\u219d\u0338ghtarrow\xbb\u2b95ri\u0100;e\u0ccb\u0cd6\u0380chimpqu\u2bbd\u2bcd\u2bd9\u2b04\u0b78\u2be4\u2bef\u0200;cer\u0d32\u2bc6\u0d37\u2bc9u\xe5\u0d45;\uc000\ud835\udcc3ort\u026d\u2b05\0\0\u2bd6ar\xe1\u2b56m\u0100;e\u0d6e\u2bdf\u0100;q\u0d74\u0d73su\u0100bp\u2beb\u2bed\xe5\u0cf8\xe5\u0d0b\u0180bcp\u2bf6\u2c11\u2c19\u0200;Ees\u2bff\u2c00\u0d22\u2c04\u6284;\uc000\u2ac5\u0338et\u0100;e\u0d1b\u2c0bq\u0100;q\u0d23\u2c00c\u0100;e\u0d32\u2c17\xf1\u0d38\u0200;Ees\u2c22\u2c23\u0d5f\u2c27\u6285;\uc000\u2ac6\u0338et\u0100;e\u0d58\u2c2eq\u0100;q\u0d60\u2c23\u0200gilr\u2c3d\u2c3f\u2c45\u2c47\xec\u0bd7lde\u803b\xf1\u40f1\xe7\u0c43iangle\u0100lr\u2c52\u2c5ceft\u0100;e\u0c1a\u2c5a\xf1\u0c26ight\u0100;e\u0ccb\u2c65\xf1\u0cd7\u0100;m\u2c6c\u2c6d\u43bd\u0180;es\u2c74\u2c75\u2c79\u4023ro;\u6116p;\u6007\u0480DHadgilrs\u2c8f\u2c94\u2c99\u2c9e\u2ca3\u2cb0\u2cb6\u2cd3\u2ce3ash;\u62adarr;\u6904p;\uc000\u224d\u20d2ash;\u62ac\u0100et\u2ca8\u2cac;\uc000\u2265\u20d2;\uc000>\u20d2nfin;\u69de\u0180Aet\u2cbd\u2cc1\u2cc5rr;\u6902;\uc000\u2264\u20d2\u0100;r\u2cca\u2ccd\uc000<\u20d2ie;\uc000\u22b4\u20d2\u0100At\u2cd8\u2cdcrr;\u6903rie;\uc000\u22b5\u20d2im;\uc000\u223c\u20d2\u0180Aan\u2cf0\u2cf4\u2d02rr;\u61d6r\u0100hr\u2cfa\u2cfdk;\u6923\u0100;o\u13e7\u13e5ear;\u6927\u1253\u1a95\0\0\0\0\0\0\0\0\0\0\0\0\0\u2d2d\0\u2d38\u2d48\u2d60\u2d65\u2d72\u2d84\u1b07\0\0\u2d8d\u2dab\0\u2dc8\u2dce\0\u2ddc\u2e19\u2e2b\u2e3e\u2e43\u0100cs\u2d31\u1a97ute\u803b\xf3\u40f3\u0100iy\u2d3c\u2d45r\u0100;c\u1a9e\u2d42\u803b\xf4\u40f4;\u443e\u0280abios\u1aa0\u2d52\u2d57\u01c8\u2d5alac;\u4151v;\u6a38old;\u69bclig;\u4153\u0100cr\u2d69\u2d6dir;\u69bf;\uc000\ud835\udd2c\u036f\u2d79\0\0\u2d7c\0\u2d82n;\u42dbave\u803b\xf2\u40f2;\u69c1\u0100bm\u2d88\u0df4ar;\u69b5\u0200acit\u2d95\u2d98\u2da5\u2da8r\xf2\u1a80\u0100ir\u2d9d\u2da0r;\u69beoss;\u69bbn\xe5\u0e52;\u69c0\u0180aei\u2db1\u2db5\u2db9cr;\u414dga;\u43c9\u0180cdn\u2dc0\u2dc5\u01cdron;\u43bf;\u69b6pf;\uc000\ud835\udd60\u0180ael\u2dd4\u2dd7\u01d2r;\u69b7rp;\u69b9\u0380;adiosv\u2dea\u2deb\u2dee\u2e08\u2e0d\u2e10\u2e16\u6228r\xf2\u1a86\u0200;efm\u2df7\u2df8\u2e02\u2e05\u6a5dr\u0100;o\u2dfe\u2dff\u6134f\xbb\u2dff\u803b\xaa\u40aa\u803b\xba\u40bagof;\u62b6r;\u6a56lope;\u6a57;\u6a5b\u0180clo\u2e1f\u2e21\u2e27\xf2\u2e01ash\u803b\xf8\u40f8l;\u6298i\u016c\u2e2f\u2e34de\u803b\xf5\u40f5es\u0100;a\u01db\u2e3as;\u6a36ml\u803b\xf6\u40f6bar;\u633d\u0ae1\u2e5e\0\u2e7d\0\u2e80\u2e9d\0\u2ea2\u2eb9\0\0\u2ecb\u0e9c\0\u2f13\0\0\u2f2b\u2fbc\0\u2fc8r\u0200;ast\u0403\u2e67\u2e72\u0e85\u8100\xb6;l\u2e6d\u2e6e\u40b6le\xec\u0403\u0269\u2e78\0\0\u2e7bm;\u6af3;\u6afdy;\u443fr\u0280cimpt\u2e8b\u2e8f\u2e93\u1865\u2e97nt;\u4025od;\u402eil;\u6030enk;\u6031r;\uc000\ud835\udd2d\u0180imo\u2ea8\u2eb0\u2eb4\u0100;v\u2ead\u2eae\u43c6;\u43d5ma\xf4\u0a76ne;\u660e\u0180;tv\u2ebf\u2ec0\u2ec8\u43c0chfork\xbb\u1ffd;\u43d6\u0100au\u2ecf\u2edfn\u0100ck\u2ed5\u2eddk\u0100;h\u21f4\u2edb;\u610e\xf6\u21f4s\u0480;abcdemst\u2ef3\u2ef4\u1908\u2ef9\u2efd\u2f04\u2f06\u2f0a\u2f0e\u402bcir;\u6a23ir;\u6a22\u0100ou\u1d40\u2f02;\u6a25;\u6a72n\u80bb\xb1\u0e9dim;\u6a26wo;\u6a27\u0180ipu\u2f19\u2f20\u2f25ntint;\u6a15f;\uc000\ud835\udd61nd\u803b\xa3\u40a3\u0500;Eaceinosu\u0ec8\u2f3f\u2f41\u2f44\u2f47\u2f81\u2f89\u2f92\u2f7e\u2fb6;\u6ab3p;\u6ab7u\xe5\u0ed9\u0100;c\u0ece\u2f4c\u0300;acens\u0ec8\u2f59\u2f5f\u2f66\u2f68\u2f7eppro\xf8\u2f43urlye\xf1\u0ed9\xf1\u0ece\u0180aes\u2f6f\u2f76\u2f7approx;\u6ab9qq;\u6ab5im;\u62e8i\xed\u0edfme\u0100;s\u2f88\u0eae\u6032\u0180Eas\u2f78\u2f90\u2f7a\xf0\u2f75\u0180dfp\u0eec\u2f99\u2faf\u0180als\u2fa0\u2fa5\u2faalar;\u632eine;\u6312urf;\u6313\u0100;t\u0efb\u2fb4\xef\u0efbrel;\u62b0\u0100ci\u2fc0\u2fc5r;\uc000\ud835\udcc5;\u43c8ncsp;\u6008\u0300fiopsu\u2fda\u22e2\u2fdf\u2fe5\u2feb\u2ff1r;\uc000\ud835\udd2epf;\uc000\ud835\udd62rime;\u6057cr;\uc000\ud835\udcc6\u0180aeo\u2ff8\u3009\u3013t\u0100ei\u2ffe\u3005rnion\xf3\u06b0nt;\u6a16st\u0100;e\u3010\u3011\u403f\xf1\u1f19\xf4\u0f14\u0a80ABHabcdefhilmnoprstux\u3040\u3051\u3055\u3059\u30e0\u310e\u312b\u3147\u3162\u3172\u318e\u3206\u3215\u3224\u3229\u3258\u326e\u3272\u3290\u32b0\u32b7\u0180art\u3047\u304a\u304cr\xf2\u10b3\xf2\u03ddail;\u691car\xf2\u1c65ar;\u6964\u0380cdenqrt\u3068\u3075\u3078\u307f\u308f\u3094\u30cc\u0100eu\u306d\u3071;\uc000\u223d\u0331te;\u4155i\xe3\u116emptyv;\u69b3g\u0200;del\u0fd1\u3089\u308b\u308d;\u6992;\u69a5\xe5\u0fd1uo\u803b\xbb\u40bbr\u0580;abcfhlpstw\u0fdc\u30ac\u30af\u30b7\u30b9\u30bc\u30be\u30c0\u30c3\u30c7\u30cap;\u6975\u0100;f\u0fe0\u30b4s;\u6920;\u6933s;\u691e\xeb\u225d\xf0\u272el;\u6945im;\u6974l;\u61a3;\u619d\u0100ai\u30d1\u30d5il;\u691ao\u0100;n\u30db\u30dc\u6236al\xf3\u0f1e\u0180abr\u30e7\u30ea\u30eer\xf2\u17e5rk;\u6773\u0100ak\u30f3\u30fdc\u0100ek\u30f9\u30fb;\u407d;\u405d\u0100es\u3102\u3104;\u698cl\u0100du\u310a\u310c;\u698e;\u6990\u0200aeuy\u3117\u311c\u3127\u3129ron;\u4159\u0100di\u3121\u3125il;\u4157\xec\u0ff2\xe2\u30fa;\u4440\u0200clqs\u3134\u3137\u313d\u3144a;\u6937dhar;\u6969uo\u0100;r\u020e\u020dh;\u61b3\u0180acg\u314e\u315f\u0f44l\u0200;ips\u0f78\u3158\u315b\u109cn\xe5\u10bbar\xf4\u0fa9t;\u65ad\u0180ilr\u3169\u1023\u316esht;\u697d;\uc000\ud835\udd2f\u0100ao\u3177\u3186r\u0100du\u317d\u317f\xbb\u047b\u0100;l\u1091\u3184;\u696c\u0100;v\u318b\u318c\u43c1;\u43f1\u0180gns\u3195\u31f9\u31fcht\u0300ahlrst\u31a4\u31b0\u31c2\u31d8\u31e4\u31eerrow\u0100;t\u0fdc\u31ada\xe9\u30c8arpoon\u0100du\u31bb\u31bfow\xee\u317ep\xbb\u1092eft\u0100ah\u31ca\u31d0rrow\xf3\u0feaarpoon\xf3\u0551ightarrows;\u61c9quigarro\xf7\u30cbhreetimes;\u62ccg;\u42daingdotse\xf1\u1f32\u0180ahm\u320d\u3210\u3213r\xf2\u0feaa\xf2\u0551;\u600foust\u0100;a\u321e\u321f\u63b1che\xbb\u321fmid;\u6aee\u0200abpt\u3232\u323d\u3240\u3252\u0100nr\u3237\u323ag;\u67edr;\u61fer\xeb\u1003\u0180afl\u3247\u324a\u324er;\u6986;\uc000\ud835\udd63us;\u6a2eimes;\u6a35\u0100ap\u325d\u3267r\u0100;g\u3263\u3264\u4029t;\u6994olint;\u6a12ar\xf2\u31e3\u0200achq\u327b\u3280\u10bc\u3285quo;\u603ar;\uc000\ud835\udcc7\u0100bu\u30fb\u328ao\u0100;r\u0214\u0213\u0180hir\u3297\u329b\u32a0re\xe5\u31f8mes;\u62cai\u0200;efl\u32aa\u1059\u1821\u32ab\u65b9tri;\u69celuhar;\u6968;\u611e\u0d61\u32d5\u32db\u32df\u332c\u3338\u3371\0\u337a\u33a4\0\0\u33ec\u33f0\0\u3428\u3448\u345a\u34ad\u34b1\u34ca\u34f1\0\u3616\0\0\u3633cute;\u415bqu\xef\u27ba\u0500;Eaceinpsy\u11ed\u32f3\u32f5\u32ff\u3302\u330b\u330f\u331f\u3326\u3329;\u6ab4\u01f0\u32fa\0\u32fc;\u6ab8on;\u4161u\xe5\u11fe\u0100;d\u11f3\u3307il;\u415frc;\u415d\u0180Eas\u3316\u3318\u331b;\u6ab6p;\u6abaim;\u62e9olint;\u6a13i\xed\u1204;\u4441ot\u0180;be\u3334\u1d47\u3335\u62c5;\u6a66\u0380Aacmstx\u3346\u334a\u3357\u335b\u335e\u3363\u336drr;\u61d8r\u0100hr\u3350\u3352\xeb\u2228\u0100;o\u0a36\u0a34t\u803b\xa7\u40a7i;\u403bwar;\u6929m\u0100in\u3369\xf0nu\xf3\xf1t;\u6736r\u0100;o\u3376\u2055\uc000\ud835\udd30\u0200acoy\u3382\u3386\u3391\u33a0rp;\u666f\u0100hy\u338b\u338fcy;\u4449;\u4448rt\u026d\u3399\0\0\u339ci\xe4\u1464ara\xec\u2e6f\u803b\xad\u40ad\u0100gm\u33a8\u33b4ma\u0180;fv\u33b1\u33b2\u33b2\u43c3;\u43c2\u0400;deglnpr\u12ab\u33c5\u33c9\u33ce\u33d6\u33de\u33e1\u33e6ot;\u6a6a\u0100;q\u12b1\u12b0\u0100;E\u33d3\u33d4\u6a9e;\u6aa0\u0100;E\u33db\u33dc\u6a9d;\u6a9fe;\u6246lus;\u6a24arr;\u6972ar\xf2\u113d\u0200aeit\u33f8\u3408\u340f\u3417\u0100ls\u33fd\u3404lsetm\xe9\u336ahp;\u6a33parsl;\u69e4\u0100dl\u1463\u3414e;\u6323\u0100;e\u341c\u341d\u6aaa\u0100;s\u3422\u3423\u6aac;\uc000\u2aac\ufe00\u0180flp\u342e\u3433\u3442tcy;\u444c\u0100;b\u3438\u3439\u402f\u0100;a\u343e\u343f\u69c4r;\u633ff;\uc000\ud835\udd64a\u0100dr\u344d\u0402es\u0100;u\u3454\u3455\u6660it\xbb\u3455\u0180csu\u3460\u3479\u349f\u0100au\u3465\u346fp\u0100;s\u1188\u346b;\uc000\u2293\ufe00p\u0100;s\u11b4\u3475;\uc000\u2294\ufe00u\u0100bp\u347f\u348f\u0180;es\u1197\u119c\u3486et\u0100;e\u1197\u348d\xf1\u119d\u0180;es\u11a8\u11ad\u3496et\u0100;e\u11a8\u349d\xf1\u11ae\u0180;af\u117b\u34a6\u05b0r\u0165\u34ab\u05b1\xbb\u117car\xf2\u1148\u0200cemt\u34b9\u34be\u34c2\u34c5r;\uc000\ud835\udcc8tm\xee\xf1i\xec\u3415ar\xe6\u11be\u0100ar\u34ce\u34d5r\u0100;f\u34d4\u17bf\u6606\u0100an\u34da\u34edight\u0100ep\u34e3\u34eapsilo\xee\u1ee0h\xe9\u2eafs\xbb\u2852\u0280bcmnp\u34fb\u355e\u1209\u358b\u358e\u0480;Edemnprs\u350e\u350f\u3511\u3515\u351e\u3523\u352c\u3531\u3536\u6282;\u6ac5ot;\u6abd\u0100;d\u11da\u351aot;\u6ac3ult;\u6ac1\u0100Ee\u3528\u352a;\u6acb;\u628alus;\u6abfarr;\u6979\u0180eiu\u353d\u3552\u3555t\u0180;en\u350e\u3545\u354bq\u0100;q\u11da\u350feq\u0100;q\u352b\u3528m;\u6ac7\u0100bp\u355a\u355c;\u6ad5;\u6ad3c\u0300;acens\u11ed\u356c\u3572\u3579\u357b\u3326ppro\xf8\u32faurlye\xf1\u11fe\xf1\u11f3\u0180aes\u3582\u3588\u331bppro\xf8\u331aq\xf1\u3317g;\u666a\u0680123;Edehlmnps\u35a9\u35ac\u35af\u121c\u35b2\u35b4\u35c0\u35c9\u35d5\u35da\u35df\u35e8\u35ed\u803b\xb9\u40b9\u803b\xb2\u40b2\u803b\xb3\u40b3;\u6ac6\u0100os\u35b9\u35bct;\u6abeub;\u6ad8\u0100;d\u1222\u35c5ot;\u6ac4s\u0100ou\u35cf\u35d2l;\u67c9b;\u6ad7arr;\u697bult;\u6ac2\u0100Ee\u35e4\u35e6;\u6acc;\u628blus;\u6ac0\u0180eiu\u35f4\u3609\u360ct\u0180;en\u121c\u35fc\u3602q\u0100;q\u1222\u35b2eq\u0100;q\u35e7\u35e4m;\u6ac8\u0100bp\u3611\u3613;\u6ad4;\u6ad6\u0180Aan\u361c\u3620\u362drr;\u61d9r\u0100hr\u3626\u3628\xeb\u222e\u0100;o\u0a2b\u0a29war;\u692alig\u803b\xdf\u40df\u0be1\u3651\u365d\u3660\u12ce\u3673\u3679\0\u367e\u36c2\0\0\0\0\0\u36db\u3703\0\u3709\u376c\0\0\0\u3787\u0272\u3656\0\0\u365bget;\u6316;\u43c4r\xeb\u0e5f\u0180aey\u3666\u366b\u3670ron;\u4165dil;\u4163;\u4442lrec;\u6315r;\uc000\ud835\udd31\u0200eiko\u3686\u369d\u36b5\u36bc\u01f2\u368b\0\u3691e\u01004f\u1284\u1281a\u0180;sv\u3698\u3699\u369b\u43b8ym;\u43d1\u0100cn\u36a2\u36b2k\u0100as\u36a8\u36aeppro\xf8\u12c1im\xbb\u12acs\xf0\u129e\u0100as\u36ba\u36ae\xf0\u12c1rn\u803b\xfe\u40fe\u01ec\u031f\u36c6\u22e7es\u8180\xd7;bd\u36cf\u36d0\u36d8\u40d7\u0100;a\u190f\u36d5r;\u6a31;\u6a30\u0180eps\u36e1\u36e3\u3700\xe1\u2a4d\u0200;bcf\u0486\u36ec\u36f0\u36f4ot;\u6336ir;\u6af1\u0100;o\u36f9\u36fc\uc000\ud835\udd65rk;\u6ada\xe1\u3362rime;\u6034\u0180aip\u370f\u3712\u3764d\xe5\u1248\u0380adempst\u3721\u374d\u3740\u3751\u3757\u375c\u375fngle\u0280;dlqr\u3730\u3731\u3736\u3740\u3742\u65b5own\xbb\u1dbbeft\u0100;e\u2800\u373e\xf1\u092e;\u625cight\u0100;e\u32aa\u374b\xf1\u105aot;\u65ecinus;\u6a3alus;\u6a39b;\u69cdime;\u6a3bezium;\u63e2\u0180cht\u3772\u377d\u3781\u0100ry\u3777\u377b;\uc000\ud835\udcc9;\u4446cy;\u445brok;\u4167\u0100io\u378b\u378ex\xf4\u1777head\u0100lr\u3797\u37a0eftarro\xf7\u084fightarrow\xbb\u0f5d\u0900AHabcdfghlmoprstuw\u37d0\u37d3\u37d7\u37e4\u37f0\u37fc\u380e\u381c\u3823\u3834\u3851\u385d\u386b\u38a9\u38cc\u38d2\u38ea\u38f6r\xf2\u03edar;\u6963\u0100cr\u37dc\u37e2ute\u803b\xfa\u40fa\xf2\u1150r\u01e3\u37ea\0\u37edy;\u445eve;\u416d\u0100iy\u37f5\u37farc\u803b\xfb\u40fb;\u4443\u0180abh\u3803\u3806\u380br\xf2\u13adlac;\u4171a\xf2\u13c3\u0100ir\u3813\u3818sht;\u697e;\uc000\ud835\udd32rave\u803b\xf9\u40f9\u0161\u3827\u3831r\u0100lr\u382c\u382e\xbb\u0957\xbb\u1083lk;\u6580\u0100ct\u3839\u384d\u026f\u383f\0\0\u384arn\u0100;e\u3845\u3846\u631cr\xbb\u3846op;\u630fri;\u65f8\u0100al\u3856\u385acr;\u416b\u80bb\xa8\u0349\u0100gp\u3862\u3866on;\u4173f;\uc000\ud835\udd66\u0300adhlsu\u114b\u3878\u387d\u1372\u3891\u38a0own\xe1\u13b3arpoon\u0100lr\u3888\u388cef\xf4\u382digh\xf4\u382fi\u0180;hl\u3899\u389a\u389c\u43c5\xbb\u13faon\xbb\u389aparrows;\u61c8\u0180cit\u38b0\u38c4\u38c8\u026f\u38b6\0\0\u38c1rn\u0100;e\u38bc\u38bd\u631dr\xbb\u38bdop;\u630eng;\u416fri;\u65f9cr;\uc000\ud835\udcca\u0180dir\u38d9\u38dd\u38e2ot;\u62f0lde;\u4169i\u0100;f\u3730\u38e8\xbb\u1813\u0100am\u38ef\u38f2r\xf2\u38a8l\u803b\xfc\u40fcangle;\u69a7\u0780ABDacdeflnoprsz\u391c\u391f\u3929\u392d\u39b5\u39b8\u39bd\u39df\u39e4\u39e8\u39f3\u39f9\u39fd\u3a01\u3a20r\xf2\u03f7ar\u0100;v\u3926\u3927\u6ae8;\u6ae9as\xe8\u03e1\u0100nr\u3932\u3937grt;\u699c\u0380eknprst\u34e3\u3946\u394b\u3952\u395d\u3964\u3996app\xe1\u2415othin\xe7\u1e96\u0180hir\u34eb\u2ec8\u3959op\xf4\u2fb5\u0100;h\u13b7\u3962\xef\u318d\u0100iu\u3969\u396dgm\xe1\u33b3\u0100bp\u3972\u3984setneq\u0100;q\u397d\u3980\uc000\u228a\ufe00;\uc000\u2acb\ufe00setneq\u0100;q\u398f\u3992\uc000\u228b\ufe00;\uc000\u2acc\ufe00\u0100hr\u399b\u399fet\xe1\u369ciangle\u0100lr\u39aa\u39afeft\xbb\u0925ight\xbb\u1051y;\u4432ash\xbb\u1036\u0180elr\u39c4\u39d2\u39d7\u0180;be\u2dea\u39cb\u39cfar;\u62bbq;\u625alip;\u62ee\u0100bt\u39dc\u1468a\xf2\u1469r;\uc000\ud835\udd33tr\xe9\u39aesu\u0100bp\u39ef\u39f1\xbb\u0d1c\xbb\u0d59pf;\uc000\ud835\udd67ro\xf0\u0efbtr\xe9\u39b4\u0100cu\u3a06\u3a0br;\uc000\ud835\udccb\u0100bp\u3a10\u3a18n\u0100Ee\u3980\u3a16\xbb\u397en\u0100Ee\u3992\u3a1e\xbb\u3990igzag;\u699a\u0380cefoprs\u3a36\u3a3b\u3a56\u3a5b\u3a54\u3a61\u3a6airc;\u4175\u0100di\u3a40\u3a51\u0100bg\u3a45\u3a49ar;\u6a5fe\u0100;q\u15fa\u3a4f;\u6259erp;\u6118r;\uc000\ud835\udd34pf;\uc000\ud835\udd68\u0100;e\u1479\u3a66at\xe8\u1479cr;\uc000\ud835\udccc\u0ae3\u178e\u3a87\0\u3a8b\0\u3a90\u3a9b\0\0\u3a9d\u3aa8\u3aab\u3aaf\0\0\u3ac3\u3ace\0\u3ad8\u17dc\u17dftr\xe9\u17d1r;\uc000\ud835\udd35\u0100Aa\u3a94\u3a97r\xf2\u03c3r\xf2\u09f6;\u43be\u0100Aa\u3aa1\u3aa4r\xf2\u03b8r\xf2\u09eba\xf0\u2713is;\u62fb\u0180dpt\u17a4\u3ab5\u3abe\u0100fl\u3aba\u17a9;\uc000\ud835\udd69im\xe5\u17b2\u0100Aa\u3ac7\u3acar\xf2\u03cer\xf2\u0a01\u0100cq\u3ad2\u17b8r;\uc000\ud835\udccd\u0100pt\u17d6\u3adcr\xe9\u17d4\u0400acefiosu\u3af0\u3afd\u3b08\u3b0c\u3b11\u3b15\u3b1b\u3b21c\u0100uy\u3af6\u3afbte\u803b\xfd\u40fd;\u444f\u0100iy\u3b02\u3b06rc;\u4177;\u444bn\u803b\xa5\u40a5r;\uc000\ud835\udd36cy;\u4457pf;\uc000\ud835\udd6acr;\uc000\ud835\udcce\u0100cm\u3b26\u3b29y;\u444el\u803b\xff\u40ff\u0500acdefhiosw\u3b42\u3b48\u3b54\u3b58\u3b64\u3b69\u3b6d\u3b74\u3b7a\u3b80cute;\u417a\u0100ay\u3b4d\u3b52ron;\u417e;\u4437ot;\u417c\u0100et\u3b5d\u3b61tr\xe6\u155fa;\u43b6r;\uc000\ud835\udd37cy;\u4436grarr;\u61ddpf;\uc000\ud835\udd6bcr;\uc000\ud835\udccf\u0100jn\u3b85\u3b87;\u600dj;\u600c'.split("").map((e=>e.charCodeAt(0)))),o=new Uint16Array("\u0200aglq\t\x15\x18\x1b\u026d\x0f\0\0\x12p;\u4026os;\u4027t;\u403et;\u403cuot;\u4022".split("").map((e=>e.charCodeAt(0))));var i;const a=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]),u=null!==(i=String.fromCodePoint)&&void 0!==i?i:function(e){let t="";return e>65535&&(e-=65536,t+=String.fromCharCode(e>>>10&1023|55296),e=56320|1023&e),t+=String.fromCharCode(e),t};function s(e){var t;return e>=55296&&e<=57343||e>1114111?65533:null!==(t=a.get(e))&&void 0!==t?t:e}var l;!function(e){e[e.NUM=35]="NUM",e[e.SEMI=59]="SEMI",e[e.EQUALS=61]="EQUALS",e[e.ZERO=48]="ZERO",e[e.NINE=57]="NINE",e[e.LOWER_A=97]="LOWER_A",e[e.LOWER_F=102]="LOWER_F",e[e.LOWER_X=120]="LOWER_X",e[e.LOWER_Z=122]="LOWER_Z",e[e.UPPER_A=65]="UPPER_A",e[e.UPPER_F=70]="UPPER_F",e[e.UPPER_Z=90]="UPPER_Z"}(l||(l={}));var c,f,d;function p(e){return e>=l.ZERO&&e<=l.NINE}function h(e){return e===l.EQUALS||function(e){return e>=l.UPPER_A&&e<=l.UPPER_Z||e>=l.LOWER_A&&e<=l.LOWER_Z||p(e)}(e)}!function(e){e[e.VALUE_LENGTH=49152]="VALUE_LENGTH",e[e.BRANCH_LENGTH=16256]="BRANCH_LENGTH",e[e.JUMP_TABLE=127]="JUMP_TABLE"}(c||(c={})),function(e){e[e.EntityStart=0]="EntityStart",e[e.NumericStart=1]="NumericStart",e[e.NumericDecimal=2]="NumericDecimal",e[e.NumericHex=3]="NumericHex",e[e.NamedEntity=4]="NamedEntity"}(f||(f={})),function(e){e[e.Legacy=0]="Legacy",e[e.Strict=1]="Strict",e[e.Attribute=2]="Attribute"}(d||(d={}));class m{constructor(e,t,n){this.decodeTree=e,this.emitCodePoint=t,this.errors=n,this.state=f.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=d.Strict}startEntity(e){this.decodeMode=e,this.state=f.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1}write(e,t){switch(this.state){case f.EntityStart:return e.charCodeAt(t)===l.NUM?(this.state=f.NumericStart,this.consumed+=1,this.stateNumericStart(e,t+1)):(this.state=f.NamedEntity,this.stateNamedEntity(e,t));case f.NumericStart:return this.stateNumericStart(e,t);case f.NumericDecimal:return this.stateNumericDecimal(e,t);case f.NumericHex:return this.stateNumericHex(e,t);case f.NamedEntity:return this.stateNamedEntity(e,t)}}stateNumericStart(e,t){return t>=e.length?-1:(32|e.charCodeAt(t))===l.LOWER_X?(this.state=f.NumericHex,this.consumed+=1,this.stateNumericHex(e,t+1)):(this.state=f.NumericDecimal,this.stateNumericDecimal(e,t))}addToNumericResult(e,t,n,r){if(t!==n){const o=n-t;this.result=this.result*Math.pow(r,o)+parseInt(e.substr(t,o),r),this.consumed+=o}}stateNumericHex(e,t){const n=t;for(;t=l.UPPER_A&&r<=l.UPPER_F||r>=l.LOWER_A&&r<=l.LOWER_F)))return this.addToNumericResult(e,n,t,16),this.emitNumericEntity(o,3);t+=1}var r;return this.addToNumericResult(e,n,t,16),-1}stateNumericDecimal(e,t){const n=t;for(;t>14;for(;t>14,0!==o){if(i===l.SEMI)return this.emitNamedEntityData(this.treeIndex,o,this.consumed+this.excess);this.decodeMode!==d.Strict&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}}return-1}emitNotTerminatedNamedEntity(){var e;const{result:t,decodeTree:n}=this,r=(n[t]&c.VALUE_LENGTH)>>14;return this.emitNamedEntityData(t,r,this.consumed),null===(e=this.errors)||void 0===e||e.missingSemicolonAfterCharacterReference(),this.consumed}emitNamedEntityData(e,t,n){const{decodeTree:r}=this;return this.emitCodePoint(1===t?r[e]&~c.VALUE_LENGTH:r[e+1],n),3===t&&this.emitCodePoint(r[e+2],n),n}end(){var e;switch(this.state){case f.NamedEntity:return 0===this.result||this.decodeMode===d.Attribute&&this.result!==this.treeIndex?0:this.emitNotTerminatedNamedEntity();case f.NumericDecimal:return this.emitNumericEntity(0,2);case f.NumericHex:return this.emitNumericEntity(0,3);case f.NumericStart:return null===(e=this.errors)||void 0===e||e.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case f.EntityStart:return 0}}}function g(e){let t="";const n=new m(e,(e=>t+=u(e)));return function(e,r){let o=0,i=0;for(;(i=e.indexOf("&",i))>=0;){t+=e.slice(o,i),n.startEntity(r);const a=n.write(e,i+1);if(a<0){o=i+n.end();break}o=i+a,i=0===a?o+1:o}const a=t+e.slice(o);return t="",a}}function y(e,t,n,r){const o=(t&c.BRANCH_LENGTH)>>7,i=t&c.JUMP_TABLE;if(0===o)return 0!==i&&r===i?n:-1;if(i){const t=r-i;return t<0||t>=o?-1:e[n+t]-1}let a=n,u=a+o-1;for(;a<=u;){const t=a+u>>>1,n=e[t];if(nr))return e[t+o];u=t-1}}return-1}g(r),g(o)},5027:(e,t,n)=>{"use strict";const r=new Map([[34,"""],[38,"&"],[39,"'"],[60,"<"],[62,">"]]);String.prototype.codePointAt;function o(e,t){return function(n){let r,o=0,i="";for(;r=e.exec(n);)o!==r.index&&(i+=n.substring(o,r.index)),i+=t.get(r[0].charCodeAt(0)),o=r.index+1;return i+n.substring(o)}}o(/[&<>'"]/g,r),o(/["&\u00A0]/g,new Map([[34,"""],[38,"&"],[160," "]])),o(/[&<>\u00A0]/g,new Map([[38,"&"],[60,"<"],[62,">"],[160," "]]))},1886:(e,t,n)=>{"use strict";function r(e){const t="element"===e.type?e.tagName.toLowerCase():"",n=2===t.length&&104===t.charCodeAt(0)?t.charCodeAt(1):0;return n>48&&n<55?n-48:void 0}n.d(t,{B:()=>r})},7834:(e,t,n)=>{"use strict";function r(e){return"children"in e?i(e):"value"in e?e.value:""}function o(e){return"text"===e.type?e.value:"children"in e?i(e):""}function i(e){let t=-1;const n=[];for(;++tr})},1230:(e,t,n)=>{"use strict";n.d(t,{Q:()=>o});const r=/[ \t\n\f\r]/g;function o(e){return"object"===typeof e?"text"===e.type&&i(e.value):i(e)}function i(e){return""===e.replace(r,"")}},7404:(e,t,n)=>{"use strict";n.d(t,{h:()=>h});var r=n(9314),o=n(5077),i=n(9627);const a=/[#.]/g;var u=n(103),s=n(1064);const l=new Set(["menu","submit","reset","button"]),c={}.hasOwnProperty;function f(e,t,n,r){const i=(0,o.s)(e,n);let a,l=-1;if(void 0!==r&&null!==r){if("number"===typeof r){if(Number.isNaN(r))return;a=r}else a="boolean"===typeof r?r:"string"===typeof r?i.spaceSeparated?(0,u.Q)(r):i.commaSeparated?(0,s.Q)(r):i.commaOrSpaceSeparated?(0,u.Q)((0,s.Q)(r).join(" ")):p(i,i.property,r):Array.isArray(r)?r.concat():"style"===i.property?function(e){const t=[];let n;for(n in e)c.call(e,n)&&t.push([n,e[n]].join(": "));return t.join("; ")}(r):String(r);if(Array.isArray(a)){const e=[];for(;++l2?s-2:0),h=2;h{"use strict";n.d(t,{B:()=>o});const r={};function o(e,t){const n=t||r;return i(e,"boolean"!==typeof n.includeImageAlt||n.includeImageAlt,"boolean"!==typeof n.includeHtml||n.includeHtml)}function i(e,t,n){if(function(e){return Boolean(e&&"object"===typeof e)}(e)){if("value"in e)return"html"!==e.type||n?e.value:"";if(t&&"alt"in e&&e.alt)return e.alt;if("children"in e)return a(e.children,t,n)}return Array.isArray(e)?a(e,t,n):""}function a(e,t,n){const r=[];let o=-1;for(;++o{"use strict";n.d(t,{w:()=>i});var r=n(8911),o=n(6196);const i={tokenize:function(e,t,n){return function(t){return(0,o.xz)(t)?(0,r.f)(e,i,"linePrefix")(t):i(t)};function i(e){return null===e||(0,o.Ch)(e)?t(e):n(e)}},partial:!0}},8911:(e,t,n)=>{"use strict";n.d(t,{f:()=>o});var r=n(6196);function o(e,t,n,o){const i=o?o-1:Number.POSITIVE_INFINITY;let a=0;return function(o){if((0,r.xz)(o))return e.enter(n),u(o);return t(o)};function u(o){return(0,r.xz)(o)&&a++{"use strict";n.d(t,{AF:()=>l,Av:()=>u,B8:()=>m,Ch:()=>f,H$:()=>i,Xh:()=>h,jv:()=>o,n9:()=>a,pY:()=>s,sR:()=>c,xz:()=>p,z3:()=>d});const r=g(/\p{P}/u),o=g(/[A-Za-z]/),i=g(/[\dA-Za-z]/),a=g(/[#-'*+\--9=?A-Z^-~]/);function u(e){return null!==e&&(e<32||127===e)}const s=g(/\d/),l=g(/[\dA-Fa-f]/),c=g(/[!-/:-@[-`{-~]/);function f(e){return null!==e&&e<-2}function d(e){return null!==e&&(e<0||32===e)}function p(e){return-2===e||-1===e||32===e}function h(e){return c(e)||r(e)}const m=g(/\s/);function g(e){return function(t){return null!==t&&t>-1&&e.test(String.fromCharCode(t))}}},7125:(e,t,n)=>{"use strict";function r(e,t,n,r){const o=e.length;let i,a=0;if(t=t<0?-t>o?0:o+t:t>o?o:t,n=n>0?n:0,r.length<1e4)i=Array.from(r),i.unshift(t,n),e.splice(...i);else for(n&&e.splice(t,n);a0?(r(e,e.length,0,t),e):t}n.d(t,{V:()=>o,d:()=>r})},4375:(e,t,n)=>{"use strict";n.d(t,{r:()=>o});var r=n(6196);function o(e){return null===e||(0,r.z3)(e)||(0,r.B8)(e)?1:(0,r.Xh)(e)?2:void 0}},2006:(e,t,n)=>{"use strict";n.d(t,{W:()=>i});var r=n(7125);const o={}.hasOwnProperty;function i(e){const t={};let n=-1;for(;++n{"use strict";function r(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}n.d(t,{d:()=>r})},7900:(e,t,n)=>{"use strict";function r(e,t,n){const r=[];let o=-1;for(;++or})},5125:(e,t,n)=>{"use strict";n.d(t,{L:()=>f});const r=["AElig","AMP","Aacute","Acirc","Agrave","Aring","Atilde","Auml","COPY","Ccedil","ETH","Eacute","Ecirc","Egrave","Euml","GT","Iacute","Icirc","Igrave","Iuml","LT","Ntilde","Oacute","Ocirc","Ograve","Oslash","Otilde","Ouml","QUOT","REG","THORN","Uacute","Ucirc","Ugrave","Uuml","Yacute","aacute","acirc","acute","aelig","agrave","amp","aring","atilde","auml","brvbar","ccedil","cedil","cent","copy","curren","deg","divide","eacute","ecirc","egrave","eth","euml","frac12","frac14","frac34","gt","iacute","icirc","iexcl","igrave","iquest","iuml","laquo","lt","macr","micro","middot","nbsp","not","ntilde","oacute","ocirc","ograve","ordf","ordm","oslash","otilde","ouml","para","plusmn","pound","quot","raquo","reg","sect","shy","sup1","sup2","sup3","szlig","thorn","times","uacute","ucirc","ugrave","uml","uuml","yacute","yen","yuml"],o={0:"\ufffd",128:"\u20ac",130:"\u201a",131:"\u0192",132:"\u201e",133:"\u2026",134:"\u2020",135:"\u2021",136:"\u02c6",137:"\u2030",138:"\u0160",139:"\u2039",140:"\u0152",142:"\u017d",145:"\u2018",146:"\u2019",147:"\u201c",148:"\u201d",149:"\u2022",150:"\u2013",151:"\u2014",152:"\u02dc",153:"\u2122",154:"\u0161",155:"\u203a",156:"\u0153",158:"\u017e",159:"\u0178"};function i(e){const t="string"===typeof e?e.charCodeAt(0):e;return t>=48&&t<=57}function a(e){const t="string"===typeof e?e.charCodeAt(0):e;return t>=97&&t<=102||t>=65&&t<=70||t>=48&&t<=57}function u(e){return function(e){const t="string"===typeof e?e.charCodeAt(0):e;return t>=97&&t<=122||t>=65&&t<=90}(e)||i(e)}var s=n(6068);const l=String.fromCharCode,c=["","Named character references must be terminated by a semicolon","Numeric character references must be terminated by a semicolon","Named character references cannot be empty","Numeric character references cannot be empty","Named character references must be known","Numeric character references cannot be disallowed","Numeric character references cannot be outside the permissible Unicode range"];function f(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n="string"===typeof t.additional?t.additional.charCodeAt(0):t.additional,f=[];let p,h,m=0,g=-1,y="";t.position&&("start"in t.position||"indent"in t.position?(h=t.position.indent,p=t.position.start):p=t.position);let v,b=(p?p.line:0)||1,x=(p?p.column:0)||1,k=w();for(m--;++m<=e.length;)if(10===v&&(x=(h?h[g]:0)||1),v=e.charCodeAt(m),38===v){const c=e.charCodeAt(m+1);if(9===c||10===c||12===c||32===c||38===c||60===c||Number.isNaN(c)||n&&c===n){y+=l(v),x++;continue}const p=m+1;let h,g=p,b=p;if(35===c){b=++g;const t=e.charCodeAt(b);88===t||120===t?(h="hexadecimal",b=++g):h="decimal"}else h="named";let F="",S="",A="";const T="named"===h?u:"decimal"===h?i:a;for(b--;++b<=e.length;){const t=e.charCodeAt(b);if(!T(t))break;A+=l(t),"named"===h&&r.includes(A)&&(F=A,S=(0,s.T)(A))}let P=59===e.charCodeAt(b);if(P){b++;const e="named"===h&&(0,s.T)(A);e&&(F=A,S=e)}let O=1+b-p,L="";if(P||!1!==t.nonTerminated)if(A)if("named"===h){if(P&&!S)E(5,1);else if(F!==A&&(b=g+F.length,O=1+b-g,P=!1),!P){const n=F?1:3;if(t.attribute){const t=e.charCodeAt(b);61===t?(E(n,O),S=""):u(t)?S="":E(n,O)}else E(n,O)}L=S}else{P||E(2,O);let e=Number.parseInt(A,"hexadecimal"===h?16:10);if((D=e)>=55296&&D<=57343||D>1114111)E(7,O),L=l(65533);else if(e in o)E(6,O),L=o[e];else{let t="";d(e)&&E(6,O),e>65535&&(e-=65536,t+=l(e>>>10|55296),e=56320|1023&e),L=t+l(e)}}else"named"!==h&&E(4,O);else;if(L){C(),k=w(),m=b-1,x+=b-p+1,f.push(L);const n=w();n.offset++,t.reference&&t.reference.call(t.referenceContext,L,{start:k,end:n},e.slice(p-1,b)),k=n}else A=e.slice(p-1,b),y+=A,x+=A.length,m=b-1}else 10===v&&(b++,g++,x=0),Number.isNaN(v)?C():(y+=l(v),x++);var D;return f.join("");function w(){return{line:b,column:x,offset:m+((p?p.offset:0)||0)}}function E(e,n){let r;t.warning&&(r=w(),r.column+=n,r.offset+=n,t.warning.call(t.warningContext,c[e],r,e))}function C(){y&&(f.push(y),t.text&&t.text.call(t.textContext,y,{start:k,end:w()}),y="")}}function d(e){return e>=1&&e<=8||11===e||e>=13&&e<=31||e>=127&&e<=159||e>=64976&&e<=65007||65535===(65535&e)||65534===(65535&e)}},9314:(e,t,n)=>{"use strict";n.d(t,{dy:()=>v,YP:()=>b});class r{constructor(e,t,n){this.property=e,this.normal=t,n&&(this.space=n)}}function o(e,t){const n={},o={};let i=-1;for(;++i"xlink:"+t.slice(5).toLowerCase(),properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null}}),c=s({space:"xml",transform:(e,t)=>"xml:"+t.slice(3).toLowerCase(),properties:{xmlLang:null,xmlBase:null,xmlSpace:null}});function f(e,t){return t in e?e[t]:t}function d(e,t){return f(e,t.toLowerCase())}const p=s({space:"xmlns",attributes:{xmlnsxlink:"xmlns:xlink"},transform:d,properties:{xmlns:null,xmlnsXLink:null}});var h=n(7365);const m=s({transform:(e,t)=>"role"===t?t:"aria-"+t.slice(4).toLowerCase(),properties:{ariaActiveDescendant:null,ariaAtomic:h.booleanish,ariaAutoComplete:null,ariaBusy:h.booleanish,ariaChecked:h.booleanish,ariaColCount:h.number,ariaColIndex:h.number,ariaColSpan:h.number,ariaControls:h.spaceSeparated,ariaCurrent:null,ariaDescribedBy:h.spaceSeparated,ariaDetails:null,ariaDisabled:h.booleanish,ariaDropEffect:h.spaceSeparated,ariaErrorMessage:null,ariaExpanded:h.booleanish,ariaFlowTo:h.spaceSeparated,ariaGrabbed:h.booleanish,ariaHasPopup:null,ariaHidden:h.booleanish,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:h.spaceSeparated,ariaLevel:h.number,ariaLive:null,ariaModal:h.booleanish,ariaMultiLine:h.booleanish,ariaMultiSelectable:h.booleanish,ariaOrientation:null,ariaOwns:h.spaceSeparated,ariaPlaceholder:null,ariaPosInSet:h.number,ariaPressed:h.booleanish,ariaReadOnly:h.booleanish,ariaRelevant:null,ariaRequired:h.booleanish,ariaRoleDescription:h.spaceSeparated,ariaRowCount:h.number,ariaRowIndex:h.number,ariaRowSpan:h.number,ariaSelected:h.booleanish,ariaSetSize:h.number,ariaSort:null,ariaValueMax:h.number,ariaValueMin:h.number,ariaValueNow:h.number,ariaValueText:null,role:null}}),g=s({space:"html",attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},transform:d,mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:h.commaSeparated,acceptCharset:h.spaceSeparated,accessKey:h.spaceSeparated,action:null,allow:null,allowFullScreen:h.boolean,allowPaymentRequest:h.boolean,allowUserMedia:h.boolean,alt:null,as:null,async:h.boolean,autoCapitalize:null,autoComplete:h.spaceSeparated,autoFocus:h.boolean,autoPlay:h.boolean,blocking:h.spaceSeparated,capture:h.boolean,charSet:null,checked:h.boolean,cite:null,className:h.spaceSeparated,cols:h.number,colSpan:null,content:null,contentEditable:h.booleanish,controls:h.boolean,controlsList:h.spaceSeparated,coords:h.number|h.commaSeparated,crossOrigin:null,data:null,dateTime:null,decoding:null,default:h.boolean,defer:h.boolean,dir:null,dirName:null,disabled:h.boolean,download:h.overloadedBoolean,draggable:h.booleanish,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:h.boolean,formTarget:null,headers:h.spaceSeparated,height:h.number,hidden:h.boolean,high:h.number,href:null,hrefLang:null,htmlFor:h.spaceSeparated,httpEquiv:h.spaceSeparated,id:null,imageSizes:null,imageSrcSet:null,inert:h.boolean,inputMode:null,integrity:null,is:null,isMap:h.boolean,itemId:null,itemProp:h.spaceSeparated,itemRef:h.spaceSeparated,itemScope:h.boolean,itemType:h.spaceSeparated,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:h.boolean,low:h.number,manifest:null,max:null,maxLength:h.number,media:null,method:null,min:null,minLength:h.number,multiple:h.boolean,muted:h.boolean,name:null,nonce:null,noModule:h.boolean,noValidate:h.boolean,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforeMatch:null,onBeforePrint:null,onBeforeToggle:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextLost:null,onContextMenu:null,onContextRestored:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onScrollEnd:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:h.boolean,optimum:h.number,pattern:null,ping:h.spaceSeparated,placeholder:null,playsInline:h.boolean,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:h.boolean,referrerPolicy:null,rel:h.spaceSeparated,required:h.boolean,reversed:h.boolean,rows:h.number,rowSpan:h.number,sandbox:h.spaceSeparated,scope:null,scoped:h.boolean,seamless:h.boolean,selected:h.boolean,shadowRootDelegatesFocus:h.boolean,shadowRootMode:null,shape:null,size:h.number,sizes:null,slot:null,span:h.number,spellCheck:h.booleanish,src:null,srcDoc:null,srcLang:null,srcSet:null,start:h.number,step:null,style:null,tabIndex:h.number,target:null,title:null,translate:null,type:null,typeMustMatch:h.boolean,useMap:null,value:h.booleanish,width:h.number,wrap:null,align:null,aLink:null,archive:h.spaceSeparated,axis:null,background:null,bgColor:null,border:h.number,borderColor:null,bottomMargin:h.number,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:h.boolean,declare:h.boolean,event:null,face:null,frame:null,frameBorder:null,hSpace:h.number,leftMargin:h.number,link:null,longDesc:null,lowSrc:null,marginHeight:h.number,marginWidth:h.number,noResize:h.boolean,noHref:h.boolean,noShade:h.boolean,noWrap:h.boolean,object:null,profile:null,prompt:null,rev:null,rightMargin:h.number,rules:null,scheme:null,scrolling:h.booleanish,standby:null,summary:null,text:null,topMargin:h.number,valueType:null,version:null,vAlign:null,vLink:null,vSpace:h.number,allowTransparency:null,autoCorrect:null,autoSave:null,disablePictureInPicture:h.boolean,disableRemotePlayback:h.boolean,prefix:null,property:null,results:h.number,security:null,unselectable:null}}),y=s({space:"svg",attributes:{accentHeight:"accent-height",alignmentBaseline:"alignment-baseline",arabicForm:"arabic-form",baselineShift:"baseline-shift",capHeight:"cap-height",className:"class",clipPath:"clip-path",clipRule:"clip-rule",colorInterpolation:"color-interpolation",colorInterpolationFilters:"color-interpolation-filters",colorProfile:"color-profile",colorRendering:"color-rendering",crossOrigin:"crossorigin",dataType:"datatype",dominantBaseline:"dominant-baseline",enableBackground:"enable-background",fillOpacity:"fill-opacity",fillRule:"fill-rule",floodColor:"flood-color",floodOpacity:"flood-opacity",fontFamily:"font-family",fontSize:"font-size",fontSizeAdjust:"font-size-adjust",fontStretch:"font-stretch",fontStyle:"font-style",fontVariant:"font-variant",fontWeight:"font-weight",glyphName:"glyph-name",glyphOrientationHorizontal:"glyph-orientation-horizontal",glyphOrientationVertical:"glyph-orientation-vertical",hrefLang:"hreflang",horizAdvX:"horiz-adv-x",horizOriginX:"horiz-origin-x",horizOriginY:"horiz-origin-y",imageRendering:"image-rendering",letterSpacing:"letter-spacing",lightingColor:"lighting-color",markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",navDown:"nav-down",navDownLeft:"nav-down-left",navDownRight:"nav-down-right",navLeft:"nav-left",navNext:"nav-next",navPrev:"nav-prev",navRight:"nav-right",navUp:"nav-up",navUpLeft:"nav-up-left",navUpRight:"nav-up-right",onAbort:"onabort",onActivate:"onactivate",onAfterPrint:"onafterprint",onBeforePrint:"onbeforeprint",onBegin:"onbegin",onCancel:"oncancel",onCanPlay:"oncanplay",onCanPlayThrough:"oncanplaythrough",onChange:"onchange",onClick:"onclick",onClose:"onclose",onCopy:"oncopy",onCueChange:"oncuechange",onCut:"oncut",onDblClick:"ondblclick",onDrag:"ondrag",onDragEnd:"ondragend",onDragEnter:"ondragenter",onDragExit:"ondragexit",onDragLeave:"ondragleave",onDragOver:"ondragover",onDragStart:"ondragstart",onDrop:"ondrop",onDurationChange:"ondurationchange",onEmptied:"onemptied",onEnd:"onend",onEnded:"onended",onError:"onerror",onFocus:"onfocus",onFocusIn:"onfocusin",onFocusOut:"onfocusout",onHashChange:"onhashchange",onInput:"oninput",onInvalid:"oninvalid",onKeyDown:"onkeydown",onKeyPress:"onkeypress",onKeyUp:"onkeyup",onLoad:"onload",onLoadedData:"onloadeddata",onLoadedMetadata:"onloadedmetadata",onLoadStart:"onloadstart",onMessage:"onmessage",onMouseDown:"onmousedown",onMouseEnter:"onmouseenter",onMouseLeave:"onmouseleave",onMouseMove:"onmousemove",onMouseOut:"onmouseout",onMouseOver:"onmouseover",onMouseUp:"onmouseup",onMouseWheel:"onmousewheel",onOffline:"onoffline",onOnline:"ononline",onPageHide:"onpagehide",onPageShow:"onpageshow",onPaste:"onpaste",onPause:"onpause",onPlay:"onplay",onPlaying:"onplaying",onPopState:"onpopstate",onProgress:"onprogress",onRateChange:"onratechange",onRepeat:"onrepeat",onReset:"onreset",onResize:"onresize",onScroll:"onscroll",onSeeked:"onseeked",onSeeking:"onseeking",onSelect:"onselect",onShow:"onshow",onStalled:"onstalled",onStorage:"onstorage",onSubmit:"onsubmit",onSuspend:"onsuspend",onTimeUpdate:"ontimeupdate",onToggle:"ontoggle",onUnload:"onunload",onVolumeChange:"onvolumechange",onWaiting:"onwaiting",onZoom:"onzoom",overlinePosition:"overline-position",overlineThickness:"overline-thickness",paintOrder:"paint-order",panose1:"panose-1",pointerEvents:"pointer-events",referrerPolicy:"referrerpolicy",renderingIntent:"rendering-intent",shapeRendering:"shape-rendering",stopColor:"stop-color",stopOpacity:"stop-opacity",strikethroughPosition:"strikethrough-position",strikethroughThickness:"strikethrough-thickness",strokeDashArray:"stroke-dasharray",strokeDashOffset:"stroke-dashoffset",strokeLineCap:"stroke-linecap",strokeLineJoin:"stroke-linejoin",strokeMiterLimit:"stroke-miterlimit",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",tabIndex:"tabindex",textAnchor:"text-anchor",textDecoration:"text-decoration",textRendering:"text-rendering",transformOrigin:"transform-origin",typeOf:"typeof",underlinePosition:"underline-position",underlineThickness:"underline-thickness",unicodeBidi:"unicode-bidi",unicodeRange:"unicode-range",unitsPerEm:"units-per-em",vAlphabetic:"v-alphabetic",vHanging:"v-hanging",vIdeographic:"v-ideographic",vMathematical:"v-mathematical",vectorEffect:"vector-effect",vertAdvY:"vert-adv-y",vertOriginX:"vert-origin-x",vertOriginY:"vert-origin-y",wordSpacing:"word-spacing",writingMode:"writing-mode",xHeight:"x-height",playbackOrder:"playbackorder",timelineBegin:"timelinebegin"},transform:f,properties:{about:h.commaOrSpaceSeparated,accentHeight:h.number,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:h.number,amplitude:h.number,arabicForm:null,ascent:h.number,attributeName:null,attributeType:null,azimuth:h.number,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:h.number,by:null,calcMode:null,capHeight:h.number,className:h.spaceSeparated,clip:null,clipPath:null,clipPathUnits:null,clipRule:null,color:null,colorInterpolation:null,colorInterpolationFilters:null,colorProfile:null,colorRendering:null,content:null,contentScriptType:null,contentStyleType:null,crossOrigin:null,cursor:null,cx:null,cy:null,d:null,dataType:null,defaultAction:null,descent:h.number,diffuseConstant:h.number,direction:null,display:null,dur:null,divisor:h.number,dominantBaseline:null,download:h.boolean,dx:null,dy:null,edgeMode:null,editable:null,elevation:h.number,enableBackground:null,end:null,event:null,exponent:h.number,externalResourcesRequired:null,fill:null,fillOpacity:h.number,fillRule:null,filter:null,filterRes:null,filterUnits:null,floodColor:null,floodOpacity:null,focusable:null,focusHighlight:null,fontFamily:null,fontSize:null,fontSizeAdjust:null,fontStretch:null,fontStyle:null,fontVariant:null,fontWeight:null,format:null,fr:null,from:null,fx:null,fy:null,g1:h.commaSeparated,g2:h.commaSeparated,glyphName:h.commaSeparated,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:h.number,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:h.number,horizOriginX:h.number,horizOriginY:h.number,id:null,ideographic:h.number,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:h.number,k:h.number,k1:h.number,k2:h.number,k3:h.number,k4:h.number,kernelMatrix:h.commaOrSpaceSeparated,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:h.number,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:h.number,mediaTime:null,method:null,min:null,mode:null,name:null,navDown:null,navDownLeft:null,navDownRight:null,navLeft:null,navNext:null,navPrev:null,navRight:null,navUp:null,navUpLeft:null,navUpRight:null,numOctaves:null,observer:null,offset:null,onAbort:null,onActivate:null,onAfterPrint:null,onBeforePrint:null,onBegin:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnd:null,onEnded:null,onError:null,onFocus:null,onFocusIn:null,onFocusOut:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadStart:null,onMessage:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onMouseWheel:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRepeat:null,onReset:null,onResize:null,onScroll:null,onSeeked:null,onSeeking:null,onSelect:null,onShow:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnload:null,onVolumeChange:null,onWaiting:null,onZoom:null,opacity:null,operator:null,order:null,orient:null,orientation:null,origin:null,overflow:null,overlay:null,overlinePosition:h.number,overlineThickness:h.number,paintOrder:null,panose1:null,path:null,pathLength:h.number,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:h.spaceSeparated,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:h.number,pointsAtY:h.number,pointsAtZ:h.number,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:h.commaOrSpaceSeparated,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:h.commaOrSpaceSeparated,rev:h.commaOrSpaceSeparated,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:h.commaOrSpaceSeparated,requiredFeatures:h.commaOrSpaceSeparated,requiredFonts:h.commaOrSpaceSeparated,requiredFormats:h.commaOrSpaceSeparated,resource:null,restart:null,result:null,rotate:null,rx:null,ry:null,scale:null,seed:null,shapeRendering:null,side:null,slope:null,snapshotTime:null,specularConstant:h.number,specularExponent:h.number,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:h.number,strikethroughThickness:h.number,string:null,stroke:null,strokeDashArray:h.commaOrSpaceSeparated,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:h.number,strokeOpacity:h.number,strokeWidth:null,style:null,surfaceScale:h.number,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:h.commaOrSpaceSeparated,tabIndex:h.number,tableValues:null,target:null,targetX:h.number,targetY:h.number,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:h.commaOrSpaceSeparated,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:h.number,underlineThickness:h.number,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:h.number,values:null,vAlphabetic:h.number,vMathematical:h.number,vectorEffect:null,vHanging:h.number,vIdeographic:h.number,version:null,vertAdvY:h.number,vertOriginX:h.number,vertOriginY:h.number,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:h.number,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null}}),v=o([c,l,p,m,g],"html"),b=o([c,l,p,m,y],"svg")},5077:(e,t,n)=>{"use strict";n.d(t,{s:()=>l});var r=n(9627),o=n(8871),i=n(6524);const a=/^data[-\w.:]+$/i,u=/-[a-z]/g,s=/[A-Z]/g;function l(e,t){const n=(0,r.F)(t);let l=t,d=i.k;if(n in e.normal)return e.property[e.normal[n]];if(n.length>4&&"data"===n.slice(0,4)&&a.test(t)){if("-"===t.charAt(4)){const e=t.slice(5).replace(u,f);l="data"+e.charAt(0).toUpperCase()+e.slice(1)}else{const e=t.slice(4);if(!u.test(e)){let n=e.replace(s,c);"-"!==n.charAt(0)&&(n="-"+n),t="data"+n}}d=o.I}return new d(l,t)}function c(e){return"-"+e.toLowerCase()}function f(e){return e.charAt(1).toUpperCase()}},9627:(e,t,n)=>{"use strict";function r(e){return e.toLowerCase()}n.d(t,{F:()=>r})},8871:(e,t,n)=>{"use strict";n.d(t,{I:()=>a});var r=n(6524),o=n(7365);const i=Object.keys(o);class a extends r.k{constructor(e,t,n,r){let a=-1;if(super(e,t),u(this,"space",r),"number"===typeof n)for(;++a{"use strict";n.d(t,{k:()=>r});class r{constructor(e,t){this.property=e,this.attribute=t}}r.prototype.space=null,r.prototype.boolean=!1,r.prototype.booleanish=!1,r.prototype.overloadedBoolean=!1,r.prototype.number=!1,r.prototype.commaSeparated=!1,r.prototype.spaceSeparated=!1,r.prototype.commaOrSpaceSeparated=!1,r.prototype.mustUseProperty=!1,r.prototype.defined=!1},7365:(e,t,n)=>{"use strict";n.r(t),n.d(t,{boolean:()=>o,booleanish:()=>i,commaOrSpaceSeparated:()=>c,commaSeparated:()=>l,number:()=>u,overloadedBoolean:()=>a,spaceSeparated:()=>s});let r=0;const o=f(),i=f(),a=f(),u=f(),s=f(),l=f(),c=f();function f(){return 2**++r}},1013:(e,t,n)=>{"use strict";n.d(t,{U:()=>rn});var r={};n.r(r),n.d(r,{attentionMarkers:()=>Ze,contentInitial:()=>Ue,disable:()=>Ge,document:()=>Me,flow:()=>He,flowInitial:()=>qe,insideSpan:()=>$e,string:()=>Ve,text:()=>We});var o=n(2337),i=n(1064),a=n(1230),u=n(9314),s=n(5077);const l={classId:"classID",dataType:"datatype",itemId:"itemID",strokeDashArray:"strokeDasharray",strokeDashOffset:"strokeDashoffset",strokeLineCap:"strokeLinecap",strokeLineJoin:"strokeLinejoin",strokeMiterLimit:"strokeMiterlimit",typeOf:"typeof",xLinkActuate:"xlinkActuate",xLinkArcRole:"xlinkArcrole",xLinkHref:"xlinkHref",xLinkRole:"xlinkRole",xLinkShow:"xlinkShow",xLinkTitle:"xlinkTitle",xLinkType:"xlinkType",xmlnsXLink:"xmlnsXlink"};var c=n(103);const f=n(4977);var d=n(6465);function p(e){return e&&"object"===typeof e?"position"in e||"type"in e?m(e.position):"start"in e||"end"in e?m(e):"line"in e||"column"in e?h(e):"":""}function h(e){return g(e&&e.line)+":"+g(e&&e.column)}function m(e){return h(e&&e.start)+"-"+h(e&&e.end)}function g(e){return e&&"number"===typeof e?e:1}class y extends Error{constructor(e,t,n){super(),"string"===typeof t&&(n=t,t=void 0);let r="",o={},i=!1;if(t&&(o="line"in t&&"column"in t||"start"in t&&"end"in t?{place:t}:"type"in t?{ancestors:[t],place:t.position}:{...t}),"string"===typeof e?r=e:!o.cause&&e&&(i=!0,r=e.message,o.cause=e),!o.ruleId&&!o.source&&"string"===typeof n){const e=n.indexOf(":");-1===e?o.ruleId=n:(o.source=n.slice(0,e),o.ruleId=n.slice(e+1))}if(!o.place&&o.ancestors&&o.ancestors){const e=o.ancestors[o.ancestors.length-1];e&&(o.place=e.position)}const a=o.place&&"start"in o.place?o.place.start:o.place;this.ancestors=o.ancestors||void 0,this.cause=o.cause||void 0,this.column=a?a.column:void 0,this.fatal=void 0,this.file,this.message=r,this.line=a?a.line:void 0,this.name=p(o.place)||"1:1",this.place=o.place||void 0,this.reason=this.message,this.ruleId=o.ruleId||void 0,this.source=o.source||void 0,this.stack=i&&o.cause&&"string"===typeof o.cause.stack?o.cause.stack:"",this.actual,this.expected,this.note,this.url}}y.prototype.file="",y.prototype.name="",y.prototype.reason="",y.prototype.message="",y.prototype.stack="",y.prototype.column=void 0,y.prototype.line=void 0,y.prototype.ancestors=void 0,y.prototype.cause=void 0,y.prototype.fatal=void 0,y.prototype.place=void 0,y.prototype.ruleId=void 0,y.prototype.source=void 0;const v={}.hasOwnProperty,b=new Map,x=/[A-Z]/g,k=/-([a-z])/g,D=new Set(["table","tbody","thead","tfoot","tr"]),w=new Set(["td","th"]);function E(e,t){if(!t||void 0===t.Fragment)throw new TypeError("Expected `Fragment` in options");const n=t.filePath||void 0;let r;if(t.development){if("function"!==typeof t.jsxDEV)throw new TypeError("Expected `jsxDEV` in options when `development: true`");r=function(e,t){return n;function n(n,r,o,i){const a=Array.isArray(o.children),u=(0,d.Pk)(n);return t(r,o,i,a,{columnNumber:u?u.column-1:void 0,fileName:e,lineNumber:u?u.line:void 0},void 0)}}(n,t.jsxDEV)}else{if("function"!==typeof t.jsx)throw new TypeError("Expected `jsx` in production options");if("function"!==typeof t.jsxs)throw new TypeError("Expected `jsxs` in production options");r=function(e,t,n){return r;function r(e,r,o,i){const a=Array.isArray(o.children)?n:t;return i?a(r,o,i):a(r,o)}}(0,t.jsx,t.jsxs)}const o={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:r,elementAttributeNameCase:t.elementAttributeNameCase||"react",filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:!1!==t.passKeys,passNode:t.passNode||!1,schema:"svg"===t.space?u.YP:u.dy,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:!1!==t.tableCellAlignToStyle},i=C(o,e,void 0);return i&&"string"!==typeof i?i:o.create(e,o.Fragment,{children:i||void 0},void 0)}function C(e,t,n){if("element"===t.type||"root"===t.type){const r=e.schema;let o=r;"element"===t.type&&"svg"===t.tagName.toLowerCase()&&"html"===r.space&&(o=u.YP,e.schema=o),e.ancestors.push(t);let i=function(e,t){const n=[];let r=-1;const o=e.passKeys?new Map:b;for(;++r0){const e=i.length>1?i:i[0];e&&(s.children=e)}return e.schema=r,e.create(t,l,s,n)}if("text"===t.type)return t.value}function F(e,t,n,r){const o=(0,s.s)(e.schema,n);if(!(null===r||void 0===r||"number"===typeof r&&Number.isNaN(r))){if(Array.isArray(r)&&(r=o.commaSeparated?(0,i.P)(r):(0,c.P)(r)),"style"===o.property){let n="object"===typeof r?r:function(e,t,n){const r={};try{f(n,o)}catch(i){if(!e.ignoreInvalidStyle){const n=new y("Cannot parse `style` attribute",{ancestors:t,cause:i,source:"hast-util-to-jsx-runtime",ruleId:"style"});throw n.file=e.filePath||void 0,n.url="https://github.com/syntax-tree/hast-util-to-jsx-runtime#cannot-parse-style-attribute",n}}return r;function o(e,t){let n=e;"--"!==n.slice(0,2)&&("-ms-"===n.slice(0,4)&&(n="ms-"+n.slice(4)),n=n.replace(k,A)),r[n]=t}}(e,t,String(r));return"css"===e.stylePropertyNameCase&&(n=function(e){const t={};let n;for(n in e)v.call(e,n)&&(t[S(n)]=e[n]);return t}(n)),["style",n]}return["react"===e.elementAttributeNameCase&&o.space?l[o.property]||o.property:o.attribute,r]}}function S(e){let t=e.replace(x,T);return"ms-"===t.slice(0,3)&&(t="-"+t),t}function A(e,t){return t.toUpperCase()}function T(e){return"-"+e.toLowerCase()}const P={action:["form"],cite:["blockquote","del","ins","q"],data:["object"],formAction:["button","input"],href:["a","area","base","link"],icon:["menuitem"],itemId:null,manifest:["html"],ping:["a","area"],poster:["video"],src:["audio","embed","iframe","img","input","script","source","track","video"]};var O=n(4760),L=n(3532),B=n(7125);function N(e){const t={};let n,r,o,i,a,u,s,l=-1;for(;++li))return;const n=t.events.length;let o,u,s=n;for(;s--;)if("exit"===t.events[s][0]&&"chunkFlow"===t.events[s][1].type){if(o){u=t.events[s][1].end;break}o=!0}for(y(a),e=n;er;){const r=n[o];t.containerState=r[1],r[0].exit.call(t,e)}n.length=r}function v(){r.write([null]),o=void 0,r=void 0,t.containerState._closeFlow=void 0}}},U={tokenize:function(e,t,n){return(0,j.f)(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}};var q=n(8597);const H={tokenize:function(e,t){let n;return function(t){return e.enter("content"),n=e.enter("chunkContent",{contentType:"content"}),r(t)};function r(t){return null===t?o(t):(0,_.Ch)(t)?e.check(V,i,o)(t):(e.consume(t),r)}function o(n){return e.exit("chunkContent"),e.exit("content"),t(n)}function i(t){return e.consume(t),e.exit("chunkContent"),n.next=e.enter("chunkContent",{contentType:"content",previous:n}),n=n.next,r}},resolve:function(e){return N(e),e}},V={tokenize:function(e,t,n){const r=this;return function(t){return e.exit("chunkContent"),e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),(0,j.f)(e,o,"linePrefix")};function o(o){if(null===o||(0,_.Ch)(o))return n(o);const i=r.events[r.events.length-1];return!r.parser.constructs.disable.null.includes("codeIndented")&&i&&"linePrefix"===i[1].type&&i[2].sliceSerialize(i[1],!0).length>=4?t(o):e.interrupt(r.parser.constructs.flow,n,t)(o)}},partial:!0};const W={tokenize:function(e){const t=this,n=e.attempt(q.w,(function(r){if(null===r)return void e.consume(r);return e.enter("lineEndingBlank"),e.consume(r),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}),e.attempt(this.parser.constructs.flowInitial,r,(0,j.f)(e,e.attempt(this.parser.constructs.flow,r,e.attempt(H,r)),"linePrefix")));return n;function r(r){if(null!==r)return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),t.currentConstruct=void 0,n;e.consume(r)}}};const $={resolveAll:Q()},Z=K("string"),G=K("text");function K(e){return{tokenize:function(t){const n=this,r=this.parser.constructs[e],o=t.attempt(r,i,a);return i;function i(e){return s(e)?o(e):a(e)}function a(e){if(null!==e)return t.enter("data"),t.consume(e),u;t.consume(e)}function u(e){return s(e)?(t.exit("data"),o(e)):(t.consume(e),u)}function s(e){if(null===e)return!0;const t=r[e];let o=-1;if(t)for(;++o-1){const e=a[0];"string"===typeof e?a[0]=e.slice(r):a.shift()}i>0&&a.push(e[o].slice(0,i))}return a}(a,e)}function h(){const{line:e,column:t,offset:n,_index:o,_bufferIndex:i}=r;return{line:e,column:t,offset:n,_index:o,_bufferIndex:i}}function m(){let e;for(;r._index=3&&(null===i||(0,_.Ch)(i))?(e.exit("thematicBreak"),t(i)):n(i)}function a(t){return t===r?(e.consume(t),o++,a):(e.exit("thematicBreakSequence"),(0,_.xz)(t)?(0,j.f)(e,i,"whitespace")(t):i(t))}}};const te={name:"list",tokenize:function(e,t,n){const r=this,o=r.events[r.events.length-1];let i=o&&"linePrefix"===o[1].type?o[2].sliceSerialize(o[1],!0).length:0,a=0;return function(t){const o=r.containerState.type||(42===t||43===t||45===t?"listUnordered":"listOrdered");if("listUnordered"===o?!r.containerState.marker||t===r.containerState.marker:(0,_.pY)(t)){if(r.containerState.type||(r.containerState.type=o,e.enter(o,{_container:!0})),"listUnordered"===o)return e.enter("listItemPrefix"),42===t||45===t?e.check(ee,n,s)(t):s(t);if(!r.interrupt||49===t)return e.enter("listItemPrefix"),e.enter("listItemValue"),u(t)}return n(t)};function u(t){return(0,_.pY)(t)&&++a<10?(e.consume(t),u):(!r.interrupt||a<2)&&(r.containerState.marker?t===r.containerState.marker:41===t||46===t)?(e.exit("listItemValue"),s(t)):n(t)}function s(t){return e.enter("listItemMarker"),e.consume(t),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||t,e.check(q.w,r.interrupt?n:l,e.attempt(ne,f,c))}function l(e){return r.containerState.initialBlankLine=!0,i++,f(e)}function c(t){return(0,_.xz)(t)?(e.enter("listItemPrefixWhitespace"),e.consume(t),e.exit("listItemPrefixWhitespace"),f):n(t)}function f(n){return r.containerState.size=i+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(n)}},continuation:{tokenize:function(e,t,n){const r=this;return r.containerState._closeFlow=void 0,e.check(q.w,(function(n){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,(0,j.f)(e,t,"listItemIndent",r.containerState.size+1)(n)}),(function(n){if(r.containerState.furtherBlankLines||!(0,_.xz)(n))return r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,o(n);return r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(re,t,o)(n)}));function o(o){return r.containerState._closeFlow=!0,r.interrupt=void 0,(0,j.f)(e,e.attempt(te,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(o)}}},exit:function(e){e.exit(this.containerState.type)}},ne={tokenize:function(e,t,n){const r=this;return(0,j.f)(e,(function(e){const o=r.events[r.events.length-1];return!(0,_.xz)(e)&&o&&"listItemPrefixWhitespace"===o[1].type?t(e):n(e)}),"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5)},partial:!0},re={tokenize:function(e,t,n){const r=this;return(0,j.f)(e,(function(e){const o=r.events[r.events.length-1];return o&&"listItemIndent"===o[1].type&&o[2].sliceSerialize(o[1],!0).length===r.containerState.size?t(e):n(e)}),"listItemIndent",r.containerState.size+1)},partial:!0};const oe={name:"blockQuote",tokenize:function(e,t,n){const r=this;return function(t){if(62===t){const n=r.containerState;return n.open||(e.enter("blockQuote",{_container:!0}),n.open=!0),e.enter("blockQuotePrefix"),e.enter("blockQuoteMarker"),e.consume(t),e.exit("blockQuoteMarker"),o}return n(t)};function o(n){return(0,_.xz)(n)?(e.enter("blockQuotePrefixWhitespace"),e.consume(n),e.exit("blockQuotePrefixWhitespace"),e.exit("blockQuotePrefix"),t):(e.exit("blockQuotePrefix"),t(n))}},continuation:{tokenize:function(e,t,n){const r=this;return function(t){if((0,_.xz)(t))return(0,j.f)(e,o,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(t);return o(t)};function o(r){return e.attempt(oe,t,n)(r)}}},exit:function(e){e.exit("blockQuote")}};function ie(e,t,n,r,o,i,a,u,s){const l=s||Number.POSITIVE_INFINITY;let c=0;return function(t){if(60===t)return e.enter(r),e.enter(o),e.enter(i),e.consume(t),e.exit(i),f;if(null===t||32===t||41===t||(0,_.Av)(t))return n(t);return e.enter(r),e.enter(a),e.enter(u),e.enter("chunkString",{contentType:"string"}),h(t)};function f(n){return 62===n?(e.enter(i),e.consume(n),e.exit(i),e.exit(o),e.exit(r),t):(e.enter(u),e.enter("chunkString",{contentType:"string"}),d(n))}function d(t){return 62===t?(e.exit("chunkString"),e.exit(u),f(t)):null===t||60===t||(0,_.Ch)(t)?n(t):(e.consume(t),92===t?p:d)}function p(t){return 60===t||62===t||92===t?(e.consume(t),d):d(t)}function h(o){return c||null!==o&&41!==o&&!(0,_.z3)(o)?c999||null===f||91===f||93===f&&!u||94===f&&!s&&"_hiddenFootnoteSupport"in a.parser.constructs?n(f):93===f?(e.exit(i),e.enter(o),e.consume(f),e.exit(o),e.exit(r),t):(0,_.Ch)(f)?(e.enter("lineEnding"),e.consume(f),e.exit("lineEnding"),l):(e.enter("chunkString",{contentType:"string"}),c(f))}function c(t){return null===t||91===t||93===t||(0,_.Ch)(t)||s++>999?(e.exit("chunkString"),l(t)):(e.consume(t),u||(u=!(0,_.xz)(t)),92===t?f:c)}function f(t){return 91===t||92===t||93===t?(e.consume(t),s++,c):c(t)}}function ue(e,t,n,r,o,i){let a;return function(t){if(34===t||39===t||40===t)return e.enter(r),e.enter(o),e.consume(t),e.exit(o),a=40===t?41:t,u;return n(t)};function u(n){return n===a?(e.enter(o),e.consume(n),e.exit(o),e.exit(r),t):(e.enter(i),s(n))}function s(t){return t===a?(e.exit(i),u(a)):null===t?n(t):(0,_.Ch)(t)?(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),(0,j.f)(e,s,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),l(t))}function l(t){return t===a||null===t||(0,_.Ch)(t)?(e.exit("chunkString"),s(t)):(e.consume(t),92===t?c:l)}function c(t){return t===a||92===t?(e.consume(t),l):l(t)}}function se(e,t){let n;return function r(o){if((0,_.Ch)(o))return e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),n=!0,r;if((0,_.xz)(o))return(0,j.f)(e,r,n?"linePrefix":"lineSuffix")(o);return t(o)}}var le=n(478);const ce={name:"definition",tokenize:function(e,t,n){const r=this;let o;return function(t){return e.enter("definition"),function(t){return ae.call(r,e,i,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(t)}(t)};function i(t){return o=(0,le.d)(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),58===t?(e.enter("definitionMarker"),e.consume(t),e.exit("definitionMarker"),a):n(t)}function a(t){return(0,_.z3)(t)?se(e,u)(t):u(t)}function u(t){return ie(e,s,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(t)}function s(t){return e.attempt(fe,l,l)(t)}function l(t){return(0,_.xz)(t)?(0,j.f)(e,c,"whitespace")(t):c(t)}function c(i){return null===i||(0,_.Ch)(i)?(e.exit("definition"),r.parser.defined.push(o),t(i)):n(i)}}},fe={tokenize:function(e,t,n){return function(t){return(0,_.z3)(t)?se(e,r)(t):n(t)};function r(t){return ue(e,o,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(t)}function o(t){return(0,_.xz)(t)?(0,j.f)(e,i,"whitespace")(t):i(t)}function i(e){return null===e||(0,_.Ch)(e)?t(e):n(e)}},partial:!0};const de={name:"codeIndented",tokenize:function(e,t,n){const r=this;return function(t){return e.enter("codeIndented"),(0,j.f)(e,o,"linePrefix",5)(t)};function o(e){const t=r.events[r.events.length-1];return t&&"linePrefix"===t[1].type&&t[2].sliceSerialize(t[1],!0).length>=4?i(e):n(e)}function i(t){return null===t?u(t):(0,_.Ch)(t)?e.attempt(pe,i,u)(t):(e.enter("codeFlowValue"),a(t))}function a(t){return null===t||(0,_.Ch)(t)?(e.exit("codeFlowValue"),i(t)):(e.consume(t),a)}function u(n){return e.exit("codeIndented"),t(n)}}},pe={tokenize:function(e,t,n){const r=this;return o;function o(t){return r.parser.lazy[r.now().line]?n(t):(0,_.Ch)(t)?(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),o):(0,j.f)(e,i,"linePrefix",5)(t)}function i(e){const i=r.events[r.events.length-1];return i&&"linePrefix"===i[1].type&&i[2].sliceSerialize(i[1],!0).length>=4?t(e):(0,_.Ch)(e)?o(e):n(e)}},partial:!0};const he={name:"headingAtx",tokenize:function(e,t,n){let r=0;return function(t){return e.enter("atxHeading"),function(t){return e.enter("atxHeadingSequence"),o(t)}(t)};function o(t){return 35===t&&r++<6?(e.consume(t),o):null===t||(0,_.z3)(t)?(e.exit("atxHeadingSequence"),i(t)):n(t)}function i(n){return 35===n?(e.enter("atxHeadingSequence"),a(n)):null===n||(0,_.Ch)(n)?(e.exit("atxHeading"),t(n)):(0,_.xz)(n)?(0,j.f)(e,i,"whitespace")(n):(e.enter("atxHeadingText"),u(n))}function a(t){return 35===t?(e.consume(t),a):(e.exit("atxHeadingSequence"),i(t))}function u(t){return null===t||35===t||(0,_.z3)(t)?(e.exit("atxHeadingText"),i(t)):(e.consume(t),u)}},resolve:function(e,t){let n,r,o=e.length-2,i=3;"whitespace"===e[i][1].type&&(i+=2);o-2>i&&"whitespace"===e[o][1].type&&(o-=2);"atxHeadingSequence"===e[o][1].type&&(i===o-1||o-4>i&&"whitespace"===e[o-2][1].type)&&(o-=i+1===o?2:4);o>i&&(n={type:"atxHeadingText",start:e[i][1].start,end:e[o][1].end},r={type:"chunkText",start:e[i][1].start,end:e[o][1].end,contentType:"text"},(0,B.d)(e,i,o-i+1,[["enter",n,t],["enter",r,t],["exit",r,t],["exit",n,t]]));return e}};const me={name:"setextUnderline",tokenize:function(e,t,n){const r=this;let o;return function(t){let a,u=r.events.length;for(;u--;)if("lineEnding"!==r.events[u][1].type&&"linePrefix"!==r.events[u][1].type&&"content"!==r.events[u][1].type){a="paragraph"===r.events[u][1].type;break}if(!r.parser.lazy[r.now().line]&&(r.interrupt||a))return e.enter("setextHeadingLine"),o=t,function(t){return e.enter("setextHeadingLineSequence"),i(t)}(t);return n(t)};function i(t){return t===o?(e.consume(t),i):(e.exit("setextHeadingLineSequence"),(0,_.xz)(t)?(0,j.f)(e,a,"lineSuffix")(t):a(t))}function a(r){return null===r||(0,_.Ch)(r)?(e.exit("setextHeadingLine"),t(r)):n(r)}},resolveTo:function(e,t){let n,r,o,i=e.length;for(;i--;)if("enter"===e[i][0]){if("content"===e[i][1].type){n=i;break}"paragraph"===e[i][1].type&&(r=i)}else"content"===e[i][1].type&&e.splice(i,1),o||"definition"!==e[i][1].type||(o=i);const a={type:"setextHeading",start:Object.assign({},e[r][1].start),end:Object.assign({},e[e.length-1][1].end)};e[r][1].type="setextHeadingText",o?(e.splice(r,0,["enter",a,t]),e.splice(o+1,0,["exit",e[n][1],t]),e[n][1].end=Object.assign({},e[o][1].end)):e[n][1]=a;return e.push(["exit",a,t]),e}};const ge=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],ye=["pre","script","style","textarea"],ve={name:"htmlFlow",tokenize:function(e,t,n){const r=this;let o,i,a,u,s;return function(t){return function(t){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(t),l}(t)};function l(u){return 33===u?(e.consume(u),c):47===u?(e.consume(u),i=!0,p):63===u?(e.consume(u),o=3,r.interrupt?t:N):(0,_.jv)(u)?(e.consume(u),a=String.fromCharCode(u),h):n(u)}function c(i){return 45===i?(e.consume(i),o=2,f):91===i?(e.consume(i),o=5,u=0,d):(0,_.jv)(i)?(e.consume(i),o=4,r.interrupt?t:N):n(i)}function f(o){return 45===o?(e.consume(o),r.interrupt?t:N):n(o)}function d(o){const i="CDATA[";return o===i.charCodeAt(u++)?(e.consume(o),6===u?r.interrupt?t:F:d):n(o)}function p(t){return(0,_.jv)(t)?(e.consume(t),a=String.fromCharCode(t),h):n(t)}function h(u){if(null===u||47===u||62===u||(0,_.z3)(u)){const s=47===u,l=a.toLowerCase();return s||i||!ye.includes(l)?ge.includes(a.toLowerCase())?(o=6,s?(e.consume(u),m):r.interrupt?t(u):F(u)):(o=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(u):i?g(u):y(u)):(o=1,r.interrupt?t(u):F(u))}return 45===u||(0,_.H$)(u)?(e.consume(u),a+=String.fromCharCode(u),h):n(u)}function m(o){return 62===o?(e.consume(o),r.interrupt?t:F):n(o)}function g(t){return(0,_.xz)(t)?(e.consume(t),g):E(t)}function y(t){return 47===t?(e.consume(t),E):58===t||95===t||(0,_.jv)(t)?(e.consume(t),v):(0,_.xz)(t)?(e.consume(t),y):E(t)}function v(t){return 45===t||46===t||58===t||95===t||(0,_.H$)(t)?(e.consume(t),v):b(t)}function b(t){return 61===t?(e.consume(t),x):(0,_.xz)(t)?(e.consume(t),b):y(t)}function x(t){return null===t||60===t||61===t||62===t||96===t?n(t):34===t||39===t?(e.consume(t),s=t,k):(0,_.xz)(t)?(e.consume(t),x):D(t)}function k(t){return t===s?(e.consume(t),s=null,w):null===t||(0,_.Ch)(t)?n(t):(e.consume(t),k)}function D(t){return null===t||34===t||39===t||47===t||60===t||61===t||62===t||96===t||(0,_.z3)(t)?b(t):(e.consume(t),D)}function w(e){return 47===e||62===e||(0,_.xz)(e)?y(e):n(e)}function E(t){return 62===t?(e.consume(t),C):n(t)}function C(t){return null===t||(0,_.Ch)(t)?F(t):(0,_.xz)(t)?(e.consume(t),C):n(t)}function F(t){return 45===t&&2===o?(e.consume(t),P):60===t&&1===o?(e.consume(t),O):62===t&&4===o?(e.consume(t),R):63===t&&3===o?(e.consume(t),N):93===t&&5===o?(e.consume(t),B):!(0,_.Ch)(t)||6!==o&&7!==o?null===t||(0,_.Ch)(t)?(e.exit("htmlFlowData"),S(t)):(e.consume(t),F):(e.exit("htmlFlowData"),e.check(be,I,S)(t))}function S(t){return e.check(xe,A,I)(t)}function A(t){return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),T}function T(t){return null===t||(0,_.Ch)(t)?S(t):(e.enter("htmlFlowData"),F(t))}function P(t){return 45===t?(e.consume(t),N):F(t)}function O(t){return 47===t?(e.consume(t),a="",L):F(t)}function L(t){if(62===t){const n=a.toLowerCase();return ye.includes(n)?(e.consume(t),R):F(t)}return(0,_.jv)(t)&&a.length<8?(e.consume(t),a+=String.fromCharCode(t),L):F(t)}function B(t){return 93===t?(e.consume(t),N):F(t)}function N(t){return 62===t?(e.consume(t),R):45===t&&2===o?(e.consume(t),N):F(t)}function R(t){return null===t||(0,_.Ch)(t)?(e.exit("htmlFlowData"),I(t)):(e.consume(t),R)}function I(n){return e.exit("htmlFlow"),t(n)}},resolveTo:function(e){let t=e.length;for(;t--&&("enter"!==e[t][0]||"htmlFlow"!==e[t][1].type););t>1&&"linePrefix"===e[t-2][1].type&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2));return e},concrete:!0},be={tokenize:function(e,t,n){return function(r){return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),e.attempt(q.w,t,n)}},partial:!0},xe={tokenize:function(e,t,n){const r=this;return function(t){if((0,_.Ch)(t))return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),o;return n(t)};function o(e){return r.parser.lazy[r.now().line]?n(e):t(e)}},partial:!0};const ke={tokenize:function(e,t,n){const r=this;return function(t){if(null===t)return n(t);return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),o};function o(e){return r.parser.lazy[r.now().line]?n(e):t(e)}},partial:!0},De={name:"codeFenced",tokenize:function(e,t,n){const r=this,o={tokenize:function(e,t,n){let o=0;return a;function a(t){return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),s}function s(t){return e.enter("codeFencedFence"),(0,_.xz)(t)?(0,j.f)(e,l,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(t):l(t)}function l(t){return t===i?(e.enter("codeFencedFenceSequence"),c(t)):n(t)}function c(t){return t===i?(o++,e.consume(t),c):o>=u?(e.exit("codeFencedFenceSequence"),(0,_.xz)(t)?(0,j.f)(e,f,"whitespace")(t):f(t)):n(t)}function f(r){return null===r||(0,_.Ch)(r)?(e.exit("codeFencedFence"),t(r)):n(r)}},partial:!0};let i,a=0,u=0;return function(t){return function(t){const n=r.events[r.events.length-1];return a=n&&"linePrefix"===n[1].type?n[2].sliceSerialize(n[1],!0).length:0,i=t,e.enter("codeFenced"),e.enter("codeFencedFence"),e.enter("codeFencedFenceSequence"),s(t)}(t)};function s(t){return t===i?(u++,e.consume(t),s):u<3?n(t):(e.exit("codeFencedFenceSequence"),(0,_.xz)(t)?(0,j.f)(e,l,"whitespace")(t):l(t))}function l(n){return null===n||(0,_.Ch)(n)?(e.exit("codeFencedFence"),r.interrupt?t(n):e.check(ke,p,v)(n)):(e.enter("codeFencedFenceInfo"),e.enter("chunkString",{contentType:"string"}),c(n))}function c(t){return null===t||(0,_.Ch)(t)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),l(t)):(0,_.xz)(t)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),(0,j.f)(e,f,"whitespace")(t)):96===t&&t===i?n(t):(e.consume(t),c)}function f(t){return null===t||(0,_.Ch)(t)?l(t):(e.enter("codeFencedFenceMeta"),e.enter("chunkString",{contentType:"string"}),d(t))}function d(t){return null===t||(0,_.Ch)(t)?(e.exit("chunkString"),e.exit("codeFencedFenceMeta"),l(t)):96===t&&t===i?n(t):(e.consume(t),d)}function p(t){return e.attempt(o,v,h)(t)}function h(t){return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),m}function m(t){return a>0&&(0,_.xz)(t)?(0,j.f)(e,g,"linePrefix",a+1)(t):g(t)}function g(t){return null===t||(0,_.Ch)(t)?e.check(ke,p,v)(t):(e.enter("codeFlowValue"),y(t))}function y(t){return null===t||(0,_.Ch)(t)?(e.exit("codeFlowValue"),g(t)):(e.consume(t),y)}function v(n){return e.exit("codeFenced"),t(n)}},concrete:!0};var we=n(6068);const Ee={name:"characterReference",tokenize:function(e,t,n){const r=this;let o,i,a=0;return function(t){return e.enter("characterReference"),e.enter("characterReferenceMarker"),e.consume(t),e.exit("characterReferenceMarker"),u};function u(t){return 35===t?(e.enter("characterReferenceMarkerNumeric"),e.consume(t),e.exit("characterReferenceMarkerNumeric"),s):(e.enter("characterReferenceValue"),o=31,i=_.H$,l(t))}function s(t){return 88===t||120===t?(e.enter("characterReferenceMarkerHexadecimal"),e.consume(t),e.exit("characterReferenceMarkerHexadecimal"),e.enter("characterReferenceValue"),o=6,i=_.AF,l):(e.enter("characterReferenceValue"),o=7,i=_.pY,l(t))}function l(u){if(59===u&&a){const o=e.exit("characterReferenceValue");return i!==_.H$||(0,we.T)(r.sliceSerialize(o))?(e.enter("characterReferenceMarker"),e.consume(u),e.exit("characterReferenceMarker"),e.exit("characterReference"),t):n(u)}return i(u)&&a++1&&e[c][1].end.offset-e[c][1].start.offset>1?2:1;const f=Object.assign({},e[n][1].end),d=Object.assign({},e[c][1].start);Ne(f,-u),Ne(d,u),i={type:u>1?"strongSequence":"emphasisSequence",start:f,end:Object.assign({},e[n][1].end)},a={type:u>1?"strongSequence":"emphasisSequence",start:Object.assign({},e[c][1].start),end:d},o={type:u>1?"strongText":"emphasisText",start:Object.assign({},e[n][1].end),end:Object.assign({},e[c][1].start)},r={type:u>1?"strong":"emphasis",start:Object.assign({},i.start),end:Object.assign({},a.end)},e[n][1].end=Object.assign({},i.start),e[c][1].start=Object.assign({},a.end),s=[],e[n][1].end.offset-e[n][1].start.offset&&(s=(0,B.V)(s,[["enter",e[n][1],t],["exit",e[n][1],t]])),s=(0,B.V)(s,[["enter",r,t],["enter",i,t],["exit",i,t],["enter",o,t]]),s=(0,B.V)(s,(0,J.C)(t.parser.constructs.insideSpan.null,e.slice(n+1,c),t)),s=(0,B.V)(s,[["exit",o,t],["enter",a,t],["exit",a,t],["exit",r,t]]),e[c][1].end.offset-e[c][1].start.offset?(l=2,s=(0,B.V)(s,[["enter",e[c][1],t],["exit",e[c][1],t]])):l=0,(0,B.d)(e,n-1,c-n+3,s),c=n+s.length-l-2;break}c=-1;for(;++c13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||65535===(65535&n)||65534===(65535&n)||n>1114111?"\ufffd":String.fromCodePoint(n)}const Ye=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function Je(e,t,n){if(t)return t;if(35===n.charCodeAt(0)){const e=n.charCodeAt(1),t=120===e||88===e;return Qe(n.slice(t?2:1),t?16:10)}return(0,we.T)(n)||e}const Xe={}.hasOwnProperty;function et(e,t,n){return"string"!==typeof t&&(n=t,t=void 0),function(e){const t={transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:i(ne),autolinkProtocol:F,autolinkEmail:F,atxHeading:i(J),blockQuote:i(Z),characterEscape:F,characterReference:F,codeFenced:i(G),codeFencedFenceInfo:a,codeFencedFenceMeta:a,codeIndented:i(G,a),codeText:i(K,a),codeTextData:F,data:F,codeFlowValue:F,definition:i(Q),definitionDestinationString:a,definitionLabelString:a,definitionTitleString:a,emphasis:i(Y),hardBreakEscape:i(X),hardBreakTrailing:i(X),htmlFlow:i(ee,a),htmlFlowData:F,htmlText:i(ee,a),htmlTextData:F,image:i(te),label:a,link:i(ne),listItem:i(oe),listItemValue:d,listOrdered:i(re,f),listUnordered:i(re),paragraph:i(ie),reference:U,referenceString:a,resourceDestinationString:a,resourceTitleString:a,setextHeading:i(J),strong:i(ae),thematicBreak:i(se)},exit:{atxHeading:s(),atxHeadingSequence:D,autolink:s(),autolinkEmail:$,autolinkProtocol:W,blockQuote:s(),characterEscapeValue:S,characterReferenceMarkerHexadecimal:H,characterReferenceMarkerNumeric:H,characterReferenceValue:V,codeFenced:s(y),codeFencedFence:g,codeFencedFenceInfo:h,codeFencedFenceMeta:m,codeFlowValue:S,codeIndented:s(v),codeText:s(B),codeTextData:S,data:S,definition:s(),definitionDestinationString:k,definitionLabelString:b,definitionTitleString:x,emphasis:s(),hardBreakEscape:s(T),hardBreakTrailing:s(T),htmlFlow:s(P),htmlFlowData:S,htmlText:s(O),htmlTextData:S,image:s(R),label:j,labelText:I,lineEnding:A,link:s(N),listItem:s(),listOrdered:s(),listUnordered:s(),paragraph:s(),referenceString:q,resourceDestinationString:_,resourceTitleString:z,resource:M,setextHeading:s(C),setextHeadingLineSequence:E,setextHeadingText:w,strong:s(),thematicBreak:s()}};nt(t,(e||{}).mdastExtensions||[]);const n={};return r;function r(e){let r={type:"root",children:[]};const i={stack:[r],tokenStack:[],config:t,enter:u,exit:l,buffer:a,resume:c,data:n},s=[];let f=-1;for(;++f0){const e=i.tokenStack[i.tokenStack.length-1];(e[1]||ot).call(i,void 0,e[0])}for(r.position={start:tt(e.length>0?e[0][1].start:{line:1,column:1,offset:0}),end:tt(e.length>0?e[e.length-2][1].end:{line:1,column:1,offset:0})},f=-1;++f55295&&i<57344){const t=e.charCodeAt(n+1);i<56320&&t>56319&&t<57344?(a=String.fromCharCode(i,t),o=1):a="\ufffd"}else a=String.fromCharCode(i);a&&(t.push(e.slice(r,n),encodeURIComponent(a)),r=n+o+1,a=""),o&&(n+=o,o=0)}return t.join("")+e.slice(r)}function st(e,t){const n=[{type:"text",value:"\u21a9"}];return t>1&&n.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(t)}]}),n}function lt(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}var ct=n(655);function ft(e,t){const n=t.referenceType;let r="]";if("collapsed"===n?r+="[]":"full"===n&&(r+="["+(t.label||t.identifier)+"]"),"imageReference"===t.type)return[{type:"text",value:"!["+t.alt+r}];const o=e.all(t),i=o[0];i&&"text"===i.type?i.value="["+i.value:o.unshift({type:"text",value:"["});const a=o[o.length-1];return a&&"text"===a.type?a.value+=r:o.push({type:"text",value:r}),o}function dt(e){const t=e.spread;return null===t||void 0===t?e.children.length>1:t}const pt=9,ht=32;function mt(e){const t=String(e),n=/\r?\n|\r/g;let r=n.exec(t),o=0;const i=[];for(;r;)i.push(gt(t.slice(o,r.index),o>0,!0),r[0]),o=r.index+r[0].length,r=n.exec(t);return i.push(gt(t.slice(o),o>0,!1)),i.join("")}function gt(e,t,n){let r=0,o=e.length;if(t){let t=e.codePointAt(r);for(;t===pt||t===ht;)r++,t=e.codePointAt(r)}if(n){let t=e.codePointAt(o-1);for(;t===pt||t===ht;)o--,t=e.codePointAt(o-1)}return o>r?e.slice(r,o):""}const yt={blockquote:function(e,t){const n={type:"element",tagName:"blockquote",properties:{},children:e.wrap(e.all(t),!0)};return e.patch(t,n),e.applyData(t,n)},break:function(e,t){const n={type:"element",tagName:"br",properties:{},children:[]};return e.patch(t,n),[e.applyData(t,n),{type:"text",value:"\n"}]},code:function(e,t){const n=t.value?t.value+"\n":"",r={};t.lang&&(r.className=["language-"+t.lang]);let o={type:"element",tagName:"code",properties:r,children:[{type:"text",value:n}]};return t.meta&&(o.data={meta:t.meta}),e.patch(t,o),o=e.applyData(t,o),o={type:"element",tagName:"pre",properties:{},children:[o]},e.patch(t,o),o},delete:function(e,t){const n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)},emphasis:function(e,t){const n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)},footnoteReference:function(e,t){const n="string"===typeof e.options.clobberPrefix?e.options.clobberPrefix:"user-content-",r=String(t.identifier).toUpperCase(),o=ut(r.toLowerCase()),i=e.footnoteOrder.indexOf(r);let a,u=e.footnoteCounts.get(r);void 0===u?(u=0,e.footnoteOrder.push(r),a=e.footnoteOrder.length):a=i+1,u+=1,e.footnoteCounts.set(r,u);const s={type:"element",tagName:"a",properties:{href:"#"+n+"fn-"+o,id:n+"fnref-"+o+(u>1?"-"+u:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(a)}]};e.patch(t,s);const l={type:"element",tagName:"sup",properties:{},children:[s]};return e.patch(t,l),e.applyData(t,l)},heading:function(e,t){const n={type:"element",tagName:"h"+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)},html:function(e,t){if(e.options.allowDangerousHtml){const n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}},imageReference:function(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return ft(e,t);const o={src:ut(r.url||""),alt:t.alt};null!==r.title&&void 0!==r.title&&(o.title=r.title);const i={type:"element",tagName:"img",properties:o,children:[]};return e.patch(t,i),e.applyData(t,i)},image:function(e,t){const n={src:ut(t.url)};null!==t.alt&&void 0!==t.alt&&(n.alt=t.alt),null!==t.title&&void 0!==t.title&&(n.title=t.title);const r={type:"element",tagName:"img",properties:n,children:[]};return e.patch(t,r),e.applyData(t,r)},inlineCode:function(e,t){const n={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,n);const r={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(t,r),e.applyData(t,r)},linkReference:function(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return ft(e,t);const o={href:ut(r.url||"")};null!==r.title&&void 0!==r.title&&(o.title=r.title);const i={type:"element",tagName:"a",properties:o,children:e.all(t)};return e.patch(t,i),e.applyData(t,i)},link:function(e,t){const n={href:ut(t.url)};null!==t.title&&void 0!==t.title&&(n.title=t.title);const r={type:"element",tagName:"a",properties:n,children:e.all(t)};return e.patch(t,r),e.applyData(t,r)},listItem:function(e,t,n){const r=e.all(t),o=n?function(e){let t=!1;if("list"===e.type){t=e.spread||!1;const n=e.children;let r=-1;for(;!t&&++r0&&n.children.unshift({type:"text",value:" "}),n.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),i.className=["task-list-item"]}let u=-1;for(;++u0){const r={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},i=(0,d.Pk)(t.children[1]),a=(0,d.rb)(t.children[t.children.length-1]);i&&a&&(r.position={start:i,end:a}),o.push(r)}const i={type:"element",tagName:"table",properties:{},children:e.wrap(o,!0)};return e.patch(t,i),e.applyData(t,i)},tableCell:function(e,t){const n={type:"element",tagName:"td",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)},tableRow:function(e,t,n){const r=n?n.children:void 0,o=0===(r?r.indexOf(t):1)?"th":"td",i=n&&"table"===n.type?n.align:void 0,a=i?i.length:t.children.length;let u=-1;const s=[];for(;++u0&&n.push({type:"text",value:"\n"}),n}function Ct(e){let t=0,n=e.charCodeAt(t);for(;9===n||32===n;)t++,n=e.charCodeAt(t);return e.slice(t)}function Ft(e,t){const n=function(e,t){const n=t||xt,r=new Map,o=new Map,i=new Map,a={...yt,...n.handlers},u={all:function(e){const t=[];if("children"in e){const n=e.children;let r=-1;for(;++r0&&f.push({type:"text",value:" "});let e="string"===typeof n?n:n(s,c);"string"===typeof e&&(e={type:"text",value:e}),f.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+l+(c>1?"-"+c:""),dataFootnoteBackref:"",ariaLabel:"string"===typeof r?r:r(s,c),className:["data-footnote-backref"]},children:Array.isArray(e)?e:[e]})}const p=i[i.length-1];if(p&&"element"===p.type&&"p"===p.tagName){const e=p.children[p.children.length-1];e&&"text"===e.type?e.value+=" ":p.children.push({type:"text",value:" "}),p.children.push(...f)}else i.push(...f);const h={type:"element",tagName:"li",properties:{id:t+"fn-"+l},children:e.wrap(i,!0)};e.patch(o,h),u.push(h)}if(0!==u.length)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:i,properties:{...(0,at.ZP)(a),id:"footnote-label"},children:[{type:"text",value:o}]},{type:"text",value:"\n"},{type:"element",tagName:"ol",properties:{},children:e.wrap(u,!0)},{type:"text",value:"\n"}]}}(n),a=Array.isArray(r)?{type:"root",children:r}:r||{type:"root",children:[]};return i&&((0,o.ok)("children"in a),a.children.push({type:"text",value:"\n"},i)),a}function St(e,t){return e&&"run"in e?async function(n,r){const o=Ft(n,t);await e.run(o,r)}:function(n){return Ft(n,t||e)}}function At(e){if(e)throw e}var Tt=n(432);function Pt(e){if("object"!==typeof e||null===e)return!1;const t=Object.getPrototypeOf(e);return(null===t||t===Object.prototype||null===Object.getPrototypeOf(t))&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}function Ot(){const e=[],t={run:function(){for(var t=arguments.length,n=new Array(t),r=0;r1?s-1:0),c=1;co.length;let l;s&&o.push(i);try{l=e.apply(this,o)}catch(r){if(s&&n)throw r;return i(r)}s||(l instanceof Promise?l.then(a,i):l instanceof Error?i(l):a(l))}function i(e){if(!n){n=!0;for(var r=arguments.length,o=new Array(r>1?r-1:0),i=1;ie.length){for(;i--;)if(47===e.codePointAt(i)){if(n){r=i+1;break}}else o<0&&(n=!0,o=i+1);return o<0?"":e.slice(r,o)}if(t===e)return"";let a=-1,u=t.length-1;for(;i--;)if(47===e.codePointAt(i)){if(n){r=i+1;break}}else a<0&&(n=!0,a=i+1),u>-1&&(e.codePointAt(i)===t.codePointAt(u--)?u<0&&(o=i):(u=-1,o=a));r===o?o=a:o<0&&(o=e.length);return e.slice(r,o)},dirname:function(e){if(Bt(e),0===e.length)return".";let t,n=-1,r=e.length;for(;--r;)if(47===e.codePointAt(r)){if(t){n=r;break}}else t||(t=!0);return n<0?47===e.codePointAt(0)?"/":".":1===n&&47===e.codePointAt(0)?"//":e.slice(0,n)},extname:function(e){Bt(e);let t,n=e.length,r=-1,o=0,i=-1,a=0;for(;n--;){const u=e.codePointAt(n);if(47!==u)r<0&&(t=!0,r=n+1),46===u?i<0?i=n:1!==a&&(a=1):i>-1&&(a=-1);else if(t){o=n+1;break}}if(i<0||r<0||0===a||1===a&&i===r-1&&i===o+1)return"";return e.slice(i,r)},join:function(){let e,t=-1;for(var n=arguments.length,r=new Array(n),o=0;o2){if(r=o.lastIndexOf("/"),r!==o.length-1){r<0?(o="",i=0):(o=o.slice(0,r),i=o.length-1-o.lastIndexOf("/")),a=s,u=0;continue}}else if(o.length>0){o="",i=0,a=s,u=0;continue}t&&(o=o.length>0?o+"/..":"..",i=2)}else o.length>0?o+="/"+e.slice(a+1,s):o=e.slice(a+1,s),i=s-a-1;a=s,u=0}else 46===n&&u>-1?u++:u=-1}return o}(e,!t);0!==n.length||t||(n=".");n.length>0&&47===e.codePointAt(e.length-1)&&(n+="/");return t?"/"+n:n}(e)},sep:"/"};function Bt(e){if("string"!==typeof e)throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const Nt={cwd:function(){return"/"}};function Rt(e){return Boolean(null!==e&&"object"===typeof e&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&void 0===e.auth)}function It(e){if("string"===typeof e)e=new URL(e);else if(!Rt(e)){const t=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code="ERR_INVALID_ARG_TYPE",t}if("file:"!==e.protocol){const e=new TypeError("The URL must be of scheme file");throw e.code="ERR_INVALID_URL_SCHEME",e}return function(e){if(""!==e.hostname){const e=new TypeError('File URL host must be "localhost" or empty on darwin');throw e.code="ERR_INVALID_FILE_URL_HOST",e}const t=e.pathname;let n=-1;for(;++n1?r-1:0),i=1;i0){let[r,...i]=n;const a=t[o][1];Pt(a)&&Pt(r)&&(r=Tt(!0,a,r)),t[o]=[e,r,...i]}}}}const Wt=(new Vt).freeze();function $t(e,t){if("function"!==typeof t)throw new TypeError("Cannot `"+e+"` without `parser`")}function Zt(e,t){if("function"!==typeof t)throw new TypeError("Cannot `"+e+"` without `compiler`")}function Gt(e,t){if(t)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function Kt(e){if(!Pt(e)||"string"!==typeof e.type)throw new TypeError("Expected node, got `"+e+"`")}function Qt(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function Yt(e){return function(e){return Boolean(e&&"object"===typeof e&&"message"in e&&"messages"in e)}(e)?e:new _t(e)}const Jt="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",Xt=[],en={allowDangerousHtml:!0},tn=/^(https?|ircs?|mailto|xmpp)$/i,nn=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function rn(e){const t=e.allowedElements,n=e.allowElement,r=e.children||"",i=e.className,a=e.components,u=e.disallowedElements,s=e.rehypePlugins||Xt,l=e.remarkPlugins||Xt,c=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...en}:en,f=e.skipHtml,d=e.unwrapDisallowed,p=e.urlTransform||on,h=Wt().use(it).use(l).use(St,c).use(s),m=new _t;"string"===typeof r?m.value=r:(0,o.t1)("Unexpected value `"+r+"` for `children` prop, expected `string`"),t&&u&&(0,o.t1)("Unexpected combined `allowedElements` and `disallowedElements`, expected one or the other");for(const v of nn)Object.hasOwn(e,v.from)&&(0,o.t1)("Unexpected `"+v.from+"` prop, "+(v.to?"use `"+v.to+"` instead":"remove it")+" (see <"+Jt+"#"+v.id+"> for more info)");const g=h.parse(m);let y=h.runSync(g,m);return i&&(y={type:"element",tagName:"div",properties:{className:i},children:"root"===y.type?y.children:[y]}),(0,ct.Vn)(y,(function(e,r,o){if("raw"===e.type&&o&&"number"===typeof r)return f?o.children.splice(r,1):o.children[r]={type:"text",value:e.value},r;if("element"===e.type){let t;for(t in P)if(Object.hasOwn(P,t)&&Object.hasOwn(e.properties,t)){const n=e.properties[t],r=P[t];(null===r||r.includes(e.tagName))&&(e.properties[t]=p(String(n||""),t,e))}}if("element"===e.type){let i=t?!t.includes(e.tagName):!!u&&u.includes(e.tagName);if(!i&&n&&"number"===typeof r&&(i=!n(e,r,o)),i&&o&&"number"===typeof r)return d&&e.children?o.children.splice(r,1,...e.children):o.children.splice(r,1),r}})),E(y,{Fragment:O.Fragment,components:a,ignoreInvalidStyle:!0,jsx:O.jsx,jsxs:O.jsxs,passKeys:!0,passNode:!0})}function on(e){const t=e.indexOf(":"),n=e.indexOf("?"),r=e.indexOf("#"),o=e.indexOf("/");return t<0||o>-1&&t>o||n>-1&&t>n||r>-1&&t>r||tn.test(e.slice(0,t))?e:""}},7666:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});var r=n(655);const o=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>2?arguments[2]:void 0,n=arguments.length>3?arguments[3]:void 0,r=arguments.length>1?arguments[1]:void 0;for(;r/,"$2")||""))return;if(n){if(o(e,r,"pre",n))return;return t.value=(t.value||"").replace(/^(\n|\s)+/,""),t}return t.value=(t.value||"").replace(/^(\n|\s)+/,""),t}}},i=e=>{let{value:t=""}=e;const n=function(){return((arguments.length>0&&void 0!==arguments[0]?arguments[0]:"").match(/([^?=&]+)(=([^&]*))/g)||[]).reduce(((e,t)=>(e[t.slice(0,t.indexOf("="))]=t.slice(t.indexOf("=")+1),e)),{})}(t.replace(/^/,"$1").replace(/^rehype:/,""));return Object.keys(n).forEach((e=>{"true"===n[e]&&(n[e]=!0),"false"===n[e]&&(n[e]=!1),"string"!==typeof n[e]||/^0/.test(n[e])||isNaN(+n[e])||(n[e]=+n[e])})),n},a=(e,t,n)=>"string"===n?{...e,"data-config":JSON.stringify({...t,rehyp:!0})}:"attr"===n?{...e,...t}:{...e,"data-config":{...t,rehyp:!0}},u=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{properties:t="data",codeBlockParames:n=!0}=e;return e=>{(0,r.Vn)(e,"element",((e,r,u)=>{if(n&&"pre"===e.tagName&&e&&Array.isArray(e.children)&&u&&Array.isArray(u.children)&&u.children.length>1){const n=e.children[0];if(n&&"code"===n.tagName&&"number"===typeof r){const o=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0;for(;t>-1;){if(t--,!e[t])return;if(e[t]&&e[t].value&&""!==e[t].value.replace(/(\n|\s)/g,"")||"text"!==e[t].type){if(!/^rehype:/.test(e[t].value)||"comment"!==e[t].type)return;return e[t]}}}(u.children,r);if(o){const r=i(o);Object.keys(r).length>0&&(e.properties={...e.properties,"data-type":"rehyp"},n.properties=a(n.properties,r,t))}}}if(/^(em|strong|b|a|i|p|pre|kbd|blockquote|h(1|2|3|4|5|6)|code|table|img|del|ul|ol)$/.test(e.tagName)&&u&&Array.isArray(u.children)&&"number"===typeof r){const s=o(u.children,r,"",n);if(s){const n=i(s);Object.keys(n).length>0&&(e.properties=a(e.properties,n,t))}}}))}}},1906:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(4621),o=n(1886);const i=function(e){if(null===e||void 0===e)return u;if("string"===typeof e)return function(e){return a(t);function t(t){return t.tagName===e}}(e);if("object"===typeof e)return function(e){const t=[];let n=-1;for(;++n{"use strict";n.d(t,{Z:()=>o});var r=n(655);const o=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{openDelimiter:t="rehype:ignore:start",closeDelimiter:n="rehype:ignore:end"}=e;return e=>{(0,r.Vn)(e,((e,r,o)=>{if("element"===e.type||"root"===e.type){let r=!1;e.children=e.children.filter((e=>{if("raw"===e.type||"comment"===e.type){let o=(e.value||"").trim();if(o=o.replace(/^/,"$1"),o===t)return r=!0,!1;if(o===n)return r=!1,!1}return!r}))}}))}}},8437:(e,t,n)=>{"use strict";n.d(t,{ZP:()=>D});const r=function(e){if(void 0===e||null===e)return i;if("string"===typeof e)return function(e){return o(t);function t(t){return t&&t.type===e}}(e);if("object"===typeof e)return Array.isArray(e)?function(e){const t=[];let n=-1;for(;++n1?n-1:0),o=1;o":"")+")"})}return c;function c(){let l,c,f,d=[];if((!t||i(r,u,s[s.length-1]||null))&&(d=function(e){if(Array.isArray(e))return e;if("number"===typeof e)return[true,e];return[e]}(n(r,s)),false===d[0]))return d;if(r.children&&"skip"!==d[0])for(c=(o?r.children.length:-1)+a,f=s.concat(r);c>-1&&c1?n-1:0),o=1;o]+)>/g,(function(e,t){var n=i[t];return"$"+(Array.isArray(n)?n.join("$"):n)})))}if("function"==typeof o){var a=this;return e[Symbol.replace].call(this,n,(function(){var e=arguments;return"object"!=typeof e[e.length-1]&&(e=[].slice.call(e)).push(r(e,a)),o.apply(this,e)}))}return e[Symbol.replace].call(this,n,o)},y.apply(this,arguments)}function v(e,t){return v=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},v(e,t)}function b(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var k=function(e){return function(t){return void 0===t&&(t={}),function(e,t){if(t&&!e.registered(t))throw new Error('The default language "'+t+'" is not registered with refractor.')}(e,t.defaultLanguage),function(e){var t,r,o;r=n,"function"===typeof(t="element")&&"function"!==typeof r&&(o=r,r=t,t=null),a(e,t,(function(e,t){const n=t[t.length-1];return r(e,n?n.children.indexOf(e):null,n)}),o)};function n(n,r,o){var i,a;if(o&&"pre"===o.tagName&&"code"===n.tagName){var s=(null==n||null==(i=n.data)?void 0:i.meta)||(null==n||null==(a=n.properties)?void 0:a.metastring)||"";n.properties.className?"boolean"==typeof n.properties.className?n.properties.className=[]:Array.isArray(n.properties.className)||(n.properties.className=[n.properties.className]):n.properties.className=[];var l,f,d=function(e){for(var t,n=x(e.properties.className);!(t=n()).done;){var r=t.value;if("language-"===r.slice(0,9))return r.slice(9).toLowerCase()}return null}(n);if(!d&&t.defaultLanguage&&n.properties.className.push("language-"+(d=t.defaultLanguage)),n.properties.className.push("code-highlight"),d)try{var m,g;g=null!=(m=d)&&m.includes("diff-")?d.split("-")[1]:d,l=e.highlight(u(n),g),o.properties.className=(o.properties.className||[]).concat("language-"+g)}catch(F){if(!t.ignoreMissing||!/Unknown language/.test(F.message))throw F;l=n}else l=n;l.children=(f=1,function e(t){return t.reduce((function(t,n){if("text"===n.type){var r=n.value,o=(r.match(/\n/g)||"").length;if(0===o)n.position={start:{line:f,column:1},end:{line:f,column:1}},t.push(n);else for(var i,a=r.split("\n"),u=x(a.entries());!(i=u()).done;){var s=i.value,l=s[0],c=s[1];t.push({type:"text",value:l===a.length-1?c:c+"\n",position:{start:{line:f+l,column:1},end:{line:f+l,column:1}}})}return f+=o,t}if(Object.prototype.hasOwnProperty.call(n,"children")){var d=f;return n.children=e(n.children),t.push(n),n.position={start:{line:d,column:1},end:{line:f,column:1}},t}return t.push(n),t}),[])})(l.children),l.position=l.children.length>0?{start:{line:l.children[0].position.start.line,column:0},end:{line:l.children[l.children.length-1].position.end.line,column:0}}:{start:{line:0,column:0},end:{line:0,column:0}};for(var v,b=function(e){var t=/{([\d,-]+)}/,n=e.split(",").map((function(e){return e.trim()})).join();if(t.test(n)){var r=t.exec(n)[1],o=h(r);return function(e){return o.includes(e+1)}}return function(){return!1}}(s),k=function(e){var t=y(/showLineNumbers=(\d+)/i,{lines:1});if(t.test(e)){var n=t.exec(e);return Number(n.groups.lines)}return 1}(s),D=function(e){for(var t=new Array(e),n=0;n0&&0===a.length)return null}const u={};let s;for(s in t)p.call(t,s)&&(u[s]="children"===s?a:t[s]);return u}(e)}(l,(function(e){return e.position.start.line<=o+1&&e.position.end.line>=o+1}));i.children=a.children,!s.toLowerCase().includes("showLineNumbers".toLowerCase())&&!t.showLineNumbers||w.some((function(e){return s.toLowerCase().includes(e)}))||(i.properties.line=[(o+k).toString()],i.properties.className.push("line-number")),b(o)&&i.properties.className.push("highlight-line"),("diff"===d||null!=(e=d)&&e.includes("diff-"))&&"-"===u(i).substring(0,1)?i.properties.className.push("deleted"):("diff"===d||null!=(n=d)&&n.includes("diff-"))&&"+"===u(i).substring(0,1)&&i.properties.className.push("inserted")},C=x(D.entries());!(v=C()).done;)E();D.length>0&&""===u(D[D.length-1]).trim()&&D.pop(),n.children=D}}}},D=(k(m.$),k(g.$))},320:(e,t,n)=>{"use strict";n.d(t,{Z:()=>ne});var r=n(4621),o=n(2337),i=n(9314),a=n(1064);const u=/[#.]/g;var s=n(5077),l=n(9627),c=n(103);const f=new Set(["button","menu","reset","submit"]),d={}.hasOwnProperty;function p(e,t,n){const r=n&&function(e){const t={};let n=-1;for(;++n2?s-2:0),c=2;c-1&&ee)return{line:t+1,column:e-(t>0?n[t-1]:0)+1,offset:e}},toOffset:function(e){const t=e&&e.line,r=e&&e.column;if("number"===typeof t&&"number"===typeof r&&!Number.isNaN(t)&&!Number.isNaN(r)&&t-1 in n){const e=(n[t-2]||0)+r-1||0;if(e>-1&&e{"use strict";n.d(t,{Z:()=>Re,U:()=>Ne});var r=n(655),o=n(9314),i={},a={};function u(e,t){for(var n=t,r=0;r","+"],attributes:{unknownCaseSensitivityModifiers:"reject",operators:["=","~=","|="]},pseudoElements:{definitions:["before","after"]},pseudoClasses:{unknown:"reject",definitions:{NoArgument:["hover","focus","first-child"],String:["lang"]}}}),S=E(F,{namespace:{wildcard:!0},combinators:["~"],attributes:{operators:["^=","$=","*="]},pseudoElements:{notation:"both"},pseudoClasses:{definitions:{NoArgument:["root","last-child","first-of-type","last-of-type","only-child","only-of-type","empty","target","enabled","disabled","checked","indeterminate"],Formula:["nth-child","nth-last-child","nth-of-type","nth-last-of-type"],Selector:["not"]}}}),A=E(S,{combinators:["||"],attributes:{caseSensitivityModifiers:["i","I","s","S"]},pseudoClasses:{definitions:{NoArgument:["any-link","local-link","target-within","scope","current","past","future","focus-within","focus-visible","read-write","read-only","placeholder-shown","default","valid","invalid","in-range","out-of-range","required","optional","blank","user-invalid"],Formula:["nth-col","nth-last-col"],String:["dir"],FormulaOfSelector:["nth-child","nth-last-child"],Selector:["current","is","where","has"]}}}),T={css1:C,css2:F,css3:S,"selectors-3":S,"selectors-4":A,latest:A,progressive:E(A,{pseudoElements:{unknown:"accept"},pseudoClasses:{unknown:"accept"},attributes:{unknownCaseSensitivityModifiers:"accept"}})};function P(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"||"-"===e||"_"===e||"\\"===e}function O(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"||e>="0"&&e<="9"||"-"===e||"_"===e}function L(e){return e>="a"&&e<="f"||e>="A"&&e<="F"||e>="0"&&e<="9"}var B={n:"\n",r:"\r",t:"\t",f:"\f","\\":"\\"},N={" ":!0,"\t":!0,"\n":!0,"\r":!0,"\f":!0},R={'"':!0,"'":!0},I={0:!0,1:!0,2:!0,3:!0,4:!0,5:!0,6:!0,7:!0,8:!0,9:!0};var j="css-selector-parser parse error: ";var _=function(){return _=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0,q=d.pseudoClasses?[!0,d.pseudoClasses.definitions?p(d.pseudoClasses.definitions):c,"accept"===d.pseudoClasses.unknown]:[!1,c,!1],H=q[0],V=q[1],W=q[2],$=d.pseudoElements?[!0,"singleColon"===d.pseudoElements.notation||"both"===d.pseudoElements.notation,!d.pseudoElements.notation||"doubleColon"===d.pseudoElements.notation||"both"===d.pseudoElements.notation,d.pseudoElements.definitions?p(Array.isArray(d.pseudoElements.definitions)?{NoArgument:d.pseudoElements.definitions}:d.pseudoElements.definitions):c,"accept"===d.pseudoElements.unknown]:[!1,!1,!1,c,!1],Z=$[0],G=$[1],K=$[2],Q=$[3],Y=$[4],J="",X=J.length,ee=0,te="",ne=function(e){return te===e},re=function(){return ne("*")||P(te)},oe=function(e){ee=e,te=J.charAt(ee)},ie=function(){ee++,te=J.charAt(ee)},ae=function(){var e=te;return ee++,te=J.charAt(ee),e};function ue(e){var t=Math.min(X-1,ee),n=new Error("".concat(j).concat(e," Pos: ").concat(t,"."));throw n.position=t,n.name="ParserError",n}function se(e,t){if(!e)return ue(t)}var le=function(){se(ee=X},fe=function(e){se(ee0)return(t.commaSeparated?Q.P:X.P)(e)}}(t.properties[r.property],r);if(!e.value)return void 0!==o;(0,Y.ok)("String"===e.value.type,"expected plain string");let i=e.value.value;if("i"===e.caseSensitivityModifier&&(i=i.toLowerCase(),o&&(o=o.toLowerCase())),void 0!==o)switch(e.operator){case"=":return i===o;case"$=":return i===o.slice(-i.length);case"*=":return o.includes(i);case"^=":return i===o.slice(0,i.length);case"|=":return i===o||i===o.slice(0,i.length)&&"-"===o.charAt(i.length);case"~=":return i===o||X.Q(o).includes(i)}return!1}const te=[];function ne(e,t){return(t.properties.className||te).includes(e.name)}function re(e,t){return t.properties.id===e.name}function oe(e,t){return e.name===t.tagName}function ie(e,t){return function(n,r){let o=ue(n,"tag");const i=ue(null===r||void 0===r?"*":r,"range"),a=[];let u=-1;for(;++ue<=n;if(0===t)return e=>e===n;if(1===t)return n<0?he.trueFunc:e=>e>=n;const r=Math.abs(t),o=(n%r+r)%r;return t>1?e=>e>=n&&e%r===o:e=>e<=n&&e%r===o}(function(e){if("even"===(e=e.trim().toLowerCase()))return[2,0];if("odd"===e)return[2,1];let t=0,n=0,r=i(),o=a();if(t=de&&e.charCodeAt(t)<=pe;)r=10*r+(e.charCodeAt(t)-de),t++;return t===n?null:r}function u(){for(;t0},is:De,lang:function(e,t,n,r,o){return(0,Y.ok)(e.argument,"expected `argument`"),(0,Y.ok)("String"===e.argument.type,"expected string"),""!==o.language&&void 0!==o.language&&ae(o.language,(0,Q.Q)(e.argument.value)).length>0},"last-child":function(e,t,n,r,o){return be(o,e),Boolean(o.elementCount&&o.elementIndex===o.elementCount-1)},"last-of-type":function(e,t,n,r,o){return be(o,e),"number"===typeof o.typeIndex&&"number"===typeof o.typeCount&&o.typeIndex===o.typeCount-1},not:function(e,t,n,r,o){return!De(e,t,n,r,o)},"nth-child":function(e,t,n,r,o){const i=ke(e);return be(o,e),"number"===typeof o.elementIndex&&i(o.elementIndex)},"nth-last-child":function(e,t,n,r,o){const i=ke(e);return be(o,e),Boolean("number"===typeof o.elementCount&&"number"===typeof o.elementIndex&&i(o.elementCount-o.elementIndex-1))},"nth-last-of-type":function(e,t,n,r,o){const i=ke(e);return be(o,e),"number"===typeof o.typeCount&&"number"===typeof o.typeIndex&&i(o.typeCount-1-o.typeIndex)},"nth-of-type":function(e,t,n,r,o){const i=ke(e);return be(o,e),"number"===typeof o.typeIndex&&i(o.typeIndex)},"only-child":function(e,t,n,r,o){return be(o,e),1===o.elementCount},"only-of-type":function(e,t,n,r,o){return be(o,e),1===o.typeCount},optional:function(e,t){return!Ee(e,t)},"read-only":function(e,t,n,r,o){return!we(e,t,n,r,o)},"read-write":we,required:Ee,root:function(e,t,n,r,o){return Boolean((!r||"root"===r.type)&&o.schema&&("html"===o.schema.space||"svg"===o.schema.space)&&("html"===t.tagName||"svg"===t.tagName))},scope:function(e,t,n,r,o){return o.scopeElements.includes(t)}},invalid:function(){(0,Y.t1)("Invalid pseudo-selector")},unknown:function(e){throw new Error("Unknown pseudo-selector `"+e.name+"`")}});function be(e,t){if(e.shallow)throw new Error("Cannot use `:"+t.name+"` without parent")}function xe(e,t){return("button"===t.tagName||"input"===t.tagName||"select"===t.tagName||"textarea"===t.tagName||"optgroup"===t.tagName||"option"===t.tagName||"menuitem"===t.tagName||"fieldset"===t.tagName)&&le(t,"disabled")}function ke(e){let t=e._cachedFn;if(!t){const n=e.argument;if((0,Y.ok)(n,"expected `argument`"),"Formula"!==n.type)throw new Error("Expected `nth` formula, such as `even` or `2n+1` (`of` is not yet supported)");t=ye(n.a+"n+"+n.b),e._cachedFn=t}return t}function De(e,t,n,r,o){(0,Y.ok)(e.argument,"expected `argument`"),(0,Y.ok)("Selector"===e.argument.type,"expected selector");const i={...o,found:!1,one:!0,results:[],rootQuery:e.argument,scopeElements:[t],shallow:!1};return Ae(i,t),i.results[0]===t}function we(e,t,n,r,o){return"input"===t.tagName||"textarea"===t.tagName?!le(t,"readOnly")&&!le(t,"disabled"):Boolean(o.editableOrEditingHost)}function Ee(e,t){return("input"===t.tagName||"textarea"===t.tagName||"select"===t.tagName)&&le(t,"required")}function Ce(e,t){const n=e.children;let r=-1;for(;++r0&&t.length>0?[...e,...t]:e&&e.length>0?e:t&&t.length>0?t:Se}function Oe(e,t){if("element"===t.type){const n=t.tagName.toUpperCase(),r=(e.types.get(n)||0)+1;e.count++,e.types.set(n,r)}}function Le(e,t,n,i,a,u){let s={adjacentSibling:void 0,descendant:void 0,directChild:void 0,generalSibling:void 0};const l=function(e,t){const n=e.schema,i=e.language,a=e.direction,u=e.editableOrEditingHost;let s;if("element"===t.type){const i=t.properties.xmlLang||t.properties.lang,a=t.properties.type||"text",u=K(t);null!==i&&void 0!==i&&(e.language=String(i)),n&&"html"===n.space?("true"===t.properties.contentEditable&&(e.editableOrEditingHost=!0),"svg"===t.tagName&&(e.schema=o.YP),"rtl"===u?s=u:"ltr"===u||"auto"!==u&&"html"===t.tagName||"auto"!==u&&"input"===t.tagName&&"tel"===a?s="ltr":"auto"!==u&&"bdi"!==t.tagName||("textarea"===t.tagName?s=G((0,$.B)(t)):"input"!==t.tagName||"email"!==a&&"search"!==a&&"tel"!==a&&"text"!==a?(0,r.Vn)(t,(function(e){return"text"===e.type?(s=G(e.value),s?Z.BK:void 0):e===t||"element"!==e.type||"bdi"!==e.tagName&&"script"!==e.tagName&&"style"!==e.tagName&&"textare"!==e.tagName&&!K(e)?void 0:Z.AM})):s=t.properties.value?G(String(t.properties.value)):"ltr"),s&&(e.direction=s)):e.editableOrEditingHost&&(e.editableOrEditingHost=!1)}return function(){e.schema=n,e.language=i,e.direction=a,e.editableOrEditingHost=u}}(e,n);if("element"===n.type){let r=e.rootQuery.rules;a&&a!==u&&(r=e.rootQuery.rules.filter((e=>void 0===e.combinator||">"===e.combinator&&a===u))),s=function(e,t,n,r,o){const i={adjacentSibling:void 0,descendant:void 0,directChild:void 0,generalSibling:void 0};let a=-1;for(;++a"===t.combinator?"directChild":"descendant",t):(e.found=!0,e.results.includes(n)||e.results.push(n))}void 0===u.combinator?Te(i,"descendant",u):"~"===u.combinator&&Te(i,"generalSibling",u)}return i}(e,Pe(t,r),n,i,a)}return!("children"in n)||e.shallow||e.one&&e.found||function(e,t,n,r){const o=Pe(t.descendant,t.directChild);let i,a=-1;const u={count:0,types:new Map},s={count:0,types:new Map};for(;++a1&&void 0!==arguments[1]?arguments[1]:"";return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).forEach((t=>{"text"===t.type?e+=t.value:"element"===t.type&&t.children&&Array.isArray(t.children)&&(e+=Ne(t.children))})),e},Re=e=>{const{selector:t,rewrite:n}=e||{};return e=>{if(n&&"function"===typeof n)if(t&&"string"===typeof t){const o=function(e,t,n){const r=Be(e,t,n);return Ae(r,t||void 0),r.results}(t,e);o&&o.length>0&&(0,r.Vn)(e,o,((e,t,r)=>{n(e,t,r)}))}else(0,r.Vn)(e,((e,t,r)=>{n(e,t,r)}))}}},2758:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});const r=/[\0-\x1F!-,\.\/:-@\[-\^`\{-\xA9\xAB-\xB4\xB6-\xB9\xBB-\xBF\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0378\u0379\u037E\u0380-\u0385\u0387\u038B\u038D\u03A2\u03F6\u0482\u0530\u0557\u0558\u055A-\u055F\u0589-\u0590\u05BE\u05C0\u05C3\u05C6\u05C8-\u05CF\u05EB-\u05EE\u05F3-\u060F\u061B-\u061F\u066A-\u066D\u06D4\u06DD\u06DE\u06E9\u06FD\u06FE\u0700-\u070F\u074B\u074C\u07B2-\u07BF\u07F6-\u07F9\u07FB\u07FC\u07FE\u07FF\u082E-\u083F\u085C-\u085F\u086B-\u089F\u08B5\u08C8-\u08D2\u08E2\u0964\u0965\u0970\u0984\u098D\u098E\u0991\u0992\u09A9\u09B1\u09B3-\u09B5\u09BA\u09BB\u09C5\u09C6\u09C9\u09CA\u09CF-\u09D6\u09D8-\u09DB\u09DE\u09E4\u09E5\u09F2-\u09FB\u09FD\u09FF\u0A00\u0A04\u0A0B-\u0A0E\u0A11\u0A12\u0A29\u0A31\u0A34\u0A37\u0A3A\u0A3B\u0A3D\u0A43-\u0A46\u0A49\u0A4A\u0A4E-\u0A50\u0A52-\u0A58\u0A5D\u0A5F-\u0A65\u0A76-\u0A80\u0A84\u0A8E\u0A92\u0AA9\u0AB1\u0AB4\u0ABA\u0ABB\u0AC6\u0ACA\u0ACE\u0ACF\u0AD1-\u0ADF\u0AE4\u0AE5\u0AF0-\u0AF8\u0B00\u0B04\u0B0D\u0B0E\u0B11\u0B12\u0B29\u0B31\u0B34\u0B3A\u0B3B\u0B45\u0B46\u0B49\u0B4A\u0B4E-\u0B54\u0B58-\u0B5B\u0B5E\u0B64\u0B65\u0B70\u0B72-\u0B81\u0B84\u0B8B-\u0B8D\u0B91\u0B96-\u0B98\u0B9B\u0B9D\u0BA0-\u0BA2\u0BA5-\u0BA7\u0BAB-\u0BAD\u0BBA-\u0BBD\u0BC3-\u0BC5\u0BC9\u0BCE\u0BCF\u0BD1-\u0BD6\u0BD8-\u0BE5\u0BF0-\u0BFF\u0C0D\u0C11\u0C29\u0C3A-\u0C3C\u0C45\u0C49\u0C4E-\u0C54\u0C57\u0C5B-\u0C5F\u0C64\u0C65\u0C70-\u0C7F\u0C84\u0C8D\u0C91\u0CA9\u0CB4\u0CBA\u0CBB\u0CC5\u0CC9\u0CCE-\u0CD4\u0CD7-\u0CDD\u0CDF\u0CE4\u0CE5\u0CF0\u0CF3-\u0CFF\u0D0D\u0D11\u0D45\u0D49\u0D4F-\u0D53\u0D58-\u0D5E\u0D64\u0D65\u0D70-\u0D79\u0D80\u0D84\u0D97-\u0D99\u0DB2\u0DBC\u0DBE\u0DBF\u0DC7-\u0DC9\u0DCB-\u0DCE\u0DD5\u0DD7\u0DE0-\u0DE5\u0DF0\u0DF1\u0DF4-\u0E00\u0E3B-\u0E3F\u0E4F\u0E5A-\u0E80\u0E83\u0E85\u0E8B\u0EA4\u0EA6\u0EBE\u0EBF\u0EC5\u0EC7\u0ECE\u0ECF\u0EDA\u0EDB\u0EE0-\u0EFF\u0F01-\u0F17\u0F1A-\u0F1F\u0F2A-\u0F34\u0F36\u0F38\u0F3A-\u0F3D\u0F48\u0F6D-\u0F70\u0F85\u0F98\u0FBD-\u0FC5\u0FC7-\u0FFF\u104A-\u104F\u109E\u109F\u10C6\u10C8-\u10CC\u10CE\u10CF\u10FB\u1249\u124E\u124F\u1257\u1259\u125E\u125F\u1289\u128E\u128F\u12B1\u12B6\u12B7\u12BF\u12C1\u12C6\u12C7\u12D7\u1311\u1316\u1317\u135B\u135C\u1360-\u137F\u1390-\u139F\u13F6\u13F7\u13FE-\u1400\u166D\u166E\u1680\u169B-\u169F\u16EB-\u16ED\u16F9-\u16FF\u170D\u1715-\u171F\u1735-\u173F\u1754-\u175F\u176D\u1771\u1774-\u177F\u17D4-\u17D6\u17D8-\u17DB\u17DE\u17DF\u17EA-\u180A\u180E\u180F\u181A-\u181F\u1879-\u187F\u18AB-\u18AF\u18F6-\u18FF\u191F\u192C-\u192F\u193C-\u1945\u196E\u196F\u1975-\u197F\u19AC-\u19AF\u19CA-\u19CF\u19DA-\u19FF\u1A1C-\u1A1F\u1A5F\u1A7D\u1A7E\u1A8A-\u1A8F\u1A9A-\u1AA6\u1AA8-\u1AAF\u1AC1-\u1AFF\u1B4C-\u1B4F\u1B5A-\u1B6A\u1B74-\u1B7F\u1BF4-\u1BFF\u1C38-\u1C3F\u1C4A-\u1C4C\u1C7E\u1C7F\u1C89-\u1C8F\u1CBB\u1CBC\u1CC0-\u1CCF\u1CD3\u1CFB-\u1CFF\u1DFA\u1F16\u1F17\u1F1E\u1F1F\u1F46\u1F47\u1F4E\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E\u1F7F\u1FB5\u1FBD\u1FBF-\u1FC1\u1FC5\u1FCD-\u1FCF\u1FD4\u1FD5\u1FDC-\u1FDF\u1FED-\u1FF1\u1FF5\u1FFD-\u203E\u2041-\u2053\u2055-\u2070\u2072-\u207E\u2080-\u208F\u209D-\u20CF\u20F1-\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F-\u215F\u2189-\u24B5\u24EA-\u2BFF\u2C2F\u2C5F\u2CE5-\u2CEA\u2CF4-\u2CFF\u2D26\u2D28-\u2D2C\u2D2E\u2D2F\u2D68-\u2D6E\u2D70-\u2D7E\u2D97-\u2D9F\u2DA7\u2DAF\u2DB7\u2DBF\u2DC7\u2DCF\u2DD7\u2DDF\u2E00-\u2E2E\u2E30-\u3004\u3008-\u3020\u3030\u3036\u3037\u303D-\u3040\u3097\u3098\u309B\u309C\u30A0\u30FB\u3100-\u3104\u3130\u318F-\u319F\u31C0-\u31EF\u3200-\u33FF\u4DC0-\u4DFF\u9FFD-\u9FFF\uA48D-\uA4CF\uA4FE\uA4FF\uA60D-\uA60F\uA62C-\uA63F\uA673\uA67E\uA6F2-\uA716\uA720\uA721\uA789\uA78A\uA7C0\uA7C1\uA7CB-\uA7F4\uA828-\uA82B\uA82D-\uA83F\uA874-\uA87F\uA8C6-\uA8CF\uA8DA-\uA8DF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA954-\uA95F\uA97D-\uA97F\uA9C1-\uA9CE\uA9DA-\uA9DF\uA9FF\uAA37-\uAA3F\uAA4E\uAA4F\uAA5A-\uAA5F\uAA77-\uAA79\uAAC3-\uAADA\uAADE\uAADF\uAAF0\uAAF1\uAAF7-\uAB00\uAB07\uAB08\uAB0F\uAB10\uAB17-\uAB1F\uAB27\uAB2F\uAB5B\uAB6A-\uAB6F\uABEB\uABEE\uABEF\uABFA-\uABFF\uD7A4-\uD7AF\uD7C7-\uD7CA\uD7FC-\uD7FF\uE000-\uF8FF\uFA6E\uFA6F\uFADA-\uFAFF\uFB07-\uFB12\uFB18-\uFB1C\uFB29\uFB37\uFB3D\uFB3F\uFB42\uFB45\uFBB2-\uFBD2\uFD3E-\uFD4F\uFD90\uFD91\uFDC8-\uFDEF\uFDFC-\uFDFF\uFE10-\uFE1F\uFE30-\uFE32\uFE35-\uFE4C\uFE50-\uFE6F\uFE75\uFEFD-\uFF0F\uFF1A-\uFF20\uFF3B-\uFF3E\uFF40\uFF5B-\uFF65\uFFBF-\uFFC1\uFFC8\uFFC9\uFFD0\uFFD1\uFFD8\uFFD9\uFFDD-\uFFFF]|\uD800[\uDC0C\uDC27\uDC3B\uDC3E\uDC4E\uDC4F\uDC5E-\uDC7F\uDCFB-\uDD3F\uDD75-\uDDFC\uDDFE-\uDE7F\uDE9D-\uDE9F\uDED1-\uDEDF\uDEE1-\uDEFF\uDF20-\uDF2C\uDF4B-\uDF4F\uDF7B-\uDF7F\uDF9E\uDF9F\uDFC4-\uDFC7\uDFD0\uDFD6-\uDFFF]|\uD801[\uDC9E\uDC9F\uDCAA-\uDCAF\uDCD4-\uDCD7\uDCFC-\uDCFF\uDD28-\uDD2F\uDD64-\uDDFF\uDF37-\uDF3F\uDF56-\uDF5F\uDF68-\uDFFF]|\uD802[\uDC06\uDC07\uDC09\uDC36\uDC39-\uDC3B\uDC3D\uDC3E\uDC56-\uDC5F\uDC77-\uDC7F\uDC9F-\uDCDF\uDCF3\uDCF6-\uDCFF\uDD16-\uDD1F\uDD3A-\uDD7F\uDDB8-\uDDBD\uDDC0-\uDDFF\uDE04\uDE07-\uDE0B\uDE14\uDE18\uDE36\uDE37\uDE3B-\uDE3E\uDE40-\uDE5F\uDE7D-\uDE7F\uDE9D-\uDEBF\uDEC8\uDEE7-\uDEFF\uDF36-\uDF3F\uDF56-\uDF5F\uDF73-\uDF7F\uDF92-\uDFFF]|\uD803[\uDC49-\uDC7F\uDCB3-\uDCBF\uDCF3-\uDCFF\uDD28-\uDD2F\uDD3A-\uDE7F\uDEAA\uDEAD-\uDEAF\uDEB2-\uDEFF\uDF1D-\uDF26\uDF28-\uDF2F\uDF51-\uDFAF\uDFC5-\uDFDF\uDFF7-\uDFFF]|\uD804[\uDC47-\uDC65\uDC70-\uDC7E\uDCBB-\uDCCF\uDCE9-\uDCEF\uDCFA-\uDCFF\uDD35\uDD40-\uDD43\uDD48-\uDD4F\uDD74\uDD75\uDD77-\uDD7F\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDFF\uDE12\uDE38-\uDE3D\uDE3F-\uDE7F\uDE87\uDE89\uDE8E\uDE9E\uDEA9-\uDEAF\uDEEB-\uDEEF\uDEFA-\uDEFF\uDF04\uDF0D\uDF0E\uDF11\uDF12\uDF29\uDF31\uDF34\uDF3A\uDF45\uDF46\uDF49\uDF4A\uDF4E\uDF4F\uDF51-\uDF56\uDF58-\uDF5C\uDF64\uDF65\uDF6D-\uDF6F\uDF75-\uDFFF]|\uD805[\uDC4B-\uDC4F\uDC5A-\uDC5D\uDC62-\uDC7F\uDCC6\uDCC8-\uDCCF\uDCDA-\uDD7F\uDDB6\uDDB7\uDDC1-\uDDD7\uDDDE-\uDDFF\uDE41-\uDE43\uDE45-\uDE4F\uDE5A-\uDE7F\uDEB9-\uDEBF\uDECA-\uDEFF\uDF1B\uDF1C\uDF2C-\uDF2F\uDF3A-\uDFFF]|\uD806[\uDC3B-\uDC9F\uDCEA-\uDCFE\uDD07\uDD08\uDD0A\uDD0B\uDD14\uDD17\uDD36\uDD39\uDD3A\uDD44-\uDD4F\uDD5A-\uDD9F\uDDA8\uDDA9\uDDD8\uDDD9\uDDE2\uDDE5-\uDDFF\uDE3F-\uDE46\uDE48-\uDE4F\uDE9A-\uDE9C\uDE9E-\uDEBF\uDEF9-\uDFFF]|\uD807[\uDC09\uDC37\uDC41-\uDC4F\uDC5A-\uDC71\uDC90\uDC91\uDCA8\uDCB7-\uDCFF\uDD07\uDD0A\uDD37-\uDD39\uDD3B\uDD3E\uDD48-\uDD4F\uDD5A-\uDD5F\uDD66\uDD69\uDD8F\uDD92\uDD99-\uDD9F\uDDAA-\uDEDF\uDEF7-\uDFAF\uDFB1-\uDFFF]|\uD808[\uDF9A-\uDFFF]|\uD809[\uDC6F-\uDC7F\uDD44-\uDFFF]|[\uD80A\uD80B\uD80E-\uD810\uD812-\uD819\uD824-\uD82B\uD82D\uD82E\uD830-\uD833\uD837\uD839\uD83D\uD83F\uD87B-\uD87D\uD87F\uD885-\uDB3F\uDB41-\uDBFF][\uDC00-\uDFFF]|\uD80D[\uDC2F-\uDFFF]|\uD811[\uDE47-\uDFFF]|\uD81A[\uDE39-\uDE3F\uDE5F\uDE6A-\uDECF\uDEEE\uDEEF\uDEF5-\uDEFF\uDF37-\uDF3F\uDF44-\uDF4F\uDF5A-\uDF62\uDF78-\uDF7C\uDF90-\uDFFF]|\uD81B[\uDC00-\uDE3F\uDE80-\uDEFF\uDF4B-\uDF4E\uDF88-\uDF8E\uDFA0-\uDFDF\uDFE2\uDFE5-\uDFEF\uDFF2-\uDFFF]|\uD821[\uDFF8-\uDFFF]|\uD823[\uDCD6-\uDCFF\uDD09-\uDFFF]|\uD82C[\uDD1F-\uDD4F\uDD53-\uDD63\uDD68-\uDD6F\uDEFC-\uDFFF]|\uD82F[\uDC6B-\uDC6F\uDC7D-\uDC7F\uDC89-\uDC8F\uDC9A-\uDC9C\uDC9F-\uDFFF]|\uD834[\uDC00-\uDD64\uDD6A-\uDD6C\uDD73-\uDD7A\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDE41\uDE45-\uDFFF]|\uD835[\uDC55\uDC9D\uDCA0\uDCA1\uDCA3\uDCA4\uDCA7\uDCA8\uDCAD\uDCBA\uDCBC\uDCC4\uDD06\uDD0B\uDD0C\uDD15\uDD1D\uDD3A\uDD3F\uDD45\uDD47-\uDD49\uDD51\uDEA6\uDEA7\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3\uDFCC\uDFCD]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85-\uDE9A\uDEA0\uDEB0-\uDFFF]|\uD838[\uDC07\uDC19\uDC1A\uDC22\uDC25\uDC2B-\uDCFF\uDD2D-\uDD2F\uDD3E\uDD3F\uDD4A-\uDD4D\uDD4F-\uDEBF\uDEFA-\uDFFF]|\uD83A[\uDCC5-\uDCCF\uDCD7-\uDCFF\uDD4C-\uDD4F\uDD5A-\uDFFF]|\uD83B[\uDC00-\uDDFF\uDE04\uDE20\uDE23\uDE25\uDE26\uDE28\uDE33\uDE38\uDE3A\uDE3C-\uDE41\uDE43-\uDE46\uDE48\uDE4A\uDE4C\uDE50\uDE53\uDE55\uDE56\uDE58\uDE5A\uDE5C\uDE5E\uDE60\uDE63\uDE65\uDE66\uDE6B\uDE73\uDE78\uDE7D\uDE7F\uDE8A\uDE9C-\uDEA0\uDEA4\uDEAA\uDEBC-\uDFFF]|\uD83C[\uDC00-\uDD2F\uDD4A-\uDD4F\uDD6A-\uDD6F\uDD8A-\uDFFF]|\uD83E[\uDC00-\uDFEF\uDFFA-\uDFFF]|\uD869[\uDEDE-\uDEFF]|\uD86D[\uDF35-\uDF3F]|\uD86E[\uDC1E\uDC1F]|\uD873[\uDEA2-\uDEAF]|\uD87A[\uDFE1-\uDFFF]|\uD87E[\uDE1E-\uDFFF]|\uD884[\uDF4B-\uDFFF]|\uDB40[\uDC00-\uDCFF\uDDF0-\uDFFF]/g,o=Object.hasOwnProperty;var i=n(1886),a=n(7834),u=n(655);const s={},l=new class{constructor(){this.occurrences,this.reset()}slug(e,t){const n=this;let i=function(e,t){if("string"!==typeof e)return"";t||(e=e.toLowerCase());return e.replace(r,"").replace(/ /g,"-")}(e,!0===t);const a=i;for(;o.call(n.occurrences,i);)n.occurrences[a]++,i=a+"-"+n.occurrences[a];return n.occurrences[i]=0,i}reset(){this.occurrences=Object.create(null)}};function c(e){const t=(e||s).prefix||"";return function(e){l.reset(),(0,u.Vn)(e,"element",(function(e){(0,i.B)(e)&&!e.properties.id&&(e.properties.id=t+l.slug((0,a.B)(e)))}))}}},5541:(e,t,n)=>{"use strict";function r(e,t){const n=String(e);if("string"!==typeof t)throw new TypeError("Expected character");let r=0,o=n.indexOf(t);for(;-1!==o;)r++,o=n.indexOf(t,o+t.length);return r}n.d(t,{Z:()=>rt});var o=n(2337),i=n(6196);var a=n(6831),u=n(5875);function s(e,t,n){const r=n||{},o=(0,u.O)(r.ignore||[]),i=function(e){const t=[];if(!Array.isArray(e))throw new TypeError("Expected find and replace tuple or list of tuples");const n=!e[0]||Array.isArray(e[0])?e:[e];let r=-1;for(;++r0?{type:"text",value:u}:void 0),!1===u?r.lastIndex=n+1:(a!==n&&c.push({type:"text",value:e.value.slice(a,n)}),Array.isArray(u)?c.push(...u):u&&c.push(u),a=n+f[0].length,l=!0),!r.global)break;f=r.exec(e.value)}l?(a?\]}]+$/.exec(e);if(!t)return[e,void 0];e=e.slice(0,t.index);let n=t[0],o=n.indexOf(")");const i=r(e,"(");let a=r(e,")");for(;-1!==o&&i>a;)e+=n.slice(0,o+1),n=n.slice(o+1),o=n.indexOf(")"),a++;return[e,n]}(n+o);if(!u[0])return!1;const s={type:"link",title:null,url:a+t+u[0],children:[{type:"text",value:t+u[0]}]};return u[1]?[s,{type:"text",value:u[1]}]:s}function k(e,t,n,r){return!(!D(r,!0)||/[-\d_]$/.test(n))&&{type:"link",title:null,url:"mailto:"+t+"@"+n,children:[{type:"text",value:t+"@"+n}]}}function D(e,t){const n=e.input.charCodeAt(e.index-1);return(0===e.index||(0,i.B8)(n)||(0,i.Xh)(n))&&(!t||47!==n)}var w=n(478);function E(e){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},e)}function C(){this.buffer()}function F(e){const t=this.resume(),n=this.stack[this.stack.length-1];(0,o.ok)("footnoteDefinition"===n.type),n.label=t,n.identifier=(0,w.d)(this.sliceSerialize(e)).toLowerCase()}function S(e){this.exit(e)}function A(e){this.enter({type:"footnoteReference",identifier:"",label:""},e)}function T(){this.buffer()}function P(e){const t=this.resume(),n=this.stack[this.stack.length-1];(0,o.ok)("footnoteReference"===n.type),n.label=t,n.identifier=(0,w.d)(this.sliceSerialize(e)).toLowerCase()}function O(e){this.exit(e)}function L(e,t,n,r){const o=n.createTracker(r);let i=o.move("[^");const a=n.enter("footnoteReference"),u=n.enter("reference");return i+=o.move(n.safe(n.associationId(e),{...o.current(),before:i,after:"]"})),u(),a(),i+=o.move("]"),i}function B(e,t,n,r){const o=n.createTracker(r);let i=o.move("[^");const a=n.enter("footnoteDefinition"),u=n.enter("label");return i+=o.move(n.safe(n.associationId(e),{...o.current(),before:i,after:"]"})),u(),i+=o.move("]:"+(e.children&&e.children.length>0?" ":"")),o.shift(4),i+=o.move(n.indentLines(n.containerFlow(e,o.current()),N)),a(),i}function N(e,t,n){return 0===t?e:(n?"":" ")+e}L.peek=function(){return"["};const R=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];function I(e){this.enter({type:"delete",children:[]},e)}function j(e){this.exit(e)}function _(e,t,n,r){const o=n.createTracker(r),i=n.enter("strikethrough");let a=o.move("~~");return a+=n.containerPhrasing(e,{...o.current(),before:a,after:"~"}),a+=o.move("~~"),i(),a}function z(e){return e.length}function M(e){const t="string"===typeof e?e.codePointAt(0):0;return 67===t||99===t?99:76===t||108===t?108:82===t||114===t?114:0}function U(e,t,n){return">"+(n?"":" ")+e}function q(e,t,n){if("string"===typeof t&&(t=[t]),!t||0===t.length)return n;let r=-1;for(;++r",...s.current()})),l+=s.move(">")):(u=n.enter("destinationRaw"),l+=s.move(n.safe(e.url,{before:l,after:e.title?" ":")",...s.current()}))),u(),e.title&&(u=n.enter("title".concat(i)),l+=s.move(" "+o),l+=s.move(n.safe(e.title,{before:l,after:o,...s.current()})),l+=s.move(o),u()),l+=s.move(")"),a(),l}function Y(e,t,n,r){const o=e.referenceType,i=n.enter("imageReference");let a=n.enter("label");const u=n.createTracker(r);let s=u.move("![");const l=n.safe(e.alt,{before:s,after:"]",...u.current()});s+=u.move(l+"]["),a();const c=n.stack;n.stack=[],a=n.enter("reference");const f=n.safe(n.associationId(e),{before:s,after:"]",...u.current()});return a(),n.stack=c,i(),"full"!==o&&l&&l===f?"shortcut"===o?s=s.slice(0,-1):s+=u.move("]"):s+=u.move(f+"]"),s}function J(e,t,n){let r=e.value||"",o="`",i=-1;for(;new RegExp("(^|[^`])"+o+"([^`]|$)").test(r);)o+="`";for(/[^ \r\n]/.test(r)&&(/^[ \r\n]/.test(r)&&/[ \r\n]$/.test(r)||/^`|`$/.test(r))&&(r=" "+r+" ");++i\u007F]/.test(e.url))}function ee(e,t,n,r){const o=W(n),i='"'===o?"Quote":"Apostrophe",a=n.createTracker(r);let u,s;if(X(e,n)){const t=n.stack;n.stack=[],u=n.enter("autolink");let r=a.move("<");return r+=a.move(n.containerPhrasing(e,{before:r,after:">",...a.current()})),r+=a.move(">"),u(),n.stack=t,r}u=n.enter("link"),s=n.enter("label");let l=a.move("[");return l+=a.move(n.containerPhrasing(e,{before:l,after:"](",...a.current()})),l+=a.move("]("),s(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(s=n.enter("destinationLiteral"),l+=a.move("<"),l+=a.move(n.safe(e.url,{before:l,after:">",...a.current()})),l+=a.move(">")):(s=n.enter("destinationRaw"),l+=a.move(n.safe(e.url,{before:l,after:e.title?" ":")",...a.current()}))),s(),e.title&&(s=n.enter("title".concat(i)),l+=a.move(" "+o),l+=a.move(n.safe(e.title,{before:l,after:o,...a.current()})),l+=a.move(o),s()),l+=a.move(")"),u(),l}function te(e,t,n,r){const o=e.referenceType,i=n.enter("linkReference");let a=n.enter("label");const u=n.createTracker(r);let s=u.move("[");const l=n.containerPhrasing(e,{before:s,after:"]",...u.current()});s+=u.move(l+"]["),a();const c=n.stack;n.stack=[],a=n.enter("reference");const f=n.safe(n.associationId(e),{before:s,after:"]",...u.current()});return a(),n.stack=c,i(),"full"!==o&&l&&l===f?"shortcut"===o?s=s.slice(0,-1):s+=u.move("]"):s+=u.move(f+"]"),s}function ne(e){const t=e.options.bullet||"*";if("*"!==t&&"+"!==t&&"-"!==t)throw new Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}function re(e){const t=e.options.rule||"*";if("*"!==t&&"-"!==t&&"_"!==t)throw new Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}K.peek=function(){return"<"},Q.peek=function(){return"!"},Y.peek=function(){return"!"},J.peek=function(){return"`"},ee.peek=function(e,t,n){return X(e,n)?"<":"["},te.peek=function(){return"["};const oe=(0,u.O)(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","link","linkReference","strong","text"]);function ie(e,t,n,r){const o=function(e){const t=e.options.strong||"*";if("*"!==t&&"_"!==t)throw new Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}(n),i=n.enter("strong"),a=n.createTracker(r);let u=a.move(o+o);return u+=a.move(n.containerPhrasing(e,{before:u,after:o,...a.current()})),u+=a.move(o+o),i(),u}ie.peek=function(e,t,n){return n.options.strong||"*"};const ae={blockquote:function(e,t,n,r){const o=n.enter("blockquote"),i=n.createTracker(r);i.move("> "),i.shift(2);const a=n.indentLines(n.containerFlow(e,i.current()),U);return o(),a},break:H,code:function(e,t,n,r){const o=function(e){const t=e.options.fence||"`";if("`"!==t&&"~"!==t)throw new Error("Cannot serialize code with `"+t+"` for `options.fence`, expected `` ` `` or `~`");return t}(n),i=e.value||"",a="`"===o?"GraveAccent":"Tilde";if(function(e,t){return Boolean(!1===t.options.fences&&e.value&&!e.lang&&/[^ \r\n]/.test(e.value)&&!/^[\t ]*(?:[\r\n]|$)|(?:^|[\r\n])[\t ]*$/.test(e.value))}(e,n)){const e=n.enter("codeIndented"),t=n.indentLines(i,V);return e(),t}const u=n.createTracker(r),s=o.repeat(Math.max(function(e,t){const n=String(e);let r=n.indexOf(t),o=r,i=0,a=0;if("string"!==typeof t)throw new TypeError("Expected substring");for(;-1!==r;)r===o?++i>a&&(a=i):i=1,o=r+t.length,r=n.indexOf(t,o);return a}(i,o)+1,3)),l=n.enter("codeFenced");let c=u.move(s);if(e.lang){const t=n.enter("codeFencedLang".concat(a));c+=u.move(n.safe(e.lang,{before:c,after:" ",encode:["`"],...u.current()})),t()}if(e.lang&&e.meta){const t=n.enter("codeFencedMeta".concat(a));c+=u.move(" "),c+=u.move(n.safe(e.meta,{before:c,after:"\n",encode:["`"],...u.current()})),t()}return c+=u.move("\n"),i&&(c+=u.move(i+"\n")),c+=u.move(s),l(),c},definition:function(e,t,n,r){const o=W(n),i='"'===o?"Quote":"Apostrophe",a=n.enter("definition");let u=n.enter("label");const s=n.createTracker(r);let l=s.move("[");return l+=s.move(n.safe(n.associationId(e),{before:l,after:"]",...s.current()})),l+=s.move("]: "),u(),!e.url||/[\0- \u007F]/.test(e.url)?(u=n.enter("destinationLiteral"),l+=s.move("<"),l+=s.move(n.safe(e.url,{before:l,after:">",...s.current()})),l+=s.move(">")):(u=n.enter("destinationRaw"),l+=s.move(n.safe(e.url,{before:l,after:e.title?" ":"\n",...s.current()}))),u(),e.title&&(u=n.enter("title".concat(i)),l+=s.move(" "+o),l+=s.move(n.safe(e.title,{before:l,after:o,...s.current()})),l+=s.move(o),u()),a(),l},emphasis:$,hardBreak:H,heading:function(e,t,n,r){const o=Math.max(Math.min(6,e.depth||1),1),i=n.createTracker(r);if(function(e,t){let n=!1;return(0,Z.Vn)(e,(function(e){if("value"in e&&/\r?\n|\r/.test(e.value)||"break"===e.type)return n=!0,a.BK})),Boolean((!e.depth||e.depth<3)&&(0,G.B)(e)&&(t.options.setext||n))}(e,n)){const t=n.enter("headingSetext"),r=n.enter("phrasing"),a=n.containerPhrasing(e,{...i.current(),before:"\n",after:"\n"});return r(),t(),a+"\n"+(1===o?"=":"-").repeat(a.length-(Math.max(a.lastIndexOf("\r"),a.lastIndexOf("\n"))+1))}const u="#".repeat(o),s=n.enter("headingAtx"),l=n.enter("phrasing");i.move(u+" ");let c=n.containerPhrasing(e,{before:"# ",after:"\n",...i.current()});return/^[\t ]/.test(c)&&(c="&#x"+c.charCodeAt(0).toString(16).toUpperCase()+";"+c.slice(1)),c=c?u+" "+c:u,n.options.closeAtx&&(c+=" "+u),l(),s(),c},html:K,image:Q,imageReference:Y,inlineCode:J,link:ee,linkReference:te,list:function(e,t,n,r){const o=n.enter("list"),i=n.bulletCurrent;let a=e.ordered?function(e){const t=e.options.bulletOrdered||".";if("."!==t&&")"!==t)throw new Error("Cannot serialize items with `"+t+"` for `options.bulletOrdered`, expected `.` or `)`");return t}(n):ne(n);const u=e.ordered?"."===a?")":".":function(e){const t=ne(e),n=e.options.bulletOther;if(!n)return"*"===t?"-":"*";if("*"!==n&&"+"!==n&&"-"!==n)throw new Error("Cannot serialize items with `"+n+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(n===t)throw new Error("Expected `bullet` (`"+t+"`) and `bulletOther` (`"+n+"`) to be different");return n}(n);let s=!(!t||!n.bulletLastUsed)&&a===n.bulletLastUsed;if(!e.ordered){const t=e.children?e.children[0]:void 0;if("*"!==a&&"-"!==a||!t||t.children&&t.children[0]||"list"!==n.stack[n.stack.length-1]||"listItem"!==n.stack[n.stack.length-2]||"list"!==n.stack[n.stack.length-3]||"listItem"!==n.stack[n.stack.length-4]||0!==n.indexStack[n.indexStack.length-1]||0!==n.indexStack[n.indexStack.length-2]||0!==n.indexStack[n.indexStack.length-3]||(s=!0),re(n)===a&&t){let t=-1;for(;++t-1?t.start:1)+(!1===n.options.incrementListMarker?0:t.children.indexOf(e))+i);let a=i.length+1;("tab"===o||"mixed"===o&&(t&&"list"===t.type&&t.spread||e.spread))&&(a=4*Math.ceil(a/4));const u=n.createTracker(r);u.move(i+" ".repeat(a-i.length)),u.shift(a);const s=n.enter("listItem"),l=n.indentLines(n.containerFlow(e,u.current()),(function(e,t,n){if(t)return(n?"":" ".repeat(a))+e;return(n?i:i+" ".repeat(a-i.length))+e}));return s(),l},paragraph:function(e,t,n,r){const o=n.enter("paragraph"),i=n.enter("phrasing"),a=n.containerPhrasing(e,r);return i(),o(),a},root:function(e,t,n,r){return(e.children.some((function(e){return oe(e)}))?n.containerPhrasing:n.containerFlow).call(n,e,r)},strong:ie,text:function(e,t,n,r){return n.safe(e.value,r)},thematicBreak:function(e,t,n){const r=(re(n)+(n.options.ruleSpaces?" ":"")).repeat(function(e){const t=e.options.ruleRepetition||3;if(t<3)throw new Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}(n));return n.options.ruleSpaces?r.slice(0,-1):r}};function ue(e){const t=e._align;(0,o.ok)(t,"expected `_align` on table"),this.enter({type:"table",align:t.map((function(e){return"none"===e?null:e})),children:[]},e),this.data.inTable=!0}function se(e){this.exit(e),this.data.inTable=void 0}function le(e){this.enter({type:"tableRow",children:[]},e)}function ce(e){this.exit(e)}function fe(e){this.enter({type:"tableCell",children:[]},e)}function de(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,pe));const n=this.stack[this.stack.length-1];(0,o.ok)("inlineCode"===n.type),n.value=t,this.exit(e)}function pe(e,t){return"|"===t?t:e}function he(e){const t=e||{},n=t.tableCellPadding,r=t.tablePipeAlign,o=t.stringLength,i=n?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:"\n",inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[\t :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{inlineCode:function(e,t,n){let r=ae.inlineCode(e,t,n);n.stack.includes("tableCell")&&(r=r.replace(/\|/g,"\\$&"));return r},table:function(e,t,n,r){return u(function(e,t,n){const r=e.children;let o=-1;const i=[],a=t.enter("table");for(;++o1&&void 0!==arguments[1]?arguments[1]:{};const n=(t.align||[]).concat(),r=t.stringLength||z,o=[],i=[],a=[],u=[];let s=0,l=-1;for(;++ls&&(s=e[l].length);++fu[f])&&(u[f]=e)}n.push(i)}i[l]=n,a[l]=o}var c;let f=-1;if("object"===typeof n&&"length"in n)for(;++fu[f]&&(u[f]=i),p[f]=i),d[f]=a}i.splice(1,0,d),a.splice(1,0,p),l=-1;const h=[];for(;++l0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}Se[43]=Fe,Se[45]=Fe,Se[46]=Fe,Se[95]=Fe,Se[72]=[Fe,Ce],Se[104]=[Fe,Ce],Se[87]=[Fe,Ee],Se[119]=[Fe,Ee];var Ne=n(8597),Re=n(8911);const Ie={tokenize:function(e,t,n){const r=this;return(0,Re.f)(e,(function(e){const o=r.events[r.events.length-1];return o&&"gfmFootnoteDefinitionIndent"===o[1].type&&4===o[2].sliceSerialize(o[1],!0).length?t(e):n(e)}),"gfmFootnoteDefinitionIndent",5)},partial:!0};function je(e,t,n){const r=this;let o=r.events.length;const i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let a;for(;o--;){const e=r.events[o][1];if("labelImage"===e.type){a=e;break}if("gfmFootnoteCall"===e.type||"labelLink"===e.type||"label"===e.type||"image"===e.type||"link"===e.type)break}return function(o){if(!a||!a._balanced)return n(o);const u=(0,w.d)(r.sliceSerialize({start:a.end,end:r.now()}));if(94!==u.codePointAt(0)||!i.includes(u.slice(1)))return n(o);return e.enter("gfmFootnoteCallLabelMarker"),e.consume(o),e.exit("gfmFootnoteCallLabelMarker"),t(o)}}function _e(e,t){let n,r=e.length;for(;r--;)if("labelImage"===e[r][1].type&&"enter"===e[r][0]){n=e[r][1];break}e[r+1][1].type="data",e[r+3][1].type="gfmFootnoteCallLabelMarker";const o={type:"gfmFootnoteCall",start:Object.assign({},e[r+3][1].start),end:Object.assign({},e[e.length-1][1].end)},i={type:"gfmFootnoteCallMarker",start:Object.assign({},e[r+3][1].end),end:Object.assign({},e[r+3][1].end)};i.end.column++,i.end.offset++,i.end._bufferIndex++;const a={type:"gfmFootnoteCallString",start:Object.assign({},i.end),end:Object.assign({},e[e.length-1][1].start)},u={type:"chunkString",contentType:"string",start:Object.assign({},a.start),end:Object.assign({},a.end)},s=[e[r+1],e[r+2],["enter",o,t],e[r+3],e[r+4],["enter",i,t],["exit",i,t],["enter",a,t],["enter",u,t],["exit",u,t],["exit",a,t],e[e.length-2],e[e.length-1],["exit",o,t]];return e.splice(r,e.length-r+1,...s),e}function ze(e,t,n){const r=this,o=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let a,u=0;return function(t){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(t),e.exit("gfmFootnoteCallLabelMarker"),s};function s(t){return 94!==t?n(t):(e.enter("gfmFootnoteCallMarker"),e.consume(t),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",l)}function l(s){if(u>999||93===s&&!a||null===s||91===s||(0,i.z3)(s))return n(s);if(93===s){e.exit("chunkString");const i=e.exit("gfmFootnoteCallString");return o.includes((0,w.d)(r.sliceSerialize(i)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(s),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t):n(s)}return(0,i.z3)(s)||(a=!0),u++,e.consume(s),92===s?c:l}function c(t){return 91===t||92===t||93===t?(e.consume(t),u++,l):l(t)}}function Me(e,t,n){const r=this,o=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let a,u,s=0;return function(t){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(t),e.exit("gfmFootnoteDefinitionLabelMarker"),l};function l(t){return 94===t?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(t),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",c):n(t)}function c(t){if(s>999||93===t&&!u||null===t||91===t||(0,i.z3)(t))return n(t);if(93===t){e.exit("chunkString");const n=e.exit("gfmFootnoteDefinitionLabelString");return a=(0,w.d)(r.sliceSerialize(n)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(t),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),d}return(0,i.z3)(t)||(u=!0),s++,e.consume(t),92===t?f:c}function f(t){return 91===t||92===t||93===t?(e.consume(t),s++,c):c(t)}function d(t){return 58===t?(e.enter("definitionMarker"),e.consume(t),e.exit("definitionMarker"),o.includes(a)||o.push(a),(0,Re.f)(e,p,"gfmFootnoteDefinitionWhitespace")):n(t)}function p(e){return t(e)}}function Ue(e,t,n){return e.check(Ne.w,t,e.attempt(Ie,t,n))}function qe(e){e.exit("gfmFootnoteDefinition")}var He=n(7125),Ve=n(4375),We=n(7900);function $e(e){let t=(e||{}).singleTilde;const n={tokenize:function(e,n,r){const o=this.previous,i=this.events;let a=0;return function(t){if(126===o&&"characterEscape"!==i[i.length-1][1].type)return r(t);return e.enter("strikethroughSequenceTemporary"),u(t)};function u(i){const s=(0,Ve.r)(o);if(126===i)return a>1?r(i):(e.consume(i),a++,u);if(a<2&&!t)return r(i);const l=e.exit("strikethroughSequenceTemporary"),c=(0,Ve.r)(i);return l._open=!c||2===c&&Boolean(s),l._close=!s||2===s&&Boolean(c),n(i)}},resolveAll:function(e,t){let n=-1;for(;++n0;)t-=1,n.push(e.slice(this.map[t][0]+this.map[t][1]),this.map[t][2]),e.length=this.map[t][0];n.push([...e]),e.length=0;let r=n.pop();for(;r;)e.push(...r),r=n.pop();this.map.length=0}}function Ge(e,t){let n=!1;const r=[];for(;t-1;){const e=r.events[t][1].type;if("lineEnding"!==e&&"linePrefix"!==e)break;t--}const o=t>-1?r.events[t][1].type:null,i="tableHead"===o||"tableRow"===o?k:s;if(i===k&&r.parser.lazy[r.now().line])return n(e);return i(e)};function s(t){return e.enter("tableHead"),e.enter("tableRow"),function(e){if(124===e)return l(e);return o=!0,u+=1,l(e)}(t)}function l(t){return null===t?n(t):(0,i.Ch)(t)?u>1?(u=0,r.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),d):n(t):(0,i.xz)(t)?(0,Re.f)(e,l,"whitespace")(t):(u+=1,o&&(o=!1,a+=1),124===t?(e.enter("tableCellDivider"),e.consume(t),e.exit("tableCellDivider"),o=!0,l):(e.enter("data"),c(t)))}function c(t){return null===t||124===t||(0,i.z3)(t)?(e.exit("data"),l(t)):(e.consume(t),92===t?f:c)}function f(t){return 92===t||124===t?(e.consume(t),c):c(t)}function d(t){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(t):(e.enter("tableDelimiterRow"),o=!1,(0,i.xz)(t)?(0,Re.f)(e,p,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(t):p(t))}function p(t){return 45===t||58===t?m(t):124===t?(o=!0,e.enter("tableCellDivider"),e.consume(t),e.exit("tableCellDivider"),h):x(t)}function h(t){return(0,i.xz)(t)?(0,Re.f)(e,m,"whitespace")(t):m(t)}function m(t){return 58===t?(u+=1,o=!0,e.enter("tableDelimiterMarker"),e.consume(t),e.exit("tableDelimiterMarker"),g):45===t?(u+=1,g(t)):null===t||(0,i.Ch)(t)?b(t):x(t)}function g(t){return 45===t?(e.enter("tableDelimiterFiller"),y(t)):x(t)}function y(t){return 45===t?(e.consume(t),y):58===t?(o=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(t),e.exit("tableDelimiterMarker"),v):(e.exit("tableDelimiterFiller"),v(t))}function v(t){return(0,i.xz)(t)?(0,Re.f)(e,b,"whitespace")(t):b(t)}function b(n){return 124===n?p(n):(null===n||(0,i.Ch)(n))&&o&&a===u?(e.exit("tableDelimiterRow"),e.exit("tableHead"),t(n)):x(n)}function x(e){return n(e)}function k(t){return e.enter("tableRow"),D(t)}function D(n){return 124===n?(e.enter("tableCellDivider"),e.consume(n),e.exit("tableCellDivider"),D):null===n||(0,i.Ch)(n)?(e.exit("tableRow"),t(n)):(0,i.xz)(n)?(0,Re.f)(e,D,"whitespace")(n):(e.enter("data"),w(n))}function w(t){return null===t||124===t||(0,i.z3)(t)?(e.exit("data"),D(t)):(e.consume(t),92===t?E:w)}function E(t){return 92===t||124===t?(e.consume(t),w):w(t)}}function Qe(e,t){let n,r,o,i=-1,a=!0,u=0,s=[0,0,0,0],l=[0,0,0,0],c=!1,f=0;const d=new Ze;for(;++in[2]+1){const t=n[2]+1,r=n[3]-n[2]-1;e.add(t,r,[])}}e.add(n[3]+1,0,[["exit",a,t]])}return void 0!==o&&(i.end=Object.assign({},Xe(t.events,o)),e.add(o,0,[["exit",i,t]]),i=void 0),i}function Je(e,t,n,r,o){const i=[],a=Xe(t.events,n);o&&(o.end=Object.assign({},a),i.push(["exit",o,t])),r.end=Object.assign({},a),i.push(["exit",r,t]),e.add(n+1,0,i)}function Xe(e,t){const n=e[t],r="enter"===n[0]?"start":"end";return n[1][r]}const et={tokenize:function(e,t,n){const r=this;return function(t){if(null!==r.previous||!r._gfmTasklistFirstContentOfListItem)return n(t);return e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(t),e.exit("taskListCheckMarker"),o};function o(t){return(0,i.z3)(t)?(e.enter("taskListCheckValueUnchecked"),e.consume(t),e.exit("taskListCheckValueUnchecked"),a):88===t||120===t?(e.enter("taskListCheckValueChecked"),e.consume(t),e.exit("taskListCheckValueChecked"),a):n(t)}function a(t){return 93===t?(e.enter("taskListCheckMarker"),e.consume(t),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),u):n(t)}function u(r){return(0,i.Ch)(r)?t(r):(0,i.xz)(r)?e.check({tokenize:tt},t,n)(r):n(r)}}};function tt(e,t,n){return(0,Re.f)(e,(function(e){return null===e?n(e):t(e)}),"whitespace")}const nt={};function rt(e){const t=e||nt,n=this.data(),r=n.micromarkExtensions||(n.micromarkExtensions=[]),o=n.fromMarkdownExtensions||(n.fromMarkdownExtensions=[]),i=n.toMarkdownExtensions||(n.toMarkdownExtensions=[]);r.push(function(e){return(0,ve.W)([{text:Se},{document:{91:{tokenize:Me,continuation:{tokenize:Ue},exit:qe}},text:{91:{tokenize:ze},93:{add:"after",tokenize:je,resolveTo:_e}}},$e(e),{flow:{null:{tokenize:Ke,resolveAll:Qe}}},{text:{91:et}}])}(t)),o.push([{transforms:[b],enter:{literalAutolink:p,literalAutolinkEmail:h,literalAutolinkHttp:h,literalAutolinkWww:h},exit:{literalAutolink:v,literalAutolinkEmail:y,literalAutolinkHttp:m,literalAutolinkWww:g}},{enter:{gfmFootnoteDefinition:E,gfmFootnoteDefinitionLabelString:C,gfmFootnoteCall:A,gfmFootnoteCallString:T},exit:{gfmFootnoteDefinition:S,gfmFootnoteDefinitionLabelString:F,gfmFootnoteCall:O,gfmFootnoteCallString:P}},{canContainEols:["delete"],enter:{strikethrough:I},exit:{strikethrough:j}},{enter:{table:ue,tableData:fe,tableHeader:fe,tableRow:le},exit:{codeText:de,table:se,tableData:ce,tableHeader:ce,tableRow:ce}},{exit:{taskListCheckValueChecked:me,taskListCheckValueUnchecked:me,paragraph:ge}}]),i.push(function(e){return{extensions:[{unsafe:[{character:"@",before:"[+\\-.\\w]",after:"[\\-.\\w]",inConstruct:f,notInConstruct:d},{character:".",before:"[Ww]",after:"[\\-.\\w]",inConstruct:f,notInConstruct:d},{character:":",before:"[ps]",after:"\\/",inConstruct:f,notInConstruct:d}]},{unsafe:[{character:"[",inConstruct:["phrasing","label","reference"]}],handlers:{footnoteDefinition:B,footnoteReference:L}},{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:R}],handlers:{delete:_}},he(e),{unsafe:[{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{listItem:ye}}]}}(t))}},103:(e,t,n)=>{"use strict";function r(e){const t=String(e||"").trim();return t?t.split(/[ \t\n\r\f]+/g):[]}function o(e){return e.join(" ").trim()}n.d(t,{P:()=>o,Q:()=>r})},5875:(e,t,n)=>{"use strict";n.d(t,{O:()=>r});const r=function(e){if(null===e||void 0===e)return i;if("function"===typeof e)return o(e);if("object"===typeof e)return Array.isArray(e)?function(e){const t=[];let n=-1;for(;++n{"use strict";n.d(t,{FK:()=>a,Pk:()=>o,rb:()=>r});const r=i("end"),o=i("start");function i(e){return function(t){const n=t&&t.position&&t.position[e]||{};if("number"===typeof n.line&&n.line>0&&"number"===typeof n.column&&n.column>0)return{line:n.line,column:n.column,offset:"number"===typeof n.offset&&n.offset>-1?n.offset:void 0}}}function a(e){const t=o(e),n=r(e);if(t&&n)return{start:t,end:n}}},6831:(e,t,n)=>{"use strict";n.d(t,{BK:()=>a,AM:()=>u,S4:()=>s});var r=n(5875);const o=[],i=!0,a=!1,u="skip";function s(e,t,n,s){let l;"function"===typeof t&&"function"!==typeof n?(s=n,n=t):l=t;const c=(0,r.O)(l),f=s?-1:1;!function e(r,l,d){const p=r&&"object"===typeof r?r:{};if("string"===typeof p.type){const e="string"===typeof p.tagName?p.tagName:"string"===typeof p.name?p.name:void 0;Object.defineProperty(h,"name",{value:"node ("+r.type+(e?"<"+e+">":"")+")"})}return h;function h(){let p,h,m,g=o;if((!t||c(r,l,d[d.length-1]||void 0))&&(g=function(e){if(Array.isArray(e))return e;if("number"===typeof e)return[i,e];return null===e||void 0===e?o:[e]}(n(r,d)),g[0]===a))return g;if("children"in r&&r.children){const t=r;if(t.children&&g[0]!==u)for(h=(s?t.children.length:-1)+f,m=d.concat(t);h>-1&&h{"use strict";n.d(t,{Vn:()=>o});var r=n(6831);function o(e,t,n,o){let i,a,u;"function"===typeof t&&"function"!==typeof n?(a=void 0,u=t,i=n):(a=t,u=n,i=o),(0,r.S4)(e,a,(function(e,t){const n=t[t.length-1],r=n?n.children.indexOf(e):void 0;return u(e,r,n)}),i)}},1379:(e,t,n)=>{"use strict";n.d(t,{z:()=>o});const r={}.hasOwnProperty;function o(e,t){const n=t||{};function o(t){let n=o.invalid;const i=o.handlers;if(t&&r.call(t,e)){const a=String(t[e]);n=r.call(i,a)?i[a]:o.unknown}if(n){for(var a=arguments.length,u=new Array(a>1?a-1:0),s=1;s{var e=[];n.O=(t,r,o,i)=>{if(!r){var a=1/0;for(c=0;c=i)&&Object.keys(n.O).every((e=>n.O[e](r[s])))?r.splice(s--,1):(u=!1,i0&&e[c-1][2]>i;c--)e[c]=e[c-1];e[c]=[r,o,i]}})(),n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},(()=>{var e,t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__;n.t=function(r,o){if(1&o&&(r=this(r)),8&o)return r;if("object"===typeof r&&r){if(4&o&&r.__esModule)return r;if(16&o&&"function"===typeof r.then)return r}var i=Object.create(null);n.r(i);var a={};e=e||[null,t({}),t([]),t(t)];for(var u=2&o&&r;"object"==typeof u&&!~e.indexOf(u);u=t(u))Object.getOwnPropertyNames(u).forEach((e=>a[e]=()=>r[e]));return a.default=()=>r,n.d(i,a),i}})(),n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.f={},n.e=e=>Promise.all(Object.keys(n.f).reduce(((t,r)=>(n.f[r](e,t),t)),[])),n.u=e=>"static/js/"+e+"."+{45:"7918c389",48:"6e678e9b",96:"8b803b20",97:"e0129a34",156:"3fcc0fcf",221:"49458ca2",234:"5e5c10f5",276:"26c5db0d",359:"374ff5fb",436:"46caec50",451:"50eb24bc",467:"9ffb262c",502:"6fae4133",528:"04c6c8b7",544:"1b2b18be",559:"422a32a6",570:"3d5584f1",603:"811c89a6",637:"02eefeea",657:"6846b32a",688:"e6f04528",727:"d4f51612",783:"460e9f02",805:"96f37276",837:"afda5431",914:"dab70ca2",930:"9a90399c",952:"d4a94cf7"}[e]+".chunk.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),(()=>{var e={},t="website:";n.l=(r,o,i,a)=>{if(e[r])e[r].push(o);else{var u,s;if(void 0!==i)for(var l=document.getElementsByTagName("script"),c=0;c{u.onerror=u.onload=null,clearTimeout(p);var o=e[r];if(delete e[r],u.parentNode&&u.parentNode.removeChild(u),o&&o.forEach((e=>e(n))),t)return t(n)},p=setTimeout(d.bind(null,void 0,{type:"timeout",target:u}),12e4);u.onerror=d.bind(null,u.onerror),u.onload=d.bind(null,u.onload),s&&document.head.appendChild(u)}}})(),n.r=e=>{"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.p="./",(()=>{var e={179:0};n.f.j=(t,r)=>{var o=n.o(e,t)?e[t]:void 0;if(0!==o)if(o)r.push(o[2]);else{var i=new Promise(((n,r)=>o=e[t]=[n,r]));r.push(o[2]=i);var a=n.p+n.u(t),u=new Error;n.l(a,(r=>{if(n.o(e,t)&&(0!==(o=e[t])&&(e[t]=void 0),o)){var i=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;u.message="Loading chunk "+t+" failed.\n("+i+": "+a+")",u.name="ChunkLoadError",u.type=i,u.request=a,o[1](u)}}),"chunk-"+t,t)}},n.O.j=t=>0===e[t];var t=(t,r)=>{var o,i,a=r[0],u=r[1],s=r[2],l=0;if(a.some((t=>0!==e[t]))){for(o in u)n.o(u,o)&&(n.m[o]=u[o]);if(s)var c=s(n)}for(t&&t(r);ln(2669)));r=n.O(r)})(); +//# sourceMappingURL=main.bfcd6ee8.js.map \ No newline at end of file diff --git a/static/js/main.d45656dc.js.LICENSE.txt b/static/js/main.bfcd6ee8.js.LICENSE.txt similarity index 83% rename from static/js/main.d45656dc.js.LICENSE.txt rename to static/js/main.bfcd6ee8.js.LICENSE.txt index d2a235960..731f98d34 100644 --- a/static/js/main.d45656dc.js.LICENSE.txt +++ b/static/js/main.bfcd6ee8.js.LICENSE.txt @@ -12,16 +12,6 @@ * Licensed under the MIT License. */ -/** - * @license React - * 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. - */ - /** * @license React * scheduler.production.min.js diff --git a/static/js/main.bfcd6ee8.js.map b/static/js/main.bfcd6ee8.js.map new file mode 100644 index 000000000..a9d0b9d97 --- /dev/null +++ b/static/js/main.bfcd6ee8.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/main.bfcd6ee8.js","mappings":"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EAAStkB,EAAQskB,EAAQ1tB,GACzBghC,EAAO3/C,KAAK+nB,GAEhB,CAEA,OAAOskB,CACT,gEC5BO,MAAM82B,EAA0B,CACrC,QACA,MACA,SACA,QACA,SACA,QACA,SACA,OACA,OACA,SACA,MACA,SACA,QACA,SACA,OACA,KACA,SACA,QACA,SACA,OACA,KACA,SACA,SACA,QACA,SACA,SACA,SACA,OACA,OACA,MACA,QACA,SACA,QACA,SACA,OACA,SACA,SACA,QACA,QACA,QACA,SACA,MACA,QACA,SACA,OACA,SACA,SACA,QACA,OACA,OACA,SACA,MACA,SACA,SACA,QACA,SACA,MACA,OACA,SACA,SACA,SACA,KACA,SACA,QACA,QACA,SACA,SACA,OACA,QACA,KACA,OACA,QACA,SACA,OACA,MACA,SACA,SACA,QACA,SACA,OACA,OACA,SACA,SACA,OACA,OACA,SACA,QACA,OACA,QACA,MACA,OACA,MACA,OACA,OACA,OACA,QACA,QACA,QACA,SACA,QACA,SACA,MACA,OACA,SACA,MACA,QC1GWC,EAA4B,CACvC,EAAG,SACH,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,UC1BA,SAASC,EAAU7jC,GACxB,MAAM2C,EACiB,kBAAd3C,EAAyBA,EAAU2D,WAAW,GAAK3D,EAE5D,OAAO2C,GAAQ,IAAMA,GAAQ,EAC/B,CCLO,SAASmhC,EAAc9jC,GAC5B,MAAM2C,EACiB,kBAAd3C,EAAyBA,EAAU2D,WAAW,GAAK3D,EAE5D,OACG2C,GAAQ,IAAcA,GAAQ,KAC9BA,GAAQ,IAAcA,GAAQ,IAC9BA,GAAQ,IAAcA,GAAQ,EAEnC,CCNO,SAASohC,EAAiB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","sources":["../../node_modules/@remix-run/router/history.ts","../../node_modules/@remix-run/router/utils.ts","../../node_modules/@remix-run/router/router.ts","../../lib/context.ts","../../lib/hooks.tsx","../../lib/components.tsx","../../index.ts","../../dom.ts","../../index.tsx","../../node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","components/SideMenu/index.tsx","Layout.tsx","components/Footer/index.tsx","components/Preview/Hyperlink.tsx","components/Preview/index.tsx","data.tsx","index.tsx","../../node_modules/babel-plugin-transform-remove-imports/lib/index.js","../../node_modules/boolbase/index.js","../../node_modules/extend/index.js","../../node_modules/inline-style-parser/index.js","../../node_modules/is-buffer/index.js","../../node_modules/markdown-react-code-preview-loader/src/utils/index.ts","../../node_modules/parse-numeric-range/index.js","../../node_modules/process/browser.js","../../node_modules/react-code-preview-layout/esm/store.js","../../node_modules/react-code-preview-layout/esm/Code.js","../../node_modules/react-code-preview-layout/esm/Preview.js","../../node_modules/react-code-preview-layout/esm/icons.js","../../node_modules/react-code-preview-layout/esm/Copied.js","../../node_modules/react-code-preview-layout/esm/Toolbar.js","../../node_modules/react-code-preview-layout/esm/CodePreview.js","../../node_modules/react-code-preview-layout/esm/index.js","../../node_modules/remark-stringify/index.js","../../node_modules/remark-stringify/node_modules/longest-streak/index.js","../../node_modules/remark-stringify/node_modules/mdast-util-to-markdown/index.js","../../node_modules/remark-stringify/node_modules/mdast-util-to-markdown/lib/configure.js","../../node_modules/remark-stringify/node_modules/mdast-util-to-markdown/lib/handle/blockquote.js","../../node_modules/remark-stringify/node_modules/mdast-util-to-markdown/lib/handle/break.js","../../node_modules/remark-stringify/node_modules/mdast-util-to-markdown/lib/handle/code.js","../../node_modules/remark-stringify/node_modules/mdast-util-to-markdown/lib/handle/definition.js","../../node_modules/remark-stringify/node_modules/mdast-util-to-markdown/lib/handle/emphasis.js","../../node_modules/remark-stringify/node_modules/mdast-util-to-markdown/lib/handle/heading.js","../../node_modules/remark-stringify/node_modules/mdast-util-to-markdown/lib/handle/html.js","../../node_modules/remark-stringify/node_modules/mdast-util-to-markdown/lib/handle/image-reference.js","../../node_modules/remark-stringify/node_modules/mdast-util-to-markdown/lib/handle/image.js","../../node_modules/remark-stringify/node_modules/mdast-util-to-markdown/lib/handle/index.js","../../node_modules/remark-stringify/node_modules/mdast-util-to-markdown/lib/handle/inline-code.js","../../node_modules/remark-stringify/node_modules/mdast-util-to-markdown/lib/handle/link-reference.js","../../node_modules/remark-stringify/node_modules/mdast-util-to-markdown/lib/handle/link.js","../../node_modules/remark-stringify/node_modules/mdast-util-to-markdown/lib/handle/list-item.js","../../node_modules/remark-stringify/node_modules/mdast-util-to-markdown/lib/handle/list.js","../../node_modules/remark-stringify/node_modules/mdast-util-to-markdown/lib/handle/paragraph.js","../../node_modules/remark-stringify/node_modules/mdast-util-to-markdown/lib/handle/root.js","../../node_modules/remark-stringify/node_modules/mdast-util-to-markdown/lib/handle/strong.js","../../node_modules/remark-stringify/node_modules/mdast-util-to-markdown/lib/handle/text.js","../../node_modules/remark-stringify/node_modules/mdast-util-to-markdown/lib/handle/thematic-break.js","../../node_modules/remark-stringify/node_modules/mdast-util-to-markdown/lib/index.js","../../node_modules/remark-stringify/node_modules/mdast-util-to-markdown/lib/join.js","../../node_modules/remark-stringify/node_modules/mdast-util-to-markdown/lib/unsafe.js","../../node_modules/remark-stringify/node_modules/mdast-util-to-markdown/lib/util/association.js","../../node_modules/remark-stringify/node_modules/mdast-util-to-markdown/lib/util/check-bullet.js","../../node_modules/remark-stringify/node_modules/mdast-util-to-markdown/lib/util/check-emphasis.js","../../node_modules/remark-stringify/node_modules/mdast-util-to-markdown/lib/util/check-fence.js","../../node_modules/remark-stringify/node_modules/mdast-util-to-markdown/lib/util/check-list-item-indent.js","../../node_modules/remark-stringify/node_modules/mdast-util-to-markdown/lib/util/check-quote.js","../../node_modules/remark-stringify/node_modules/mdast-util-to-markdown/lib/util/check-rule-repeat.js","../../node_modules/remark-stringify/node_modules/mdast-util-to-markdown/lib/util/check-rule.js","../../node_modules/remark-stringify/node_modules/mdast-util-to-markdown/lib/util/check-strong.js","../../node_modules/remark-stringify/node_modules/mdast-util-to-markdown/lib/util/container-flow.js","../../node_modules/remark-stringify/node_modules/mdast-util-to-markdown/lib/util/container-phrasing.js","../../node_modules/remark-stringify/node_modules/mdast-util-to-markdown/lib/util/format-code-as-indented.js","../../node_modules/remark-stringify/node_modules/mdast-util-to-markdown/lib/util/format-heading-as-setext.js","../../node_modules/remark-stringify/node_modules/mdast-util-to-markdown/lib/util/format-link-as-autolink.js","../../node_modules/remark-stringify/node_modules/mdast-util-to-markdown/lib/util/indent-lines.js","../../node_modules/remark-stringify/node_modules/mdast-util-to-markdown/lib/util/pattern-compile.js","../../node_modules/remark-stringify/node_modules/mdast-util-to-markdown/lib/util/pattern-in-scope.js","../../node_modules/remark-stringify/node_modules/mdast-util-to-markdown/lib/util/safe.js","../../node_modules/remark-stringify/node_modules/mdast-util-to-string/index.js","../../node_modules/remark-stringify/node_modules/parse-entities/decode-entity.browser.js","../../node_modules/remark-stringify/node_modules/zwitch/index.js","../../node_modules/remark/index.js","../../node_modules/remark/node_modules/bail/index.js","../../node_modules/remark/node_modules/is-plain-obj/index.js","../../node_modules/remark/node_modules/mdast-util-from-markdown/dist/index.js","../../node_modules/remark/node_modules/mdast-util-from-markdown/index.js","../../node_modules/remark/node_modules/mdast-util-to-string/index.js","../../node_modules/remark/node_modules/micromark/dist/character/ascii-alpha.js","../../node_modules/remark/node_modules/micromark/dist/character/ascii-alphanumeric.js","../../node_modules/remark/node_modules/micromark/dist/character/ascii-atext.js","../../node_modules/remark/node_modules/micromark/dist/character/ascii-control.js","../../node_modules/remark/node_modules/micromark/dist/character/ascii-digit.js","../../node_modules/remark/node_modules/micromark/dist/character/ascii-hex-digit.js","../../node_modules/remark/node_modules/micromark/dist/character/ascii-punctuation.js","../../node_modules/remark/node_modules/micromark/dist/character/markdown-line-ending-or-space.js","../../node_modules/remark/node_modules/micromark/dist/character/markdown-line-ending.js","../../node_modules/remark/node_modules/micromark/dist/character/markdown-space.js","../../node_modules/remark/node_modules/micromark/dist/character/unicode-punctuation.js","../../node_modules/remark/node_modules/micromark/dist/character/unicode-whitespace.js","../../node_modules/remark/node_modules/micromark/dist/constant/assign.js","../../node_modules/remark/node_modules/micromark/dist/constant/from-char-code.js","../../node_modules/remark/node_modules/micromark/dist/constant/has-own-property.js","../../node_modules/remark/node_modules/micromark/dist/constant/html-block-names.js","../../node_modules/remark/node_modules/micromark/dist/constant/html-raw-names.js","../../node_modules/remark/node_modules/micromark/dist/constant/splice.js","../../node_modules/remark/node_modules/micromark/dist/constant/unicode-punctuation-regex.js","../../node_modules/remark/node_modules/micromark/dist/constructs.js","../../node_modules/remark/node_modules/micromark/dist/initialize/content.js","../../node_modules/remark/node_modules/micromark/dist/initialize/document.js","../../node_modules/remark/node_modules/micromark/dist/initialize/flow.js","../../node_modules/remark/node_modules/micromark/dist/initialize/text.js","../../node_modules/remark/node_modules/micromark/dist/parse.js","../../node_modules/remark/node_modules/micromark/dist/postprocess.js","../../node_modules/remark/node_modules/micromark/dist/preprocess.js","../../node_modules/remark/node_modules/micromark/dist/tokenize/attention.js","../../node_modules/remark/node_modules/micromark/dist/tokenize/autolink.js","../../node_modules/remark/node_modules/micromark/dist/tokenize/block-quote.js","../../node_modules/remark/node_modules/micromark/dist/tokenize/character-escape.js","../../node_modules/remark/node_modules/micromark/dist/tokenize/character-reference.js","../../node_modules/remark/node_modules/micromark/dist/tokenize/code-fenced.js","../../node_modules/remark/node_modules/micromark/dist/tokenize/code-indented.js","../../node_modules/remark/node_modules/micromark/dist/tokenize/code-text.js","../../node_modules/remark/node_modules/micromark/dist/tokenize/content.js","../../node_modules/remark/node_modules/micromark/dist/tokenize/definition.js","../../node_modules/remark/node_modules/micromark/dist/tokenize/factory-destination.js","../../node_modules/remark/node_modules/micromark/dist/tokenize/factory-label.js","../../node_modules/remark/node_modules/micromark/dist/tokenize/factory-space.js","../../node_modules/remark/node_modules/micromark/dist/tokenize/factory-title.js","../../node_modules/remark/node_modules/micromark/dist/tokenize/factory-whitespace.js","../../node_modules/remark/node_modules/micromark/dist/tokenize/hard-break-escape.js","../../node_modules/remark/node_modules/micromark/dist/tokenize/heading-atx.js","../../node_modules/remark/node_modules/micromark/dist/tokenize/html-flow.js","../../node_modules/remark/node_modules/micromark/dist/tokenize/html-text.js","../../node_modules/remark/node_modules/micromark/dist/tokenize/label-end.js","../../node_modules/remark/node_modules/micromark/dist/tokenize/label-start-image.js","../../node_modules/remark/node_modules/micromark/dist/tokenize/label-start-link.js","../../node_modules/remark/node_modules/micromark/dist/tokenize/line-ending.js","../../node_modules/remark/node_modules/micromark/dist/tokenize/list.js","../../node_modules/remark/node_modules/micromark/dist/tokenize/partial-blank-line.js","../../node_modules/remark/node_modules/micromark/dist/tokenize/setext-underline.js","../../node_modules/remark/node_modules/micromark/dist/tokenize/thematic-break.js","../../node_modules/remark/node_modules/micromark/dist/util/chunked-push.js","../../node_modules/remark/node_modules/micromark/dist/util/chunked-splice.js","../../node_modules/remark/node_modules/micromark/dist/util/classify-character.js","../../node_modules/remark/node_modules/micromark/dist/util/combine-extensions.js","../../node_modules/remark/node_modules/micromark/dist/util/create-tokenizer.js","../../node_modules/remark/node_modules/micromark/dist/util/miniflat.js","../../node_modules/remark/node_modules/micromark/dist/util/move-point.js","../../node_modules/remark/node_modules/micromark/dist/util/normalize-identifier.js","../../node_modules/remark/node_modules/micromark/dist/util/prefix-size.js","../../node_modules/remark/node_modules/micromark/dist/util/regex-check.js","../../node_modules/remark/node_modules/micromark/dist/util/resolve-all.js","../../node_modules/remark/node_modules/micromark/dist/util/safe-from-int.js","../../node_modules/remark/node_modules/micromark/dist/util/serialize-chunks.js","../../node_modules/remark/node_modules/micromark/dist/util/shallow.js","../../node_modules/remark/node_modules/micromark/dist/util/size-chunks.js","../../node_modules/remark/node_modules/micromark/dist/util/slice-chunks.js","../../node_modules/remark/node_modules/micromark/dist/util/subtokenize.js","../../node_modules/remark/node_modules/parse-entities/decode-entity.browser.js","../../node_modules/remark/node_modules/remark-parse/index.js","../../node_modules/remark/node_modules/trough/index.js","../../node_modules/remark/node_modules/trough/wrap.js","../../node_modules/remark/node_modules/unified/index.js","../../node_modules/remark/node_modules/unist-util-stringify-position/index.js","../../node_modules/remark/node_modules/vfile-message/index.js","../../node_modules/remark/node_modules/vfile/index.js","../../node_modules/remark/node_modules/vfile/lib/core.js","../../node_modules/remark/node_modules/vfile/lib/index.js","../../node_modules/remark/node_modules/vfile/lib/minpath.browser.js","../../node_modules/remark/node_modules/vfile/lib/minproc.browser.js","../../node_modules/repeat-string/index.js","../../node_modules/scheduler/cjs/scheduler.production.min.js","../../node_modules/scheduler/index.js","../../node_modules/shallowequal/index.js","../../node_modules/style-to-object/index.js","../../node_modules/tslib/tslib.es6.mjs","../../node_modules/stylis/src/Enum.js","../../node_modules/stylis/src/Utility.js","../../node_modules/stylis/src/Tokenizer.js","../../node_modules/stylis/src/Serializer.js","../../node_modules/stylis/src/Prefixer.js","../../node_modules/stylis/src/Middleware.js","../../node_modules/stylis/src/Parser.js","../../node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../../src/constants.ts","../../src/utils/empties.ts","../../src/utils/checkDynamicCreation.ts","../../src/utils/determineTheme.ts","../../src/utils/domElements.ts","../../src/utils/escape.ts","../../src/utils/generateAlphabeticName.ts","../../src/utils/hash.ts","../../src/utils/generateComponentId.ts","../../src/utils/getComponentName.ts","../../src/utils/isTag.ts","../../src/utils/hoist.ts","../../src/utils/isFunction.ts","../../src/utils/isStyledComponent.ts","../../src/utils/joinStrings.ts","../../src/utils/isPlainObject.ts","../../src/utils/mixinDeep.ts","../../src/utils/setToString.ts","../../src/utils/error.ts","../../src/sheet/GroupedTag.ts","../../src/sheet/GroupIDAllocator.ts","../../src/sheet/Rehydration.ts","../../src/utils/nonce.ts","../../src/sheet/dom.ts","../../src/sheet/Tag.ts","../../src/sheet/Sheet.ts","../../src/utils/stylis.ts","../../src/models/StyleSheetManager.tsx","../../src/models/Keyframes.ts","../../src/utils/hyphenateStyleName.ts","../../src/utils/flatten.ts","../../src/utils/addUnitIfNeeded.ts","../../src/utils/isStatelessFunction.ts","../../src/utils/isStaticRules.ts","../../src/models/ComponentStyle.ts","../../src/models/ThemeProvider.tsx","../../src/models/StyledComponent.ts","../../src/utils/generateDisplayName.ts","../../src/utils/interleave.ts","../../src/constructors/css.ts","../../src/constructors/constructWithOptions.ts","../../src/constructors/styled.tsx","../../src/models/GlobalStyle.ts","../../src/models/ServerStyleSheet.tsx","../../src/base.ts","../../node_modules/markdown-react-code-preview-loader/node_modules/@babel/standalone|sync","../../node_modules/@babel/runtime/helpers/esm/extends.js","../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteralLoose.js","../../node_modules/@ungap/structured-clone/esm/types.js","../../node_modules/@ungap/structured-clone/esm/deserialize.js","../../node_modules/@ungap/structured-clone/esm/serialize.js","../../node_modules/@ungap/structured-clone/esm/index.js","../../node_modules/comma-separated-tokens/index.js","../../node_modules/decode-named-character-reference/index.dom.js","../../node_modules/devlop/lib/default.js","../https:/raw.githubusercontent.com/fb55/entities/61afd4701eaa736978b13c7351cd3de9a96b04bc/src/generated/decode-data-html.ts","../https:/raw.githubusercontent.com/fb55/entities/61afd4701eaa736978b13c7351cd3de9a96b04bc/src/generated/decode-data-xml.ts","../https:/raw.githubusercontent.com/fb55/entities/61afd4701eaa736978b13c7351cd3de9a96b04bc/src/decode_codepoint.ts","../https:/raw.githubusercontent.com/fb55/entities/61afd4701eaa736978b13c7351cd3de9a96b04bc/src/decode.ts","../https:/raw.githubusercontent.com/fb55/entities/61afd4701eaa736978b13c7351cd3de9a96b04bc/src/escape.ts","../../node_modules/hast-util-heading-rank/lib/index.js","../../node_modules/hast-util-to-string/lib/index.js","../../node_modules/hast-util-whitespace/lib/index.js","../../node_modules/hast-util-parse-selector/lib/index.js","../../node_modules/hastscript/lib/core.js","../../node_modules/hastscript/lib/html.js","../../node_modules/mdast-util-to-string/lib/index.js","../../node_modules/micromark-core-commonmark/lib/blank-line.js","../../node_modules/micromark-factory-space/index.js","../../node_modules/micromark-util-character/index.js","../../node_modules/micromark-util-chunked/index.js","../../node_modules/micromark-util-classify-character/index.js","../../node_modules/micromark-util-combine-extensions/index.js","../../node_modules/micromark-util-normalize-identifier/index.js","../../node_modules/micromark-util-resolve-all/index.js","../../node_modules/character-entities-legacy/index.js","../../node_modules/character-reference-invalid/index.js","../../node_modules/is-decimal/index.js","../../node_modules/is-hexadecimal/index.js","../../node_modules/is-alphanumerical/index.js","../../node_modules/is-alphabetical/index.js","../../node_modules/parse-entities/lib/index.js","../../node_modules/property-information/lib/util/schema.js","../../node_modules/property-information/lib/util/merge.js","../../node_modules/property-information/lib/util/create.js","../../node_modules/property-information/lib/xlink.js","../../node_modules/property-information/lib/xml.js","../../node_modules/property-information/lib/util/case-sensitive-transform.js","../../node_modules/property-information/lib/util/case-insensitive-transform.js","../../node_modules/property-information/lib/xmlns.js","../../node_modules/property-information/lib/aria.js","../../node_modules/property-information/lib/html.js","../../node_modules/property-information/lib/svg.js","../../node_modules/property-information/index.js","../../node_modules/property-information/lib/find.js","../../node_modules/property-information/lib/normalize.js","../../node_modules/property-information/lib/util/defined-info.js","../../node_modules/property-information/lib/util/info.js","../../node_modules/property-information/lib/util/types.js","../../node_modules/property-information/lib/hast-to-react.js","../../node_modules/style-to-object/index.mjs","../../node_modules/unist-util-stringify-position/lib/index.js","../../node_modules/vfile-message/lib/index.js","../../node_modules/hast-util-to-jsx-runtime/lib/index.js","../../node_modules/html-url-attributes/lib/index.js","../../node_modules/micromark-util-subtokenize/index.js","../../node_modules/micromark/lib/initialize/content.js","../../node_modules/micromark/lib/initialize/document.js","../../node_modules/micromark-core-commonmark/lib/content.js","../../node_modules/micromark/lib/initialize/flow.js","../../node_modules/micromark/lib/initialize/text.js","../../node_modules/micromark/lib/create-tokenizer.js","../../node_modules/micromark-core-commonmark/lib/thematic-break.js","../../node_modules/micromark-core-commonmark/lib/list.js","../../node_modules/micromark-core-commonmark/lib/block-quote.js","../../node_modules/micromark-factory-destination/index.js","../../node_modules/micromark-factory-label/index.js","../../node_modules/micromark-factory-title/index.js","../../node_modules/micromark-factory-whitespace/index.js","../../node_modules/micromark-core-commonmark/lib/definition.js","../../node_modules/micromark-core-commonmark/lib/code-indented.js","../../node_modules/micromark-core-commonmark/lib/heading-atx.js","../../node_modules/micromark-core-commonmark/lib/setext-underline.js","../../node_modules/micromark-util-html-tag-name/index.js","../../node_modules/micromark-core-commonmark/lib/html-flow.js","../../node_modules/micromark-core-commonmark/lib/code-fenced.js","../../node_modules/micromark-core-commonmark/lib/character-reference.js","../../node_modules/micromark-core-commonmark/lib/character-escape.js","../../node_modules/micromark-core-commonmark/lib/line-ending.js","../../node_modules/micromark-core-commonmark/lib/label-end.js","../../node_modules/micromark-core-commonmark/lib/label-start-image.js","../../node_modules/micromark-core-commonmark/lib/attention.js","../../node_modules/micromark-core-commonmark/lib/autolink.js","../../node_modules/micromark-core-commonmark/lib/html-text.js","../../node_modules/micromark-core-commonmark/lib/label-start-link.js","../../node_modules/micromark-core-commonmark/lib/hard-break-escape.js","../../node_modules/micromark-core-commonmark/lib/code-text.js","../../node_modules/micromark/lib/constructs.js","../../node_modules/micromark/lib/preprocess.js","../../node_modules/micromark-util-decode-numeric-character-reference/index.js","../../node_modules/micromark-util-decode-string/index.js","../../node_modules/mdast-util-from-markdown/lib/index.js","../../node_modules/micromark/lib/postprocess.js","../../node_modules/micromark/lib/parse.js","../../node_modules/remark-parse/lib/index.js","../../node_modules/micromark-util-sanitize-uri/index.js","../../node_modules/mdast-util-to-hast/lib/footer.js","../../node_modules/mdast-util-to-hast/lib/revert.js","../../node_modules/mdast-util-to-hast/lib/handlers/list-item.js","../../node_modules/trim-lines/index.js","../../node_modules/mdast-util-to-hast/lib/handlers/index.js","../../node_modules/mdast-util-to-hast/lib/handlers/blockquote.js","../../node_modules/mdast-util-to-hast/lib/handlers/break.js","../../node_modules/mdast-util-to-hast/lib/handlers/code.js","../../node_modules/mdast-util-to-hast/lib/handlers/delete.js","../../node_modules/mdast-util-to-hast/lib/handlers/emphasis.js","../../node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js","../../node_modules/mdast-util-to-hast/lib/handlers/heading.js","../../node_modules/mdast-util-to-hast/lib/handlers/html.js","../../node_modules/mdast-util-to-hast/lib/handlers/image-reference.js","../../node_modules/mdast-util-to-hast/lib/handlers/image.js","../../node_modules/mdast-util-to-hast/lib/handlers/inline-code.js","../../node_modules/mdast-util-to-hast/lib/handlers/link-reference.js","../../node_modules/mdast-util-to-hast/lib/handlers/link.js","../../node_modules/mdast-util-to-hast/lib/handlers/list.js","../../node_modules/mdast-util-to-hast/lib/handlers/paragraph.js","../../node_modules/mdast-util-to-hast/lib/handlers/root.js","../../node_modules/mdast-util-to-hast/lib/handlers/strong.js","../../node_modules/mdast-util-to-hast/lib/handlers/table.js","../../node_modules/mdast-util-to-hast/lib/handlers/table-cell.js","../../node_modules/mdast-util-to-hast/lib/handlers/table-row.js","../../node_modules/mdast-util-to-hast/lib/handlers/text.js","../../node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js","../../node_modules/mdast-util-to-hast/lib/state.js","../../node_modules/mdast-util-to-hast/lib/index.js","../../node_modules/remark-rehype/lib/index.js","../../node_modules/bail/index.js","../../node_modules/unified/node_modules/is-plain-obj/index.js","../../node_modules/trough/index.js","../../node_modules/vfile/lib/minpath.browser.js","../../node_modules/vfile/lib/minproc.browser.js","../../node_modules/vfile/lib/minurl.shared.js","../../node_modules/vfile/lib/minurl.browser.js","../../node_modules/vfile/lib/index.js","../../node_modules/unified/lib/callable-instance.js","../../node_modules/unified/lib/index.js","../../node_modules/react-markdown/lib/index.js","../../node_modules/rehype-attr/src/utils.ts","../../node_modules/rehype-attr/src/index.ts","../../node_modules/hast-util-is-element/lib/index.js","../../node_modules/rehype-autolink-headings/lib/index.js","../../node_modules/rehype-ignore/src/index.ts","../../node_modules/rehype-prism-plus/node_modules/unist-util-is/lib/index.js","../../node_modules/rehype-prism-plus/node_modules/unist-util-visit-parents/lib/index.js","../../node_modules/rehype-prism-plus/node_modules/hast-util-to-string/index.js","../../node_modules/unist-util-filter/node_modules/unist-util-is/lib/index.js","../../node_modules/unist-util-filter/lib/index.js","../../src/generator.js","../../node_modules/rehype-prism-plus/node_modules/unist-util-visit/lib/index.js","../../src/all.js","../../src/common.js","../../node_modules/hast-util-raw/node_modules/hast-util-parse-selector/lib/index.js","../../node_modules/hast-util-raw/node_modules/hastscript/lib/create-h.js","../../node_modules/hast-util-raw/node_modules/hastscript/lib/svg-case-sensitive-tag-names.js","../../node_modules/hast-util-raw/node_modules/hastscript/lib/index.js","../../node_modules/hast-util-raw/node_modules/vfile-location/lib/index.js","../../node_modules/web-namespaces/index.js","../../node_modules/hast-util-raw/node_modules/hast-util-from-parse5/lib/index.js","../../node_modules/hast-util-to-parse5/lib/index.js","../../node_modules/html-void-elements/index.js","../../node_modules/hast-util-raw/lib/index.js","../../node_modules/rehype-raw/lib/index.js","../../node_modules/css-selector-parser/dist/mjs/indexes.js","../../node_modules/css-selector-parser/dist/mjs/pseudo-signatures.js","../../node_modules/css-selector-parser/dist/mjs/syntax-definitions.js","../../node_modules/css-selector-parser/dist/mjs/utils.js","../../node_modules/css-selector-parser/dist/mjs/parser.js","../../node_modules/css-selector-parser/dist/mjs/ast.js","../../node_modules/hast-util-select/lib/parse.js","../../node_modules/direction/index.js","../../node_modules/hast-util-select/lib/enter-state.js","../../node_modules/hast-util-select/lib/attribute.js","../../node_modules/hast-util-select/lib/class-name.js","../../node_modules/hast-util-select/lib/id.js","../../node_modules/hast-util-select/lib/name.js","../../node_modules/bcp-47-match/index.js","../../node_modules/hast-util-has-property/lib/index.js","../https:/raw.githubusercontent.com/fb55/nth-check/639fd2a4000b69f82350aad8c34cb43f77e483ba/src/parse.ts","../https:/raw.githubusercontent.com/fb55/nth-check/639fd2a4000b69f82350aad8c34cb43f77e483ba/src/index.ts","../https:/raw.githubusercontent.com/fb55/nth-check/639fd2a4000b69f82350aad8c34cb43f77e483ba/src/compile.ts","../../node_modules/hast-util-select/lib/pseudo.js","../../node_modules/hast-util-select/lib/test.js","../../node_modules/hast-util-select/lib/walk.js","../../node_modules/hast-util-select/lib/index.js","../../node_modules/rehype-rewrite/src/index.ts","../../node_modules/github-slugger/regex.js","../../node_modules/github-slugger/index.js","../../node_modules/rehype-slug/lib/index.js","../../node_modules/ccount/index.js","../../node_modules/mdast-util-find-and-replace/lib/index.js","../../node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp/index.js","../../node_modules/mdast-util-gfm-autolink-literal/lib/index.js","../../node_modules/mdast-util-gfm-footnote/lib/index.js","../../node_modules/mdast-util-gfm-strikethrough/lib/index.js","../../node_modules/markdown-table/index.js","../../node_modules/mdast-util-to-markdown/lib/handle/blockquote.js","../../node_modules/mdast-util-to-markdown/lib/util/pattern-in-scope.js","../../node_modules/mdast-util-to-markdown/lib/handle/break.js","../../node_modules/mdast-util-to-markdown/lib/handle/code.js","../../node_modules/mdast-util-to-markdown/lib/util/check-quote.js","../../node_modules/mdast-util-to-markdown/lib/handle/emphasis.js","../../node_modules/mdast-util-to-markdown/lib/util/check-emphasis.js","../../node_modules/mdast-util-to-markdown/lib/handle/html.js","../../node_modules/mdast-util-to-markdown/lib/handle/image.js","../../node_modules/mdast-util-to-markdown/lib/handle/image-reference.js","../../node_modules/mdast-util-to-markdown/lib/handle/inline-code.js","../../node_modules/mdast-util-to-markdown/lib/util/format-link-as-autolink.js","../../node_modules/mdast-util-to-markdown/lib/handle/link.js","../../node_modules/mdast-util-to-markdown/lib/handle/link-reference.js","../../node_modules/mdast-util-to-markdown/lib/util/check-bullet.js","../../node_modules/mdast-util-to-markdown/lib/util/check-rule.js","../../node_modules/mdast-util-phrasing/lib/index.js","../../node_modules/mdast-util-to-markdown/lib/handle/strong.js","../../node_modules/mdast-util-to-markdown/lib/util/check-strong.js","../../node_modules/mdast-util-to-markdown/lib/handle/index.js","../../node_modules/mdast-util-to-markdown/lib/util/check-fence.js","../../node_modules/mdast-util-to-markdown/lib/util/format-code-as-indented.js","../../node_modules/longest-streak/index.js","../../node_modules/mdast-util-to-markdown/lib/handle/definition.js","../../node_modules/mdast-util-to-markdown/lib/handle/heading.js","../../node_modules/mdast-util-to-markdown/lib/util/format-heading-as-setext.js","../../node_modules/mdast-util-to-markdown/lib/handle/list.js","../../node_modules/mdast-util-to-markdown/lib/util/check-bullet-ordered.js","../../node_modules/mdast-util-to-markdown/lib/util/check-bullet-other.js","../../node_modules/mdast-util-to-markdown/lib/handle/list-item.js","../../node_modules/mdast-util-to-markdown/lib/util/check-list-item-indent.js","../../node_modules/mdast-util-to-markdown/lib/handle/paragraph.js","../../node_modules/mdast-util-to-markdown/lib/handle/root.js","../../node_modules/mdast-util-to-markdown/lib/handle/text.js","../../node_modules/mdast-util-to-markdown/lib/handle/thematic-break.js","../../node_modules/mdast-util-to-markdown/lib/util/check-rule-repetition.js","../../node_modules/mdast-util-gfm-table/lib/index.js","../../node_modules/mdast-util-gfm-task-list-item/lib/index.js","../../node_modules/micromark-extension-gfm-autolink-literal/lib/syntax.js","../../node_modules/micromark-extension-gfm-footnote/lib/syntax.js","../../node_modules/micromark-extension-gfm-strikethrough/lib/syntax.js","../../node_modules/micromark-extension-gfm-table/lib/edit-map.js","../../node_modules/micromark-extension-gfm-table/lib/infer.js","../../node_modules/micromark-extension-gfm-table/lib/syntax.js","../../node_modules/micromark-extension-gfm-task-list-item/lib/syntax.js","../../node_modules/remark-gfm/lib/index.js","../../node_modules/micromark-extension-gfm/index.js","../../node_modules/mdast-util-gfm/lib/index.js","../../node_modules/space-separated-tokens/index.js","../../node_modules/unist-util-is/lib/index.js","../../node_modules/unist-util-position/lib/index.js","../../node_modules/unist-util-visit-parents/lib/index.js","../../node_modules/unist-util-visit/lib/index.js","../../node_modules/zwitch/index.js","../webpack/bootstrap","../webpack/runtime/chunk loaded","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../webpack/runtime/nonce","../webpack/startup"],"sourcesContent":["////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum Action {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Pop = \"POP\",\n\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Push = \"PUSH\",\n\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n /**\n * A URL pathname, beginning with a /.\n */\n pathname: string;\n\n /**\n * A URL search string, beginning with a ?.\n */\n search: string;\n\n /**\n * A URL fragment identifier, beginning with a #.\n */\n hash: string;\n}\n\n// TODO: (v7) Change the Location generic default from `any` to `unknown` and\n// remove Remix `useLocation` wrapper.\n\n/**\n * An entry in a history stack. A location contains information about the\n * URL path, as well as possibly some arbitrary state and a key.\n */\nexport interface Location extends Path {\n /**\n * A value of arbitrary data associated with this location.\n */\n state: State;\n\n /**\n * A unique string associated with this location. May be used to safely store\n * and retrieve data in some other storage API, like `localStorage`.\n *\n * Note: This value is always \"default\" on the initial location.\n */\n key: string;\n}\n\n/**\n * A change to the current location.\n */\nexport interface Update {\n /**\n * The action that triggered the change.\n */\n action: Action;\n\n /**\n * The new location.\n */\n location: Location;\n\n /**\n * The delta between this location and the former location in the history stack\n */\n delta: number | null;\n}\n\n/**\n * A function that receives notifications about location changes.\n */\nexport interface Listener {\n (update: Update): void;\n}\n\n/**\n * Describes a location that is the destination of some navigation, either via\n * `history.push` or `history.replace`. This may be either a URL or the pieces\n * of a URL path.\n */\nexport type To = string | Partial;\n\n/**\n * A history is an interface to the navigation stack. The history serves as the\n * source of truth for the current location, as well as provides a set of\n * methods that may be used to change it.\n *\n * It is similar to the DOM's `window.history` object, but with a smaller, more\n * focused API.\n */\nexport interface History {\n /**\n * The last action that modified the current location. This will always be\n * Action.Pop when a history instance is first created. This value is mutable.\n */\n readonly action: Action;\n\n /**\n * The current location. This value is mutable.\n */\n readonly location: Location;\n\n /**\n * Returns a valid href for the given `to` value that may be used as\n * the value of an attribute.\n *\n * @param to - The destination URL\n */\n createHref(to: To): string;\n\n /**\n * Returns a URL for the given `to` value\n *\n * @param to - The destination URL\n */\n createURL(to: To): URL;\n\n /**\n * Encode a location the same way window.history would do (no-op for memory\n * history) so we ensure our PUSH/REPLACE navigations for data routers\n * behave the same as POP\n *\n * @param to Unencoded path\n */\n encodeLocation(to: To): Path;\n\n /**\n * Pushes a new location onto the history stack, increasing its length by one.\n * If there were any entries in the stack after the current one, they are\n * lost.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n push(to: To, state?: any): void;\n\n /**\n * Replaces the current location in the history stack with a new one. The\n * location that was replaced will no longer be available.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n replace(to: To, state?: any): void;\n\n /**\n * Navigates `n` entries backward/forward in the history stack relative to the\n * current index. For example, a \"back\" navigation would use go(-1).\n *\n * @param delta - The delta in the stack index\n */\n go(delta: number): void;\n\n /**\n * Sets up a listener that will be called whenever the current location\n * changes.\n *\n * @param listener - A function that will be called when the location changes\n * @returns unlisten - A function that may be used to stop listening\n */\n listen(listener: Listener): () => void;\n}\n\ntype HistoryState = {\n usr: any;\n key?: string;\n idx: number;\n};\n\nconst PopStateEventType = \"popstate\";\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Memory History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A user-supplied object that describes a location. Used when providing\n * entries to `createMemoryHistory` via its `initialEntries` option.\n */\nexport type InitialEntry = string | Partial;\n\nexport type MemoryHistoryOptions = {\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n v5Compat?: boolean;\n};\n\n/**\n * A memory history stores locations in memory. This is useful in stateful\n * environments where there is no web browser, such as node tests or React\n * Native.\n */\nexport interface MemoryHistory extends History {\n /**\n * The current index in the history stack.\n */\n readonly index: number;\n}\n\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nexport function createMemoryHistory(\n options: MemoryHistoryOptions = {}\n): MemoryHistory {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries: Location[]; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) =>\n createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index === 0 ? \"default\" : undefined\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function clampIndex(n: number): number {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation(): Location {\n return entries[index];\n }\n function createMemoryLocation(\n to: To,\n state: any = null,\n key?: string\n ): Location {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n\n function createHref(to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n let history: MemoryHistory = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to: To) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\",\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 1 });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 0 });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({ action, location: nextLocation, delta });\n }\n },\n listen(fn: Listener) {\n listener = fn;\n return () => {\n listener = null;\n };\n },\n };\n\n return history;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Browser History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A browser history stores the current location in regular URLs in a web\n * browser environment. This is the standard for most web apps and provides the\n * cleanest URLs the browser's address bar.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory\n */\nexport interface BrowserHistory extends UrlHistory {}\n\nexport type BrowserHistoryOptions = UrlHistoryOptions;\n\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nexport function createBrowserHistory(\n options: BrowserHistoryOptions = {}\n): BrowserHistory {\n function createBrowserLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let { pathname, search, hash } = window.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createBrowserHref(window: Window, to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hash History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A hash history stores the current location in the fragment identifier portion\n * of the URL in a web browser environment.\n *\n * This is ideal for apps that do not control the server for some reason\n * (because the fragment identifier is never sent to the server), including some\n * shared hosting environments that do not provide fine-grained controls over\n * which pages are served at which URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory\n */\nexport interface HashHistory extends UrlHistory {}\n\nexport type HashHistoryOptions = UrlHistoryOptions;\n\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nexport function createHashHistory(\n options: HashHistoryOptions = {}\n): HashHistory {\n function createHashLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n } = parsePath(window.location.hash.substr(1));\n\n // Hash URL should always have a leading / just like window.location.pathname\n // does, so if an app ends up at a route like /#something then we add a\n // leading slash so all of our path-matching behaves the same as if it would\n // in a browser router. This is particularly important when there exists a\n // root splat route () since that matches internally against\n // \"/*\" and we'd expect /#something to 404 in a hash router app.\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createHashHref(window: Window, to: To) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location: Location, to: To) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region UTILS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @private\n */\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant(\n value: T | null | undefined,\n message?: string\n): asserts value is T;\nexport function invariant(value: any, message?: string) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nexport function warning(cond: any, message: string) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience, so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location, index: number): HistoryState {\n return {\n usr: location.state,\n key: location.key,\n idx: index,\n };\n}\n\n/**\n * Creates a Location object with a unique key from the given Path\n */\nexport function createLocation(\n current: string | Location,\n to: To,\n state: any = null,\n key?: string\n): Readonly {\n let location: Readonly = {\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\",\n ...(typeof to === \"string\" ? parsePath(to) : to),\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: (to && (to as Location).key) || key || createKey(),\n };\n return location;\n}\n\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nexport function createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n}: Partial) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nexport function parsePath(path: string): Partial {\n let parsedPath: Partial = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport interface UrlHistory extends History {}\n\nexport type UrlHistoryOptions = {\n window?: Window;\n v5Compat?: boolean;\n};\n\nfunction getUrlBasedHistory(\n getLocation: (window: Window, globalHistory: Window[\"history\"]) => Location,\n createHref: (window: Window, to: To) => string,\n validateLocation: ((location: Location, to: To) => void) | null,\n options: UrlHistoryOptions = {}\n): UrlHistory {\n let { window = document.defaultView!, v5Compat = false } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n let index = getIndex()!;\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState({ ...globalHistory.state, idx: index }, \"\");\n }\n\n function getIndex(): number {\n let state = globalHistory.state || { idx: null };\n return state.idx;\n }\n\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({ action, location: history.location, delta });\n }\n }\n\n function push(to: To, state?: any) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // If the exception is because `state` can't be serialized, let that throw\n // outwards just like a replace call would so the dev knows the cause\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 1 });\n }\n }\n\n function replace(to: To, state?: any) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 0 });\n }\n }\n\n function createURL(to: To): URL {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base =\n window.location.origin !== \"null\"\n ? window.location.origin\n : window.location.href;\n\n let href = typeof to === \"string\" ? to : createPath(to);\n invariant(\n base,\n `No window.location.(origin|href) available to create URL for href: ${href}`\n );\n return new URL(href, base);\n }\n\n let history: History = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn: Listener) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash,\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n },\n };\n\n return history;\n}\n\n//#endregion\n","import type { Location, Path, To } from \"./history\";\nimport { invariant, parsePath, warning } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: any;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n status: number;\n location: string;\n revalidate: boolean;\n reloadDocument?: boolean;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: any;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\ntype LowerCaseFormMethod = \"get\" | \"post\" | \"put\" | \"patch\" | \"delete\";\ntype UpperCaseFormMethod = Uppercase;\n\n/**\n * Users can specify either lowercase or uppercase form methods on `
`,\n * useSubmit(), ``, etc.\n */\nexport type HTMLFormMethod = LowerCaseFormMethod | UpperCaseFormMethod;\n\n/**\n * Active navigation/fetcher form methods are exposed in lowercase on the\n * RouterState\n */\nexport type FormMethod = LowerCaseFormMethod;\nexport type MutationFormMethod = Exclude;\n\n/**\n * In v7, active navigation/fetcher form methods are exposed in uppercase on the\n * RouterState. This is to align with the normalization done via fetch().\n */\nexport type V7_FormMethod = UpperCaseFormMethod;\nexport type V7_MutationFormMethod = Exclude;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\"\n | \"application/json\"\n | \"text/plain\";\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport type Submission =\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n json: undefined;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: JsonValue;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: undefined;\n text: string;\n };\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n context?: Context;\n}\n\n// TODO: (v7) Change the defaults from any to unknown in and remove Remix wrappers:\n// ActionFunction, ActionFunctionArgs, LoaderFunction, LoaderFunctionArgs\n// Also, make them a type alias instead of an interface\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Loaders and actions can return anything except `undefined` (`null` is a\n * valid return value if there is no data to return). Responses are preferred\n * and will ease any future migration to Remix\n */\ntype DataFunctionValue = Response | NonNullable | null;\n\n/**\n * Route loader function signature\n */\nexport interface LoaderFunction {\n (args: LoaderFunctionArgs):\n | Promise\n | DataFunctionValue;\n}\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (args: ActionFunctionArgs):\n | Promise\n | DataFunctionValue;\n}\n\n/**\n * Arguments passed to shouldRevalidate function\n */\nexport interface ShouldRevalidateFunctionArgs {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n text?: Submission[\"text\"];\n formData?: Submission[\"formData\"];\n json?: Submission[\"json\"];\n actionResult?: any;\n defaultShouldRevalidate: boolean;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: ShouldRevalidateFunctionArgs): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set `hasErrorBoundary`\n * from the framework-aware `errorElement` prop\n *\n * @deprecated Use `mapRouteProperties` instead\n */\nexport interface DetectErrorBoundaryFunction {\n (route: AgnosticRouteObject): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set any framework-specific\n * properties from framework-agnostic properties\n */\nexport interface MapRoutePropertiesFunction {\n (route: AgnosticRouteObject): {\n hasErrorBoundary: boolean;\n } & Record;\n}\n\n/**\n * Keys we cannot change from within a lazy() function. We spread all other keys\n * onto the route. Either they're meaningful to the router, or they'll get\n * ignored.\n */\nexport type ImmutableRouteKey =\n | \"lazy\"\n | \"caseSensitive\"\n | \"path\"\n | \"id\"\n | \"index\"\n | \"children\";\n\nexport const immutableRouteKeys = new Set([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"children\",\n]);\n\ntype RequireOne = Exclude<\n {\n [K in keyof T]: K extends Key ? Omit & Required> : never;\n }[keyof T],\n undefined\n>;\n\n/**\n * lazy() function to load a route definition, which can add non-matching\n * related properties to a route\n */\nexport interface LazyRouteFunction {\n (): Promise>>;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction;\n action?: ActionFunction;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n lazy?: LazyRouteFunction;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\nexport type RouteManifest = Record;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam | _PathParam\n : // find params after `:`\n Path extends `:${infer Param}`\n ? Param extends `${infer Optional}?`\n ? Optional\n : Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\nexport type PathParam =\n // check if path is just a wildcard\n Path extends \"*\" | \"/*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam\n : // look for params in the absence of wildcards\n _PathParam;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise, return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n // if you could not find path params, fallback to `string`\n [PathParam] extends [never] ? string : PathParam;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary, so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n mapRouteProperties: MapRoutePropertiesFunction,\n parentPath: number[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, index];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !manifest[id],\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n };\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n children: undefined,\n };\n manifest[id] = pathOrLayoutRoute;\n\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n route.children,\n mapRouteProperties,\n treePath,\n manifest\n );\n }\n\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename = \"/\"\n): AgnosticRouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n matches = matchRouteBranch(\n branches[i],\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n safelyDecodeURI(pathname)\n );\n }\n\n return matches;\n}\n\nexport interface UIMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: Data;\n handle: Handle;\n}\n\nexport function convertRouteMatchToUiMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UIMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle,\n };\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array, so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n\n return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children, so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explode _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then, if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:\\w+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch,\n pathname: string\n): AgnosticRouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n if (!match) return null;\n\n Object.assign(matchedParams, match.params);\n\n let route = meta.route;\n\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams as Params,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nexport function generatePath(\n originalPath: Path,\n params: {\n [key in PathParam]: string | null;\n } = {} as any\n): string {\n let path: string = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n\n const stringify = (p: any) =>\n p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n\n const segments = path\n .split(/\\/+/)\n .map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\" as PathParam;\n // Apply the splat\n return stringify(params[star]);\n }\n\n const keyMatch = segment.match(/^:(\\w+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key as PathParam];\n invariant(optional === \"?\" || param != null, `Missing \":${key}\" param`);\n return stringify(param);\n }\n\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter((segment) => !!segment);\n\n return prefix + segments.join(\"/\");\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, compiledParams] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = compiledParams.reduce>(\n (memo, { paramName, isOptional }, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = safelyDecodeURIComponent(value || \"\", paramName);\n }\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\ntype CompiledPathParam = { paramName: string; isOptional?: boolean };\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, CompiledPathParam[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let params: CompiledPathParam[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(/\\/:(\\w+)(\\?)?/g, (_: string, paramName: string, isOptional) => {\n params.push({ paramName, isOptional: isOptional != null });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n });\n\n if (path.endsWith(\"*\")) {\n params.push({ paramName: \"*\" });\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex, so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, params];\n}\n\nfunction safelyDecodeURI(value: string) {\n try {\n return decodeURI(value);\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\nfunction safelyDecodeURIComponent(value: string, paramName: string) {\n try {\n return decodeURIComponent(value);\n } catch (error) {\n warning(\n false,\n `The value for the URL param \"${paramName}\" will not be decoded because` +\n ` the string \"${value}\" is a malformed URL segment. This is probably` +\n ` due to a bad percent encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nexport function getResolveToMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n // Use the full pathname for the leaf match so we include splat values for \".\" links\n return getPathContributingMatches(matches).map((match, idx) =>\n idx === matches.length - 1 ? match.pathname : match.pathnameBase\n );\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (toPathname == null) {\n from = locationPathname;\n } else if (isPathRelative) {\n let fromSegments = routePathnames[routePathnames.length - 1]\n .replace(/^\\//, \"\")\n .split(\"/\");\n\n if (toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n // With relative=\"path\", each leading .. segment means \"go up one URL segment\"\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n fromSegments.pop();\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n from = \"/\" + fromSegments.join(\"/\");\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n if (toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n // If there are more \"..\" segments than parent routes, resolve relative to\n // the root / URL.\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = (\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport interface TrackedPromise extends Promise {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, undefined, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\n `Deferred data for key \"${key}\" resolved/rejected with \\`undefined\\`, ` +\n `you must resolve/reject with a value or \\`null\\`.`\n );\n Object.defineProperty(promise, \"_error\", { get: () => undefinedError });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record,\n init?: number | ResponseInit\n) => DeferredData;\n\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirectDocument: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n\nexport type ErrorResponse = {\n status: number;\n statusText: string;\n data: any;\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nexport class ErrorResponseImpl implements ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n private error?: Error;\n private internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n warning,\n} from \"./history\";\nimport type {\n ActionFunction,\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n AgnosticRouteObject,\n DataResult,\n DeferredData,\n DeferredResult,\n DetectErrorBoundaryFunction,\n ErrorResult,\n FormEncType,\n FormMethod,\n HTMLFormMethod,\n ImmutableRouteKey,\n LoaderFunction,\n MapRoutePropertiesFunction,\n MutationFormMethod,\n RedirectResult,\n RouteData,\n RouteManifest,\n ShouldRevalidateFunctionArgs,\n Submission,\n SuccessResult,\n UIMatch,\n V7_FormMethod,\n V7_MutationFormMethod,\n} from \"./utils\";\nimport {\n ErrorResponseImpl,\n ResultType,\n convertRouteMatchToUiMatch,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n getResolveToMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n resolveTo,\n stripBasename,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the window associated with the router\n */\n get window(): RouterInit[\"window\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): Promise;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To | null, opts?: RouterNavigateOptions): Promise;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher(key: string): Fetcher;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get a navigation blocker\n * @param key The identifier for the blocker\n * @param fn The blocker function implementation\n */\n getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete a navigation blocker\n * @param key The identifier for the blocker\n */\n deleteBlocker(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * HMR needs to pass in-flight route updates to React Router\n * TODO: Replace this with granular route update APIs (addRoute, updateRoute, deleteRoute)\n */\n _internalSetRoutes(routes: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map;\n\n /**\n * Map of current blockers\n */\n blockers: Map;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick\n>;\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface FutureConfig {\n v7_fetcherPersist: boolean;\n v7_normalizeFormMethod: boolean;\n v7_prependBasename: boolean;\n}\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n routes: AgnosticRouteObject[];\n history: History;\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n hydrationData?: HydrationState;\n window?: Window;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n basename: Router[\"basename\"];\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record;\n actionHeaders: Record;\n activeDeferreds: Record | null;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(\n request: Request,\n opts?: { requestContext?: unknown }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: { routeId?: string; requestContext?: unknown }\n ): Promise;\n}\n\ntype ViewTransitionOpts = {\n currentLocation: Location;\n nextLocation: Location;\n};\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (\n state: RouterState,\n opts: {\n deletedFetchers: string[];\n unstable_viewTransitionOpts?: ViewTransitionOpts;\n unstable_flushSync: boolean;\n }\n ): void;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UIMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\n// Allowed for any navigation or fetch\ntype BaseNavigateOrFetchOptions = {\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n};\n\n// Only allowed for navigations\ntype BaseNavigateOptions = BaseNavigateOrFetchOptions & {\n replace?: boolean;\n state?: any;\n fromRouteId?: string;\n unstable_viewTransition?: boolean;\n};\n\n// Only allowed for submission navigations\ntype BaseSubmissionOptions = {\n formMethod?: HTMLFormMethod;\n formEncType?: FormEncType;\n} & (\n | { formData: FormData; body?: undefined }\n | { formData?: undefined; body: any }\n);\n\n/**\n * Options for a navigate() call for a normal (non-submission) navigation\n */\ntype LinkNavigateOptions = BaseNavigateOptions;\n\n/**\n * Options for a navigate() call for a submission navigation\n */\ntype SubmissionNavigateOptions = BaseNavigateOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to navigate() for a navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options for a fetch() load\n */\ntype LoadFetchOptions = BaseNavigateOrFetchOptions;\n\n/**\n * Options for a fetch() submission\n */\ntype SubmitFetchOptions = BaseNavigateOrFetchOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions = LoadFetchOptions | SubmitFetchOptions;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n json: undefined;\n text: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n text: Submission[\"text\"] | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n text: Submission[\"text\"];\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n text: undefined;\n formData: undefined;\n json: undefined;\n data: TData | undefined;\n };\n Loading: {\n state: \"loading\";\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n text: Submission[\"text\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n data: TData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n text: Submission[\"text\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n data: TData | undefined;\n };\n};\n\nexport type Fetcher =\n FetcherStates[keyof FetcherStates];\n\ninterface BlockerBlocked {\n state: \"blocked\";\n reset(): void;\n proceed(): void;\n location: Location;\n}\n\ninterface BlockerUnblocked {\n state: \"unblocked\";\n reset: undefined;\n proceed: undefined;\n location: undefined;\n}\n\ninterface BlockerProceeding {\n state: \"proceeding\";\n reset: undefined;\n proceed: undefined;\n location: Location;\n}\n\nexport type Blocker = BlockerUnblocked | BlockerBlocked | BlockerProceeding;\n\nexport type BlockerFunction = (args: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n}) => boolean;\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Error thrown from the current action, keyed by the route containing the\n * error boundary to render the error. To be committed to the state after\n * loaders have completed\n */\n pendingActionError?: RouteData;\n /**\n * Data returned from the current action, keyed by the route owning the action.\n * To be committed to the state after loaders have completed\n */\n pendingActionData?: RouteData;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Cached info for active fetcher.load() instances so they can participate\n * in revalidation\n */\ninterface FetchLoadMatch {\n routeId: string;\n path: string;\n}\n\n/**\n * Identified fetcher.load() calls that need to be revalidated\n */\ninterface RevalidatingFetcher extends FetchLoadMatch {\n key: string;\n match: AgnosticDataRouteMatch | null;\n matches: AgnosticDataRouteMatch[] | null;\n controller: AbortController | null;\n}\n\n/**\n * Wrapper object to allow us to throw any response out from callLoaderOrAction\n * for queryRouter while preserving whether or not it was thrown or returned\n * from the loader/action\n */\ninterface QueryRouteResponse {\n type: ResultType.data | ResultType.error;\n response: Response;\n}\n\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set(\n validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n \"get\",\n ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set(validRequestMethodsArr);\n\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_BLOCKER: BlockerUnblocked = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined,\n};\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\nconst defaultMapRouteProperties: MapRoutePropertiesFunction = (route) => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary),\n});\n\nconst TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n const routerWindow = init.window\n ? init.window\n : typeof window !== \"undefined\"\n ? window\n : undefined;\n const isBrowser =\n typeof routerWindow !== \"undefined\" &&\n typeof routerWindow.document !== \"undefined\" &&\n typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n\n // Routes keyed by ID\n let manifest: RouteManifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(\n init.routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n let inFlightDataRoutes: AgnosticDataRouteObject[] | undefined;\n let basename = init.basename || \"/\";\n // Config driven behavior flags\n let future: FutureConfig = {\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_prependBasename: false,\n ...init.future,\n };\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n let initialized =\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n !initialMatches.some((m) => m.route.lazy) &&\n // And we have to either have no loaders or have been provided hydrationData\n (!initialMatches.some((m) => m.route.loader) || init.hydrationData != null);\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n blockers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n\n // Should the current navigation enable document.startViewTransition?\n let pendingViewTransitionEnabled = false;\n\n // Store applied view transitions so we can apply them on POP\n let appliedViewTransitions: Map> = new Map<\n string,\n Set\n >();\n\n // Cleanup function for persisting applied transitions to sessionStorage\n let removePageHideEventListener: (() => void) | null = null;\n\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: string[] = [];\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set();\n\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let ignoreNextHistoryUpdate = false;\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location, delta }) => {\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (ignoreNextHistoryUpdate) {\n ignoreNextHistoryUpdate = false;\n return;\n }\n\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location \" +\n \"that was not created by @remix-run/router. This will fail silently in \" +\n \"production. This can happen if you are navigating outside the router \" +\n \"via `window.history.pushState`/`window.location.hash` instead of using \" +\n \"router navigation APIs. This can also happen if you are using \" +\n \"createHashRouter and the user manually changes the URL.\"\n );\n\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction,\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n ignoreNextHistoryUpdate = true;\n init.history.go(delta * -1);\n\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location,\n });\n // Re-do the same POP navigation we just blocked\n init.history.go(delta);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () =>\n persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () =>\n routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location);\n }\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(\n newState: Partial,\n opts: {\n flushSync?: boolean;\n viewTransitionOpts?: ViewTransitionOpts;\n } = {}\n ): void {\n state = {\n ...state,\n ...newState,\n };\n\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers: string[] = [];\n let deletedFetchersKeys: string[] = [];\n\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n\n // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach((subscriber) =>\n subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n unstable_viewTransitionOpts: opts.viewTransitionOpts,\n unstable_flushSync: opts.flushSync === true,\n })\n );\n\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach((key) => state.fetchers.delete(key));\n deletedFetchersKeys.forEach((key) => deleteFetcher(key));\n }\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial>,\n { flushSync }: { flushSync?: boolean } = {}\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset =\n pendingPreventScrollReset === true ||\n (state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n location.state?._isRedirect !== true);\n\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n let viewTransitionOpts: ViewTransitionOpts | undefined;\n\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === HistoryAction.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location,\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n }\n\n updateState(\n {\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers,\n },\n {\n viewTransitionOpts,\n flushSync: flushSync === true,\n }\n );\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n cancelledFetcherLoads = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To | null,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n to,\n opts?.fromRouteId,\n opts?.relative\n );\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n false,\n normalizedPath,\n opts\n );\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.unstable_viewTransition,\n flushSync,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n { overrideNavigation: state.navigation }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n submission?: Submission;\n fetcherSubmission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponseImpl;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n enableViewTransition?: boolean;\n flushSync?: boolean;\n }\n ): Promise {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(routesToUse);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n completeNavigation(\n location,\n {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n },\n { flushSync }\n );\n return;\n }\n\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial load will always\n // be \"same hash\". For example, on /page#hash and submit a \n // which will default to a navigation to /page\n if (\n state.initialized &&\n !isRevalidationRequired &&\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches }, { flushSync });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionData: RouteData | undefined;\n let pendingError: RouteData | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingError = {\n [findNearestBoundary(matches).route.id]: opts.pendingError,\n };\n } else if (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\n // Call action if we received an action submission\n let actionOutput = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n { replace: opts.replace, flushSync }\n );\n\n if (actionOutput.shortCircuited) {\n return;\n }\n\n pendingActionData = actionOutput.pendingActionData;\n pendingError = actionOutput.pendingActionError;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n\n // Create a GET request for the loaders\n request = new Request(request.url, { signal: request.signal });\n }\n\n // Call loaders\n let { shortCircuited, loaderData, errors } = await handleLoaders(\n request,\n location,\n matches,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n flushSync,\n pendingActionData,\n pendingError\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n opts: { replace?: boolean; flushSync?: boolean } = {}\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({ navigation }, { flushSync: opts.flushSync === true });\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id,\n }),\n };\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n manifest,\n mapRouteProperties,\n basename\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n replace =\n result.location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(state, result, { submission, replace });\n return { shortCircuited: true };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions are REPLACE navigations, but if the\n // action threw an error that'll be rendered in an errorElement, we fall\n // back to PUSH so that the user can use the back button to get back to\n // the pre-submission form location to try again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n // Send back an empty object we can use to clear out any prior actionData\n pendingActionData: {},\n pendingActionError: { [boundaryMatch.route.id]: result.error },\n };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n return {\n pendingActionData: { [actionMatch.route.id]: result.data },\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n overrideNavigation?: Navigation,\n submission?: Submission,\n fetcherSubmission?: Submission,\n replace?: boolean,\n flushSync?: boolean,\n pendingActionData?: RouteData,\n pendingError?: RouteData\n ): Promise {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation =\n overrideNavigation || getLoadingNavigation(location, submission);\n\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission =\n submission ||\n fetcherSubmission ||\n getSubmissionFromNavigation(loadingNavigation);\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n pendingActionData,\n pendingError\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n pendingNavigationLoadId = ++incrementingLoadId;\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(\n location,\n {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors: pendingError || null,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\n ...(updatedFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n },\n { flushSync }\n );\n return { shortCircuited: true };\n }\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n if (!isUninterruptedRevalidation) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n fetcher ? fetcher.data : undefined\n );\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n let actionData = pendingActionData || state.actionData;\n updateState(\n {\n navigation: loadingNavigation,\n ...(actionData\n ? Object.keys(actionData).length === 0\n ? { actionData: null }\n : { actionData }\n : {}),\n ...(revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n },\n {\n flushSync,\n }\n );\n }\n\n revalidatingFetchers.forEach((rf) => {\n if (fetchControllers.has(rf.key)) {\n abortFetcher(rf.key);\n }\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((f) => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(results);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n await startRedirectNavigation(state, redirect.result, { replace });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n pendingError,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers =\n updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n\n return {\n loaderData,\n errors,\n ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n };\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n href,\n routeId,\n opts?.relative\n );\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: normalizedPath }),\n { flushSync }\n );\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n true,\n normalizedPath,\n opts\n );\n\n if (error) {\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n let match = getTargetMatch(matches, path);\n\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(\n key,\n routeId,\n path,\n match,\n matches,\n flushSync,\n submission\n );\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, { routeId, path });\n handleFetcherLoader(\n key,\n routeId,\n path,\n match,\n matches,\n flushSync,\n submission\n );\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n flushSync: boolean,\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n if (!match.route.action && !match.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync,\n });\n\n // Call the action for the fetcher\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let actionResult = await callLoaderOrAction(\n \"action\",\n fetchRequest,\n match,\n requestMatches,\n manifest,\n mapRouteProperties,\n basename\n );\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(state, actionResult, {\n fetcherSubmission: submission,\n });\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n init.history,\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(routesToUse, state.navigation.location, basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n { [match.route.id]: actionResult.data },\n undefined // No need to send through errors since we short circuit above\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter((rf) => rf.key !== key)\n .forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n existingFetcher ? existingFetcher.data : undefined\n );\n state.fetchers.set(staleKey, revalidatingFetcher);\n if (fetchControllers.has(staleKey)) {\n abortFetcher(staleKey);\n }\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((rf) => abortFetcher(rf.key));\n\n abortController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n abortController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n\n let redirect = findRedirect(results);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n return startRedirectNavigation(state, redirect.result);\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n state.matches,\n matchesToLoad,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n\n abortStaleFetchLoads(loadId);\n\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers),\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n fetchers: new Map(state.fetchers),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n flushSync: boolean,\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(\n key,\n getLoadingFetcher(\n submission,\n existingFetcher ? existingFetcher.data : undefined\n ),\n { flushSync }\n );\n\n // Call the loader for this fetcher route match\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let result: DataResult = await callLoaderOrAction(\n \"loader\",\n fetchRequest,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename\n );\n\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(state, result);\n return;\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n updateFetcherState(key, getDoneFetcher(result.data));\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n state: RouterState,\n redirect: RedirectResult,\n {\n submission,\n fetcherSubmission,\n replace,\n }: {\n submission?: Submission;\n fetcherSubmission?: Submission;\n replace?: boolean;\n } = {}\n ) {\n if (redirect.revalidate) {\n isRevalidationRequired = true;\n }\n\n let redirectLocation = createLocation(state.location, redirect.location, {\n _isRedirect: true,\n });\n invariant(\n redirectLocation,\n \"Expected a location on the redirect navigation\"\n );\n\n if (isBrowser) {\n let isDocumentReload = false;\n\n if (redirect.reloadDocument) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(redirect.location)) {\n const url = init.history.createURL(redirect.location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(redirect.location);\n } else {\n routerWindow.location.assign(redirect.location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true ? HistoryAction.Replace : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let { formMethod, formAction, formEncType } = state.navigation;\n if (\n !submission &&\n !fetcherSubmission &&\n formMethod &&\n formAction &&\n formEncType\n ) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n let activeSubmission = submission || fetcherSubmission;\n if (\n redirectPreserveMethodStatusCodes.has(redirect.status) &&\n activeSubmission &&\n isMutationMethod(activeSubmission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...activeSubmission,\n formAction: redirect.location,\n },\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n } else {\n // If we have a navigation submission, we will preserve it through the\n // redirect navigation\n let overrideNavigation = getLoadingNavigation(\n redirectLocation,\n submission\n );\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n }\n }\n\n async function callLoadersAndMaybeResolveData(\n currentMatches: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n // Call all navigation loaders and revalidating fetcher loaders in parallel,\n // then slice off the results into separate arrays so we can handle them\n // accordingly\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename\n )\n ),\n ...fetchersToLoad.map((f) => {\n if (f.matches && f.match && f.controller) {\n return callLoaderOrAction(\n \"loader\",\n createClientSideRequest(init.history, f.path, f.controller.signal),\n f.match,\n f.matches,\n manifest,\n mapRouteProperties,\n basename\n );\n } else {\n let error: ErrorResult = {\n type: ResultType.error,\n error: getInternalRouterError(404, { pathname: f.path }),\n };\n return error;\n }\n }),\n ]);\n let loaderResults = results.slice(0, matchesToLoad.length);\n let fetcherResults = results.slice(matchesToLoad.length);\n\n await Promise.all([\n resolveDeferredResults(\n currentMatches,\n matchesToLoad,\n loaderResults,\n loaderResults.map(() => request.signal),\n false,\n state.loaderData\n ),\n resolveDeferredResults(\n currentMatches,\n fetchersToLoad.map((f) => f.match),\n fetcherResults,\n fetchersToLoad.map((f) => (f.controller ? f.controller.signal : null)),\n true\n ),\n ]);\n\n return { results, loaderResults, fetcherResults };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.push(key);\n abortFetcher(key);\n }\n });\n }\n\n function updateFetcherState(\n key: string,\n fetcher: Fetcher,\n opts: { flushSync?: boolean } = {}\n ) {\n state.fetchers.set(key, fetcher);\n updateState(\n { fetchers: new Map(state.fetchers) },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function setFetcherError(\n key: string,\n routeId: string,\n error: any,\n opts: { flushSync?: boolean } = {}\n ) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState(\n {\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function getFetcher(key: string): Fetcher {\n if (future.v7_fetcherPersist) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n function deleteFetcher(key: string): void {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (\n fetchControllers.has(key) &&\n !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))\n ) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n deletedFetchers.delete(key);\n state.fetchers.delete(key);\n }\n\n function deleteFetcherAndUpdateState(key: string): void {\n if (future.v7_fetcherPersist) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n } else {\n activeFetchers.set(key, count);\n }\n } else {\n deleteFetcher(key);\n }\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): boolean {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({ blockers });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\n\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(\n positions: Record,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function getScrollKey(location: Location, matches: AgnosticDataRouteMatch[]) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(\n location,\n matches.map((m) => convertRouteMatchToUiMatch(m, state.loaderData))\n );\n return key || location.key;\n }\n return location.key;\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(\n newRoutes,\n mapRouteProperties,\n undefined,\n manifest\n );\n }\n\n router = {\n get basename() {\n return basename;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n encodeLocation: (to: To) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher: deleteFetcherAndUpdateState,\n dispose,\n getBlocker,\n deleteBlocker,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n}\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: CreateStaticHandlerOptions\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let manifest: RouteManifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (opts?.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts?.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n */\n async function query(\n request: Request,\n { requestContext }: { requestContext?: unknown } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let result = await queryImpl(request, location, matches, requestContext);\n if (isResponse(result)) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, basename, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n }: { requestContext?: unknown; routeId?: string } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId,\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n match\n );\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n let data = Object.values(result.loaderData)[0];\n if (result.activeDeferreds?.[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch\n ): Promise | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction, we throw\n // it to bail out and then return or throw here based on whether the user\n // returned or threw\n if (isQueryRouteResponse(e)) {\n if (e.type === ResultType.error) {\n throw e.response;\n }\n return e.response;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n isRouteRequest: boolean\n ): Promise | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id,\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n { isStaticRequest: true, isRouteRequest, requestContext }\n );\n\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(\n `${method}() call aborted: ${request.method} ${request.url}`\n );\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.status,\n headers: {\n Location: result.location,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n let context = await loadRouteData(\n request,\n matches,\n requestContext,\n undefined,\n {\n [boundaryMatch.route.id]: result.error,\n }\n );\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n let context = await loadRouteData(loaderRequest, matches, requestContext);\n\n return {\n ...context,\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch,\n pendingActionError?: RouteData\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (\n isRouteRequest &&\n !routeMatch?.route.loader &&\n !routeMatch?.route.lazy\n ) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : getLoaderMatchesUntilBoundary(\n matches,\n Object.keys(pendingActionError || {})[0]\n );\n let matchesToLoad = requestMatches.filter(\n (m) => m.route.loader || m.route.lazy\n );\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors: pendingActionError || null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n { isStaticRequest: true, isRouteRequest, requestContext }\n )\n ),\n ]);\n\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(\n `${method}() call aborted: ${request.method} ${request.url}`\n );\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionError,\n activeDeferreds\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(\n matchesToLoad.map((match) => match.route.id)\n );\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n activeDeferreds:\n activeDeferreds.size > 0\n ? Object.fromEntries(activeDeferreds.entries())\n : null,\n };\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction isSubmissionNavigation(\n opts: BaseNavigateOrFetchOptions\n): opts is SubmissionNavigateOptions {\n return (\n opts != null &&\n ((\"formData\" in opts && opts.formData != null) ||\n (\"body\" in opts && opts.body !== undefined))\n );\n}\n\nfunction normalizeTo(\n location: Path,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n prependBasename: boolean,\n to: To | null,\n fromRouteId?: string,\n relative?: RelativeRoutingType\n) {\n let contextualMatches: AgnosticDataRouteMatch[];\n let activeRouteMatch: AgnosticDataRouteMatch | undefined;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n\n // Resolve the relative path\n let path = resolveTo(\n to ? to : \".\",\n getResolveToMatches(contextualMatches),\n stripBasename(location.pathname, basename) || location.pathname,\n relative === \"path\"\n );\n\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n\n // Add an ?index param for matched index routes if we don't already have one\n if (\n (to == null || to === \"\" || to === \".\") &&\n activeRouteMatch &&\n activeRouteMatch.route.index &&\n !hasNakedIndexQuery(path.search)\n ) {\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n }\n\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n normalizeFormMethod: boolean,\n isFetcher: boolean,\n path: string,\n opts?: BaseNavigateOrFetchOptions\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponseImpl;\n} {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, { type: \"invalid-body\" }),\n });\n\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod\n ? (rawFormMethod.toUpperCase() as V7_FormMethod)\n : (rawFormMethod.toLowerCase() as FormMethod);\n let formAction = stripHashFromPath(path);\n\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n let text =\n typeof opts.body === \"string\"\n ? opts.body\n : opts.body instanceof FormData ||\n opts.body instanceof URLSearchParams\n ? // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce(\n (acc, [name, value]) => `${acc}${name}=${value}\\n`,\n \"\"\n )\n : String(opts.body);\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text,\n },\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n try {\n let json =\n typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined,\n },\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n\n invariant(\n typeof FormData === \"function\",\n \"FormData is not available in this environment\"\n );\n\n let searchParams: URLSearchParams;\n let formData: FormData;\n\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n\n let submission: Submission = {\n formMethod,\n formAction,\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId?: string\n) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: string[],\n deletedFetchers: Set,\n fetchLoadMatches: Map,\n fetchRedirectIds: Set,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionData?: RouteData,\n pendingError?: RouteData\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingError\n ? Object.values(pendingError)[0]\n : pendingActionData\n ? Object.values(pendingActionData)[0]\n : undefined;\n\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId = pendingError ? Object.keys(pendingError)[0] : undefined;\n let boundaryMatches = getLoaderMatchesUntilBoundary(matches, boundaryId);\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n if (match.route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n if (match.route.loader == null) {\n return false;\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n defaultShouldRevalidate:\n // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n // Clicked the same link, resubmitted a GET form\n currentUrl.pathname + currentUrl.search ===\n nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search ||\n isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n });\n });\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate if fetcher won't be present in the subsequent render\n if (\n !matches.some((m) => m.route.id === f.routeId) ||\n deletedFetchers.has(key)\n ) {\n return;\n }\n\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null,\n });\n return;\n }\n\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.includes(key)) {\n // Always revalidate if the fetcher was cancelled\n shouldRevalidate = true;\n } else if (\n fetcher &&\n fetcher.state !== \"idle\" &&\n fetcher.data === undefined\n ) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n defaultShouldRevalidate: isRevalidationRequired,\n });\n }\n\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController(),\n });\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath != null &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n loaderMatch: AgnosticDataRouteMatch,\n arg: ShouldRevalidateFunctionArgs\n) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return arg.defaultShouldRevalidate;\n}\n\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(\n route: AgnosticDataRouteObject,\n mapRouteProperties: MapRoutePropertiesFunction,\n manifest: RouteManifest\n) {\n if (!route.lazy) {\n return;\n }\n\n let lazyRoute = await route.lazy();\n\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates: Record = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue =\n routeToUpdate[lazyRouteProperty as keyof typeof routeToUpdate];\n\n let isPropertyStaticallyDefined =\n staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n\n warning(\n !isPropertyStaticallyDefined,\n `Route \"${routeToUpdate.id}\" has a static property \"${lazyRouteProperty}\" ` +\n `defined but its lazy function is also returning a value for this property. ` +\n `The lazy route property \"${lazyRouteProperty}\" will be ignored.`\n );\n\n if (\n !isPropertyStaticallyDefined &&\n !immutableRouteKeys.has(lazyRouteProperty as ImmutableRouteKey)\n ) {\n routeUpdates[lazyRouteProperty] =\n lazyRoute[lazyRouteProperty as keyof typeof lazyRoute];\n }\n }\n\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, {\n // To keep things framework agnostic, we use the provided\n // `mapRouteProperties` (or wrapped `detectErrorBoundary`) function to\n // set the framework-aware properties (`element`/`hasErrorBoundary`) since\n // the logic will differ between frameworks.\n ...mapRouteProperties(routeToUpdate),\n lazy: undefined,\n });\n}\n\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n basename: string,\n opts: {\n isStaticRequest?: boolean;\n isRouteRequest?: boolean;\n requestContext?: unknown;\n } = {}\n): Promise {\n let resultType;\n let result;\n let onReject: (() => void) | undefined;\n\n let runHandler = (handler: ActionFunction | LoaderFunction) => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n return Promise.race([\n handler({\n request,\n params: match.params,\n context: opts.requestContext,\n }),\n abortPromise,\n ]);\n };\n\n try {\n let handler = match.route[type];\n\n if (match.route.lazy) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let values = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch((e) => {\n handlerError = e;\n }),\n loadLazyRouteModule(match.route, mapRouteProperties, manifest),\n ]);\n if (handlerError) {\n throw handlerError;\n }\n result = values[0];\n } else {\n // Load lazy route module, then run any returned handler\n await loadLazyRouteModule(match.route, mapRouteProperties, manifest);\n\n handler = match.route[type];\n if (handler) {\n // Handler still run even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id,\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return { type: ResultType.data, data: undefined };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname,\n });\n } else {\n result = await runHandler(handler);\n }\n\n invariant(\n result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n resultType = ResultType.error;\n result = e;\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n if (isResponse(result)) {\n let status = result.status;\n\n // Process redirects\n if (redirectStatusCodes.has(status)) {\n let location = result.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n // Support relative routing in internal redirects\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n location = normalizeTo(\n new URL(request.url),\n matches.slice(0, matches.indexOf(match) + 1),\n basename,\n true,\n location\n );\n } else if (!opts.isStaticRequest) {\n // Strip off the protocol+origin for same-origin + same-basename absolute\n // redirects. If this is a static request, we can let it go back to the\n // browser as-is\n let currentUrl = new URL(request.url);\n let url = location.startsWith(\"//\")\n ? new URL(currentUrl.protocol + location)\n : new URL(location);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n location = url.pathname + url.search + url.hash;\n }\n }\n\n // Don't process redirects in the router during static requests requests.\n // Instead, throw the Response and let the server handle it with an HTTP\n // redirect. We also update the Location header in place in this flow so\n // basename and relative routing is taken into account\n if (opts.isStaticRequest) {\n result.headers.set(\"Location\", location);\n throw result;\n }\n\n return {\n type: ResultType.redirect,\n status,\n location,\n revalidate: result.headers.get(\"X-Remix-Revalidate\") !== null,\n reloadDocument: result.headers.get(\"X-Remix-Reload-Document\") !== null,\n };\n }\n\n // For SSR single-route requests, we want to hand Responses back directly\n // without unwrapping. We do this with the QueryRouteResponse wrapper\n // interface so we can know whether it was returned or thrown\n if (opts.isRouteRequest) {\n let queryRouteResponse: QueryRouteResponse = {\n type:\n resultType === ResultType.error ? ResultType.error : ResultType.data,\n response: result,\n };\n throw queryRouteResponse;\n }\n\n let data: any;\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n data = await result.json();\n } else {\n data = await result.text();\n }\n\n if (resultType === ResultType.error) {\n return {\n type: resultType,\n error: new ErrorResponseImpl(status, result.statusText, data),\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (resultType === ResultType.error) {\n return { type: resultType, error: result };\n }\n\n if (isDeferredData(result)) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n return { type: ResultType.data, data: result };\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n\n if (formEncType === \"application/json\") {\n init.headers = new Headers({ \"Content-Type\": formEncType });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (\n formEncType === \"application/x-www-form-urlencoded\" &&\n submission.formData\n ) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n\n return searchParams;\n}\n\nfunction convertSearchParamsToFormData(\n searchParams: URLSearchParams\n): FormData {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record = {};\n\n // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n // Look upwards from the matched route for the closest ancestor\n // error boundary, defaulting to the root match\n let boundaryMatch = findNearestBoundary(matches, id);\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError) {\n error = Object.values(pendingError)[0];\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n // Prefer higher error values if lower errors bubble to the same boundary\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n } else {\n loaderData[id] = result.data;\n }\n\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError) {\n errors = pendingError;\n loaderData[Object.keys(pendingError)[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: DataResult[],\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingError,\n activeDeferreds\n );\n\n // Process results from our revalidating fetchers\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, match, controller } = revalidatingFetchers[index];\n invariant(\n fetcherResults !== undefined && fetcherResults[index] !== undefined,\n \"Did not find corresponding fetcher result\"\n );\n let result = fetcherResults[index];\n\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n continue;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route =\n routes.length === 1\n ? routes[0]\n : routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n type,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\" | \"invalid-body\";\n } = {}\n) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method} request to \"${pathname}\" but ` +\n `did not provide a \\`loader\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = `No route matches URL \"${pathname}\"`;\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method.toUpperCase()} request to \"${pathname}\" but ` +\n `did not provide an \\`action\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n\n return new ErrorResponseImpl(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(\n results: DataResult[]\n): { result: RedirectResult; idx: number } | undefined {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n if (isRedirectResult(result)) {\n return { result, idx: i };\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nexport function isDeferredData(value: any): value is DeferredData {\n let deferred: DeferredData = value;\n return (\n deferred &&\n typeof deferred === \"object\" &&\n typeof deferred.data === \"object\" &&\n typeof deferred.subscribe === \"function\" &&\n typeof deferred.cancel === \"function\" &&\n typeof deferred.resolveData === \"function\"\n );\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isQueryRouteResponse(obj: any): obj is QueryRouteResponse {\n return (\n obj &&\n isResponse(obj.response) &&\n (obj.type === ResultType.data || obj.type === ResultType.error)\n );\n}\n\nfunction isValidMethod(method: string): method is FormMethod | V7_FormMethod {\n return validRequestMethods.has(method.toLowerCase() as FormMethod);\n}\n\nfunction isMutationMethod(\n method: string\n): method is MutationFormMethod | V7_MutationFormMethod {\n return validMutationMethods.has(method.toLowerCase() as MutationFormMethod);\n}\n\nasync function resolveDeferredResults(\n currentMatches: AgnosticDataRouteMatch[],\n matchesToLoad: (AgnosticDataRouteMatch | null)[],\n results: DataResult[],\n signals: (AbortSignal | null)[],\n isFetcher: boolean,\n currentLoaderData?: RouteData\n) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match!.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n let signal = signals[index];\n invariant(\n signal,\n \"Expected an AbortSignal for revalidating fetcher deferred result\"\n );\n await resolveDeferredData(result, signal, isFetcher).then((result) => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n\nfunction getSubmissionFromNavigation(\n navigation: Navigation\n): Submission | undefined {\n let { formMethod, formAction, formEncType, text, formData, json } =\n navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text,\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined,\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined,\n };\n }\n}\n\nfunction getLoadingNavigation(\n location: Location,\n submission?: Submission\n): NavigationStates[\"Loading\"] {\n if (submission) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n } else {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n };\n return navigation;\n }\n}\n\nfunction getSubmittingNavigation(\n location: Location,\n submission: Submission\n): NavigationStates[\"Submitting\"] {\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n}\n\nfunction getLoadingFetcher(\n submission?: Submission,\n data?: Fetcher[\"data\"]\n): FetcherStates[\"Loading\"] {\n if (submission) {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data,\n };\n return fetcher;\n } else {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n }\n}\n\nfunction getSubmittingFetcher(\n submission: Submission,\n existingFetcher?: Fetcher\n): FetcherStates[\"Submitting\"] {\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined,\n };\n return fetcher;\n}\n\nfunction getDoneFetcher(data: Fetcher[\"data\"]): FetcherStates[\"Idle\"] {\n let fetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n}\n\nfunction restoreAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(\n TRANSITIONS_STORAGE_KEY\n );\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n // no-op, use default empty object\n }\n}\n\nfunction persistAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n if (transitions.size > 0) {\n let json: Record = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(\n TRANSITIONS_STORAGE_KEY,\n JSON.stringify(json)\n );\n } catch (error) {\n warning(\n false,\n `Failed to save applied view transitions in sessionStorage (${error}).`\n );\n }\n }\n}\n\n//#endregion\n","import * as React from \"react\";\nimport type {\n AgnosticIndexRouteObject,\n AgnosticNonIndexRouteObject,\n AgnosticRouteMatch,\n History,\n LazyRouteFunction,\n Location,\n Action as NavigationType,\n RelativeRoutingType,\n Router,\n StaticHandlerContext,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nexport interface IndexRouteObject {\n caseSensitive?: AgnosticIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticIndexRouteObject[\"path\"];\n id?: AgnosticIndexRouteObject[\"id\"];\n loader?: AgnosticIndexRouteObject[\"loader\"];\n action?: AgnosticIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticIndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport interface NonIndexRouteObject {\n caseSensitive?: AgnosticNonIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticNonIndexRouteObject[\"path\"];\n id?: AgnosticNonIndexRouteObject[\"id\"];\n loader?: AgnosticNonIndexRouteObject[\"loader\"];\n action?: AgnosticNonIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticNonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticNonIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticNonIndexRouteObject[\"handle\"];\n index?: false;\n children?: RouteObject[];\n element?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport type RouteObject = IndexRouteObject | NonIndexRouteObject;\n\nexport type DataRouteObject = RouteObject & {\n children?: DataRouteObject[];\n id: string;\n};\n\nexport interface RouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends RouteObject = RouteObject\n> extends AgnosticRouteMatch {}\n\nexport interface DataRouteMatch extends RouteMatch {}\n\nexport interface DataRouterContextObject extends NavigationContextObject {\n router: Router;\n staticContext?: StaticHandlerContext;\n}\n\nexport const DataRouterContext =\n React.createContext(null);\nif (__DEV__) {\n DataRouterContext.displayName = \"DataRouter\";\n}\n\nexport const DataRouterStateContext = React.createContext<\n Router[\"state\"] | null\n>(null);\nif (__DEV__) {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\n\nexport const AwaitContext = React.createContext(null);\nif (__DEV__) {\n AwaitContext.displayName = \"Await\";\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n unstable_viewTransition?: boolean;\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level `` API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport interface Navigator {\n createHref: History[\"createHref\"];\n // Optional for backwards-compat with Router/HistoryRouter usage (edge case)\n encodeLocation?: History[\"encodeLocation\"];\n go: History[\"go\"];\n push(to: To, state?: any, opts?: NavigateOptions): void;\n replace(to: To, state?: any, opts?: NavigateOptions): void;\n}\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n}\n\nexport const NavigationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\nexport interface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n isDataRoute: boolean;\n}\n\nexport const RouteContext = React.createContext({\n outlet: null,\n matches: [],\n isDataRoute: false,\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n\nexport const RouteErrorContext = React.createContext(null);\n\nif (__DEV__) {\n RouteErrorContext.displayName = \"RouteError\";\n}\n","import * as React from \"react\";\nimport type {\n Blocker,\n BlockerFunction,\n Location,\n ParamParseKey,\n Params,\n Path,\n PathMatch,\n PathPattern,\n RelativeRoutingType,\n Router as RemixRouter,\n RevalidationState,\n To,\n UIMatch,\n} from \"@remix-run/router\";\nimport {\n IDLE_BLOCKER,\n Action as NavigationType,\n UNSAFE_convertRouteMatchToUiMatch as convertRouteMatchToUiMatch,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n isRouteErrorResponse,\n joinPaths,\n matchPath,\n matchRoutes,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n DataRouteMatch,\n NavigateOptions,\n RouteContextObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n RouteErrorContext,\n} from \"./context\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/hooks/use-href\n */\nexport function useHref(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to, { relative });\n\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname =\n pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a ``.\n *\n * @see https://reactrouter.com/hooks/use-in-router-context\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/hooks/use-location\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/hooks/use-navigation-type\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * ``.\n *\n * @see https://reactrouter.com/hooks/use-match\n */\nexport function useMatch<\n ParamKey extends ParamParseKey,\n Path extends string\n>(pattern: PathPattern | Path): PathMatch | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath(pattern, pathname),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nconst navigateEffectWarning =\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`;\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(\n cb: Parameters[0]\n) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by ``s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nexport function useNavigate(): NavigateFunction {\n let { isDataRoute } = React.useContext(RouteContext);\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\n\nfunction useNavigateUnstable(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a component.`\n );\n\n let dataRouterContext = React.useContext(DataRouterContext);\n let { basename, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(getResolveToMatches(matches));\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n options.relative === \"path\"\n );\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history (but only if we're not in a data router,\n // otherwise it'll prepend the basename inside of the router).\n // If this is a root navigation, then we navigate to the raw basename\n // which allows the basename to have full control over the presence of a\n // trailing slash on root links\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\"\n ? basename\n : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state,\n options\n );\n },\n [\n basename,\n navigator,\n routePathnamesJson,\n locationPathname,\n dataRouterContext,\n ]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\nexport function useOutletContext(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by `` to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n {outlet}\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\nexport function useParams<\n ParamsOrKey extends string | Record = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params : Partial\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\nexport function useResolvedPath(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): Path {\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n let routePathnamesJson = JSON.stringify(getResolveToMatches(matches));\n\n return React.useMemo(\n () =>\n resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n relative === \"path\"\n ),\n [to, routePathnamesJson, locationPathname, relative]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an `` to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nexport function useRoutesImpl(\n routes: RouteObject[],\n locationArg?: Partial | string,\n dataRouterState?: RemixRouter[\"state\"]\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a component.`\n );\n\n let { navigator } = React.useContext(NavigationContext);\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n let remainingPathname =\n parentPathnameBase === \"/\"\n ? pathname\n : pathname.slice(parentPathnameBase.length) || \"/\";\n\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined ||\n matches[matches.length - 1].route.Component !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" ` +\n `does not have an element or Component. This means it will render an with a ` +\n `null value by default resulting in an \"empty\" page.`\n );\n }\n\n let renderedMatches = _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathname).pathname\n : match.pathname,\n ]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathnameBase).pathname\n : match.pathnameBase,\n ]),\n })\n ),\n parentMatches,\n dataRouterState\n );\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return (\n \n {renderedMatches}\n \n );\n }\n\n return renderedMatches;\n}\n\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error)\n ? `${error.status} ${error.statusText}`\n : error instanceof Error\n ? error.message\n : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = { padding: \"0.5rem\", backgroundColor: lightgrey };\n let codeStyles = { padding: \"2px 4px\", backgroundColor: lightgrey };\n\n let devInfo = null;\n if (__DEV__) {\n console.error(\n \"Error handled by React Router default ErrorBoundary:\",\n error\n );\n\n devInfo = (\n <>\n

💿 Hey developer 👋

\n

\n You can provide a way better UX than this when your app throws errors\n by providing your own ErrorBoundary or{\" \"}\n errorElement prop on your route.\n

\n \n );\n }\n\n return (\n <>\n

Unexpected Application Error!

\n

{message}

\n {stack ?
{stack}
: null}\n {devInfo}\n \n );\n}\n\nconst defaultErrorElement = ;\n\ntype RenderErrorBoundaryProps = React.PropsWithChildren<{\n location: Location;\n revalidation: RevalidationState;\n error: any;\n component: React.ReactNode;\n routeContext: RouteContextObject;\n}>;\n\ntype RenderErrorBoundaryState = {\n location: Location;\n revalidation: RevalidationState;\n error: any;\n};\n\nexport class RenderErrorBoundary extends React.Component<\n RenderErrorBoundaryProps,\n RenderErrorBoundaryState\n> {\n constructor(props: RenderErrorBoundaryProps) {\n super(props);\n this.state = {\n location: props.location,\n revalidation: props.revalidation,\n error: props.error,\n };\n }\n\n static getDerivedStateFromError(error: any) {\n return { error: error };\n }\n\n static getDerivedStateFromProps(\n props: RenderErrorBoundaryProps,\n state: RenderErrorBoundaryState\n ) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (\n state.location !== props.location ||\n (state.revalidation !== \"idle\" && props.revalidation === \"idle\")\n ) {\n return {\n error: props.error,\n location: props.location,\n revalidation: props.revalidation,\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error || state.error,\n location: state.location,\n revalidation: props.revalidation || state.revalidation,\n };\n }\n\n componentDidCatch(error: any, errorInfo: any) {\n console.error(\n \"React Router caught the following error during render\",\n error,\n errorInfo\n );\n }\n\n render() {\n return this.state.error ? (\n \n \n \n ) : (\n this.props.children\n );\n }\n}\n\ninterface RenderedRouteProps {\n routeContext: RouteContextObject;\n match: RouteMatch;\n children: React.ReactNode | null;\n}\n\nfunction RenderedRoute({ routeContext, match, children }: RenderedRouteProps) {\n let dataRouterContext = React.useContext(DataRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (\n dataRouterContext &&\n dataRouterContext.static &&\n dataRouterContext.staticContext &&\n (match.route.errorElement || match.route.ErrorBoundary)\n ) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n\n return (\n \n {children}\n \n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = [],\n dataRouterState: RemixRouter[\"state\"] | null = null\n): React.ReactElement | null {\n if (matches == null) {\n if (dataRouterState?.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches as DataRouteMatch[];\n } else {\n return null;\n }\n }\n\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = dataRouterState?.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(\n (m) => m.route.id && errors?.[m.route.id]\n );\n invariant(\n errorIndex >= 0,\n `Could not find a matching route for errors on route IDs: ${Object.keys(\n errors\n ).join(\",\")}`\n );\n renderedMatches = renderedMatches.slice(\n 0,\n Math.min(renderedMatches.length, errorIndex + 1)\n );\n }\n\n return renderedMatches.reduceRight((outlet, match, index) => {\n let error = match.route.id ? errors?.[match.route.id] : null;\n // Only data routers handle errors\n let errorElement: React.ReactNode | null = null;\n if (dataRouterState) {\n errorElement = match.route.errorElement || defaultErrorElement;\n }\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children: React.ReactNode;\n if (error) {\n children = errorElement;\n } else if (match.route.Component) {\n // Note: This is a de-optimized path since React won't re-use the\n // ReactElement since it's identity changes with each new\n // React.createElement call. We keep this so folks can use\n // `` in `` but generally `Component`\n // usage is only advised in `RouterProvider` when we can convert it to\n // `element` ahead of time.\n children = ;\n } else if (match.route.element) {\n children = match.route.element;\n } else {\n children = outlet;\n }\n return (\n \n );\n };\n // Only wrap in an error boundary within data router usages when we have an\n // ErrorBoundary/errorElement on this route. Otherwise let it bubble up to\n // an ancestor ErrorBoundary/errorElement\n return dataRouterState &&\n (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? (\n \n ) : (\n getChildren()\n );\n }, null as React.ReactElement | null);\n}\n\nenum DataRouterHook {\n UseBlocker = \"useBlocker\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n}\n\nenum DataRouterStateHook {\n UseBlocker = \"useBlocker\",\n UseLoaderData = \"useLoaderData\",\n UseActionData = \"useActionData\",\n UseRouteError = \"useRouteError\",\n UseNavigation = \"useNavigation\",\n UseRouteLoaderData = \"useRouteLoaderData\",\n UseMatches = \"useMatches\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n UseRouteId = \"useRouteId\",\n}\n\nfunction getDataRouterConsoleError(\n hookName: DataRouterHook | DataRouterStateHook\n) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n let ctx = React.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError(hookName));\n return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n let state = React.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError(hookName));\n return state;\n}\n\nfunction useRouteContext(hookName: DataRouterStateHook) {\n let route = React.useContext(RouteContext);\n invariant(route, getDataRouterConsoleError(hookName));\n return route;\n}\n\n// Internal version with hookName-aware debugging\nfunction useCurrentRouteId(hookName: DataRouterStateHook) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n invariant(\n thisRoute.route.id,\n `${hookName} can only be used on routes that contain a unique \"id\"`\n );\n return thisRoute.route.id;\n}\n\n/**\n * Returns the ID for the nearest contextual route\n */\nexport function useRouteId() {\n return useCurrentRouteId(DataRouterStateHook.UseRouteId);\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nexport function useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nexport function useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return React.useMemo(\n () => ({\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation,\n }),\n [dataRouterContext.router.revalidate, state.revalidation]\n );\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nexport function useMatches(): UIMatch[] {\n let { matches, loaderData } = useDataRouterState(\n DataRouterStateHook.UseMatches\n );\n return React.useMemo(\n () => matches.map((m) => convertRouteMatchToUiMatch(m, loaderData)),\n [matches, loaderData]\n );\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nexport function useLoaderData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n\n if (state.errors && state.errors[routeId] != null) {\n console.error(\n `You cannot \\`useLoaderData\\` in an errorElement (routeId: ${routeId})`\n );\n return undefined;\n }\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nexport function useRouteLoaderData(routeId: string): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nexport function useActionData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n return state.actionData ? state.actionData[routeId] : undefined;\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * ErrorBoundary/errorElement to display a proper error message.\n */\nexport function useRouteError(): unknown {\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error) {\n return error;\n }\n\n // Otherwise look for errors from our data router state\n return state.errors?.[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor `` value\n */\nexport function useAsyncValue(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._data;\n}\n\n/**\n * Returns the error from the nearest ancestor `` value\n */\nexport function useAsyncError(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._error;\n}\n\nlet blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation. Mostly used to avoid\n * using half-filled form data. This does not handle hard-reloads or\n * cross-origin navigations.\n */\nexport function useBlocker(shouldBlock: boolean | BlockerFunction): Blocker {\n let { router, basename } = useDataRouterContext(DataRouterHook.UseBlocker);\n let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n\n let [blockerKey, setBlockerKey] = React.useState(\"\");\n let blockerFunction = React.useCallback(\n (arg) => {\n if (typeof shouldBlock !== \"function\") {\n return !!shouldBlock;\n }\n if (basename === \"/\") {\n return shouldBlock(arg);\n }\n\n // If they provided us a function and we've got an active basename, strip\n // it from the locations we expose to the user to match the behavior of\n // useLocation\n let { currentLocation, nextLocation, historyAction } = arg;\n return shouldBlock({\n currentLocation: {\n ...currentLocation,\n pathname:\n stripBasename(currentLocation.pathname, basename) ||\n currentLocation.pathname,\n },\n nextLocation: {\n ...nextLocation,\n pathname:\n stripBasename(nextLocation.pathname, basename) ||\n nextLocation.pathname,\n },\n historyAction,\n });\n },\n [basename, shouldBlock]\n );\n\n // This effect is in charge of blocker key assignment and deletion (which is\n // tightly coupled to the key)\n React.useEffect(() => {\n let key = String(++blockerId);\n setBlockerKey(key);\n return () => router.deleteBlocker(key);\n }, [router]);\n\n // This effect handles assigning the blockerFunction. This is to handle\n // unstable blocker function identities, and happens only after the prior\n // effect so we don't get an orphaned blockerFunction in the router with a\n // key of \"\". Until then we just have the IDLE_BLOCKER.\n React.useEffect(() => {\n if (blockerKey !== \"\") {\n router.getBlocker(blockerKey, blockerFunction);\n }\n }, [router, blockerKey, blockerFunction]);\n\n // Prefer the blocker from `state` not `router.state` since DataRouterContext\n // is memoized so this ensures we update on blocker state updates\n return blockerKey && state.blockers.has(blockerKey)\n ? state.blockers.get(blockerKey)!\n : IDLE_BLOCKER;\n}\n\n/**\n * Stable version of useNavigate that is used when we are in the context of\n * a RouterProvider.\n */\nfunction useNavigateStable(): NavigateFunction {\n let { router } = useDataRouterContext(DataRouterHook.UseNavigateStable);\n let id = useCurrentRouteId(DataRouterStateHook.UseNavigateStable);\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our router subscriber yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n router.navigate(to);\n } else {\n router.navigate(to, { fromRouteId: id, ...options });\n }\n },\n [router, id]\n );\n\n return navigate;\n}\n\nconst alreadyWarned: Record = {};\n\nfunction warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n","import type {\n InitialEntry,\n LazyRouteFunction,\n Location,\n MemoryHistory,\n RelativeRoutingType,\n Router as RemixRouter,\n RouterState,\n RouterSubscriber,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\nimport {\n AbortedDeferredError,\n Action as NavigationType,\n createMemoryHistory,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\nimport * as React from \"react\";\n\nimport type {\n DataRouteObject,\n IndexRouteObject,\n Navigator,\n NonIndexRouteObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n} from \"./context\";\nimport {\n _renderMatches,\n useAsyncValue,\n useInRouterContext,\n useLocation,\n useNavigate,\n useOutlet,\n useRoutes,\n useRoutesImpl,\n} from \"./hooks\";\n\nexport interface FutureConfig {\n v7_startTransition: boolean;\n}\n\nexport interface RouterProviderProps {\n fallbackElement?: React.ReactNode;\n router: RemixRouter;\n future?: Partial;\n}\n\n/**\n Webpack + React 17 fails to compile on any of the following because webpack\n complains that `startTransition` doesn't exist in `React`:\n * import { startTransition } from \"react\"\n * import * as React from from \"react\";\n \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n * import * as React from from \"react\";\n \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n Moving it to a constant such as the following solves the Webpack/React 17 issue:\n * import * as React from from \"react\";\n const START_TRANSITION = \"startTransition\";\n START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n However, that introduces webpack/terser minification issues in production builds\n in React 18 where minification/obfuscation ends up removing the call of\n React.startTransition entirely from the first half of the ternary. Grabbing\n this exported reference once up front resolves that issue.\n\n See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nexport function RouterProvider({\n fallbackElement,\n router,\n future,\n}: RouterProviderProps): React.ReactElement {\n let [state, setStateImpl] = React.useState(router.state);\n let { v7_startTransition } = future || {};\n\n let setState = React.useCallback(\n (newState: RouterState) => {\n if (v7_startTransition && startTransitionImpl) {\n startTransitionImpl(() => setStateImpl(newState));\n } else {\n setStateImpl(newState);\n }\n },\n [setStateImpl, v7_startTransition]\n );\n\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/)\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n\n let navigator = React.useMemo((): Navigator => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: (n) => router.navigate(n),\n push: (to, state, opts) =>\n router.navigate(to, {\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n replace: (to, state, opts) =>\n router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n };\n }, [router]);\n\n let basename = router.basename || \"/\";\n\n let dataRouterContext = React.useMemo(\n () => ({\n router,\n navigator,\n static: false,\n basename,\n }),\n [router, navigator, basename]\n );\n\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationRawTagOpen(code) {\n if (code === 47) {\n effects.consume(code)\n buffer = ''\n return continuationRawEndTag\n }\n return continuation(code)\n }\n\n /**\n * In raw continuation, after ` | \n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function continuationRawEndTag(code) {\n if (code === 62) {\n const name = buffer.toLowerCase()\n if (htmlRawNames.includes(name)) {\n effects.consume(code)\n return continuationClose\n }\n return continuation(code)\n }\n if (asciiAlpha(code) && buffer.length < 8) {\n effects.consume(code)\n // @ts-expect-error: not null.\n buffer += String.fromCharCode(code)\n return continuationRawEndTag\n }\n return continuation(code)\n }\n\n /**\n * In cdata continuation, after `]`, expecting `]>`.\n *\n * ```markdown\n * > | &<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationCdataInside(code) {\n if (code === 93) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n return continuation(code)\n }\n\n /**\n * In declaration or instruction continuation, at `>`.\n *\n * ```markdown\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * > | &<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationDeclarationInside(code) {\n if (code === 62) {\n effects.consume(code)\n return continuationClose\n }\n\n // More dashes.\n if (code === 45 && marker === 2) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n return continuation(code)\n }\n\n /**\n * In closed continuation: everything we get until the eol/eof is part of it.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationClose(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('htmlFlowData')\n return continuationAfter(code)\n }\n effects.consume(code)\n return continuationClose\n }\n\n /**\n * Done.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationAfter(code) {\n effects.exit('htmlFlow')\n // // Feel free to interrupt.\n // tokenizer.interrupt = false\n // // No longer concrete.\n // tokenizer.concrete = false\n return ok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuationStart(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * At eol, before continuation.\n *\n * ```markdown\n * > | * ```js\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return after\n }\n return nok(code)\n }\n\n /**\n * A continuation.\n *\n * ```markdown\n * | * ```js\n * > | b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLineBefore(effects, ok, nok) {\n return start\n\n /**\n * Before eol, expecting blank line.\n *\n * ```markdown\n * > |
\n * ^\n * |\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return effects.attempt(blankLine, ok, nok)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n/** @type {Construct} */\nconst nonLazyContinuation = {\n tokenize: tokenizeNonLazyContinuation,\n partial: true\n}\n\n/** @type {Construct} */\nexport const codeFenced = {\n name: 'codeFenced',\n tokenize: tokenizeCodeFenced,\n concrete: true\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCodeFenced(effects, ok, nok) {\n const self = this\n /** @type {Construct} */\n const closeStart = {\n tokenize: tokenizeCloseStart,\n partial: true\n }\n let initialPrefix = 0\n let sizeOpen = 0\n /** @type {NonNullable} */\n let marker\n return start\n\n /**\n * Start of code.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse whitespace like `markdown-rs`.\n return beforeSequenceOpen(code)\n }\n\n /**\n * In opening fence, after prefix, at sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function beforeSequenceOpen(code) {\n const tail = self.events[self.events.length - 1]\n initialPrefix =\n tail && tail[1].type === 'linePrefix'\n ? tail[2].sliceSerialize(tail[1], true).length\n : 0\n marker = code\n effects.enter('codeFenced')\n effects.enter('codeFencedFence')\n effects.enter('codeFencedFenceSequence')\n return sequenceOpen(code)\n }\n\n /**\n * In opening fence sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === marker) {\n sizeOpen++\n effects.consume(code)\n return sequenceOpen\n }\n if (sizeOpen < 3) {\n return nok(code)\n }\n effects.exit('codeFencedFenceSequence')\n return markdownSpace(code)\n ? factorySpace(effects, infoBefore, 'whitespace')(code)\n : infoBefore(code)\n }\n\n /**\n * In opening fence, after the sequence (and optional whitespace), before info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function infoBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFencedFence')\n return self.interrupt\n ? ok(code)\n : effects.check(nonLazyContinuation, atNonLazyBreak, after)(code)\n }\n effects.enter('codeFencedFenceInfo')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return info(code)\n }\n\n /**\n * In info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function info(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceInfo')\n return infoBefore(code)\n }\n if (markdownSpace(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceInfo')\n return factorySpace(effects, metaBefore, 'whitespace')(code)\n }\n if (code === 96 && code === marker) {\n return nok(code)\n }\n effects.consume(code)\n return info\n }\n\n /**\n * In opening fence, after info and whitespace, before meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function metaBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n return infoBefore(code)\n }\n effects.enter('codeFencedFenceMeta')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return meta(code)\n }\n\n /**\n * In meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function meta(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceMeta')\n return infoBefore(code)\n }\n if (code === 96 && code === marker) {\n return nok(code)\n }\n effects.consume(code)\n return meta\n }\n\n /**\n * At eol/eof in code, before a non-lazy closing fence or content.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function atNonLazyBreak(code) {\n return effects.attempt(closeStart, after, contentBefore)(code)\n }\n\n /**\n * Before code content, not a closing fence, at eol.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentBefore(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return contentStart\n }\n\n /**\n * Before code content, not a closing fence.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentStart(code) {\n return initialPrefix > 0 && markdownSpace(code)\n ? factorySpace(\n effects,\n beforeContentChunk,\n 'linePrefix',\n initialPrefix + 1\n )(code)\n : beforeContentChunk(code)\n }\n\n /**\n * Before code content, after optional prefix.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function beforeContentChunk(code) {\n if (code === null || markdownLineEnding(code)) {\n return effects.check(nonLazyContinuation, atNonLazyBreak, after)(code)\n }\n effects.enter('codeFlowValue')\n return contentChunk(code)\n }\n\n /**\n * In code content.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^^^^^^^^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentChunk(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return beforeContentChunk(code)\n }\n effects.consume(code)\n return contentChunk\n }\n\n /**\n * After code.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n effects.exit('codeFenced')\n return ok(code)\n }\n\n /**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\n function tokenizeCloseStart(effects, ok, nok) {\n let size = 0\n return startBefore\n\n /**\n *\n *\n * @type {State}\n */\n function startBefore(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return start\n }\n\n /**\n * Before closing fence, at optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // Always populated by defaults.\n\n // To do: `enter` here or in next state?\n effects.enter('codeFencedFence')\n return markdownSpace(code)\n ? factorySpace(\n effects,\n beforeSequenceClose,\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n : beforeSequenceClose(code)\n }\n\n /**\n * In closing fence, after optional whitespace, at sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function beforeSequenceClose(code) {\n if (code === marker) {\n effects.enter('codeFencedFenceSequence')\n return sequenceClose(code)\n }\n return nok(code)\n }\n\n /**\n * In closing fence sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceClose(code) {\n if (code === marker) {\n size++\n effects.consume(code)\n return sequenceClose\n }\n if (size >= sizeOpen) {\n effects.exit('codeFencedFenceSequence')\n return markdownSpace(code)\n ? factorySpace(effects, sequenceCloseAfter, 'whitespace')(code)\n : sequenceCloseAfter(code)\n }\n return nok(code)\n }\n\n /**\n * After closing fence sequence, after optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceCloseAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFencedFence')\n return ok(code)\n }\n return nok(code)\n }\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuation(effects, ok, nok) {\n const self = this\n return start\n\n /**\n *\n *\n * @type {State}\n */\n function start(code) {\n if (code === null) {\n return nok(code)\n }\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return lineStart\n }\n\n /**\n *\n *\n * @type {State}\n */\n function lineStart(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {\n asciiAlphanumeric,\n asciiDigit,\n asciiHexDigit\n} from 'micromark-util-character'\n/** @type {Construct} */\nexport const characterReference = {\n name: 'characterReference',\n tokenize: tokenizeCharacterReference\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterReference(effects, ok, nok) {\n const self = this\n let size = 0\n /** @type {number} */\n let max\n /** @type {(code: Code) => boolean} */\n let test\n return start\n\n /**\n * Start of character reference.\n *\n * ```markdown\n * > | a&b\n * ^\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('characterReference')\n effects.enter('characterReferenceMarker')\n effects.consume(code)\n effects.exit('characterReferenceMarker')\n return open\n }\n\n /**\n * After `&`, at `#` for numeric references or alphanumeric for named\n * references.\n *\n * ```markdown\n * > | a&b\n * ^\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 35) {\n effects.enter('characterReferenceMarkerNumeric')\n effects.consume(code)\n effects.exit('characterReferenceMarkerNumeric')\n return numeric\n }\n effects.enter('characterReferenceValue')\n max = 31\n test = asciiAlphanumeric\n return value(code)\n }\n\n /**\n * After `#`, at `x` for hexadecimals or digit for decimals.\n *\n * ```markdown\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function numeric(code) {\n if (code === 88 || code === 120) {\n effects.enter('characterReferenceMarkerHexadecimal')\n effects.consume(code)\n effects.exit('characterReferenceMarkerHexadecimal')\n effects.enter('characterReferenceValue')\n max = 6\n test = asciiHexDigit\n return value\n }\n effects.enter('characterReferenceValue')\n max = 7\n test = asciiDigit\n return value(code)\n }\n\n /**\n * After markers (`&#x`, `&#`, or `&`), in value, before `;`.\n *\n * The character reference kind defines what and how many characters are\n * allowed.\n *\n * ```markdown\n * > | a&b\n * ^^^\n * > | a{b\n * ^^^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function value(code) {\n if (code === 59 && size) {\n const token = effects.exit('characterReferenceValue')\n if (\n test === asciiAlphanumeric &&\n !decodeNamedCharacterReference(self.sliceSerialize(token))\n ) {\n return nok(code)\n }\n\n // To do: `markdown-rs` uses a different name:\n // `CharacterReferenceMarkerSemi`.\n effects.enter('characterReferenceMarker')\n effects.consume(code)\n effects.exit('characterReferenceMarker')\n effects.exit('characterReference')\n return ok\n }\n if (test(code) && size++ < max) {\n effects.consume(code)\n return value\n }\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {asciiPunctuation} from 'micromark-util-character'\n/** @type {Construct} */\nexport const characterEscape = {\n name: 'characterEscape',\n tokenize: tokenizeCharacterEscape\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterEscape(effects, ok, nok) {\n return start\n\n /**\n * Start of character escape.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('characterEscape')\n effects.enter('escapeMarker')\n effects.consume(code)\n effects.exit('escapeMarker')\n return inside\n }\n\n /**\n * After `\\`, at punctuation.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n // ASCII punctuation.\n if (asciiPunctuation(code)) {\n effects.enter('characterEscapeValue')\n effects.consume(code)\n effects.exit('characterEscapeValue')\n effects.exit('characterEscape')\n return ok\n }\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {Construct} */\nexport const lineEnding = {\n name: 'lineEnding',\n tokenize: tokenizeLineEnding\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLineEnding(effects, ok) {\n return start\n\n /** @type {State} */\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, ok, 'linePrefix')\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factoryDestination} from 'micromark-factory-destination'\nimport {factoryLabel} from 'micromark-factory-label'\nimport {factoryTitle} from 'micromark-factory-title'\nimport {factoryWhitespace} from 'micromark-factory-whitespace'\nimport {markdownLineEndingOrSpace} from 'micromark-util-character'\nimport {push, splice} from 'micromark-util-chunked'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {resolveAll} from 'micromark-util-resolve-all'\n/** @type {Construct} */\nexport const labelEnd = {\n name: 'labelEnd',\n tokenize: tokenizeLabelEnd,\n resolveTo: resolveToLabelEnd,\n resolveAll: resolveAllLabelEnd\n}\n\n/** @type {Construct} */\nconst resourceConstruct = {\n tokenize: tokenizeResource\n}\n/** @type {Construct} */\nconst referenceFullConstruct = {\n tokenize: tokenizeReferenceFull\n}\n/** @type {Construct} */\nconst referenceCollapsedConstruct = {\n tokenize: tokenizeReferenceCollapsed\n}\n\n/** @type {Resolver} */\nfunction resolveAllLabelEnd(events) {\n let index = -1\n while (++index < events.length) {\n const token = events[index][1]\n if (\n token.type === 'labelImage' ||\n token.type === 'labelLink' ||\n token.type === 'labelEnd'\n ) {\n // Remove the marker.\n events.splice(index + 1, token.type === 'labelImage' ? 4 : 2)\n token.type = 'data'\n index++\n }\n }\n return events\n}\n\n/** @type {Resolver} */\nfunction resolveToLabelEnd(events, context) {\n let index = events.length\n let offset = 0\n /** @type {Token} */\n let token\n /** @type {number | undefined} */\n let open\n /** @type {number | undefined} */\n let close\n /** @type {Array} */\n let media\n\n // Find an opening.\n while (index--) {\n token = events[index][1]\n if (open) {\n // If we see another link, or inactive link label, we’ve been here before.\n if (\n token.type === 'link' ||\n (token.type === 'labelLink' && token._inactive)\n ) {\n break\n }\n\n // Mark other link openings as inactive, as we can’t have links in\n // links.\n if (events[index][0] === 'enter' && token.type === 'labelLink') {\n token._inactive = true\n }\n } else if (close) {\n if (\n events[index][0] === 'enter' &&\n (token.type === 'labelImage' || token.type === 'labelLink') &&\n !token._balanced\n ) {\n open = index\n if (token.type !== 'labelLink') {\n offset = 2\n break\n }\n }\n } else if (token.type === 'labelEnd') {\n close = index\n }\n }\n const group = {\n type: events[open][1].type === 'labelLink' ? 'link' : 'image',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n }\n const label = {\n type: 'label',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[close][1].end)\n }\n const text = {\n type: 'labelText',\n start: Object.assign({}, events[open + offset + 2][1].end),\n end: Object.assign({}, events[close - 2][1].start)\n }\n media = [\n ['enter', group, context],\n ['enter', label, context]\n ]\n\n // Opening marker.\n media = push(media, events.slice(open + 1, open + offset + 3))\n\n // Text open.\n media = push(media, [['enter', text, context]])\n\n // Always populated by defaults.\n\n // Between.\n media = push(\n media,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + offset + 4, close - 3),\n context\n )\n )\n\n // Text close, marker close, label close.\n media = push(media, [\n ['exit', text, context],\n events[close - 2],\n events[close - 1],\n ['exit', label, context]\n ])\n\n // Reference, resource, or so.\n media = push(media, events.slice(close + 1))\n\n // Media close.\n media = push(media, [['exit', group, context]])\n splice(events, open, events.length, media)\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelEnd(effects, ok, nok) {\n const self = this\n let index = self.events.length\n /** @type {Token} */\n let labelStart\n /** @type {boolean} */\n let defined\n\n // Find an opening.\n while (index--) {\n if (\n (self.events[index][1].type === 'labelImage' ||\n self.events[index][1].type === 'labelLink') &&\n !self.events[index][1]._balanced\n ) {\n labelStart = self.events[index][1]\n break\n }\n }\n return start\n\n /**\n * Start of label end.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // If there is not an okay opening.\n if (!labelStart) {\n return nok(code)\n }\n\n // If the corresponding label (link) start is marked as inactive,\n // it means we’d be wrapping a link, like this:\n //\n // ```markdown\n // > | a [b [c](d) e](f) g.\n // ^\n // ```\n //\n // We can’t have that, so it’s just balanced brackets.\n if (labelStart._inactive) {\n return labelEndNok(code)\n }\n defined = self.parser.defined.includes(\n normalizeIdentifier(\n self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })\n )\n )\n effects.enter('labelEnd')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelEnd')\n return after\n }\n\n /**\n * After `]`.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // Note: `markdown-rs` also parses GFM footnotes here, which for us is in\n // an extension.\n\n // Resource (`[asd](fgh)`)?\n if (code === 40) {\n return effects.attempt(\n resourceConstruct,\n labelEndOk,\n defined ? labelEndOk : labelEndNok\n )(code)\n }\n\n // Full (`[asd][fgh]`) or collapsed (`[asd][]`) reference?\n if (code === 91) {\n return effects.attempt(\n referenceFullConstruct,\n labelEndOk,\n defined ? referenceNotFull : labelEndNok\n )(code)\n }\n\n // Shortcut (`[asd]`) reference?\n return defined ? labelEndOk(code) : labelEndNok(code)\n }\n\n /**\n * After `]`, at `[`, but not at a full reference.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceNotFull(code) {\n return effects.attempt(\n referenceCollapsedConstruct,\n labelEndOk,\n labelEndNok\n )(code)\n }\n\n /**\n * Done, we found something.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndOk(code) {\n // Note: `markdown-rs` does a bunch of stuff here.\n return ok(code)\n }\n\n /**\n * Done, it’s nothing.\n *\n * There was an okay opening, but we didn’t match anything.\n *\n * ```markdown\n * > | [a](b c\n * ^\n * > | [a][b c\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndNok(code) {\n labelStart._balanced = true\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeResource(effects, ok, nok) {\n return resourceStart\n\n /**\n * At a resource.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceStart(code) {\n effects.enter('resource')\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n return resourceBefore\n }\n\n /**\n * In resource, after `(`, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBefore(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, resourceOpen)(code)\n : resourceOpen(code)\n }\n\n /**\n * In resource, after optional whitespace, at `)` or a destination.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceOpen(code) {\n if (code === 41) {\n return resourceEnd(code)\n }\n return factoryDestination(\n effects,\n resourceDestinationAfter,\n resourceDestinationMissing,\n 'resourceDestination',\n 'resourceDestinationLiteral',\n 'resourceDestinationLiteralMarker',\n 'resourceDestinationRaw',\n 'resourceDestinationString',\n 32\n )(code)\n }\n\n /**\n * In resource, after destination, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationAfter(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, resourceBetween)(code)\n : resourceEnd(code)\n }\n\n /**\n * At invalid destination.\n *\n * ```markdown\n * > | [a](<<) b\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationMissing(code) {\n return nok(code)\n }\n\n /**\n * In resource, after destination and whitespace, at `(` or title.\n *\n * ```markdown\n * > | [a](b ) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBetween(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(\n effects,\n resourceTitleAfter,\n nok,\n 'resourceTitle',\n 'resourceTitleMarker',\n 'resourceTitleString'\n )(code)\n }\n return resourceEnd(code)\n }\n\n /**\n * In resource, after title, at optional whitespace.\n *\n * ```markdown\n * > | [a](b \"c\") d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceTitleAfter(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, resourceEnd)(code)\n : resourceEnd(code)\n }\n\n /**\n * In resource, at `)`.\n *\n * ```markdown\n * > | [a](b) d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceEnd(code) {\n if (code === 41) {\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n effects.exit('resource')\n return ok\n }\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceFull(effects, ok, nok) {\n const self = this\n return referenceFull\n\n /**\n * In a reference (full), at the `[`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFull(code) {\n return factoryLabel.call(\n self,\n effects,\n referenceFullAfter,\n referenceFullMissing,\n 'reference',\n 'referenceMarker',\n 'referenceString'\n )(code)\n }\n\n /**\n * In a reference (full), after `]`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullAfter(code) {\n return self.parser.defined.includes(\n normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n )\n ? ok(code)\n : nok(code)\n }\n\n /**\n * In reference (full) that was missing.\n *\n * ```markdown\n * > | [a][b d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullMissing(code) {\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceCollapsed(effects, ok, nok) {\n return referenceCollapsedStart\n\n /**\n * In reference (collapsed), at `[`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedStart(code) {\n // We only attempt a collapsed label if there’s a `[`.\n\n effects.enter('reference')\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n return referenceCollapsedOpen\n }\n\n /**\n * In reference (collapsed), at `]`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedOpen(code) {\n if (code === 93) {\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n effects.exit('reference')\n return ok\n }\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {labelEnd} from './label-end.js'\n\n/** @type {Construct} */\nexport const labelStartImage = {\n name: 'labelStartImage',\n tokenize: tokenizeLabelStartImage,\n resolveAll: labelEnd.resolveAll\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * Start of label (image) start.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('labelImage')\n effects.enter('labelImageMarker')\n effects.consume(code)\n effects.exit('labelImageMarker')\n return open\n }\n\n /**\n * After `!`, at `[`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 91) {\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelImage')\n return after\n }\n return nok(code)\n }\n\n /**\n * After `![`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * This is needed in because, when GFM footnotes are enabled, images never\n * form when started with a `^`.\n * Instead, links form:\n *\n * ```markdown\n * ![^a](b)\n *\n * ![^a][b]\n *\n * [b]: c\n * ```\n *\n * ```html\n *

!^a

\n *

!^a

\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // To do: use a new field to do this, this is still needed for\n // `micromark-extension-gfm-footnote`, but the `label-start-link`\n // behavior isn’t.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs\n ? nok(code)\n : ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {push, splice} from 'micromark-util-chunked'\nimport {classifyCharacter} from 'micromark-util-classify-character'\nimport {resolveAll} from 'micromark-util-resolve-all'\n/** @type {Construct} */\nexport const attention = {\n name: 'attention',\n tokenize: tokenizeAttention,\n resolveAll: resolveAllAttention\n}\n\n/**\n * Take all events and resolve attention to emphasis or strong.\n *\n * @type {Resolver}\n */\n// eslint-disable-next-line complexity\nfunction resolveAllAttention(events, context) {\n let index = -1\n /** @type {number} */\n let open\n /** @type {Token} */\n let group\n /** @type {Token} */\n let text\n /** @type {Token} */\n let openingSequence\n /** @type {Token} */\n let closingSequence\n /** @type {number} */\n let use\n /** @type {Array} */\n let nextEvents\n /** @type {number} */\n let offset\n\n // Walk through all events.\n //\n // Note: performance of this is fine on an mb of normal markdown, but it’s\n // a bottleneck for malicious stuff.\n while (++index < events.length) {\n // Find a token that can close.\n if (\n events[index][0] === 'enter' &&\n events[index][1].type === 'attentionSequence' &&\n events[index][1]._close\n ) {\n open = index\n\n // Now walk back to find an opener.\n while (open--) {\n // Find a token that can open the closer.\n if (\n events[open][0] === 'exit' &&\n events[open][1].type === 'attentionSequence' &&\n events[open][1]._open &&\n // If the markers are the same:\n context.sliceSerialize(events[open][1]).charCodeAt(0) ===\n context.sliceSerialize(events[index][1]).charCodeAt(0)\n ) {\n // If the opening can close or the closing can open,\n // and the close size *is not* a multiple of three,\n // but the sum of the opening and closing size *is* multiple of three,\n // then don’t match.\n if (\n (events[open][1]._close || events[index][1]._open) &&\n (events[index][1].end.offset - events[index][1].start.offset) % 3 &&\n !(\n (events[open][1].end.offset -\n events[open][1].start.offset +\n events[index][1].end.offset -\n events[index][1].start.offset) %\n 3\n )\n ) {\n continue\n }\n\n // Number of markers to use from the sequence.\n use =\n events[open][1].end.offset - events[open][1].start.offset > 1 &&\n events[index][1].end.offset - events[index][1].start.offset > 1\n ? 2\n : 1\n const start = Object.assign({}, events[open][1].end)\n const end = Object.assign({}, events[index][1].start)\n movePoint(start, -use)\n movePoint(end, use)\n openingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start,\n end: Object.assign({}, events[open][1].end)\n }\n closingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start: Object.assign({}, events[index][1].start),\n end\n }\n text = {\n type: use > 1 ? 'strongText' : 'emphasisText',\n start: Object.assign({}, events[open][1].end),\n end: Object.assign({}, events[index][1].start)\n }\n group = {\n type: use > 1 ? 'strong' : 'emphasis',\n start: Object.assign({}, openingSequence.start),\n end: Object.assign({}, closingSequence.end)\n }\n events[open][1].end = Object.assign({}, openingSequence.start)\n events[index][1].start = Object.assign({}, closingSequence.end)\n nextEvents = []\n\n // If there are more markers in the opening, add them before.\n if (events[open][1].end.offset - events[open][1].start.offset) {\n nextEvents = push(nextEvents, [\n ['enter', events[open][1], context],\n ['exit', events[open][1], context]\n ])\n }\n\n // Opening.\n nextEvents = push(nextEvents, [\n ['enter', group, context],\n ['enter', openingSequence, context],\n ['exit', openingSequence, context],\n ['enter', text, context]\n ])\n\n // Always populated by defaults.\n\n // Between.\n nextEvents = push(\n nextEvents,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + 1, index),\n context\n )\n )\n\n // Closing.\n nextEvents = push(nextEvents, [\n ['exit', text, context],\n ['enter', closingSequence, context],\n ['exit', closingSequence, context],\n ['exit', group, context]\n ])\n\n // If there are more markers in the closing, add them after.\n if (events[index][1].end.offset - events[index][1].start.offset) {\n offset = 2\n nextEvents = push(nextEvents, [\n ['enter', events[index][1], context],\n ['exit', events[index][1], context]\n ])\n } else {\n offset = 0\n }\n splice(events, open - 1, index - open + 3, nextEvents)\n index = open + nextEvents.length - offset - 2\n break\n }\n }\n }\n }\n\n // Remove remaining sequences.\n index = -1\n while (++index < events.length) {\n if (events[index][1].type === 'attentionSequence') {\n events[index][1].type = 'data'\n }\n }\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeAttention(effects, ok) {\n const attentionMarkers = this.parser.constructs.attentionMarkers.null\n const previous = this.previous\n const before = classifyCharacter(previous)\n\n /** @type {NonNullable} */\n let marker\n return start\n\n /**\n * Before a sequence.\n *\n * ```markdown\n * > | **\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n marker = code\n effects.enter('attentionSequence')\n return inside(code)\n }\n\n /**\n * In a sequence.\n *\n * ```markdown\n * > | **\n * ^^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker) {\n effects.consume(code)\n return inside\n }\n const token = effects.exit('attentionSequence')\n\n // To do: next major: move this to resolver, just like `markdown-rs`.\n const after = classifyCharacter(code)\n\n // Always populated by defaults.\n\n const open =\n !after || (after === 2 && before) || attentionMarkers.includes(code)\n const close =\n !before || (before === 2 && after) || attentionMarkers.includes(previous)\n token._open = Boolean(marker === 42 ? open : open && (before || !close))\n token._close = Boolean(marker === 42 ? close : close && (after || !open))\n return ok(code)\n }\n}\n\n/**\n * Move a point a bit.\n *\n * Note: `move` only works inside lines! It’s not possible to move past other\n * chunks (replacement characters, tabs, or line endings).\n *\n * @param {Point} point\n * @param {number} offset\n * @returns {undefined}\n */\nfunction movePoint(point, offset) {\n point.column += offset\n point.offset += offset\n point._bufferIndex += offset\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n asciiAtext,\n asciiControl\n} from 'micromark-util-character'\n/** @type {Construct} */\nexport const autolink = {\n name: 'autolink',\n tokenize: tokenizeAutolink\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeAutolink(effects, ok, nok) {\n let size = 0\n return start\n\n /**\n * Start of an autolink.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('autolink')\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.enter('autolinkProtocol')\n return open\n }\n\n /**\n * After `<`, at protocol or atext.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return schemeOrEmailAtext\n }\n return emailAtext(code)\n }\n\n /**\n * At second byte of protocol or atext.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeOrEmailAtext(code) {\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) {\n // Count the previous alphabetical from `open` too.\n size = 1\n return schemeInsideOrEmailAtext(code)\n }\n return emailAtext(code)\n }\n\n /**\n * In ambiguous protocol or atext.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeInsideOrEmailAtext(code) {\n if (code === 58) {\n effects.consume(code)\n size = 0\n return urlInside\n }\n\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if (\n (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) &&\n size++ < 32\n ) {\n effects.consume(code)\n return schemeInsideOrEmailAtext\n }\n size = 0\n return emailAtext(code)\n }\n\n /**\n * After protocol, in URL.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function urlInside(code) {\n if (code === 62) {\n effects.exit('autolinkProtocol')\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.exit('autolink')\n return ok\n }\n\n // ASCII control, space, or `<`.\n if (code === null || code === 32 || code === 60 || asciiControl(code)) {\n return nok(code)\n }\n effects.consume(code)\n return urlInside\n }\n\n /**\n * In email atext.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function emailAtext(code) {\n if (code === 64) {\n effects.consume(code)\n return emailAtSignOrDot\n }\n if (asciiAtext(code)) {\n effects.consume(code)\n return emailAtext\n }\n return nok(code)\n }\n\n /**\n * In label, after at-sign or dot.\n *\n * ```markdown\n * > | ab\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function emailAtSignOrDot(code) {\n return asciiAlphanumeric(code) ? emailLabel(code) : nok(code)\n }\n\n /**\n * In label, where `.` and `>` are allowed.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function emailLabel(code) {\n if (code === 46) {\n effects.consume(code)\n size = 0\n return emailAtSignOrDot\n }\n if (code === 62) {\n // Exit, then change the token type.\n effects.exit('autolinkProtocol').type = 'autolinkEmail'\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.exit('autolink')\n return ok\n }\n return emailValue(code)\n }\n\n /**\n * In label, where `.` and `>` are *not* allowed.\n *\n * Though, this is also used in `emailLabel` to parse other values.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function emailValue(code) {\n // ASCII alphanumeric or `-`.\n if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) {\n const next = code === 45 ? emailValue : emailLabel\n effects.consume(code)\n return next\n }\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\n/** @type {Construct} */\nexport const htmlText = {\n name: 'htmlText',\n tokenize: tokenizeHtmlText\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlText(effects, ok, nok) {\n const self = this\n /** @type {NonNullable | undefined} */\n let marker\n /** @type {number} */\n let index\n /** @type {State} */\n let returnState\n return start\n\n /**\n * Start of HTML (text).\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('htmlText')\n effects.enter('htmlTextData')\n effects.consume(code)\n return open\n }\n\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | a c\n * ^\n * > | a c\n * ^\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationOpen\n }\n if (code === 47) {\n effects.consume(code)\n return tagCloseStart\n }\n if (code === 63) {\n effects.consume(code)\n return instruction\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagOpen\n }\n return nok(code)\n }\n\n /**\n * After ` | a c\n * ^\n * > | a c\n * ^\n * > | a &<]]> c\n * ^\n * ```\n *\n * @type {State}\n */\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code)\n return commentOpenInside\n }\n if (code === 91) {\n effects.consume(code)\n index = 0\n return cdataOpenInside\n }\n if (asciiAlpha(code)) {\n effects.consume(code)\n return declaration\n }\n return nok(code)\n }\n\n /**\n * In a comment, after ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code)\n return commentEnd\n }\n return nok(code)\n }\n\n /**\n * In comment.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function comment(code) {\n if (code === null) {\n return nok(code)\n }\n if (code === 45) {\n effects.consume(code)\n return commentClose\n }\n if (markdownLineEnding(code)) {\n returnState = comment\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return comment\n }\n\n /**\n * In comment, after `-`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentClose(code) {\n if (code === 45) {\n effects.consume(code)\n return commentEnd\n }\n return comment(code)\n }\n\n /**\n * In comment, after `--`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentEnd(code) {\n return code === 62\n ? end(code)\n : code === 45\n ? commentClose(code)\n : comment(code)\n }\n\n /**\n * After ` | a &<]]> b\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function cdataOpenInside(code) {\n const value = 'CDATA['\n if (code === value.charCodeAt(index++)) {\n effects.consume(code)\n return index === value.length ? cdata : cdataOpenInside\n }\n return nok(code)\n }\n\n /**\n * In CDATA.\n *\n * ```markdown\n * > | a &<]]> b\n * ^^^\n * ```\n *\n * @type {State}\n */\n function cdata(code) {\n if (code === null) {\n return nok(code)\n }\n if (code === 93) {\n effects.consume(code)\n return cdataClose\n }\n if (markdownLineEnding(code)) {\n returnState = cdata\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return cdata\n }\n\n /**\n * In CDATA, after `]`, at another `]`.\n *\n * ```markdown\n * > | a &<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataClose(code) {\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n return cdata(code)\n }\n\n /**\n * In CDATA, after `]]`, at `>`.\n *\n * ```markdown\n * > | a &<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataEnd(code) {\n if (code === 62) {\n return end(code)\n }\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n return cdata(code)\n }\n\n /**\n * In declaration.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function declaration(code) {\n if (code === null || code === 62) {\n return end(code)\n }\n if (markdownLineEnding(code)) {\n returnState = declaration\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return declaration\n }\n\n /**\n * In instruction.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function instruction(code) {\n if (code === null) {\n return nok(code)\n }\n if (code === 63) {\n effects.consume(code)\n return instructionClose\n }\n if (markdownLineEnding(code)) {\n returnState = instruction\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return instruction\n }\n\n /**\n * In instruction, after `?`, at `>`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function instructionClose(code) {\n return code === 62 ? end(code) : instruction(code)\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseStart(code) {\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagClose\n }\n return nok(code)\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagClose(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagClose\n }\n return tagCloseBetween(code)\n }\n\n /**\n * In closing tag, after tag name.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseBetween(code) {\n if (markdownLineEnding(code)) {\n returnState = tagCloseBetween\n return lineEndingBefore(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagCloseBetween\n }\n return end(code)\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpen(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagOpen\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n return nok(code)\n }\n\n /**\n * In opening tag, after tag name.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenBetween(code) {\n if (code === 47) {\n effects.consume(code)\n return end\n }\n\n // ASCII alphabetical and `:` and `_`.\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenBetween\n return lineEndingBefore(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenBetween\n }\n return end(code)\n }\n\n /**\n * In attribute name.\n *\n * ```markdown\n * > | a d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeName(code) {\n // ASCII alphabetical and `-`, `.`, `:`, and `_`.\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n return tagOpenAttributeNameAfter(code)\n }\n\n /**\n * After attribute name, before initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | a d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeNameAfter\n return lineEndingBefore(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeNameAfter\n }\n return tagOpenBetween(code)\n }\n\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n if (code === 34 || code === 39) {\n effects.consume(code)\n marker = code\n return tagOpenAttributeValueQuoted\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueBefore\n return lineEndingBefore(code)\n }\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n effects.consume(code)\n return tagOpenAttributeValueUnquoted\n }\n\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code)\n marker = undefined\n return tagOpenAttributeValueQuotedAfter\n }\n if (code === null) {\n return nok(code)\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueQuoted\n return lineEndingBefore(code)\n }\n effects.consume(code)\n return tagOpenAttributeValueQuoted\n }\n\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 60 ||\n code === 61 ||\n code === 96\n ) {\n return nok(code)\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n effects.consume(code)\n return tagOpenAttributeValueUnquoted\n }\n\n /**\n * After double or single quoted attribute value, before whitespace or the end\n * of the tag.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n return nok(code)\n }\n\n /**\n * In certain circumstances of a tag where only an `>` is allowed.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function end(code) {\n if (code === 62) {\n effects.consume(code)\n effects.exit('htmlTextData')\n effects.exit('htmlText')\n return ok\n }\n return nok(code)\n }\n\n /**\n * At eol.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * > | a \n * ```\n *\n * @type {State}\n */\n function lineEndingBefore(code) {\n effects.exit('htmlTextData')\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return lineEndingAfter\n }\n\n /**\n * After eol, at optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a \n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfter(code) {\n // Always populated by defaults.\n\n return markdownSpace(code)\n ? factorySpace(\n effects,\n lineEndingAfterPrefix,\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n : lineEndingAfterPrefix(code)\n }\n\n /**\n * After eol, after optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a \n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfterPrefix(code) {\n effects.enter('htmlTextData')\n return returnState(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {labelEnd} from './label-end.js'\n\n/** @type {Construct} */\nexport const labelStartLink = {\n name: 'labelStartLink',\n tokenize: tokenizeLabelStartLink,\n resolveAll: labelEnd.resolveAll\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n const self = this\n return start\n\n /**\n * Start of label (link) start.\n *\n * ```markdown\n * > | a [b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('labelLink')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelLink')\n return after\n }\n\n /** @type {State} */\n function after(code) {\n // To do: this isn’t needed in `micromark-extension-gfm-footnote`,\n // remove.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs\n ? nok(code)\n : ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {Construct} */\nexport const hardBreakEscape = {\n name: 'hardBreakEscape',\n tokenize: tokenizeHardBreakEscape\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHardBreakEscape(effects, ok, nok) {\n return start\n\n /**\n * Start of a hard break (escape).\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('hardBreakEscape')\n effects.consume(code)\n return after\n }\n\n /**\n * After `\\`, at eol.\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (markdownLineEnding(code)) {\n effects.exit('hardBreakEscape')\n return ok(code)\n }\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Previous} Previous\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {markdownLineEnding} from 'micromark-util-character'\n/** @type {Construct} */\nexport const codeText = {\n name: 'codeText',\n tokenize: tokenizeCodeText,\n resolve: resolveCodeText,\n previous\n}\n\n// To do: next major: don’t resolve, like `markdown-rs`.\n/** @type {Resolver} */\nfunction resolveCodeText(events) {\n let tailExitIndex = events.length - 4\n let headEnterIndex = 3\n /** @type {number} */\n let index\n /** @type {number | undefined} */\n let enter\n\n // If we start and end with an EOL or a space.\n if (\n (events[headEnterIndex][1].type === 'lineEnding' ||\n events[headEnterIndex][1].type === 'space') &&\n (events[tailExitIndex][1].type === 'lineEnding' ||\n events[tailExitIndex][1].type === 'space')\n ) {\n index = headEnterIndex\n\n // And we have data.\n while (++index < tailExitIndex) {\n if (events[index][1].type === 'codeTextData') {\n // Then we have padding.\n events[headEnterIndex][1].type = 'codeTextPadding'\n events[tailExitIndex][1].type = 'codeTextPadding'\n headEnterIndex += 2\n tailExitIndex -= 2\n break\n }\n }\n }\n\n // Merge adjacent spaces and data.\n index = headEnterIndex - 1\n tailExitIndex++\n while (++index <= tailExitIndex) {\n if (enter === undefined) {\n if (index !== tailExitIndex && events[index][1].type !== 'lineEnding') {\n enter = index\n }\n } else if (\n index === tailExitIndex ||\n events[index][1].type === 'lineEnding'\n ) {\n events[enter][1].type = 'codeTextData'\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n tailExitIndex -= index - enter - 2\n index = enter + 2\n }\n enter = undefined\n }\n }\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Previous}\n */\nfunction previous(code) {\n // If there is a previous code, there will always be a tail.\n return (\n code !== 96 ||\n this.events[this.events.length - 1][1].type === 'characterEscape'\n )\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCodeText(effects, ok, nok) {\n const self = this\n let sizeOpen = 0\n /** @type {number} */\n let size\n /** @type {Token} */\n let token\n return start\n\n /**\n * Start of code (text).\n *\n * ```markdown\n * > | `a`\n * ^\n * > | \\`a`\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('codeText')\n effects.enter('codeTextSequence')\n return sequenceOpen(code)\n }\n\n /**\n * In opening sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === 96) {\n effects.consume(code)\n sizeOpen++\n return sequenceOpen\n }\n effects.exit('codeTextSequence')\n return between(code)\n }\n\n /**\n * Between something and something else.\n *\n * ```markdown\n * > | `a`\n * ^^\n * ```\n *\n * @type {State}\n */\n function between(code) {\n // EOF.\n if (code === null) {\n return nok(code)\n }\n\n // To do: next major: don’t do spaces in resolve, but when compiling,\n // like `markdown-rs`.\n // Tabs don’t work, and virtual spaces don’t make sense.\n if (code === 32) {\n effects.enter('space')\n effects.consume(code)\n effects.exit('space')\n return between\n }\n\n // Closing fence? Could also be data.\n if (code === 96) {\n token = effects.enter('codeTextSequence')\n size = 0\n return sequenceClose(code)\n }\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return between\n }\n\n // Data.\n effects.enter('codeTextData')\n return data(code)\n }\n\n /**\n * In data.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function data(code) {\n if (\n code === null ||\n code === 32 ||\n code === 96 ||\n markdownLineEnding(code)\n ) {\n effects.exit('codeTextData')\n return between(code)\n }\n effects.consume(code)\n return data\n }\n\n /**\n * In closing sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceClose(code) {\n // More.\n if (code === 96) {\n effects.consume(code)\n size++\n return sequenceClose\n }\n\n // Done!\n if (size === sizeOpen) {\n effects.exit('codeTextSequence')\n effects.exit('codeText')\n return ok(code)\n }\n\n // More or less accents: mark as data.\n token.type = 'codeTextData'\n return data(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n */\n\nimport {\n attention,\n autolink,\n blockQuote,\n characterEscape,\n characterReference,\n codeFenced,\n codeIndented,\n codeText,\n definition,\n hardBreakEscape,\n headingAtx,\n htmlFlow,\n htmlText,\n labelEnd,\n labelStartImage,\n labelStartLink,\n lineEnding,\n list,\n setextUnderline,\n thematicBreak\n} from 'micromark-core-commonmark'\nimport {resolver as resolveText} from './initialize/text.js'\n\n/** @satisfies {Extension['document']} */\nexport const document = {\n [42]: list,\n [43]: list,\n [45]: list,\n [48]: list,\n [49]: list,\n [50]: list,\n [51]: list,\n [52]: list,\n [53]: list,\n [54]: list,\n [55]: list,\n [56]: list,\n [57]: list,\n [62]: blockQuote\n}\n\n/** @satisfies {Extension['contentInitial']} */\nexport const contentInitial = {\n [91]: definition\n}\n\n/** @satisfies {Extension['flowInitial']} */\nexport const flowInitial = {\n [-2]: codeIndented,\n [-1]: codeIndented,\n [32]: codeIndented\n}\n\n/** @satisfies {Extension['flow']} */\nexport const flow = {\n [35]: headingAtx,\n [42]: thematicBreak,\n [45]: [setextUnderline, thematicBreak],\n [60]: htmlFlow,\n [61]: setextUnderline,\n [95]: thematicBreak,\n [96]: codeFenced,\n [126]: codeFenced\n}\n\n/** @satisfies {Extension['string']} */\nexport const string = {\n [38]: characterReference,\n [92]: characterEscape\n}\n\n/** @satisfies {Extension['text']} */\nexport const text = {\n [-5]: lineEnding,\n [-4]: lineEnding,\n [-3]: lineEnding,\n [33]: labelStartImage,\n [38]: characterReference,\n [42]: attention,\n [60]: [autolink, htmlText],\n [91]: labelStartLink,\n [92]: [hardBreakEscape, characterEscape],\n [93]: labelEnd,\n [95]: attention,\n [96]: codeText\n}\n\n/** @satisfies {Extension['insideSpan']} */\nexport const insideSpan = {\n null: [attention, resolveText]\n}\n\n/** @satisfies {Extension['attentionMarkers']} */\nexport const attentionMarkers = {\n null: [42, 95]\n}\n\n/** @satisfies {Extension['disable']} */\nexport const disable = {\n null: []\n}\n","/**\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Value} Value\n */\n\n/**\n * @callback Preprocessor\n * @param {Value} value\n * @param {Encoding | null | undefined} [encoding]\n * @param {boolean | null | undefined} [end=false]\n * @returns {Array}\n */\n\nconst search = /[\\0\\t\\n\\r]/g\n\n/**\n * @returns {Preprocessor}\n */\nexport function preprocess() {\n let column = 1\n let buffer = ''\n /** @type {boolean | undefined} */\n let start = true\n /** @type {boolean | undefined} */\n let atCarriageReturn\n return preprocessor\n\n /** @type {Preprocessor} */\n // eslint-disable-next-line complexity\n function preprocessor(value, encoding, end) {\n /** @type {Array} */\n const chunks = []\n /** @type {RegExpMatchArray | null} */\n let match\n /** @type {number} */\n let next\n /** @type {number} */\n let startPosition\n /** @type {number} */\n let endPosition\n /** @type {Code} */\n let code\n value =\n buffer +\n (typeof value === 'string'\n ? value.toString()\n : new TextDecoder(encoding || undefined).decode(value))\n startPosition = 0\n buffer = ''\n if (start) {\n // To do: `markdown-rs` actually parses BOMs (byte order mark).\n if (value.charCodeAt(0) === 65279) {\n startPosition++\n }\n start = undefined\n }\n while (startPosition < value.length) {\n search.lastIndex = startPosition\n match = search.exec(value)\n endPosition =\n match && match.index !== undefined ? match.index : value.length\n code = value.charCodeAt(endPosition)\n if (!match) {\n buffer = value.slice(startPosition)\n break\n }\n if (code === 10 && startPosition === endPosition && atCarriageReturn) {\n chunks.push(-3)\n atCarriageReturn = undefined\n } else {\n if (atCarriageReturn) {\n chunks.push(-5)\n atCarriageReturn = undefined\n }\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition))\n column += endPosition - startPosition\n }\n switch (code) {\n case 0: {\n chunks.push(65533)\n column++\n break\n }\n case 9: {\n next = Math.ceil(column / 4) * 4\n chunks.push(-2)\n while (column++ < next) chunks.push(-1)\n break\n }\n case 10: {\n chunks.push(-4)\n column = 1\n break\n }\n default: {\n atCarriageReturn = true\n column = 1\n }\n }\n }\n startPosition = endPosition + 1\n }\n if (end) {\n if (atCarriageReturn) chunks.push(-5)\n if (buffer) chunks.push(buffer)\n chunks.push(null)\n }\n return chunks\n }\n}\n","/**\n * Turn the number (in string form as either hexa- or plain decimal) coming from\n * a numeric character reference into a character.\n *\n * Sort of like `String.fromCodePoint(Number.parseInt(value, base))`, but makes\n * non-characters and control characters safe.\n *\n * @param {string} value\n * Value to decode.\n * @param {number} base\n * Numeric base.\n * @returns {string}\n * Character.\n */\nexport function decodeNumericCharacterReference(value, base) {\n const code = Number.parseInt(value, base);\n if (\n // C0 except for HT, LF, FF, CR, space.\n code < 9 || code === 11 || code > 13 && code < 32 ||\n // Control character (DEL) of C0, and C1 controls.\n code > 126 && code < 160 ||\n // Lone high surrogates and low surrogates.\n code > 55_295 && code < 57_344 ||\n // Noncharacters.\n code > 64_975 && code < 65_008 || /* eslint-disable no-bitwise */\n (code & 65_535) === 65_535 || (code & 65_535) === 65_534 || /* eslint-enable no-bitwise */\n // Out of range\n code > 1_114_111) {\n return \"\\uFFFD\";\n }\n return String.fromCodePoint(code);\n}","import {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {decodeNumericCharacterReference} from 'micromark-util-decode-numeric-character-reference'\nconst characterEscapeOrReference =\n /\\\\([!-/:-@[-`{-~])|&(#(?:\\d{1,7}|x[\\da-f]{1,6})|[\\da-z]{1,31});/gi\n\n/**\n * Decode markdown strings (which occur in places such as fenced code info\n * strings, destinations, labels, and titles).\n *\n * The “string” content type allows character escapes and -references.\n * This decodes those.\n *\n * @param {string} value\n * Value to decode.\n * @returns {string}\n * Decoded value.\n */\nexport function decodeString(value) {\n return value.replace(characterEscapeOrReference, decode)\n}\n\n/**\n * @param {string} $0\n * @param {string} $1\n * @param {string} $2\n * @returns {string}\n */\nfunction decode($0, $1, $2) {\n if ($1) {\n // Escape.\n return $1\n }\n\n // Reference.\n const head = $2.charCodeAt(0)\n if (head === 35) {\n const head = $2.charCodeAt(1)\n const hex = head === 120 || head === 88\n return decodeNumericCharacterReference($2.slice(hex ? 2 : 1), hex ? 16 : 10)\n }\n return decodeNamedCharacterReference($2) || $0\n}\n","/**\n * @typedef {import('mdast').Break} Break\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('mdast').Code} Code\n * @typedef {import('mdast').Definition} Definition\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('mdast').Html} Html\n * @typedef {import('mdast').Image} Image\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast').List} List\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Nodes} Nodes\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast').Parent} Parent\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').ReferenceType} ReferenceType\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('mdast').Text} Text\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n *\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Value} Value\n *\n * @typedef {import('unist').Point} Point\n *\n * @typedef {import('../index.js').CompileData} CompileData\n */\n\n/**\n * @typedef {Omit & {type: 'fragment', children: Array}} Fragment\n */\n\n/**\n * @callback Transform\n * Extra transform, to change the AST afterwards.\n * @param {Root} tree\n * Tree to transform.\n * @returns {Root | null | undefined | void}\n * New tree or nothing (in which case the current tree is used).\n *\n * @callback Handle\n * Handle a token.\n * @param {CompileContext} this\n * Context.\n * @param {Token} token\n * Current token.\n * @returns {undefined | void}\n * Nothing.\n *\n * @typedef {Record} Handles\n * Token types mapping to handles\n *\n * @callback OnEnterError\n * Handle the case where the `right` token is open, but it is closed (by the\n * `left` token) or because we reached the end of the document.\n * @param {Omit} this\n * Context.\n * @param {Token | undefined} left\n * Left token.\n * @param {Token} right\n * Right token.\n * @returns {undefined}\n * Nothing.\n *\n * @callback OnExitError\n * Handle the case where the `right` token is open but it is closed by\n * exiting the `left` token.\n * @param {Omit} this\n * Context.\n * @param {Token} left\n * Left token.\n * @param {Token} right\n * Right token.\n * @returns {undefined}\n * Nothing.\n *\n * @typedef {[Token, OnEnterError | undefined]} TokenTuple\n * Open token on the stack, with an optional error handler for when\n * that token isn’t closed properly.\n */\n\n/**\n * @typedef Config\n * Configuration.\n *\n * We have our defaults, but extensions will add more.\n * @property {Array} canContainEols\n * Token types where line endings are used.\n * @property {Handles} enter\n * Opening handles.\n * @property {Handles} exit\n * Closing handles.\n * @property {Array} transforms\n * Tree transforms.\n *\n * @typedef {Partial} Extension\n * Change how markdown tokens from micromark are turned into mdast.\n *\n * @typedef CompileContext\n * mdast compiler context.\n * @property {Array} stack\n * Stack of nodes.\n * @property {Array} tokenStack\n * Stack of tokens.\n * @property {(this: CompileContext) => undefined} buffer\n * Capture some of the output data.\n * @property {(this: CompileContext) => string} resume\n * Stop capturing and access the output data.\n * @property {(this: CompileContext, node: Nodes, token: Token, onError?: OnEnterError) => undefined} enter\n * Enter a node.\n * @property {(this: CompileContext, token: Token, onError?: OnExitError) => undefined} exit\n * Exit a node.\n * @property {TokenizeContext['sliceSerialize']} sliceSerialize\n * Get the string value of a token.\n * @property {Config} config\n * Configuration.\n * @property {CompileData} data\n * Info passed around; key/value store.\n *\n * @typedef FromMarkdownOptions\n * Configuration for how to build mdast.\n * @property {Array> | null | undefined} [mdastExtensions]\n * Extensions for this utility to change how tokens are turned into a tree.\n *\n * @typedef {ParseOptions & FromMarkdownOptions} Options\n * Configuration.\n */\n\nimport {toString} from 'mdast-util-to-string'\nimport {parse, postprocess, preprocess} from 'micromark'\nimport {decodeNumericCharacterReference} from 'micromark-util-decode-numeric-character-reference'\nimport {decodeString} from 'micromark-util-decode-string'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {stringifyPosition} from 'unist-util-stringify-position'\nconst own = {}.hasOwnProperty\n\n/**\n * Turn markdown into a syntax tree.\n *\n * @overload\n * @param {Value} value\n * @param {Encoding | null | undefined} [encoding]\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n *\n * @overload\n * @param {Value} value\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n *\n * @param {Value} value\n * Markdown to parse.\n * @param {Encoding | Options | null | undefined} [encoding]\n * Character encoding for when `value` is `Buffer`.\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {Root}\n * mdast tree.\n */\nexport function fromMarkdown(value, encoding, options) {\n if (typeof encoding !== 'string') {\n options = encoding\n encoding = undefined\n }\n return compiler(options)(\n postprocess(\n parse(options).document().write(preprocess()(value, encoding, true))\n )\n )\n}\n\n/**\n * Note this compiler only understand complete buffering, not streaming.\n *\n * @param {Options | null | undefined} [options]\n */\nfunction compiler(options) {\n /** @type {Config} */\n const config = {\n transforms: [],\n canContainEols: ['emphasis', 'fragment', 'heading', 'paragraph', 'strong'],\n enter: {\n autolink: opener(link),\n autolinkProtocol: onenterdata,\n autolinkEmail: onenterdata,\n atxHeading: opener(heading),\n blockQuote: opener(blockQuote),\n characterEscape: onenterdata,\n characterReference: onenterdata,\n codeFenced: opener(codeFlow),\n codeFencedFenceInfo: buffer,\n codeFencedFenceMeta: buffer,\n codeIndented: opener(codeFlow, buffer),\n codeText: opener(codeText, buffer),\n codeTextData: onenterdata,\n data: onenterdata,\n codeFlowValue: onenterdata,\n definition: opener(definition),\n definitionDestinationString: buffer,\n definitionLabelString: buffer,\n definitionTitleString: buffer,\n emphasis: opener(emphasis),\n hardBreakEscape: opener(hardBreak),\n hardBreakTrailing: opener(hardBreak),\n htmlFlow: opener(html, buffer),\n htmlFlowData: onenterdata,\n htmlText: opener(html, buffer),\n htmlTextData: onenterdata,\n image: opener(image),\n label: buffer,\n link: opener(link),\n listItem: opener(listItem),\n listItemValue: onenterlistitemvalue,\n listOrdered: opener(list, onenterlistordered),\n listUnordered: opener(list),\n paragraph: opener(paragraph),\n reference: onenterreference,\n referenceString: buffer,\n resourceDestinationString: buffer,\n resourceTitleString: buffer,\n setextHeading: opener(heading),\n strong: opener(strong),\n thematicBreak: opener(thematicBreak)\n },\n exit: {\n atxHeading: closer(),\n atxHeadingSequence: onexitatxheadingsequence,\n autolink: closer(),\n autolinkEmail: onexitautolinkemail,\n autolinkProtocol: onexitautolinkprotocol,\n blockQuote: closer(),\n characterEscapeValue: onexitdata,\n characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n characterReferenceValue: onexitcharacterreferencevalue,\n codeFenced: closer(onexitcodefenced),\n codeFencedFence: onexitcodefencedfence,\n codeFencedFenceInfo: onexitcodefencedfenceinfo,\n codeFencedFenceMeta: onexitcodefencedfencemeta,\n codeFlowValue: onexitdata,\n codeIndented: closer(onexitcodeindented),\n codeText: closer(onexitcodetext),\n codeTextData: onexitdata,\n data: onexitdata,\n definition: closer(),\n definitionDestinationString: onexitdefinitiondestinationstring,\n definitionLabelString: onexitdefinitionlabelstring,\n definitionTitleString: onexitdefinitiontitlestring,\n emphasis: closer(),\n hardBreakEscape: closer(onexithardbreak),\n hardBreakTrailing: closer(onexithardbreak),\n htmlFlow: closer(onexithtmlflow),\n htmlFlowData: onexitdata,\n htmlText: closer(onexithtmltext),\n htmlTextData: onexitdata,\n image: closer(onexitimage),\n label: onexitlabel,\n labelText: onexitlabeltext,\n lineEnding: onexitlineending,\n link: closer(onexitlink),\n listItem: closer(),\n listOrdered: closer(),\n listUnordered: closer(),\n paragraph: closer(),\n referenceString: onexitreferencestring,\n resourceDestinationString: onexitresourcedestinationstring,\n resourceTitleString: onexitresourcetitlestring,\n resource: onexitresource,\n setextHeading: closer(onexitsetextheading),\n setextHeadingLineSequence: onexitsetextheadinglinesequence,\n setextHeadingText: onexitsetextheadingtext,\n strong: closer(),\n thematicBreak: closer()\n }\n }\n configure(config, (options || {}).mdastExtensions || [])\n\n /** @type {CompileData} */\n const data = {}\n return compile\n\n /**\n * Turn micromark events into an mdast tree.\n *\n * @param {Array} events\n * Events.\n * @returns {Root}\n * mdast tree.\n */\n function compile(events) {\n /** @type {Root} */\n let tree = {\n type: 'root',\n children: []\n }\n /** @type {Omit} */\n const context = {\n stack: [tree],\n tokenStack: [],\n config,\n enter,\n exit,\n buffer,\n resume,\n data\n }\n /** @type {Array} */\n const listStack = []\n let index = -1\n while (++index < events.length) {\n // We preprocess lists to add `listItem` tokens, and to infer whether\n // items the list itself are spread out.\n if (\n events[index][1].type === 'listOrdered' ||\n events[index][1].type === 'listUnordered'\n ) {\n if (events[index][0] === 'enter') {\n listStack.push(index)\n } else {\n const tail = listStack.pop()\n index = prepareList(events, tail, index)\n }\n }\n }\n index = -1\n while (++index < events.length) {\n const handler = config[events[index][0]]\n if (own.call(handler, events[index][1].type)) {\n handler[events[index][1].type].call(\n Object.assign(\n {\n sliceSerialize: events[index][2].sliceSerialize\n },\n context\n ),\n events[index][1]\n )\n }\n }\n\n // Handle tokens still being open.\n if (context.tokenStack.length > 0) {\n const tail = context.tokenStack[context.tokenStack.length - 1]\n const handler = tail[1] || defaultOnError\n handler.call(context, undefined, tail[0])\n }\n\n // Figure out `root` position.\n tree.position = {\n start: point(\n events.length > 0\n ? events[0][1].start\n : {\n line: 1,\n column: 1,\n offset: 0\n }\n ),\n end: point(\n events.length > 0\n ? events[events.length - 2][1].end\n : {\n line: 1,\n column: 1,\n offset: 0\n }\n )\n }\n\n // Call transforms.\n index = -1\n while (++index < config.transforms.length) {\n tree = config.transforms[index](tree) || tree\n }\n return tree\n }\n\n /**\n * @param {Array} events\n * @param {number} start\n * @param {number} length\n * @returns {number}\n */\n function prepareList(events, start, length) {\n let index = start - 1\n let containerBalance = -1\n let listSpread = false\n /** @type {Token | undefined} */\n let listItem\n /** @type {number | undefined} */\n let lineIndex\n /** @type {number | undefined} */\n let firstBlankLineIndex\n /** @type {boolean | undefined} */\n let atMarker\n while (++index <= length) {\n const event = events[index]\n switch (event[1].type) {\n case 'listUnordered':\n case 'listOrdered':\n case 'blockQuote': {\n if (event[0] === 'enter') {\n containerBalance++\n } else {\n containerBalance--\n }\n atMarker = undefined\n break\n }\n case 'lineEndingBlank': {\n if (event[0] === 'enter') {\n if (\n listItem &&\n !atMarker &&\n !containerBalance &&\n !firstBlankLineIndex\n ) {\n firstBlankLineIndex = index\n }\n atMarker = undefined\n }\n break\n }\n case 'linePrefix':\n case 'listItemValue':\n case 'listItemMarker':\n case 'listItemPrefix':\n case 'listItemPrefixWhitespace': {\n // Empty.\n\n break\n }\n default: {\n atMarker = undefined\n }\n }\n if (\n (!containerBalance &&\n event[0] === 'enter' &&\n event[1].type === 'listItemPrefix') ||\n (containerBalance === -1 &&\n event[0] === 'exit' &&\n (event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered'))\n ) {\n if (listItem) {\n let tailIndex = index\n lineIndex = undefined\n while (tailIndex--) {\n const tailEvent = events[tailIndex]\n if (\n tailEvent[1].type === 'lineEnding' ||\n tailEvent[1].type === 'lineEndingBlank'\n ) {\n if (tailEvent[0] === 'exit') continue\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n listSpread = true\n }\n tailEvent[1].type = 'lineEnding'\n lineIndex = tailIndex\n } else if (\n tailEvent[1].type === 'linePrefix' ||\n tailEvent[1].type === 'blockQuotePrefix' ||\n tailEvent[1].type === 'blockQuotePrefixWhitespace' ||\n tailEvent[1].type === 'blockQuoteMarker' ||\n tailEvent[1].type === 'listItemIndent'\n ) {\n // Empty\n } else {\n break\n }\n }\n if (\n firstBlankLineIndex &&\n (!lineIndex || firstBlankLineIndex < lineIndex)\n ) {\n listItem._spread = true\n }\n\n // Fix position.\n listItem.end = Object.assign(\n {},\n lineIndex ? events[lineIndex][1].start : event[1].end\n )\n events.splice(lineIndex || index, 0, ['exit', listItem, event[2]])\n index++\n length++\n }\n\n // Create a new list item.\n if (event[1].type === 'listItemPrefix') {\n /** @type {Token} */\n const item = {\n type: 'listItem',\n _spread: false,\n start: Object.assign({}, event[1].start),\n // @ts-expect-error: we’ll add `end` in a second.\n end: undefined\n }\n listItem = item\n events.splice(index, 0, ['enter', item, event[2]])\n index++\n length++\n firstBlankLineIndex = undefined\n atMarker = true\n }\n }\n }\n events[start][1]._spread = listSpread\n return length\n }\n\n /**\n * Create an opener handle.\n *\n * @param {(token: Token) => Nodes} create\n * Create a node.\n * @param {Handle | undefined} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function opener(create, and) {\n return open\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {undefined}\n */\n function open(token) {\n enter.call(this, create(token), token)\n if (and) and.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * @returns {undefined}\n */\n function buffer() {\n this.stack.push({\n type: 'fragment',\n children: []\n })\n }\n\n /**\n * @this {CompileContext}\n * Context.\n * @param {Nodes} node\n * Node to enter.\n * @param {Token} token\n * Corresponding token.\n * @param {OnEnterError | undefined} [errorHandler]\n * Handle the case where this token is open, but it is closed by something else.\n * @returns {undefined}\n * Nothing.\n */\n function enter(node, token, errorHandler) {\n const parent = this.stack[this.stack.length - 1]\n /** @type {Array} */\n const siblings = parent.children\n siblings.push(node)\n this.stack.push(node)\n this.tokenStack.push([token, errorHandler])\n node.position = {\n start: point(token.start),\n // @ts-expect-error: `end` will be patched later.\n end: undefined\n }\n }\n\n /**\n * Create a closer handle.\n *\n * @param {Handle | undefined} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function closer(and) {\n return close\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {undefined}\n */\n function close(token) {\n if (and) and.call(this, token)\n exit.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * Context.\n * @param {Token} token\n * Corresponding token.\n * @param {OnExitError | undefined} [onExitError]\n * Handle the case where another token is open.\n * @returns {undefined}\n * Nothing.\n */\n function exit(token, onExitError) {\n const node = this.stack.pop()\n const open = this.tokenStack.pop()\n if (!open) {\n throw new Error(\n 'Cannot close `' +\n token.type +\n '` (' +\n stringifyPosition({\n start: token.start,\n end: token.end\n }) +\n '): it’s not open'\n )\n } else if (open[0].type !== token.type) {\n if (onExitError) {\n onExitError.call(this, token, open[0])\n } else {\n const handler = open[1] || defaultOnError\n handler.call(this, token, open[0])\n }\n }\n node.position.end = point(token.end)\n }\n\n /**\n * @this {CompileContext}\n * @returns {string}\n */\n function resume() {\n return toString(this.stack.pop())\n }\n\n //\n // Handlers.\n //\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistordered() {\n this.data.expectingFirstListItemValue = true\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistitemvalue(token) {\n if (this.data.expectingFirstListItemValue) {\n const ancestor = this.stack[this.stack.length - 2]\n ancestor.start = Number.parseInt(this.sliceSerialize(token), 10)\n this.data.expectingFirstListItemValue = undefined\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfenceinfo() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.lang = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfencemeta() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.meta = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfence() {\n // Exit if this is the closing fence.\n if (this.data.flowCodeInside) return\n this.buffer()\n this.data.flowCodeInside = true\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefenced() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data.replace(/^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g, '')\n this.data.flowCodeInside = undefined\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodeindented() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data.replace(/(\\r?\\n|\\r)$/g, '')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitionlabelstring(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.label = label\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiontitlestring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.title = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiondestinationstring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.url = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitatxheadingsequence(token) {\n const node = this.stack[this.stack.length - 1]\n if (!node.depth) {\n const depth = this.sliceSerialize(token).length\n node.depth = depth\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadingtext() {\n this.data.setextHeadingSlurpLineEnding = true\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadinglinesequence(token) {\n const node = this.stack[this.stack.length - 1]\n node.depth = this.sliceSerialize(token).codePointAt(0) === 61 ? 1 : 2\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheading() {\n this.data.setextHeadingSlurpLineEnding = undefined\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterdata(token) {\n const node = this.stack[this.stack.length - 1]\n /** @type {Array} */\n const siblings = node.children\n let tail = siblings[siblings.length - 1]\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text()\n tail.position = {\n start: point(token.start),\n // @ts-expect-error: we’ll add `end` later.\n end: undefined\n }\n siblings.push(tail)\n }\n this.stack.push(tail)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitdata(token) {\n const tail = this.stack.pop()\n tail.value += this.sliceSerialize(token)\n tail.position.end = point(token.end)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlineending(token) {\n const context = this.stack[this.stack.length - 1]\n // If we’re at a hard break, include the line ending in there.\n if (this.data.atHardBreak) {\n const tail = context.children[context.children.length - 1]\n tail.position.end = point(token.end)\n this.data.atHardBreak = undefined\n return\n }\n if (\n !this.data.setextHeadingSlurpLineEnding &&\n config.canContainEols.includes(context.type)\n ) {\n onenterdata.call(this, token)\n onexitdata.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithardbreak() {\n this.data.atHardBreak = true\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmlflow() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmltext() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcodetext() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlink() {\n const node = this.stack[this.stack.length - 1]\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n // To do: clean.\n if (this.data.inReference) {\n /** @type {ReferenceType} */\n const referenceType = this.data.referenceType || 'shortcut'\n node.type += 'Reference'\n // @ts-expect-error: mutate.\n node.referenceType = referenceType\n // @ts-expect-error: mutate.\n delete node.url\n delete node.title\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier\n // @ts-expect-error: mutate.\n delete node.label\n }\n this.data.referenceType = undefined\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitimage() {\n const node = this.stack[this.stack.length - 1]\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n // To do: clean.\n if (this.data.inReference) {\n /** @type {ReferenceType} */\n const referenceType = this.data.referenceType || 'shortcut'\n node.type += 'Reference'\n // @ts-expect-error: mutate.\n node.referenceType = referenceType\n // @ts-expect-error: mutate.\n delete node.url\n delete node.title\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier\n // @ts-expect-error: mutate.\n delete node.label\n }\n this.data.referenceType = undefined\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabeltext(token) {\n const string = this.sliceSerialize(token)\n const ancestor = this.stack[this.stack.length - 2]\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n ancestor.label = decodeString(string)\n // @ts-expect-error: same as above.\n ancestor.identifier = normalizeIdentifier(string).toLowerCase()\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabel() {\n const fragment = this.stack[this.stack.length - 1]\n const value = this.resume()\n const node = this.stack[this.stack.length - 1]\n // Assume a reference.\n this.data.inReference = true\n if (node.type === 'link') {\n /** @type {Array} */\n const children = fragment.children\n node.children = children\n } else {\n node.alt = value\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcedestinationstring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.url = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcetitlestring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.title = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresource() {\n this.data.inReference = undefined\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterreference() {\n this.data.referenceType = 'collapsed'\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitreferencestring(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n node.label = label\n // @ts-expect-error: same as above.\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n this.data.referenceType = 'full'\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcharacterreferencemarker(token) {\n this.data.characterReferenceType = token.type\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcharacterreferencevalue(token) {\n const data = this.sliceSerialize(token)\n const type = this.data.characterReferenceType\n /** @type {string} */\n let value\n if (type) {\n value = decodeNumericCharacterReference(\n data,\n type === 'characterReferenceMarkerNumeric' ? 10 : 16\n )\n this.data.characterReferenceType = undefined\n } else {\n const result = decodeNamedCharacterReference(data)\n value = result\n }\n const tail = this.stack.pop()\n tail.value += value\n tail.position.end = point(token.end)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkprotocol(token) {\n onexitdata.call(this, token)\n const node = this.stack[this.stack.length - 1]\n node.url = this.sliceSerialize(token)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkemail(token) {\n onexitdata.call(this, token)\n const node = this.stack[this.stack.length - 1]\n node.url = 'mailto:' + this.sliceSerialize(token)\n }\n\n //\n // Creaters.\n //\n\n /** @returns {Blockquote} */\n function blockQuote() {\n return {\n type: 'blockquote',\n children: []\n }\n }\n\n /** @returns {Code} */\n function codeFlow() {\n return {\n type: 'code',\n lang: null,\n meta: null,\n value: ''\n }\n }\n\n /** @returns {InlineCode} */\n function codeText() {\n return {\n type: 'inlineCode',\n value: ''\n }\n }\n\n /** @returns {Definition} */\n function definition() {\n return {\n type: 'definition',\n identifier: '',\n label: null,\n title: null,\n url: ''\n }\n }\n\n /** @returns {Emphasis} */\n function emphasis() {\n return {\n type: 'emphasis',\n children: []\n }\n }\n\n /** @returns {Heading} */\n function heading() {\n return {\n type: 'heading',\n // @ts-expect-error `depth` will be set later.\n depth: 0,\n children: []\n }\n }\n\n /** @returns {Break} */\n function hardBreak() {\n return {\n type: 'break'\n }\n }\n\n /** @returns {Html} */\n function html() {\n return {\n type: 'html',\n value: ''\n }\n }\n\n /** @returns {Image} */\n function image() {\n return {\n type: 'image',\n title: null,\n url: '',\n alt: null\n }\n }\n\n /** @returns {Link} */\n function link() {\n return {\n type: 'link',\n title: null,\n url: '',\n children: []\n }\n }\n\n /**\n * @param {Token} token\n * @returns {List}\n */\n function list(token) {\n return {\n type: 'list',\n ordered: token.type === 'listOrdered',\n start: null,\n spread: token._spread,\n children: []\n }\n }\n\n /**\n * @param {Token} token\n * @returns {ListItem}\n */\n function listItem(token) {\n return {\n type: 'listItem',\n spread: token._spread,\n checked: null,\n children: []\n }\n }\n\n /** @returns {Paragraph} */\n function paragraph() {\n return {\n type: 'paragraph',\n children: []\n }\n }\n\n /** @returns {Strong} */\n function strong() {\n return {\n type: 'strong',\n children: []\n }\n }\n\n /** @returns {Text} */\n function text() {\n return {\n type: 'text',\n value: ''\n }\n }\n\n /** @returns {ThematicBreak} */\n function thematicBreak() {\n return {\n type: 'thematicBreak'\n }\n }\n}\n\n/**\n * Copy a point-like value.\n *\n * @param {Point} d\n * Point-like value.\n * @returns {Point}\n * unist point.\n */\nfunction point(d) {\n return {\n line: d.line,\n column: d.column,\n offset: d.offset\n }\n}\n\n/**\n * @param {Config} combined\n * @param {Array | Extension>} extensions\n * @returns {undefined}\n */\nfunction configure(combined, extensions) {\n let index = -1\n while (++index < extensions.length) {\n const value = extensions[index]\n if (Array.isArray(value)) {\n configure(combined, value)\n } else {\n extension(combined, value)\n }\n }\n}\n\n/**\n * @param {Config} combined\n * @param {Extension} extension\n * @returns {undefined}\n */\nfunction extension(combined, extension) {\n /** @type {keyof Extension} */\n let key\n for (key in extension) {\n if (own.call(extension, key)) {\n switch (key) {\n case 'canContainEols': {\n const right = extension[key]\n if (right) {\n combined[key].push(...right)\n }\n break\n }\n case 'transforms': {\n const right = extension[key]\n if (right) {\n combined[key].push(...right)\n }\n break\n }\n case 'enter':\n case 'exit': {\n const right = extension[key]\n if (right) {\n Object.assign(combined[key], right)\n }\n break\n }\n // No default\n }\n }\n }\n}\n\n/** @type {OnEnterError} */\nfunction defaultOnError(left, right) {\n if (left) {\n throw new Error(\n 'Cannot close `' +\n left.type +\n '` (' +\n stringifyPosition({\n start: left.start,\n end: left.end\n }) +\n '): a different token (`' +\n right.type +\n '`, ' +\n stringifyPosition({\n start: right.start,\n end: right.end\n }) +\n ') is open'\n )\n } else {\n throw new Error(\n 'Cannot close document, a token (`' +\n right.type +\n '`, ' +\n stringifyPosition({\n start: right.start,\n end: right.end\n }) +\n ') is still open'\n )\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n */\n\nimport {subtokenize} from 'micromark-util-subtokenize'\n\n/**\n * @param {Array} events\n * @returns {Array}\n */\nexport function postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n return events\n}\n","/**\n * @typedef {import('micromark-util-types').Create} Create\n * @typedef {import('micromark-util-types').FullNormalizedExtension} FullNormalizedExtension\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n */\n\nimport {combineExtensions} from 'micromark-util-combine-extensions'\nimport {content} from './initialize/content.js'\nimport {document} from './initialize/document.js'\nimport {flow} from './initialize/flow.js'\nimport {string, text} from './initialize/text.js'\nimport {createTokenizer} from './create-tokenizer.js'\nimport * as defaultConstructs from './constructs.js'\n\n/**\n * @param {ParseOptions | null | undefined} [options]\n * @returns {ParseContext}\n */\nexport function parse(options) {\n const settings = options || {}\n const constructs =\n /** @type {FullNormalizedExtension} */\n combineExtensions([defaultConstructs, ...(settings.extensions || [])])\n\n /** @type {ParseContext} */\n const parser = {\n defined: [],\n lazy: {},\n constructs,\n content: create(content),\n document: create(document),\n flow: create(flow),\n string: create(string),\n text: create(text)\n }\n return parser\n\n /**\n * @param {InitialConstruct} initial\n */\n function create(initial) {\n return creator\n /** @type {Create} */\n function creator(from) {\n return createTokenizer(parser, initial, from)\n }\n }\n}\n","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast-util-from-markdown').Options} FromMarkdownOptions\n * @typedef {import('unified').Parser} Parser\n * @typedef {import('unified').Processor} Processor\n */\n\n/**\n * @typedef {Omit} Options\n */\n\nimport {fromMarkdown} from 'mdast-util-from-markdown'\n\n/**\n * Aadd support for parsing from markdown.\n *\n * @param {Readonly | null | undefined} [options]\n * Configuration (optional).\n * @returns {undefined}\n * Nothing.\n */\nexport default function remarkParse(options) {\n /** @type {Processor} */\n // @ts-expect-error: TS in JSDoc generates wrong types if `this` is typed regularly.\n const self = this\n\n self.parser = parser\n\n /**\n * @type {Parser}\n */\n function parser(doc) {\n return fromMarkdown(doc, {\n ...self.data('settings'),\n ...options,\n // Note: these options are not in the readme.\n // The goal is for them to be set by plugins on `data` instead of being\n // passed by users.\n extensions: self.data('micromarkExtensions') || [],\n mdastExtensions: self.data('fromMarkdownExtensions') || []\n })\n }\n}\n","import {asciiAlphanumeric} from 'micromark-util-character'\nimport {encode} from 'micromark-util-encode'\n/**\n * Make a value safe for injection as a URL.\n *\n * This encodes unsafe characters with percent-encoding and skips already\n * encoded sequences (see `normalizeUri`).\n * Further unsafe characters are encoded as character references (see\n * `micromark-util-encode`).\n *\n * A regex of allowed protocols can be given, in which case the URL is\n * sanitized.\n * For example, `/^(https?|ircs?|mailto|xmpp)$/i` can be used for `a[href]`, or\n * `/^https?$/i` for `img[src]` (this is what `github.com` allows).\n * If the URL includes an unknown protocol (one not matched by `protocol`, such\n * as a dangerous example, `javascript:`), the value is ignored.\n *\n * @param {string | null | undefined} url\n * URI to sanitize.\n * @param {RegExp | null | undefined} [protocol]\n * Allowed protocols.\n * @returns {string}\n * Sanitized URI.\n */\nexport function sanitizeUri(url, protocol) {\n const value = encode(normalizeUri(url || ''))\n if (!protocol) {\n return value\n }\n const colon = value.indexOf(':')\n const questionMark = value.indexOf('?')\n const numberSign = value.indexOf('#')\n const slash = value.indexOf('/')\n if (\n // If there is no protocol, it’s relative.\n colon < 0 ||\n // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.\n (slash > -1 && colon > slash) ||\n (questionMark > -1 && colon > questionMark) ||\n (numberSign > -1 && colon > numberSign) ||\n // It is a protocol, it should be allowed.\n protocol.test(value.slice(0, colon))\n ) {\n return value\n }\n return ''\n}\n\n/**\n * Normalize a URL.\n *\n * Encode unsafe characters with percent-encoding, skipping already encoded\n * sequences.\n *\n * @param {string} value\n * URI to normalize.\n * @returns {string}\n * Normalized URI.\n */\nexport function normalizeUri(value) {\n /** @type {Array} */\n const result = []\n let index = -1\n let start = 0\n let skip = 0\n while (++index < value.length) {\n const code = value.charCodeAt(index)\n /** @type {string} */\n let replace = ''\n\n // A correct percent encoded value.\n if (\n code === 37 &&\n asciiAlphanumeric(value.charCodeAt(index + 1)) &&\n asciiAlphanumeric(value.charCodeAt(index + 2))\n ) {\n skip = 2\n }\n // ASCII.\n else if (code < 128) {\n if (!/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(code))) {\n replace = String.fromCharCode(code)\n }\n }\n // Astral.\n else if (code > 55_295 && code < 57_344) {\n const next = value.charCodeAt(index + 1)\n\n // A correct surrogate pair.\n if (code < 56_320 && next > 56_319 && next < 57_344) {\n replace = String.fromCharCode(code, next)\n skip = 1\n }\n // Lone surrogate.\n else {\n replace = '\\uFFFD'\n }\n }\n // Unicode.\n else {\n replace = String.fromCharCode(code)\n }\n if (replace) {\n result.push(value.slice(start, index), encodeURIComponent(replace))\n start = index + skip + 1\n replace = ''\n }\n if (skip) {\n index += skip\n skip = 0\n }\n }\n return result.join('') + value.slice(start)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('./state.js').State} State\n */\n\n/**\n * @callback FootnoteBackContentTemplate\n * Generate content for the backreference dynamically.\n *\n * For the following markdown:\n *\n * ```markdown\n * Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n * [^remark]: things about remark\n * [^micromark]: things about micromark\n * ```\n *\n * This function will be called with:\n *\n * * `0` and `0` for the backreference from `things about micromark` to\n * `alpha`, as it is the first used definition, and the first call to it\n * * `0` and `1` for the backreference from `things about micromark` to\n * `bravo`, as it is the first used definition, and the second call to it\n * * `1` and `0` for the backreference from `things about remark` to\n * `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {Array | ElementContent | string}\n * Content for the backreference when linking back from definitions to their\n * reference.\n *\n * @callback FootnoteBackLabelTemplate\n * Generate a back label dynamically.\n *\n * For the following markdown:\n *\n * ```markdown\n * Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n * [^remark]: things about remark\n * [^micromark]: things about micromark\n * ```\n *\n * This function will be called with:\n *\n * * `0` and `0` for the backreference from `things about micromark` to\n * `alpha`, as it is the first used definition, and the first call to it\n * * `0` and `1` for the backreference from `things about micromark` to\n * `bravo`, as it is the first used definition, and the second call to it\n * * `1` and `0` for the backreference from `things about remark` to\n * `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {string}\n * Back label to use when linking back from definitions to their reference.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Generate the default content that GitHub uses on backreferences.\n *\n * @param {number} _\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {Array}\n * Content.\n */\nexport function defaultFootnoteBackContent(_, rereferenceIndex) {\n /** @type {Array} */\n const result = [{type: 'text', value: '↩'}]\n\n if (rereferenceIndex > 1) {\n result.push({\n type: 'element',\n tagName: 'sup',\n properties: {},\n children: [{type: 'text', value: String(rereferenceIndex)}]\n })\n }\n\n return result\n}\n\n/**\n * Generate the default label that GitHub uses on backreferences.\n *\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {string}\n * Label.\n */\nexport function defaultFootnoteBackLabel(referenceIndex, rereferenceIndex) {\n return (\n 'Back to reference ' +\n (referenceIndex + 1) +\n (rereferenceIndex > 1 ? '-' + rereferenceIndex : '')\n )\n}\n\n/**\n * Generate a hast footer for called footnote definitions.\n *\n * @param {State} state\n * Info passed around.\n * @returns {Element | undefined}\n * `section` element or `undefined`.\n */\n// eslint-disable-next-line complexity\nexport function footer(state) {\n const clobberPrefix =\n typeof state.options.clobberPrefix === 'string'\n ? state.options.clobberPrefix\n : 'user-content-'\n const footnoteBackContent =\n state.options.footnoteBackContent || defaultFootnoteBackContent\n const footnoteBackLabel =\n state.options.footnoteBackLabel || defaultFootnoteBackLabel\n const footnoteLabel = state.options.footnoteLabel || 'Footnotes'\n const footnoteLabelTagName = state.options.footnoteLabelTagName || 'h2'\n const footnoteLabelProperties = state.options.footnoteLabelProperties || {\n className: ['sr-only']\n }\n /** @type {Array} */\n const listItems = []\n let referenceIndex = -1\n\n while (++referenceIndex < state.footnoteOrder.length) {\n const def = state.footnoteById.get(state.footnoteOrder[referenceIndex])\n\n if (!def) {\n continue\n }\n\n const content = state.all(def)\n const id = String(def.identifier).toUpperCase()\n const safeId = normalizeUri(id.toLowerCase())\n let rereferenceIndex = 0\n /** @type {Array} */\n const backReferences = []\n const counts = state.footnoteCounts.get(id)\n\n // eslint-disable-next-line no-unmodified-loop-condition\n while (counts !== undefined && ++rereferenceIndex <= counts) {\n if (backReferences.length > 0) {\n backReferences.push({type: 'text', value: ' '})\n }\n\n let children =\n typeof footnoteBackContent === 'string'\n ? footnoteBackContent\n : footnoteBackContent(referenceIndex, rereferenceIndex)\n\n if (typeof children === 'string') {\n children = {type: 'text', value: children}\n }\n\n backReferences.push({\n type: 'element',\n tagName: 'a',\n properties: {\n href:\n '#' +\n clobberPrefix +\n 'fnref-' +\n safeId +\n (rereferenceIndex > 1 ? '-' + rereferenceIndex : ''),\n dataFootnoteBackref: '',\n ariaLabel:\n typeof footnoteBackLabel === 'string'\n ? footnoteBackLabel\n : footnoteBackLabel(referenceIndex, rereferenceIndex),\n className: ['data-footnote-backref']\n },\n children: Array.isArray(children) ? children : [children]\n })\n }\n\n const tail = content[content.length - 1]\n\n if (tail && tail.type === 'element' && tail.tagName === 'p') {\n const tailTail = tail.children[tail.children.length - 1]\n if (tailTail && tailTail.type === 'text') {\n tailTail.value += ' '\n } else {\n tail.children.push({type: 'text', value: ' '})\n }\n\n tail.children.push(...backReferences)\n } else {\n content.push(...backReferences)\n }\n\n /** @type {Element} */\n const listItem = {\n type: 'element',\n tagName: 'li',\n properties: {id: clobberPrefix + 'fn-' + safeId},\n children: state.wrap(content, true)\n }\n\n state.patch(def, listItem)\n\n listItems.push(listItem)\n }\n\n if (listItems.length === 0) {\n return\n }\n\n return {\n type: 'element',\n tagName: 'section',\n properties: {dataFootnotes: true, className: ['footnotes']},\n children: [\n {\n type: 'element',\n tagName: footnoteLabelTagName,\n properties: {\n ...structuredClone(footnoteLabelProperties),\n id: 'footnote-label'\n },\n children: [{type: 'text', value: footnoteLabel}]\n },\n {type: 'text', value: '\\n'},\n {\n type: 'element',\n tagName: 'ol',\n properties: {},\n children: state.wrap(listItems, true)\n },\n {type: 'text', value: '\\n'}\n ]\n }\n}\n","/**\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('mdast').Nodes} Nodes\n * @typedef {import('mdast').Reference} Reference\n *\n * @typedef {import('./state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Return the content of a reference without definition as plain text.\n *\n * @param {State} state\n * Info passed around.\n * @param {Extract} node\n * Reference node (image, link).\n * @returns {Array}\n * hast content.\n */\nexport function revert(state, node) {\n const subtype = node.referenceType\n let suffix = ']'\n\n if (subtype === 'collapsed') {\n suffix += '[]'\n } else if (subtype === 'full') {\n suffix += '[' + (node.label || node.identifier) + ']'\n }\n\n if (node.type === 'imageReference') {\n return [{type: 'text', value: '![' + node.alt + suffix}]\n }\n\n const contents = state.all(node)\n const head = contents[0]\n\n if (head && head.type === 'text') {\n head.value = '[' + head.value\n } else {\n contents.unshift({type: 'text', value: '['})\n }\n\n const tail = contents[contents.length - 1]\n\n if (tail && tail.type === 'text') {\n tail.value += suffix\n } else {\n contents.push({type: 'text', value: suffix})\n }\n\n return contents\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `listItem` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {ListItem} node\n * mdast node.\n * @param {Parents | undefined} parent\n * Parent of `node`.\n * @returns {Element}\n * hast node.\n */\nexport function listItem(state, node, parent) {\n const results = state.all(node)\n const loose = parent ? listLoose(parent) : listItemLoose(node)\n /** @type {Properties} */\n const properties = {}\n /** @type {Array} */\n const children = []\n\n if (typeof node.checked === 'boolean') {\n const head = results[0]\n /** @type {Element} */\n let paragraph\n\n if (head && head.type === 'element' && head.tagName === 'p') {\n paragraph = head\n } else {\n paragraph = {type: 'element', tagName: 'p', properties: {}, children: []}\n results.unshift(paragraph)\n }\n\n if (paragraph.children.length > 0) {\n paragraph.children.unshift({type: 'text', value: ' '})\n }\n\n paragraph.children.unshift({\n type: 'element',\n tagName: 'input',\n properties: {type: 'checkbox', checked: node.checked, disabled: true},\n children: []\n })\n\n // According to github-markdown-css, this class hides bullet.\n // See: .\n properties.className = ['task-list-item']\n }\n\n let index = -1\n\n while (++index < results.length) {\n const child = results[index]\n\n // Add eols before nodes, except if this is a loose, first paragraph.\n if (\n loose ||\n index !== 0 ||\n child.type !== 'element' ||\n child.tagName !== 'p'\n ) {\n children.push({type: 'text', value: '\\n'})\n }\n\n if (child.type === 'element' && child.tagName === 'p' && !loose) {\n children.push(...child.children)\n } else {\n children.push(child)\n }\n }\n\n const tail = results[results.length - 1]\n\n // Add a final eol.\n if (tail && (loose || tail.type !== 'element' || tail.tagName !== 'p')) {\n children.push({type: 'text', value: '\\n'})\n }\n\n /** @type {Element} */\n const result = {type: 'element', tagName: 'li', properties, children}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n\n/**\n * @param {Parents} node\n * @return {Boolean}\n */\nfunction listLoose(node) {\n let loose = false\n if (node.type === 'list') {\n loose = node.spread || false\n const children = node.children\n let index = -1\n\n while (!loose && ++index < children.length) {\n loose = listItemLoose(children[index])\n }\n }\n\n return loose\n}\n\n/**\n * @param {ListItem} node\n * @return {Boolean}\n */\nfunction listItemLoose(node) {\n const spread = node.spread\n\n return spread === null || spread === undefined\n ? node.children.length > 1\n : spread\n}\n","const tab = 9 /* `\\t` */\nconst space = 32 /* ` ` */\n\n/**\n * Remove initial and final spaces and tabs at the line breaks in `value`.\n * Does not trim initial and final spaces and tabs of the value itself.\n *\n * @param {string} value\n * Value to trim.\n * @returns {string}\n * Trimmed value.\n */\nexport function trimLines(value) {\n const source = String(value)\n const search = /\\r?\\n|\\r/g\n let match = search.exec(source)\n let last = 0\n /** @type {Array} */\n const lines = []\n\n while (match) {\n lines.push(\n trimLine(source.slice(last, match.index), last > 0, true),\n match[0]\n )\n\n last = match.index + match[0].length\n match = search.exec(source)\n }\n\n lines.push(trimLine(source.slice(last), last > 0, false))\n\n return lines.join('')\n}\n\n/**\n * @param {string} value\n * Line to trim.\n * @param {boolean} start\n * Whether to trim the start of the line.\n * @param {boolean} end\n * Whether to trim the end of the line.\n * @returns {string}\n * Trimmed line.\n */\nfunction trimLine(value, start, end) {\n let startIndex = 0\n let endIndex = value.length\n\n if (start) {\n let code = value.codePointAt(startIndex)\n\n while (code === tab || code === space) {\n startIndex++\n code = value.codePointAt(startIndex)\n }\n }\n\n if (end) {\n let code = value.codePointAt(endIndex - 1)\n\n while (code === tab || code === space) {\n endIndex--\n code = value.codePointAt(endIndex - 1)\n }\n }\n\n return endIndex > startIndex ? value.slice(startIndex, endIndex) : ''\n}\n","import {blockquote} from './blockquote.js'\nimport {hardBreak} from './break.js'\nimport {code} from './code.js'\nimport {strikethrough} from './delete.js'\nimport {emphasis} from './emphasis.js'\nimport {footnoteReference} from './footnote-reference.js'\nimport {heading} from './heading.js'\nimport {html} from './html.js'\nimport {imageReference} from './image-reference.js'\nimport {image} from './image.js'\nimport {inlineCode} from './inline-code.js'\nimport {linkReference} from './link-reference.js'\nimport {link} from './link.js'\nimport {listItem} from './list-item.js'\nimport {list} from './list.js'\nimport {paragraph} from './paragraph.js'\nimport {root} from './root.js'\nimport {strong} from './strong.js'\nimport {table} from './table.js'\nimport {tableRow} from './table-row.js'\nimport {tableCell} from './table-cell.js'\nimport {text} from './text.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/**\n * Default handlers for nodes.\n *\n * @satisfies {import('../state.js').Handlers}\n */\nexport const handlers = {\n blockquote,\n break: hardBreak,\n code,\n delete: strikethrough,\n emphasis,\n footnoteReference,\n heading,\n html,\n imageReference,\n image,\n inlineCode,\n linkReference,\n link,\n listItem,\n list,\n paragraph,\n // @ts-expect-error: root is different, but hard to type.\n root,\n strong,\n table,\n tableCell,\n tableRow,\n text,\n thematicBreak,\n toml: ignore,\n yaml: ignore,\n definition: ignore,\n footnoteDefinition: ignore\n}\n\n// Return nothing for nodes that are ignored.\nfunction ignore() {\n return undefined\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `blockquote` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Blockquote} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function blockquote(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'blockquote',\n properties: {},\n children: state.wrap(state.all(node), true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').Break} Break\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `break` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Break} node\n * mdast node.\n * @returns {Array}\n * hast element content.\n */\nexport function hardBreak(state, node) {\n /** @type {Element} */\n const result = {type: 'element', tagName: 'br', properties: {}, children: []}\n state.patch(node, result)\n return [state.applyData(node, result), {type: 'text', value: '\\n'}]\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Code} Code\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `code` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Code} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function code(state, node) {\n const value = node.value ? node.value + '\\n' : ''\n /** @type {Properties} */\n const properties = {}\n\n if (node.lang) {\n properties.className = ['language-' + node.lang]\n }\n\n // Create ``.\n /** @type {Element} */\n let result = {\n type: 'element',\n tagName: 'code',\n properties,\n children: [{type: 'text', value}]\n }\n\n if (node.meta) {\n result.data = {meta: node.meta}\n }\n\n state.patch(node, result)\n result = state.applyData(node, result)\n\n // Create `
`.\n  result = {type: 'element', tagName: 'pre', properties: {}, children: [result]}\n  state.patch(node, result)\n  return result\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Delete} Delete\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `delete` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Delete} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function strikethrough(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'del',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `emphasis` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Emphasis} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function emphasis(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'em',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').FootnoteReference} FootnoteReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `footnoteReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {FootnoteReference} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function footnoteReference(state, node) {\n  const clobberPrefix =\n    typeof state.options.clobberPrefix === 'string'\n      ? state.options.clobberPrefix\n      : 'user-content-'\n  const id = String(node.identifier).toUpperCase()\n  const safeId = normalizeUri(id.toLowerCase())\n  const index = state.footnoteOrder.indexOf(id)\n  /** @type {number} */\n  let counter\n\n  let reuseCounter = state.footnoteCounts.get(id)\n\n  if (reuseCounter === undefined) {\n    reuseCounter = 0\n    state.footnoteOrder.push(id)\n    counter = state.footnoteOrder.length\n  } else {\n    counter = index + 1\n  }\n\n  reuseCounter += 1\n  state.footnoteCounts.set(id, reuseCounter)\n\n  /** @type {Element} */\n  const link = {\n    type: 'element',\n    tagName: 'a',\n    properties: {\n      href: '#' + clobberPrefix + 'fn-' + safeId,\n      id:\n        clobberPrefix +\n        'fnref-' +\n        safeId +\n        (reuseCounter > 1 ? '-' + reuseCounter : ''),\n      dataFootnoteRef: true,\n      ariaDescribedBy: ['footnote-label']\n    },\n    children: [{type: 'text', value: String(counter)}]\n  }\n  state.patch(node, link)\n\n  /** @type {Element} */\n  const sup = {\n    type: 'element',\n    tagName: 'sup',\n    properties: {},\n    children: [link]\n  }\n  state.patch(node, sup)\n  return state.applyData(node, sup)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `heading` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Heading} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function heading(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'h' + node.depth,\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Html} Html\n * @typedef {import('../state.js').State} State\n * @typedef {import('../../index.js').Raw} Raw\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `html` node into hast (`raw` node in dangerous mode, otherwise\n * nothing).\n *\n * @param {State} state\n *   Info passed around.\n * @param {Html} node\n *   mdast node.\n * @returns {Element | Raw | undefined}\n *   hast node.\n */\nexport function html(state, node) {\n  if (state.options.allowDangerousHtml) {\n    /** @type {Raw} */\n    const result = {type: 'raw', value: node.value}\n    state.patch(node, result)\n    return state.applyData(node, result)\n  }\n\n  return undefined\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `imageReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ImageReference} node\n *   mdast node.\n * @returns {Array | ElementContent}\n *   hast node.\n */\nexport function imageReference(state, node) {\n  const id = String(node.identifier).toUpperCase()\n  const def = state.definitionById.get(id)\n\n  if (!def) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {src: normalizeUri(def.url || ''), alt: node.alt}\n\n  if (def.title !== null && def.title !== undefined) {\n    properties.title = def.title\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'img', properties, children: []}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Image} Image\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `image` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Image} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function image(state, node) {\n  /** @type {Properties} */\n  const properties = {src: normalizeUri(node.url)}\n\n  if (node.alt !== null && node.alt !== undefined) {\n    properties.alt = node.alt\n  }\n\n  if (node.title !== null && node.title !== undefined) {\n    properties.title = node.title\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'img', properties, children: []}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `inlineCode` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {InlineCode} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function inlineCode(state, node) {\n  /** @type {Text} */\n  const text = {type: 'text', value: node.value.replace(/\\r?\\n|\\r/g, ' ')}\n  state.patch(node, text)\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'code',\n    properties: {},\n    children: [text]\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `linkReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {LinkReference} node\n *   mdast node.\n * @returns {Array | ElementContent}\n *   hast node.\n */\nexport function linkReference(state, node) {\n  const id = String(node.identifier).toUpperCase()\n  const def = state.definitionById.get(id)\n\n  if (!def) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {href: normalizeUri(def.url || '')}\n\n  if (def.title !== null && def.title !== undefined) {\n    properties.title = def.title\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'a',\n    properties,\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Link} Link\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `link` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Link} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function link(state, node) {\n  /** @type {Properties} */\n  const properties = {href: normalizeUri(node.url)}\n\n  if (node.title !== null && node.title !== undefined) {\n    properties.title = node.title\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'a',\n    properties,\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').List} List\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `list` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {List} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function list(state, node) {\n  /** @type {Properties} */\n  const properties = {}\n  const results = state.all(node)\n  let index = -1\n\n  if (typeof node.start === 'number' && node.start !== 1) {\n    properties.start = node.start\n  }\n\n  // Like GitHub, add a class for custom styling.\n  while (++index < results.length) {\n    const child = results[index]\n\n    if (\n      child.type === 'element' &&\n      child.tagName === 'li' &&\n      child.properties &&\n      Array.isArray(child.properties.className) &&\n      child.properties.className.includes('task-list-item')\n    ) {\n      properties.className = ['contains-task-list']\n      break\n    }\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: node.ordered ? 'ol' : 'ul',\n    properties,\n    children: state.wrap(results, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `paragraph` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Paragraph} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function paragraph(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'p',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Parents} HastParents\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `root` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastRoot} node\n *   mdast node.\n * @returns {HastParents}\n *   hast node.\n */\nexport function root(state, node) {\n  /** @type {HastRoot} */\n  const result = {type: 'root', children: state.wrap(state.all(node))}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `strong` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Strong} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function strong(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'strong',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Table} Table\n * @typedef {import('../state.js').State} State\n */\n\nimport {pointEnd, pointStart} from 'unist-util-position'\n\n/**\n * Turn an mdast `table` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Table} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function table(state, node) {\n  const rows = state.all(node)\n  const firstRow = rows.shift()\n  /** @type {Array} */\n  const tableContent = []\n\n  if (firstRow) {\n    /** @type {Element} */\n    const head = {\n      type: 'element',\n      tagName: 'thead',\n      properties: {},\n      children: state.wrap([firstRow], true)\n    }\n    state.patch(node.children[0], head)\n    tableContent.push(head)\n  }\n\n  if (rows.length > 0) {\n    /** @type {Element} */\n    const body = {\n      type: 'element',\n      tagName: 'tbody',\n      properties: {},\n      children: state.wrap(rows, true)\n    }\n\n    const start = pointStart(node.children[1])\n    const end = pointEnd(node.children[node.children.length - 1])\n    if (start && end) body.position = {start, end}\n    tableContent.push(body)\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'table',\n    properties: {},\n    children: state.wrap(tableContent, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').TableCell} TableCell\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `tableCell` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {TableCell} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function tableCell(state, node) {\n  // Note: this function is normally not called: see `table-row` for how rows\n  // and their cells are compiled.\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'td', // Assume body cell.\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('mdast').TableRow} TableRow\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `tableRow` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {TableRow} node\n *   mdast node.\n * @param {Parents | undefined} parent\n *   Parent of `node`.\n * @returns {Element}\n *   hast node.\n */\nexport function tableRow(state, node, parent) {\n  const siblings = parent ? parent.children : undefined\n  // Generate a body row when without parent.\n  const rowIndex = siblings ? siblings.indexOf(node) : 1\n  const tagName = rowIndex === 0 ? 'th' : 'td'\n  // To do: option to use `style`?\n  const align = parent && parent.type === 'table' ? parent.align : undefined\n  const length = align ? align.length : node.children.length\n  let cellIndex = -1\n  /** @type {Array} */\n  const cells = []\n\n  while (++cellIndex < length) {\n    // Note: can also be undefined.\n    const cell = node.children[cellIndex]\n    /** @type {Properties} */\n    const properties = {}\n    const alignValue = align ? align[cellIndex] : undefined\n\n    if (alignValue) {\n      properties.align = alignValue\n    }\n\n    /** @type {Element} */\n    let result = {type: 'element', tagName, properties, children: []}\n\n    if (cell) {\n      result.children = state.all(cell)\n      state.patch(cell, result)\n      result = state.applyData(cell, result)\n    }\n\n    cells.push(result)\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'tr',\n    properties: {},\n    children: state.wrap(cells, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').Text} HastText\n * @typedef {import('mdast').Text} MdastText\n * @typedef {import('../state.js').State} State\n */\n\nimport {trimLines} from 'trim-lines'\n\n/**\n * Turn an mdast `text` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastText} node\n *   mdast node.\n * @returns {HastElement | HastText}\n *   hast node.\n */\nexport function text(state, node) {\n  /** @type {HastText} */\n  const result = {type: 'text', value: trimLines(String(node.value))}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `thematicBreak` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ThematicBreak} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function thematicBreak(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'hr',\n    properties: {},\n    children: []\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').ElementContent} HastElementContent\n * @typedef {import('hast').Nodes} HastNodes\n * @typedef {import('hast').Properties} HastProperties\n * @typedef {import('hast').RootContent} HastRootContent\n * @typedef {import('hast').Text} HastText\n *\n * @typedef {import('mdast').Definition} MdastDefinition\n * @typedef {import('mdast').FootnoteDefinition} MdastFootnoteDefinition\n * @typedef {import('mdast').Nodes} MdastNodes\n * @typedef {import('mdast').Parents} MdastParents\n *\n * @typedef {import('./footer.js').FootnoteBackContentTemplate} FootnoteBackContentTemplate\n * @typedef {import('./footer.js').FootnoteBackLabelTemplate} FootnoteBackLabelTemplate\n */\n\n/**\n * @callback Handler\n *   Handle a node.\n * @param {State} state\n *   Info passed around.\n * @param {any} node\n *   mdast node to handle.\n * @param {MdastParents | undefined} parent\n *   Parent of `node`.\n * @returns {Array | HastElementContent | undefined}\n *   hast node.\n *\n * @typedef {Partial>} Handlers\n *   Handle nodes.\n *\n * @typedef Options\n *   Configuration (optional).\n * @property {boolean | null | undefined} [allowDangerousHtml=false]\n *   Whether to persist raw HTML in markdown in the hast tree (default:\n *   `false`).\n * @property {string | null | undefined} [clobberPrefix='user-content-']\n *   Prefix to use before the `id` property on footnotes to prevent them from\n *   *clobbering* (default: `'user-content-'`).\n *\n *   Pass `''` for trusted markdown and when you are careful with\n *   polyfilling.\n *   You could pass a different prefix.\n *\n *   DOM clobbering is this:\n *\n *   ```html\n *   

\n * \n * ```\n *\n * The above example shows that elements are made available by browsers, by\n * their ID, on the `window` object.\n * This is a security risk because you might be expecting some other variable\n * at that place.\n * It can also break polyfills.\n * Using a prefix solves these problems.\n * @property {FootnoteBackContentTemplate | string | null | undefined} [footnoteBackContent]\n * Content of the backreference back to references (default: `defaultFootnoteBackContent`).\n *\n * The default value is:\n *\n * ```js\n * function defaultFootnoteBackContent(_, rereferenceIndex) {\n * const result = [{type: 'text', value: '↩'}]\n *\n * if (rereferenceIndex > 1) {\n * result.push({\n * type: 'element',\n * tagName: 'sup',\n * properties: {},\n * children: [{type: 'text', value: String(rereferenceIndex)}]\n * })\n * }\n *\n * return result\n * }\n * ```\n *\n * This content is used in the `a` element of each backreference (the `↩`\n * links).\n * @property {FootnoteBackLabelTemplate | string | null | undefined} [footnoteBackLabel]\n * Label to describe the backreference back to references (default:\n * `defaultFootnoteBackLabel`).\n *\n * The default value is:\n *\n * ```js\n * function defaultFootnoteBackLabel(referenceIndex, rereferenceIndex) {\n * return (\n * 'Back to reference ' +\n * (referenceIndex + 1) +\n * (rereferenceIndex > 1 ? '-' + rereferenceIndex : '')\n * )\n * }\n * ```\n *\n * Change it when the markdown is not in English.\n *\n * This label is used in the `ariaLabel` property on each backreference\n * (the `↩` links).\n * It affects users of assistive technology.\n * @property {string | null | undefined} [footnoteLabel='Footnotes']\n * Textual label to use for the footnotes section (default: `'Footnotes'`).\n *\n * Change it when the markdown is not in English.\n *\n * This label is typically hidden visually (assuming a `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass different properties with the `footnoteLabelProperties` option.\n * @property {HastProperties | null | undefined} [footnoteLabelProperties={className: ['sr-only']}]\n * Properties to use on the footnote label (default: `{className:\n * ['sr-only']}`).\n *\n * Change it to show the label and add other properties.\n *\n * This label is typically hidden visually (assuming an `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass an empty string.\n * You can also add different properties.\n *\n * > 👉 **Note**: `id: 'footnote-label'` is always added, because footnote\n * > calls use it with `aria-describedby` to provide an accessible label.\n * @property {string | null | undefined} [footnoteLabelTagName='h2']\n * HTML tag name to use for the footnote label element (default: `'h2'`).\n *\n * Change it to match your document structure.\n *\n * This label is typically hidden visually (assuming a `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass different properties with the `footnoteLabelProperties` option.\n * @property {Handlers | null | undefined} [handlers]\n * Extra handlers for nodes (optional).\n * @property {Array | null | undefined} [passThrough]\n * List of custom mdast node types to pass through (keep) in hast (note that\n * the node itself is passed, but eventual children are transformed)\n * (optional).\n * @property {Handler | null | undefined} [unknownHandler]\n * Handler for all unknown nodes (optional).\n *\n * @typedef State\n * Info passed around.\n * @property {(node: MdastNodes) => Array} all\n * Transform the children of an mdast parent to hast.\n * @property {(from: MdastNodes, to: Type) => HastElement | Type} applyData\n * Honor the `data` of `from`, and generate an element instead of `node`.\n * @property {Map} definitionById\n * Definitions by their identifier.\n * @property {Map} footnoteById\n * Footnote definitions by their identifier.\n * @property {Map} footnoteCounts\n * Counts for how often the same footnote was called.\n * @property {Array} footnoteOrder\n * Identifiers of order when footnote calls first appear in tree order.\n * @property {Handlers} handlers\n * Applied handlers.\n * @property {(node: MdastNodes, parent: MdastParents | undefined) => Array | HastElementContent | undefined} one\n * Transform an mdast node to hast.\n * @property {Options} options\n * Configuration.\n * @property {(from: MdastNodes, node: HastNodes) => undefined} patch\n * Copy a node’s positional info.\n * @property {(nodes: Array, loose?: boolean | undefined) => Array} wrap\n * Wrap `nodes` with line endings between each node, adds initial/final line endings when `loose`.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {visit} from 'unist-util-visit'\nimport {position} from 'unist-util-position'\nimport {handlers as defaultHandlers} from './handlers/index.js'\n\nconst own = {}.hasOwnProperty\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Create `state` from an mdast tree.\n *\n * @param {MdastNodes} tree\n * mdast node to transform.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {State}\n * `state` function.\n */\nexport function createState(tree, options) {\n const settings = options || emptyOptions\n /** @type {Map} */\n const definitionById = new Map()\n /** @type {Map} */\n const footnoteById = new Map()\n /** @type {Map} */\n const footnoteCounts = new Map()\n /** @type {Handlers} */\n // @ts-expect-error: the root handler returns a root.\n // Hard to type.\n const handlers = {...defaultHandlers, ...settings.handlers}\n\n /** @type {State} */\n const state = {\n all,\n applyData,\n definitionById,\n footnoteById,\n footnoteCounts,\n footnoteOrder: [],\n handlers,\n one,\n options: settings,\n patch,\n wrap\n }\n\n visit(tree, function (node) {\n if (node.type === 'definition' || node.type === 'footnoteDefinition') {\n const map = node.type === 'definition' ? definitionById : footnoteById\n const id = String(node.identifier).toUpperCase()\n\n // Mimick CM behavior of link definitions.\n // See: .\n if (!map.has(id)) {\n // @ts-expect-error: node type matches map.\n map.set(id, node)\n }\n }\n })\n\n return state\n\n /**\n * Transform an mdast node into a hast node.\n *\n * @param {MdastNodes} node\n * mdast node.\n * @param {MdastParents | undefined} [parent]\n * Parent of `node`.\n * @returns {Array | HastElementContent | undefined}\n * Resulting hast node.\n */\n function one(node, parent) {\n const type = node.type\n const handle = state.handlers[type]\n\n if (own.call(state.handlers, type) && handle) {\n return handle(state, node, parent)\n }\n\n if (state.options.passThrough && state.options.passThrough.includes(type)) {\n if ('children' in node) {\n const {children, ...shallow} = node\n const result = structuredClone(shallow)\n // @ts-expect-error: TS doesn’t understand…\n result.children = state.all(node)\n // @ts-expect-error: TS doesn’t understand…\n return result\n }\n\n // @ts-expect-error: it’s custom.\n return structuredClone(node)\n }\n\n const unknown = state.options.unknownHandler || defaultUnknownHandler\n\n return unknown(state, node, parent)\n }\n\n /**\n * Transform the children of an mdast node into hast nodes.\n *\n * @param {MdastNodes} parent\n * mdast node to compile\n * @returns {Array}\n * Resulting hast nodes.\n */\n function all(parent) {\n /** @type {Array} */\n const values = []\n\n if ('children' in parent) {\n const nodes = parent.children\n let index = -1\n while (++index < nodes.length) {\n const result = state.one(nodes[index], parent)\n\n // To do: see if we van clean this? Can we merge texts?\n if (result) {\n if (index && nodes[index - 1].type === 'break') {\n if (!Array.isArray(result) && result.type === 'text') {\n result.value = trimMarkdownSpaceStart(result.value)\n }\n\n if (!Array.isArray(result) && result.type === 'element') {\n const head = result.children[0]\n\n if (head && head.type === 'text') {\n head.value = trimMarkdownSpaceStart(head.value)\n }\n }\n }\n\n if (Array.isArray(result)) {\n values.push(...result)\n } else {\n values.push(result)\n }\n }\n }\n }\n\n return values\n }\n}\n\n/**\n * Copy a node’s positional info.\n *\n * @param {MdastNodes} from\n * mdast node to copy from.\n * @param {HastNodes} to\n * hast node to copy into.\n * @returns {undefined}\n * Nothing.\n */\nfunction patch(from, to) {\n if (from.position) to.position = position(from)\n}\n\n/**\n * Honor the `data` of `from` and maybe generate an element instead of `to`.\n *\n * @template {HastNodes} Type\n * Node type.\n * @param {MdastNodes} from\n * mdast node to use data from.\n * @param {Type} to\n * hast node to change.\n * @returns {HastElement | Type}\n * Nothing.\n */\nfunction applyData(from, to) {\n /** @type {HastElement | Type} */\n let result = to\n\n // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n if (from && from.data) {\n const hName = from.data.hName\n const hChildren = from.data.hChildren\n const hProperties = from.data.hProperties\n\n if (typeof hName === 'string') {\n // Transforming the node resulted in an element with a different name\n // than wanted:\n if (result.type === 'element') {\n result.tagName = hName\n }\n // Transforming the node resulted in a non-element, which happens for\n // raw, text, and root nodes (unless custom handlers are passed).\n // The intent of `hName` is to create an element, but likely also to keep\n // the content around (otherwise: pass `hChildren`).\n else {\n /** @type {Array} */\n // @ts-expect-error: assume no doctypes in `root`.\n const children = 'children' in result ? result.children : [result]\n result = {type: 'element', tagName: hName, properties: {}, children}\n }\n }\n\n if (result.type === 'element' && hProperties) {\n Object.assign(result.properties, structuredClone(hProperties))\n }\n\n if (\n 'children' in result &&\n result.children &&\n hChildren !== null &&\n hChildren !== undefined\n ) {\n result.children = hChildren\n }\n }\n\n return result\n}\n\n/**\n * Transform an unknown node.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastNodes} node\n * Unknown mdast node.\n * @returns {HastElement | HastText}\n * Resulting hast node.\n */\nfunction defaultUnknownHandler(state, node) {\n const data = node.data || {}\n /** @type {HastElement | HastText} */\n const result =\n 'value' in node &&\n !(own.call(data, 'hProperties') || own.call(data, 'hChildren'))\n ? {type: 'text', value: node.value}\n : {\n type: 'element',\n tagName: 'div',\n properties: {},\n children: state.all(node)\n }\n\n state.patch(node, result)\n return state.applyData(node, result)\n}\n\n/**\n * Wrap `nodes` with line endings between each node.\n *\n * @template {HastRootContent} Type\n * Node type.\n * @param {Array} nodes\n * List of nodes to wrap.\n * @param {boolean | undefined} [loose=false]\n * Whether to add line endings at start and end (default: `false`).\n * @returns {Array}\n * Wrapped nodes.\n */\nexport function wrap(nodes, loose) {\n /** @type {Array} */\n const result = []\n let index = -1\n\n if (loose) {\n result.push({type: 'text', value: '\\n'})\n }\n\n while (++index < nodes.length) {\n if (index) result.push({type: 'text', value: '\\n'})\n result.push(nodes[index])\n }\n\n if (loose && nodes.length > 0) {\n result.push({type: 'text', value: '\\n'})\n }\n\n return result\n}\n\n/**\n * Trim spaces and tabs at the start of `value`.\n *\n * @param {string} value\n * Value to trim.\n * @returns {string}\n * Result.\n */\nfunction trimMarkdownSpaceStart(value) {\n let index = 0\n let code = value.charCodeAt(index)\n\n while (code === 9 || code === 32) {\n index++\n code = value.charCodeAt(index)\n }\n\n return value.slice(index)\n}\n","/**\n * @typedef {import('hast').Nodes} HastNodes\n * @typedef {import('mdast').Nodes} MdastNodes\n * @typedef {import('./state.js').Options} Options\n */\n\nimport {ok as assert} from 'devlop'\nimport {footer} from './footer.js'\nimport {createState} from './state.js'\n\n/**\n * Transform mdast to hast.\n *\n * ##### Notes\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most utilities ignore `raw` nodes but two notable ones don’t:\n *\n * * `hast-util-to-html` also has an option `allowDangerousHtml` which will\n * output the raw HTML.\n * This is typically discouraged as noted by the option name but is useful\n * if you completely trust authors\n * * `hast-util-raw` can handle the raw embedded HTML strings by parsing them\n * into standard hast nodes (`element`, `text`, etc).\n * This is a heavy task as it needs a full HTML parser, but it is the only\n * way to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark, which we follow by default.\n * They are supported by GitHub, so footnotes can be enabled in markdown with\n * `mdast-util-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes, which is hidden for sighted users but shown to\n * assistive technology.\n * When your page is not in English, you must define translated values.\n *\n * Back references use ARIA attributes, but the section label itself uses a\n * heading that is hidden with an `sr-only` class.\n * To show it to sighted users, define different attributes in\n * `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem, as it links footnote calls to footnote\n * definitions on the page through `id` attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n *

\n * \n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * Example: headings (DOM clobbering) in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value` (and doesn’t have `data.hName`,\n * `data.hProperties`, or `data.hChildren`, see later), create a hast `text`\n * node\n * * otherwise, create a `
` element (which could be changed with\n * `data.hName`), with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @param {MdastNodes} tree\n * mdast tree.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {HastNodes}\n * hast tree.\n */\nexport function toHast(tree, options) {\n const state = createState(tree, options)\n const node = state.one(tree, undefined)\n const foot = footer(state)\n /** @type {HastNodes} */\n const result = Array.isArray(node)\n ? {type: 'root', children: node}\n : node || {type: 'root', children: []}\n\n if (foot) {\n // If there’s a footer, there were definitions, meaning block\n // content.\n // So `result` is a parent node.\n assert('children' in result)\n result.children.push({type: 'text', value: '\\n'}, foot)\n }\n\n return result\n}\n","// Include `data` fields in mdast and `raw` nodes in hast.\n/// \n\n/**\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('mdast-util-to-hast').Options} Options\n * @typedef {import('unified').Processor} Processor\n * @typedef {import('vfile').VFile} VFile\n */\n\n/**\n * @callback TransformBridge\n * Bridge-mode.\n *\n * Runs the destination with the new hast tree.\n * Discards result.\n * @param {MdastRoot} tree\n * Tree.\n * @param {VFile} file\n * File.\n * @returns {Promise}\n * Nothing.\n *\n * @callback TransformMutate\n * Mutate-mode.\n *\n * Further transformers run on the hast tree.\n * @param {MdastRoot} tree\n * Tree.\n * @param {VFile} file\n * File.\n * @returns {HastRoot}\n * Tree (hast).\n */\n\nimport {toHast} from 'mdast-util-to-hast'\n\n/**\n * Turn markdown into HTML.\n *\n * ##### Notes\n *\n * ###### Signature\n *\n * * if a processor is given, runs the (rehype) plugins used on it with a\n * hast tree, then discards the result (*bridge mode*)\n * * otherwise, returns a hast tree, the plugins used after `remarkRehype`\n * are rehype plugins (*mutate mode*)\n *\n * > 👉 **Note**: It’s highly unlikely that you want to pass a `processor`.\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most plugins ignore `raw` nodes but two notable ones don’t:\n *\n * * `rehype-stringify` also has an option `allowDangerousHtml` which will\n * output the raw HTML.\n * This is typically discouraged as noted by the option name but is useful if\n * you completely trust authors\n * * `rehype-raw` can handle the raw embedded HTML strings by parsing them\n * into standard hast nodes (`element`, `text`, etc).\n * This is a heavy task as it needs a full HTML parser, but it is the only way\n * to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark, which we follow by default.\n * They are supported by GitHub, so footnotes can be enabled in markdown with\n * `remark-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes, which is hidden for sighted users but shown to\n * assistive technology.\n * When your page is not in English, you must define translated values.\n *\n * Back references use ARIA attributes, but the section label itself uses a\n * heading that is hidden with an `sr-only` class.\n * To show it to sighted users, define different attributes in\n * `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem, as it links footnote calls to footnote\n * definitions on the page through `id` attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n *

\n * \n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * *Example: headings (DOM clobbering)* in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value` (and doesn’t have `data.hName`,\n * `data.hProperties`, or `data.hChildren`, see later), create a hast `text`\n * node\n * * otherwise, create a `
` element (which could be changed with\n * `data.hName`), with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @overload\n * @param {Processor} processor\n * @param {Readonly | null | undefined} [options]\n * @returns {TransformBridge}\n *\n * @overload\n * @param {Readonly | null | undefined} [options]\n * @returns {TransformMutate}\n *\n * @param {Readonly | Processor | null | undefined} [destination]\n * Processor or configuration (optional).\n * @param {Readonly | null | undefined} [options]\n * When a processor was given, configuration (optional).\n * @returns {TransformBridge | TransformMutate}\n * Transform.\n */\nexport default function remarkRehype(destination, options) {\n if (destination && 'run' in destination) {\n /**\n * @type {TransformBridge}\n */\n return async function (tree, file) {\n // Cast because root in -> root out.\n const hastTree = /** @type {HastRoot} */ (toHast(tree, options))\n await destination.run(hastTree, file)\n }\n }\n\n /**\n * @type {TransformMutate}\n */\n return function (tree) {\n // Cast because root in -> root out.\n return /** @type {HastRoot} */ (toHast(tree, options || destination))\n }\n}\n","/**\n * Throw a given error.\n *\n * @param {Error|null|undefined} [error]\n * Maybe error.\n * @returns {asserts error is null|undefined}\n */\nexport function bail(error) {\n if (error) {\n throw error\n }\n}\n","export default function isPlainObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);\n}\n","/**\n * @typedef {(error?: Error|null|undefined, ...output: Array) => void} Callback\n * @typedef {(...input: Array) => any} Middleware\n *\n * @typedef {(...input: Array) => void} Run\n * Call all middleware.\n * @typedef {(fn: Middleware) => Pipeline} Use\n * Add `fn` (middleware) to the list.\n * @typedef {{run: Run, use: Use}} Pipeline\n * Middleware.\n */\n\n/**\n * Create new middleware.\n *\n * @returns {Pipeline}\n */\nexport function trough() {\n /** @type {Array} */\n const fns = []\n /** @type {Pipeline} */\n const pipeline = {run, use}\n\n return pipeline\n\n /** @type {Run} */\n function run(...values) {\n let middlewareIndex = -1\n /** @type {Callback} */\n const callback = values.pop()\n\n if (typeof callback !== 'function') {\n throw new TypeError('Expected function as last argument, not ' + callback)\n }\n\n next(null, ...values)\n\n /**\n * Run the next `fn`, or we’re done.\n *\n * @param {Error|null|undefined} error\n * @param {Array} output\n */\n function next(error, ...output) {\n const fn = fns[++middlewareIndex]\n let index = -1\n\n if (error) {\n callback(error)\n return\n }\n\n // Copy non-nullish input into values.\n while (++index < values.length) {\n if (output[index] === null || output[index] === undefined) {\n output[index] = values[index]\n }\n }\n\n // Save the newly created `output` for the next call.\n values = output\n\n // Next or done.\n if (fn) {\n wrap(fn, next)(...output)\n } else {\n callback(null, ...output)\n }\n }\n }\n\n /** @type {Use} */\n function use(middelware) {\n if (typeof middelware !== 'function') {\n throw new TypeError(\n 'Expected `middelware` to be a function, not ' + middelware\n )\n }\n\n fns.push(middelware)\n return pipeline\n }\n}\n\n/**\n * Wrap `middleware`.\n * Can be sync or async; return a promise, receive a callback, or return new\n * values and errors.\n *\n * @param {Middleware} middleware\n * @param {Callback} callback\n */\nexport function wrap(middleware, callback) {\n /** @type {boolean} */\n let called\n\n return wrapped\n\n /**\n * Call `middleware`.\n * @this {any}\n * @param {Array} parameters\n * @returns {void}\n */\n function wrapped(...parameters) {\n const fnExpectsCallback = middleware.length > parameters.length\n /** @type {any} */\n let result\n\n if (fnExpectsCallback) {\n parameters.push(done)\n }\n\n try {\n result = middleware.apply(this, parameters)\n } catch (error) {\n const exception = /** @type {Error} */ (error)\n\n // Well, this is quite the pickle.\n // `middleware` received a callback and called it synchronously, but that\n // threw an error.\n // The only thing left to do is to throw the thing instead.\n if (fnExpectsCallback && called) {\n throw exception\n }\n\n return done(exception)\n }\n\n if (!fnExpectsCallback) {\n if (result instanceof Promise) {\n result.then(then, done)\n } else if (result instanceof Error) {\n done(result)\n } else {\n then(result)\n }\n }\n }\n\n /**\n * Call `callback`, only once.\n * @type {Callback}\n */\n function done(error, ...output) {\n if (!called) {\n called = true\n callback(error, ...output)\n }\n }\n\n /**\n * Call `done` with one value.\n *\n * @param {any} [value]\n */\n function then(value) {\n done(null, value)\n }\n}\n","// A derivative work based on:\n// .\n// Which is licensed:\n//\n// MIT License\n//\n// Copyright (c) 2013 James Halliday\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A derivative work based on:\n//\n// Parts of that are extracted from Node’s internal `path` module:\n// .\n// Which is licensed:\n//\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nexport const path = {basename, dirname, extname, join, sep: '/'}\n\n/* eslint-disable max-depth, complexity */\n\n/**\n * Get the basename from a path.\n *\n * @param {string} path\n * File path.\n * @param {string | null | undefined} [ext]\n * Extension to strip.\n * @returns {string}\n * Stem or basename.\n */\nfunction basename(path, ext) {\n if (ext !== undefined && typeof ext !== 'string') {\n throw new TypeError('\"ext\" argument must be a string')\n }\n\n assertPath(path)\n let start = 0\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let seenNonSlash\n\n if (ext === undefined || ext.length === 0 || ext.length > path.length) {\n while (index--) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // path component.\n seenNonSlash = true\n end = index + 1\n }\n }\n\n return end < 0 ? '' : path.slice(start, end)\n }\n\n if (ext === path) {\n return ''\n }\n\n let firstNonSlashEnd = -1\n let extIndex = ext.length - 1\n\n while (index--) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else {\n if (firstNonSlashEnd < 0) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching.\n seenNonSlash = true\n firstNonSlashEnd = index + 1\n }\n\n if (extIndex > -1) {\n // Try to match the explicit extension.\n if (path.codePointAt(index) === ext.codePointAt(extIndex--)) {\n if (extIndex < 0) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = index\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extIndex = -1\n end = firstNonSlashEnd\n }\n }\n }\n }\n\n if (start === end) {\n end = firstNonSlashEnd\n } else if (end < 0) {\n end = path.length\n }\n\n return path.slice(start, end)\n}\n\n/**\n * Get the dirname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\nfunction dirname(path) {\n assertPath(path)\n\n if (path.length === 0) {\n return '.'\n }\n\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let unmatchedSlash\n\n // Prefix `--` is important to not run on `0`.\n while (--index) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n if (unmatchedSlash) {\n end = index\n break\n }\n } else if (!unmatchedSlash) {\n // We saw the first non-path separator\n unmatchedSlash = true\n }\n }\n\n return end < 0\n ? path.codePointAt(0) === 47 /* `/` */\n ? '/'\n : '.'\n : end === 1 && path.codePointAt(0) === 47 /* `/` */\n ? '//'\n : path.slice(0, end)\n}\n\n/**\n * Get an extname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * Extname.\n */\nfunction extname(path) {\n assertPath(path)\n\n let index = path.length\n\n let end = -1\n let startPart = 0\n let startDot = -1\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find.\n let preDotState = 0\n /** @type {boolean | undefined} */\n let unmatchedSlash\n\n while (index--) {\n const code = path.codePointAt(index)\n\n if (code === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (unmatchedSlash) {\n startPart = index + 1\n break\n }\n\n continue\n }\n\n if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // extension.\n unmatchedSlash = true\n end = index + 1\n }\n\n if (code === 46 /* `.` */) {\n // If this is our first dot, mark it as the start of our extension.\n if (startDot < 0) {\n startDot = index\n } else if (preDotState !== 1) {\n preDotState = 1\n }\n } else if (startDot > -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension.\n preDotState = -1\n }\n }\n\n if (\n startDot < 0 ||\n end < 0 ||\n // We saw a non-dot character immediately before the dot.\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly `..`.\n (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)\n ) {\n return ''\n }\n\n return path.slice(startDot, end)\n}\n\n/**\n * Join segments from a path.\n *\n * @param {Array} segments\n * Path segments.\n * @returns {string}\n * File path.\n */\nfunction join(...segments) {\n let index = -1\n /** @type {string | undefined} */\n let joined\n\n while (++index < segments.length) {\n assertPath(segments[index])\n\n if (segments[index]) {\n joined =\n joined === undefined ? segments[index] : joined + '/' + segments[index]\n }\n }\n\n return joined === undefined ? '.' : normalize(joined)\n}\n\n/**\n * Normalize a basic file path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\n// Note: `normalize` is not exposed as `path.normalize`, so some code is\n// manually removed from it.\nfunction normalize(path) {\n assertPath(path)\n\n const absolute = path.codePointAt(0) === 47 /* `/` */\n\n // Normalize the path according to POSIX rules.\n let value = normalizeString(path, !absolute)\n\n if (value.length === 0 && !absolute) {\n value = '.'\n }\n\n if (value.length > 0 && path.codePointAt(path.length - 1) === 47 /* / */) {\n value += '/'\n }\n\n return absolute ? '/' + value : value\n}\n\n/**\n * Resolve `.` and `..` elements in a path with directory names.\n *\n * @param {string} path\n * File path.\n * @param {boolean} allowAboveRoot\n * Whether `..` can move above root.\n * @returns {string}\n * File path.\n */\nfunction normalizeString(path, allowAboveRoot) {\n let result = ''\n let lastSegmentLength = 0\n let lastSlash = -1\n let dots = 0\n let index = -1\n /** @type {number | undefined} */\n let code\n /** @type {number} */\n let lastSlashIndex\n\n while (++index <= path.length) {\n if (index < path.length) {\n code = path.codePointAt(index)\n } else if (code === 47 /* `/` */) {\n break\n } else {\n code = 47 /* `/` */\n }\n\n if (code === 47 /* `/` */) {\n if (lastSlash === index - 1 || dots === 1) {\n // Empty.\n } else if (lastSlash !== index - 1 && dots === 2) {\n if (\n result.length < 2 ||\n lastSegmentLength !== 2 ||\n result.codePointAt(result.length - 1) !== 46 /* `.` */ ||\n result.codePointAt(result.length - 2) !== 46 /* `.` */\n ) {\n if (result.length > 2) {\n lastSlashIndex = result.lastIndexOf('/')\n\n if (lastSlashIndex !== result.length - 1) {\n if (lastSlashIndex < 0) {\n result = ''\n lastSegmentLength = 0\n } else {\n result = result.slice(0, lastSlashIndex)\n lastSegmentLength = result.length - 1 - result.lastIndexOf('/')\n }\n\n lastSlash = index\n dots = 0\n continue\n }\n } else if (result.length > 0) {\n result = ''\n lastSegmentLength = 0\n lastSlash = index\n dots = 0\n continue\n }\n }\n\n if (allowAboveRoot) {\n result = result.length > 0 ? result + '/..' : '..'\n lastSegmentLength = 2\n }\n } else {\n if (result.length > 0) {\n result += '/' + path.slice(lastSlash + 1, index)\n } else {\n result = path.slice(lastSlash + 1, index)\n }\n\n lastSegmentLength = index - lastSlash - 1\n }\n\n lastSlash = index\n dots = 0\n } else if (code === 46 /* `.` */ && dots > -1) {\n dots++\n } else {\n dots = -1\n }\n }\n\n return result\n}\n\n/**\n * Make sure `path` is a string.\n *\n * @param {string} path\n * File path.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError(\n 'Path must be a string. Received ' + JSON.stringify(path)\n )\n }\n}\n\n/* eslint-enable max-depth, complexity */\n","// Somewhat based on:\n// .\n// But I don’t think one tiny line of code can be copyrighted. 😅\nexport const proc = {cwd}\n\nfunction cwd() {\n return '/'\n}\n","/**\n * Checks if a value has the shape of a WHATWG URL object.\n *\n * Using a symbol or instanceof would not be able to recognize URL objects\n * coming from other implementations (e.g. in Electron), so instead we are\n * checking some well known properties for a lack of a better test.\n *\n * We use `href` and `protocol` as they are the only properties that are\n * easy to retrieve and calculate due to the lazy nature of the getters.\n *\n * We check for auth attribute to distinguish legacy url instance with\n * WHATWG URL instance.\n *\n * @param {unknown} fileUrlOrPath\n * File path or URL.\n * @returns {fileUrlOrPath is URL}\n * Whether it’s a URL.\n */\n// From: \nexport function isUrl(fileUrlOrPath) {\n return Boolean(\n fileUrlOrPath !== null &&\n typeof fileUrlOrPath === 'object' &&\n 'href' in fileUrlOrPath &&\n fileUrlOrPath.href &&\n 'protocol' in fileUrlOrPath &&\n fileUrlOrPath.protocol &&\n // @ts-expect-error: indexing is fine.\n fileUrlOrPath.auth === undefined\n )\n}\n","import {isUrl} from './minurl.shared.js'\n\nexport {isUrl} from './minurl.shared.js'\n\n// See: \n\n/**\n * @param {URL | string} path\n * File URL.\n * @returns {string}\n * File URL.\n */\nexport function urlToPath(path) {\n if (typeof path === 'string') {\n path = new URL(path)\n } else if (!isUrl(path)) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'The \"path\" argument must be of type string or an instance of URL. Received `' +\n path +\n '`'\n )\n error.code = 'ERR_INVALID_ARG_TYPE'\n throw error\n }\n\n if (path.protocol !== 'file:') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError('The URL must be of scheme file')\n error.code = 'ERR_INVALID_URL_SCHEME'\n throw error\n }\n\n return getPathFromURLPosix(path)\n}\n\n/**\n * Get a path from a POSIX URL.\n *\n * @param {URL} url\n * URL.\n * @returns {string}\n * File path.\n */\nfunction getPathFromURLPosix(url) {\n if (url.hostname !== '') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL host must be \"localhost\" or empty on darwin'\n )\n error.code = 'ERR_INVALID_FILE_URL_HOST'\n throw error\n }\n\n const pathname = url.pathname\n let index = -1\n\n while (++index < pathname.length) {\n if (\n pathname.codePointAt(index) === 37 /* `%` */ &&\n pathname.codePointAt(index + 1) === 50 /* `2` */\n ) {\n const third = pathname.codePointAt(index + 2)\n if (third === 70 /* `F` */ || third === 102 /* `f` */) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL path must not include encoded / characters'\n )\n error.code = 'ERR_INVALID_FILE_URL_PATH'\n throw error\n }\n }\n }\n\n return decodeURIComponent(pathname)\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n * @typedef {import('vfile-message').Options} MessageOptions\n * @typedef {import('../index.js').Data} Data\n * @typedef {import('../index.js').Value} Value\n */\n\n/**\n * @typedef {object & {type: string, position?: Position | undefined}} NodeLike\n *\n * @typedef {Options | URL | VFile | Value} Compatible\n * Things that can be passed to the constructor.\n *\n * @typedef VFileCoreOptions\n * Set multiple values.\n * @property {string | null | undefined} [basename]\n * Set `basename` (name).\n * @property {string | null | undefined} [cwd]\n * Set `cwd` (working directory).\n * @property {Data | null | undefined} [data]\n * Set `data` (associated info).\n * @property {string | null | undefined} [dirname]\n * Set `dirname` (path w/o basename).\n * @property {string | null | undefined} [extname]\n * Set `extname` (extension with dot).\n * @property {Array | null | undefined} [history]\n * Set `history` (paths the file moved between).\n * @property {URL | string | null | undefined} [path]\n * Set `path` (current path).\n * @property {string | null | undefined} [stem]\n * Set `stem` (name without extension).\n * @property {Value | null | undefined} [value]\n * Set `value` (the contents of the file).\n *\n * @typedef Map\n * Raw source map.\n *\n * See:\n * .\n * @property {number} version\n * Which version of the source map spec this map is following.\n * @property {Array} sources\n * An array of URLs to the original source files.\n * @property {Array} names\n * An array of identifiers which can be referenced by individual mappings.\n * @property {string | undefined} [sourceRoot]\n * The URL root from which all sources are relative.\n * @property {Array | undefined} [sourcesContent]\n * An array of contents of the original source files.\n * @property {string} mappings\n * A string of base64 VLQs which contain the actual mappings.\n * @property {string} file\n * The generated file this source map is associated with.\n *\n * @typedef {Record & VFileCoreOptions} Options\n * Configuration.\n *\n * A bunch of keys that will be shallow copied over to the new file.\n *\n * @typedef {Record} ReporterSettings\n * Configuration for reporters.\n */\n\n/**\n * @template [Settings=ReporterSettings]\n * Options type.\n * @callback Reporter\n * Type for a reporter.\n * @param {Array} files\n * Files to report.\n * @param {Settings} options\n * Configuration.\n * @returns {string}\n * Report.\n */\n\nimport {VFileMessage} from 'vfile-message'\nimport {path} from 'vfile/do-not-use-conditional-minpath'\nimport {proc} from 'vfile/do-not-use-conditional-minproc'\nimport {urlToPath, isUrl} from 'vfile/do-not-use-conditional-minurl'\n\n/**\n * Order of setting (least specific to most), we need this because otherwise\n * `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a\n * stem can be set.\n */\nconst order = /** @type {const} */ ([\n 'history',\n 'path',\n 'basename',\n 'stem',\n 'extname',\n 'dirname'\n])\n\nexport class VFile {\n /**\n * Create a new virtual file.\n *\n * `options` is treated as:\n *\n * * `string` or `Uint8Array` — `{value: options}`\n * * `URL` — `{path: options}`\n * * `VFile` — shallow copies its data over to the new file\n * * `object` — all fields are shallow copied over to the new file\n *\n * Path related fields are set in the following order (least specific to\n * most specific): `history`, `path`, `basename`, `stem`, `extname`,\n * `dirname`.\n *\n * You cannot set `dirname` or `extname` without setting either `history`,\n * `path`, `basename`, or `stem` too.\n *\n * @param {Compatible | null | undefined} [value]\n * File value.\n * @returns\n * New instance.\n */\n constructor(value) {\n /** @type {Options | VFile} */\n let options\n\n if (!value) {\n options = {}\n } else if (isUrl(value)) {\n options = {path: value}\n } else if (typeof value === 'string' || isUint8Array(value)) {\n options = {value}\n } else {\n options = value\n }\n\n /* eslint-disable no-unused-expressions */\n\n /**\n * Base of `path` (default: `process.cwd()` or `'/'` in browsers).\n *\n * @type {string}\n */\n this.cwd = proc.cwd()\n\n /**\n * Place to store custom info (default: `{}`).\n *\n * It’s OK to store custom data directly on the file but moving it to\n * `data` is recommended.\n *\n * @type {Data}\n */\n this.data = {}\n\n /**\n * List of file paths the file moved between.\n *\n * The first is the original path and the last is the current path.\n *\n * @type {Array}\n */\n this.history = []\n\n /**\n * List of messages associated with the file.\n *\n * @type {Array}\n */\n this.messages = []\n\n /**\n * Raw value.\n *\n * @type {Value}\n */\n this.value\n\n // The below are non-standard, they are “well-known”.\n // As in, used in several tools.\n /**\n * Source map.\n *\n * This type is equivalent to the `RawSourceMap` type from the `source-map`\n * module.\n *\n * @type {Map | null | undefined}\n */\n this.map\n\n /**\n * Custom, non-string, compiled, representation.\n *\n * This is used by unified to store non-string results.\n * One example is when turning markdown into React nodes.\n *\n * @type {unknown}\n */\n this.result\n\n /**\n * Whether a file was saved to disk.\n *\n * This is used by vfile reporters.\n *\n * @type {boolean}\n */\n this.stored\n /* eslint-enable no-unused-expressions */\n\n // Set path related properties in the correct order.\n let index = -1\n\n while (++index < order.length) {\n const prop = order[index]\n\n // Note: we specifically use `in` instead of `hasOwnProperty` to accept\n // `vfile`s too.\n if (\n prop in options &&\n options[prop] !== undefined &&\n options[prop] !== null\n ) {\n // @ts-expect-error: TS doesn’t understand basic reality.\n this[prop] = prop === 'history' ? [...options[prop]] : options[prop]\n }\n }\n\n /** @type {string} */\n let prop\n\n // Set non-path related properties.\n for (prop in options) {\n // @ts-expect-error: fine to set other things.\n if (!order.includes(prop)) {\n // @ts-expect-error: fine to set other things.\n this[prop] = options[prop]\n }\n }\n }\n\n /**\n * Get the basename (including extname) (example: `'index.min.js'`).\n *\n * @returns {string | undefined}\n * Basename.\n */\n get basename() {\n return typeof this.path === 'string' ? path.basename(this.path) : undefined\n }\n\n /**\n * Set basename (including extname) (`'index.min.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n *\n * @param {string} basename\n * Basename.\n * @returns {undefined}\n * Nothing.\n */\n set basename(basename) {\n assertNonEmpty(basename, 'basename')\n assertPart(basename, 'basename')\n this.path = path.join(this.dirname || '', basename)\n }\n\n /**\n * Get the parent path (example: `'~'`).\n *\n * @returns {string | undefined}\n * Dirname.\n */\n get dirname() {\n return typeof this.path === 'string' ? path.dirname(this.path) : undefined\n }\n\n /**\n * Set the parent path (example: `'~'`).\n *\n * Cannot be set if there’s no `path` yet.\n *\n * @param {string | undefined} dirname\n * Dirname.\n * @returns {undefined}\n * Nothing.\n */\n set dirname(dirname) {\n assertPath(this.basename, 'dirname')\n this.path = path.join(dirname || '', this.basename)\n }\n\n /**\n * Get the extname (including dot) (example: `'.js'`).\n *\n * @returns {string | undefined}\n * Extname.\n */\n get extname() {\n return typeof this.path === 'string' ? path.extname(this.path) : undefined\n }\n\n /**\n * Set the extname (including dot) (example: `'.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be set if there’s no `path` yet.\n *\n * @param {string | undefined} extname\n * Extname.\n * @returns {undefined}\n * Nothing.\n */\n set extname(extname) {\n assertPart(extname, 'extname')\n assertPath(this.dirname, 'extname')\n\n if (extname) {\n if (extname.codePointAt(0) !== 46 /* `.` */) {\n throw new Error('`extname` must start with `.`')\n }\n\n if (extname.includes('.', 1)) {\n throw new Error('`extname` cannot contain multiple dots')\n }\n }\n\n this.path = path.join(this.dirname, this.stem + (extname || ''))\n }\n\n /**\n * Get the full path (example: `'~/index.min.js'`).\n *\n * @returns {string}\n * Path.\n */\n get path() {\n return this.history[this.history.length - 1]\n }\n\n /**\n * Set the full path (example: `'~/index.min.js'`).\n *\n * Cannot be nullified.\n * You can set a file URL (a `URL` object with a `file:` protocol) which will\n * be turned into a path with `url.fileURLToPath`.\n *\n * @param {URL | string} path\n * Path.\n * @returns {undefined}\n * Nothing.\n */\n set path(path) {\n if (isUrl(path)) {\n path = urlToPath(path)\n }\n\n assertNonEmpty(path, 'path')\n\n if (this.path !== path) {\n this.history.push(path)\n }\n }\n\n /**\n * Get the stem (basename w/o extname) (example: `'index.min'`).\n *\n * @returns {string | undefined}\n * Stem.\n */\n get stem() {\n return typeof this.path === 'string'\n ? path.basename(this.path, this.extname)\n : undefined\n }\n\n /**\n * Set the stem (basename w/o extname) (example: `'index.min'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n *\n * @param {string} stem\n * Stem.\n * @returns {undefined}\n * Nothing.\n */\n set stem(stem) {\n assertNonEmpty(stem, 'stem')\n assertPart(stem, 'stem')\n this.path = path.join(this.dirname || '', stem + (this.extname || ''))\n }\n\n // Normal prototypal methods.\n /**\n * Create a fatal message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `true` (error; file not usable)\n * and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {never}\n * Never.\n * @throws {VFileMessage}\n * Message.\n */\n fail(causeOrReason, optionsOrParentOrPlace, origin) {\n // @ts-expect-error: the overloads are fine.\n const message = this.message(causeOrReason, optionsOrParentOrPlace, origin)\n\n message.fatal = true\n\n throw message\n }\n\n /**\n * Create an info message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `undefined` (info; change\n * likely not needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n info(causeOrReason, optionsOrParentOrPlace, origin) {\n // @ts-expect-error: the overloads are fine.\n const message = this.message(causeOrReason, optionsOrParentOrPlace, origin)\n\n message.fatal = undefined\n\n return message\n }\n\n /**\n * Create a message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `false` (warning; change may be\n * needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n message(causeOrReason, optionsOrParentOrPlace, origin) {\n const message = new VFileMessage(\n // @ts-expect-error: the overloads are fine.\n causeOrReason,\n optionsOrParentOrPlace,\n origin\n )\n\n if (this.path) {\n message.name = this.path + ':' + message.name\n message.file = this.path\n }\n\n message.fatal = false\n\n this.messages.push(message)\n\n return message\n }\n\n /**\n * Serialize the file.\n *\n * > **Note**: which encodings are supported depends on the engine.\n * > For info on Node.js, see:\n * > .\n *\n * @param {string | null | undefined} [encoding='utf8']\n * Character encoding to understand `value` as when it’s a `Uint8Array`\n * (default: `'utf-8'`).\n * @returns {string}\n * Serialized file.\n */\n toString(encoding) {\n if (this.value === undefined) {\n return ''\n }\n\n if (typeof this.value === 'string') {\n return this.value\n }\n\n const decoder = new TextDecoder(encoding || undefined)\n return decoder.decode(this.value)\n }\n}\n\n/**\n * Assert that `part` is not a path (as in, does not contain `path.sep`).\n *\n * @param {string | null | undefined} part\n * File path part.\n * @param {string} name\n * Part name.\n * @returns {undefined}\n * Nothing.\n */\nfunction assertPart(part, name) {\n if (part && part.includes(path.sep)) {\n throw new Error(\n '`' + name + '` cannot be a path: did not expect `' + path.sep + '`'\n )\n }\n}\n\n/**\n * Assert that `part` is not empty.\n *\n * @param {string | undefined} part\n * Thing.\n * @param {string} name\n * Part name.\n * @returns {asserts part is string}\n * Nothing.\n */\nfunction assertNonEmpty(part, name) {\n if (!part) {\n throw new Error('`' + name + '` cannot be empty')\n }\n}\n\n/**\n * Assert `path` exists.\n *\n * @param {string | undefined} path\n * Path.\n * @param {string} name\n * Dependency name.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path, name) {\n if (!path) {\n throw new Error('Setting `' + name + '` requires `path` to be set too')\n }\n}\n\n/**\n * Assert `value` is an `Uint8Array`.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Uint8Array}\n * Whether `value` is an `Uint8Array`.\n */\nfunction isUint8Array(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'byteLength' in value &&\n 'byteOffset' in value\n )\n}\n","export const CallableInstance =\n /**\n * @type {new , Result>(property: string | symbol) => (...parameters: Parameters) => Result}\n */\n (\n /** @type {unknown} */\n (\n /**\n * @this {Function}\n * @param {string | symbol} property\n * @returns {(...parameters: Array) => unknown}\n */\n function (property) {\n const self = this\n const constr = self.constructor\n const proto = /** @type {Record} */ (\n // Prototypes do exist.\n // type-coverage:ignore-next-line\n constr.prototype\n )\n const func = proto[property]\n /** @type {(...parameters: Array) => unknown} */\n const apply = function () {\n return func.apply(apply, arguments)\n }\n\n Object.setPrototypeOf(apply, proto)\n\n const names = Object.getOwnPropertyNames(func)\n\n for (const p of names) {\n const descriptor = Object.getOwnPropertyDescriptor(func, p)\n if (descriptor) Object.defineProperty(apply, p, descriptor)\n }\n\n return apply\n }\n )\n )\n","/**\n * @typedef {import('trough').Pipeline} Pipeline\n *\n * @typedef {import('unist').Node} Node\n *\n * @typedef {import('vfile').Compatible} Compatible\n * @typedef {import('vfile').Value} Value\n *\n * @typedef {import('../index.js').CompileResultMap} CompileResultMap\n * @typedef {import('../index.js').Data} Data\n * @typedef {import('../index.js').Settings} Settings\n */\n\n/**\n * @typedef {CompileResultMap[keyof CompileResultMap]} CompileResults\n * Acceptable results from compilers.\n *\n * To register custom results, add them to\n * {@link CompileResultMap `CompileResultMap`}.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The node that the compiler receives (default: `Node`).\n * @template {CompileResults} [Result=CompileResults]\n * The thing that the compiler yields (default: `CompileResults`).\n * @callback Compiler\n * A **compiler** handles the compiling of a syntax tree to something else\n * (in most cases, text) (TypeScript type).\n *\n * It is used in the stringify phase and called with a {@link Node `Node`}\n * and {@link VFile `VFile`} representation of the document to compile.\n * It should return the textual representation of the given tree (typically\n * `string`).\n *\n * > 👉 **Note**: unified typically compiles by serializing: most compilers\n * > return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@link CompileResultMap `CompileResultMap`}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n * @param {Tree} tree\n * Tree to compile.\n * @param {VFile} file\n * File associated with `tree`.\n * @returns {Result}\n * New content: compiled text (`string` or `Uint8Array`, for `file.value`) or\n * something else (for `file.result`).\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The node that the parser yields (default: `Node`)\n * @callback Parser\n * A **parser** handles the parsing of text to a syntax tree.\n *\n * It is used in the parse phase and is called with a `string` and\n * {@link VFile `VFile`} of the document to parse.\n * It must return the syntax tree representation of the given file\n * ({@link Node `Node`}).\n * @param {string} document\n * Document to parse.\n * @param {VFile} file\n * File associated with `document`.\n * @returns {Tree}\n * Node representing the given file.\n */\n\n/**\n * @typedef {(\n * Plugin, any, any> |\n * PluginTuple, any, any> |\n * Preset\n * )} Pluggable\n * Union of the different ways to add plugins and settings.\n */\n\n/**\n * @typedef {Array} PluggableList\n * List of plugins and presets.\n */\n\n// Note: we can’t use `callback` yet as it messes up `this`:\n// .\n/**\n * @template {Array} [PluginParameters=[]]\n * Arguments passed to the plugin (default: `[]`, the empty tuple).\n * @template {Node | string | undefined} [Input=Node]\n * Value that is expected as input (default: `Node`).\n *\n * * If the plugin returns a {@link Transformer `Transformer`}, this\n * should be the node it expects.\n * * If the plugin sets a {@link Parser `Parser`}, this should be\n * `string`.\n * * If the plugin sets a {@link Compiler `Compiler`}, this should be the\n * node it expects.\n * @template [Output=Input]\n * Value that is yielded as output (default: `Input`).\n *\n * * If the plugin returns a {@link Transformer `Transformer`}, this\n * should be the node that that yields.\n * * If the plugin sets a {@link Parser `Parser`}, this should be the\n * node that it yields.\n * * If the plugin sets a {@link Compiler `Compiler`}, this should be\n * result it yields.\n * @typedef {(\n * (this: Processor, ...parameters: PluginParameters) =>\n * Input extends string ? // Parser.\n * Output extends Node | undefined ? undefined | void : never :\n * Output extends CompileResults ? // Compiler.\n * Input extends Node | undefined ? undefined | void : never :\n * Transformer<\n * Input extends Node ? Input : Node,\n * Output extends Node ? Output : Node\n * > | undefined | void\n * )} Plugin\n * Single plugin.\n *\n * Plugins configure the processors they are applied on in the following\n * ways:\n *\n * * they change the processor, such as the parser, the compiler, or by\n * configuring data\n * * they specify how to handle trees and files\n *\n * In practice, they are functions that can receive options and configure the\n * processor (`this`).\n *\n * > 👉 **Note**: plugins are called when the processor is *frozen*, not when\n * > they are applied.\n */\n\n/**\n * Tuple of a plugin and its configuration.\n *\n * The first item is a plugin, the rest are its parameters.\n *\n * @template {Array} [TupleParameters=[]]\n * Arguments passed to the plugin (default: `[]`, the empty tuple).\n * @template {Node | string | undefined} [Input=undefined]\n * Value that is expected as input (optional).\n *\n * * If the plugin returns a {@link Transformer `Transformer`}, this\n * should be the node it expects.\n * * If the plugin sets a {@link Parser `Parser`}, this should be\n * `string`.\n * * If the plugin sets a {@link Compiler `Compiler`}, this should be the\n * node it expects.\n * @template [Output=undefined] (optional).\n * Value that is yielded as output.\n *\n * * If the plugin returns a {@link Transformer `Transformer`}, this\n * should be the node that that yields.\n * * If the plugin sets a {@link Parser `Parser`}, this should be the\n * node that it yields.\n * * If the plugin sets a {@link Compiler `Compiler`}, this should be\n * result it yields.\n * @typedef {(\n * [\n * plugin: Plugin,\n * ...parameters: TupleParameters\n * ]\n * )} PluginTuple\n */\n\n/**\n * @typedef Preset\n * Sharable configuration.\n *\n * They can contain plugins and settings.\n * @property {PluggableList | undefined} [plugins]\n * List of plugins and presets (optional).\n * @property {Settings | undefined} [settings]\n * Shared settings for parsers and compilers (optional).\n */\n\n/**\n * @template {VFile} [File=VFile]\n * The file that the callback receives (default: `VFile`).\n * @callback ProcessCallback\n * Callback called when the process is done.\n *\n * Called with either an error or a result.\n * @param {Error | undefined} [error]\n * Fatal error (optional).\n * @param {File | undefined} [file]\n * Processed file (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The tree that the callback receives (default: `Node`).\n * @callback RunCallback\n * Callback called when transformers are done.\n *\n * Called with either an error or results.\n * @param {Error | undefined} [error]\n * Fatal error (optional).\n * @param {Tree | undefined} [tree]\n * Transformed tree (optional).\n * @param {VFile | undefined} [file]\n * File (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Output=Node]\n * Node type that the transformer yields (default: `Node`).\n * @callback TransformCallback\n * Callback passed to transforms.\n *\n * If the signature of a `transformer` accepts a third argument, the\n * transformer may perform asynchronous operations, and must call it.\n * @param {Error | undefined} [error]\n * Fatal error to stop the process (optional).\n * @param {Output | undefined} [tree]\n * New, changed, tree (optional).\n * @param {VFile | undefined} [file]\n * New, changed, file (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Input=Node]\n * Node type that the transformer expects (default: `Node`).\n * @template {Node} [Output=Input]\n * Node type that the transformer yields (default: `Input`).\n * @callback Transformer\n * Transformers handle syntax trees and files.\n *\n * They are functions that are called each time a syntax tree and file are\n * passed through the run phase.\n * When an error occurs in them (either because it’s thrown, returned,\n * rejected, or passed to `next`), the process stops.\n *\n * The run phase is handled by [`trough`][trough], see its documentation for\n * the exact semantics of these functions.\n *\n * > 👉 **Note**: you should likely ignore `next`: don’t accept it.\n * > it supports callback-style async work.\n * > But promises are likely easier to reason about.\n *\n * [trough]: https://github.com/wooorm/trough#function-fninput-next\n * @param {Input} tree\n * Tree to handle.\n * @param {VFile} file\n * File to handle.\n * @param {TransformCallback} next\n * Callback.\n * @returns {(\n * Promise |\n * Promise | // For some reason this is needed separately.\n * Output |\n * Error |\n * undefined |\n * void\n * )}\n * If you accept `next`, nothing.\n * Otherwise:\n *\n * * `Error` — fatal error to stop the process\n * * `Promise` or `undefined` — the next transformer keeps using\n * same tree\n * * `Promise` or `Node` — new, changed, tree\n */\n\n/**\n * @template {Node | undefined} ParseTree\n * Output of `parse`.\n * @template {Node | undefined} HeadTree\n * Input for `run`.\n * @template {Node | undefined} TailTree\n * Output for `run`.\n * @template {Node | undefined} CompileTree\n * Input of `stringify`.\n * @template {CompileResults | undefined} CompileResult\n * Output of `stringify`.\n * @template {Node | string | undefined} Input\n * Input of plugin.\n * @template Output\n * Output of plugin (optional).\n * @typedef {(\n * Input extends string\n * ? Output extends Node | undefined\n * ? // Parser.\n * Processor<\n * Output extends undefined ? ParseTree : Output,\n * HeadTree,\n * TailTree,\n * CompileTree,\n * CompileResult\n * >\n * : // Unknown.\n * Processor\n * : Output extends CompileResults\n * ? Input extends Node | undefined\n * ? // Compiler.\n * Processor<\n * ParseTree,\n * HeadTree,\n * TailTree,\n * Input extends undefined ? CompileTree : Input,\n * Output extends undefined ? CompileResult : Output\n * >\n * : // Unknown.\n * Processor\n * : Input extends Node | undefined\n * ? Output extends Node | undefined\n * ? // Transform.\n * Processor<\n * ParseTree,\n * HeadTree extends undefined ? Input : HeadTree,\n * Output extends undefined ? TailTree : Output,\n * CompileTree,\n * CompileResult\n * >\n * : // Unknown.\n * Processor\n * : // Unknown.\n * Processor\n * )} UsePlugin\n * Create a processor based on the input/output of a {@link Plugin plugin}.\n */\n\n/**\n * @template {CompileResults | undefined} Result\n * Node type that the transformer yields.\n * @typedef {(\n * Result extends Value | undefined ?\n * VFile :\n * VFile & {result: Result}\n * )} VFileWithOutput\n * Type to generate a {@link VFile `VFile`} corresponding to a compiler result.\n *\n * If a result that is not acceptable on a `VFile` is used, that will\n * be stored on the `result` field of {@link VFile `VFile`}.\n */\n\nimport {bail} from 'bail'\nimport extend from 'extend'\nimport {ok as assert} from 'devlop'\nimport isPlainObj from 'is-plain-obj'\nimport {trough} from 'trough'\nimport {VFile} from 'vfile'\nimport {CallableInstance} from './callable-instance.js'\n\n// To do: next major: drop `Compiler`, `Parser`: prefer lowercase.\n\n// To do: we could start yielding `never` in TS when a parser is missing and\n// `parse` is called.\n// Currently, we allow directly setting `processor.parser`, which is untyped.\n\nconst own = {}.hasOwnProperty\n\n/**\n * @template {Node | undefined} [ParseTree=undefined]\n * Output of `parse` (optional).\n * @template {Node | undefined} [HeadTree=undefined]\n * Input for `run` (optional).\n * @template {Node | undefined} [TailTree=undefined]\n * Output for `run` (optional).\n * @template {Node | undefined} [CompileTree=undefined]\n * Input of `stringify` (optional).\n * @template {CompileResults | undefined} [CompileResult=undefined]\n * Output of `stringify` (optional).\n * @extends {CallableInstance<[], Processor>}\n */\nexport class Processor extends CallableInstance {\n /**\n * Create a processor.\n */\n constructor() {\n // If `Processor()` is called (w/o new), `copy` is called instead.\n super('copy')\n\n /**\n * Compiler to use (deprecated).\n *\n * @deprecated\n * Use `compiler` instead.\n * @type {(\n * Compiler<\n * CompileTree extends undefined ? Node : CompileTree,\n * CompileResult extends undefined ? CompileResults : CompileResult\n * > |\n * undefined\n * )}\n */\n this.Compiler = undefined\n\n /**\n * Parser to use (deprecated).\n *\n * @deprecated\n * Use `parser` instead.\n * @type {(\n * Parser |\n * undefined\n * )}\n */\n this.Parser = undefined\n\n // Note: the following fields are considered private.\n // However, they are needed for tests, and TSC generates an untyped\n // `private freezeIndex` field for, which trips `type-coverage` up.\n // Instead, we use `@deprecated` to visualize that they shouldn’t be used.\n /**\n * Internal list of configured plugins.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Array>>}\n */\n this.attachers = []\n\n /**\n * Compiler to use.\n *\n * @type {(\n * Compiler<\n * CompileTree extends undefined ? Node : CompileTree,\n * CompileResult extends undefined ? CompileResults : CompileResult\n * > |\n * undefined\n * )}\n */\n this.compiler = undefined\n\n /**\n * Internal state to track where we are while freezing.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {number}\n */\n this.freezeIndex = -1\n\n /**\n * Internal state to track whether we’re frozen.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {boolean | undefined}\n */\n this.frozen = undefined\n\n /**\n * Internal state.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Data}\n */\n this.namespace = {}\n\n /**\n * Parser to use.\n *\n * @type {(\n * Parser |\n * undefined\n * )}\n */\n this.parser = undefined\n\n /**\n * Internal list of configured transformers.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Pipeline}\n */\n this.transformers = trough()\n }\n\n /**\n * Copy a processor.\n *\n * @deprecated\n * This is a private internal method and should not be used.\n * @returns {Processor}\n * New *unfrozen* processor ({@link Processor `Processor`}) that is\n * configured to work the same as its ancestor.\n * When the descendant processor is configured in the future it does not\n * affect the ancestral processor.\n */\n copy() {\n // Cast as the type parameters will be the same after attaching.\n const destination =\n /** @type {Processor} */ (\n new Processor()\n )\n let index = -1\n\n while (++index < this.attachers.length) {\n const attacher = this.attachers[index]\n destination.use(...attacher)\n }\n\n destination.data(extend(true, {}, this.namespace))\n\n return destination\n }\n\n /**\n * Configure the processor with info available to all plugins.\n * Information is stored in an object.\n *\n * Typically, options can be given to a specific plugin, but sometimes it\n * makes sense to have information shared with several plugins.\n * For example, a list of HTML elements that are self-closing, which is\n * needed during all phases.\n *\n * > 👉 **Note**: setting information cannot occur on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * > 👉 **Note**: to register custom data in TypeScript, augment the\n * > {@link Data `Data`} interface.\n *\n * @example\n * This example show how to get and set info:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * const processor = unified().data('alpha', 'bravo')\n *\n * processor.data('alpha') // => 'bravo'\n *\n * processor.data() // => {alpha: 'bravo'}\n *\n * processor.data({charlie: 'delta'})\n *\n * processor.data() // => {charlie: 'delta'}\n * ```\n *\n * @template {keyof Data} Key\n *\n * @overload\n * @returns {Data}\n *\n * @overload\n * @param {Data} dataset\n * @returns {Processor}\n *\n * @overload\n * @param {Key} key\n * @returns {Data[Key]}\n *\n * @overload\n * @param {Key} key\n * @param {Data[Key]} value\n * @returns {Processor}\n *\n * @param {Data | Key} [key]\n * Key to get or set, or entire dataset to set, or nothing to get the\n * entire dataset (optional).\n * @param {Data[Key]} [value]\n * Value to set (optional).\n * @returns {unknown}\n * The current processor when setting, the value at `key` when getting, or\n * the entire dataset when getting without key.\n */\n data(key, value) {\n if (typeof key === 'string') {\n // Set `key`.\n if (arguments.length === 2) {\n assertUnfrozen('data', this.frozen)\n this.namespace[key] = value\n return this\n }\n\n // Get `key`.\n return (own.call(this.namespace, key) && this.namespace[key]) || undefined\n }\n\n // Set space.\n if (key) {\n assertUnfrozen('data', this.frozen)\n this.namespace = key\n return this\n }\n\n // Get space.\n return this.namespace\n }\n\n /**\n * Freeze a processor.\n *\n * Frozen processors are meant to be extended and not to be configured\n * directly.\n *\n * When a processor is frozen it cannot be unfrozen.\n * New processors working the same way can be created by calling the\n * processor.\n *\n * It’s possible to freeze processors explicitly by calling `.freeze()`.\n * Processors freeze automatically when `.parse()`, `.run()`, `.runSync()`,\n * `.stringify()`, `.process()`, or `.processSync()` are called.\n *\n * @returns {Processor}\n * The current processor.\n */\n freeze() {\n if (this.frozen) {\n return this\n }\n\n // Cast so that we can type plugins easier.\n // Plugins are supposed to be usable on different processors, not just on\n // this exact processor.\n const self = /** @type {Processor} */ (/** @type {unknown} */ (this))\n\n while (++this.freezeIndex < this.attachers.length) {\n const [attacher, ...options] = this.attachers[this.freezeIndex]\n\n if (options[0] === false) {\n continue\n }\n\n if (options[0] === true) {\n options[0] = undefined\n }\n\n const transformer = attacher.call(self, ...options)\n\n if (typeof transformer === 'function') {\n this.transformers.use(transformer)\n }\n }\n\n this.frozen = true\n this.freezeIndex = Number.POSITIVE_INFINITY\n\n return this\n }\n\n /**\n * Parse text to a syntax tree.\n *\n * > 👉 **Note**: `parse` freezes the processor if not already *frozen*.\n *\n * > 👉 **Note**: `parse` performs the parse phase, not the run phase or other\n * > phases.\n *\n * @param {Compatible | undefined} [file]\n * file to parse (optional); typically `string` or `VFile`; any value\n * accepted as `x` in `new VFile(x)`.\n * @returns {ParseTree extends undefined ? Node : ParseTree}\n * Syntax tree representing `file`.\n */\n parse(file) {\n this.freeze()\n const realFile = vfile(file)\n const parser = this.parser || this.Parser\n assertParser('parse', parser)\n return parser(String(realFile), realFile)\n }\n\n /**\n * Process the given file as configured on the processor.\n *\n * > 👉 **Note**: `process` freezes the processor if not already *frozen*.\n *\n * > 👉 **Note**: `process` performs the parse, run, and stringify phases.\n *\n * @overload\n * @param {Compatible | undefined} file\n * @param {ProcessCallback>} done\n * @returns {undefined}\n *\n * @overload\n * @param {Compatible | undefined} [file]\n * @returns {Promise>}\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`]; any value accepted as\n * `x` in `new VFile(x)`.\n * @param {ProcessCallback> | undefined} [done]\n * Callback (optional).\n * @returns {Promise | undefined}\n * Nothing if `done` is given.\n * Otherwise a promise, rejected with a fatal error or resolved with the\n * processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > 👉 **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@link CompileResultMap `CompileResultMap`}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n process(file, done) {\n const self = this\n\n this.freeze()\n assertParser('process', this.parser || this.Parser)\n assertCompiler('process', this.compiler || this.Compiler)\n\n return done ? executor(undefined, done) : new Promise(executor)\n\n // Note: `void`s needed for TS.\n /**\n * @param {((file: VFileWithOutput) => undefined | void) | undefined} resolve\n * @param {(error: Error | undefined) => undefined | void} reject\n * @returns {undefined}\n */\n function executor(resolve, reject) {\n const realFile = vfile(file)\n // Assume `ParseTree` (the result of the parser) matches `HeadTree` (the\n // input of the first transform).\n const parseTree =\n /** @type {HeadTree extends undefined ? Node : HeadTree} */ (\n /** @type {unknown} */ (self.parse(realFile))\n )\n\n self.run(parseTree, realFile, function (error, tree, file) {\n if (error || !tree || !file) {\n return realDone(error)\n }\n\n // Assume `TailTree` (the output of the last transform) matches\n // `CompileTree` (the input of the compiler).\n const compileTree =\n /** @type {CompileTree extends undefined ? Node : CompileTree} */ (\n /** @type {unknown} */ (tree)\n )\n\n const compileResult = self.stringify(compileTree, file)\n\n if (looksLikeAValue(compileResult)) {\n file.value = compileResult\n } else {\n file.result = compileResult\n }\n\n realDone(error, /** @type {VFileWithOutput} */ (file))\n })\n\n /**\n * @param {Error | undefined} error\n * @param {VFileWithOutput | undefined} [file]\n * @returns {undefined}\n */\n function realDone(error, file) {\n if (error || !file) {\n reject(error)\n } else if (resolve) {\n resolve(file)\n } else {\n assert(done, '`done` is defined if `resolve` is not')\n done(undefined, file)\n }\n }\n }\n }\n\n /**\n * Process the given file as configured on the processor.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > 👉 **Note**: `processSync` freezes the processor if not already *frozen*.\n *\n * > 👉 **Note**: `processSync` performs the parse, run, and stringify phases.\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`; any value accepted as\n * `x` in `new VFile(x)`.\n * @returns {VFileWithOutput}\n * The processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > 👉 **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@link CompileResultMap `CompileResultMap`}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n processSync(file) {\n /** @type {boolean} */\n let complete = false\n /** @type {VFileWithOutput | undefined} */\n let result\n\n this.freeze()\n assertParser('processSync', this.parser || this.Parser)\n assertCompiler('processSync', this.compiler || this.Compiler)\n\n this.process(file, realDone)\n assertDone('processSync', 'process', complete)\n assert(result, 'we either bailed on an error or have a tree')\n\n return result\n\n /**\n * @type {ProcessCallback>}\n */\n function realDone(error, file) {\n complete = true\n bail(error)\n result = file\n }\n }\n\n /**\n * Run *transformers* on a syntax tree.\n *\n * > 👉 **Note**: `run` freezes the processor if not already *frozen*.\n *\n * > 👉 **Note**: `run` performs the run phase, not other phases.\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {RunCallback} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} file\n * @param {RunCallback} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} [file]\n * @returns {Promise}\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {(\n * RunCallback |\n * Compatible\n * )} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @param {RunCallback} [done]\n * Callback (optional).\n * @returns {Promise | undefined}\n * Nothing if `done` is given.\n * Otherwise, a promise rejected with a fatal error or resolved with the\n * transformed tree.\n */\n run(tree, file, done) {\n assertNode(tree)\n this.freeze()\n\n const transformers = this.transformers\n\n if (!done && typeof file === 'function') {\n done = file\n file = undefined\n }\n\n return done ? executor(undefined, done) : new Promise(executor)\n\n // Note: `void`s needed for TS.\n /**\n * @param {(\n * ((tree: TailTree extends undefined ? Node : TailTree) => undefined | void) |\n * undefined\n * )} resolve\n * @param {(error: Error) => undefined | void} reject\n * @returns {undefined}\n */\n function executor(resolve, reject) {\n assert(\n typeof file !== 'function',\n '`file` can’t be a `done` anymore, we checked'\n )\n const realFile = vfile(file)\n transformers.run(tree, realFile, realDone)\n\n /**\n * @param {Error | undefined} error\n * @param {Node} outputTree\n * @param {VFile} file\n * @returns {undefined}\n */\n function realDone(error, outputTree, file) {\n const resultingTree =\n /** @type {TailTree extends undefined ? Node : TailTree} */ (\n outputTree || tree\n )\n\n if (error) {\n reject(error)\n } else if (resolve) {\n resolve(resultingTree)\n } else {\n assert(done, '`done` is defined if `resolve` is not')\n done(undefined, resultingTree, file)\n }\n }\n }\n }\n\n /**\n * Run *transformers* on a syntax tree.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > 👉 **Note**: `runSync` freezes the processor if not already *frozen*.\n *\n * > 👉 **Note**: `runSync` performs the run phase, not other phases.\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {TailTree extends undefined ? Node : TailTree}\n * Transformed tree.\n */\n runSync(tree, file) {\n /** @type {boolean} */\n let complete = false\n /** @type {(TailTree extends undefined ? Node : TailTree) | undefined} */\n let result\n\n this.run(tree, file, realDone)\n\n assertDone('runSync', 'run', complete)\n assert(result, 'we either bailed on an error or have a tree')\n return result\n\n /**\n * @type {RunCallback}\n */\n function realDone(error, tree) {\n bail(error)\n result = tree\n complete = true\n }\n }\n\n /**\n * Compile a syntax tree.\n *\n * > 👉 **Note**: `stringify` freezes the processor if not already *frozen*.\n *\n * > 👉 **Note**: `stringify` performs the stringify phase, not the run phase\n * > or other phases.\n *\n * @param {CompileTree extends undefined ? Node : CompileTree} tree\n * Tree to compile.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {CompileResult extends undefined ? Value : CompileResult}\n * Textual representation of the tree (see note).\n *\n * > 👉 **Note**: unified typically compiles by serializing: most compilers\n * > return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@link CompileResultMap `CompileResultMap`}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n stringify(tree, file) {\n this.freeze()\n const realFile = vfile(file)\n const compiler = this.compiler || this.Compiler\n assertCompiler('stringify', compiler)\n assertNode(tree)\n\n return compiler(tree, realFile)\n }\n\n /**\n * Configure the processor to use a plugin, a list of usable values, or a\n * preset.\n *\n * If the processor is already using a plugin, the previous plugin\n * configuration is changed based on the options that are passed in.\n * In other words, the plugin is not added a second time.\n *\n * > 👉 **Note**: `use` cannot be called on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * @example\n * There are many ways to pass plugins to `.use()`.\n * This example gives an overview:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * unified()\n * // Plugin with options:\n * .use(pluginA, {x: true, y: true})\n * // Passing the same plugin again merges configuration (to `{x: true, y: false, z: true}`):\n * .use(pluginA, {y: false, z: true})\n * // Plugins:\n * .use([pluginB, pluginC])\n * // Two plugins, the second with options:\n * .use([pluginD, [pluginE, {}]])\n * // Preset with plugins and settings:\n * .use({plugins: [pluginF, [pluginG, {}]], settings: {position: false}})\n * // Settings only:\n * .use({settings: {position: false}})\n * ```\n *\n * @template {Array} [Parameters=[]]\n * @template {Node | string | undefined} [Input=undefined]\n * @template [Output=Input]\n *\n * @overload\n * @param {Preset | null | undefined} [preset]\n * @returns {Processor}\n *\n * @overload\n * @param {PluggableList} list\n * @returns {Processor}\n *\n * @overload\n * @param {Plugin} plugin\n * @param {...(Parameters | [boolean])} parameters\n * @returns {UsePlugin}\n *\n * @param {PluggableList | Plugin | Preset | null | undefined} value\n * Usable value.\n * @param {...unknown} parameters\n * Parameters, when a plugin is given as a usable value.\n * @returns {Processor}\n * Current processor.\n */\n use(value, ...parameters) {\n const attachers = this.attachers\n const namespace = this.namespace\n\n assertUnfrozen('use', this.frozen)\n\n if (value === null || value === undefined) {\n // Empty.\n } else if (typeof value === 'function') {\n addPlugin(value, parameters)\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n addList(value)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n\n return this\n\n /**\n * @param {Pluggable} value\n * @returns {undefined}\n */\n function add(value) {\n if (typeof value === 'function') {\n addPlugin(value, [])\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n const [plugin, ...parameters] =\n /** @type {PluginTuple>} */ (value)\n addPlugin(plugin, parameters)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n }\n\n /**\n * @param {Preset} result\n * @returns {undefined}\n */\n function addPreset(result) {\n if (!('plugins' in result) && !('settings' in result)) {\n throw new Error(\n 'Expected usable value but received an empty preset, which is probably a mistake: presets typically come with `plugins` and sometimes with `settings`, but this has neither'\n )\n }\n\n addList(result.plugins)\n\n if (result.settings) {\n namespace.settings = extend(true, namespace.settings, result.settings)\n }\n }\n\n /**\n * @param {PluggableList | null | undefined} plugins\n * @returns {undefined}\n */\n function addList(plugins) {\n let index = -1\n\n if (plugins === null || plugins === undefined) {\n // Empty.\n } else if (Array.isArray(plugins)) {\n while (++index < plugins.length) {\n const thing = plugins[index]\n add(thing)\n }\n } else {\n throw new TypeError('Expected a list of plugins, not `' + plugins + '`')\n }\n }\n\n /**\n * @param {Plugin} plugin\n * @param {Array} parameters\n * @returns {undefined}\n */\n function addPlugin(plugin, parameters) {\n let index = -1\n let entryIndex = -1\n\n while (++index < attachers.length) {\n if (attachers[index][0] === plugin) {\n entryIndex = index\n break\n }\n }\n\n if (entryIndex === -1) {\n attachers.push([plugin, ...parameters])\n }\n // Only set if there was at least a `primary` value, otherwise we’d change\n // `arguments.length`.\n else if (parameters.length > 0) {\n let [primary, ...rest] = parameters\n const currentPrimary = attachers[entryIndex][1]\n if (isPlainObj(currentPrimary) && isPlainObj(primary)) {\n primary = extend(true, currentPrimary, primary)\n }\n\n attachers[entryIndex] = [plugin, primary, ...rest]\n }\n }\n }\n}\n\n// Note: this returns a *callable* instance.\n// That’s why it’s documented as a function.\n/**\n * Create a new processor.\n *\n * @example\n * This example shows how a new processor can be created (from `remark`) and linked\n * to **stdin**(4) and **stdout**(4).\n *\n * ```js\n * import process from 'node:process'\n * import concatStream from 'concat-stream'\n * import {remark} from 'remark'\n *\n * process.stdin.pipe(\n * concatStream(function (buf) {\n * process.stdout.write(String(remark().processSync(buf)))\n * })\n * )\n * ```\n *\n * @returns\n * New *unfrozen* processor (`processor`).\n *\n * This processor is configured to work the same as its ancestor.\n * When the descendant processor is configured in the future it does not\n * affect the ancestral processor.\n */\nexport const unified = new Processor().freeze()\n\n/**\n * Assert a parser is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Parser}\n */\nfunction assertParser(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `parser`')\n }\n}\n\n/**\n * Assert a compiler is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Compiler}\n */\nfunction assertCompiler(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `compiler`')\n }\n}\n\n/**\n * Assert the processor is not frozen.\n *\n * @param {string} name\n * @param {unknown} frozen\n * @returns {asserts frozen is false}\n */\nfunction assertUnfrozen(name, frozen) {\n if (frozen) {\n throw new Error(\n 'Cannot call `' +\n name +\n '` on a frozen processor.\\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.'\n )\n }\n}\n\n/**\n * Assert `node` is a unist node.\n *\n * @param {unknown} node\n * @returns {asserts node is Node}\n */\nfunction assertNode(node) {\n // `isPlainObj` unfortunately uses `any` instead of `unknown`.\n // type-coverage:ignore-next-line\n if (!isPlainObj(node) || typeof node.type !== 'string') {\n throw new TypeError('Expected node, got `' + node + '`')\n // Fine.\n }\n}\n\n/**\n * Assert that `complete` is `true`.\n *\n * @param {string} name\n * @param {string} asyncName\n * @param {unknown} complete\n * @returns {asserts complete is true}\n */\nfunction assertDone(name, asyncName, complete) {\n if (!complete) {\n throw new Error(\n '`' + name + '` finished async. Use `' + asyncName + '` instead'\n )\n }\n}\n\n/**\n * @param {Compatible | undefined} [value]\n * @returns {VFile}\n */\nfunction vfile(value) {\n return looksLikeAVFile(value) ? value : new VFile(value)\n}\n\n/**\n * @param {Compatible | undefined} [value]\n * @returns {value is VFile}\n */\nfunction looksLikeAVFile(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'message' in value &&\n 'messages' in value\n )\n}\n\n/**\n * @param {unknown} [value]\n * @returns {value is Value}\n */\nfunction looksLikeAValue(value) {\n return typeof value === 'string' || isUint8Array(value)\n}\n\n/**\n * Assert `value` is an `Uint8Array`.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Uint8Array}\n * Whether `value` is an `Uint8Array`.\n */\nfunction isUint8Array(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'byteLength' in value &&\n 'byteOffset' in value\n )\n}\n","// Register `Raw` in tree:\n/// \n\n/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Nodes} Nodes\n * @typedef {import('hast').Parents} Parents\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast-util-to-jsx-runtime').Components} JsxRuntimeComponents\n * @typedef {import('remark-rehype').Options} RemarkRehypeOptions\n * @typedef {import('unist-util-visit').BuildVisitor} Visitor\n * @typedef {import('unified').PluggableList} PluggableList\n */\n\n/**\n * @callback AllowElement\n * Filter elements.\n * @param {Readonly} element\n * Element to check.\n * @param {number} index\n * Index of `element` in `parent`.\n * @param {Readonly | undefined} parent\n * Parent of `element`.\n * @returns {boolean | null | undefined}\n * Whether to allow `element` (default: `false`).\n *\n * @typedef {Partial} Components\n * Map tag names to components.\n *\n * @typedef Deprecation\n * Deprecation.\n * @property {string} from\n * Old field.\n * @property {string} id\n * ID in readme.\n * @property {keyof Options} [to]\n * New field.\n *\n * @typedef Options\n * Configuration.\n * @property {AllowElement | null | undefined} [allowElement]\n * Filter elements (optional);\n * `allowedElements` / `disallowedElements` is used first.\n * @property {ReadonlyArray | null | undefined} [allowedElements]\n * Tag names to allow (default: all tag names);\n * cannot combine w/ `disallowedElements`.\n * @property {string | null | undefined} [children]\n * Markdown.\n * @property {string | null | undefined} [className]\n * Wrap in a `div` with this class name.\n * @property {Components | null | undefined} [components]\n * Map tag names to components.\n * @property {ReadonlyArray | null | undefined} [disallowedElements]\n * Tag names to disallow (default: `[]`);\n * cannot combine w/ `allowedElements`.\n * @property {PluggableList | null | undefined} [rehypePlugins]\n * List of rehype plugins to use.\n * @property {PluggableList | null | undefined} [remarkPlugins]\n * List of remark plugins to use.\n * @property {Readonly | null | undefined} [remarkRehypeOptions]\n * Options to pass through to `remark-rehype`.\n * @property {boolean | null | undefined} [skipHtml=false]\n * Ignore HTML in markdown completely (default: `false`).\n * @property {boolean | null | undefined} [unwrapDisallowed=false]\n * Extract (unwrap) what’s in disallowed elements (default: `false`);\n * normally when say `strong` is not allowed, it and it’s children are dropped,\n * with `unwrapDisallowed` the element itself is replaced by its children.\n * @property {UrlTransform | null | undefined} [urlTransform]\n * Change URLs (default: `defaultUrlTransform`)\n *\n * @callback UrlTransform\n * Transform all URLs.\n * @param {string} url\n * URL.\n * @param {string} key\n * Property name (example: `'href'`).\n * @param {Readonly} node\n * Node.\n * @returns {string | null | undefined}\n * Transformed URL (optional).\n */\n\nimport {unreachable} from 'devlop'\nimport {toJsxRuntime} from 'hast-util-to-jsx-runtime'\nimport {urlAttributes} from 'html-url-attributes'\n// @ts-expect-error: untyped.\nimport {Fragment, jsx, jsxs} from 'react/jsx-runtime'\nimport remarkParse from 'remark-parse'\nimport remarkRehype from 'remark-rehype'\nimport {unified} from 'unified'\nimport {visit} from 'unist-util-visit'\nimport {VFile} from 'vfile'\n\nconst changelog =\n 'https://github.com/remarkjs/react-markdown/blob/main/changelog.md'\n\n/** @type {PluggableList} */\nconst emptyPlugins = []\n/** @type {Readonly} */\nconst emptyRemarkRehypeOptions = {allowDangerousHtml: true}\nconst safeProtocol = /^(https?|ircs?|mailto|xmpp)$/i\n\n// Mutable because we `delete` any time it’s used and a message is sent.\n/** @type {ReadonlyArray>} */\nconst deprecations = [\n {from: 'astPlugins', id: 'remove-buggy-html-in-markdown-parser'},\n {from: 'allowDangerousHtml', id: 'remove-buggy-html-in-markdown-parser'},\n {\n from: 'allowNode',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n to: 'allowElement'\n },\n {\n from: 'allowedTypes',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n to: 'allowedElements'\n },\n {\n from: 'disallowedTypes',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n to: 'disallowedElements'\n },\n {from: 'escapeHtml', id: 'remove-buggy-html-in-markdown-parser'},\n {from: 'includeElementIndex', id: '#remove-includeelementindex'},\n {\n from: 'includeNodeIndex',\n id: 'change-includenodeindex-to-includeelementindex'\n },\n {from: 'linkTarget', id: 'remove-linktarget'},\n {from: 'plugins', id: 'change-plugins-to-remarkplugins', to: 'remarkPlugins'},\n {from: 'rawSourcePos', id: '#remove-rawsourcepos'},\n {from: 'renderers', id: 'change-renderers-to-components', to: 'components'},\n {from: 'source', id: 'change-source-to-children', to: 'children'},\n {from: 'sourcePos', id: '#remove-sourcepos'},\n {from: 'transformImageUri', id: '#add-urltransform', to: 'urlTransform'},\n {from: 'transformLinkUri', id: '#add-urltransform', to: 'urlTransform'}\n]\n\n/**\n * Component to render markdown.\n *\n * @param {Readonly} options\n * Props.\n * @returns {JSX.Element}\n * React element.\n */\nexport function Markdown(options) {\n const allowedElements = options.allowedElements\n const allowElement = options.allowElement\n const children = options.children || ''\n const className = options.className\n const components = options.components\n const disallowedElements = options.disallowedElements\n const rehypePlugins = options.rehypePlugins || emptyPlugins\n const remarkPlugins = options.remarkPlugins || emptyPlugins\n const remarkRehypeOptions = options.remarkRehypeOptions\n ? {...options.remarkRehypeOptions, ...emptyRemarkRehypeOptions}\n : emptyRemarkRehypeOptions\n const skipHtml = options.skipHtml\n const unwrapDisallowed = options.unwrapDisallowed\n const urlTransform = options.urlTransform || defaultUrlTransform\n\n const processor = unified()\n .use(remarkParse)\n .use(remarkPlugins)\n .use(remarkRehype, remarkRehypeOptions)\n .use(rehypePlugins)\n\n const file = new VFile()\n\n if (typeof children === 'string') {\n file.value = children\n } else {\n unreachable(\n 'Unexpected value `' +\n children +\n '` for `children` prop, expected `string`'\n )\n }\n\n if (allowedElements && disallowedElements) {\n unreachable(\n 'Unexpected combined `allowedElements` and `disallowedElements`, expected one or the other'\n )\n }\n\n for (const deprecation of deprecations) {\n if (Object.hasOwn(options, deprecation.from)) {\n unreachable(\n 'Unexpected `' +\n deprecation.from +\n '` prop, ' +\n (deprecation.to\n ? 'use `' + deprecation.to + '` instead'\n : 'remove it') +\n ' (see <' +\n changelog +\n '#' +\n deprecation.id +\n '> for more info)'\n )\n }\n }\n\n const mdastTree = processor.parse(file)\n /** @type {Nodes} */\n let hastTree = processor.runSync(mdastTree, file)\n\n // Wrap in `div` if there’s a class name.\n if (className) {\n hastTree = {\n type: 'element',\n tagName: 'div',\n properties: {className},\n // Assume no doctypes.\n children: /** @type {Array} */ (\n hastTree.type === 'root' ? hastTree.children : [hastTree]\n )\n }\n }\n\n visit(hastTree, transform)\n\n return toJsxRuntime(hastTree, {\n Fragment,\n components,\n ignoreInvalidStyle: true,\n jsx,\n jsxs,\n passKeys: true,\n passNode: true\n })\n\n /** @type {Visitor} */\n function transform(node, index, parent) {\n if (node.type === 'raw' && parent && typeof index === 'number') {\n if (skipHtml) {\n parent.children.splice(index, 1)\n } else {\n parent.children[index] = {type: 'text', value: node.value}\n }\n\n return index\n }\n\n if (node.type === 'element') {\n /** @type {string} */\n let key\n\n for (key in urlAttributes) {\n if (\n Object.hasOwn(urlAttributes, key) &&\n Object.hasOwn(node.properties, key)\n ) {\n const value = node.properties[key]\n const test = urlAttributes[key]\n if (test === null || test.includes(node.tagName)) {\n node.properties[key] = urlTransform(String(value || ''), key, node)\n }\n }\n }\n }\n\n if (node.type === 'element') {\n let remove = allowedElements\n ? !allowedElements.includes(node.tagName)\n : disallowedElements\n ? disallowedElements.includes(node.tagName)\n : false\n\n if (!remove && allowElement && typeof index === 'number') {\n remove = !allowElement(node, index, parent)\n }\n\n if (remove && parent && typeof index === 'number') {\n if (unwrapDisallowed && node.children) {\n parent.children.splice(index, 1, ...node.children)\n } else {\n parent.children.splice(index, 1)\n }\n\n return index\n }\n }\n }\n}\n\n/**\n * Make a URL safe.\n *\n * @satisfies {UrlTransform}\n * @param {string} value\n * URL.\n * @returns {string}\n * Safe URL.\n */\nexport function defaultUrlTransform(value) {\n // Same as:\n // \n // But without the `encode` part.\n const colon = value.indexOf(':')\n const questionMark = value.indexOf('?')\n const numberSign = value.indexOf('#')\n const slash = value.indexOf('/')\n\n if (\n // If there is no protocol, it’s relative.\n colon < 0 ||\n // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.\n (slash > -1 && colon > slash) ||\n (questionMark > -1 && colon > questionMark) ||\n (numberSign > -1 && colon > numberSign) ||\n // It is a protocol, it should be allowed.\n safeProtocol.test(value.slice(0, colon))\n ) {\n return value\n }\n\n return ''\n}\n","import type { Element, Comment, Literal, ElementContent, RootContent, Properties } from 'hast';\nimport type { RehypeAttrsOptions } from './index.js';\n\nexport const getURLParameters = (url: string = '') =>\n ((url.match(/([^?=&]+)(=([^&]*))/g) || []) as string[]).reduce(\n (a: Record, v: string) => (\n (a[v.slice(0, v.indexOf('=')) as keyof typeof a] = v.slice(v.indexOf('=') + 1)), a\n ),\n {}\n )\n\nexport const prevChild = (data: Literal[] = [], index: number): Comment | undefined => {\n let i = index;\n while (i > -1) {\n i--;\n if (!data[i]) return\n if ((data[i] && data[i].value && (data[i].value as string).replace(/(\\n|\\s)/g, '') !== '') || data[i].type !== 'text') {\n if (!/^rehype:/.test(data[i].value as string) || (data[i].type as string) !== 'comment') return;\n return data[i] as unknown as Comment;\n }\n }\n return;\n}\n\nexport const nextChild = (data: RootContent[] | ElementContent[] = [], index: number, tagName?: string, codeBlockParames?: boolean): ElementContent | undefined => {\n let i = index;\n while (i < data.length) {\n i++;\n if (tagName) {\n const element = data[i] as Literal & Element;\n if (element && element.value && (element.value as string).replace(/(\\n|\\s)/g, '') !== '' || data[i] && (data[i].type as string) === 'element') {\n return element.tagName === tagName ? element : undefined\n }\n } else {\n const element = data[i] as ElementContent & Literal;\n if (!element || element.type === 'element') return;\n if (element.type === 'text' && element.value.replace(/(\\n|\\s)/g, '') !== '') return;\n if (element.type && /^(comment|raw)$/ig.test(element.type)) {\n if (element.value && !/^rehype:/.test(element.value.replace(/^(\\s+)?/, '$2') || '')) {\n return\n };\n if (codeBlockParames) {\n const nextNode = nextChild(data, i, 'pre', codeBlockParames)\n if (nextNode) return;\n element.value = (element.value || '').replace(/^(\\n|\\s)+/, '')\n return element;\n } else {\n element.value = (element.value || '').replace(/^(\\n|\\s)+/, '')\n return element;\n }\n }\n }\n }\n return\n}\n\n/**\n * 获取代码注视的位置\n * @param data 数据\n * @param index 当前数据所在的位置\n * @returns 返回 当前参数数据 Object,`{}`\n */\nexport const getCommentObject = ({ value = '' }: Comment): Properties => {\n const param = getURLParameters(value.replace(/^/, '$1').replace(/^rehype:/, ''));\n Object.keys(param).forEach((keyName: string) => {\n if (param[keyName] === 'true') {\n param[keyName] = true;\n }\n if (param[keyName] === 'false') {\n param[keyName] = false;\n }\n if (typeof param[keyName] === 'string' && !/^0/.test(param[keyName] as string) && !isNaN(+param[keyName])) {\n param[keyName] = +param[keyName];\n }\n })\n return param;\n}\n\nexport type DataConfig = {\n 'data-config': Properties\n}\n\nexport const propertiesHandle = (defaultAttrs?: Properties | null, attrs?: Properties, type?: RehypeAttrsOptions['properties']): Properties | DataConfig => {\n if (type === 'string') {\n return { ...defaultAttrs, 'data-config': JSON.stringify({ ...attrs, rehyp: true })}\n } else if (type === 'attr') {\n return { ...defaultAttrs, ...attrs}\n }\n return { ...defaultAttrs, 'data-config': { ...attrs, rehyp: true }}\n}","import type { Plugin } from 'unified';\nimport type { Root, Element, Comment, Properties, Literal } from 'hast';\nimport { visit } from 'unist-util-visit';\nimport { propertiesHandle, nextChild, prevChild, getCommentObject } from './utils.js';\n\nexport type RehypeAttrsOptions = {\n /**\n * ## `data`\n * \n * ```markdown\n * text\n * \n * ```\n * 👇👇👇👇👇\n * ```html\n *

text

\n * ```\n * \n * ## `string`\n * \n * ```markdown\n * text\n * \n * ```\n * \n * 👇👇👇👇👇\n * \n * ```html\n *

text

\n * ```\n * \n * ## attr\n * \n * ```markdown\n * text\n * \n * ```\n * 👇👇👇👇👇\n * ```html\n *

text

\n * ```\n * @default `data`\n */\n properties?: 'data' | 'string' | 'attr';\n /**\n * Code block passing parameters\n */\n codeBlockParames?: boolean;\n}\n\nconst rehypeAttrs: Plugin<[RehypeAttrsOptions?], Root> = (options = {}) => {\n const { properties = 'data', codeBlockParames = true } = options;\n return (tree) => {\n visit(tree, 'element', (node, index, parent) => {\n if (codeBlockParames && node.tagName === 'pre' && node && Array.isArray(node.children) && parent && Array.isArray(parent.children) && parent.children.length > 1) {\n const firstChild = node.children[0] as Element;\n if (firstChild && firstChild.tagName === 'code' && typeof index === 'number') {\n const child = prevChild(parent.children as Literal[], index);\n if (child) {\n const attr = getCommentObject(child);\n if (Object.keys(attr).length > 0) {\n node.properties = { ...node.properties, ...{ 'data-type': 'rehyp' } }\n firstChild.properties = propertiesHandle(firstChild.properties, attr, properties) as Properties\n }\n }\n }\n }\n\n if (/^(em|strong|b|a|i|p|pre|kbd|blockquote|h(1|2|3|4|5|6)|code|table|img|del|ul|ol)$/.test(node.tagName) && parent && Array.isArray(parent.children) && typeof index === 'number') {\n const child = nextChild(parent.children, index, '', codeBlockParames)\n if (child) {\n const attr = getCommentObject(child as Comment)\n if (Object.keys(attr).length > 0) {\n node.properties = propertiesHandle(node.properties, attr, properties) as Properties\n }\n }\n }\n });\n }\n}\n\n\nexport default rehypeAttrs\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Parents} Parents\n */\n\n/**\n * @template Fn\n * @template Fallback\n * @typedef {Fn extends (value: any) => value is infer Thing ? Thing : Fallback} Predicate\n */\n\n/**\n * @callback Check\n * Check that an arbitrary value is an element.\n * @param {unknown} this\n * Context object (`this`) to call `test` with\n * @param {unknown} [element]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * Position of `element` in its parent.\n * @param {Parents | null | undefined} [parent]\n * Parent of `element`.\n * @returns {boolean}\n * Whether this is an element and passes a test.\n *\n * @typedef {Array | TestFunction | string | null | undefined} Test\n * Check for an arbitrary element.\n *\n * * when `string`, checks that the element has that tag name\n * * when `function`, see `TestFunction`\n * * when `Array`, checks if one of the subtests pass\n *\n * @callback TestFunction\n * Check if an element passes a test.\n * @param {unknown} this\n * The given context.\n * @param {Element} element\n * An element.\n * @param {number | undefined} [index]\n * Position of `element` in its parent.\n * @param {Parents | undefined} [parent]\n * Parent of `element`.\n * @returns {boolean | undefined | void}\n * Whether this element passes the test.\n *\n * Note: `void` is included until TS sees no return as `undefined`.\n */\n\n/**\n * Check if `element` is an `Element` and whether it passes the given test.\n *\n * @param element\n * Thing to check, typically `element`.\n * @param test\n * Check for a specific element.\n * @param index\n * Position of `element` in its parent.\n * @param parent\n * Parent of `element`.\n * @param context\n * Context object (`this`) to call `test` with.\n * @returns\n * Whether `element` is an `Element` and passes a test.\n * @throws\n * When an incorrect `test`, `index`, or `parent` is given; there is no error\n * thrown when `element` is not a node or not an element.\n */\nexport const isElement =\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * ((element: unknown, test: Condition, index?: number | null | undefined, parent?: Parents | null | undefined, context?: unknown) => element is Element & Predicate) &\n * ((element: unknown, test: Condition, index?: number | null | undefined, parent?: Parents | null | undefined, context?: unknown) => element is Element & {tagName: Condition}) &\n * ((element?: null | undefined) => false) &\n * ((element: unknown, test?: null | undefined, index?: number | null | undefined, parent?: Parents | null | undefined, context?: unknown) => element is Element) &\n * ((element: unknown, test?: Test, index?: number | null | undefined, parent?: Parents | null | undefined, context?: unknown) => boolean)\n * )}\n */\n (\n /**\n * @param {unknown} [element]\n * @param {Test | undefined} [test]\n * @param {number | null | undefined} [index]\n * @param {Parents | null | undefined} [parent]\n * @param {unknown} [context]\n * @returns {boolean}\n */\n // eslint-disable-next-line max-params\n function (element, test, index, parent, context) {\n const check = convertElement(test)\n\n if (\n index !== null &&\n index !== undefined &&\n (typeof index !== 'number' ||\n index < 0 ||\n index === Number.POSITIVE_INFINITY)\n ) {\n throw new Error('Expected positive finite `index`')\n }\n\n if (\n parent !== null &&\n parent !== undefined &&\n (!parent.type || !parent.children)\n ) {\n throw new Error('Expected valid `parent`')\n }\n\n if (\n (index === null || index === undefined) !==\n (parent === null || parent === undefined)\n ) {\n throw new Error('Expected both `index` and `parent`')\n }\n\n return looksLikeAnElement(element)\n ? check.call(context, element, index, parent)\n : false\n }\n )\n\n/**\n * Generate a check from a test.\n *\n * Useful if you’re going to test many nodes, for example when creating a\n * utility where something else passes a compatible test.\n *\n * The created function is a bit faster because it expects valid input only:\n * an `element`, `index`, and `parent`.\n *\n * @param test\n * A test for a specific element.\n * @returns\n * A check.\n */\nexport const convertElement =\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * ((test: Condition) => (element: unknown, index?: number | null | undefined, parent?: Parents | null | undefined, context?: unknown) => element is Element & Predicate) &\n * ((test: Condition) => (element: unknown, index?: number | null | undefined, parent?: Parents | null | undefined, context?: unknown) => element is Element & {tagName: Condition}) &\n * ((test?: null | undefined) => (element?: unknown, index?: number | null | undefined, parent?: Parents | null | undefined, context?: unknown) => element is Element) &\n * ((test?: Test) => Check)\n * )}\n */\n (\n /**\n * @param {Test | null | undefined} [test]\n * @returns {Check}\n */\n function (test) {\n if (test === null || test === undefined) {\n return element\n }\n\n if (typeof test === 'string') {\n return tagNameFactory(test)\n }\n\n // Assume array.\n if (typeof test === 'object') {\n return anyFactory(test)\n }\n\n if (typeof test === 'function') {\n return castFactory(test)\n }\n\n throw new Error('Expected function, string, or array as `test`')\n }\n )\n\n/**\n * Handle multiple tests.\n *\n * @param {Array} tests\n * @returns {Check}\n */\nfunction anyFactory(tests) {\n /** @type {Array} */\n const checks = []\n let index = -1\n\n while (++index < tests.length) {\n checks[index] = convertElement(tests[index])\n }\n\n return castFactory(any)\n\n /**\n * @this {unknown}\n * @type {TestFunction}\n */\n function any(...parameters) {\n let index = -1\n\n while (++index < checks.length) {\n if (checks[index].apply(this, parameters)) return true\n }\n\n return false\n }\n}\n\n/**\n * Turn a string into a test for an element with a certain type.\n *\n * @param {string} check\n * @returns {Check}\n */\nfunction tagNameFactory(check) {\n return castFactory(tagName)\n\n /**\n * @param {Element} element\n * @returns {boolean}\n */\n function tagName(element) {\n return element.tagName === check\n }\n}\n\n/**\n * Turn a custom test into a test for an element that passes that test.\n *\n * @param {TestFunction} testFunction\n * @returns {Check}\n */\nfunction castFactory(testFunction) {\n return check\n\n /**\n * @this {unknown}\n * @type {Check}\n */\n function check(value, index, parent) {\n return Boolean(\n looksLikeAnElement(value) &&\n testFunction.call(\n this,\n value,\n typeof index === 'number' ? index : undefined,\n parent || undefined\n )\n )\n }\n}\n\n/**\n * Make sure something is an element.\n *\n * @param {unknown} element\n * @returns {element is Element}\n */\nfunction element(element) {\n return Boolean(\n element &&\n typeof element === 'object' &&\n 'type' in element &&\n element.type === 'element' &&\n 'tagName' in element &&\n typeof element.tagName === 'string'\n )\n}\n\n/**\n * @param {unknown} value\n * @returns {value is Element}\n */\nfunction looksLikeAnElement(value) {\n return (\n value !== null &&\n typeof value === 'object' &&\n 'type' in value &&\n 'tagName' in value\n )\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('hast').Root} Root\n *\n * @typedef {import('hast-util-is-element').Test} Test\n */\n\n/**\n * @typedef {'after' | 'append' | 'before' | 'prepend' | 'wrap'} Behavior\n * Behavior.\n *\n * @callback Build\n * Generate content.\n * @param {Readonly} element\n * Current heading.\n * @returns {Array | ElementContent}\n * Content.\n *\n * @callback BuildProperties\n * Generate properties.\n * @param {Readonly} element\n * Current heading.\n * @returns {Properties}\n * Properties.\n *\n * @typedef Options\n * Configuration.\n * @property {Behavior | null | undefined} [behavior='prepend']\n * How to create links (default: `'prepend'`).\n * @property {Readonly | ReadonlyArray | Build | null | undefined} [content]\n * Content to insert in the link (default: if `'wrap'` then `undefined`,\n * otherwise ``);\n * if `behavior` is `'wrap'` and `Build` is passed, its result replaces the\n * existing content, otherwise the content is added after existing content.\n * @property {Readonly | ReadonlyArray | Build | null | undefined} [group]\n * Content to wrap the heading and link with, if `behavior` is `'after'` or\n * `'before'` (optional).\n * @property {Readonly | BuildProperties | null | undefined} [headingProperties]\n * Extra properties to set on the heading (optional).\n * @property {Readonly | BuildProperties | null | undefined} [properties]\n * Extra properties to set on the link when injecting (default:\n * `{ariaHidden: true, tabIndex: -1}` if `'append'` or `'prepend'`, otherwise\n * `undefined`).\n * @property {Test | null | undefined} [test]\n * Extra test for which headings are linked (optional).\n */\n\n/**\n * @template T\n * Kind.\n * @typedef {(\n * T extends Record\n * ? {-readonly [k in keyof T]: Cloneable}\n * : T\n * )} Cloneable\n * Deep clone.\n *\n * See: \n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {headingRank} from 'hast-util-heading-rank'\nimport {convertElement} from 'hast-util-is-element'\nimport {SKIP, visit} from 'unist-util-visit'\n\n/** @type {Element} */\nconst contentDefaults = {\n type: 'element',\n tagName: 'span',\n properties: {className: ['icon', 'icon-link']},\n children: []\n}\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Add links from headings back to themselves.\n *\n * ###### Notes\n *\n * This plugin only applies to headings with `id`s.\n * Use `rehype-slug` to generate `id`s for headings that don’t have them.\n *\n * Several behaviors are supported:\n *\n * * `'prepend'` (default) — inject link before the heading text\n * * `'append'` — inject link after the heading text\n * * `'wrap'` — wrap the whole heading text with the link\n * * `'before'` — insert link before the heading\n * * `'after'` — insert link after the heading\n *\n * @param {Readonly | null | undefined} [options]\n * Configuration (optional).\n * @returns\n * Transform.\n */\nexport default function rehypeAutolinkHeadings(options) {\n const settings = options || emptyOptions\n let properties = settings.properties\n const headingOroperties = settings.headingProperties\n const behavior = settings.behavior || 'prepend'\n const content = settings.content\n const group = settings.group\n const is = convertElement(settings.test)\n\n /** @type {import('unist-util-visit').Visitor} */\n let method\n\n if (behavior === 'after' || behavior === 'before') {\n method = around\n } else if (behavior === 'wrap') {\n method = wrap\n } else {\n method = inject\n\n if (!properties) {\n properties = {ariaHidden: 'true', tabIndex: -1}\n }\n }\n\n /**\n * Transform.\n *\n * @param {Root} tree\n * Tree.\n * @returns {undefined}\n * Nothing.\n */\n return function (tree) {\n visit(tree, 'element', function (node, index, parent) {\n if (headingRank(node) && node.properties.id && is(node, index, parent)) {\n Object.assign(node.properties, toProperties(headingOroperties, node))\n return method(node, index, parent)\n }\n })\n }\n\n /** @type {import('unist-util-visit').Visitor} */\n function inject(node) {\n const children = toChildren(content || contentDefaults, node)\n node.children[behavior === 'prepend' ? 'unshift' : 'push'](\n create(node, toProperties(properties, node), children)\n )\n\n return [SKIP]\n }\n\n /** @type {import('unist-util-visit').Visitor} */\n function around(node, index, parent) {\n /* c8 ignore next -- uncommon */\n if (typeof index !== 'number' || !parent) return\n\n const children = toChildren(content || contentDefaults, node)\n const link = create(node, toProperties(properties, node), children)\n let nodes = behavior === 'before' ? [link, node] : [node, link]\n\n if (group) {\n const grouping = toNode(group, node)\n\n if (grouping && !Array.isArray(grouping) && grouping.type === 'element') {\n grouping.children = nodes\n nodes = [grouping]\n }\n }\n\n parent.children.splice(index, 1, ...nodes)\n\n return [SKIP, index + nodes.length]\n }\n\n /** @type {import('unist-util-visit').Visitor} */\n function wrap(node) {\n /** @type {Array} */\n let before = node.children\n /** @type {Array | ElementContent} */\n let after = []\n\n if (typeof content === 'function') {\n before = []\n after = content(node)\n } else if (content) {\n after = clone(content)\n }\n\n node.children = [\n create(\n node,\n toProperties(properties, node),\n Array.isArray(after) ? [...before, ...after] : [...before, after]\n )\n ]\n\n return [SKIP]\n }\n}\n\n/**\n * Deep clone.\n *\n * @template T\n * Kind.\n * @param {T} thing\n * Thing to clone.\n * @returns {Cloneable}\n * Cloned thing.\n */\nfunction clone(thing) {\n // Cast because it’s mutable now.\n return /** @type {Cloneable} */ (structuredClone(thing))\n}\n\n/**\n * Create an `a`.\n *\n * @param {Readonly} node\n * Related heading.\n * @param {Properties | undefined} properties\n * Properties to set on the link.\n * @param {Array} children\n * Content.\n * @returns {Element}\n * Link.\n */\nfunction create(node, properties, children) {\n return {\n type: 'element',\n tagName: 'a',\n properties: {...properties, href: '#' + node.properties.id},\n children\n }\n}\n\n/**\n * Turn into children.\n *\n * @param {Readonly | ReadonlyArray | Build} value\n * Content.\n * @param {Readonly} node\n * Related heading.\n * @returns {Array}\n * Children.\n */\nfunction toChildren(value, node) {\n const result = toNode(value, node)\n return Array.isArray(result) ? result : [result]\n}\n\n/**\n * Turn into a node.\n *\n * @param {Readonly | ReadonlyArray | Build} value\n * Content.\n * @param {Readonly} node\n * Related heading.\n * @returns {Array | ElementContent}\n * Node.\n */\nfunction toNode(value, node) {\n if (typeof value === 'function') return value(node)\n return clone(value)\n}\n\n/**\n * Turn into properties.\n *\n * @param {Readonly | BuildProperties | null | undefined} value\n * Properties.\n * @param {Readonly} node\n * Related heading.\n * @returns {Properties}\n * Properties.\n */\nfunction toProperties(value, node) {\n if (typeof value === 'function') return value(node)\n return value ? clone(value) : {}\n}\n","import type { Plugin, Pluggable } from 'unified';\nimport type { Root, RootContent, Literal } from 'hast';\nimport { visit } from 'unist-util-visit';\n\n/**\n * Raw string of HTML embedded into HTML AST.\n */\nexport interface Raw extends Literal {\n /**\n * Node type.\n */\n type: 'raw'\n}\n\n// Register nodes in content.\ndeclare module 'hast' {\n interface RootContentMap {\n /**\n * Raw string of HTML embedded into HTML AST.\n */\n raw: Raw\n }\n interface ElementContentMap {\n /**\n * Raw string of HTML embedded into HTML AST.\n */\n raw: Raw\n }\n}\n\n\nexport type RehypeIgnoreOptions = {\n /**\n * Character to use for opening delimiter, by default `rehype:ignore:start`\n */\n openDelimiter?: string;\n /**\n * Character to use for closing delimiter, by default `rehype:ignore:end`\n */\n closeDelimiter?: string;\n}\n\nconst rehypeIgnore: Plugin<[RehypeIgnoreOptions?], Root> = (options = {}) => {\n const { openDelimiter = 'rehype:ignore:start', closeDelimiter = 'rehype:ignore:end' } = options;\n return (tree) => {\n visit(tree, (node: Root | RootContent, index, parent) => {\n if (node.type === 'element' || node.type === 'root') {\n // const start = node.children.findIndex((item) => item.type === 'comment' && item.value === openDelimiter);\n // const end = node.children.findIndex((item) => item.type === 'comment' && item.value === closeDelimiter);\n // if (start > -1 && end > -1) {\n // node.children = node.children.filter((_, idx) => idx < start || idx > end);\n // }\n let start = false;\n node.children = node.children.filter((item) => {\n if (item.type === 'raw' || item.type === 'comment') {\n let str = (item.value || '').trim();\n str = str.replace(/^/, '$1')\n if (str === openDelimiter) {\n start = true;\n return false;\n }\n if (str === closeDelimiter) {\n start = false;\n return false;\n }\n }\n \n return !start;\n })\n }\n });\n }\n}\n\nexport default rehypeIgnore;\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n */\n\n/**\n * @typedef {Record} Props\n * @typedef {null | undefined | string | Props | TestFunctionAnything | Array} Test\n * Check for an arbitrary node, unaware of TypeScript inferral.\n *\n * @callback TestFunctionAnything\n * Check if a node passes a test, unaware of TypeScript inferral.\n * @param {unknown} this\n * The given context.\n * @param {Node} node\n * A node.\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {boolean | void}\n * Whether this node passes the test.\n */\n\n/**\n * @template {Node} Kind\n * Node type.\n * @typedef {Kind['type'] | Partial | TestFunctionPredicate | Array | TestFunctionPredicate>} PredicateTest\n * Check for a node that can be inferred by TypeScript.\n */\n\n/**\n * Check if a node passes a certain test.\n *\n * @template {Node} Kind\n * Node type.\n * @callback TestFunctionPredicate\n * Complex test function for a node that can be inferred by TypeScript.\n * @param {Node} node\n * A node.\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {node is Kind}\n * Whether this node passes the test.\n */\n\n/**\n * @callback AssertAnything\n * Check that an arbitrary value is a node, unaware of TypeScript inferral.\n * @param {unknown} [node]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {boolean}\n * Whether this is a node and passes a test.\n */\n\n/**\n * Check if a node is a node and passes a certain node test.\n *\n * @template {Node} Kind\n * Node type.\n * @callback AssertPredicate\n * Check that an arbitrary value is a specific node, aware of TypeScript.\n * @param {unknown} [node]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {node is Kind}\n * Whether this is a node and passes a test.\n */\n\n/**\n * Check if `node` is a `Node` and whether it passes the given test.\n *\n * @param node\n * Thing to check, typically `Node`.\n * @param test\n * A check for a specific node.\n * @param index\n * The node’s position in its parent.\n * @param parent\n * The node’s parent.\n * @returns\n * Whether `node` is a node and passes a test.\n */\nexport const is =\n /**\n * @type {(\n * (() => false) &\n * ((node: unknown, test: PredicateTest, index: number, parent: Parent, context?: unknown) => node is Kind) &\n * ((node: unknown, test: PredicateTest, index?: null | undefined, parent?: null | undefined, context?: unknown) => node is Kind) &\n * ((node: unknown, test: Test, index: number, parent: Parent, context?: unknown) => boolean) &\n * ((node: unknown, test?: Test, index?: null | undefined, parent?: null | undefined, context?: unknown) => boolean)\n * )}\n */\n (\n /**\n * @param {unknown} [node]\n * @param {Test} [test]\n * @param {number | null | undefined} [index]\n * @param {Parent | null | undefined} [parent]\n * @param {unknown} [context]\n * @returns {boolean}\n */\n // eslint-disable-next-line max-params\n function is(node, test, index, parent, context) {\n const check = convert(test)\n\n if (\n index !== undefined &&\n index !== null &&\n (typeof index !== 'number' ||\n index < 0 ||\n index === Number.POSITIVE_INFINITY)\n ) {\n throw new Error('Expected positive finite index')\n }\n\n if (\n parent !== undefined &&\n parent !== null &&\n (!is(parent) || !parent.children)\n ) {\n throw new Error('Expected parent node')\n }\n\n if (\n (parent === undefined || parent === null) !==\n (index === undefined || index === null)\n ) {\n throw new Error('Expected both parent and index')\n }\n\n // @ts-expect-error Looks like a node.\n return node && node.type && typeof node.type === 'string'\n ? Boolean(check.call(context, node, index, parent))\n : false\n }\n )\n\n/**\n * Generate an assertion from a test.\n *\n * Useful if you’re going to test many nodes, for example when creating a\n * utility where something else passes a compatible test.\n *\n * The created function is a bit faster because it expects valid input only:\n * a `node`, `index`, and `parent`.\n *\n * @param test\n * * when nullish, checks if `node` is a `Node`.\n * * when `string`, works like passing `(node) => node.type === test`.\n * * when `function` checks if function passed the node is true.\n * * when `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n * * when `array`, checks if any one of the subtests pass.\n * @returns\n * An assertion.\n */\nexport const convert =\n /**\n * @type {(\n * ((test: PredicateTest) => AssertPredicate) &\n * ((test?: Test) => AssertAnything)\n * )}\n */\n (\n /**\n * @param {Test} [test]\n * @returns {AssertAnything}\n */\n function (test) {\n if (test === undefined || test === null) {\n return ok\n }\n\n if (typeof test === 'string') {\n return typeFactory(test)\n }\n\n if (typeof test === 'object') {\n return Array.isArray(test) ? anyFactory(test) : propsFactory(test)\n }\n\n if (typeof test === 'function') {\n return castFactory(test)\n }\n\n throw new Error('Expected function, string, or object as test')\n }\n )\n\n/**\n * @param {Array} tests\n * @returns {AssertAnything}\n */\nfunction anyFactory(tests) {\n /** @type {Array} */\n const checks = []\n let index = -1\n\n while (++index < tests.length) {\n checks[index] = convert(tests[index])\n }\n\n return castFactory(any)\n\n /**\n * @this {unknown}\n * @param {Array} parameters\n * @returns {boolean}\n */\n function any(...parameters) {\n let index = -1\n\n while (++index < checks.length) {\n if (checks[index].call(this, ...parameters)) return true\n }\n\n return false\n }\n}\n\n/**\n * Turn an object into a test for a node with a certain fields.\n *\n * @param {Props} check\n * @returns {AssertAnything}\n */\nfunction propsFactory(check) {\n return castFactory(all)\n\n /**\n * @param {Node} node\n * @returns {boolean}\n */\n function all(node) {\n /** @type {string} */\n let key\n\n for (key in check) {\n // @ts-expect-error: hush, it sure works as an index.\n if (node[key] !== check[key]) return false\n }\n\n return true\n }\n}\n\n/**\n * Turn a string into a test for a node with a certain type.\n *\n * @param {string} check\n * @returns {AssertAnything}\n */\nfunction typeFactory(check) {\n return castFactory(type)\n\n /**\n * @param {Node} node\n */\n function type(node) {\n return node && node.type === check\n }\n}\n\n/**\n * Turn a custom test into a test for a node that passes that test.\n *\n * @param {TestFunctionAnything} check\n * @returns {AssertAnything}\n */\nfunction castFactory(check) {\n return assertion\n\n /**\n * @this {unknown}\n * @param {unknown} node\n * @param {Array} parameters\n * @returns {boolean}\n */\n function assertion(node, ...parameters) {\n return Boolean(\n node &&\n typeof node === 'object' &&\n 'type' in node &&\n // @ts-expect-error: fine.\n Boolean(check.call(this, node, ...parameters))\n )\n }\n}\n\nfunction ok() {\n return true\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n */\n\n/**\n * @typedef {boolean | 'skip'} Action\n * Union of the action types.\n *\n * @typedef {number} Index\n * Move to the sibling at `index` next (after node itself is completely\n * traversed).\n *\n * Useful if mutating the tree, such as removing the node the visitor is\n * currently on, or any of its previous siblings.\n * Results less than 0 or greater than or equal to `children.length` stop\n * traversing the parent.\n *\n * @typedef {[(Action | null | undefined | void)?, (Index | null | undefined)?]} ActionTuple\n * List with one or two values, the first an action, the second an index.\n *\n * @typedef {Action | ActionTuple | Index | null | undefined | void} VisitorResult\n * Any value that can be returned from a visitor.\n */\n\n/**\n * @template {Node} [Visited=Node]\n * Visited node type.\n * @template {Parent} [Ancestor=Parent]\n * Ancestor type.\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform the parent of node (the last of `ancestors`).\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of an ancestor still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Array} ancestors\n * Ancestors of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * Tree type.\n * @template {Test} [Check=string]\n * Test type.\n * @typedef {Visitor, Check>, Extract, Parent>>} BuildVisitor\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parents`.\n */\n\nimport {convert} from 'unist-util-is'\nimport {color} from './color.js'\n\n/**\n * Continue traversing as normal.\n */\nexport const CONTINUE = true\n\n/**\n * Stop traversing immediately.\n */\nexport const EXIT = false\n\n/**\n * Do not traverse this node’s children.\n */\nexport const SKIP = 'skip'\n\n/**\n * Visit nodes, with ancestral information.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @param tree\n * Tree to traverse.\n * @param test\n * `unist-util-is`-compatible test\n * @param visitor\n * Handle each node.\n * @param reverse\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns\n * Nothing.\n */\nexport const visitParents =\n /**\n * @type {(\n * ((tree: Tree, test: Check, visitor: BuildVisitor, reverse?: boolean | null | undefined) => void) &\n * ((tree: Tree, visitor: BuildVisitor, reverse?: boolean | null | undefined) => void)\n * )}\n */\n (\n /**\n * @param {Node} tree\n * @param {Test} test\n * @param {Visitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {void}\n */\n function (tree, test, visitor, reverse) {\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n // @ts-expect-error no visitor given, so `visitor` is test.\n visitor = test\n test = null\n }\n\n const is = convert(test)\n const step = reverse ? -1 : 1\n\n factory(tree, undefined, [])()\n\n /**\n * @param {Node} node\n * @param {number | undefined} index\n * @param {Array} parents\n */\n function factory(node, index, parents) {\n /** @type {Record} */\n // @ts-expect-error: hush\n const value = node && typeof node === 'object' ? node : {}\n\n if (typeof value.type === 'string') {\n const name =\n // `hast`\n typeof value.tagName === 'string'\n ? value.tagName\n : // `xast`\n typeof value.name === 'string'\n ? value.name\n : undefined\n\n Object.defineProperty(visit, 'name', {\n value:\n 'node (' + color(node.type + (name ? '<' + name + '>' : '')) + ')'\n })\n }\n\n return visit\n\n function visit() {\n /** @type {ActionTuple} */\n let result = []\n /** @type {ActionTuple} */\n let subresult\n /** @type {number} */\n let offset\n /** @type {Array} */\n let grandparents\n\n if (!test || is(node, index, parents[parents.length - 1] || null)) {\n result = toResult(visitor(node, parents))\n\n if (result[0] === EXIT) {\n return result\n }\n }\n\n // @ts-expect-error looks like a parent.\n if (node.children && result[0] !== SKIP) {\n // @ts-expect-error looks like a parent.\n offset = (reverse ? node.children.length : -1) + step\n // @ts-expect-error looks like a parent.\n grandparents = parents.concat(node)\n\n // @ts-expect-error looks like a parent.\n while (offset > -1 && offset < node.children.length) {\n // @ts-expect-error looks like a parent.\n subresult = factory(node.children[offset], offset, grandparents)()\n\n if (subresult[0] === EXIT) {\n return subresult\n }\n\n offset =\n typeof subresult[1] === 'number' ? subresult[1] : offset + step\n }\n }\n\n return result\n }\n }\n }\n )\n\n/**\n * Turn a return value into a clean result.\n *\n * @param {VisitorResult} value\n * Valid return values from visitors.\n * @returns {ActionTuple}\n * Clean result.\n */\nfunction toResult(value) {\n if (Array.isArray(value)) {\n return value\n }\n\n if (typeof value === 'number') {\n return [CONTINUE, value]\n }\n\n return [value]\n}\n","/**\n * @fileoverview\n * Get the plain-text value of a hast node.\n * @longdescription\n * ## Use\n *\n * ```js\n * import {h} from 'hastscript'\n * import {toString} from 'hast-util-to-string'\n *\n * toString(h('p', 'Alpha'))\n * //=> 'Alpha'\n * toString(h('div', [h('b', 'Bold'), ' and ', h('i', 'italic'), '.']))\n * //=> 'Bold and italic.'\n * ```\n *\n * ## API\n *\n * ### `toString(node)`\n *\n * Transform a node to a string.\n */\n\n/**\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Element} Element\n * @typedef {Root|Root['children'][number]} Node\n */\n\n/**\n * Get the plain-text value of a hast node.\n *\n * @param {Node} node\n * @returns {string}\n */\nexport function toString(node) {\n // “The concatenation of data of all the Text node descendants of the context\n // object, in tree order.”\n if ('children' in node) {\n return all(node)\n }\n\n // “Context object’s data.”\n return 'value' in node ? node.value : ''\n}\n\n/**\n * @param {Node} node\n * @returns {string}\n */\nfunction one(node) {\n if (node.type === 'text') {\n return node.value\n }\n\n return 'children' in node ? all(node) : ''\n}\n\n/**\n * @param {Root|Element} node\n * @returns {string}\n */\nfunction all(node) {\n let index = -1\n /** @type {string[]} */\n const result = []\n\n while (++index < node.children.length) {\n result[index] = one(node.children[index])\n }\n\n return result.join('')\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n */\n\n/**\n * @typedef {Record} Props\n * @typedef {null | undefined | string | Props | TestFunctionAnything | Array} Test\n * Check for an arbitrary node, unaware of TypeScript inferral.\n *\n * @callback TestFunctionAnything\n * Check if a node passes a test, unaware of TypeScript inferral.\n * @param {unknown} this\n * The given context.\n * @param {Node} node\n * A node.\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {boolean | void}\n * Whether this node passes the test.\n */\n\n/**\n * @template {Node} Kind\n * Node type.\n * @typedef {Kind['type'] | Partial | TestFunctionPredicate | Array | TestFunctionPredicate>} PredicateTest\n * Check for a node that can be inferred by TypeScript.\n */\n\n/**\n * Check if a node passes a certain test.\n *\n * @template {Node} Kind\n * Node type.\n * @callback TestFunctionPredicate\n * Complex test function for a node that can be inferred by TypeScript.\n * @param {Node} node\n * A node.\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {node is Kind}\n * Whether this node passes the test.\n */\n\n/**\n * @callback AssertAnything\n * Check that an arbitrary value is a node, unaware of TypeScript inferral.\n * @param {unknown} [node]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {boolean}\n * Whether this is a node and passes a test.\n */\n\n/**\n * Check if a node is a node and passes a certain node test.\n *\n * @template {Node} Kind\n * Node type.\n * @callback AssertPredicate\n * Check that an arbitrary value is a specific node, aware of TypeScript.\n * @param {unknown} [node]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {node is Kind}\n * Whether this is a node and passes a test.\n */\n\n/**\n * Check if `node` is a `Node` and whether it passes the given test.\n *\n * @param node\n * Thing to check, typically `Node`.\n * @param test\n * A check for a specific node.\n * @param index\n * The node’s position in its parent.\n * @param parent\n * The node’s parent.\n * @returns\n * Whether `node` is a node and passes a test.\n */\nexport const is =\n /**\n * @type {(\n * (() => false) &\n * ((node: unknown, test: PredicateTest, index: number, parent: Parent, context?: unknown) => node is Kind) &\n * ((node: unknown, test: PredicateTest, index?: null | undefined, parent?: null | undefined, context?: unknown) => node is Kind) &\n * ((node: unknown, test: Test, index: number, parent: Parent, context?: unknown) => boolean) &\n * ((node: unknown, test?: Test, index?: null | undefined, parent?: null | undefined, context?: unknown) => boolean)\n * )}\n */\n (\n /**\n * @param {unknown} [node]\n * @param {Test} [test]\n * @param {number | null | undefined} [index]\n * @param {Parent | null | undefined} [parent]\n * @param {unknown} [context]\n * @returns {boolean}\n */\n // eslint-disable-next-line max-params\n function is(node, test, index, parent, context) {\n const check = convert(test)\n\n if (\n index !== undefined &&\n index !== null &&\n (typeof index !== 'number' ||\n index < 0 ||\n index === Number.POSITIVE_INFINITY)\n ) {\n throw new Error('Expected positive finite index')\n }\n\n if (\n parent !== undefined &&\n parent !== null &&\n (!is(parent) || !parent.children)\n ) {\n throw new Error('Expected parent node')\n }\n\n if (\n (parent === undefined || parent === null) !==\n (index === undefined || index === null)\n ) {\n throw new Error('Expected both parent and index')\n }\n\n // @ts-expect-error Looks like a node.\n return node && node.type && typeof node.type === 'string'\n ? Boolean(check.call(context, node, index, parent))\n : false\n }\n )\n\n/**\n * Generate an assertion from a test.\n *\n * Useful if you’re going to test many nodes, for example when creating a\n * utility where something else passes a compatible test.\n *\n * The created function is a bit faster because it expects valid input only:\n * a `node`, `index`, and `parent`.\n *\n * @param test\n * * when nullish, checks if `node` is a `Node`.\n * * when `string`, works like passing `(node) => node.type === test`.\n * * when `function` checks if function passed the node is true.\n * * when `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n * * when `array`, checks if any one of the subtests pass.\n * @returns\n * An assertion.\n */\nexport const convert =\n /**\n * @type {(\n * ((test: PredicateTest) => AssertPredicate) &\n * ((test?: Test) => AssertAnything)\n * )}\n */\n (\n /**\n * @param {Test} [test]\n * @returns {AssertAnything}\n */\n function (test) {\n if (test === undefined || test === null) {\n return ok\n }\n\n if (typeof test === 'string') {\n return typeFactory(test)\n }\n\n if (typeof test === 'object') {\n return Array.isArray(test) ? anyFactory(test) : propsFactory(test)\n }\n\n if (typeof test === 'function') {\n return castFactory(test)\n }\n\n throw new Error('Expected function, string, or object as test')\n }\n )\n\n/**\n * @param {Array} tests\n * @returns {AssertAnything}\n */\nfunction anyFactory(tests) {\n /** @type {Array} */\n const checks = []\n let index = -1\n\n while (++index < tests.length) {\n checks[index] = convert(tests[index])\n }\n\n return castFactory(any)\n\n /**\n * @this {unknown}\n * @param {Array} parameters\n * @returns {boolean}\n */\n function any(...parameters) {\n let index = -1\n\n while (++index < checks.length) {\n if (checks[index].call(this, ...parameters)) return true\n }\n\n return false\n }\n}\n\n/**\n * Turn an object into a test for a node with a certain fields.\n *\n * @param {Props} check\n * @returns {AssertAnything}\n */\nfunction propsFactory(check) {\n return castFactory(all)\n\n /**\n * @param {Node} node\n * @returns {boolean}\n */\n function all(node) {\n /** @type {string} */\n let key\n\n for (key in check) {\n // @ts-expect-error: hush, it sure works as an index.\n if (node[key] !== check[key]) return false\n }\n\n return true\n }\n}\n\n/**\n * Turn a string into a test for a node with a certain type.\n *\n * @param {string} check\n * @returns {AssertAnything}\n */\nfunction typeFactory(check) {\n return castFactory(type)\n\n /**\n * @param {Node} node\n */\n function type(node) {\n return node && node.type === check\n }\n}\n\n/**\n * Turn a custom test into a test for a node that passes that test.\n *\n * @param {TestFunctionAnything} check\n * @returns {AssertAnything}\n */\nfunction castFactory(check) {\n return assertion\n\n /**\n * @this {unknown}\n * @param {unknown} node\n * @param {Array} parameters\n * @returns {boolean}\n */\n function assertion(node, ...parameters) {\n return Boolean(\n node &&\n typeof node === 'object' &&\n 'type' in node &&\n // @ts-expect-error: fine.\n Boolean(check.call(this, node, ...parameters))\n )\n }\n}\n\nfunction ok() {\n return true\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n *\n * @typedef Options\n * Configuration (optional).\n * @property {boolean | null | undefined} [cascade=true]\n * Whether to drop parent nodes if they had children, but all their children\n * were filtered out.\n */\n\nimport {convert} from 'unist-util-is'\n\nconst own = {}.hasOwnProperty\n\n/**\n * Create a new `tree` of copies of all nodes that pass `test`.\n *\n * The tree is walked in *preorder* (NLR), visiting the node itself, then its\n * head, etc.\n *\n * @param tree\n * Tree to filter.\n * @param options\n * Configuration (optional).\n * @param test\n * `unist-util-is` compatible test.\n * @returns\n * New filtered tree.\n *\n * `null` is returned if `tree` itself didn’t pass the test, or is cascaded\n * away.\n */\nexport const filter =\n /**\n * @type {(\n * ((node: Tree, options: Options | null | undefined, test: Check | null | undefined) => import('./complex-types.js').Matches) &\n * ((node: Tree, test: Check) => import('./complex-types.js').Matches) &\n * ((node: Tree, options?: Options | null | undefined) => Tree)\n * )}\n */\n (\n /**\n * @param {Node} tree\n * @param {Options | Test | null | undefined} [options]\n * @param {Test | null | undefined} [test]\n * @returns {Node | null}\n */\n function (tree, options, test) {\n const is = convert(test || options)\n /** @type {boolean | null | undefined} */\n const cascadeRaw =\n options && typeof options === 'object' && 'cascade' in options\n ? /** @type {boolean | null | undefined} */ (options.cascade)\n : undefined\n const cascade =\n cascadeRaw === undefined || cascadeRaw === null ? true : cascadeRaw\n\n return preorder(tree)\n\n /**\n * @param {Node} node\n * Current node.\n * @param {number | undefined} [index]\n * Index of `node` in `parent`.\n * @param {Parent | undefined} [parent]\n * Parent node.\n * @returns {Node | null}\n * Shallow copy of `node`.\n */\n function preorder(node, index, parent) {\n /** @type {Array} */\n const children = []\n\n if (!is(node, index, parent)) return null\n\n // @ts-expect-error: Looks like a parent.\n if (node.children) {\n let childIndex = -1\n\n // @ts-expect-error Looks like a parent.\n while (++childIndex < node.children.length) {\n // @ts-expect-error Looks like a parent.\n const result = preorder(node.children[childIndex], childIndex, node)\n\n if (result) {\n children.push(result)\n }\n }\n\n // @ts-expect-error Looks like a parent.\n if (cascade && node.children.length > 0 && children.length === 0)\n return null\n }\n\n // Create a shallow clone, using the new children.\n /** @type {typeof node} */\n // @ts-expect-error all the fields will be copied over.\n const next = {}\n /** @type {string} */\n let key\n\n for (key in node) {\n if (own.call(node, key)) {\n // @ts-expect-error: Looks like a record.\n next[key] = key === 'children' ? children : node[key]\n }\n }\n\n return next\n }\n }\n )\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Root} Root\n * @typedef Options options\n * Configuration.\n * @property {boolean} [showLineNumbers]\n * Set `showLineNumbers` to `true` to always display line number\n * @property {boolean} [ignoreMissing]\n * Set `ignoreMissing` to `true` to ignore unsupported languages and line highlighting when no language is specified\n * @property {string} [defaultLanguage]\n * Uses the specified language as the default if none is specified. Takes precedence over `ignoreMissing`.\n * Note: The language must be registered with refractor.\n */\n\nimport { visit } from 'unist-util-visit'\nimport { toString } from 'hast-util-to-string'\nimport { filter } from 'unist-util-filter'\nimport rangeParser from 'parse-numeric-range'\n\nconst getLanguage = (node) => {\n const className = node.properties.className\n //@ts-ignore\n for (const classListItem of className) {\n if (classListItem.slice(0, 9) === 'language-') {\n return classListItem.slice(9).toLowerCase()\n }\n }\n return null\n}\n\n/**\n * @param {import('refractor/lib/core').Refractor} refractor\n * @param {string} defaultLanguage\n * @return {void}\n */\nconst checkIfLanguageIsRegistered = (refractor, defaultLanguage) => {\n if (defaultLanguage && !refractor.registered(defaultLanguage)) {\n throw new Error(`The default language \"${defaultLanguage}\" is not registered with refractor.`)\n }\n}\n\n/**\n * Create a closure that determines if we have to highlight the given index\n *\n * @param {string} meta\n * @return { (index:number) => boolean }\n */\nconst calculateLinesToHighlight = (meta) => {\n const RE = /{([\\d,-]+)}/\n // Remove space between {} e.g. {1, 3}\n const parsedMeta = meta\n .split(',')\n .map((str) => str.trim())\n .join()\n if (RE.test(parsedMeta)) {\n const strlineNumbers = RE.exec(parsedMeta)[1]\n const lineNumbers = rangeParser(strlineNumbers)\n return (index) => lineNumbers.includes(index + 1)\n } else {\n return () => false\n }\n}\n\n/**\n * Check if we want to start the line numbering from a given number or 1\n * showLineNumbers=5, will start the numbering from 5\n * @param {string} meta\n * @returns {number}\n */\nconst calculateStartingLine = (meta) => {\n const RE = /showLineNumbers=(?\\d+)/i\n // pick the line number after = using a named capturing group\n if (RE.test(meta)) {\n const {\n groups: { lines },\n } = RE.exec(meta)\n return Number(lines)\n }\n return 1\n}\n\n/**\n * Create container AST for node lines\n *\n * @param {number} number\n * @return {Element[]}\n */\nconst createLineNodes = (number) => {\n const a = new Array(number)\n for (let i = 0; i < number; i++) {\n a[i] = {\n type: 'element',\n tagName: 'span',\n properties: { className: [] },\n children: [],\n }\n }\n return a\n}\n\n/**\n * Split multiline text nodes into individual nodes with positioning\n * Add a node start and end line position information for each text node\n *\n * @return { (ast:Element['children']) => Element['children'] }\n *\n */\nconst addNodePositionClosure = () => {\n let startLineNum = 1\n /**\n * @param {Element['children']} ast\n * @return {Element['children']}\n */\n const addNodePosition = (ast) => {\n return ast.reduce((result, node) => {\n if (node.type === 'text') {\n const value = /** @type {string} */ (node.value)\n const numLines = (value.match(/\\n/g) || '').length\n if (numLines === 0) {\n node.position = {\n // column: 1 is needed to avoid error with @next/mdx\n // https://github.com/timlrx/rehype-prism-plus/issues/44\n start: { line: startLineNum, column: 1 },\n end: { line: startLineNum, column: 1 },\n }\n result.push(node)\n } else {\n const lines = value.split('\\n')\n for (const [i, line] of lines.entries()) {\n result.push({\n type: 'text',\n value: i === lines.length - 1 ? line : line + '\\n',\n position: {\n start: { line: startLineNum + i, column: 1 },\n end: { line: startLineNum + i, column: 1 },\n },\n })\n }\n }\n startLineNum = startLineNum + numLines\n\n return result\n }\n\n if (Object.prototype.hasOwnProperty.call(node, 'children')) {\n const initialLineNum = startLineNum\n // @ts-ignore\n node.children = addNodePosition(node.children, startLineNum)\n result.push(node)\n node.position = {\n start: { line: initialLineNum, column: 1 },\n end: { line: startLineNum, column: 1 },\n }\n return result\n }\n\n result.push(node)\n return result\n }, [])\n }\n return addNodePosition\n}\n\n/**\n * Rehype prism plugin generator that highlights code blocks with refractor (prismjs)\n *\n * Pass in your own refractor object with the required languages registered:\n * https://github.com/wooorm/refractor#refractorregistersyntax\n *\n * @param {import('refractor/lib/core').Refractor} refractor\n * @return {import('unified').Plugin<[Options?], Root>}\n */\nconst rehypePrismGenerator = (refractor) => {\n return (options = {}) => {\n checkIfLanguageIsRegistered(refractor, options.defaultLanguage)\n return (tree) => {\n visit(tree, 'element', visitor)\n }\n\n /**\n * @param {Element} node\n * @param {number} index\n * @param {Element} parent\n */\n function visitor(node, index, parent) {\n if (!parent || parent.tagName !== 'pre' || node.tagName !== 'code') {\n return\n }\n\n let meta = /** @type {string} */ (node?.data?.meta || node?.properties?.metastring || '')\n // Coerce className to array\n if (node.properties.className) {\n if (typeof node.properties.className === 'boolean') {\n node.properties.className = []\n } else if (!Array.isArray(node.properties.className)) {\n node.properties.className = [node.properties.className]\n }\n } else {\n node.properties.className = []\n }\n\n let lang = getLanguage(node)\n // If no language is set on the code block, use defaultLanguage if specified\n if (!lang && options.defaultLanguage) {\n lang = options.defaultLanguage\n node.properties.className.push(`language-${lang}`)\n }\n node.properties.className.push('code-highlight')\n\n /** @type {Element} */\n let refractorRoot\n\n // Syntax highlight\n if (lang) {\n try {\n let rootLang\n if (lang?.includes('diff-')) {\n rootLang = lang.split('-')[1]\n } else {\n rootLang = lang\n }\n // @ts-ignore\n refractorRoot = refractor.highlight(toString(node), rootLang)\n // @ts-ignore className is already an array\n parent.properties.className = (parent.properties.className || []).concat(\n 'language-' + rootLang\n )\n } catch (err) {\n if (options.ignoreMissing && /Unknown language/.test(err.message)) {\n refractorRoot = node\n } else {\n throw err\n }\n }\n } else {\n refractorRoot = node\n }\n\n refractorRoot.children = addNodePositionClosure()(refractorRoot.children)\n\n // Add position info to root\n if (refractorRoot.children.length > 0) {\n refractorRoot.position = {\n start: { line: refractorRoot.children[0].position.start.line, column: 0 },\n end: {\n line: refractorRoot.children[refractorRoot.children.length - 1].position.end.line,\n column: 0,\n },\n }\n } else {\n refractorRoot.position = {\n start: { line: 0, column: 0 },\n end: { line: 0, column: 0 },\n }\n }\n\n const shouldHighlightLine = calculateLinesToHighlight(meta)\n const startingLineNumber = calculateStartingLine(meta)\n const codeLineArray = createLineNodes(refractorRoot.position.end.line)\n\n const falseShowLineNumbersStr = [\n 'showlinenumbers=false',\n 'showlinenumbers=\"false\"',\n 'showlinenumbers={false}',\n ]\n for (const [i, line] of codeLineArray.entries()) {\n // Default class name for each line\n line.properties.className = ['code-line']\n\n // Syntax highlight\n const treeExtract = filter(\n refractorRoot,\n (node) => node.position.start.line <= i + 1 && node.position.end.line >= i + 1\n )\n line.children = treeExtract.children\n\n // Line number\n if (\n (meta.toLowerCase().includes('showLineNumbers'.toLowerCase()) ||\n options.showLineNumbers) &&\n !falseShowLineNumbersStr.some((str) => meta.toLowerCase().includes(str))\n ) {\n line.properties.line = [(i + startingLineNumber).toString()]\n line.properties.className.push('line-number')\n }\n\n // Line highlight\n if (shouldHighlightLine(i)) {\n line.properties.className.push('highlight-line')\n }\n\n // Diff classes\n if (\n (lang === 'diff' || lang?.includes('diff-')) &&\n toString(line).substring(0, 1) === '-'\n ) {\n line.properties.className.push('deleted')\n } else if (\n (lang === 'diff' || lang?.includes('diff-')) &&\n toString(line).substring(0, 1) === '+'\n ) {\n line.properties.className.push('inserted')\n }\n }\n\n // Remove possible trailing line when splitting by \\n which results in empty array\n if (\n codeLineArray.length > 0 &&\n toString(codeLineArray[codeLineArray.length - 1]).trim() === ''\n ) {\n codeLineArray.pop()\n }\n\n node.children = codeLineArray\n }\n }\n}\n\nexport default rehypePrismGenerator\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n */\n\n/**\n * Check if `Child` can be a child of `Ancestor`.\n *\n * Returns the ancestor when `Child` can be a child of `Ancestor`, or returns\n * `never`.\n *\n * @template {Node} Ancestor\n * Node type.\n * @template {Node} Child\n * Node type.\n * @typedef {(\n * Ancestor extends Parent\n * ? Child extends Ancestor['children'][number]\n * ? Ancestor\n * : never\n * : never\n * )} ParentsOf\n */\n\n/**\n * @template {Node} [Visited=Node]\n * Visited node type.\n * @template {Parent} [Ancestor=Parent]\n * Ancestor type.\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform `parent`.\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of `parent` still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Visited extends Node ? number | null : never} index\n * Index of `node` in `parent`.\n * @param {Ancestor extends Node ? Ancestor | null : never} parent\n * Parent of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n */\n\n/**\n * Build a typed `Visitor` function from a node and all possible parents.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n *\n * @template {Node} Visited\n * Node type.\n * @template {Parent} Ancestor\n * Parent type.\n * @typedef {Visitor>} BuildVisitorFromMatch\n */\n\n/**\n * Build a typed `Visitor` function from a list of descendants and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n *\n * @template {Node} Descendant\n * Node type.\n * @template {Test} Check\n * Test type.\n * @typedef {(\n * BuildVisitorFromMatch<\n * import('unist-util-visit-parents/complex-types.js').Matches,\n * Extract\n * >\n * )} BuildVisitorFromDescendants\n */\n\n/**\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n *\n * @template {Node} [Tree=Node]\n * Node type.\n * @template {Test} [Check=string]\n * Test type.\n * @typedef {(\n * BuildVisitorFromDescendants<\n * import('unist-util-visit-parents/complex-types.js').InclusiveDescendant,\n * Check\n * >\n * )} BuildVisitor\n */\n\nimport {visitParents} from 'unist-util-visit-parents'\n\n/**\n * Visit nodes.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @param tree\n * Tree to traverse.\n * @param test\n * `unist-util-is`-compatible test\n * @param visitor\n * Handle each node.\n * @param reverse\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns\n * Nothing.\n */\nexport const visit =\n /**\n * @type {(\n * ((tree: Tree, test: Check, visitor: BuildVisitor, reverse?: boolean | null | undefined) => void) &\n * ((tree: Tree, visitor: BuildVisitor, reverse?: boolean | null | undefined) => void)\n * )}\n */\n (\n /**\n * @param {Node} tree\n * @param {Test} test\n * @param {Visitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {void}\n */\n function (tree, test, visitor, reverse) {\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n visitor = test\n test = null\n }\n\n visitParents(tree, test, overload, reverse)\n\n /**\n * @param {Node} node\n * @param {Array} parents\n */\n function overload(node, parents) {\n const parent = parents[parents.length - 1]\n return visitor(\n node,\n parent ? parent.children.indexOf(node) : null,\n parent\n )\n }\n }\n )\n\nexport {CONTINUE, EXIT, SKIP} from 'unist-util-visit-parents'\n","import { refractor as refractorAll } from 'refractor/lib/all.js'\nimport rehypePrismGenerator from './generator.js'\n\n/**\n * Rehype prism plugin that highlights code blocks with refractor (prismjs)\n * This supports all the languages and should be used on the server side.\n *\n * Consider using rehypePrismCommon or rehypePrismGenerator to generate a plugin\n * that supports your required languages.\n */\nconst rehypePrismAll = rehypePrismGenerator(refractorAll)\n\nexport default rehypePrismAll\n","import { refractor as refractorCommon } from 'refractor/lib/common.js'\nimport rehypePrismGenerator from './generator.js'\n\n/**\n * Rehype prism plugin that highlights code blocks with refractor (prismjs)\n * Supported languages: https://github.com/wooorm/refractor#data\n *\n * Consider using rehypePrismGenerator to generate a plugin\n * that supports your required languages.\n */\nconst rehypePrismCommon = rehypePrismGenerator(refractorCommon)\n\nexport default rehypePrismCommon\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n */\n\n/**\n * @template {string} SimpleSelector\n * Selector type.\n * @template {string} DefaultTagName\n * Default tag name.\n * @typedef {(\n * SimpleSelector extends ''\n * ? DefaultTagName\n * : SimpleSelector extends `${infer TagName}.${infer Rest}`\n * ? ExtractTagName\n * : SimpleSelector extends `${infer TagName}#${infer Rest}`\n * ? ExtractTagName\n * : SimpleSelector extends string\n * ? SimpleSelector\n * : DefaultTagName\n * )} ExtractTagName\n * Extract tag name from a simple selector.\n */\n\nconst search = /[#.]/g\n\n/**\n * Create a hast element from a simple CSS selector.\n *\n * @template {string} Selector\n * Type of selector.\n * @template {string} [DefaultTagName='div']\n * Type of default tag name (default: `'div'`).\n * @param {Selector | null | undefined} [selector]\n * Simple CSS selector (optional).\n *\n * Can contain a tag name (`foo`), classes (`.bar`), and an ID (`#baz`).\n * Multiple classes are allowed.\n * Uses the last ID if multiple IDs are found.\n * @param {DefaultTagName | null | undefined} [defaultTagName='div']\n * Tag name to use if `selector` does not specify one (default: `'div'`).\n * @returns {Element & {tagName: ExtractTagName}}\n * Built element.\n */\nexport function parseSelector(selector, defaultTagName) {\n const value = selector || ''\n /** @type {Properties} */\n const props = {}\n let start = 0\n /** @type {string | undefined} */\n let previous\n /** @type {string | undefined} */\n let tagName\n\n while (start < value.length) {\n search.lastIndex = start\n const match = search.exec(value)\n const subvalue = value.slice(start, match ? match.index : value.length)\n\n if (subvalue) {\n if (!previous) {\n tagName = subvalue\n } else if (previous === '#') {\n props.id = subvalue\n } else if (Array.isArray(props.className)) {\n props.className.push(subvalue)\n } else {\n props.className = [subvalue]\n }\n\n start += subvalue.length\n }\n\n if (match) {\n previous = match[0]\n start++\n }\n }\n\n return {\n type: 'element',\n // @ts-expect-error: tag name is parsed.\n tagName: tagName || defaultTagName || 'div',\n properties: props,\n children: []\n }\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Nodes} Nodes\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').RootContent} RootContent\n *\n * @typedef {import('property-information').Info} Info\n * @typedef {import('property-information').Schema} Schema\n */\n\n/**\n * @typedef {Element | Root} Result\n * Result from a `h` (or `s`) call.\n *\n * @typedef {number | string} StyleValue\n * Value for a CSS style field.\n * @typedef {Record} Style\n * Supported value of a `style` prop.\n * @typedef {boolean | number | string | null | undefined} PrimitiveValue\n * Primitive property value.\n * @typedef {Array} ArrayValue\n * List of property values for space- or comma separated values (such as `className`).\n * @typedef {ArrayValue | PrimitiveValue} PropertyValue\n * Primitive value or list value.\n * @typedef {{[property: string]: PropertyValue | Style}} Properties\n * Acceptable value for element properties.\n *\n * @typedef {number | string | null | undefined} PrimitiveChild\n * Primitive children, either ignored (nullish), or turned into text nodes.\n * @typedef {Array} ArrayChild\n * List of children.\n * @typedef {Array} ArrayChildNested\n * List of children (deep).\n * @typedef {ArrayChild | Nodes | PrimitiveChild} Child\n * Acceptable child value.\n */\n\nimport {parse as commas} from 'comma-separated-tokens'\nimport {parseSelector} from 'hast-util-parse-selector'\nimport {find, normalize} from 'property-information'\nimport {parse as spaces} from 'space-separated-tokens'\n\nconst buttonTypes = new Set(['button', 'menu', 'reset', 'submit'])\n\nconst own = {}.hasOwnProperty\n\n/**\n * @param {Schema} schema\n * Schema to use.\n * @param {string} defaultTagName\n * Default tag name.\n * @param {Array | undefined} [caseSensitive]\n * Case-sensitive tag names (default: `undefined`).\n * @returns\n * `h`.\n */\nexport function createH(schema, defaultTagName, caseSensitive) {\n const adjust = caseSensitive && createAdjustMap(caseSensitive)\n\n /**\n * Hyperscript compatible DSL for creating virtual hast trees.\n *\n * @overload\n * @param {null | undefined} [selector]\n * @param {...Child} children\n * @returns {Root}\n *\n * @overload\n * @param {string} selector\n * @param {Properties} properties\n * @param {...Child} children\n * @returns {Element}\n *\n * @overload\n * @param {string} selector\n * @param {...Child} children\n * @returns {Element}\n *\n * @param {string | null | undefined} [selector]\n * Selector.\n * @param {Child | Properties | null | undefined} [properties]\n * Properties (or first child) (default: `undefined`).\n * @param {...Child} children\n * Children.\n * @returns {Result}\n * Result.\n */\n function h(selector, properties, ...children) {\n let index = -1\n /** @type {Result} */\n let node\n\n if (selector === undefined || selector === null) {\n node = {type: 'root', children: []}\n // Properties are not supported for roots.\n const child = /** @type {Child} */ (properties)\n children.unshift(child)\n } else {\n node = parseSelector(selector, defaultTagName)\n // Normalize the name.\n node.tagName = node.tagName.toLowerCase()\n if (adjust && own.call(adjust, node.tagName)) {\n node.tagName = adjust[node.tagName]\n }\n\n // Handle props.\n if (isProperties(properties, node.tagName)) {\n /** @type {string} */\n let key\n\n for (key in properties) {\n if (own.call(properties, key)) {\n addProperty(schema, node.properties, key, properties[key])\n }\n }\n } else {\n children.unshift(properties)\n }\n }\n\n // Handle children.\n while (++index < children.length) {\n addChild(node.children, children[index])\n }\n\n if (node.type === 'element' && node.tagName === 'template') {\n node.content = {type: 'root', children: node.children}\n node.children = []\n }\n\n return node\n }\n\n return h\n}\n\n/**\n * Check if something is properties or a child.\n *\n * @param {Child | Properties} value\n * Value to check.\n * @param {string} name\n * Tag name.\n * @returns {value is Properties}\n * Whether `value` is a properties object.\n */\nfunction isProperties(value, name) {\n if (\n value === null ||\n value === undefined ||\n typeof value !== 'object' ||\n Array.isArray(value)\n ) {\n return false\n }\n\n if (name === 'input' || !value.type || typeof value.type !== 'string') {\n return true\n }\n\n if ('children' in value && Array.isArray(value.children)) {\n return false\n }\n\n if (name === 'button') {\n return buttonTypes.has(value.type.toLowerCase())\n }\n\n return !('value' in value)\n}\n\n/**\n * @param {Schema} schema\n * Schema.\n * @param {Properties} properties\n * Properties object.\n * @param {string} key\n * Property name.\n * @param {PropertyValue | Style} value\n * Property value.\n * @returns {undefined}\n * Nothing.\n */\nfunction addProperty(schema, properties, key, value) {\n const info = find(schema, key)\n let index = -1\n /** @type {PropertyValue} */\n let result\n\n // Ignore nullish and NaN values.\n if (value === undefined || value === null) return\n\n if (typeof value === 'number') {\n // Ignore NaN.\n if (Number.isNaN(value)) return\n\n result = value\n }\n // Booleans.\n else if (typeof value === 'boolean') {\n result = value\n }\n // Handle list values.\n else if (typeof value === 'string') {\n if (info.spaceSeparated) {\n result = spaces(value)\n } else if (info.commaSeparated) {\n result = commas(value)\n } else if (info.commaOrSpaceSeparated) {\n result = spaces(commas(value).join(' '))\n } else {\n result = parsePrimitive(info, info.property, value)\n }\n } else if (Array.isArray(value)) {\n result = value.concat()\n } else {\n result = info.property === 'style' ? style(value) : String(value)\n }\n\n if (Array.isArray(result)) {\n /** @type {Array} */\n const finalResult = []\n\n while (++index < result.length) {\n // Assume no booleans in array.\n const value = /** @type {number | string} */ (\n parsePrimitive(info, info.property, result[index])\n )\n finalResult[index] = value\n }\n\n result = finalResult\n }\n\n // Class names (which can be added both on the `selector` and here).\n if (info.property === 'className' && Array.isArray(properties.className)) {\n // Assume no booleans in `className`.\n const value = /** @type {number | string} */ (result)\n result = properties.className.concat(value)\n }\n\n properties[info.property] = result\n}\n\n/**\n * @param {Array} nodes\n * Children.\n * @param {Child} value\n * Child.\n * @returns {undefined}\n * Nothing.\n */\nfunction addChild(nodes, value) {\n let index = -1\n\n if (value === undefined || value === null) {\n // Empty.\n } else if (typeof value === 'string' || typeof value === 'number') {\n nodes.push({type: 'text', value: String(value)})\n } else if (Array.isArray(value)) {\n while (++index < value.length) {\n addChild(nodes, value[index])\n }\n } else if (typeof value === 'object' && 'type' in value) {\n if (value.type === 'root') {\n addChild(nodes, value.children)\n } else {\n nodes.push(value)\n }\n } else {\n throw new Error('Expected node, nodes, or string, got `' + value + '`')\n }\n}\n\n/**\n * Parse a single primitives.\n *\n * @param {Info} info\n * Property information.\n * @param {string} name\n * Property name.\n * @param {PrimitiveValue} value\n * Property value.\n * @returns {PrimitiveValue}\n * Property value.\n */\nfunction parsePrimitive(info, name, value) {\n if (typeof value === 'string') {\n if (info.number && value && !Number.isNaN(Number(value))) {\n return Number(value)\n }\n\n if (\n (info.boolean || info.overloadedBoolean) &&\n (value === '' || normalize(value) === normalize(name))\n ) {\n return true\n }\n }\n\n return value\n}\n\n/**\n * Serialize a `style` object as a string.\n *\n * @param {Style} value\n * Style object.\n * @returns {string}\n * CSS string.\n */\nfunction style(value) {\n /** @type {Array} */\n const result = []\n /** @type {string} */\n let key\n\n for (key in value) {\n if (own.call(value, key)) {\n result.push([key, value[key]].join(': '))\n }\n }\n\n return result.join('; ')\n}\n\n/**\n * Create a map to adjust casing.\n *\n * @param {Array} values\n * List of properly cased keys.\n * @returns {Record}\n * Map of lowercase keys to uppercase keys.\n */\nfunction createAdjustMap(values) {\n /** @type {Record} */\n const result = {}\n let index = -1\n\n while (++index < values.length) {\n result[values[index].toLowerCase()] = values[index]\n }\n\n return result\n}\n","export const svgCaseSensitiveTagNames = [\n 'altGlyph',\n 'altGlyphDef',\n 'altGlyphItem',\n 'animateColor',\n 'animateMotion',\n 'animateTransform',\n 'clipPath',\n 'feBlend',\n 'feColorMatrix',\n 'feComponentTransfer',\n 'feComposite',\n 'feConvolveMatrix',\n 'feDiffuseLighting',\n 'feDisplacementMap',\n 'feDistantLight',\n 'feDropShadow',\n 'feFlood',\n 'feFuncA',\n 'feFuncB',\n 'feFuncG',\n 'feFuncR',\n 'feGaussianBlur',\n 'feImage',\n 'feMerge',\n 'feMergeNode',\n 'feMorphology',\n 'feOffset',\n 'fePointLight',\n 'feSpecularLighting',\n 'feSpotLight',\n 'feTile',\n 'feTurbulence',\n 'foreignObject',\n 'glyphRef',\n 'linearGradient',\n 'radialGradient',\n 'solidColor',\n 'textArea',\n 'textPath'\n]\n","/**\n * @typedef {import('./create-h.js').Child} Child\n * Acceptable child value.\n * @typedef {import('./create-h.js').Properties} Properties\n * Acceptable value for element properties.\n * @typedef {import('./create-h.js').Result} Result\n * Result from a `h` (or `s`) call.\n */\n\n// Register the JSX namespace on `h`.\n/**\n * @typedef {import('./jsx-classic.js').Element} h.JSX.Element\n * @typedef {import('./jsx-classic.js').ElementChildrenAttribute} h.JSX.ElementChildrenAttribute\n * @typedef {import('./jsx-classic.js').IntrinsicAttributes} h.JSX.IntrinsicAttributes\n * @typedef {import('./jsx-classic.js').IntrinsicElements} h.JSX.IntrinsicElements\n */\n\n// Register the JSX namespace on `s`.\n/**\n * @typedef {import('./jsx-classic.js').Element} s.JSX.Element\n * @typedef {import('./jsx-classic.js').ElementChildrenAttribute} s.JSX.ElementChildrenAttribute\n * @typedef {import('./jsx-classic.js').IntrinsicAttributes} s.JSX.IntrinsicAttributes\n * @typedef {import('./jsx-classic.js').IntrinsicElements} s.JSX.IntrinsicElements\n */\n\nimport {html, svg} from 'property-information'\nimport {createH} from './create-h.js'\nimport {svgCaseSensitiveTagNames} from './svg-case-sensitive-tag-names.js'\n\n// Note: this explicit type is needed, otherwise TS creates broken types.\n/** @type {ReturnType} */\nexport const h = createH(html, 'div')\n\n// Note: this explicit type is needed, otherwise TS creates broken types.\n/** @type {ReturnType} */\nexport const s = createH(svg, 'g', svgCaseSensitiveTagNames)\n","/**\n * @typedef {import('vfile').VFile} VFile\n * @typedef {import('vfile').Value} Value\n * @typedef {import('unist').Point} UnistPoint\n */\n\n/**\n *\n * @typedef PointLike\n * unist point, allowed as input.\n * @property {number | null | undefined} [line]\n * Line.\n * @property {number | null | undefined} [column]\n * Column.\n * @property {number | null | undefined} [offset]\n * Offset.\n *\n * @callback ToPoint\n * Get the line/column based `Point` for `offset` in the bound indices.\n *\n * Returns `undefined` when given out of bounds input.\n *\n * Also implemented in Rust in [`wooorm/markdown-rs`][markdown-rs].\n *\n * [markdown-rs]: https://github.com/wooorm/markdown-rs/blob/main/src/util/location.rs\n * @param {number | null | undefined} [offset]\n * Something that should be an `offset.\n * @returns {UnistPoint | undefined}\n * Point, if `offset` is valid and in-bounds input.\n *\n * @callback ToOffset\n * Get the `offset` from a line/column based `Point` in the bound indices.\n * @param {PointLike | null | undefined} [point]\n * Something that should be a `point.\n * @returns {number | undefined}\n * Offset (`number`) or `undefined` for invalid or out of bounds input.\n *\n * @typedef Location\n * Accessors for index.\n * @property {ToPoint} toPoint\n * Get the line/column based `Point` for `offset` in the bound indices.\n * @property {ToOffset} toOffset\n * Get the `offset` from a line/column based `Point` in the bound indices.\n */\n\nconst search = /\\r?\\n|\\r/g\n\n/**\n * Create an index of the given document to translate between line/column and\n * offset based positional info.\n *\n * Also implemented in Rust in [`wooorm/markdown-rs`][markdown-rs].\n *\n * [markdown-rs]: https://github.com/wooorm/markdown-rs/blob/main/src/util/location.rs\n *\n * @param {VFile | Value} file\n * File to index.\n * @returns {Location}\n * Accessors for index.\n */\nexport function location(file) {\n const value = String(file)\n /**\n * List, where each index is a line number (0-based), and each value is the\n * byte index *after* where the line ends.\n *\n * @type {Array}\n */\n const indices = []\n\n search.lastIndex = 0\n\n while (search.test(value)) {\n indices.push(search.lastIndex)\n }\n\n indices.push(value.length + 1)\n\n return {toPoint, toOffset}\n\n /** @type {ToPoint} */\n function toPoint(offset) {\n let index = -1\n\n if (\n typeof offset === 'number' &&\n offset > -1 &&\n offset < indices[indices.length - 1]\n ) {\n while (++index < indices.length) {\n if (indices[index] > offset) {\n return {\n line: index + 1,\n column: offset - (index > 0 ? indices[index - 1] : 0) + 1,\n offset\n }\n }\n }\n }\n }\n\n /** @type {ToOffset} */\n function toOffset(point) {\n const line = point && point.line\n const column = point && point.column\n\n if (\n typeof line === 'number' &&\n typeof column === 'number' &&\n !Number.isNaN(line) &&\n !Number.isNaN(column) &&\n line - 1 in indices\n ) {\n const offset = (indices[line - 2] || 0) + column - 1 || 0\n\n if (offset > -1 && offset < indices[indices.length - 1]) {\n return offset\n }\n }\n }\n}\n","/**\n * Map of web namespaces.\n *\n * @type {Record}\n */\nexport const webNamespaces = {\n html: 'http://www.w3.org/1999/xhtml',\n mathml: 'http://www.w3.org/1998/Math/MathML',\n svg: 'http://www.w3.org/2000/svg',\n xlink: 'http://www.w3.org/1999/xlink',\n xml: 'http://www.w3.org/XML/1998/namespace',\n xmlns: 'http://www.w3.org/2000/xmlns/'\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementData} ElementData\n * @typedef {import('hast').Nodes} Nodes\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').RootContent} RootContent\n *\n * @typedef {import('parse5').DefaultTreeAdapterMap} DefaultTreeAdapterMap\n * @typedef {import('parse5').Token.ElementLocation} P5ElementLocation\n * @typedef {import('parse5').Token.Location} P5Location\n *\n * @typedef {import('property-information').Schema} Schema\n *\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n *\n * @typedef {import('vfile').VFile} VFile\n */\n\n/**\n * @typedef {DefaultTreeAdapterMap['document']} P5Document\n * @typedef {DefaultTreeAdapterMap['documentFragment']} P5DocumentFragment\n * @typedef {DefaultTreeAdapterMap['documentType']} P5DocumentType\n * @typedef {DefaultTreeAdapterMap['commentNode']} P5Comment\n * @typedef {DefaultTreeAdapterMap['textNode']} P5Text\n * @typedef {DefaultTreeAdapterMap['element']} P5Element\n * @typedef {DefaultTreeAdapterMap['node']} P5Node\n * @typedef {DefaultTreeAdapterMap['template']} P5Template\n */\n\n/**\n * @typedef Options\n * Configuration.\n * @property {Space | null | undefined} [space='html']\n * Which space the document is in (default: `'html'`).\n *\n * When an `` element is found in the HTML space, this package already\n * automatically switches to and from the SVG space when entering and exiting\n * it.\n * @property {VFile | null | undefined} [file]\n * File used to add positional info to nodes (optional).\n *\n * If given, the file should represent the original HTML source.\n * @property {boolean | null | undefined} [verbose=false]\n * Whether to add extra positional info about starting tags, closing tags,\n * and attributes to elements (default: `false`).\n *\n * > 👉 **Note**: only used when `file` is given.\n *\n * @typedef {'html' | 'svg'} Space\n * Namespace.\n *\n * @typedef State\n * Info passed around about the current state.\n * @property {VFile | undefined} file\n * Corresponding file.\n * @property {boolean} location\n * Whether location info was found.\n * @property {Schema} schema\n * Current schema.\n * @property {boolean | undefined} verbose\n * Add extra positional info.\n */\n\nimport {ok as assert} from 'devlop'\nimport {h, s} from 'hastscript'\nimport {find, html, svg} from 'property-information'\nimport {location} from 'vfile-location'\nimport {webNamespaces} from 'web-namespaces'\n\nconst own = {}.hasOwnProperty\n/** @type {unknown} */\n// type-coverage:ignore-next-line\nconst proto = Object.prototype\n\n/**\n * Transform a `parse5` AST to hast.\n *\n * @param {P5Node} tree\n * `parse5` tree to transform.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {Nodes}\n * hast tree.\n */\nexport function fromParse5(tree, options) {\n const settings = options || {}\n\n return one(\n {\n file: settings.file || undefined,\n location: false,\n schema: settings.space === 'svg' ? svg : html,\n verbose: settings.verbose || false\n },\n tree\n )\n}\n\n/**\n * Transform a node.\n *\n * @param {State} state\n * Info passed around about the current state.\n * @param {P5Node} node\n * p5 node.\n * @returns {Nodes}\n * hast node.\n */\nfunction one(state, node) {\n /** @type {Nodes} */\n let result\n\n switch (node.nodeName) {\n case '#comment': {\n const reference = /** @type {P5Comment} */ (node)\n result = {type: 'comment', value: reference.data}\n patch(state, reference, result)\n return result\n }\n\n case '#document':\n case '#document-fragment': {\n const reference = /** @type {P5Document | P5DocumentFragment} */ (node)\n const quirksMode =\n 'mode' in reference\n ? reference.mode === 'quirks' || reference.mode === 'limited-quirks'\n : false\n\n result = {\n type: 'root',\n children: all(state, node.childNodes),\n data: {quirksMode}\n }\n\n if (state.file && state.location) {\n const doc = String(state.file)\n const loc = location(doc)\n const start = loc.toPoint(0)\n const end = loc.toPoint(doc.length)\n // Always defined as we give valid input.\n assert(start, 'expected `start`')\n assert(end, 'expected `end`')\n result.position = {start, end}\n }\n\n return result\n }\n\n case '#documentType': {\n const reference = /** @type {P5DocumentType} */ (node)\n result = {type: 'doctype'}\n patch(state, reference, result)\n return result\n }\n\n case '#text': {\n const reference = /** @type {P5Text} */ (node)\n result = {type: 'text', value: reference.value}\n patch(state, reference, result)\n return result\n }\n\n // Element.\n default: {\n const reference = /** @type {P5Element} */ (node)\n result = element(state, reference)\n return result\n }\n }\n}\n\n/**\n * Transform children.\n *\n * @param {State} state\n * Info passed around about the current state.\n * @param {Array} nodes\n * Nodes.\n * @returns {Array}\n * hast nodes.\n */\nfunction all(state, nodes) {\n let index = -1\n /** @type {Array} */\n const results = []\n\n while (++index < nodes.length) {\n // Assume no roots in `nodes`.\n const result = /** @type {RootContent} */ (one(state, nodes[index]))\n results.push(result)\n }\n\n return results\n}\n\n/**\n * Transform an element.\n *\n * @param {State} state\n * Info passed around about the current state.\n * @param {P5Element} node\n * `parse5` node to transform.\n * @returns {Element}\n * hast node.\n */\nfunction element(state, node) {\n const schema = state.schema\n\n state.schema = node.namespaceURI === webNamespaces.svg ? svg : html\n\n // Props.\n let index = -1\n /** @type {Record} */\n const props = {}\n\n while (++index < node.attrs.length) {\n const attribute = node.attrs[index]\n const name =\n (attribute.prefix ? attribute.prefix + ':' : '') + attribute.name\n if (!own.call(proto, name)) {\n props[name] = attribute.value\n }\n }\n\n // Build.\n const fn = state.schema.space === 'svg' ? s : h\n const result = fn(node.tagName, props, all(state, node.childNodes))\n patch(state, node, result)\n\n // Switch content.\n if (result.tagName === 'template') {\n const reference = /** @type {P5Template} */ (node)\n const pos = reference.sourceCodeLocation\n const startTag = pos && pos.startTag && position(pos.startTag)\n const endTag = pos && pos.endTag && position(pos.endTag)\n\n // Root in, root out.\n const content = /** @type {Root} */ (one(state, reference.content))\n\n if (startTag && endTag && state.file) {\n content.position = {start: startTag.end, end: endTag.start}\n }\n\n result.content = content\n }\n\n state.schema = schema\n\n return result\n}\n\n/**\n * Patch positional info from `from` onto `to`.\n *\n * @param {State} state\n * Info passed around about the current state.\n * @param {P5Node} from\n * p5 node.\n * @param {Nodes} to\n * hast node.\n * @returns {undefined}\n * Nothing.\n */\nfunction patch(state, from, to) {\n if ('sourceCodeLocation' in from && from.sourceCodeLocation && state.file) {\n const position = createLocation(state, to, from.sourceCodeLocation)\n\n if (position) {\n state.location = true\n to.position = position\n }\n }\n}\n\n/**\n * Create clean positional information.\n *\n * @param {State} state\n * Info passed around about the current state.\n * @param {Nodes} node\n * hast node.\n * @param {P5ElementLocation} location\n * p5 location info.\n * @returns {Position | undefined}\n * Position, or nothing.\n */\nfunction createLocation(state, node, location) {\n const result = position(location)\n\n if (node.type === 'element') {\n const tail = node.children[node.children.length - 1]\n\n // Bug for unclosed with children.\n // See: .\n if (\n result &&\n !location.endTag &&\n tail &&\n tail.position &&\n tail.position.end\n ) {\n result.end = Object.assign({}, tail.position.end)\n }\n\n if (state.verbose) {\n /** @type {Record} */\n const props = {}\n /** @type {string} */\n let key\n\n if (location.attrs) {\n for (key in location.attrs) {\n if (own.call(location.attrs, key)) {\n props[find(state.schema, key).property] = position(\n location.attrs[key]\n )\n }\n }\n }\n\n assert(location.startTag, 'a start tag should exist')\n const opening = position(location.startTag)\n const closing = location.endTag ? position(location.endTag) : undefined\n /** @type {ElementData['position']} */\n const data = {opening}\n if (closing) data.closing = closing\n data.properties = props\n\n node.data = {position: data}\n }\n }\n\n return result\n}\n\n/**\n * Turn a p5 location into a position.\n *\n * @param {P5Location} loc\n * Location.\n * @returns {Position | undefined}\n * Position or nothing.\n */\nfunction position(loc) {\n const start = point({\n line: loc.startLine,\n column: loc.startCol,\n offset: loc.startOffset\n })\n const end = point({\n line: loc.endLine,\n column: loc.endCol,\n offset: loc.endOffset\n })\n\n // @ts-expect-error: we do use `undefined` for points if one or the other\n // exists.\n return start || end ? {start, end} : undefined\n}\n\n/**\n * Filter out invalid points.\n *\n * @param {Point} point\n * Point with potentially `undefined` values.\n * @returns {Point | undefined}\n * Point or nothing.\n */\nfunction point(point) {\n return point.line && point.column ? point : undefined\n}\n","/**\n * @typedef {import('hast').Comment} Comment\n * @typedef {import('hast').Doctype} Doctype\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Nodes} Nodes\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').RootContent} RootContent\n * @typedef {import('hast').Text} Text\n *\n * @typedef {import('parse5').DefaultTreeAdapterMap['document']} Parse5Document\n * @typedef {import('parse5').DefaultTreeAdapterMap['documentFragment']} Parse5Fragment\n * @typedef {import('parse5').DefaultTreeAdapterMap['element']} Parse5Element\n * @typedef {import('parse5').DefaultTreeAdapterMap['node']} Parse5Nodes\n * @typedef {import('parse5').DefaultTreeAdapterMap['documentType']} Parse5Doctype\n * @typedef {import('parse5').DefaultTreeAdapterMap['commentNode']} Parse5Comment\n * @typedef {import('parse5').DefaultTreeAdapterMap['textNode']} Parse5Text\n * @typedef {import('parse5').DefaultTreeAdapterMap['parentNode']} Parse5Parent\n * @typedef {import('parse5').Token.Attribute} Parse5Attribute\n *\n * @typedef {import('property-information').Schema} Schema\n */\n\n/**\n * @typedef Options\n * Configuration.\n * @property {Space | null | undefined} [space='html']\n * Which space the document is in (default: `'html'`).\n *\n * When an `` element is found in the HTML space, this package already\n * automatically switches to and from the SVG space when entering and exiting\n * it.\n *\n * @typedef {Exclude} Parse5Content\n *\n * @typedef {'html' | 'svg'} Space\n */\n\nimport {stringify as commas} from 'comma-separated-tokens'\nimport {ok as assert} from 'devlop'\nimport {find, html, svg} from 'property-information'\nimport {stringify as spaces} from 'space-separated-tokens'\nimport {webNamespaces} from 'web-namespaces'\nimport {zwitch} from 'zwitch'\n\n/** @type {Options} */\nconst emptyOptions = {}\n\nconst own = {}.hasOwnProperty\n\nconst one = zwitch('type', {handlers: {root, element, text, comment, doctype}})\n\n/**\n * Transform a hast tree to a `parse5` AST.\n *\n * @param {Nodes} tree\n * Tree to transform.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {Parse5Nodes}\n * `parse5` node.\n */\nexport function toParse5(tree, options) {\n const settings = options || emptyOptions\n const space = settings.space\n return one(tree, space === 'svg' ? svg : html)\n}\n\n/**\n * @param {Root} node\n * Node (hast) to transform.\n * @param {Schema} schema\n * Current schema.\n * @returns {Parse5Document}\n * Parse5 node.\n */\nfunction root(node, schema) {\n /** @type {Parse5Document} */\n const result = {\n nodeName: '#document',\n // @ts-expect-error: `parse5` uses enums, which are actually strings.\n mode: (node.data || {}).quirksMode ? 'quirks' : 'no-quirks',\n childNodes: []\n }\n result.childNodes = all(node.children, result, schema)\n patch(node, result)\n return result\n}\n\n/**\n * @param {Root} node\n * Node (hast) to transform.\n * @param {Schema} schema\n * Current schema.\n * @returns {Parse5Fragment}\n * Parse5 node.\n */\nfunction fragment(node, schema) {\n /** @type {Parse5Fragment} */\n const result = {nodeName: '#document-fragment', childNodes: []}\n result.childNodes = all(node.children, result, schema)\n patch(node, result)\n return result\n}\n\n/**\n * @param {Doctype} node\n * Node (hast) to transform.\n * @returns {Parse5Doctype}\n * Parse5 node.\n */\nfunction doctype(node) {\n /** @type {Parse5Doctype} */\n const result = {\n nodeName: '#documentType',\n name: 'html',\n publicId: '',\n systemId: '',\n parentNode: null\n }\n\n patch(node, result)\n return result\n}\n\n/**\n * @param {Text} node\n * Node (hast) to transform.\n * @returns {Parse5Text}\n * Parse5 node.\n */\nfunction text(node) {\n /** @type {Parse5Text} */\n const result = {\n nodeName: '#text',\n value: node.value,\n parentNode: null\n }\n patch(node, result)\n return result\n}\n\n/**\n * @param {Comment} node\n * Node (hast) to transform.\n * @returns {Parse5Comment}\n * Parse5 node.\n */\nfunction comment(node) {\n /** @type {Parse5Comment} */\n const result = {\n nodeName: '#comment',\n data: node.value,\n parentNode: null\n }\n\n patch(node, result)\n\n return result\n}\n\n/**\n * @param {Element} node\n * Node (hast) to transform.\n * @param {Schema} schema\n * Current schema.\n * @returns {Parse5Element}\n * Parse5 node.\n */\nfunction element(node, schema) {\n const parentSchema = schema\n let currentSchema = parentSchema\n\n if (\n node.type === 'element' &&\n node.tagName.toLowerCase() === 'svg' &&\n parentSchema.space === 'html'\n ) {\n currentSchema = svg\n }\n\n /** @type {Array} */\n const attrs = []\n /** @type {string} */\n let prop\n\n if (node.properties) {\n for (prop in node.properties) {\n if (prop !== 'children' && own.call(node.properties, prop)) {\n const result = createProperty(\n currentSchema,\n prop,\n node.properties[prop]\n )\n\n if (result) {\n attrs.push(result)\n }\n }\n }\n }\n\n const space = currentSchema.space\n // `html` and `svg` both have a space.\n assert(space)\n\n /** @type {Parse5Element} */\n const result = {\n nodeName: node.tagName,\n tagName: node.tagName,\n attrs,\n // @ts-expect-error: `parse5` types are wrong.\n namespaceURI: webNamespaces[space],\n childNodes: [],\n parentNode: null\n }\n result.childNodes = all(node.children, result, currentSchema)\n patch(node, result)\n\n if (node.tagName === 'template' && node.content) {\n // @ts-expect-error: `parse5` types are wrong.\n result.content = fragment(node.content, currentSchema)\n }\n\n return result\n}\n\n/**\n * Handle a property.\n *\n * @param {Schema} schema\n * Current schema.\n * @param {string} prop\n * Key.\n * @param {Array | boolean | number | string | null | undefined} value\n * hast property value.\n * @returns {Parse5Attribute | undefined}\n * Field for runtime, optional.\n */\nfunction createProperty(schema, prop, value) {\n const info = find(schema, prop)\n\n // Ignore nullish and `NaN` values.\n if (\n value === false ||\n value === null ||\n value === undefined ||\n (typeof value === 'number' && Number.isNaN(value)) ||\n (!value && info.boolean)\n ) {\n return\n }\n\n if (Array.isArray(value)) {\n // Accept `array`.\n // Most props are space-separated.\n value = info.commaSeparated ? commas(value) : spaces(value)\n }\n\n /** @type {Parse5Attribute} */\n const attribute = {\n name: info.attribute,\n value: value === true ? '' : String(value)\n }\n\n if (info.space && info.space !== 'html' && info.space !== 'svg') {\n const index = attribute.name.indexOf(':')\n\n if (index < 0) {\n attribute.prefix = ''\n } else {\n attribute.name = attribute.name.slice(index + 1)\n attribute.prefix = info.attribute.slice(0, index)\n }\n\n attribute.namespace = webNamespaces[info.space]\n }\n\n return attribute\n}\n\n/**\n * Transform all hast nodes.\n *\n * @param {Array} children\n * List of children.\n * @param {Parse5Parent} parentNode\n * `parse5` parent node.\n * @param {Schema} schema\n * Current schema.\n * @returns {Array}\n * Transformed children.\n */\nfunction all(children, parentNode, schema) {\n let index = -1\n /** @type {Array} */\n const results = []\n\n if (children) {\n while (++index < children.length) {\n /** @type {Parse5Content} */\n const child = one(children[index], schema)\n\n child.parentNode = parentNode\n\n results.push(child)\n }\n }\n\n return results\n}\n\n/**\n * Add position info from `from` to `to`.\n *\n * @param {Nodes} from\n * hast node.\n * @param {Parse5Nodes} to\n * `parse5` node.\n * @returns {undefined}\n * Nothing.\n */\nfunction patch(from, to) {\n const position = from.position\n\n if (position && position.start && position.end) {\n assert(typeof position.start.offset === 'number')\n assert(typeof position.end.offset === 'number')\n\n to.sourceCodeLocation = {\n startLine: position.start.line,\n startCol: position.start.column,\n startOffset: position.start.offset,\n endLine: position.end.line,\n endCol: position.end.column,\n endOffset: position.end.offset\n }\n }\n}\n","/**\n * List of HTML void tag names.\n *\n * @type {Array}\n */\nexport const htmlVoidElements = [\n 'area',\n 'base',\n 'basefont',\n 'bgsound',\n 'br',\n 'col',\n 'command',\n 'embed',\n 'frame',\n 'hr',\n 'image',\n 'img',\n 'input',\n 'keygen',\n 'link',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr'\n]\n","/**\n * @typedef {import('hast').Comment} Comment\n * @typedef {import('hast').Doctype} Doctype\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Nodes} Nodes\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').RootContent} RootContent\n * @typedef {import('hast').Text} Text\n *\n * @typedef {import('mdast-util-to-hast').Raw} Raw\n *\n * @typedef {import('parse5').DefaultTreeAdapterMap} DefaultTreeAdapterMap\n * @typedef {import('parse5').ParserOptions} ParserOptions\n * @typedef {import('parse5').Token.CharacterToken} CharacterToken\n * @typedef {import('parse5').Token.CommentToken} CommentToken\n * @typedef {import('parse5').Token.DoctypeToken} DoctypeToken\n * @typedef {import('parse5').Token.Location} Location\n * @typedef {import('parse5').Token.TagToken} TagToken\n *\n * @typedef {import('unist').Point} Point\n *\n * @typedef {import('vfile').VFile} VFile\n */\n\n/**\n * @typedef Options\n * Configuration.\n * @property {VFile | null | undefined} [file]\n * Corresponding virtual file representing the input document (optional).\n * @property {Array | null | undefined} [passThrough]\n * List of custom hast node types to pass through (as in, keep) (optional).\n *\n * If the passed through nodes have children, those children are expected to\n * be hast again and will be handled.\n *\n * @typedef State\n * Info passed around about the current state.\n * @property {(node: Nodes) => undefined} handle\n * Add a hast node to the parser.\n * @property {Options} options\n * User configuration.\n * @property {Parser} parser\n * Current parser.\n * @property {boolean} stitches\n * Whether there are stitches.\n *\n * @typedef {{type: 'comment', value: {stitch: Nodes}}} Stitch\n * Custom comment-like value we pass through parse5, which contains a\n * replacement node that we’ll swap back in afterwards.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {fromParse5} from 'hast-util-from-parse5'\nimport {toParse5} from 'hast-util-to-parse5'\nimport {htmlVoidElements} from 'html-void-elements'\nimport {Parser, Token, TokenizerMode, html} from 'parse5'\nimport {pointEnd, pointStart} from 'unist-util-position'\nimport {visit} from 'unist-util-visit'\nimport {webNamespaces} from 'web-namespaces'\nimport {zwitch} from 'zwitch'\n\n// Node types associated with MDX.\n// \nconst knownMdxNames = new Set([\n 'mdxFlowExpression',\n 'mdxJsxFlowElement',\n 'mdxJsxTextElement',\n 'mdxTextExpression',\n 'mdxjsEsm'\n])\n\n/** @type {ParserOptions} */\nconst parseOptions = {sourceCodeLocationInfo: true, scriptingEnabled: false}\n\n/**\n * Pass a hast tree through an HTML parser, which will fix nesting, and turn\n * raw nodes into actual nodes.\n *\n * @param {Nodes} tree\n * Original hast tree to transform.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {Nodes}\n * Parsed again tree.\n */\nexport function raw(tree, options) {\n const document = documentMode(tree)\n /** @type {(node: Nodes, state: State) => undefined} */\n const one = zwitch('type', {\n handlers: {root, element, text, comment, doctype, raw: handleRaw},\n unknown\n })\n\n /** @type {State} */\n const state = {\n parser: document\n ? new Parser(parseOptions)\n : Parser.getFragmentParser(undefined, parseOptions),\n handle(node) {\n one(node, state)\n },\n stitches: false,\n options: options || {}\n }\n\n one(tree, state)\n resetTokenizer(state, pointStart())\n\n const p5 = document ? state.parser.document : state.parser.getFragment()\n const result = fromParse5(p5, {\n // To do: support `space`?\n file: state.options.file\n })\n\n if (state.stitches) {\n visit(result, 'comment', function (node, index, parent) {\n const stitch = /** @type {Stitch} */ (/** @type {unknown} */ (node))\n if (stitch.value.stitch && parent && index !== undefined) {\n /** @type {Array} */\n const siblings = parent.children\n // @ts-expect-error: assume the stitch is allowed.\n siblings[index] = stitch.value.stitch\n return index\n }\n })\n }\n\n // Unpack if possible and when not given a `root`.\n if (\n result.type === 'root' &&\n result.children.length === 1 &&\n result.children[0].type === tree.type\n ) {\n return result.children[0]\n }\n\n return result\n}\n\n/**\n * Transform all nodes\n *\n * @param {Array} nodes\n * hast content.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {undefined}\n * Nothing.\n */\nfunction all(nodes, state) {\n let index = -1\n\n /* istanbul ignore else - invalid nodes, see rehypejs/rehype-raw#7. */\n if (nodes) {\n while (++index < nodes.length) {\n state.handle(nodes[index])\n }\n }\n}\n\n/**\n * Transform a root.\n *\n * @param {Root} node\n * hast root node.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {undefined}\n * Nothing.\n */\nfunction root(node, state) {\n all(node.children, state)\n}\n\n/**\n * Transform an element.\n *\n * @param {Element} node\n * hast element node.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {undefined}\n * Nothing.\n */\nfunction element(node, state) {\n startTag(node, state)\n\n all(node.children, state)\n\n endTag(node, state)\n}\n\n/**\n * Transform a text.\n *\n * @param {Text} node\n * hast text node.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {undefined}\n * Nothing.\n */\nfunction text(node, state) {\n /** @type {CharacterToken} */\n const token = {\n type: Token.TokenType.CHARACTER,\n chars: node.value,\n location: createParse5Location(node)\n }\n\n resetTokenizer(state, pointStart(node))\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.currentToken = token\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser._processToken(state.parser.currentToken)\n}\n\n/**\n * Transform a doctype.\n *\n * @param {Doctype} node\n * hast doctype node.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {undefined}\n * Nothing.\n */\nfunction doctype(node, state) {\n /** @type {DoctypeToken} */\n const token = {\n type: Token.TokenType.DOCTYPE,\n name: 'html',\n forceQuirks: false,\n publicId: '',\n systemId: '',\n location: createParse5Location(node)\n }\n\n resetTokenizer(state, pointStart(node))\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.currentToken = token\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser._processToken(state.parser.currentToken)\n}\n\n/**\n * Transform a stitch.\n *\n * @param {Nodes} node\n * unknown node.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {undefined}\n * Nothing.\n */\nfunction stitch(node, state) {\n // Mark that there are stitches, so we need to walk the tree and revert them.\n state.stitches = true\n\n /** @type {Nodes} */\n const clone = cloneWithoutChildren(node)\n\n // Recurse, because to somewhat handle `[]` (where `[]` denotes the\n // passed through node).\n if ('children' in node && 'children' in clone) {\n // Root in root out.\n const fakeRoot = /** @type {Root} */ (\n raw({type: 'root', children: node.children}, state.options)\n )\n clone.children = fakeRoot.children\n }\n\n // Hack: `value` is supposed to be a string, but as none of the tools\n // (`parse5` or `hast-util-from-parse5`) looks at it, we can pass nodes\n // through.\n comment({type: 'comment', value: {stitch: clone}}, state)\n}\n\n/**\n * Transform a comment (or stitch).\n *\n * @param {Comment | Stitch} node\n * hast comment node.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {undefined}\n * Nothing.\n */\nfunction comment(node, state) {\n /** @type {string} */\n // @ts-expect-error: we pass stitches through.\n const data = node.value\n\n /** @type {CommentToken} */\n const token = {\n type: Token.TokenType.COMMENT,\n data,\n location: createParse5Location(node)\n }\n resetTokenizer(state, pointStart(node))\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.currentToken = token\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser._processToken(state.parser.currentToken)\n}\n\n/**\n * Transform a raw node.\n *\n * @param {Raw} node\n * hast raw node.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {undefined}\n * Nothing.\n */\nfunction handleRaw(node, state) {\n // Reset preprocessor:\n // See: .\n state.parser.tokenizer.preprocessor.html = ''\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.tokenizer.preprocessor.pos = -1\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.tokenizer.preprocessor.lastGapPos = -2\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.tokenizer.preprocessor.gapStack = []\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.tokenizer.preprocessor.skipNextNewLine = false\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.tokenizer.preprocessor.lastChunkWritten = false\n state.parser.tokenizer.preprocessor.endOfChunkHit = false\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.tokenizer.preprocessor.isEol = false\n\n // Now pass `node.value`.\n setPoint(state, pointStart(node))\n state.parser.tokenizer.write(node.value, false)\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.tokenizer._runParsingLoop()\n\n // Character references hang, so if we ended there, we need to flush\n // those too.\n // We reset the preprocessor as if the document ends here.\n // Then one single call to the relevant state does the trick, parse5\n // consumes the whole token.\n\n // Note: `State` is not exposed by `parse5`, so these numbers are fragile.\n // See: \n // Note: a change to `parse5`, which breaks this, was merged but not released.\n // Investigate when it is.\n if (\n state.parser.tokenizer.state === 72 /* NAMED_CHARACTER_REFERENCE */ ||\n state.parser.tokenizer.state === 78 /* NUMERIC_CHARACTER_REFERENCE_END */\n ) {\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.tokenizer.preprocessor.lastChunkWritten = true\n /** @type {number} */\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n const cp = state.parser.tokenizer._consume()\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.tokenizer._callState(cp)\n }\n}\n\n/**\n * Crash on an unknown node.\n *\n * @param {unknown} node_\n * unknown node.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {undefined}\n * Never.\n */\nfunction unknown(node_, state) {\n const node = /** @type {Nodes} */ (node_)\n\n if (\n state.options.passThrough &&\n state.options.passThrough.includes(node.type)\n ) {\n stitch(node, state)\n } else {\n let extra = ''\n\n if (knownMdxNames.has(node.type)) {\n extra =\n \". It looks like you are using MDX nodes with `hast-util-raw` (or `rehype-raw`). If you use this because you are using remark or rehype plugins that inject `'html'` nodes, then please raise an issue with that plugin, as its a bad and slow idea. If you use this because you are using markdown syntax, then you have to configure this utility (or plugin) to pass through these nodes (see `passThrough` in docs), but you can also migrate to use the MDX syntax\"\n }\n\n throw new Error('Cannot compile `' + node.type + '` node' + extra)\n }\n}\n\n/**\n * Reset the tokenizer of a parser.\n *\n * @param {State} state\n * Info passed around about the current state.\n * @param {Point | undefined} point\n * Point.\n * @returns {undefined}\n * Nothing.\n */\nfunction resetTokenizer(state, point) {\n setPoint(state, point)\n\n // Process final characters if they’re still there after hibernating.\n /** @type {CharacterToken} */\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n const token = state.parser.tokenizer.currentCharacterToken\n\n if (token && token.location) {\n token.location.endLine = state.parser.tokenizer.preprocessor.line\n token.location.endCol = state.parser.tokenizer.preprocessor.col + 1\n token.location.endOffset = state.parser.tokenizer.preprocessor.offset + 1\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.currentToken = token\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser._processToken(state.parser.currentToken)\n }\n\n // Reset tokenizer:\n // See: .\n // Especially putting it back in the `data` state is useful: some elements,\n // like textareas and iframes, change the state.\n // See GH-7.\n // But also if broken HTML is in `raw`, and then a correct element is given.\n // See GH-11.\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.tokenizer.paused = false\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.tokenizer.inLoop = false\n\n // Note: don’t reset `state`, `inForeignNode`, or `lastStartTagName`, we\n // manually update those when needed.\n state.parser.tokenizer.active = false\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.tokenizer.returnState = TokenizerMode.DATA\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.tokenizer.charRefCode = -1\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.tokenizer.consumedAfterSnapshot = -1\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.tokenizer.currentLocation = null\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.tokenizer.currentCharacterToken = null\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.tokenizer.currentToken = null\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.tokenizer.currentAttr = {name: '', value: ''}\n}\n\n/**\n * Set current location.\n *\n * @param {State} state\n * Info passed around about the current state.\n * @param {Point | undefined} point\n * Point.\n * @returns {undefined}\n * Nothing.\n */\nfunction setPoint(state, point) {\n if (point && point.offset !== undefined) {\n /** @type {Location} */\n const location = {\n startLine: point.line,\n startCol: point.column,\n startOffset: point.offset,\n endLine: -1,\n endCol: -1,\n endOffset: -1\n }\n\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.tokenizer.preprocessor.lineStartPos = -point.column + 1 // Looks weird, but ensures we get correct positional info.\n state.parser.tokenizer.preprocessor.droppedBufferSize = point.offset\n state.parser.tokenizer.preprocessor.line = point.line\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.tokenizer.currentLocation = location\n }\n}\n\n/**\n * Emit a start tag.\n *\n * @param {Element} node\n * Element.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {undefined}\n * Nothing.\n */\nfunction startTag(node, state) {\n // Ignore tags if we’re in plain text.\n if (state.parser.tokenizer.state === TokenizerMode.PLAINTEXT) return\n\n resetTokenizer(state, pointStart(node))\n\n const current = state.parser.openElements.current\n let ns = 'namespaceURI' in current ? current.namespaceURI : webNamespaces.html\n\n if (ns === webNamespaces.html && node.tagName === 'svg') {\n ns = webNamespaces.svg\n }\n\n const result = toParse5(\n // Shallow clone to not delve into `children`: we only need the attributes.\n {...node, children: []},\n {space: ns === webNamespaces.svg ? 'svg' : 'html'}\n )\n // Always element.\n /* c8 ignore next */\n const attrs = 'attrs' in result ? result.attrs : []\n\n /** @type {TagToken} */\n const tag = {\n type: Token.TokenType.START_TAG,\n tagName: node.tagName,\n tagID: html.getTagID(node.tagName),\n // We always send start and end tags.\n selfClosing: false,\n ackSelfClosing: false,\n attrs,\n location: createParse5Location(node)\n }\n\n // The HTML parsing algorithm works by doing half of the state management in\n // the tokenizer and half in the parser.\n // We can’t use the tokenizer here, as we don’t have strings.\n // So we act *as if* the tokenizer emits tokens:\n\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.currentToken = tag\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser._processToken(state.parser.currentToken)\n\n // …but then we still need a bunch of work that the tokenizer would normally\n // do, such as:\n\n // Set a tag name, similar to how the tokenizer would do it.\n state.parser.tokenizer.lastStartTagName = node.tagName\n\n // `inForeignNode` is correctly set by the parser.\n}\n\n/**\n * Emit an end tag.\n *\n * @param {Element} node\n * Element.\n * @param {State} state\n * Info passed around about the current state.\n * @returns {undefined}\n * Nothing.\n */\nfunction endTag(node, state) {\n // Do not emit closing tags for HTML void elements.\n if (\n !state.parser.tokenizer.inForeignNode &&\n htmlVoidElements.includes(node.tagName)\n ) {\n return\n }\n\n // Ignore tags if we’re in plain text.\n if (state.parser.tokenizer.state === TokenizerMode.PLAINTEXT) return\n\n resetTokenizer(state, pointEnd(node))\n\n /** @type {TagToken} */\n const tag = {\n type: Token.TokenType.END_TAG,\n tagName: node.tagName,\n tagID: html.getTagID(node.tagName),\n selfClosing: false,\n ackSelfClosing: false,\n attrs: [],\n location: createParse5Location(node)\n }\n\n // The HTML parsing algorithm works by doing half of the state management in\n // the tokenizer and half in the parser.\n // We can’t use the tokenizer here, as we don’t have strings.\n // So we act *as if* the tokenizer emits tokens:\n\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser.currentToken = tag\n // @ts-expect-error: private.\n // type-coverage:ignore-next-line\n state.parser._processToken(state.parser.currentToken)\n\n // …but then we still need a bunch of work that the tokenizer would normally\n // do, such as:\n\n // Switch back to the data state after alternative states that don’t accept\n // tags:\n if (\n // Current element is closed.\n tag.tagName === state.parser.tokenizer.lastStartTagName &&\n // `