(function(){"use strict";try{if(typeof document!="undefined"){var o=document.createElement("style");o.appendChild(document.createTextNode(".code-diff-view[theme=light]{color:var(--fgColor-default, var(--color-fg-default));background-color:var(--bgColor-default, var(--color-canvas-default));--color-canvas-default-transparent: rgba(255,255,255,0);--color-page-header-bg: #f6f8fa;--color-marketing-icon-primary: #218bff;--color-marketing-icon-secondary: #54aeff;--color-diff-blob-addition-num-text: #1F2328;--color-diff-blob-addition-fg: #1F2328;--color-diff-blob-addition-num-bg: #ccffd8;--color-diff-blob-addition-line-bg: #e6ffec;--color-diff-blob-addition-word-bg: #abf2bc;--color-diff-blob-deletion-num-text: #1F2328;--color-diff-blob-deletion-fg: #1F2328;--color-diff-blob-deletion-num-bg: #ffd7d5;--color-diff-blob-deletion-line-bg: #ffebe9;--color-diff-blob-deletion-word-bg: rgba(255,129,130,.4);--color-diff-blob-hunk-num-bg: rgba(84,174,255,.4);--color-diff-blob-expander-icon: #656d76;--color-diff-blob-selected-line-highlight-mix-blend-mode: multiply;--color-diffstat-deletion-border: rgba(31,35,40,.15);--color-diffstat-addition-border: rgba(31,35,40,.15);--color-diffstat-addition-bg: #1f883d;--color-search-keyword-hl: #fff8c5;--color-prettylights-syntax-comment: #6e7781;--color-prettylights-syntax-constant: #0550ae;--color-prettylights-syntax-entity: #6639ba;--color-prettylights-syntax-storage-modifier-import: #24292f;--color-prettylights-syntax-entity-tag: #116329;--color-prettylights-syntax-keyword: #cf222e;--color-prettylights-syntax-string: #0a3069;--color-prettylights-syntax-variable: #953800;--color-prettylights-syntax-brackethighlighter-unmatched: #82071e;--color-prettylights-syntax-invalid-illegal-text: #f6f8fa;--color-prettylights-syntax-invalid-illegal-bg: #82071e;--color-prettylights-syntax-carriage-return-text: #f6f8fa;--color-prettylights-syntax-carriage-return-bg: #cf222e;--color-prettylights-syntax-string-regexp: #116329;--color-prettylights-syntax-markup-list: #3b2300;--color-prettylights-syntax-markup-heading: #0550ae;--color-prettylights-syntax-markup-italic: #24292f;--color-prettylights-syntax-markup-bold: #24292f;--color-prettylights-syntax-markup-deleted-text: #82071e;--color-prettylights-syntax-markup-deleted-bg: #ffebe9;--color-prettylights-syntax-markup-inserted-text: #116329;--color-prettylights-syntax-markup-inserted-bg: #dafbe1;--color-prettylights-syntax-markup-changed-text: #953800;--color-prettylights-syntax-markup-changed-bg: #ffd8b5;--color-prettylights-syntax-markup-ignored-text: #eaeef2;--color-prettylights-syntax-markup-ignored-bg: #0550ae;--color-prettylights-syntax-meta-diff-range: #8250df;--color-prettylights-syntax-brackethighlighter-angle: #57606a;--color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;--color-prettylights-syntax-constant-other-reference-link: #0a3069;--color-codemirror-text: #1F2328;--color-codemirror-bg: #ffffff;--color-codemirror-gutters-bg: #ffffff;--color-codemirror-guttermarker-text: #ffffff;--color-codemirror-guttermarker-subtle-text: #6e7781;--color-codemirror-linenumber-text: #656d76;--color-codemirror-cursor: #1F2328;--color-codemirror-selection-bg: rgba(84,174,255,.4);--color-codemirror-activeline-bg: rgba(234,238,242,.5);--color-codemirror-matchingbracket-text: #1F2328;--color-codemirror-lines-bg: #ffffff;--color-codemirror-syntax-comment: #24292f;--color-codemirror-syntax-constant: #0550ae;--color-codemirror-syntax-entity: #8250df;--color-codemirror-syntax-keyword: #cf222e;--color-codemirror-syntax-storage: #cf222e;--color-codemirror-syntax-string: #0a3069;--color-codemirror-syntax-support: #0550ae;--color-codemirror-syntax-variable: #953800;--color-checks-bg: #24292f;--color-checks-run-border-width: 0px;--color-checks-container-border-width: 0px;--color-checks-text-primary: #f6f8fa;--color-checks-text-secondary: #8c959f;--color-checks-text-link: #54aeff;--color-checks-btn-icon: #afb8c1;--color-checks-btn-hover-icon: #f6f8fa;--color-checks-btn-hover-bg: rgba(255,255,255,.125);--color-checks-input-text: #eaeef2;--color-checks-input-placeholder-text: #8c959f;--color-checks-input-focus-text: #8c959f;--color-checks-input-bg: #32383f;--color-checks-input-shadow: none;--color-checks-donut-error: #fa4549;--color-checks-donut-pending: #bf8700;--color-checks-donut-success: #1f883d;--color-checks-donut-neutral: #afb8c1;--color-checks-dropdown-text: #afb8c1;--color-checks-dropdown-bg: #32383f;--color-checks-dropdown-border: #424a53;--color-checks-dropdown-shadow: rgba(31,35,40,.3);--color-checks-dropdown-hover-text: #f6f8fa;--color-checks-dropdown-hover-bg: #424a53;--color-checks-dropdown-btn-hover-text: #f6f8fa;--color-checks-dropdown-btn-hover-bg: #32383f;--color-checks-scrollbar-thumb-bg: #57606a;--color-checks-header-label-text: #d0d7de;--color-checks-header-label-open-text: #f6f8fa;--color-checks-header-border: #32383f;--color-checks-header-icon: #8c959f;--color-checks-line-text: #d0d7de;--color-checks-line-num-text: rgba(140,149,159,.75);--color-checks-line-timestamp-text: #8c959f;--color-checks-line-hover-bg: #32383f;--color-checks-line-selected-bg: rgba(33,139,255,.15);--color-checks-line-selected-num-text: #54aeff;--color-checks-line-dt-fm-text: #24292f;--color-checks-line-dt-fm-bg: #9a6700;--color-checks-gate-bg: rgba(125,78,0,.15);--color-checks-gate-text: #d0d7de;--color-checks-gate-waiting-text: #d4a72c;--color-checks-step-header-open-bg: #32383f;--color-checks-step-error-text: #ff8182;--color-checks-step-warning-text: #d4a72c;--color-checks-logline-text: #8c959f;--color-checks-logline-num-text: rgba(140,149,159,.75);--color-checks-logline-debug-text: #c297ff;--color-checks-logline-error-text: #d0d7de;--color-checks-logline-error-num-text: #ff8182;--color-checks-logline-error-bg: rgba(164,14,38,.15);--color-checks-logline-warning-text: #d0d7de;--color-checks-logline-warning-num-text: #d4a72c;--color-checks-logline-warning-bg: rgba(125,78,0,.15);--color-checks-logline-command-text: #54aeff;--color-checks-logline-section-text: #4ac26b;--color-checks-ansi-black: #24292f;--color-checks-ansi-black-bright: #32383f;--color-checks-ansi-white: #d0d7de;--color-checks-ansi-white-bright: #d0d7de;--color-checks-ansi-gray: #8c959f;--color-checks-ansi-red: #ff8182;--color-checks-ansi-red-bright: #ffaba8;--color-checks-ansi-green: #4ac26b;--color-checks-ansi-green-bright: #6fdd8b;--color-checks-ansi-yellow: #d4a72c;--color-checks-ansi-yellow-bright: #eac54f;--color-checks-ansi-blue: #54aeff;--color-checks-ansi-blue-bright: #80ccff;--color-checks-ansi-magenta: #c297ff;--color-checks-ansi-magenta-bright: #d8b9ff;--color-checks-ansi-cyan: #76e3ea;--color-checks-ansi-cyan-bright: #b3f0ff;--color-project-header-bg: #24292f;--color-project-sidebar-bg: #ffffff;--color-project-gradient-in: #ffffff;--color-project-gradient-out: rgba(255,255,255,0);--color-mktg-btn-bg: #1b1f23;--color-mktg-btn-shadow-outline: rgb(0 0 0 / 15%) 0 0 0 1px inset;--color-mktg-btn-shadow-focus: rgb(0 0 0 / 15%) 0 0 0 4px;--color-mktg-btn-shadow-hover: 0 3px 2px rgba(0, 0, 0, .07), 0 7px 5px rgba(0, 0, 0, .04), 0 12px 10px rgba(0, 0, 0, .03), 0 22px 18px rgba(0, 0, 0, .03), 0 42px 33px rgba(0, 0, 0, .02), 0 100px 80px rgba(0, 0, 0, .02);--color-mktg-btn-shadow-hover-muted: rgb(0 0 0 / 70%) 0 0 0 2px inset;--color-control-border-color-emphasis: #858F99;--color-avatar-bg: #ffffff;--color-avatar-border: rgba(31,35,40,.15);--color-avatar-stack-fade: #afb8c1;--color-avatar-stack-fade-more: #d0d7de;--color-avatar-child-shadow: 0 0 0 2px rgba(255,255,255,.8);--color-topic-tag-border: rgba(0,0,0,0);--color-counter-border: rgba(0,0,0,0);--color-select-menu-backdrop-border: rgba(0,0,0,0);--color-select-menu-tap-highlight: rgba(175,184,193,.5);--color-select-menu-tap-focus-bg: #b6e3ff;--color-overlay-shadow: 0 1px 3px rgba(31,35,40,.12), 0 8px 24px rgba(66,74,83,.12);--color-overlay-backdrop: rgba(140,149,159,.2);--color-header-text: rgba(255,255,255,.7);--color-header-bg: #24292f;--color-header-divider: #57606a;--color-header-logo: #ffffff;--color-header-search-bg: #24292f;--color-header-search-border: #57606a;--color-sidenav-selected-bg: #ffffff;--color-menu-bg-active: rgba(0,0,0,0);--color-input-disabled-bg: rgba(175,184,193,.2);--color-timeline-badge-bg: #eaeef2;--color-ansi-black: #24292f;--color-ansi-black-bright: #57606a;--color-ansi-white: #6e7781;--color-ansi-white-bright: #8c959f;--color-ansi-gray: #6e7781;--color-ansi-red: #cf222e;--color-ansi-red-bright: #a40e26;--color-ansi-green: #116329;--color-ansi-green-bright: #1a7f37;--color-ansi-yellow: #4d2d00;--color-ansi-yellow-bright: #633c01;--color-ansi-blue: #0969da;--color-ansi-blue-bright: #218bff;--color-ansi-magenta: #8250df;--color-ansi-magenta-bright: #a475f9;--color-ansi-cyan: #1b7c83;--color-ansi-cyan-bright: #3192aa;--color-btn-text: #24292f;--color-btn-bg: #f6f8fa;--color-btn-border: rgba(31,35,40,.15);--color-btn-shadow: 0 1px 0 rgba(31,35,40,.04);--color-btn-inset-shadow: inset 0 1px 0 rgba(255,255,255,.25);--color-btn-hover-bg: #f3f4f6;--color-btn-hover-border: rgba(31,35,40,.15);--color-btn-active-bg: hsla(220,14%,93%,1);--color-btn-active-border: rgba(31,35,40,.15);--color-btn-selected-bg: hsla(220,14%,94%,1);--color-btn-counter-bg: rgba(31,35,40,.08);--color-btn-primary-text: #ffffff;--color-btn-primary-bg: #1f883d;--color-btn-primary-border: rgba(31,35,40,.15);--color-btn-primary-shadow: 0 1px 0 rgba(31,35,40,.1);--color-btn-primary-inset-shadow: inset 0 1px 0 rgba(255,255,255,.03);--color-btn-primary-hover-bg: #1a7f37;--color-btn-primary-hover-border: rgba(31,35,40,.15);--color-btn-primary-selected-bg: hsla(137,66%,28%,1);--color-btn-primary-selected-shadow: inset 0 1px 0 rgba(0,45,17,.2);--color-btn-primary-disabled-text: rgba(255,255,255,.8);--color-btn-primary-disabled-bg: #94d3a2;--color-btn-primary-disabled-border: rgba(31,35,40,.15);--color-btn-primary-icon: rgba(255,255,255,.8);--color-btn-primary-counter-bg: rgba(0,45,17,.2);--color-btn-outline-text: #0969da;--color-btn-outline-hover-text: #ffffff;--color-btn-outline-hover-bg: #0969da;--color-btn-outline-hover-border: rgba(31,35,40,.15);--color-btn-outline-hover-shadow: 0 1px 0 rgba(31,35,40,.1);--color-btn-outline-hover-inset-shadow: inset 0 1px 0 rgba(255,255,255,.03);--color-btn-outline-hover-counter-bg: rgba(255,255,255,.2);--color-btn-outline-selected-text: #ffffff;--color-btn-outline-selected-bg: hsla(212,92%,42%,1);--color-btn-outline-selected-border: rgba(31,35,40,.15);--color-btn-outline-selected-shadow: inset 0 1px 0 rgba(0,33,85,.2);--color-btn-outline-disabled-text: rgba(9,105,218,.5);--color-btn-outline-disabled-bg: #f6f8fa;--color-btn-outline-disabled-counter-bg: rgba(9,105,218,.05);--color-btn-outline-counter-bg: #0969da1a;--color-btn-outline-counter-fg: #0550ae;--color-btn-outline-hover-counter-fg: #ffffff;--color-btn-outline-disabled-counter-fg: rgba(9,105,218,.5);--color-btn-danger-text: #cf222e;--color-btn-danger-hover-text: #ffffff;--color-btn-danger-hover-bg: #a40e26;--color-btn-danger-hover-border: rgba(31,35,40,.15);--color-btn-danger-hover-shadow: 0 1px 0 rgba(31,35,40,.1);--color-btn-danger-hover-inset-shadow: inset 0 1px 0 rgba(255,255,255,.03);--color-btn-danger-hover-counter-bg: rgba(255,255,255,.2);--color-btn-danger-selected-text: #ffffff;--color-btn-danger-selected-bg: hsla(356,72%,44%,1);--color-btn-danger-selected-border: rgba(31,35,40,.15);--color-btn-danger-selected-shadow: inset 0 1px 0 rgba(76,0,20,.2);--color-btn-danger-disabled-text: rgba(207,34,46,.5);--color-btn-danger-disabled-bg: #f6f8fa;--color-btn-danger-disabled-counter-bg: rgba(207,34,46,.05);--color-btn-danger-counter-bg: rgba(207,34,46,.1);--color-btn-danger-icon: #cf222e;--color-btn-danger-hover-icon: #ffffff;--color-btn-danger-counter-fg: #a40e26;--color-btn-danger-hover-counter-fg: #ffffff;--color-btn-danger-disabled-counter-fg: rgba(207,34,46,.5);--color-underlinenav-icon: #6e7781;--color-underlinenav-border-hover: rgba(175,184,193,.2);--color-action-list-item-inline-divider: rgba(208,215,222,.48);--color-action-list-item-default-hover-bg: rgba(208,215,222,.32);--color-action-list-item-default-hover-border: rgba(0,0,0,0);--color-action-list-item-default-active-bg: rgba(208,215,222,.48);--color-action-list-item-default-active-border: rgba(0,0,0,0);--color-action-list-item-default-selected-bg: rgba(208,215,222,.24);--color-action-list-item-danger-hover-bg: rgba(255,235,233,.64);--color-action-list-item-danger-active-bg: #ffebe9;--color-action-list-item-danger-hover-text: #d1242f;--color-switch-track-bg: #eaeef2;--color-switch-track-hover-bg: hsla(210,24%,90%,1);--color-switch-track-active-bg: hsla(210,24%,88%,1);--color-switch-track-disabled-bg: #8c959f;--color-switch-track-fg: #656d76;--color-switch-track-disabled-fg: #ffffff;--color-switch-track-border: rgba(0,0,0,0);--color-switch-track-checked-bg: #0969da;--color-switch-track-checked-hover-bg: #0860CA;--color-switch-track-checked-active-bg: #0757BA;--color-switch-track-checked-fg: #ffffff;--color-switch-track-checked-disabled-fg: #ffffff;--color-switch-track-checked-border: rgba(0,0,0,0);--color-switch-knob-bg: #ffffff;--color-switch-knob-disabled-bg: #f6f8fa;--color-switch-knob-border: #858F99;--color-switch-knob-checked-bg: #ffffff;--color-switch-knob-checked-disabled-bg: #f6f8fa;--color-switch-knob-checked-border: #0969da;--color-segmented-control-bg: #eaeef2;--color-segmented-control-button-bg: #ffffff;--color-segmented-control-button-hover-bg: rgba(175,184,193,.2);--color-segmented-control-button-active-bg: rgba(175,184,193,.4);--color-segmented-control-button-selected-border: #8c959f;--color-tree-view-item-chevron-hover-bg: rgba(208,215,222,.32);--color-tree-view-item-directory-fill: #54aeff;--color-fg-default: #1F2328;--color-fg-muted: #656d76;--color-fg-subtle: #6e7781;--color-fg-on-emphasis: #ffffff;--color-canvas-default: #ffffff;--color-canvas-overlay: #ffffff;--color-canvas-inset: #f6f8fa;--color-canvas-subtle: #f6f8fa;--color-border-default: #d0d7de;--color-border-muted: hsla(210,18%,87%,1);--color-border-subtle: rgba(31,35,40,.15);--color-shadow-small: 0 1px 0 rgba(31,35,40,.04);--color-shadow-medium: 0 3px 6px rgba(140,149,159,.15);--color-shadow-large: 0 8px 24px rgba(140,149,159,.2);--color-shadow-extra-large: 0 12px 28px rgba(140,149,159,.3);--color-neutral-emphasis-plus: #24292f;--color-neutral-emphasis: #6e7781;--color-neutral-muted: rgba(175,184,193,.2);--color-neutral-subtle: rgba(234,238,242,.5);--color-accent-fg: #0969da;--color-accent-emphasis: #0969da;--color-accent-muted: rgba(84,174,255,.4);--color-accent-subtle: #ddf4ff;--color-success-fg: #1a7f37;--color-success-emphasis: #1f883d;--color-success-muted: rgba(74,194,107,.4);--color-success-subtle: #dafbe1;--color-attention-fg: #9a6700;--color-attention-emphasis: #9a6700;--color-attention-muted: rgba(212,167,44,.4);--color-attention-subtle: #fff8c5;--color-severe-fg: #bc4c00;--color-severe-emphasis: #bc4c00;--color-severe-muted: rgba(251,143,68,.4);--color-severe-subtle: #fff1e5;--color-danger-fg: #d1242f;--color-danger-emphasis: #cf222e;--color-danger-muted: rgba(255,129,130,.4);--color-danger-subtle: #ffebe9;--color-open-fg: #1a7f37;--color-open-emphasis: #1f883d;--color-open-muted: rgba(74,194,107,.4);--color-open-subtle: #dafbe1;--color-closed-fg: #d1242f;--color-closed-emphasis: #cf222e;--color-closed-muted: rgba(255,129,130,.4);--color-closed-subtle: #ffebe9;--color-done-fg: #8250df;--color-done-emphasis: #8250df;--color-done-muted: rgba(194,151,255,.4);--color-done-subtle: #fbefff;--color-sponsors-fg: #bf3989;--color-sponsors-emphasis: #bf3989;--color-sponsors-muted: rgba(255,128,200,.4);--color-sponsors-subtle: #ffeff7;--color-primer-fg-disabled: #8c959f;--color-primer-canvas-backdrop: rgba(31,35,40,.5);--color-primer-canvas-sticky: rgba(255,255,255,.95);--color-primer-border-active: #fd8c73;--color-primer-border-contrast: rgba(31,35,40,.1);--color-primer-shadow-highlight: inset 0 1px 0 rgba(255,255,255,.25);--color-primer-shadow-inset: inset 0 1px 0 rgba(208,215,222,.2);--color-scale-black: #1F2328;--color-scale-white: #ffffff;--color-scale-gray-0: #f6f8fa;--color-scale-gray-1: #eaeef2;--color-scale-gray-2: #d0d7de;--color-scale-gray-3: #afb8c1;--color-scale-gray-4: #8c959f;--color-scale-gray-5: #6e7781;--color-scale-gray-6: #57606a;--color-scale-gray-7: #424a53;--color-scale-gray-8: #32383f;--color-scale-gray-9: #24292f;--color-scale-blue-0: #ddf4ff;--color-scale-blue-1: #b6e3ff;--color-scale-blue-2: #80ccff;--color-scale-blue-3: #54aeff;--color-scale-blue-4: #218bff;--color-scale-blue-5: #0969da;--color-scale-blue-6: #0550ae;--color-scale-blue-7: #033d8b;--color-scale-blue-8: #0a3069;--color-scale-blue-9: #002155;--color-scale-green-0: #dafbe1;--color-scale-green-1: #aceebb;--color-scale-green-2: #6fdd8b;--color-scale-green-3: #4ac26b;--color-scale-green-4: #2da44e;--color-scale-green-5: #1a7f37;--color-scale-green-6: #116329;--color-scale-green-7: #044f1e;--color-scale-green-8: #003d16;--color-scale-green-9: #002d11;--color-scale-yellow-0: #fff8c5;--color-scale-yellow-1: #fae17d;--color-scale-yellow-2: #eac54f;--color-scale-yellow-3: #d4a72c;--color-scale-yellow-4: #bf8700;--color-scale-yellow-5: #9a6700;--color-scale-yellow-6: #7d4e00;--color-scale-yellow-7: #633c01;--color-scale-yellow-8: #4d2d00;--color-scale-yellow-9: #3b2300;--color-scale-orange-0: #fff1e5;--color-scale-orange-1: #ffd8b5;--color-scale-orange-2: #ffb77c;--color-scale-orange-3: #fb8f44;--color-scale-orange-4: #e16f24;--color-scale-orange-5: #bc4c00;--color-scale-orange-6: #953800;--color-scale-orange-7: #762c00;--color-scale-orange-8: #5c2200;--color-scale-orange-9: #471700;--color-scale-red-0: #ffebe9;--color-scale-red-1: #ffcecb;--color-scale-red-2: #ffaba8;--color-scale-red-3: #ff8182;--color-scale-red-4: #fa4549;--color-scale-red-5: #cf222e;--color-scale-red-6: #a40e26;--color-scale-red-7: #82071e;--color-scale-red-8: #660018;--color-scale-red-9: #4c0014;--color-scale-purple-0: #fbefff;--color-scale-purple-1: #ecd8ff;--color-scale-purple-2: #d8b9ff;--color-scale-purple-3: #c297ff;--color-scale-purple-4: #a475f9;--color-scale-purple-5: #8250df;--color-scale-purple-6: #6639ba;--color-scale-purple-7: #512a97;--color-scale-purple-8: #3e1f79;--color-scale-purple-9: #2e1461;--color-scale-pink-0: #ffeff7;--color-scale-pink-1: #ffd3eb;--color-scale-pink-2: #ffadda;--color-scale-pink-3: #ff80c8;--color-scale-pink-4: #e85aad;--color-scale-pink-5: #bf3989;--color-scale-pink-6: #99286e;--color-scale-pink-7: #772057;--color-scale-pink-8: #611347;--color-scale-pink-9: #4d0336;--color-scale-coral-0: #fff0eb;--color-scale-coral-1: #ffd6cc;--color-scale-coral-2: #ffb4a1;--color-scale-coral-3: #fd8c73;--color-scale-coral-4: #ec6547;--color-scale-coral-5: #c4432b;--color-scale-coral-6: #9e2f1c;--color-scale-coral-7: #801f0f;--color-scale-coral-8: #691105;--color-scale-coral-9: #510901}.code-diff-view[theme=light] pre code.hljs{display:block;overflow-x:auto;padding:1em}.code-diff-view[theme=light] code.hljs{padding:3px 5px}.code-diff-view[theme=light] .hljs{color:#24292e;background:#ffffff}.code-diff-view[theme=light] .hljs-doctag,.code-diff-view[theme=light] .hljs-keyword,.code-diff-view[theme=light] .hljs-meta .hljs-keyword,.code-diff-view[theme=light] .hljs-template-tag,.code-diff-view[theme=light] .hljs-template-variable,.code-diff-view[theme=light] .hljs-type,.code-diff-view[theme=light] .hljs-variable.language_{color:#d73a49}.code-diff-view[theme=light] .hljs-title,.code-diff-view[theme=light] .hljs-title.class_,.code-diff-view[theme=light] .hljs-title.class_.inherited__,.code-diff-view[theme=light] .hljs-title.function_{color:#6f42c1}.code-diff-view[theme=light] .hljs-attr,.code-diff-view[theme=light] .hljs-attribute,.code-diff-view[theme=light] .hljs-literal,.code-diff-view[theme=light] .hljs-meta,.code-diff-view[theme=light] .hljs-number,.code-diff-view[theme=light] .hljs-operator,.code-diff-view[theme=light] .hljs-variable,.code-diff-view[theme=light] .hljs-selector-attr,.code-diff-view[theme=light] .hljs-selector-class,.code-diff-view[theme=light] .hljs-selector-id{color:#005cc5}.code-diff-view[theme=light] .hljs-regexp,.code-diff-view[theme=light] .hljs-string,.code-diff-view[theme=light] .hljs-meta .hljs-string{color:#032f62}.code-diff-view[theme=light] .hljs-built_in,.code-diff-view[theme=light] .hljs-symbol{color:#e36209}.code-diff-view[theme=light] .hljs-comment,.code-diff-view[theme=light] .hljs-code,.code-diff-view[theme=light] .hljs-formula{color:#6a737d}.code-diff-view[theme=light] .hljs-name,.code-diff-view[theme=light] .hljs-quote,.code-diff-view[theme=light] .hljs-selector-tag,.code-diff-view[theme=light] .hljs-selector-pseudo{color:#22863a}.code-diff-view[theme=light] .hljs-subst{color:#24292e}.code-diff-view[theme=light] .hljs-section{color:#005cc5;font-weight:700}.code-diff-view[theme=light] .hljs-bullet{color:#735c0f}.code-diff-view[theme=light] .hljs-emphasis{color:#24292e;font-style:italic}.code-diff-view[theme=light] .hljs-strong{color:#24292e;font-weight:700}.code-diff-view[theme=light] .hljs-addition{color:#22863a;background-color:#f0fff4}.code-diff-view[theme=light] .hljs-deletion{color:#b31d28;background-color:#ffeef0}.code-diff-view[theme=dark]{color:var(--fgColor-default, var(--color-fg-default));background-color:var(--bgColor-default, var(--color-canvas-default));--color-canvas-default-transparent: rgba(13,17,23,0);--color-page-header-bg: #0d1117;--color-marketing-icon-primary: #79c0ff;--color-marketing-icon-secondary: #1f6feb;--color-diff-blob-addition-num-text: #e6edf3;--color-diff-blob-addition-fg: #e6edf3;--color-diff-blob-addition-num-bg: rgba(63,185,80,.3);--color-diff-blob-addition-line-bg: rgba(46,160,67,.15);--color-diff-blob-addition-word-bg: rgba(46,160,67,.4);--color-diff-blob-deletion-num-text: #e6edf3;--color-diff-blob-deletion-fg: #e6edf3;--color-diff-blob-deletion-num-bg: rgba(248,81,73,.3);--color-diff-blob-deletion-line-bg: rgba(248,81,73,.1);--color-diff-blob-deletion-word-bg: rgba(248,81,73,.4);--color-diff-blob-hunk-num-bg: rgba(56,139,253,.4);--color-diff-blob-expander-icon: #7d8590;--color-diff-blob-selected-line-highlight-mix-blend-mode: screen;--color-diffstat-deletion-border: rgba(240,246,252,.1);--color-diffstat-addition-border: rgba(240,246,252,.1);--color-diffstat-addition-bg: #3fb950;--color-search-keyword-hl: rgba(210,153,34,.4);--color-prettylights-syntax-comment: #8b949e;--color-prettylights-syntax-constant: #79c0ff;--color-prettylights-syntax-entity: #d2a8ff;--color-prettylights-syntax-storage-modifier-import: #c9d1d9;--color-prettylights-syntax-entity-tag: #7ee787;--color-prettylights-syntax-keyword: #ff7b72;--color-prettylights-syntax-string: #a5d6ff;--color-prettylights-syntax-variable: #ffa657;--color-prettylights-syntax-brackethighlighter-unmatched: #f85149;--color-prettylights-syntax-invalid-illegal-text: #f0f6fc;--color-prettylights-syntax-invalid-illegal-bg: #8e1519;--color-prettylights-syntax-carriage-return-text: #f0f6fc;--color-prettylights-syntax-carriage-return-bg: #b62324;--color-prettylights-syntax-string-regexp: #7ee787;--color-prettylights-syntax-markup-list: #f2cc60;--color-prettylights-syntax-markup-heading: #1f6feb;--color-prettylights-syntax-markup-italic: #c9d1d9;--color-prettylights-syntax-markup-bold: #c9d1d9;--color-prettylights-syntax-markup-deleted-text: #ffdcd7;--color-prettylights-syntax-markup-deleted-bg: #67060c;--color-prettylights-syntax-markup-inserted-text: #aff5b4;--color-prettylights-syntax-markup-inserted-bg: #033a16;--color-prettylights-syntax-markup-changed-text: #ffdfb6;--color-prettylights-syntax-markup-changed-bg: #5a1e02;--color-prettylights-syntax-markup-ignored-text: #c9d1d9;--color-prettylights-syntax-markup-ignored-bg: #1158c7;--color-prettylights-syntax-meta-diff-range: #d2a8ff;--color-prettylights-syntax-brackethighlighter-angle: #8b949e;--color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;--color-prettylights-syntax-constant-other-reference-link: #a5d6ff;--color-codemirror-text: #e6edf3;--color-codemirror-bg: #0d1117;--color-codemirror-gutters-bg: #0d1117;--color-codemirror-guttermarker-text: #0d1117;--color-codemirror-guttermarker-subtle-text: #6e7681;--color-codemirror-linenumber-text: #7d8590;--color-codemirror-cursor: #e6edf3;--color-codemirror-selection-bg: rgba(56,139,253,.4);--color-codemirror-activeline-bg: rgba(110,118,129,.1);--color-codemirror-matchingbracket-text: #e6edf3;--color-codemirror-lines-bg: #0d1117;--color-codemirror-syntax-comment: #8b949e;--color-codemirror-syntax-constant: #79c0ff;--color-codemirror-syntax-entity: #d2a8ff;--color-codemirror-syntax-keyword: #ff7b72;--color-codemirror-syntax-storage: #ff7b72;--color-codemirror-syntax-string: #a5d6ff;--color-codemirror-syntax-support: #79c0ff;--color-codemirror-syntax-variable: #ffa657;--color-checks-bg: #010409;--color-checks-run-border-width: 1px;--color-checks-container-border-width: 1px;--color-checks-text-primary: #e6edf3;--color-checks-text-secondary: #7d8590;--color-checks-text-link: #2f81f7;--color-checks-btn-icon: #7d8590;--color-checks-btn-hover-icon: #e6edf3;--color-checks-btn-hover-bg: rgba(110,118,129,.1);--color-checks-input-text: #7d8590;--color-checks-input-placeholder-text: #6e7681;--color-checks-input-focus-text: #e6edf3;--color-checks-input-bg: #161b22;--color-checks-donut-error: #f85149;--color-checks-donut-pending: #d29922;--color-checks-donut-success: #2ea043;--color-checks-donut-neutral: #8b949e;--color-checks-dropdown-text: #e6edf3;--color-checks-dropdown-bg: #161b22;--color-checks-dropdown-border: #30363d;--color-checks-dropdown-shadow: rgba(1,4,9,.3);--color-checks-dropdown-hover-text: #e6edf3;--color-checks-dropdown-hover-bg: rgba(110,118,129,.1);--color-checks-dropdown-btn-hover-text: #e6edf3;--color-checks-dropdown-btn-hover-bg: rgba(110,118,129,.1);--color-checks-scrollbar-thumb-bg: rgba(110,118,129,.4);--color-checks-header-label-text: #7d8590;--color-checks-header-label-open-text: #e6edf3;--color-checks-header-border: #21262d;--color-checks-header-icon: #7d8590;--color-checks-line-text: #7d8590;--color-checks-line-num-text: #6e7681;--color-checks-line-timestamp-text: #6e7681;--color-checks-line-hover-bg: rgba(110,118,129,.1);--color-checks-line-selected-bg: rgba(56,139,253,.1);--color-checks-line-selected-num-text: #2f81f7;--color-checks-line-dt-fm-text: #ffffff;--color-checks-line-dt-fm-bg: #9e6a03;--color-checks-gate-bg: rgba(187,128,9,.15);--color-checks-gate-text: #7d8590;--color-checks-gate-waiting-text: #d29922;--color-checks-step-header-open-bg: #161b22;--color-checks-step-error-text: #f85149;--color-checks-step-warning-text: #d29922;--color-checks-logline-text: #7d8590;--color-checks-logline-num-text: #6e7681;--color-checks-logline-debug-text: #a371f7;--color-checks-logline-error-text: #7d8590;--color-checks-logline-error-num-text: #6e7681;--color-checks-logline-error-bg: rgba(248,81,73,.1);--color-checks-logline-warning-text: #7d8590;--color-checks-logline-warning-num-text: #d29922;--color-checks-logline-warning-bg: rgba(187,128,9,.15);--color-checks-logline-command-text: #2f81f7;--color-checks-logline-section-text: #3fb950;--color-checks-ansi-black: #0d1117;--color-checks-ansi-black-bright: #161b22;--color-checks-ansi-white: #b1bac4;--color-checks-ansi-white-bright: #b1bac4;--color-checks-ansi-gray: #6e7681;--color-checks-ansi-red: #ff7b72;--color-checks-ansi-red-bright: #ffa198;--color-checks-ansi-green: #3fb950;--color-checks-ansi-green-bright: #56d364;--color-checks-ansi-yellow: #d29922;--color-checks-ansi-yellow-bright: #e3b341;--color-checks-ansi-blue: #58a6ff;--color-checks-ansi-blue-bright: #79c0ff;--color-checks-ansi-magenta: #bc8cff;--color-checks-ansi-magenta-bright: #d2a8ff;--color-checks-ansi-cyan: #76e3ea;--color-checks-ansi-cyan-bright: #b3f0ff;--color-project-header-bg: #0d1117;--color-project-sidebar-bg: #161b22;--color-project-gradient-in: #161b22;--color-project-gradient-out: rgba(22,27,34,0);--color-mktg-btn-bg: #f6f8fa;--color-mktg-btn-shadow-outline: rgb(255 255 255 / 25%) 0 0 0 1px inset;--color-mktg-btn-shadow-focus: rgb(255 255 255 / 25%) 0 0 0 4px;--color-mktg-btn-shadow-hover: 0 4px 7px rgba(0, 0, 0, .15), 0 100px 80px rgba(255, 255, 255, .02), 0 42px 33px rgba(255, 255, 255, .024), 0 22px 18px rgba(255, 255, 255, .028), 0 12px 10px rgba(255, 255, 255, .034), 0 7px 5px rgba(255, 255, 255, .04), 0 3px 2px rgba(255, 255, 255, .07);--color-mktg-btn-shadow-hover-muted: rgb(255 255 255) 0 0 0 2px inset;--color-control-border-color-emphasis: #606771;--color-avatar-bg: rgba(255,255,255,.1);--color-avatar-border: rgba(240,246,252,.1);--color-avatar-stack-fade: #30363d;--color-avatar-stack-fade-more: #21262d;--color-avatar-child-shadow: 0 0 0 2px #0d1117;--color-topic-tag-border: rgba(0,0,0,0);--color-counter-border: rgba(0,0,0,0);--color-select-menu-backdrop-border: #484f58;--color-select-menu-tap-highlight: rgba(48,54,61,.5);--color-select-menu-tap-focus-bg: #0c2d6b;--color-overlay-shadow: 0 0 0 1px #30363d, 0 16px 32px rgba(1,4,9,.85);--color-overlay-backdrop: rgba(22,27,34,.4);--color-header-text: rgba(255,255,255,.7);--color-header-bg: #161b22;--color-header-divider: #8b949e;--color-header-logo: #f0f6fc;--color-header-search-bg: #0d1117;--color-header-search-border: #30363d;--color-sidenav-selected-bg: #21262d;--color-menu-bg-active: #161b22;--color-input-disabled-bg: rgba(110,118,129,0);--color-timeline-badge-bg: #21262d;--color-ansi-black: #484f58;--color-ansi-black-bright: #6e7681;--color-ansi-white: #b1bac4;--color-ansi-white-bright: #ffffff;--color-ansi-gray: #6e7681;--color-ansi-red: #ff7b72;--color-ansi-red-bright: #ffa198;--color-ansi-green: #3fb950;--color-ansi-green-bright: #56d364;--color-ansi-yellow: #d29922;--color-ansi-yellow-bright: #e3b341;--color-ansi-blue: #58a6ff;--color-ansi-blue-bright: #79c0ff;--color-ansi-magenta: #bc8cff;--color-ansi-magenta-bright: #d2a8ff;--color-ansi-cyan: #39c5cf;--color-ansi-cyan-bright: #56d4dd;--color-btn-text: #c9d1d9;--color-btn-bg: #21262d;--color-btn-border: rgba(240,246,252,.1);--color-btn-shadow: 0 0 transparent;--color-btn-inset-shadow: 0 0 transparent;--color-btn-hover-bg: #30363d;--color-btn-hover-border: #8b949e;--color-btn-active-bg: hsla(212,12%,18%,1);--color-btn-active-border: #6e7681;--color-btn-selected-bg: #161b22;--color-btn-counter-bg: #30363d;--color-btn-primary-text: #ffffff;--color-btn-primary-bg: #238636;--color-btn-primary-border: rgba(240,246,252,.1);--color-btn-primary-shadow: 0 0 transparent;--color-btn-primary-inset-shadow: 0 0 transparent;--color-btn-primary-hover-bg: #2ea043;--color-btn-primary-hover-border: rgba(240,246,252,.1);--color-btn-primary-selected-bg: #238636;--color-btn-primary-selected-shadow: 0 0 transparent;--color-btn-primary-disabled-text: rgba(255,255,255,.5);--color-btn-primary-disabled-bg: rgba(35,134,54,.6);--color-btn-primary-disabled-border: rgba(240,246,252,.1);--color-btn-primary-icon: #ffffff;--color-btn-primary-counter-bg: rgba(4,38,15,.2);--color-btn-outline-text: #388bfd;--color-btn-outline-hover-text: #58a6ff;--color-btn-outline-hover-bg: #30363d;--color-btn-outline-hover-border: rgba(240,246,252,.1);--color-btn-outline-hover-shadow: 0 1px 0 rgba(1,4,9,.1);--color-btn-outline-hover-inset-shadow: inset 0 1px 0 rgba(255,255,255,.03);--color-btn-outline-hover-counter-bg: rgba(5,29,77,.2);--color-btn-outline-selected-text: #ffffff;--color-btn-outline-selected-bg: #0d419d;--color-btn-outline-selected-border: rgba(240,246,252,.1);--color-btn-outline-selected-shadow: 0 0 transparent;--color-btn-outline-disabled-text: rgba(88,166,255,.5);--color-btn-outline-disabled-bg: #0d1117;--color-btn-outline-disabled-counter-bg: rgba(31,111,235,.05);--color-btn-outline-counter-bg: rgba(5,29,77,.2);--color-btn-outline-hover-counter-fg: #58a6ff;--color-btn-outline-disabled-counter-fg: rgba(47,129,247,.5);--color-btn-outline-counter-fg: #388bfd;--color-btn-danger-text: #f85149;--color-btn-danger-hover-text: #ffffff;--color-btn-danger-hover-bg: #da3633;--color-btn-danger-hover-border: #f85149;--color-btn-danger-hover-shadow: 0 0 transparent;--color-btn-danger-hover-inset-shadow: 0 0 transparent;--color-btn-danger-hover-icon: #ffffff;--color-btn-danger-hover-counter-bg: rgba(255,255,255,.2);--color-btn-danger-selected-text: #ffffff;--color-btn-danger-selected-bg: #b62324;--color-btn-danger-selected-border: #ff7b72;--color-btn-danger-selected-shadow: 0 0 transparent;--color-btn-danger-disabled-text: rgba(248,81,73,.5);--color-btn-danger-disabled-bg: #0d1117;--color-btn-danger-disabled-counter-bg: rgba(218,54,51,.05);--color-btn-danger-counter-bg: rgba(73,2,2,.2);--color-btn-danger-icon: #f85149;--color-btn-danger-counter-fg: #f85149;--color-btn-danger-disabled-counter-fg: rgba(248,81,73,.5);--color-btn-danger-hover-counter-fg: #ffffff;--color-underlinenav-icon: #6e7681;--color-underlinenav-border-hover: rgba(110,118,129,.4);--color-action-list-item-inline-divider: rgba(48,54,61,.48);--color-action-list-item-default-hover-bg: rgba(177,186,196,.12);--color-action-list-item-default-hover-border: rgba(0,0,0,0);--color-action-list-item-default-active-bg: rgba(177,186,196,.2);--color-action-list-item-default-active-border: rgba(0,0,0,0);--color-action-list-item-default-selected-bg: rgba(177,186,196,.08);--color-action-list-item-danger-hover-bg: rgba(248,81,73,.16);--color-action-list-item-danger-active-bg: rgba(248,81,73,.24);--color-action-list-item-danger-hover-text: #ff7b72;--color-switch-track-bg: rgba(110,118,129,.1);--color-switch-track-hover-bg: hsla(215,8%,72%,.1);--color-switch-track-active-bg: rgba(110,118,129,.4);--color-switch-track-disabled-bg: #21262d;--color-switch-track-fg: #7d8590;--color-switch-track-disabled-fg: #010409;--color-switch-track-border: rgba(0,0,0,0);--color-switch-track-checked-bg: rgba(31,111,235,.35);--color-switch-track-checked-hover-bg: rgba(31,111,235,.5);--color-switch-track-checked-active-bg: rgba(31,111,235,.65);--color-switch-track-checked-fg: #ffffff;--color-switch-track-checked-disabled-fg: #010409;--color-switch-track-checked-border: rgba(0,0,0,0);--color-switch-knob-bg: #0d1117;--color-switch-knob-border: #606771;--color-switch-knob-disabled-bg: #161b22;--color-switch-knob-checked-bg: #0d1117;--color-switch-knob-checked-disabled-bg: #161b22;--color-switch-knob-checked-border: rgba(31,111,235,.35);--color-segmented-control-bg: rgba(110,118,129,.1);--color-segmented-control-button-bg: #0d1117;--color-segmented-control-button-hover-bg: #30363d;--color-segmented-control-button-active-bg: #21262d;--color-segmented-control-button-selected-border: #6e7681;--color-tree-view-item-chevron-hover-bg: rgba(177,186,196,.12);--color-tree-view-item-directory-fill: #7d8590;--color-fg-default: #e6edf3;--color-fg-muted: #7d8590;--color-fg-subtle: #6e7681;--color-fg-on-emphasis: #ffffff;--color-canvas-default: #0d1117;--color-canvas-overlay: #161b22;--color-canvas-inset: #010409;--color-canvas-subtle: #161b22;--color-border-default: #30363d;--color-border-muted: #21262d;--color-border-subtle: rgba(240,246,252,.1);--color-shadow-small: 0 0 transparent;--color-shadow-medium: 0 3px 6px #010409;--color-shadow-large: 0 8px 24px #010409;--color-shadow-extra-large: 0 12px 48px #010409;--color-neutral-emphasis-plus: #6e7681;--color-neutral-emphasis: #6e7681;--color-neutral-muted: rgba(110,118,129,.4);--color-neutral-subtle: rgba(110,118,129,.1);--color-accent-fg: #2f81f7;--color-accent-emphasis: #1f6feb;--color-accent-muted: rgba(56,139,253,.4);--color-accent-subtle: rgba(56,139,253,.1);--color-success-fg: #3fb950;--color-success-emphasis: #238636;--color-success-muted: rgba(46,160,67,.4);--color-success-subtle: rgba(46,160,67,.15);--color-attention-fg: #d29922;--color-attention-emphasis: #9e6a03;--color-attention-muted: rgba(187,128,9,.4);--color-attention-subtle: rgba(187,128,9,.15);--color-severe-fg: #db6d28;--color-severe-emphasis: #bd561d;--color-severe-muted: rgba(219,109,40,.4);--color-severe-subtle: rgba(219,109,40,.1);--color-danger-fg: #f85149;--color-danger-emphasis: #da3633;--color-danger-muted: rgba(248,81,73,.4);--color-danger-subtle: rgba(248,81,73,.1);--color-open-fg: #3fb950;--color-open-emphasis: #238636;--color-open-muted: rgba(46,160,67,.4);--color-open-subtle: rgba(46,160,67,.15);--color-closed-fg: #f85149;--color-closed-emphasis: #da3633;--color-closed-muted: rgba(248,81,73,.4);--color-closed-subtle: rgba(248,81,73,.15);--color-done-fg: #a371f7;--color-done-emphasis: #8957e5;--color-done-muted: rgba(163,113,247,.4);--color-done-subtle: rgba(163,113,247,.1);--color-sponsors-fg: #db61a2;--color-sponsors-emphasis: #bf4b8a;--color-sponsors-muted: rgba(219,97,162,.4);--color-sponsors-subtle: rgba(219,97,162,.1);--color-primer-fg-disabled: #484f58;--color-primer-canvas-backdrop: rgba(1,4,9,.8);--color-primer-canvas-sticky: rgba(13,17,23,.95);--color-primer-border-active: #f78166;--color-primer-border-contrast: rgba(255,255,255,.2);--color-primer-shadow-highlight: 0 0 transparent;--color-primer-shadow-inset: 0 0 transparent;--color-scale-black: #010409;--color-scale-white: #ffffff;--color-scale-gray-0: #f0f6fc;--color-scale-gray-1: #c9d1d9;--color-scale-gray-2: #b1bac4;--color-scale-gray-3: #8b949e;--color-scale-gray-4: #6e7681;--color-scale-gray-5: #484f58;--color-scale-gray-6: #30363d;--color-scale-gray-7: #21262d;--color-scale-gray-8: #161b22;--color-scale-gray-9: #0d1117;--color-scale-blue-0: #cae8ff;--color-scale-blue-1: #a5d6ff;--color-scale-blue-2: #79c0ff;--color-scale-blue-3: #58a6ff;--color-scale-blue-4: #388bfd;--color-scale-blue-5: #1f6feb;--color-scale-blue-6: #1158c7;--color-scale-blue-7: #0d419d;--color-scale-blue-8: #0c2d6b;--color-scale-blue-9: #051d4d;--color-scale-green-0: #aff5b4;--color-scale-green-1: #7ee787;--color-scale-green-2: #56d364;--color-scale-green-3: #3fb950;--color-scale-green-4: #2ea043;--color-scale-green-5: #238636;--color-scale-green-6: #196c2e;--color-scale-green-7: #0f5323;--color-scale-green-8: #033a16;--color-scale-green-9: #04260f;--color-scale-yellow-0: #f8e3a1;--color-scale-yellow-1: #f2cc60;--color-scale-yellow-2: #e3b341;--color-scale-yellow-3: #d29922;--color-scale-yellow-4: #bb8009;--color-scale-yellow-5: #9e6a03;--color-scale-yellow-6: #845306;--color-scale-yellow-7: #693e00;--color-scale-yellow-8: #4b2900;--color-scale-yellow-9: #341a00;--color-scale-orange-0: #ffdfb6;--color-scale-orange-1: #ffc680;--color-scale-orange-2: #ffa657;--color-scale-orange-3: #f0883e;--color-scale-orange-4: #db6d28;--color-scale-orange-5: #bd561d;--color-scale-orange-6: #9b4215;--color-scale-orange-7: #762d0a;--color-scale-orange-8: #5a1e02;--color-scale-orange-9: #3d1300;--color-scale-red-0: #ffdcd7;--color-scale-red-1: #ffc1ba;--color-scale-red-2: #ffa198;--color-scale-red-3: #ff7b72;--color-scale-red-4: #f85149;--color-scale-red-5: #da3633;--color-scale-red-6: #b62324;--color-scale-red-7: #8e1519;--color-scale-red-8: #67060c;--color-scale-red-9: #490202;--color-scale-purple-0: #eddeff;--color-scale-purple-1: #e2c5ff;--color-scale-purple-2: #d2a8ff;--color-scale-purple-3: #bc8cff;--color-scale-purple-4: #a371f7;--color-scale-purple-5: #8957e5;--color-scale-purple-6: #6e40c9;--color-scale-purple-7: #553098;--color-scale-purple-8: #3c1e70;--color-scale-purple-9: #271052;--color-scale-pink-0: #ffdaec;--color-scale-pink-1: #ffbedd;--color-scale-pink-2: #ff9bce;--color-scale-pink-3: #f778ba;--color-scale-pink-4: #db61a2;--color-scale-pink-5: #bf4b8a;--color-scale-pink-6: #9e3670;--color-scale-pink-7: #7d2457;--color-scale-pink-8: #5e103e;--color-scale-pink-9: #42062a;--color-scale-coral-0: #ffddd2;--color-scale-coral-1: #ffc2b2;--color-scale-coral-2: #ffa28b;--color-scale-coral-3: #f78166;--color-scale-coral-4: #ea6045;--color-scale-coral-5: #cf462d;--color-scale-coral-6: #ac3220;--color-scale-coral-7: #872012;--color-scale-coral-8: #640d04;--color-scale-coral-9: #460701}.code-diff-view[theme=dark] pre code.hljs{display:block;overflow-x:auto;padding:1em}.code-diff-view[theme=dark] code.hljs{padding:3px 5px}.code-diff-view[theme=dark] .hljs{color:#c9d1d9;background:#0d1117}.code-diff-view[theme=dark] .hljs-doctag,.code-diff-view[theme=dark] .hljs-keyword,.code-diff-view[theme=dark] .hljs-meta .hljs-keyword,.code-diff-view[theme=dark] .hljs-template-tag,.code-diff-view[theme=dark] .hljs-template-variable,.code-diff-view[theme=dark] .hljs-type,.code-diff-view[theme=dark] .hljs-variable.language_{color:#ff7b72}.code-diff-view[theme=dark] .hljs-title,.code-diff-view[theme=dark] .hljs-title.class_,.code-diff-view[theme=dark] .hljs-title.class_.inherited__,.code-diff-view[theme=dark] .hljs-title.function_{color:#d2a8ff}.code-diff-view[theme=dark] .hljs-attr,.code-diff-view[theme=dark] .hljs-attribute,.code-diff-view[theme=dark] .hljs-literal,.code-diff-view[theme=dark] .hljs-meta,.code-diff-view[theme=dark] .hljs-number,.code-diff-view[theme=dark] .hljs-operator,.code-diff-view[theme=dark] .hljs-variable,.code-diff-view[theme=dark] .hljs-selector-attr,.code-diff-view[theme=dark] .hljs-selector-class,.code-diff-view[theme=dark] .hljs-selector-id{color:#79c0ff}.code-diff-view[theme=dark] .hljs-regexp,.code-diff-view[theme=dark] .hljs-string,.code-diff-view[theme=dark] .hljs-meta .hljs-string{color:#a5d6ff}.code-diff-view[theme=dark] .hljs-built_in,.code-diff-view[theme=dark] .hljs-symbol{color:#ffa657}.code-diff-view[theme=dark] .hljs-comment,.code-diff-view[theme=dark] .hljs-code,.code-diff-view[theme=dark] .hljs-formula{color:#8b949e}.code-diff-view[theme=dark] .hljs-name,.code-diff-view[theme=dark] .hljs-quote,.code-diff-view[theme=dark] .hljs-selector-tag,.code-diff-view[theme=dark] .hljs-selector-pseudo{color:#7ee787}.code-diff-view[theme=dark] .hljs-subst{color:#c9d1d9}.code-diff-view[theme=dark] .hljs-section{color:#1f6feb;font-weight:700}.code-diff-view[theme=dark] .hljs-bullet{color:#f2cc60}.code-diff-view[theme=dark] .hljs-emphasis{color:#c9d1d9;font-style:italic}.code-diff-view[theme=dark] .hljs-strong{color:#c9d1d9;font-weight:700}.code-diff-view[theme=dark] .hljs-addition{color:#aff5b4;background-color:#033a16}.code-diff-view[theme=dark] .hljs-deletion{color:#ffdcd7;background-color:#67060c}.code-diff-view{position:relative;margin-top:16px;margin-bottom:16px;border:1px solid var(--color-border-default, #ddd);border-radius:6px;overflow-y:auto}.code-diff-view *{position:static;box-sizing:border-box}.code-diff-view .file-header{position:sticky;top:0;z-index:1;background-color:var(--color-canvas-subtle);border-bottom:1px solid var(--color-border-default);padding:8px 16px;font-size:12px;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace}.code-diff-view .file-header .file-info{display:flex;justify-content:space-between;align-items:center;margin-left:8px;height:24px}.code-diff-view .file-header .file-info .info-left{color:var(--color-fg-default)}.code-diff-view .file-header .file-info .info-right{display:flex;justify-content:space-between;align-items:center;width:50%}.code-diff-view .file-header .file-info .diff-stat{display:inline-flex;align-items:center;gap:8px}.code-diff-view .file-header .file-info .diff-stat .diff-stat-added{color:var(--color-diffstat-addition-bg)}.code-diff-view .file-header .file-info .diff-stat .diff-stat-deleted{color:var(--color-danger-emphasis)}.code-diff-view .file-header .file-info .diff-stat .diff-stat-ignored{color:var(--color-fg-subtle)}.code-diff-view .file-header .file-info .diff-commandbar{margin-left:auto;margin-right:1rem}.code-diff-view .file-header .file-info .diff-commandbar .command-item-button{background-color:transparent;color:var(--color-fg-subtle);border:none}.code-diff-view .file-header .file-info .diff-commandbar .command-item-button svg{fill:var(--color-fg-subtle)}.code-diff-view .file-header .file-info .diff-commandbar .command-item-button:hover{background-color:var(--color-btn-outline-hover-border)}.code-diff-view table{border-spacing:0}.code-diff-view .diff-table{width:100%}.code-diff-view .diff-table .blob-num{position:relative;width:1%;min-width:50px;padding-right:10px;padding-left:10px;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:12px;line-height:20px;color:var(--color-fg-subtle);text-align:right;white-space:nowrap;vertical-align:top;cursor:pointer;-webkit-user-select:none;user-select:none}.code-diff-view .diff-table .blob-num-deletion{color:var(--color-diff-blob-deletion-num-text);background-color:var(--color-diff-blob-deletion-num-bg);border-color:var(--color-danger-emphasis)}.code-diff-view .diff-table .blob-num-addition{color:var(--color-diff-blob-addition-num-text);background-color:var(--color-diff-blob-addition-num-bg);border-color:var(--color-success-emphasis)}.code-diff-view .diff-table .blob-code{position:relative;padding-right:10px;padding-left:10px;line-height:20px;vertical-align:top}.code-diff-view .diff-table .blob-code .blob-code-inner{display:table-cell;overflow:visible;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:12px;color:var(--color-fg-default);word-wrap:anywhere;white-space:pre-wrap}.code-diff-view .diff-table .blob-code-deletion{background-color:var(--color-diff-blob-deletion-line-bg);outline:1px dashed transparent}.code-diff-view .diff-table .blob-code-deletion .x{color:var(--color-diff-blob-deletion-fg);background-color:var(--color-diff-blob-deletion-word-bg)}.code-diff-view .diff-table .blob-code-addition{background-color:var(--color-diff-blob-addition-line-bg);outline:1px dotted transparent}.code-diff-view .diff-table .blob-code-addition .x{color:var(--color-diff-blob-addition-fg);background-color:var(--color-diff-blob-addition-word-bg)}.code-diff-view .diff-table .current-diff{border:1px solid var(--color-border-muted)}.code-diff-view .diff-table .blob-code-context,.code-diff-view .diff-table .blob-code-addition,.code-diff-view .diff-table .blob-code-deletion{padding-left:22px!important}.code-diff-view .diff-table .blob-code-marker:before{position:absolute;top:1px;left:8px;padding-right:8px;content:attr(data-code-marker)}.code-diff-view .diff-table .blob-num-hunk{background-color:var(--color-diff-blob-hunk-num-bg)}.code-diff-view .diff-table .blob-code-hunk{background-color:var(--color-accent-subtle)}.code-diff-view .file-diff-split{table-layout:fixed}.code-diff-view .file-diff-split .blob-code+.blob-num{border-left:1px solid var(--color-border-muted)}.code-diff-view .file-diff-split .no-select{user-select:none}.code-diff-view .empty-cell{cursor:default;background-color:var(--color-neutral-subtle);border-right-color:var(--color-border-muted)}")),document.head.appendChild(o)}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}})();
import Ln, { defineComponent as be, computed as he, ref as We, watch as On } from "vue";
Ln.util.warn;
function ne() {
}
ne.prototype = {
diff: function(e, s) {
var u = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}, h = u.callback;
typeof u == "function" && (h = u, u = {}), this.options = u;
var t = this;
function r(_) {
return h ? (setTimeout(function() {
h(void 0, _);
}, 0), !0) : _;
}
e = this.castInput(e), s = this.castInput(s), e = this.removeEmpty(this.tokenize(e)), s = this.removeEmpty(this.tokenize(s));
var i = s.length, a = e.length, o = 1, l = i + a;
u.maxEditLength && (l = Math.min(l, u.maxEditLength));
var c = [{
newPos: -1,
components: []
}], f = this.extractCommon(c[0], s, e, 0);
if (c[0].newPos + 1 >= i && f + 1 >= a)
return r([{
value: this.join(s),
count: s.length
}]);
function g() {
for (var _ = -1 * o; _ <= o; _ += 2) {
var p = void 0, v = c[_ - 1], m = c[_ + 1], E = (m ? m.newPos : 0) - _;
v && (c[_ - 1] = void 0);
var A = v && v.newPos + 1 < i, S = m && 0 <= E && E < a;
if (!A && !S) {
c[_] = void 0;
continue;
}
if (!A || S && v.newPos < m.newPos ? (p = kn(m), t.pushComponent(p.components, void 0, !0)) : (p = v, p.newPos++, t.pushComponent(p.components, !0, void 0)), E = t.extractCommon(p, s, e, _), p.newPos + 1 >= i && E + 1 >= a)
return r(In(t, p.components, s, e, t.useLongestToken));
c[_] = p;
}
o++;
}
if (h)
(function _() {
setTimeout(function() {
if (o > l)
return h();
g() || _();
}, 0);
})();
else
for (; o <= l; ) {
var d = g();
if (d)
return d;
}
},
pushComponent: function(e, s, u) {
var h = e[e.length - 1];
h && h.added === s && h.removed === u ? e[e.length - 1] = {
count: h.count + 1,
added: s,
removed: u
} : e.push({
count: 1,
added: s,
removed: u
});
},
extractCommon: function(e, s, u, h) {
for (var t = s.length, r = u.length, i = e.newPos, a = i - h, o = 0; i + 1 < t && a + 1 < r && this.equals(s[i + 1], u[a + 1]); )
i++, a++, o++;
return o && e.components.push({
count: o
}), e.newPos = i, a;
},
equals: function(e, s) {
return this.options.comparator ? this.options.comparator(e, s) : e === s || this.options.ignoreCase && e.toLowerCase() === s.toLowerCase();
},
removeEmpty: function(e) {
for (var s = [], u = 0; u < e.length; u++)
e[u] && s.push(e[u]);
return s;
},
castInput: function(e) {
return e;
},
tokenize: function(e) {
return e.split("");
},
join: function(e) {
return e.join("");
}
};
function In(n, e, s, u, h) {
for (var t = 0, r = e.length, i = 0, a = 0; t < r; t++) {
var o = e[t];
if (o.removed) {
if (o.value = n.join(u.slice(a, a + o.count)), a += o.count, t && e[t - 1].added) {
var c = e[t - 1];
e[t - 1] = e[t], e[t] = c;
}
} else {
if (!o.added && h) {
var l = s.slice(i, i + o.count);
l = l.map(function(g, d) {
var _ = u[a + d];
return _.length > g.length ? _ : g;
}), o.value = n.join(l);
} else
o.value = n.join(s.slice(i, i + o.count));
i += o.count, o.added || (a += o.count);
}
}
var f = e[r - 1];
return r > 1 && typeof f.value == "string" && (f.added || f.removed) && n.equals("", f.value) && (e[r - 2].value += f.value, e.pop()), e;
}
function kn(n) {
return {
newPos: n.newPos,
components: n.components.slice(0)
};
}
var Bn = new ne();
function $n(n, e, s) {
return Bn.diff(n, e, s);
}
function Un(n, e) {
if (typeof n == "function")
e.callback = n;
else if (n)
for (var s in n)
n.hasOwnProperty(s) && (e[s] = n[s]);
return e;
}
var Qe = /^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/, Ve = /\S/, Be = new ne();
Be.equals = function(n, e) {
return this.options.ignoreCase && (n = n.toLowerCase(), e = e.toLowerCase()), n === e || this.options.ignoreWhitespace && !Ve.test(n) && !Ve.test(e);
};
Be.tokenize = function(n) {
for (var e = n.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/), s = 0; s < e.length - 1; s++)
!e[s + 1] && e[s + 2] && Qe.test(e[s]) && Qe.test(e[s + 2]) && (e[s] += e[s + 2], e.splice(s + 1, 2), s--);
return e;
};
function Pn(n, e, s) {
return s = Un(s, {
ignoreWhitespace: !0
}), Be.diff(n, e, s);
}
var rn = new ne();
rn.tokenize = function(n) {
var e = [], s = n.split(/(\n|\r\n)/);
s[s.length - 1] || s.pop();
for (var u = 0; u < s.length; u++) {
var h = s[u];
u % 2 && !this.options.newlineIsToken ? e[e.length - 1] += h : (this.options.ignoreWhitespace && (h = h.trim()), e.push(h));
}
return e;
};
var xn = new ne();
xn.tokenize = function(n) {
return n.split(/(\S.+?[.!?])(?=\s+|$)/);
};
var Fn = new ne();
Fn.tokenize = function(n) {
return n.split(/([{}:;,]|\s+)/);
};
function Ne(n) {
"@babel/helpers - typeof";
return typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? Ne = function(e) {
return typeof e;
} : Ne = function(e) {
return e && typeof Symbol == "function" && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e;
}, Ne(n);
}
var Hn = Object.prototype.toString, de = new ne();
de.useLongestToken = !0;
de.tokenize = rn.tokenize;
de.castInput = function(n) {
var e = this.options, s = e.undefinedReplacement, u = e.stringifyReplacer, h = u === void 0 ? function(t, r) {
return typeof r == "undefined" ? s : r;
} : u;
return typeof n == "string" ? n : JSON.stringify(Ie(n, null, null, h), h, " ");
};
de.equals = function(n, e) {
return ne.prototype.equals.call(de, n.replace(/,([\r\n])/g, "$1"), e.replace(/,([\r\n])/g, "$1"));
};
function Ie(n, e, s, u, h) {
e = e || [], s = s || [], u && (n = u(h, n));
var t;
for (t = 0; t < e.length; t += 1)
if (e[t] === n)
return s[t];
var r;
if (Hn.call(n) === "[object Array]") {
for (e.push(n), r = new Array(n.length), s.push(r), t = 0; t < n.length; t += 1)
r[t] = Ie(n[t], e, s, u, h);
return e.pop(), s.pop(), r;
}
if (n && n.toJSON && (n = n.toJSON()), Ne(n) === "object" && n !== null) {
e.push(n), r = {}, s.push(r);
var i = [], a;
for (a in n)
n.hasOwnProperty(a) && i.push(a);
for (i.sort(), t = 0; t < i.length; t += 1)
a = i[t], r[a] = Ie(n[a], e, s, u, a);
e.pop(), s.pop();
} else
r = n;
return r;
}
var ke = new ne();
ke.tokenize = function(n) {
return n.slice();
};
ke.join = ke.removeEmpty = function(n) {
return n;
};
function zn(n) {
return n && n.__esModule && Object.prototype.hasOwnProperty.call(n, "default") ? n.default : n;
}
var sn = { exports: {} };
(function(n) {
var e = function() {
this.Diff_Timeout = 1, this.Diff_EditCost = 4, this.Match_Threshold = 0.5, this.Match_Distance = 1e3, this.Patch_DeleteThreshold = 0.5, this.Patch_Margin = 4, this.Match_MaxBits = 32;
}, s = -1, u = 1, h = 0;
e.Diff = function(t, r) {
return [t, r];
}, e.prototype.diff_main = function(t, r, i, a) {
typeof a == "undefined" && (this.Diff_Timeout <= 0 ? a = Number.MAX_VALUE : a = (/* @__PURE__ */ new Date()).getTime() + this.Diff_Timeout * 1e3);
var o = a;
if (t == null || r == null)
throw new Error("Null input. (diff_main)");
if (t == r)
return t ? [new e.Diff(h, t)] : [];
typeof i == "undefined" && (i = !0);
var l = i, c = this.diff_commonPrefix(t, r), f = t.substring(0, c);
t = t.substring(c), r = r.substring(c), c = this.diff_commonSuffix(t, r);
var g = t.substring(t.length - c);
t = t.substring(0, t.length - c), r = r.substring(0, r.length - c);
var d = this.diff_compute_(t, r, l, o);
return f && d.unshift(new e.Diff(h, f)), g && d.push(new e.Diff(h, g)), this.diff_cleanupMerge(d), d;
}, e.prototype.diff_compute_ = function(t, r, i, a) {
var o;
if (!t)
return [new e.Diff(u, r)];
if (!r)
return [new e.Diff(s, t)];
var l = t.length > r.length ? t : r, c = t.length > r.length ? r : t, f = l.indexOf(c);
if (f != -1)
return o = [
new e.Diff(u, l.substring(0, f)),
new e.Diff(h, c),
new e.Diff(
u,
l.substring(f + c.length)
)
], t.length > r.length && (o[0][0] = o[2][0] = s), o;
if (c.length == 1)
return [
new e.Diff(s, t),
new e.Diff(u, r)
];
var g = this.diff_halfMatch_(t, r);
if (g) {
var d = g[0], _ = g[1], p = g[2], v = g[3], m = g[4], E = this.diff_main(d, p, i, a), A = this.diff_main(_, v, i, a);
return E.concat(
[new e.Diff(h, m)],
A
);
}
return i && t.length > 100 && r.length > 100 ? this.diff_lineMode_(t, r, a) : this.diff_bisect_(t, r, a);
}, e.prototype.diff_lineMode_ = function(t, r, i) {
var a = this.diff_linesToChars_(t, r);
t = a.chars1, r = a.chars2;
var o = a.lineArray, l = this.diff_main(t, r, !1, i);
this.diff_charsToLines_(l, o), this.diff_cleanupSemantic(l), l.push(new e.Diff(h, ""));
for (var c = 0, f = 0, g = 0, d = "", _ = ""; c < l.length; ) {
switch (l[c][0]) {
case u:
g++, _ += l[c][1];
break;
case s:
f++, d += l[c][1];
break;
case h:
if (f >= 1 && g >= 1) {
l.splice(
c - f - g,
f + g
), c = c - f - g;
for (var p = this.diff_main(d, _, !1, i), v = p.length - 1; v >= 0; v--)
l.splice(c, 0, p[v]);
c = c + p.length;
}
g = 0, f = 0, d = "", _ = "";
break;
}
c++;
}
return l.pop(), l;
}, e.prototype.diff_bisect_ = function(t, r, i) {
for (var a = t.length, o = r.length, l = Math.ceil((a + o) / 2), c = l, f = 2 * l, g = new Array(f), d = new Array(f), _ = 0; _ < f; _++)
g[_] = -1, d[_] = -1;
g[c + 1] = 0, d[c + 1] = 0;
for (var p = a - o, v = p % 2 != 0, m = 0, E = 0, A = 0, S = 0, D = 0; D < l && !((/* @__PURE__ */ new Date()).getTime() > i); D++) {
for (var N = -D + m; N <= D - E; N += 2) {
var R = c + N, C;
N == -D || N != D && g[R - 1] < g[R + 1] ? C = g[R + 1] : C = g[R - 1] + 1;
for (var I = C - N; C < a && I < o && t.charAt(C) == r.charAt(I); )
C++, I++;
if (g[R] = C, C > a)
E += 2;
else if (I > o)
m += 2;
else if (v) {
var $ = c + p - N;
if ($ >= 0 && $ < f && d[$] != -1) {
var B = a - d[$];
if (C >= B)
return this.diff_bisectSplit_(t, r, C, I, i);
}
}
}
for (var H = -D + A; H <= D - S; H += 2) {
var $ = c + H, B;
H == -D || H != D && d[$ - 1] < d[$ + 1] ? B = d[$ + 1] : B = d[$ - 1] + 1;
for (var K = B - H; B < a && K < o && t.charAt(a - B - 1) == r.charAt(o - K - 1); )
B++, K++;
if (d[$] = B, B > a)
S += 2;
else if (K > o)
A += 2;
else if (!v) {
var R = c + p - H;
if (R >= 0 && R < f && g[R] != -1) {
var C = g[R], I = c + C - R;
if (B = a - B, C >= B)
return this.diff_bisectSplit_(t, r, C, I, i);
}
}
}
}
return [
new e.Diff(s, t),
new e.Diff(u, r)
];
}, e.prototype.diff_bisectSplit_ = function(t, r, i, a, o) {
var l = t.substring(0, i), c = r.substring(0, a), f = t.substring(i), g = r.substring(a), d = this.diff_main(l, c, !1, o), _ = this.diff_main(f, g, !1, o);
return d.concat(_);
}, e.prototype.diff_linesToChars_ = function(t, r) {
var i = [], a = {};
i[0] = "";
function o(g) {
for (var d = "", _ = 0, p = -1, v = i.length; p < g.length - 1; ) {
p = g.indexOf(`
`, _), p == -1 && (p = g.length - 1);
var m = g.substring(_, p + 1);
(a.hasOwnProperty ? a.hasOwnProperty(m) : a[m] !== void 0) ? d += String.fromCharCode(a[m]) : (v == l && (m = g.substring(_), p = g.length), d += String.fromCharCode(v), a[m] = v, i[v++] = m), _ = p + 1;
}
return d;
}
var l = 4e4, c = o(t);
l = 65535;
var f = o(r);
return { chars1: c, chars2: f, lineArray: i };
}, e.prototype.diff_charsToLines_ = function(t, r) {
for (var i = 0; i < t.length; i++) {
for (var a = t[i][1], o = [], l = 0; l < a.length; l++)
o[l] = r[a.charCodeAt(l)];
t[i][1] = o.join("");
}
}, e.prototype.diff_commonPrefix = function(t, r) {
if (!t || !r || t.charAt(0) != r.charAt(0))
return 0;
for (var i = 0, a = Math.min(t.length, r.length), o = a, l = 0; i < o; )
t.substring(l, o) == r.substring(l, o) ? (i = o, l = i) : a = o, o = Math.floor((a - i) / 2 + i);
return o;
}, e.prototype.diff_commonSuffix = function(t, r) {
if (!t || !r || t.charAt(t.length - 1) != r.charAt(r.length - 1))
return 0;
for (var i = 0, a = Math.min(t.length, r.length), o = a, l = 0; i < o; )
t.substring(t.length - o, t.length - l) == r.substring(r.length - o, r.length - l) ? (i = o, l = i) : a = o, o = Math.floor((a - i) / 2 + i);
return o;
}, e.prototype.diff_commonOverlap_ = function(t, r) {
var i = t.length, a = r.length;
if (i == 0 || a == 0)
return 0;
i > a ? t = t.substring(i - a) : i < a && (r = r.substring(0, i));
var o = Math.min(i, a);
if (t == r)
return o;
for (var l = 0, c = 1; ; ) {
var f = t.substring(o - c), g = r.indexOf(f);
if (g == -1)
return l;
c += g, (g == 0 || t.substring(o - c) == r.substring(0, c)) && (l = c, c++);
}
}, e.prototype.diff_halfMatch_ = function(t, r) {
if (this.Diff_Timeout <= 0)
return null;
var i = t.length > r.length ? t : r, a = t.length > r.length ? r : t;
if (i.length < 4 || a.length * 2 < i.length)
return null;
var o = this;
function l(E, A, S) {
for (var D = E.substring(S, S + Math.floor(E.length / 4)), N = -1, R = "", C, I, $, B; (N = A.indexOf(D, N + 1)) != -1; ) {
var H = o.diff_commonPrefix(
E.substring(S),
A.substring(N)
), K = o.diff_commonSuffix(
E.substring(0, S),
A.substring(0, N)
);
R.length < K + H && (R = A.substring(N - K, N) + A.substring(N, N + H), C = E.substring(0, S - K), I = E.substring(S + H), $ = A.substring(0, N - K), B = A.substring(N + H));
}
return R.length * 2 >= E.length ? [
C,
I,
$,
B,
R
] : null;
}
var c = l(
i,
a,
Math.ceil(i.length / 4)
), f = l(
i,
a,
Math.ceil(i.length / 2)
), g;
if (!c && !f)
return null;
f ? c ? g = c[4].length > f[4].length ? c : f : g = f : g = c;
var d, _, p, v;
t.length > r.length ? (d = g[0], _ = g[1], p = g[2], v = g[3]) : (p = g[0], v = g[1], d = g[2], _ = g[3]);
var m = g[4];
return [d, _, p, v, m];
}, e.prototype.diff_cleanupSemantic = function(t) {
for (var r = !1, i = [], a = 0, o = null, l = 0, c = 0, f = 0, g = 0, d = 0; l < t.length; )
t[l][0] == h ? (i[a++] = l, c = g, f = d, g = 0, d = 0, o = t[l][1]) : (t[l][0] == u ? g += t[l][1].length : d += t[l][1].length, o && o.length <= Math.max(c, f) && o.length <= Math.max(
g,
d
) && (t.splice(
i[a - 1],
0,
new e.Diff(s, o)
), t[i[a - 1] + 1][0] = u, a--, a--, l = a > 0 ? i[a - 1] : -1, c = 0, f = 0, g = 0, d = 0, o = null, r = !0)), l++;
for (r && this.diff_cleanupMerge(t), this.diff_cleanupSemanticLossless(t), l = 1; l < t.length; ) {
if (t[l - 1][0] == s && t[l][0] == u) {
var _ = t[l - 1][1], p = t[l][1], v = this.diff_commonOverlap_(_, p), m = this.diff_commonOverlap_(p, _);
v >= m ? (v >= _.length / 2 || v >= p.length / 2) && (t.splice(l, 0, new e.Diff(
h,
p.substring(0, v)
)), t[l - 1][1] = _.substring(0, _.length - v), t[l + 1][1] = p.substring(v), l++) : (m >= _.length / 2 || m >= p.length / 2) && (t.splice(l, 0, new e.Diff(
h,
_.substring(0, m)
)), t[l - 1][0] = u, t[l - 1][1] = p.substring(0, p.length - m), t[l + 1][0] = s, t[l + 1][1] = _.substring(m), l++), l++;
}
l++;
}
}, e.prototype.diff_cleanupSemanticLossless = function(t) {
function r(m, E) {
if (!m || !E)
return 6;
var A = m.charAt(m.length - 1), S = E.charAt(0), D = A.match(e.nonAlphaNumericRegex_), N = S.match(e.nonAlphaNumericRegex_), R = D && A.match(e.whitespaceRegex_), C = N && S.match(e.whitespaceRegex_), I = R && A.match(e.linebreakRegex_), $ = C && S.match(e.linebreakRegex_), B = I && m.match(e.blanklineEndRegex_), H = $ && E.match(e.blanklineStartRegex_);
return B || H ? 5 : I || $ ? 4 : D && !R && C ? 3 : R || C ? 2 : D || N ? 1 : 0;
}
for (var i = 1; i < t.length - 1; ) {
if (t[i - 1][0] == h && t[i + 1][0] == h) {
var a = t[i - 1][1], o = t[i][1], l = t[i + 1][1], c = this.diff_commonSuffix(a, o);
if (c) {
var f = o.substring(o.length - c);
a = a.substring(0, a.length - c), o = f + o.substring(0, o.length - c), l = f + l;
}
for (var g = a, d = o, _ = l, p = r(a, o) + r(o, l); o.charAt(0) === l.charAt(0); ) {
a += o.charAt(0), o = o.substring(1) + l.charAt(0), l = l.substring(1);
var v = r(a, o) + r(o, l);
v >= p && (p = v, g = a, d = o, _ = l);
}
t[i - 1][1] != g && (g ? t[i - 1][1] = g : (t.splice(i - 1, 1), i--), t[i][1] = d, _ ? t[i + 1][1] = _ : (t.splice(i + 1, 1), i--));
}
i++;
}
}, e.nonAlphaNumericRegex_ = /[^a-zA-Z0-9]/, e.whitespaceRegex_ = /\s/, e.linebreakRegex_ = /[\r\n]/, e.blanklineEndRegex_ = /\n\r?\n$/, e.blanklineStartRegex_ = /^\r?\n\r?\n/, e.prototype.diff_cleanupEfficiency = function(t) {
for (var r = !1, i = [], a = 0, o = null, l = 0, c = !1, f = !1, g = !1, d = !1; l < t.length; )
t[l][0] == h ? (t[l][1].length < this.Diff_EditCost && (g || d) ? (i[a++] = l, c = g, f = d, o = t[l][1]) : (a = 0, o = null), g = d = !1) : (t[l][0] == s ? d = !0 : g = !0, o && (c && f && g && d || o.length < this.Diff_EditCost / 2 && c + f + g + d == 3) && (t.splice(
i[a - 1],
0,
new e.Diff(s, o)
), t[i[a - 1] + 1][0] = u, a--, o = null, c && f ? (g = d = !0, a = 0) : (a--, l = a > 0 ? i[a - 1] : -1, g = d = !1), r = !0)), l++;
r && this.diff_cleanupMerge(t);
}, e.prototype.diff_cleanupMerge = function(t) {
t.push(new e.Diff(h, ""));
for (var r = 0, i = 0, a = 0, o = "", l = "", c; r < t.length; )
switch (t[r][0]) {
case u:
a++, l += t[r][1], r++;
break;
case s:
i++, o += t[r][1], r++;
break;
case h:
i + a > 1 ? (i !== 0 && a !== 0 && (c = this.diff_commonPrefix(l, o), c !== 0 && (r - i - a > 0 && t[r - i - a - 1][0] == h ? t[r - i - a - 1][1] += l.substring(0, c) : (t.splice(0, 0, new e.Diff(
h,
l.substring(0, c)
)), r++), l = l.substring(c), o = o.substring(c)), c = this.diff_commonSuffix(l, o), c !== 0 && (t[r][1] = l.substring(l.length - c) + t[r][1], l = l.substring(0, l.length - c), o = o.substring(0, o.length - c))), r -= i + a, t.splice(r, i + a), o.length && (t.splice(
r,
0,
new e.Diff(s, o)
), r++), l.length && (t.splice(
r,
0,
new e.Diff(u, l)
), r++), r++) : r !== 0 && t[r - 1][0] == h ? (t[r - 1][1] += t[r][1], t.splice(r, 1)) : r++, a = 0, i = 0, o = "", l = "";
break;
}
t[t.length - 1][1] === "" && t.pop();
var f = !1;
for (r = 1; r < t.length - 1; )
t[r - 1][0] == h && t[r + 1][0] == h && (t[r][1].substring(t[r][1].length - t[r - 1][1].length) == t[r - 1][1] ? (t[r][1] = t[r - 1][1] + t[r][1].substring(0, t[r][1].length - t[r - 1][1].length), t[r + 1][1] = t[r - 1][1] + t[r + 1][1], t.splice(r - 1, 1), f = !0) : t[r][1].substring(0, t[r + 1][1].length) == t[r + 1][1] && (t[r - 1][1] += t[r + 1][1], t[r][1] = t[r][1].substring(t[r + 1][1].length) + t[r + 1][1], t.splice(r + 1, 1), f = !0)), r++;
f && this.diff_cleanupMerge(t);
}, e.prototype.diff_xIndex = function(t, r) {
var i = 0, a = 0, o = 0, l = 0, c;
for (c = 0; c < t.length && (t[c][0] !== u && (i += t[c][1].length), t[c][0] !== s && (a += t[c][1].length), !(i > r)); c++)
o = i, l = a;
return t.length != c && t[c][0] === s ? l : l + (r - o);
}, e.prototype.diff_prettyHtml = function(t) {
for (var r = [], i = /&/g, a = //g, l = /\n/g, c = 0; c < t.length; c++) {
var f = t[c][0], g = t[c][1], d = g.replace(i, "&").replace(a, "<").replace(o, ">").replace(l, "¶
");
switch (f) {
case u:
r[c] = '' + d + "";
break;
case s:
r[c] = '' + d + "";
break;
case h:
r[c] = "" + d + "";
break;
}
}
return r.join("");
}, e.prototype.diff_text1 = function(t) {
for (var r = [], i = 0; i < t.length; i++)
t[i][0] !== u && (r[i] = t[i][1]);
return r.join("");
}, e.prototype.diff_text2 = function(t) {
for (var r = [], i = 0; i < t.length; i++)
t[i][0] !== s && (r[i] = t[i][1]);
return r.join("");
}, e.prototype.diff_levenshtein = function(t) {
for (var r = 0, i = 0, a = 0, o = 0; o < t.length; o++) {
var l = t[o][0], c = t[o][1];
switch (l) {
case u:
i += c.length;
break;
case s:
a += c.length;
break;
case h:
r += Math.max(i, a), i = 0, a = 0;
break;
}
}
return r += Math.max(i, a), r;
}, e.prototype.diff_toDelta = function(t) {
for (var r = [], i = 0; i < t.length; i++)
switch (t[i][0]) {
case u:
r[i] = "+" + encodeURI(t[i][1]);
break;
case s:
r[i] = "-" + t[i][1].length;
break;
case h:
r[i] = "=" + t[i][1].length;
break;
}
return r.join(" ").replace(/%20/g, " ");
}, e.prototype.diff_fromDelta = function(t, r) {
for (var i = [], a = 0, o = 0, l = r.split(/\t/g), c = 0; c < l.length; c++) {
var f = l[c].substring(1);
switch (l[c].charAt(0)) {
case "+":
try {
i[a++] = new e.Diff(u, decodeURI(f));
} catch (_) {
throw new Error("Illegal escape in diff_fromDelta: " + f);
}
break;
case "-":
case "=":
var g = parseInt(f, 10);
if (isNaN(g) || g < 0)
throw new Error("Invalid number in diff_fromDelta: " + f);
var d = t.substring(o, o += g);
l[c].charAt(0) == "=" ? i[a++] = new e.Diff(h, d) : i[a++] = new e.Diff(s, d);
break;
default:
if (l[c])
throw new Error("Invalid diff operation in diff_fromDelta: " + l[c]);
}
}
if (o != t.length)
throw new Error("Delta length (" + o + ") does not equal source text length (" + t.length + ").");
return i;
}, e.prototype.match_main = function(t, r, i) {
if (t == null || r == null || i == null)
throw new Error("Null input. (match_main)");
return i = Math.max(0, Math.min(i, t.length)), t == r ? 0 : t.length ? t.substring(i, i + r.length) == r ? i : this.match_bitap_(t, r, i) : -1;
}, e.prototype.match_bitap_ = function(t, r, i) {
if (r.length > this.Match_MaxBits)
throw new Error("Pattern too long for this browser.");
var a = this.match_alphabet_(r), o = this;
function l(C, I) {
var $ = C / r.length, B = Math.abs(i - I);
return o.Match_Distance ? $ + B / o.Match_Distance : B ? 1 : $;
}
var c = this.Match_Threshold, f = t.indexOf(r, i);
f != -1 && (c = Math.min(l(0, f), c), f = t.lastIndexOf(r, i + r.length), f != -1 && (c = Math.min(l(0, f), c)));
var g = 1 << r.length - 1;
f = -1;
for (var d, _, p = r.length + t.length, v, m = 0; m < r.length; m++) {
for (d = 0, _ = p; d < _; )
l(m, i + _) <= c ? d = _ : p = _, _ = Math.floor((p - d) / 2 + d);
p = _;
var E = Math.max(1, i - _ + 1), A = Math.min(i + _, t.length) + r.length, S = Array(A + 2);
S[A + 1] = (1 << m) - 1;
for (var D = A; D >= E; D--) {
var N = a[t.charAt(D - 1)];
if (m === 0 ? S[D] = (S[D + 1] << 1 | 1) & N : S[D] = (S[D + 1] << 1 | 1) & N | ((v[D + 1] | v[D]) << 1 | 1) | v[D + 1], S[D] & g) {
var R = l(m, D - 1);
if (R <= c)
if (c = R, f = D - 1, f > i)
E = Math.max(1, 2 * i - f);
else
break;
}
}
if (l(m + 1, i) > c)
break;
v = S;
}
return f;
}, e.prototype.match_alphabet_ = function(t) {
for (var r = {}, i = 0; i < t.length; i++)
r[t.charAt(i)] = 0;
for (var i = 0; i < t.length; i++)
r[t.charAt(i)] |= 1 << t.length - i - 1;
return r;
}, e.prototype.patch_addContext_ = function(t, r) {
if (r.length != 0) {
if (t.start2 === null)
throw Error("patch not initialized");
for (var i = r.substring(t.start2, t.start2 + t.length1), a = 0; r.indexOf(i) != r.lastIndexOf(i) && i.length < this.Match_MaxBits - this.Patch_Margin - this.Patch_Margin; )
a += this.Patch_Margin, i = r.substring(
t.start2 - a,
t.start2 + t.length1 + a
);
a += this.Patch_Margin;
var o = r.substring(t.start2 - a, t.start2);
o && t.diffs.unshift(new e.Diff(h, o));
var l = r.substring(
t.start2 + t.length1,
t.start2 + t.length1 + a
);
l && t.diffs.push(new e.Diff(h, l)), t.start1 -= o.length, t.start2 -= o.length, t.length1 += o.length + l.length, t.length2 += o.length + l.length;
}
}, e.prototype.patch_make = function(t, r, i) {
var a, o;
if (typeof t == "string" && typeof r == "string" && typeof i == "undefined")
a = /** @type {string} */
t, o = this.diff_main(
a,
/** @type {string} */
r,
!0
), o.length > 2 && (this.diff_cleanupSemantic(o), this.diff_cleanupEfficiency(o));
else if (t && typeof t == "object" && typeof r == "undefined" && typeof i == "undefined")
o = /** @type {!Array.} */
t, a = this.diff_text1(o);
else if (typeof t == "string" && r && typeof r == "object" && typeof i == "undefined")
a = /** @type {string} */
t, o = /** @type {!Array.} */
r;
else if (typeof t == "string" && typeof r == "string" && i && typeof i == "object")
a = /** @type {string} */
t, o = /** @type {!Array.} */
i;
else
throw new Error("Unknown call format to patch_make.");
if (o.length === 0)
return [];
for (var l = [], c = new e.patch_obj(), f = 0, g = 0, d = 0, _ = a, p = a, v = 0; v < o.length; v++) {
var m = o[v][0], E = o[v][1];
switch (!f && m !== h && (c.start1 = g, c.start2 = d), m) {
case u:
c.diffs[f++] = o[v], c.length2 += E.length, p = p.substring(0, d) + E + p.substring(d);
break;
case s:
c.length1 += E.length, c.diffs[f++] = o[v], p = p.substring(0, d) + p.substring(d + E.length);
break;
case h:
E.length <= 2 * this.Patch_Margin && f && o.length != v + 1 ? (c.diffs[f++] = o[v], c.length1 += E.length, c.length2 += E.length) : E.length >= 2 * this.Patch_Margin && f && (this.patch_addContext_(c, _), l.push(c), c = new e.patch_obj(), f = 0, _ = p, g = d);
break;
}
m !== u && (g += E.length), m !== s && (d += E.length);
}
return f && (this.patch_addContext_(c, _), l.push(c)), l;
}, e.prototype.patch_deepCopy = function(t) {
for (var r = [], i = 0; i < t.length; i++) {
var a = t[i], o = new e.patch_obj();
o.diffs = [];
for (var l = 0; l < a.diffs.length; l++)
o.diffs[l] = new e.Diff(a.diffs[l][0], a.diffs[l][1]);
o.start1 = a.start1, o.start2 = a.start2, o.length1 = a.length1, o.length2 = a.length2, r[i] = o;
}
return r;
}, e.prototype.patch_apply = function(t, r) {
if (t.length == 0)
return [r, []];
t = this.patch_deepCopy(t);
var i = this.patch_addPadding(t);
r = i + r + i, this.patch_splitMax(t);
for (var a = 0, o = [], l = 0; l < t.length; l++) {
var c = t[l].start2 + a, f = this.diff_text1(t[l].diffs), g, d = -1;
if (f.length > this.Match_MaxBits ? (g = this.match_main(
r,
f.substring(0, this.Match_MaxBits),
c
), g != -1 && (d = this.match_main(
r,
f.substring(f.length - this.Match_MaxBits),
c + f.length - this.Match_MaxBits
), (d == -1 || g >= d) && (g = -1))) : g = this.match_main(r, f, c), g == -1)
o[l] = !1, a -= t[l].length2 - t[l].length1;
else {
o[l] = !0, a = g - c;
var _;
if (d == -1 ? _ = r.substring(g, g + f.length) : _ = r.substring(g, d + this.Match_MaxBits), f == _)
r = r.substring(0, g) + this.diff_text2(t[l].diffs) + r.substring(g + f.length);
else {
var p = this.diff_main(f, _, !1);
if (f.length > this.Match_MaxBits && this.diff_levenshtein(p) / f.length > this.Patch_DeleteThreshold)
o[l] = !1;
else {
this.diff_cleanupSemanticLossless(p);
for (var v = 0, m, E = 0; E < t[l].diffs.length; E++) {
var A = t[l].diffs[E];
A[0] !== h && (m = this.diff_xIndex(p, v)), A[0] === u ? r = r.substring(0, g + m) + A[1] + r.substring(g + m) : A[0] === s && (r = r.substring(0, g + m) + r.substring(g + this.diff_xIndex(
p,
v + A[1].length
))), A[0] !== s && (v += A[1].length);
}
}
}
}
}
return r = r.substring(i.length, r.length - i.length), [r, o];
}, e.prototype.patch_addPadding = function(t) {
for (var r = this.Patch_Margin, i = "", a = 1; a <= r; a++)
i += String.fromCharCode(a);
for (var a = 0; a < t.length; a++)
t[a].start1 += r, t[a].start2 += r;
var o = t[0], l = o.diffs;
if (l.length == 0 || l[0][0] != h)
l.unshift(new e.Diff(h, i)), o.start1 -= r, o.start2 -= r, o.length1 += r, o.length2 += r;
else if (r > l[0][1].length) {
var c = r - l[0][1].length;
l[0][1] = i.substring(l[0][1].length) + l[0][1], o.start1 -= c, o.start2 -= c, o.length1 += c, o.length2 += c;
}
if (o = t[t.length - 1], l = o.diffs, l.length == 0 || l[l.length - 1][0] != h)
l.push(new e.Diff(h, i)), o.length1 += r, o.length2 += r;
else if (r > l[l.length - 1][1].length) {
var c = r - l[l.length - 1][1].length;
l[l.length - 1][1] += i.substring(0, c), o.length1 += c, o.length2 += c;
}
return i;
}, e.prototype.patch_splitMax = function(t) {
for (var r = this.Match_MaxBits, i = 0; i < t.length; i++)
if (!(t[i].length1 <= r)) {
var a = t[i];
t.splice(i--, 1);
for (var o = a.start1, l = a.start2, c = ""; a.diffs.length !== 0; ) {
var f = new e.patch_obj(), g = !0;
for (f.start1 = o - c.length, f.start2 = l - c.length, c !== "" && (f.length1 = f.length2 = c.length, f.diffs.push(new e.Diff(h, c))); a.diffs.length !== 0 && f.length1 < r - this.Patch_Margin; ) {
var d = a.diffs[0][0], _ = a.diffs[0][1];
d === u ? (f.length2 += _.length, l += _.length, f.diffs.push(a.diffs.shift()), g = !1) : d === s && f.diffs.length == 1 && f.diffs[0][0] == h && _.length > 2 * r ? (f.length1 += _.length, o += _.length, g = !1, f.diffs.push(new e.Diff(d, _)), a.diffs.shift()) : (_ = _.substring(
0,
r - f.length1 - this.Patch_Margin
), f.length1 += _.length, o += _.length, d === h ? (f.length2 += _.length, l += _.length) : g = !1, f.diffs.push(new e.Diff(d, _)), _ == a.diffs[0][1] ? a.diffs.shift() : a.diffs[0][1] = a.diffs[0][1].substring(_.length));
}
c = this.diff_text2(f.diffs), c = c.substring(c.length - this.Patch_Margin);
var p = this.diff_text1(a.diffs).substring(0, this.Patch_Margin);
p !== "" && (f.length1 += p.length, f.length2 += p.length, f.diffs.length !== 0 && f.diffs[f.diffs.length - 1][0] === h ? f.diffs[f.diffs.length - 1][1] += p : f.diffs.push(new e.Diff(h, p))), g || t.splice(++i, 0, f);
}
}
}, e.prototype.patch_toText = function(t) {
for (var r = [], i = 0; i < t.length; i++)
r[i] = t[i];
return r.join("");
}, e.prototype.patch_fromText = function(t) {
var r = [];
if (!t)
return r;
for (var i = t.split(`
`), a = 0, o = /^@@ -(\d+),?(\d*) \+(\d+),?(\d*) @@$/; a < i.length; ) {
var l = i[a].match(o);
if (!l)
throw new Error("Invalid patch string: " + i[a]);
var c = new e.patch_obj();
for (r.push(c), c.start1 = parseInt(l[1], 10), l[2] === "" ? (c.start1--, c.length1 = 1) : l[2] == "0" ? c.length1 = 0 : (c.start1--, c.length1 = parseInt(l[2], 10)), c.start2 = parseInt(l[3], 10), l[4] === "" ? (c.start2--, c.length2 = 1) : l[4] == "0" ? c.length2 = 0 : (c.start2--, c.length2 = parseInt(l[4], 10)), a++; a < i.length; ) {
var f = i[a].charAt(0);
try {
var g = decodeURI(i[a].substring(1));
} catch (d) {
throw new Error("Illegal escape in patch_fromText: " + g);
}
if (f == "-")
c.diffs.push(new e.Diff(s, g));
else if (f == "+")
c.diffs.push(new e.Diff(u, g));
else if (f == " ")
c.diffs.push(new e.Diff(h, g));
else {
if (f == "@")
break;
if (f !== "")
throw new Error('Invalid patch mode "' + f + '" in: ' + g);
}
a++;
}
}
return r;
}, e.patch_obj = function() {
this.diffs = [], this.start1 = null, this.start2 = null, this.length1 = 0, this.length2 = 0;
}, e.patch_obj.prototype.toString = function() {
var t, r;
this.length1 === 0 ? t = this.start1 + ",0" : this.length1 == 1 ? t = this.start1 + 1 : t = this.start1 + 1 + "," + this.length1, this.length2 === 0 ? r = this.start2 + ",0" : this.length2 == 1 ? r = this.start2 + 1 : r = this.start2 + 1 + "," + this.length2;
for (var i = ["@@ -" + t + " +" + r + ` @@
`], a, o = 0; o < this.diffs.length; o++) {
switch (this.diffs[o][0]) {
case u:
a = "+";
break;
case s:
a = "-";
break;
case h:
a = " ";
break;
}
i[o + 1] = a + encodeURI(this.diffs[o][1]) + `
`;
}
return i.join("").replace(/%20/g, " ");
}, n.exports = e, n.exports.diff_match_patch = e, n.exports.DIFF_DELETE = s, n.exports.DIFF_INSERT = u, n.exports.DIFF_EQUAL = h;
})(sn);
var Le = sn.exports;
function an(n) {
return n instanceof Map ? n.clear = n.delete = n.set = function() {
throw new Error("map is read-only");
} : n instanceof Set && (n.add = n.clear = n.delete = function() {
throw new Error("set is read-only");
}), Object.freeze(n), Object.getOwnPropertyNames(n).forEach((e) => {
const s = n[e], u = typeof s;
(u === "object" || u === "function") && !Object.isFrozen(s) && an(s);
}), n;
}
class Ze {
/**
* @param {CompiledMode} mode
*/
constructor(e) {
e.data === void 0 && (e.data = {}), this.data = e.data, this.isMatchIgnored = !1;
}
ignoreMatch() {
this.isMatchIgnored = !0;
}
}
function on(n) {
return n.replace(/&/g, "&").replace(//g, ">").replace(/"/g, """).replace(/'/g, "'");
}
function re(n, ...e) {
const s = /* @__PURE__ */ Object.create(null);
for (const u in n)
s[u] = n[u];
return e.forEach(function(u) {
for (const h in u)
s[h] = u[h];
}), /** @type {T} */
s;
}
const Gn = "", Ye = (n) => !!n.scope, Kn = (n, { prefix: e }) => {
if (n.startsWith("language:"))
return n.replace("language:", "language-");
if (n.includes(".")) {
const s = n.split(".");
return [
`${e}${s.shift()}`,
...s.map((u, h) => `${u}${"_".repeat(h + 1)}`)
].join(" ");
}
return `${e}${n}`;
};
class Wn {
/**
* Creates a new HTMLRenderer
*
* @param {Tree} parseTree - the parse tree (must support `walk` API)
* @param {{classPrefix: string}} options
*/
constructor(e, s) {
this.buffer = "", this.classPrefix = s.classPrefix, e.walk(this);
}
/**
* Adds texts to the output stream
*
* @param {string} text */
addText(e) {
this.buffer += on(e);
}
/**
* Adds a node open to the output stream (if needed)
*
* @param {Node} node */
openNode(e) {
if (!Ye(e))
return;
const s = Kn(
e.scope,
{ prefix: this.classPrefix }
);
this.span(s);
}
/**
* Adds a node close to the output stream (if needed)
*
* @param {Node} node */
closeNode(e) {
Ye(e) && (this.buffer += Gn);
}
/**
* returns the accumulated buffer
*/
value() {
return this.buffer;
}
// helpers
/**
* Builds a span element
*
* @param {string} className */
span(e) {
this.buffer += ``;
}
}
const Xe = (n = {}) => {
const e = { children: [] };
return Object.assign(e, n), e;
};
class $e {
constructor() {
this.rootNode = Xe(), this.stack = [this.rootNode];
}
get top() {
return this.stack[this.stack.length - 1];
}
get root() {
return this.rootNode;
}
/** @param {Node} node */
add(e) {
this.top.children.push(e);
}
/** @param {string} scope */
openNode(e) {
const s = Xe({ scope: e });
this.add(s), this.stack.push(s);
}
closeNode() {
if (this.stack.length > 1)
return this.stack.pop();
}
closeAllNodes() {
for (; this.closeNode(); )
;
}
toJSON() {
return JSON.stringify(this.rootNode, null, 4);
}
/**
* @typedef { import("./html_renderer").Renderer } Renderer
* @param {Renderer} builder
*/
walk(e) {
return this.constructor._walk(e, this.rootNode);
}
/**
* @param {Renderer} builder
* @param {Node} node
*/
static _walk(e, s) {
return typeof s == "string" ? e.addText(s) : s.children && (e.openNode(s), s.children.forEach((u) => this._walk(e, u)), e.closeNode(s)), e;
}
/**
* @param {Node} node
*/
static _collapse(e) {
typeof e != "string" && e.children && (e.children.every((s) => typeof s == "string") ? e.children = [e.children.join("")] : e.children.forEach((s) => {
$e._collapse(s);
}));
}
}
class Qn extends $e {
/**
* @param {*} options
*/
constructor(e) {
super(), this.options = e;
}
/**
* @param {string} text
*/
addText(e) {
e !== "" && this.add(e);
}
/** @param {string} scope */
startScope(e) {
this.openNode(e);
}
endScope() {
this.closeNode();
}
/**
* @param {Emitter & {root: DataNode}} emitter
* @param {string} name
*/
__addSublanguage(e, s) {
const u = e.root;
s && (u.scope = `language:${s}`), this.add(u);
}
toHTML() {
return new Wn(this, this.options).value();
}
finalize() {
return this.closeAllNodes(), !0;
}
}
function _e(n) {
return n ? typeof n == "string" ? n : n.source : null;
}
function ln(n) {
return ae("(?=", n, ")");
}
function Vn(n) {
return ae("(?:", n, ")*");
}
function Zn(n) {
return ae("(?:", n, ")?");
}
function ae(...n) {
return n.map((s) => _e(s)).join("");
}
function Yn(n) {
const e = n[n.length - 1];
return typeof e == "object" && e.constructor === Object ? (n.splice(n.length - 1, 1), e) : {};
}
function Ue(...n) {
return "(" + (Yn(n).capture ? "" : "?:") + n.map((u) => _e(u)).join("|") + ")";
}
function cn(n) {
return new RegExp(n.toString() + "|").exec("").length - 1;
}
function Xn(n, e) {
const s = n && n.exec(e);
return s && s.index === 0;
}
const jn = /\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;
function Pe(n, { joinWith: e }) {
let s = 0;
return n.map((u) => {
s += 1;
const h = s;
let t = _e(u), r = "";
for (; t.length > 0; ) {
const i = jn.exec(t);
if (!i) {
r += t;
break;
}
r += t.substring(0, i.index), t = t.substring(i.index + i[0].length), i[0][0] === "\\" && i[1] ? r += "\\" + String(Number(i[1]) + h) : (r += i[0], i[0] === "(" && s++);
}
return r;
}).map((u) => `(${u})`).join(e);
}
const qn = /\b\B/, un = "[a-zA-Z]\\w*", xe = "[a-zA-Z_]\\w*", fn = "\\b\\d+(\\.\\d+)?", gn = "(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)", hn = "\\b(0b[01]+)", Jn = "!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~", et = (n = {}) => {
const e = /^#![ ]*\//;
return n.binary && (n.begin = ae(
e,
/.*\b/,
n.binary,
/\b.*/
)), re({
scope: "meta",
begin: e,
end: /$/,
relevance: 0,
/** @type {ModeCallback} */
"on:begin": (s, u) => {
s.index !== 0 && u.ignoreMatch();
}
}, n);
}, pe = {
begin: "\\\\[\\s\\S]",
relevance: 0
}, nt = {
scope: "string",
begin: "'",
end: "'",
illegal: "\\n",
contains: [pe]
}, tt = {
scope: "string",
begin: '"',
end: '"',
illegal: "\\n",
contains: [pe]
}, rt = {
begin: /\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/
}, De = function(n, e, s = {}) {
const u = re(
{
scope: "comment",
begin: n,
end: e,
contains: []
},
s
);
u.contains.push({
scope: "doctag",
// hack to avoid the space from being included. the space is necessary to
// match here to prevent the plain text rule below from gobbling up doctags
begin: "[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",
end: /(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,
excludeBegin: !0,
relevance: 0
});
const h = Ue(
// list of common 1 and 2 letter words in English
"I",
"a",
"is",
"so",
"us",
"to",
"at",
"if",
"in",
"it",
"on",
// note: this is not an exhaustive list of contractions, just popular ones
/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,
// contractions - can't we'd they're let's, etc
/[A-Za-z]+[-][a-z]+/,
// `no-way`, etc.
/[A-Za-z][a-z]{2,}/
// allow capitalized words at beginning of sentences
);
return u.contains.push(
{
// TODO: how to include ", (, ) without breaking grammars that use these for
// comment delimiters?
// begin: /[ ]+([()"]?([A-Za-z'-]{3,}|is|a|I|so|us|[tT][oO]|at|if|in|it|on)[.]?[()":]?([.][ ]|[ ]|\))){3}/
// ---
// this tries to find sequences of 3 english words in a row (without any
// "programming" type syntax) this gives us a strong signal that we've
// TRULY found a comment - vs perhaps scanning with the wrong language.
// It's possible to find something that LOOKS like the start of the
// comment - but then if there is no readable text - good chance it is a
// false match and not a comment.
//
// for a visual example please see:
// https://github.com/highlightjs/highlight.js/issues/2827
begin: ae(
/[ ]+/,
// necessary to prevent us gobbling up doctags like /* @author Bob Mcgill */
"(",
h,
/[.]?[:]?([.][ ]|[ ])/,
"){3}"
)
// look for 3 words in a row
}
), u;
}, it = De("//", "$"), st = De("/\\*", "\\*/"), at = De("#", "$"), ot = {
scope: "number",
begin: fn,
relevance: 0
}, lt = {
scope: "number",
begin: gn,
relevance: 0
}, ct = {
scope: "number",
begin: hn,
relevance: 0
}, ut = {
scope: "regexp",
begin: /\/(?=[^/\n]*\/)/,
end: /\/[gimuy]*/,
contains: [
pe,
{
begin: /\[/,
end: /\]/,
relevance: 0,
contains: [pe]
}
]
}, ft = {
scope: "title",
begin: un,
relevance: 0
}, gt = {
scope: "title",
begin: xe,
relevance: 0
}, ht = {
// excludes method names from keyword processing
begin: "\\.\\s*" + xe,
relevance: 0
}, dt = function(n) {
return Object.assign(
n,
{
/** @type {ModeCallback} */
"on:begin": (e, s) => {
s.data._beginMatch = e[1];
},
/** @type {ModeCallback} */
"on:end": (e, s) => {
s.data._beginMatch !== e[1] && s.ignoreMatch();
}
}
);
};
var we = /* @__PURE__ */ Object.freeze({
__proto__: null,
APOS_STRING_MODE: nt,
BACKSLASH_ESCAPE: pe,
BINARY_NUMBER_MODE: ct,
BINARY_NUMBER_RE: hn,
COMMENT: De,
C_BLOCK_COMMENT_MODE: st,
C_LINE_COMMENT_MODE: it,
C_NUMBER_MODE: lt,
C_NUMBER_RE: gn,
END_SAME_AS_BEGIN: dt,
HASH_COMMENT_MODE: at,
IDENT_RE: un,
MATCH_NOTHING_RE: qn,
METHOD_GUARD: ht,
NUMBER_MODE: ot,
NUMBER_RE: fn,
PHRASAL_WORDS_MODE: rt,
QUOTE_STRING_MODE: tt,
REGEXP_MODE: ut,
RE_STARTERS_RE: Jn,
SHEBANG: et,
TITLE_MODE: ft,
UNDERSCORE_IDENT_RE: xe,
UNDERSCORE_TITLE_MODE: gt
});
function _t(n, e) {
n.input[n.index - 1] === "." && e.ignoreMatch();
}
function pt(n, e) {
n.className !== void 0 && (n.scope = n.className, delete n.className);
}
function bt(n, e) {
e && n.beginKeywords && (n.begin = "\\b(" + n.beginKeywords.split(" ").join("|") + ")(?!\\.)(?=\\b|\\s)", n.__beforeBegin = _t, n.keywords = n.keywords || n.beginKeywords, delete n.beginKeywords, n.relevance === void 0 && (n.relevance = 0));
}
function vt(n, e) {
Array.isArray(n.illegal) && (n.illegal = Ue(...n.illegal));
}
function mt(n, e) {
if (n.match) {
if (n.begin || n.end)
throw new Error("begin & end are not supported with match");
n.begin = n.match, delete n.match;
}
}
function Et(n, e) {
n.relevance === void 0 && (n.relevance = 1);
}
const wt = (n, e) => {
if (!n.beforeMatch)
return;
if (n.starts)
throw new Error("beforeMatch cannot be used with starts");
const s = Object.assign({}, n);
Object.keys(n).forEach((u) => {
delete n[u];
}), n.keywords = s.keywords, n.begin = ae(s.beforeMatch, ln(s.begin)), n.starts = {
relevance: 0,
contains: [
Object.assign(s, { endsParent: !0 })
]
}, n.relevance = 0, delete s.beforeMatch;
}, yt = [
"of",
"and",
"for",
"in",
"not",
"or",
"if",
"then",
"parent",
// common variable name
"list",
// common variable name
"value"
// common variable name
], At = "keyword";
function dn(n, e, s = At) {
const u = /* @__PURE__ */ Object.create(null);
return typeof n == "string" ? h(s, n.split(" ")) : Array.isArray(n) ? h(s, n) : Object.keys(n).forEach(function(t) {
Object.assign(
u,
dn(n[t], e, t)
);
}), u;
function h(t, r) {
e && (r = r.map((i) => i.toLowerCase())), r.forEach(function(i) {
const a = i.split("|");
u[a[0]] = [t, Nt(a[0], a[1])];
});
}
}
function Nt(n, e) {
return e ? Number(e) : Mt(n) ? 0 : 1;
}
function Mt(n) {
return yt.includes(n.toLowerCase());
}
const je = {}, se = (n) => {
console.error(n);
}, qe = (n, ...e) => {
console.log(`WARN: ${n}`, ...e);
}, ce = (n, e) => {
je[`${n}/${e}`] || (console.log(`Deprecated as of ${n}. ${e}`), je[`${n}/${e}`] = !0);
}, Me = new Error();
function _n(n, e, { key: s }) {
let u = 0;
const h = n[s], t = {}, r = {};
for (let i = 1; i <= e.length; i++)
r[i + u] = h[i], t[i + u] = !0, u += cn(e[i - 1]);
n[s] = r, n[s]._emit = t, n[s]._multi = !0;
}
function Tt(n) {
if (Array.isArray(n.begin)) {
if (n.skip || n.excludeBegin || n.returnBegin)
throw se("skip, excludeBegin, returnBegin not compatible with beginScope: {}"), Me;
if (typeof n.beginScope != "object" || n.beginScope === null)
throw se("beginScope must be object"), Me;
_n(n, n.begin, { key: "beginScope" }), n.begin = Pe(n.begin, { joinWith: "" });
}
}
function Dt(n) {
if (Array.isArray(n.end)) {
if (n.skip || n.excludeEnd || n.returnEnd)
throw se("skip, excludeEnd, returnEnd not compatible with endScope: {}"), Me;
if (typeof n.endScope != "object" || n.endScope === null)
throw se("endScope must be object"), Me;
_n(n, n.end, { key: "endScope" }), n.end = Pe(n.end, { joinWith: "" });
}
}
function St(n) {
n.scope && typeof n.scope == "object" && n.scope !== null && (n.beginScope = n.scope, delete n.scope);
}
function Ct(n) {
St(n), typeof n.beginScope == "string" && (n.beginScope = { _wrap: n.beginScope }), typeof n.endScope == "string" && (n.endScope = { _wrap: n.endScope }), Tt(n), Dt(n);
}
function Rt(n) {
function e(r, i) {
return new RegExp(
_e(r),
"m" + (n.case_insensitive ? "i" : "") + (n.unicodeRegex ? "u" : "") + (i ? "g" : "")
);
}
class s {
constructor() {
this.matchIndexes = {}, this.regexes = [], this.matchAt = 1, this.position = 0;
}
// @ts-ignore
addRule(i, a) {
a.position = this.position++, this.matchIndexes[this.matchAt] = a, this.regexes.push([a, i]), this.matchAt += cn(i) + 1;
}
compile() {
this.regexes.length === 0 && (this.exec = () => null);
const i = this.regexes.map((a) => a[1]);
this.matcherRe = e(Pe(i, { joinWith: "|" }), !0), this.lastIndex = 0;
}
/** @param {string} s */
exec(i) {
this.matcherRe.lastIndex = this.lastIndex;
const a = this.matcherRe.exec(i);
if (!a)
return null;
const o = a.findIndex((c, f) => f > 0 && c !== void 0), l = this.matchIndexes[o];
return a.splice(0, o), Object.assign(a, l);
}
}
class u {
constructor() {
this.rules = [], this.multiRegexes = [], this.count = 0, this.lastIndex = 0, this.regexIndex = 0;
}
// @ts-ignore
getMatcher(i) {
if (this.multiRegexes[i])
return this.multiRegexes[i];
const a = new s();
return this.rules.slice(i).forEach(([o, l]) => a.addRule(o, l)), a.compile(), this.multiRegexes[i] = a, a;
}
resumingScanAtSamePosition() {
return this.regexIndex !== 0;
}
considerAll() {
this.regexIndex = 0;
}
// @ts-ignore
addRule(i, a) {
this.rules.push([i, a]), a.type === "begin" && this.count++;
}
/** @param {string} s */
exec(i) {
const a = this.getMatcher(this.regexIndex);
a.lastIndex = this.lastIndex;
let o = a.exec(i);
if (this.resumingScanAtSamePosition() && !(o && o.index === this.lastIndex)) {
const l = this.getMatcher(0);
l.lastIndex = this.lastIndex + 1, o = l.exec(i);
}
return o && (this.regexIndex += o.position + 1, this.regexIndex === this.count && this.considerAll()), o;
}
}
function h(r) {
const i = new u();
return r.contains.forEach((a) => i.addRule(a.begin, { rule: a, type: "begin" })), r.terminatorEnd && i.addRule(r.terminatorEnd, { type: "end" }), r.illegal && i.addRule(r.illegal, { type: "illegal" }), i;
}
function t(r, i) {
const a = (
/** @type CompiledMode */
r
);
if (r.isCompiled)
return a;
[
pt,
// do this early so compiler extensions generally don't have to worry about
// the distinction between match/begin
mt,
Ct,
wt
].forEach((l) => l(r, i)), n.compilerExtensions.forEach((l) => l(r, i)), r.__beforeBegin = null, [
bt,
// do this later so compiler extensions that come earlier have access to the
// raw array if they wanted to perhaps manipulate it, etc.
vt,
// default to 1 relevance if not specified
Et
].forEach((l) => l(r, i)), r.isCompiled = !0;
let o = null;
return typeof r.keywords == "object" && r.keywords.$pattern && (r.keywords = Object.assign({}, r.keywords), o = r.keywords.$pattern, delete r.keywords.$pattern), o = o || /\w+/, r.keywords && (r.keywords = dn(r.keywords, n.case_insensitive)), a.keywordPatternRe = e(o, !0), i && (r.begin || (r.begin = /\B|\b/), a.beginRe = e(a.begin), !r.end && !r.endsWithParent && (r.end = /\B|\b/), r.end && (a.endRe = e(a.end)), a.terminatorEnd = _e(a.end) || "", r.endsWithParent && i.terminatorEnd && (a.terminatorEnd += (r.end ? "|" : "") + i.terminatorEnd)), r.illegal && (a.illegalRe = e(
/** @type {RegExp | string} */
r.illegal
)), r.contains || (r.contains = []), r.contains = [].concat(...r.contains.map(function(l) {
return Lt(l === "self" ? r : l);
})), r.contains.forEach(function(l) {
t(
/** @type Mode */
l,
a
);
}), r.starts && t(r.starts, i), a.matcher = h(a), a;
}
if (n.compilerExtensions || (n.compilerExtensions = []), n.contains && n.contains.includes("self"))
throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");
return n.classNameAliases = re(n.classNameAliases || {}), t(
/** @type Mode */
n
);
}
function pn(n) {
return n ? n.endsWithParent || pn(n.starts) : !1;
}
function Lt(n) {
return n.variants && !n.cachedVariants && (n.cachedVariants = n.variants.map(function(e) {
return re(n, { variants: null }, e);
})), n.cachedVariants ? n.cachedVariants : pn(n) ? re(n, { starts: n.starts ? re(n.starts) : null }) : Object.isFrozen(n) ? re(n) : n;
}
var Ot = "11.9.0";
class It extends Error {
constructor(e, s) {
super(e), this.name = "HTMLInjectionError", this.html = s;
}
}
const Oe = on, Je = re, en = Symbol("nomatch"), kt = 7, bn = function(n) {
const e = /* @__PURE__ */ Object.create(null), s = /* @__PURE__ */ Object.create(null), u = [];
let h = !0;
const t = "Could not find the language '{}', did you forget to load/include a language module?", r = { disableAutodetect: !0, name: "Plain text", contains: [] };
let i = {
ignoreUnescapedHTML: !1,
throwUnescapedHTML: !1,
noHighlightRe: /^(no-?highlight)$/i,
languageDetectRe: /\blang(?:uage)?-([\w-]+)\b/i,
classPrefix: "hljs-",
cssSelector: "pre code",
languages: null,
// beta configuration options, subject to change, welcome to discuss
// https://github.com/highlightjs/highlight.js/issues/1086
__emitter: Qn
};
function a(b) {
return i.noHighlightRe.test(b);
}
function o(b) {
let y = b.className + " ";
y += b.parentNode ? b.parentNode.className : "";
const L = i.languageDetectRe.exec(y);
if (L) {
const U = C(L[1]);
return U || (qe(t.replace("{}", L[1])), qe("Falling back to no-highlight mode for this block.", b)), U ? L[1] : "no-highlight";
}
return y.split(/\s+/).find((U) => a(U) || C(U));
}
function l(b, y, L) {
let U = "", F = "";
typeof y == "object" ? (U = b, L = y.ignoreIllegals, F = y.language) : (ce("10.7.0", "highlight(lang, code, ...args) has been deprecated."), ce("10.7.0", `Please use highlight(code, options) instead.
https://github.com/highlightjs/highlight.js/issues/2277`), F = b, U = y), L === void 0 && (L = !0);
const W = {
code: U,
language: F
};
te("before:highlight", W);
const Y = W.result ? W.result : c(W.language, W.code, L);
return Y.code = W.code, te("after:highlight", Y), Y;
}
function c(b, y, L, U) {
const F = /* @__PURE__ */ Object.create(null);
function W(w, M) {
return w.keywords[M];
}
function Y() {
if (!O.keywords) {
z.addText(x);
return;
}
let w = 0;
O.keywordPatternRe.lastIndex = 0;
let M = O.keywordPatternRe.exec(x), k = "";
for (; M; ) {
k += x.substring(w, M.index);
const P = j.case_insensitive ? M[0].toLowerCase() : M[0], G = W(O, P);
if (G) {
const [q, Cn] = G;
if (z.addText(k), k = "", F[P] = (F[P] || 0) + 1, F[P] <= kt && (Ee += Cn), q.startsWith("_"))
k += M[0];
else {
const Rn = j.classNameAliases[q] || q;
X(M[0], Rn);
}
} else
k += M[0];
w = O.keywordPatternRe.lastIndex, M = O.keywordPatternRe.exec(x);
}
k += x.substring(w), z.addText(k);
}
function ve() {
if (x === "")
return;
let w = null;
if (typeof O.subLanguage == "string") {
if (!e[O.subLanguage]) {
z.addText(x);
return;
}
w = c(O.subLanguage, x, !0, Ke[O.subLanguage]), Ke[O.subLanguage] = /** @type {CompiledMode} */
w._top;
} else
w = g(x, O.subLanguage.length ? O.subLanguage : null);
O.relevance > 0 && (Ee += w.relevance), z.__addSublanguage(w._emitter, w.language);
}
function Q() {
O.subLanguage != null ? ve() : Y(), x = "";
}
function X(w, M) {
w !== "" && (z.startScope(M), z.addText(w), z.endScope());
}
function Fe(w, M) {
let k = 1;
const P = M.length - 1;
for (; k <= P; ) {
if (!w._emit[k]) {
k++;
continue;
}
const G = j.classNameAliases[w[k]] || w[k], q = M[k];
G ? X(q, G) : (x = q, Y(), x = ""), k++;
}
}
function He(w, M) {
return w.scope && typeof w.scope == "string" && z.openNode(j.classNameAliases[w.scope] || w.scope), w.beginScope && (w.beginScope._wrap ? (X(x, j.classNameAliases[w.beginScope._wrap] || w.beginScope._wrap), x = "") : w.beginScope._multi && (Fe(w.beginScope, M), x = "")), O = Object.create(w, { parent: { value: O } }), O;
}
function ze(w, M, k) {
let P = Xn(w.endRe, k);
if (P) {
if (w["on:end"]) {
const G = new Ze(w);
w["on:end"](M, G), G.isMatchIgnored && (P = !1);
}
if (P) {
for (; w.endsParent && w.parent; )
w = w.parent;
return w;
}
}
if (w.endsWithParent)
return ze(w.parent, M, k);
}
function Nn(w) {
return O.matcher.regexIndex === 0 ? (x += w[0], 1) : (Re = !0, 0);
}
function Mn(w) {
const M = w[0], k = w.rule, P = new Ze(k), G = [k.__beforeBegin, k["on:begin"]];
for (const q of G)
if (q && (q(w, P), P.isMatchIgnored))
return Nn(M);
return k.skip ? x += M : (k.excludeBegin && (x += M), Q(), !k.returnBegin && !k.excludeBegin && (x = M)), He(k, w), k.returnBegin ? 0 : M.length;
}
function Tn(w) {
const M = w[0], k = y.substring(w.index), P = ze(O, w, k);
if (!P)
return en;
const G = O;
O.endScope && O.endScope._wrap ? (Q(), X(M, O.endScope._wrap)) : O.endScope && O.endScope._multi ? (Q(), Fe(O.endScope, w)) : G.skip ? x += M : (G.returnEnd || G.excludeEnd || (x += M), Q(), G.excludeEnd && (x = M));
do
O.scope && z.closeNode(), !O.skip && !O.subLanguage && (Ee += O.relevance), O = O.parent;
while (O !== P.parent);
return P.starts && He(P.starts, w), G.returnEnd ? 0 : M.length;
}
function Dn() {
const w = [];
for (let M = O; M !== j; M = M.parent)
M.scope && w.unshift(M.scope);
w.forEach((M) => z.openNode(M));
}
let me = {};
function Ge(w, M) {
const k = M && M[0];
if (x += w, k == null)
return Q(), 0;
if (me.type === "begin" && M.type === "end" && me.index === M.index && k === "") {
if (x += y.slice(M.index, M.index + 1), !h) {
const P = new Error(`0 width match regex (${b})`);
throw P.languageName = b, P.badRule = me.rule, P;
}
return 1;
}
if (me = M, M.type === "begin")
return Mn(M);
if (M.type === "illegal" && !L) {
const P = new Error('Illegal lexeme "' + k + '" for mode "' + (O.scope || "") + '"');
throw P.mode = O, P;
} else if (M.type === "end") {
const P = Tn(M);
if (P !== en)
return P;
}
if (M.type === "illegal" && k === "")
return 1;
if (Ce > 1e5 && Ce > M.index * 3)
throw new Error("potential infinite loop, way more iterations than matches");
return x += k, k.length;
}
const j = C(b);
if (!j)
throw se(t.replace("{}", b)), new Error('Unknown language: "' + b + '"');
const Sn = Rt(j);
let Se = "", O = U || Sn;
const Ke = {}, z = new i.__emitter(i);
Dn();
let x = "", Ee = 0, ie = 0, Ce = 0, Re = !1;
try {
if (j.__emitTokens)
j.__emitTokens(y, z);
else {
for (O.matcher.considerAll(); ; ) {
Ce++, Re ? Re = !1 : O.matcher.considerAll(), O.matcher.lastIndex = ie;
const w = O.matcher.exec(y);
if (!w)
break;
const M = y.substring(ie, w.index), k = Ge(M, w);
ie = w.index + k;
}
Ge(y.substring(ie));
}
return z.finalize(), Se = z.toHTML(), {
language: b,
value: Se,
relevance: Ee,
illegal: !1,
_emitter: z,
_top: O
};
} catch (w) {
if (w.message && w.message.includes("Illegal"))
return {
language: b,
value: Oe(y),
illegal: !0,
relevance: 0,
_illegalBy: {
message: w.message,
index: ie,
context: y.slice(ie - 100, ie + 100),
mode: w.mode,
resultSoFar: Se
},
_emitter: z
};
if (h)
return {
language: b,
value: Oe(y),
illegal: !1,
relevance: 0,
errorRaised: w,
_emitter: z,
_top: O
};
throw w;
}
}
function f(b) {
const y = {
value: Oe(b),
illegal: !1,
relevance: 0,
_top: r,
_emitter: new i.__emitter(i)
};
return y._emitter.addText(b), y;
}
function g(b, y) {
y = y || i.languages || Object.keys(e);
const L = f(b), U = y.filter(C).filter($).map(
(Q) => c(Q, b, !1)
);
U.unshift(L);
const F = U.sort((Q, X) => {
if (Q.relevance !== X.relevance)
return X.relevance - Q.relevance;
if (Q.language && X.language) {
if (C(Q.language).supersetOf === X.language)
return 1;
if (C(X.language).supersetOf === Q.language)
return -1;
}
return 0;
}), [W, Y] = F, ve = W;
return ve.secondBest = Y, ve;
}
function d(b, y, L) {
const U = y && s[y] || L;
b.classList.add("hljs"), b.classList.add(`language-${U}`);
}
function _(b) {
let y = null;
const L = o(b);
if (a(L))
return;
if (te(
"before:highlightElement",
{ el: b, language: L }
), b.dataset.highlighted) {
console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.", b);
return;
}
if (b.children.length > 0 && (i.ignoreUnescapedHTML || (console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."), console.warn("https://github.com/highlightjs/highlight.js/wiki/security"), console.warn("The element with unescaped HTML:"), console.warn(b)), i.throwUnescapedHTML))
throw new It(
"One of your code blocks includes unescaped HTML.",
b.innerHTML
);
y = b;
const U = y.textContent, F = L ? l(U, { language: L, ignoreIllegals: !0 }) : g(U);
b.innerHTML = F.value, b.dataset.highlighted = "yes", d(b, L, F.language), b.result = {
language: F.language,
// TODO: remove with version 11.0
re: F.relevance,
relevance: F.relevance
}, F.secondBest && (b.secondBest = {
language: F.secondBest.language,
relevance: F.secondBest.relevance
}), te("after:highlightElement", { el: b, result: F, text: U });
}
function p(b) {
i = Je(i, b);
}
const v = () => {
A(), ce("10.6.0", "initHighlighting() deprecated. Use highlightAll() now.");
};
function m() {
A(), ce("10.6.0", "initHighlightingOnLoad() deprecated. Use highlightAll() now.");
}
let E = !1;
function A() {
if (document.readyState === "loading") {
E = !0;
return;
}
document.querySelectorAll(i.cssSelector).forEach(_);
}
function S() {
E && A();
}
typeof window != "undefined" && window.addEventListener && window.addEventListener("DOMContentLoaded", S, !1);
function D(b, y) {
let L = null;
try {
L = y(n);
} catch (U) {
if (se("Language definition for '{}' could not be registered.".replace("{}", b)), h)
se(U);
else
throw U;
L = r;
}
L.name || (L.name = b), e[b] = L, L.rawDefinition = y.bind(null, n), L.aliases && I(L.aliases, { languageName: b });
}
function N(b) {
delete e[b];
for (const y of Object.keys(s))
s[y] === b && delete s[y];
}
function R() {
return Object.keys(e);
}
function C(b) {
return b = (b || "").toLowerCase(), e[b] || e[s[b]];
}
function I(b, { languageName: y }) {
typeof b == "string" && (b = [b]), b.forEach((L) => {
s[L.toLowerCase()] = y;
});
}
function $(b) {
const y = C(b);
return y && !y.disableAutodetect;
}
function B(b) {
b["before:highlightBlock"] && !b["before:highlightElement"] && (b["before:highlightElement"] = (y) => {
b["before:highlightBlock"](
Object.assign({ block: y.el }, y)
);
}), b["after:highlightBlock"] && !b["after:highlightElement"] && (b["after:highlightElement"] = (y) => {
b["after:highlightBlock"](
Object.assign({ block: y.el }, y)
);
});
}
function H(b) {
B(b), u.push(b);
}
function K(b) {
const y = u.indexOf(b);
y !== -1 && u.splice(y, 1);
}
function te(b, y) {
const L = b;
u.forEach(function(U) {
U[L] && U[L](y);
});
}
function le(b) {
return ce("10.7.0", "highlightBlock will be removed entirely in v12.0"), ce("10.7.0", "Please use highlightElement now."), _(b);
}
Object.assign(n, {
highlight: l,
highlightAuto: g,
highlightAll: A,
highlightElement: _,
// TODO: Remove with v12 API
highlightBlock: le,
configure: p,
initHighlighting: v,
initHighlightingOnLoad: m,
registerLanguage: D,
unregisterLanguage: N,
listLanguages: R,
getLanguage: C,
registerAliases: I,
autoDetection: $,
inherit: Je,
addPlugin: H,
removePlugin: K
}), n.debugMode = function() {
h = !1;
}, n.safeMode = function() {
h = !0;
}, n.versionString = Ot, n.regex = {
concat: ae,
lookahead: ln,
either: Ue,
optional: Zn,
anyNumberOfTimes: Vn
};
for (const b in we)
typeof we[b] == "object" && an(we[b]);
return Object.assign(n, we), n;
}, fe = bn({});
fe.newInstance = () => bn({});
var Bt = fe;
fe.HighlightJS = fe;
fe.default = fe;
const Z = /* @__PURE__ */ zn(Bt);
function $t(n) {
const e = n.regex, s = e.concat(/[\p{L}_]/u, e.optional(/[\p{L}0-9_.-]*:/u), /[\p{L}0-9_.-]*/u), u = /[\p{L}0-9._:-]+/u, h = {
className: "symbol",
begin: /&[a-z]+;|[0-9]+;|[a-f0-9]+;/
}, t = {
begin: /\s/,
contains: [
{
className: "keyword",
begin: /#?[a-z_][a-z1-9_-]+/,
illegal: /\n/
}
]
}, r = n.inherit(t, {
begin: /\(/,
end: /\)/
}), i = n.inherit(n.APOS_STRING_MODE, { className: "string" }), a = n.inherit(n.QUOTE_STRING_MODE, { className: "string" }), o = {
endsWithParent: !0,
illegal: /,
relevance: 0,
contains: [
{
className: "attr",
begin: u,
relevance: 0
},
{
begin: /=\s*/,
relevance: 0,
contains: [
{
className: "string",
endsParent: !0,
variants: [
{
begin: /"/,
end: /"/,
contains: [h]
},
{
begin: /'/,
end: /'/,
contains: [h]
},
{ begin: /[^\s"'=<>`]+/ }
]
}
]
}
]
};
return {
name: "HTML, XML",
aliases: [
"html",
"xhtml",
"rss",
"atom",
"xjb",
"xsd",
"xsl",
"plist",
"wsf",
"svg"
],
case_insensitive: !0,
unicodeRegex: !0,
contains: [
{
className: "meta",
begin: //,
relevance: 10,
contains: [
t,
a,
i,
r,
{
begin: /\[/,
end: /\]/,
contains: [
{
className: "meta",
begin: //,
contains: [
t,
r,
a,
i
]
}
]
}
]
},
n.COMMENT(
//,
{ relevance: 10 }
),
{
begin: //,
relevance: 10
},
h,
// xml processing instructions
{
className: "meta",
end: /\?>/,
variants: [
{
begin: /<\?xml/,
relevance: 10,
contains: [
a
]
},
{
begin: /<\?[a-z][a-z0-9]+/
}
]
},
{
className: "tag",
/*
The lookahead pattern (?=...) ensures that 'begin' only matches
'