mutation.html•250 kB
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script>
/*! For license information please see mutation-test-elements.js.LICENSE.txt */
!function(){var e={3704:function(e,t,r){"use strict";var n=r(9601),i=r.n(n),o=r(2609),a=r.n(o),s=r(8991),l=r.n(s),c=new URL(r(9138),r.b),u=new URL(r(3783),r.b),d=a()(i()),p=l()(c),h=l()(u);d.push([e.id,":host(:not([theme=dark])){--prism-maintext:#393a34;--prism-background:#f6f8fa;--prism-border:#ddd;--prism-cdata:#998;--prism-comment:var(--prism-cdata);--prism-doctype:var(--prism-cdata);--prism-prolog:var(--prism-cdata);--prism-attr-value:#e3116c;--prism-string:var(--prism-attr-value);--prism-boolean:#36acaa;--prism-entity:var(--prism-boolean);--prism-url:var(--prism-boolean);--prism-constant:var(--prism-boolean);--prism-inserted:var(--prism-boolean);--prism-number:var(--prism-boolean);--prism-property:var(--prism-boolean);--prism-regex:var(--prism-boolean);--prism-symbol:var(--prism-boolean);--prism-variable:var(--prism-boolean);--prism-atrule:#00a4db;--prism-attr-name:var(--prism-atrule);--prism-attr:var(--prism-atrule);--prism-operator:var(--prism-maintext);--prism-punctuation:var(--prism-maintext);--prism-deleted:#9a050f;--prism-function:var(--prism-deleted);--prism-function-variable:#6f42c1;--prism-selector:#00009f;--prism-tag:var(--prism-selector);--prism-keyword:var(--prism-selector)}:host([theme=dark]){--prism-maintext:#d3d0c8;--prism-background:#1d1f21;--prism-border:rgb(var(--mut-gray-200));--prism-cdata:#7c7c7c;--prism-comment:var(--prism-cdata);--prism-doctype:var(--prism-cdata);--prism-prolog:var(--prism-cdata);--prism-punctuation:#c5c8c6;--prism-tag:#96cbfe;--prism-property:var(--prism-tag);--prism-keyword:var(--prism-tag);--prism-class-name:#ffffb6;--prism-boolean:#9c9;--prism-constant:var(--prism-boolean);--prism-symbol:#f92672;--prism-deleted:var(--prism-symbol);--prism-number:#ff73fd;--prism-inserted:#a8ff60;--prism-selector:var(--prism-inserted);--prism-attr-name:var(--prism-inserted);--prism-string:var(--prism-inserted);--prism-char:var(--prism-inserted);--prism-builtin:var(--prism-inserted);--prism-variable:#c6c5fe;--prism-operator:#ededed;--prism-entity:#ffffb6;--prism-url:#96cbfe;--prism-attr-value:#f9ee98;--prism-atrule:var(--prism-attr-value);--prism-function:#dad085;--prism-regex:#e9c062;--prism-important:#fd971f}:host(:not([theme=dark])){--mut-file-ts-color:#498ba7;--mut-file-ts-test-color:#b7b73b;--mut-file-scala-color:#b8383d;--mut-file-java-color:#b8383d;--mut-file-js-color:#b7b73b;--mut-file-js-test-color:#cc6d2e;--mut-file-php-color:#9068b0;--mut-file-html-color:#498ba7;--mut-file-csharp-color:#498ba7;--mut-file-vue-color:#7fae42;--mut-file-gherkin-color:#00a818}:host([theme=dark]){--mut-file-ts-color:#519aba;--mut-file-ts-test-color:#cbcb41;--mut-file-scala-color:#cc3e44;--mut-file-java-color:#cc3e44;--mut-file-js-color:#cbcb41;--mut-file-js-test-color:#e37933;--mut-file-php-color:#a074c4;--mut-file-html-color:#519aba;--mut-file-csharp-color:#519aba;--mut-file-vue-color:#8dc149;--mut-file-gherkin-color:#10b828}:host(:not([theme=dark])){--mut-gray-bg:rgb(var(--mut-white,255 255 255)/1);--mut-octicon-icon-color:#498ba7;--mut-line-number:#6e7781;--mut-diff-add-bg:#e6ffec;--mut-diff-add-bg-line-number:#ccffd8;--mut-diff-add-line-number:#24292f;--mut-diff-del-bg:#ffebe9;--mut-diff-del-bg-line-number:#ffd7d5;--mut-diff-del-line-number:var(--mut-diff-add-line-number);--mut-badge-info-bg:#54c6ec;--mut-badge-info:#212529;--mut-code-lense:#919191;--mut-squiggly-Survived:url("+p+");--mut-squiggly-NoCoverage:url("+h+");--mut-body-bg:#fff}:host([theme=dark]){--mut-gray-50:24 24 27;--mut-gray-100:39 39 42;--mut-gray-200:63 63 70;--mut-gray-300:82 82 91;--mut-gray-400:113 113 122;--mut-gray-500:161 161 170;--mut-gray-600:212 212 216;--mut-gray-700:228 228 231;--mut-gray-800:244 244 245;--mut-gray-900:250 250 250;--mut-primary-100:7 89 133;--mut-primary-800:224 242 254;--mut-primary-900:240 249 255;--mut-primary-on:14 165 233;--mut-body-bg:#18181b;--mut-white:var(--mut-gray-50);--mut-octicon-icon-color:#519aba;--mut-line-number:#484f58;--mut-diff-add-bg:rgba(46,160,67,.15);--mut-diff-add-bg-line-number:rgba(63,185,80,.3);--mut-diff-add-line-number:#c9d1d9;--mut-diff-del-bg:rgba(248,81,73,.15);--mut-diff-del-bg-line-number:rgba(248,81,73,.3);--mut-diff-del-line-number:#c9d1d9;--mut-badge-info-bg:#17a3b8;--mut-badge-info:#fff;--mut-code-lense:#999;--mut-squiggly-Survived:url("+p+");--mut-squiggly-NoCoverage:url("+h+");color-scheme:dark}",""]),t.Z=d},9483:function(e,t,r){"use strict";var n=r(9601),i=r.n(n),o=r(2609),a=r.n(o)()(i());a.push([e.id,":host([mode=closed]){height:0}:host([mode=half]){height:120px}:host([mode=open]){height:50%}:host([mode=open]) .scrollable{height:100%;overflow-x:hidden;overflow-y:auto}",""]),t.Z=a},8847:function(e,t,r){"use strict";var n=r(9601),i=r.n(n),o=r(2609),a=r.n(o)()(i());a.push([e.id,"svg.cs{fill:var(--mut-file-csharp-color)}svg.html{fill:var(--mut-file-html-color)}svg.java{fill:var(--mut-file-java-color)}svg.javascript{fill:var(--mut-file-js-color)}svg.scala{fill:var(--mut-file-scala-color)}svg.typescript{fill:var(--mut-file-ts-color)}svg.php{fill:var(--mut-file-php-color)}svg.vue{fill:var(--mut-file-vue-color)}svg.octicon{fill:var(--mut-octicon-icon-color)}svg.javascript.test,svg.typescript.test{fill:var(--mut-file-js-test-color)}svg.gherkin{fill:var(--mut-file-gherkin-color)}svg{vertical-align:middle;width:20px}",""]),t.Z=a},5545:function(e,t,r){"use strict";var n=r(9601),i=r.n(n),o=r(2609),a=r.n(o)()(i());a.push([e.id,'#report-code-block{background:var(--prism-background);border:1px solid var(--prism-border);overflow-x:auto;overflow-y:visible}.line-numbers{counter-reset:mte-line-number}.line .line-number{color:var(--mut-line-number);counter-increment:mte-line-number;padding:0 10px 0 15px;text-align:right}.line .line-number:before{content:counter(mte-line-number)}.line-marker:before{content:" ";padding:0 5px}.mte-selected-Killed .mutant.Killed{border-bottom:2px solid;border-color:#16a34a;cursor:pointer}svg.mutant-dot.Killed{fill:#16a34a}svg.mutant-dot.NoCoverage{fill:#f97316}svg.mutant-dot.Survived{fill:#ef4444}.mte-selected-Timeout .mutant.Timeout{border-bottom:2px solid;border-color:#fbbf24;cursor:pointer}svg.mutant-dot.Timeout{fill:#fbbf24}.mte-selected-CompileError .mutant.CompileError{border-bottom:2px solid;border-color:#a3a3a3;cursor:pointer}svg.mutant-dot.CompileError{fill:#a3a3a3}.mte-selected-RuntimeError .mutant.RuntimeError{border-bottom:2px solid;border-color:#a3a3a3;cursor:pointer}svg.mutant-dot.RuntimeError{fill:#a3a3a3}.mte-selected-Ignored .mutant.Ignored{border-bottom:2px solid;border-color:#a3a3a3;cursor:pointer}svg.mutant-dot.Ignored{fill:#a3a3a3}svg.mutant-dot.selected{fill:#38bdf8}.mte-selected-Survived .mutant.Survived{border-bottom-style:solid;border-image-outset:6px;border-image-repeat:repeat;border-image-slice:0 0 4 0;border-image-source:var(--mut-squiggly-Survived);border-image-width:4px;cursor:pointer}.mte-selected-Survived .mutant.Survived .mutant.NoCoverage,.mte-selected-Survived .mutant.Survived .mutant.Survived{border-bottom-style:none;-o-border-image:none;border-image:none}.mte-selected-NoCoverage .mutant.NoCoverage{border-bottom-style:solid;border-image-outset:6px;border-image-repeat:repeat;border-image-slice:0 0 4 0;border-image-source:var(--mut-squiggly-NoCoverage);border-image-width:4px;cursor:pointer}.mte-selected-NoCoverage .mutant.NoCoverage .mutant.NoCoverage,.mte-selected-NoCoverage .mutant.NoCoverage .mutant.Survived{border-bottom-style:none;-o-border-image:none;border-image:none}.mutant-dot{cursor:pointer}svg.mutant-dot{margin:2px}.diff-old{background-color:var(--mut-diff-del-bg)}.diff-focus{background-color:var(--mut-diff-add-bg-line-number)}.diff-old .line-number{background-color:var(--mut-diff-del-bg-line-number);color:var(--mut-diff-del-line-number)}.diff-old .line-marker:before{content:"-"}.diff-new{background-color:var(--mut-diff-add-bg)}.diff-new .empty-line-number{background-color:var(--mut-diff-add-bg-line-number);color:var(--mut-diff-add-line-number)}.diff-new .line-marker:before{content:"+"}',""]),t.Z=a},3813:function(e,t,r){"use strict";var n=r(9601),i=r.n(n),o=r(2609),a=r.n(o)()(i());a.push([e.id,"main{padding-bottom:120px}",""]),t.Z=a},1276:function(e,t,r){"use strict";var n=r(9601),i=r.n(n),o=r(2609),a=r.n(o)()(i());a.push([e.id,".step-button{--tw-bg-opacity:1;--tw-text-opacity:1;align-items:center;background-color:rgb(var(--mut-primary-600,2 132 199)/var(--tw-bg-opacity));border-radius:.375rem;color:rgb(var(--mut-white,255 255 255)/var(--tw-text-opacity));display:inline-flex;margin-right:.5rem;padding:.25rem;text-align:center}.step-button:hover{--tw-bg-opacity:1;background-color:rgb(var(--mut-primary-700,3 105 161)/var(--tw-bg-opacity))}.step-button:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-opacity:1;--tw-ring-color:rgb(var(--mut-primary-500,14 165 233)/var(--tw-ring-opacity));box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);outline:2px solid transparent;outline-offset:2px}",""]),t.Z=a},5110:function(e,t,r){"use strict";var n=r(9601),i=r.n(n),o=r(2609),a=r.n(o)()(i());a.push([e.id,'#report-code-block{background:var(--prism-background);border:1px solid var(--prism-border);overflow-x:auto;overflow-y:visible}.line-numbers{counter-reset:mte-line-number}.line .line-number{color:var(--mut-line-number);counter-increment:mte-line-number;padding:0 10px 0 15px;text-align:right}.line .line-number:before{content:counter(mte-line-number)}.line-marker:before{content:" ";padding:0 5px}svg.test-dot.Killing{fill:#15803d}svg.test-dot.Covering{fill:#fbbf24}svg.test-dot.NotCovering{fill:#f97316}svg.test-dot.selected{fill:#38bdf8}svg.test-dot{margin:2px}',""]),t.Z=a},9827:function(e,t,r){"use strict";var n=r(9601),i=r.n(n),o=r(2609),a=r.n(o)()(i());a.push([e.id,"main{padding-bottom:120px}",""]),t.Z=a},4835:function(e,t,r){"use strict";var n=r(9601),i=r.n(n),o=r(2609),a=r.n(o)()(i());a.push([e.id,'#darkTheme{position:absolute;right:100vw}#darkTheme+label{--i:0;--j:calc(1 - var(--i));grid-gap:.15em .06em;background:hsl(199,98%,calc(var(--j)*48%));border-radius:.75em;color:transparent;cursor:pointer;display:grid;height:1.5em;overflow:hidden;padding:.15em;transition:.3s;-webkit-user-select:none;user-select:none}#darkTheme+label:after,#darkTheme+label:before{content:"";height:1.2em;transition:inherit;width:1.2em}#darkTheme+label:before{--poly:polygon(44.133707561% 12.9616872277%,50% 0%,55.866292439% 12.9616872277%,59.7057141913% 13.7777815142%,63.4387981079% 14.9907340064%,67.0246437402% 16.5872553429%,79.3892626146% 9.5491502813%,76.5165042945% 23.4834957055%,79.1429735546% 26.4004853356%,81.450146298% 29.5760361869%,83.4127446571% 32.9753562598%,97.5528258148% 34.5491502813%,87.0383127723% 44.133707561%,87.4486075533% 48.0374016409%,87.4486075533% 51.9625983591%,87.0383127723% 55.866292439%,97.5528258148% 65.4508497187%,83.4127446571% 67.0246437402%,81.450146298% 70.4239638131%,79.1429735546% 73.5995146644%,76.5165042945% 76.5165042945%,79.3892626146% 90.4508497187%,67.0246437402% 83.4127446571%,63.4387981079% 85.0092659936%,59.7057141913% 86.2222184858%,55.866292439% 87.0383127723%,50% 100%,44.133707561% 87.0383127723%,40.2942858087% 86.2222184858%,36.561201892% 85.0092659936%,32.9753562598% 83.4127446571%,20.6107373854% 90.4508497187%,23.4834957055% 76.5165042945%,20.8570264454% 73.5995146644%,18.5498537021% 70.4239638131%,16.587255343% 67.0246437402%,2.4471741856% 65.4508497188%,12.9616872286% 55.8662924391%,12.5513924487% 51.9625983594%,12.5513924508% 48.0374016414%,12.961687236% 44.1337075622%,2.4471742159% 34.5491502859%,16.587255404% 32.9753562694%,18.5498538164% 29.5760362054%,20.8570266557% 26.4004853707%,23.4834960862% 23.4834957706%,20.6107385856% 9.5491504949%,32.97535832% 16.5872557238%,36.5612054098% 14.9907346728%,40.2942917387% 13.7777826649%);background:#ff0;-webkit-clip-path:var(--poly);clip-path:var(--poly);transform:translate(calc(var(--i)*(100% + .06em))) scale(calc(1 - var(--i)*.8));transform-origin:20% 20%}#darkTheme+label:after{background:radial-gradient(circle at 19% 19%,transparent 41%,#fff 43%);border-radius:50%;grid-column:2;transform:translatey(calc(var(--i)*(-130% - .15em)))}#darkTheme:checked+label{--i:1}.check-box-container{width:2.9em}',""]),t.Z=a},5043:function(e,t,r){"use strict";var n=r(9601),i=r.n(n),o=r(2609),a=r.n(o)()(i());a.push([e.id,"",""]),t.Z=a},6773:function(e,t,r){"use strict";var n=r(9601),i=r.n(n),o=r(2609),a=r.n(o),s=r(5863),l=r(4163),c=a()(i());c.i(s.Z),c.i(l.Z),c.push([e.id,"",""]),t.Z=c},7063:function(e,t,r){"use strict";var n=r(9601),i=r.n(n),o=r(2609),a=r.n(o),s=r(8991),l=r.n(s),c=new URL(r(4507),r.b),u=new URL(r(2254),r.b),d=new URL(r(6184),r.b),p=new URL(r(421),r.b),h=a()(i()),m=l()(c),g=l()(u),f=l()(d),b=l()(p);h.push([e.id,'/*! tailwindcss v3.2.4 | MIT License | https://tailwindcss.com*/*,:after,:before{border-color:rgb(var(--mut-gray-200,228 228 231)/1);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--tw-content:""}html{-webkit-text-size-adjust:100%;font-feature-settings:normal;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:rgb(var(--mut-gray-400,161 161 170)/1);opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]{display:none}[multiple],[type=date],[type=datetime-local],[type=email],[type=month],[type=number],[type=password],[type=search],[type=tel],[type=text],[type=time],[type=url],[type=week],select,textarea{--tw-shadow:0 0 #0000;-webkit-appearance:none;appearance:none;background-color:#fff;border-color:rgb(var(--mut-gray-500,113 113 122)/<alpha-value>);border-radius:0;border-width:1px;font-size:1rem;line-height:1.5rem;padding:.5rem .75rem}[multiple]:focus,[type=date]:focus,[type=datetime-local]:focus,[type=email]:focus,[type=month]:focus,[type=number]:focus,[type=password]:focus,[type=search]:focus,[type=tel]:focus,[type=text]:focus,[type=time]:focus,[type=url]:focus,[type=week]:focus,select:focus,textarea:focus{--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#2563eb;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);border-color:#2563eb;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);outline:2px solid transparent;outline-offset:2px}input::placeholder,textarea::placeholder{color:rgb(var(--mut-gray-500,113 113 122)/<alpha-value>);opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-date-and-time-value{min-height:1.5em}::-webkit-datetime-edit,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-meridiem-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-year-field{padding-bottom:0;padding-top:0}select{background-image:url('+m+");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem;-webkit-print-color-adjust:exact;print-color-adjust:exact}[multiple]{background-image:none;background-position:0 0;background-repeat:unset;background-size:initial;padding-right:.75rem;-webkit-print-color-adjust:unset;print-color-adjust:unset}[type=checkbox],[type=radio]{--tw-shadow:0 0 #0000;-webkit-appearance:none;appearance:none;background-color:#fff;background-origin:border-box;border-color:rgb(var(--mut-gray-500,113 113 122)/<alpha-value>);border-width:1px;color:#2563eb;display:inline-block;flex-shrink:0;height:1rem;padding:0;-webkit-print-color-adjust:exact;print-color-adjust:exact;-webkit-user-select:none;user-select:none;vertical-align:middle;width:1rem}[type=checkbox]{border-radius:0}[type=radio]{border-radius:100%}[type=checkbox]:focus,[type=radio]:focus{--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:2px;--tw-ring-offset-color:#fff;--tw-ring-color:#2563eb;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);outline:2px solid transparent;outline-offset:2px}[type=checkbox]:checked,[type=radio]:checked{background-color:currentColor;background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:transparent}[type=checkbox]:checked{background-image:url("+g+")}[type=radio]:checked{background-image:url("+f+")}[type=checkbox]:checked:focus,[type=checkbox]:checked:hover,[type=radio]:checked:focus,[type=radio]:checked:hover{background-color:currentColor;border-color:transparent}[type=checkbox]:indeterminate{background-color:currentColor;background-image:url("+b+");background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:transparent}[type=checkbox]:indeterminate:focus,[type=checkbox]:indeterminate:hover{background-color:currentColor;border-color:transparent}[type=file]{background:unset;border-color:inherit;border-radius:0;border-width:0;font-size:unset;line-height:inherit;padding:0}[type=file]:focus{outline:1px solid ButtonText;outline:1px auto -webkit-focus-ring-color}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.container{margin-left:auto;margin-right:auto;width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}@media (min-width:2000px){.container{max-width:2000px}}.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.sticky{position:sticky}.top-offset{top:var(--top-offset,0)}.bottom-0{bottom:0}.z-20{z-index:20}.z-10{z-index:10}.float-right{float:right}.my-6{margin-bottom:1.5rem;margin-top:1.5rem}.mx-4{margin-left:1rem;margin-right:1rem}.my-4{margin-bottom:1rem;margin-top:1rem}.mx-6{margin-left:1.5rem;margin-right:1.5rem}.my-3{margin-bottom:.75rem;margin-top:.75rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.my-1{margin-bottom:.25rem;margin-top:.25rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.ml-1{margin-left:.25rem}.ml-4{margin-left:1rem}.-mb-px{margin-bottom:-1px}.mr-2{margin-right:.5rem}.ml-2{margin-left:.5rem}.mb-6{margin-bottom:1.5rem}.mr-12{margin-right:3rem}.mt-2{margin-top:.5rem}.mr-6{margin-right:1.5rem}.mr-auto{margin-right:auto}.mr-3{margin-right:.75rem}.mr-4{margin-right:1rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.h-3{height:.75rem}.h-4{height:1rem}.h-5{height:1.25rem}.w-full{width:100%}.w-24{width:6rem}.w-12{width:3rem}.w-4{width:1rem}.w-5{width:1.25rem}.min-w-\\[24px\\]{min-width:24px}.max-w-6xl{max-width:72rem}.table-auto{table-layout:auto}.rotate-180{--tw-rotate:180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.cursor-help{cursor:help}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-around{justify-content:space-around}.gap-4{gap:1rem}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-bottom-width:calc(1px*var(--tw-divide-y-reverse));border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)))}.divide-gray-200>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(var(--mut-gray-200,228 228 231)/var(--tw-divide-opacity))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.rounded-md{border-radius:.375rem}.rounded-lg{border-radius:.5rem}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.rounded-t-3xl{border-top-left-radius:1.5rem;border-top-right-radius:1.5rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-none{border-style:none}.border-gray-200{--tw-border-opacity:1;border-color:rgb(var(--mut-gray-200,228 228 231)/var(--tw-border-opacity))}.border-transparent{border-color:transparent}.border-gray-300{--tw-border-opacity:1;border-color:rgb(var(--mut-gray-300,212 212 216)/var(--tw-border-opacity))}.bg-primary-100{--tw-bg-opacity:1;background-color:rgb(var(--mut-primary-100,224 242 254)/var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgb(var(--mut-white,255 255 255)/var(--tw-bg-opacity))}.bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity))}.bg-gray-200\\/60{background-color:rgb(var(--mut-gray-200,228 228 231)/.6)}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(var(--mut-gray-100,244 244 245)/var(--tw-bg-opacity))}.bg-gray-300{--tw-bg-opacity:1;background-color:rgb(var(--mut-gray-300,212 212 216)/var(--tw-bg-opacity))}.bg-red-600{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity))}.bg-yellow-400{--tw-bg-opacity:1;background-color:rgb(250 204 21/var(--tw-bg-opacity))}.bg-green-600{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity))}.bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity))}.bg-green-100{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity))}.bg-yellow-100{--tw-bg-opacity:1;background-color:rgb(254 249 195/var(--tw-bg-opacity))}.bg-orange-100{--tw-bg-opacity:1;background-color:rgb(255 237 213/var(--tw-bg-opacity))}.p-4{padding:1rem}.p-3{padding:.75rem}.p-1{padding:.25rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-4{padding-bottom:1rem;padding-top:1rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-4{padding-left:1rem;padding-right:1rem}.px-2\\.5{padding-left:.625rem;padding-right:.625rem}.py-0\\.5{padding-bottom:.125rem;padding-top:.125rem}.py-0{padding-bottom:0;padding-top:0}.pb-4{padding-bottom:1rem}.pt-4{padding-top:1rem}.pr-2{padding-right:.5rem}.pl-1{padding-left:.25rem}.text-left{text-align:left}.text-center{text-align:center}.align-middle{vertical-align:middle}.font-sans{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.text-sm{font-size:.875rem;line-height:1.25rem}.text-5xl{font-size:3rem;line-height:1}.text-lg{font-size:1.125rem;line-height:1.75rem}.font-medium{font-weight:500}.font-bold{font-weight:700}.font-light{font-weight:300}.font-semibold{font-weight:600}.tracking-tight{letter-spacing:-.025em}.text-gray-700{--tw-text-opacity:1;color:rgb(var(--mut-gray-700,63 63 70)/var(--tw-text-opacity))}.text-gray-800{--tw-text-opacity:1;color:rgb(var(--mut-gray-800,39 39 42)/var(--tw-text-opacity))}.text-primary-800{--tw-text-opacity:1;color:rgb(var(--mut-primary-800,7 89 133)/var(--tw-text-opacity))}.text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity:1;color:rgb(var(--mut-gray-600,82 82 91)/var(--tw-text-opacity))}.text-gray-200{--tw-text-opacity:1;color:rgb(var(--mut-gray-200,228 228 231)/var(--tw-text-opacity))}.text-yellow-600{--tw-text-opacity:1;color:rgb(202 138 4/var(--tw-text-opacity))}.text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity))}.text-primary-on{--tw-text-opacity:1;color:rgb(var(--mut-primary-on,3 105 161)/var(--tw-text-opacity))}.text-green-800{--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity))}.text-yellow-800{--tw-text-opacity:1;color:rgb(133 77 14/var(--tw-text-opacity))}.text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity))}.text-orange-800{--tw-text-opacity:1;color:rgb(154 52 18/var(--tw-text-opacity))}.underline{text-decoration-line:underline}.decoration-dotted{text-decoration-style:dotted}.shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color)}.shadow,.shadow-xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.\\!ring-offset-gray-200{--tw-ring-offset-color:rgb(var(--mut-gray-200,228 228 231)/1)!important}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-lg{--tw-backdrop-blur:blur(16px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-width{transition-duration:.15s;transition-property:width;transition-timing-function:cubic-bezier(.4,0,.2,1)}.after\\:text-gray-800:after{--tw-text-opacity:1;color:rgb(var(--mut-gray-800,39 39 42)/var(--tw-text-opacity));content:var(--tw-content)}.after\\:content-\\[\\'\\/\\'\\]:after{--tw-content:\"/\";content:var(--tw-content)}.even\\:bg-gray-100:nth-child(2n),.odd\\:bg-gray-100:nth-child(odd){--tw-bg-opacity:1;background-color:rgb(var(--mut-gray-100,244 244 245)/var(--tw-bg-opacity))}.hover\\:cursor-pointer:hover{cursor:pointer}.hover\\:border-gray-300:hover{--tw-border-opacity:1;border-color:rgb(var(--mut-gray-300,212 212 216)/var(--tw-border-opacity))}.hover\\:bg-gray-200:hover{--tw-bg-opacity:1;background-color:rgb(var(--mut-gray-200,228 228 231)/var(--tw-bg-opacity))}.hover\\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(var(--mut-gray-100,244 244 245)/var(--tw-bg-opacity))}.hover\\:text-gray-900:hover{--tw-text-opacity:1;color:rgb(var(--mut-gray-900,24 24 27)/var(--tw-text-opacity))}.hover\\:text-gray-700:hover{--tw-text-opacity:1;color:rgb(var(--mut-gray-700,63 63 70)/var(--tw-text-opacity))}.hover\\:text-primary-on:hover{--tw-text-opacity:1;color:rgb(var(--mut-primary-on,3 105 161)/var(--tw-text-opacity))}.hover\\:underline:hover{text-decoration-line:underline}.focus\\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\\:ring-primary-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(var(--mut-primary-500,14 165 233)/var(--tw-ring-opacity))}.active\\:bg-gray-200:active,.group:hover .group-hover\\:bg-gray-200{--tw-bg-opacity:1;background-color:rgb(var(--mut-gray-200,228 228 231)/var(--tw-bg-opacity))}.aria-selected\\:border-b-\\[3px\\][aria-selected=true]{border-bottom-width:3px}.aria-selected\\:border-primary-700[aria-selected=true]{--tw-border-opacity:1;border-color:rgb(var(--mut-primary-700,3 105 161)/var(--tw-border-opacity))}.aria-selected\\:text-primary-on[aria-selected=true]{--tw-text-opacity:1;color:rgb(var(--mut-primary-on,3 105 161)/var(--tw-text-opacity))}@media (prefers-reduced-motion:no-preference){.motion-safe\\:transition-max-width{transition-duration:.15s;transition-property:max-width;transition-timing-function:cubic-bezier(.4,0,.2,1)}.motion-safe\\:transition-\\[height\\2c max-width\\]{transition-duration:.15s;transition-property:height,max-width;transition-timing-function:cubic-bezier(.4,0,.2,1)}.motion-safe\\:duration-200{transition-duration:.2s}}@media (min-width:768px){.md\\:ml-2{margin-left:.5rem}.md\\:after\\:pl-1:after{content:var(--tw-content);padding-left:.25rem}}@media (min-width:1536px){.\\32xl\\:w-28{width:7rem}}",""]),t.Z=h},4163:function(e,t,r){"use strict";var n=r(9601),i=r.n(n),o=r(2609),a=r.n(o)()(i());a.push([e.id,'pre[class*="language-"].line-numbers {\n\tposition: relative;\n\tpadding-left: 3.8em;\n\tcounter-reset: linenumber;\n}\n\npre[class*="language-"].line-numbers > code {\n\tposition: relative;\n\twhite-space: inherit;\n}\n\n.line-numbers .line-numbers-rows {\n\tposition: absolute;\n\tpointer-events: none;\n\ttop: 0;\n\tfont-size: 100%;\n\tleft: -3.8em;\n\twidth: 3em; /* works for line-numbers below 1000 lines */\n\tletter-spacing: -1px;\n\tborder-right: 1px solid #999;\n\n\t-webkit-user-select: none;\n\t-moz-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none;\n\n}\n\n\t.line-numbers-rows > span {\n\t\tdisplay: block;\n\t\tcounter-increment: linenumber;\n\t}\n\n\t\t.line-numbers-rows > span:before {\n\t\t\tcontent: counter(linenumber);\n\t\t\tcolor: #999;\n\t\t\tdisplay: block;\n\t\t\tpadding-right: 0.8em;\n\t\t\ttext-align: right;\n\t\t}\n',""]),t.Z=a},5863:function(e,t,r){"use strict";var n=r(9601),i=r.n(n),o=r(2609),a=r.n(o)()(i());a.push([e.id,"/**\n * GHColors theme by Avi Aryan (http://aviaryan.in)\n * Inspired by Github syntax coloring\n */\n\ncode[class*='language-'],\npre[class*='language-'] {\n color: var(--prism-maintext);\n font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;\n direction: ltr;\n font-size: 1em;\n text-align: left;\n white-space: pre;\n word-spacing: normal;\n word-break: normal;\n line-height: 1.5;\n\n -moz-tab-size: 4;\n -o-tab-size: 4;\n tab-size: 4;\n\n -webkit-hyphens: none;\n -moz-hyphens: none;\n -ms-hyphens: none;\n hyphens: none;\n}\n\npre > code[class*='language-'] {\n font-size: 1em;\n}\n\n/* Code blocks */\npre[class*='language-'] {\n padding: 1em;\n margin: 0.5em 0;\n overflow: auto;\n border: 1px solid var(--prism-border);\n border-radius: 0.25rem;\n}\n\n:not(pre) > code[class*='language-'],\npre[class*='language-'] {\n background: var(--prism-background);\n}\n\n.token.comment,\n.token.prolog,\n.token.doctype,\n.token.italic,\n.token.cdata {\n font-style: italic;\n}\n\n.token.important,\n.token.function,\n.token.bold {\n font-weight: bold;\n}\n\n.token.namespace {\n opacity: 0.7;\n}\n\n.token.atrule {\n color: var(--prism-atrule);\n}\n.token.attr {\n color: var(--prism-attr);\n}\n.token.attr-name {\n color: var(--prism-attr-name);\n}\n.token.boolean {\n color: var(--prism-boolean);\n}\n.token.builtin {\n color: var(--prism-builtin);\n}\n.token.cdata {\n color: var(--prism-cdata);\n}\n.token.changed {\n color: var(--prism-changed);\n}\n.token.char {\n color: var(--prism-char);\n}\n.token.comment {\n color: var(--prism-comment);\n}\n.token.constant {\n color: var(--prism-constant);\n}\n.token.deleted {\n color: var(--prism-deleted);\n}\n.token.doctype {\n color: var(--prism-doctype);\n}\n.token.entity {\n color: var(--prism-entity);\n cursor: help;\n}\n.token.function {\n color: var(--prism-function);\n}\n.token.function-variable {\n color: var(--prism-function-variable, var(--prism-function));\n}\n.token.inserted {\n color: var(--prism-inserted);\n}\n.token.keyword {\n color: var(--prism-keyword);\n}\n.token.number {\n color: var(--prism-number);\n}\n.token.operator {\n color: var(--prism-operator);\n}\n.token.prolog {\n color: var(--prism-prolog);\n}\n.token.property {\n color: var(--prism-property);\n}\n.token.punctuation {\n color: var(--prism-punctuation);\n}\n.token.regex {\n color: var(--prism-regex);\n}\n.token.selector {\n color: var(--prism-selector);\n}\n.token.string {\n color: var(--prism-string);\n}\n.token.symbol {\n color: var(--prism-symbol);\n}\n.token.tag {\n color: var(--prism-tag);\n}\n.token.url {\n color: var(--prism-url);\n}\n.token.variable {\n color: var(--prism-variable);\n}\n.token.placeholder {\n color: var(--prism-placeholder);\n}\n.token.statement {\n color: var(--prism-statement);\n}\n.token.attr-value {\n color: var(--prism-attr-value);\n}\n.token.control {\n color: var(--prism-control);\n}\n.token.directive {\n color: var(--prism-directive);\n}\n.token.unit {\n color: var(--prism-unit);\n}\n.token.important {\n color: var(--prism-important);\n}\n.token.class-name {\n color: var(--prism-class-name);\n}\n",""]),t.Z=a},2609:function(e){"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var r="",n=void 0!==t[5];return t[4]&&(r+="@supports (".concat(t[4],") {")),t[2]&&(r+="@media ".concat(t[2]," {")),n&&(r+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),r+=e(t),n&&(r+="}"),t[2]&&(r+="}"),t[4]&&(r+="}"),r})).join("")},t.i=function(e,r,n,i,o){"string"==typeof e&&(e=[[null,e,void 0]]);var a={};if(n)for(var s=0;s<this.length;s++){var l=this[s][0];null!=l&&(a[l]=!0)}for(var c=0;c<e.length;c++){var u=[].concat(e[c]);n&&a[u[0]]||(void 0!==o&&(void 0===u[5]||(u[1]="@layer".concat(u[5].length>0?" ".concat(u[5]):""," {").concat(u[1],"}")),u[5]=o),r&&(u[2]?(u[1]="@media ".concat(u[2]," {").concat(u[1],"}"),u[2]=r):u[2]=r),i&&(u[4]?(u[1]="@supports (".concat(u[4],") {").concat(u[1],"}"),u[4]=i):u[4]="".concat(i)),t.push(u))}},t}},8991:function(e){"use strict";e.exports=function(e,t){return t||(t={}),e?(e=String(e.__esModule?e.default:e),/^['"].*['"]$/.test(e)&&(e=e.slice(1,-1)),t.hash&&(e+=t.hash),/["'() \t\n]|(%20)/.test(e)||t.needQuotes?'"'.concat(e.replace(/"/g,'\\"').replace(/\n/g,"\\n"),'"'):e):e}},9601:function(e){"use strict";e.exports=function(e){return e[1]}},5433:function(){Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/}},8325:function(e,t,r){var n=function(e){var t=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,r=0,n={},i={manual:e.Prism&&e.Prism.manual,disableWorkerMessageHandler:e.Prism&&e.Prism.disableWorkerMessageHandler,util:{encode:function e(t){return t instanceof o?new o(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++r}),e.__id},clone:function e(t,r){var n,o;switch(r=r||{},i.util.type(t)){case"Object":if(o=i.util.objId(t),r[o])return r[o];for(var a in n={},r[o]=n,t)t.hasOwnProperty(a)&&(n[a]=e(t[a],r));return n;case"Array":return o=i.util.objId(t),r[o]?r[o]:(n=[],r[o]=n,t.forEach((function(t,i){n[i]=e(t,r)})),n);default:return t}},getLanguage:function(e){for(;e;){var r=t.exec(e.className);if(r)return r[1].toLowerCase();e=e.parentElement}return"none"},setLanguage:function(e,r){e.className=e.className.replace(RegExp(t,"gi"),""),e.classList.add("language-"+r)},currentScript:function(){if("undefined"==typeof document)return null;if("currentScript"in document)return document.currentScript;try{throw new Error}catch(n){var e=(/at [^(\r\n]*\((.*):[^:]+:[^:]+\)$/i.exec(n.stack)||[])[1];if(e){var t=document.getElementsByTagName("script");for(var r in t)if(t[r].src==e)return t[r]}return null}},isActive:function(e,t,r){for(var n="no-"+t;e;){var i=e.classList;if(i.contains(t))return!0;if(i.contains(n))return!1;e=e.parentElement}return!!r}},languages:{plain:n,plaintext:n,text:n,txt:n,extend:function(e,t){var r=i.util.clone(i.languages[e]);for(var n in t)r[n]=t[n];return r},insertBefore:function(e,t,r,n){var o=(n=n||i.languages)[e],a={};for(var s in o)if(o.hasOwnProperty(s)){if(s==t)for(var l in r)r.hasOwnProperty(l)&&(a[l]=r[l]);r.hasOwnProperty(s)||(a[s]=o[s])}var c=n[e];return n[e]=a,i.languages.DFS(i.languages,(function(t,r){r===c&&t!=e&&(this[t]=a)})),a},DFS:function e(t,r,n,o){o=o||{};var a=i.util.objId;for(var s in t)if(t.hasOwnProperty(s)){r.call(t,s,t[s],n||s);var l=t[s],c=i.util.type(l);"Object"!==c||o[a(l)]?"Array"!==c||o[a(l)]||(o[a(l)]=!0,e(l,r,s,o)):(o[a(l)]=!0,e(l,r,null,o))}}},plugins:{},highlightAll:function(e,t){i.highlightAllUnder(document,e,t)},highlightAllUnder:function(e,t,r){var n={callback:r,container:e,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};i.hooks.run("before-highlightall",n),n.elements=Array.prototype.slice.apply(n.container.querySelectorAll(n.selector)),i.hooks.run("before-all-elements-highlight",n);for(var o,a=0;o=n.elements[a++];)i.highlightElement(o,!0===t,n.callback)},highlightElement:function(t,r,n){var o=i.util.getLanguage(t),a=i.languages[o];i.util.setLanguage(t,o);var s=t.parentElement;s&&"pre"===s.nodeName.toLowerCase()&&i.util.setLanguage(s,o);var l={element:t,language:o,grammar:a,code:t.textContent};function c(e){l.highlightedCode=e,i.hooks.run("before-insert",l),l.element.innerHTML=l.highlightedCode,i.hooks.run("after-highlight",l),i.hooks.run("complete",l),n&&n.call(l.element)}if(i.hooks.run("before-sanity-check",l),(s=l.element.parentElement)&&"pre"===s.nodeName.toLowerCase()&&!s.hasAttribute("tabindex")&&s.setAttribute("tabindex","0"),!l.code)return i.hooks.run("complete",l),void(n&&n.call(l.element));if(i.hooks.run("before-highlight",l),l.grammar)if(r&&e.Worker){var u=new Worker(i.filename);u.onmessage=function(e){c(e.data)},u.postMessage(JSON.stringify({language:l.language,code:l.code,immediateClose:!0}))}else c(i.highlight(l.code,l.grammar,l.language));else c(i.util.encode(l.code))},highlight:function(e,t,r){var n={code:e,grammar:t,language:r};if(i.hooks.run("before-tokenize",n),!n.grammar)throw new Error('The language "'+n.language+'" has no grammar.');return n.tokens=i.tokenize(n.code,n.grammar),i.hooks.run("after-tokenize",n),o.stringify(i.util.encode(n.tokens),n.language)},tokenize:function(e,t){var r=t.rest;if(r){for(var n in r)t[n]=r[n];delete t.rest}var i=new l;return c(i,i.head,e),s(e,i,t,i.head,0),function(e){for(var t=[],r=e.head.next;r!==e.tail;)t.push(r.value),r=r.next;return t}(i)},hooks:{all:{},add:function(e,t){var r=i.hooks.all;r[e]=r[e]||[],r[e].push(t)},run:function(e,t){var r=i.hooks.all[e];if(r&&r.length)for(var n,o=0;n=r[o++];)n(t)}},Token:o};function o(e,t,r,n){this.type=e,this.content=t,this.alias=r,this.length=0|(n||"").length}function a(e,t,r,n){e.lastIndex=t;var i=e.exec(r);if(i&&n&&i[1]){var o=i[1].length;i.index+=o,i[0]=i[0].slice(o)}return i}function s(e,t,r,n,l,d){for(var p in r)if(r.hasOwnProperty(p)&&r[p]){var h=r[p];h=Array.isArray(h)?h:[h];for(var m=0;m<h.length;++m){if(d&&d.cause==p+","+m)return;var g=h[m],f=g.inside,b=!!g.lookbehind,v=!!g.greedy,y=g.alias;if(v&&!g.pattern.global){var w=g.pattern.toString().match(/[imsuy]*$/)[0];g.pattern=RegExp(g.pattern.source,w+"g")}for(var x=g.pattern||g,k=n.next,$=l;k!==t.tail&&!(d&&$>=d.reach);$+=k.value.length,k=k.next){var S=k.value;if(t.length>e.length)return;if(!(S instanceof o)){var _,A=1;if(v){if(!(_=a(x,$,e,b))||_.index>=e.length)break;var M=_.index,C=_.index+_[0].length,E=$;for(E+=k.value.length;M>=E;)E+=(k=k.next).value.length;if($=E-=k.value.length,k.value instanceof o)continue;for(var P=k;P!==t.tail&&(E<C||"string"==typeof P.value);P=P.next)A++,E+=P.value.length;A--,S=e.slice($,E),_.index-=$}else if(!(_=a(x,0,S,b)))continue;M=_.index;var T=_[0],j=S.slice(0,M),F=S.slice(M+T.length),z=$+S.length;d&&z>d.reach&&(d.reach=z);var O=k.prev;if(j&&(O=c(t,O,j),$+=j.length),u(t,O,A),k=c(t,O,new o(p,f?i.tokenize(T,f):T,y,T)),F&&c(t,k,F),A>1){var N={cause:p+","+m,reach:z};s(e,t,r,k.prev,$,N),d&&N.reach>d.reach&&(d.reach=N.reach)}}}}}}function l(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function c(e,t,r){var n=t.next,i={value:r,prev:t,next:n};return t.next=i,n.prev=i,e.length++,i}function u(e,t,r){for(var n=t.next,i=0;i<r&&n!==e.tail;i++)n=n.next;t.next=n,n.prev=t,e.length-=i}if(e.Prism=i,o.stringify=function e(t,r){if("string"==typeof t)return t;if(Array.isArray(t)){var n="";return t.forEach((function(t){n+=e(t,r)})),n}var o={type:t.type,content:e(t.content,r),tag:"span",classes:["token",t.type],attributes:{},language:r},a=t.alias;a&&(Array.isArray(a)?Array.prototype.push.apply(o.classes,a):o.classes.push(a)),i.hooks.run("wrap",o);var s="";for(var l in o.attributes)s+=" "+l+'="'+(o.attributes[l]||"").replace(/"/g,""")+'"';return"<"+o.tag+' class="'+o.classes.join(" ")+'"'+s+">"+o.content+"</"+o.tag+">"},!e.document)return e.addEventListener?(i.disableWorkerMessageHandler||e.addEventListener("message",(function(t){var r=JSON.parse(t.data),n=r.language,o=r.code,a=r.immediateClose;e.postMessage(i.highlight(o,i.languages[n],n)),a&&e.close()}),!1),i):i;var d=i.util.currentScript();function p(){i.manual||i.highlightAll()}if(d&&(i.filename=d.src,d.hasAttribute("data-manual")&&(i.manual=!0)),!i.manual){var h=document.readyState;"loading"===h||"interactive"===h&&d&&d.defer?document.addEventListener("DOMContentLoaded",p):window.requestAnimationFrame?window.requestAnimationFrame(p):window.setTimeout(p,16)}return i}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{});e.exports&&(e.exports=n),void 0!==r.g&&(r.g.Prism=n)},9016:function(){!function(e){function t(e,t){return e.replace(/<<(\d+)>>/g,(function(e,r){return"(?:"+t[+r]+")"}))}function r(e,r,n){return RegExp(t(e,r),n||"")}function n(e,t){for(var r=0;r<t;r++)e=e.replace(/<<self>>/g,(function(){return"(?:"+e+")"}));return e.replace(/<<self>>/g,"[^\\s\\S]")}var i="bool byte char decimal double dynamic float int long object sbyte short string uint ulong ushort var void",o="class enum interface record struct",a="add alias and ascending async await by descending from(?=\\s*(?:\\w|$)) get global group into init(?=\\s*;) join let nameof not notnull on or orderby partial remove select set unmanaged value when where with(?=\\s*{)",s="abstract as base break case catch checked const continue default delegate do else event explicit extern finally fixed for foreach goto if implicit in internal is lock namespace new null operator out override params private protected public readonly ref return sealed sizeof stackalloc static switch this throw try typeof unchecked unsafe using virtual volatile while yield";function l(e){return"\\b(?:"+e.trim().replace(/ /g,"|")+")\\b"}var c=l(o),u=RegExp(l(i+" "+o+" "+a+" "+s)),d=l(o+" "+a+" "+s),p=l(i+" "+o+" "+s),h=n(/<(?:[^<>;=+\-*/%&|^]|<<self>>)*>/.source,2),m=n(/\((?:[^()]|<<self>>)*\)/.source,2),g=/@?\b[A-Za-z_]\w*\b/.source,f=t(/<<0>>(?:\s*<<1>>)?/.source,[g,h]),b=t(/(?!<<0>>)<<1>>(?:\s*\.\s*<<1>>)*/.source,[d,f]),v=/\[\s*(?:,\s*)*\]/.source,y=t(/<<0>>(?:\s*(?:\?\s*)?<<1>>)*(?:\s*\?)?/.source,[b,v]),w=t(/[^,()<>[\];=+\-*/%&|^]|<<0>>|<<1>>|<<2>>/.source,[h,m,v]),x=t(/\(<<0>>+(?:,<<0>>+)+\)/.source,[w]),k=t(/(?:<<0>>|<<1>>)(?:\s*(?:\?\s*)?<<2>>)*(?:\s*\?)?/.source,[x,b,v]),$={keyword:u,punctuation:/[<>()?,.:[\]]/},S=/'(?:[^\r\n'\\]|\\.|\\[Uux][\da-fA-F]{1,8})'/.source,_=/"(?:\\.|[^\\"\r\n])*"/.source,A=/@"(?:""|\\[\s\S]|[^\\"])*"(?!")/.source;e.languages.csharp=e.languages.extend("clike",{string:[{pattern:r(/(^|[^$\\])<<0>>/.source,[A]),lookbehind:!0,greedy:!0},{pattern:r(/(^|[^@$\\])<<0>>/.source,[_]),lookbehind:!0,greedy:!0}],"class-name":[{pattern:r(/(\busing\s+static\s+)<<0>>(?=\s*;)/.source,[b]),lookbehind:!0,inside:$},{pattern:r(/(\busing\s+<<0>>\s*=\s*)<<1>>(?=\s*;)/.source,[g,k]),lookbehind:!0,inside:$},{pattern:r(/(\busing\s+)<<0>>(?=\s*=)/.source,[g]),lookbehind:!0},{pattern:r(/(\b<<0>>\s+)<<1>>/.source,[c,f]),lookbehind:!0,inside:$},{pattern:r(/(\bcatch\s*\(\s*)<<0>>/.source,[b]),lookbehind:!0,inside:$},{pattern:r(/(\bwhere\s+)<<0>>/.source,[g]),lookbehind:!0},{pattern:r(/(\b(?:is(?:\s+not)?|as)\s+)<<0>>/.source,[y]),lookbehind:!0,inside:$},{pattern:r(/\b<<0>>(?=\s+(?!<<1>>|with\s*\{)<<2>>(?:\s*[=,;:{)\]]|\s+(?:in|when)\b))/.source,[k,p,g]),inside:$}],keyword:u,number:/(?:\b0(?:x[\da-f_]*[\da-f]|b[01_]*[01])|(?:\B\.\d+(?:_+\d+)*|\b\d+(?:_+\d+)*(?:\.\d+(?:_+\d+)*)?)(?:e[-+]?\d+(?:_+\d+)*)?)(?:[dflmu]|lu|ul)?\b/i,operator:/>>=?|<<=?|[-=]>|([-+&|])\1|~|\?\?=?|[-+*/%&|^!=<>]=?/,punctuation:/\?\.?|::|[{}[\];(),.:]/}),e.languages.insertBefore("csharp","number",{range:{pattern:/\.\./,alias:"operator"}}),e.languages.insertBefore("csharp","punctuation",{"named-parameter":{pattern:r(/([(,]\s*)<<0>>(?=\s*:)/.source,[g]),lookbehind:!0,alias:"punctuation"}}),e.languages.insertBefore("csharp","class-name",{namespace:{pattern:r(/(\b(?:namespace|using)\s+)<<0>>(?:\s*\.\s*<<0>>)*(?=\s*[;{])/.source,[g]),lookbehind:!0,inside:{punctuation:/\./}},"type-expression":{pattern:r(/(\b(?:default|sizeof|typeof)\s*\(\s*(?!\s))(?:[^()\s]|\s(?!\s)|<<0>>)*(?=\s*\))/.source,[m]),lookbehind:!0,alias:"class-name",inside:$},"return-type":{pattern:r(/<<0>>(?=\s+(?:<<1>>\s*(?:=>|[({]|\.\s*this\s*\[)|this\s*\[))/.source,[k,b]),inside:$,alias:"class-name"},"constructor-invocation":{pattern:r(/(\bnew\s+)<<0>>(?=\s*[[({])/.source,[k]),lookbehind:!0,inside:$,alias:"class-name"},"generic-method":{pattern:r(/<<0>>\s*<<1>>(?=\s*\()/.source,[g,h]),inside:{function:r(/^<<0>>/.source,[g]),generic:{pattern:RegExp(h),alias:"class-name",inside:$}}},"type-list":{pattern:r(/\b((?:<<0>>\s+<<1>>|record\s+<<1>>\s*<<5>>|where\s+<<2>>)\s*:\s*)(?:<<3>>|<<4>>|<<1>>\s*<<5>>|<<6>>)(?:\s*,\s*(?:<<3>>|<<4>>|<<6>>))*(?=\s*(?:where|[{;]|=>|$))/.source,[c,f,g,k,u.source,m,/\bnew\s*\(\s*\)/.source]),lookbehind:!0,inside:{"record-arguments":{pattern:r(/(^(?!new\s*\()<<0>>\s*)<<1>>/.source,[f,m]),lookbehind:!0,greedy:!0,inside:e.languages.csharp},keyword:u,"class-name":{pattern:RegExp(k),greedy:!0,inside:$},punctuation:/[,()]/}},preprocessor:{pattern:/(^[\t ]*)#.*/m,lookbehind:!0,alias:"property",inside:{directive:{pattern:/(#)\b(?:define|elif|else|endif|endregion|error|if|line|nullable|pragma|region|undef|warning)\b/,lookbehind:!0,alias:"keyword"}}}});var M=_+"|"+S,C=t(/\/(?![*/])|\/\/[^\r\n]*[\r\n]|\/\*(?:[^*]|\*(?!\/))*\*\/|<<0>>/.source,[M]),E=n(t(/[^"'/()]|<<0>>|\(<<self>>*\)/.source,[C]),2),P=/\b(?:assembly|event|field|method|module|param|property|return|type)\b/.source,T=t(/<<0>>(?:\s*\(<<1>>*\))?/.source,[b,E]);e.languages.insertBefore("csharp","class-name",{attribute:{pattern:r(/((?:^|[^\s\w>)?])\s*\[\s*)(?:<<0>>\s*:\s*)?<<1>>(?:\s*,\s*<<1>>)*(?=\s*\])/.source,[P,T]),lookbehind:!0,greedy:!0,inside:{target:{pattern:r(/^<<0>>(?=\s*:)/.source,[P]),alias:"keyword"},"attribute-arguments":{pattern:r(/\(<<0>>*\)/.source,[E]),inside:e.languages.csharp},"class-name":{pattern:RegExp(b),inside:{punctuation:/\./}},punctuation:/[:,]/}}});var j=/:[^}\r\n]+/.source,F=n(t(/[^"'/()]|<<0>>|\(<<self>>*\)/.source,[C]),2),z=t(/\{(?!\{)(?:(?![}:])<<0>>)*<<1>>?\}/.source,[F,j]),O=n(t(/[^"'/()]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|<<0>>|\(<<self>>*\)/.source,[M]),2),N=t(/\{(?!\{)(?:(?![}:])<<0>>)*<<1>>?\}/.source,[O,j]);function R(t,n){return{interpolation:{pattern:r(/((?:^|[^{])(?:\{\{)*)<<0>>/.source,[t]),lookbehind:!0,inside:{"format-string":{pattern:r(/(^\{(?:(?![}:])<<0>>)*)<<1>>(?=\}$)/.source,[n,j]),lookbehind:!0,inside:{punctuation:/^:/}},punctuation:/^\{|\}$/,expression:{pattern:/[\s\S]+/,alias:"language-csharp",inside:e.languages.csharp}}},string:/[\s\S]+/}}e.languages.insertBefore("csharp","string",{"interpolation-string":[{pattern:r(/(^|[^\\])(?:\$@|@\$)"(?:""|\\[\s\S]|\{\{|<<0>>|[^\\{"])*"/.source,[z]),lookbehind:!0,greedy:!0,inside:R(z,F)},{pattern:r(/(^|[^@\\])\$"(?:\\.|\{\{|<<0>>|[^\\"{])*"/.source,[N]),lookbehind:!0,greedy:!0,inside:R(N,O)}],char:{pattern:RegExp(S),greedy:!0}}),e.languages.dotnet=e.languages.cs=e.languages.csharp}(Prism)},9472:function(){!function(e){var t=/(?:\r?\n|\r)[ \t]*\|.+\|(?:(?!\|).)*/.source;e.languages.gherkin={pystring:{pattern:/("""|''')[\s\S]+?\1/,alias:"string"},comment:{pattern:/(^[ \t]*)#.*/m,lookbehind:!0},tag:{pattern:/(^[ \t]*)@\S*/m,lookbehind:!0},feature:{pattern:/((?:^|\r?\n|\r)[ \t]*)(?:Ability|Ahoy matey!|Arwedd|Aspekt|Besigheid Behoefte|Business Need|Caracteristica|Característica|Egenskab|Egenskap|Eiginleiki|Feature|Fīča|Fitur|Fonctionnalité|Fonksyonalite|Funcionalidade|Funcionalitat|Functionalitate|Funcţionalitate|Funcționalitate|Functionaliteit|Fungsi|Funkcia|Funkcija|Funkcionalitāte|Funkcionalnost|Funkcja|Funksie|Funktionalität|Funktionalitéit|Funzionalità|Hwaet|Hwæt|Jellemző|Karakteristik|Lastnost|Mak|Mogucnost|laH|Mogućnost|Moznosti|Možnosti|OH HAI|Omadus|Ominaisuus|Osobina|Özellik|Potrzeba biznesowa|perbogh|poQbogh malja'|Požadavek|Požiadavka|Pretty much|Qap|Qu'meH 'ut|Savybė|Tính năng|Trajto|Vermoë|Vlastnosť|Właściwość|Značilnost|Δυνατότητα|Λειτουργία|Могућност|Мөмкинлек|Особина|Свойство|Үзенчәлеклелек|Функционал|Функционалност|Функция|Функціонал|תכונה|خاصية|خصوصیت|صلاحیت|کاروبار کی ضرورت|وِیژگی|रूप लेख|ਖਾਸੀਅਤ|ਨਕਸ਼ ਨੁਹਾਰ|ਮੁਹਾਂਦਰਾ|గుణము|ಹೆಚ್ಚಳ|ความต้องการทางธุรกิจ|ความสามารถ|โครงหลัก|기능|フィーチャ|功能|機能):(?:[^:\r\n]+(?:\r?\n|\r|$))*/,lookbehind:!0,inside:{important:{pattern:/(:)[^\r\n]+/,lookbehind:!0},keyword:/[^:\r\n]+:/}},scenario:{pattern:/(^[ \t]*)(?:Abstract Scenario|Abstrakt Scenario|Achtergrond|Aer|Ær|Agtergrond|All y'all|Antecedentes|Antecedents|Atburðarás|Atburðarásir|Awww, look mate|B4|Background|Baggrund|Bakgrund|Bakgrunn|Bakgrunnur|Beispiele|Beispiller|Bối cảnh|Cefndir|Cenario|Cenário|Cenario de Fundo|Cenário de Fundo|Cenarios|Cenários|Contesto|Context|Contexte|Contexto|Conto|Contoh|Contone|Dæmi|Dasar|Dead men tell no tales|Delineacao do Cenario|Delineação do Cenário|Dis is what went down|Dữ liệu|Dyagram Senaryo|Dyagram senaryo|Egzanp|Ejemplos|Eksempler|Ekzemploj|Enghreifftiau|Esbozo do escenario|Escenari|Escenario|Esempi|Esquema de l'escenari|Esquema del escenario|Esquema do Cenario|Esquema do Cenário|EXAMPLZ|Examples|Exempel|Exemple|Exemples|Exemplos|First off|Fono|Forgatókönyv|Forgatókönyv vázlat|Fundo|Geçmiş|Grundlage|Hannergrond|ghantoH|Háttér|Heave to|Istorik|Juhtumid|Keadaan|Khung kịch bản|Khung tình huống|Kịch bản|Koncept|Konsep skenario|Kontèks|Kontekst|Kontekstas|Konteksts|Kontext|Konturo de la scenaro|Latar Belakang|lut chovnatlh|lut|lutmey|Lýsing Atburðarásar|Lýsing Dæma|MISHUN SRSLY|MISHUN|Menggariskan Senario|mo'|Náčrt Scenára|Náčrt Scénáře|Náčrt Scenáru|Oris scenarija|Örnekler|Osnova|Osnova Scenára|Osnova scénáře|Osnutek|Ozadje|Paraugs|Pavyzdžiai|Példák|Piemēri|Plan du scénario|Plan du Scénario|Plan Senaryo|Plan senaryo|Plang vum Szenario|Pozadí|Pozadie|Pozadina|Príklady|Příklady|Primer|Primeri|Primjeri|Przykłady|Raamstsenaarium|Reckon it's like|Rerefons|Scenár|Scénář|Scenarie|Scenarij|Scenarijai|Scenarijaus šablonas|Scenariji|Scenārijs|Scenārijs pēc parauga|Scenarijus|Scenario|Scénario|Scenario Amlinellol|Scenario Outline|Scenario Template|Scenariomal|Scenariomall|Scenarios|Scenariu|Scenariusz|Scenaro|Schema dello scenario|Se ðe|Se the|Se þe|Senario|Senaryo Deskripsyon|Senaryo deskripsyon|Senaryo|Senaryo taslağı|Shiver me timbers|Situācija|Situai|Situasie Uiteensetting|Situasie|Skenario konsep|Skenario|Skica|Structura scenariu|Structură scenariu|Struktura scenarija|Stsenaarium|Swa hwaer swa|Swa|Swa hwær swa|Szablon scenariusza|Szenario|Szenariogrundriss|Tapaukset|Tapaus|Tapausaihio|Taust|Tausta|Template Keadaan|Template Senario|Template Situai|The thing of it is|Tình huống|Variantai|Voorbeelde|Voorbeelden|Wharrimean is|Yo-ho-ho|You'll wanna|Założenia|Παραδείγματα|Περιγραφή Σεναρίου|Σενάρια|Σενάριο|Υπόβαθρο|Кереш|Контекст|Концепт|Мисаллар|Мисоллар|Основа|Передумова|Позадина|Предистория|Предыстория|Приклади|Пример|Примери|Примеры|Рамка на сценарий|Скица|Структура сценарија|Структура сценария|Структура сценарію|Сценарий|Сценарий структураси|Сценарийның төзелеше|Сценарији|Сценарио|Сценарій|Тарих|Үрнәкләр|דוגמאות|רקע|תבנית תרחיש|תרחיש|الخلفية|الگوی سناریو|امثلة|پس منظر|زمینه|سناریو|سيناريو|سيناريو مخطط|مثالیں|منظر نامے کا خاکہ|منظرنامہ|نمونه ها|उदाहरण|परिदृश्य|परिदृश्य रूपरेखा|पृष्ठभूमि|ਉਦਾਹਰਨਾਂ|ਪਟਕਥਾ|ਪਟਕਥਾ ਢਾਂਚਾ|ਪਟਕਥਾ ਰੂਪ ਰੇਖਾ|ਪਿਛੋਕੜ|ఉదాహరణలు|కథనం|నేపథ్యం|సన్నివేశం|ಉದಾಹರಣೆಗಳು|ಕಥಾಸಾರಾಂಶ|ವಿವರಣೆ|ಹಿನ್ನೆಲೆ|โครงสร้างของเหตุการณ์|ชุดของตัวอย่าง|ชุดของเหตุการณ์|แนวคิด|สรุปเหตุการณ์|เหตุการณ์|배경|시나리오|시나리오 개요|예|サンプル|シナリオ|シナリオアウトライン|シナリオテンプレ|シナリオテンプレート|テンプレ|例|例子|剧本|剧本大纲|劇本|劇本大綱|场景|场景大纲|場景|場景大綱|背景):[^:\r\n]*/m,lookbehind:!0,inside:{important:{pattern:/(:)[^\r\n]*/,lookbehind:!0},keyword:/[^:\r\n]+:/}},"table-body":{pattern:RegExp("("+t+")(?:"+t+")+"),lookbehind:!0,inside:{outline:{pattern:/<[^>]+>/,alias:"variable"},td:{pattern:/\s*[^\s|][^|]*/,alias:"string"},punctuation:/\|/}},"table-head":{pattern:RegExp(t),inside:{th:{pattern:/\s*[^\s|][^|]*/,alias:"variable"},punctuation:/\|/}},atrule:{pattern:/(^[ \t]+)(?:'a|'ach|'ej|7|a|A také|A taktiež|A tiež|A zároveň|Aber|Ac|Adott|Akkor|Ak|Aleshores|Ale|Ali|Allora|Alors|Als|Ama|Amennyiben|Amikor|Ampak|an|AN|Ananging|And y'all|And|Angenommen|Anrhegedig a|An|Apabila|Atès|Atesa|Atunci|Avast!|Aye|A|awer|Bagi|Banjur|Bet|Biết|Blimey!|Buh|But at the end of the day I reckon|But y'all|But|BUT|Cal|Când|Cand|Cando|Ce|Cuando|Če|Ða ðe|Ða|Dadas|Dada|Dados|Dado|DaH ghu' bejlu'|dann|Dann|Dano|Dan|Dar|Dat fiind|Data|Date fiind|Date|Dati fiind|Dati|Daţi fiind|Dați fiind|DEN|Dato|De|Den youse gotta|Dengan|Diberi|Diyelim ki|Donada|Donat|Donitaĵo|Do|Dun|Duota|Ðurh|Eeldades|Ef|Eğer ki|Entao|Então|Entón|E|En|Entonces|Epi|És|Etant donnée|Etant donné|Et|Étant données|Étant donnée|Étant donné|Etant données|Etant donnés|Étant donnés|Fakat|Gangway!|Gdy|Gegeben seien|Gegeben sei|Gegeven|Gegewe|ghu' noblu'|Gitt|Given y'all|Given|Givet|Givun|Ha|Cho|I CAN HAZ|In|Ir|It's just unbelievable|I|Ja|Jeśli|Jeżeli|Kad|Kada|Kadar|Kai|Kaj|Když|Keď|Kemudian|Ketika|Khi|Kiedy|Ko|Kuid|Kui|Kun|Lan|latlh|Le sa a|Let go and haul|Le|Lè sa a|Lè|Logo|Lorsqu'<|Lorsque|mä|Maar|Mais|Mając|Ma|Majd|Maka|Manawa|Mas|Men|Menawa|Mutta|Nalika|Nalikaning|Nanging|Når|När|Nato|Nhưng|Niin|Njuk|O zaman|Och|Og|Oletetaan|Ond|Onda|Oraz|Pak|Pero|Però|Podano|Pokiaľ|Pokud|Potem|Potom|Privzeto|Pryd|Quan|Quand|Quando|qaSDI'|Så|Sed|Se|Siis|Sipoze ke|Sipoze Ke|Sipoze|Si|Şi|Și|Soit|Stel|Tada|Tad|Takrat|Tak|Tapi|Ter|Tetapi|Tha the|Tha|Then y'all|Then|Thì|Thurh|Toda|Too right|Un|Und|ugeholl|Và|vaj|Vendar|Ve|wann|Wanneer|WEN|Wenn|When y'all|When|Wtedy|Wun|Y'know|Yeah nah|Yna|Youse know like when|Youse know when youse got|Y|Za predpokladu|Za předpokladu|Zadan|Zadani|Zadano|Zadate|Zadato|Zakładając|Zaradi|Zatati|Þa þe|Þa|Þá|Þegar|Þurh|Αλλά|Δεδομένου|Και|Όταν|Τότε|А також|Агар|Але|Али|Аммо|А|Әгәр|Әйтик|Әмма|Бирок|Ва|Вә|Дадено|Дано|Допустим|Если|Задате|Задати|Задато|И|І|К тому же|Када|Кад|Когато|Когда|Коли|Ләкин|Лекин|Нәтиҗәдә|Нехай|Но|Онда|Припустимо, що|Припустимо|Пусть|Также|Та|Тогда|Тоді|То|Унда|Һәм|Якщо|אבל|אזי|אז|בהינתן|וגם|כאשר|آنگاه|اذاً|اگر|اما|اور|با فرض|بالفرض|بفرض|پھر|تب|ثم|جب|عندما|فرض کیا|لكن|لیکن|متى|هنگامی|و|अगर|और|कदा|किन्तु|चूंकि|जब|तथा|तदा|तब|परन्तु|पर|यदि|ਅਤੇ|ਜਦੋਂ|ਜਿਵੇਂ ਕਿ|ਜੇਕਰ|ਤਦ|ਪਰ|అప్పుడు|ఈ పరిస్థితిలో|కాని|చెప్పబడినది|మరియు|ಆದರೆ|ನಂತರ|ನೀಡಿದ|ಮತ್ತು|ಸ್ಥಿತಿಯನ್ನು|กำหนดให้|ดังนั้น|แต่|เมื่อ|และ|그러면<|그리고<|단<|만약<|만일<|먼저<|조건<|하지만<|かつ<|しかし<|ただし<|ならば<|もし<|並且<|但し<|但是<|假如<|假定<|假設<|假设<|前提<|同时<|同時<|并且<|当<|當<|而且<|那么<|那麼<)(?=[ \t])/m,lookbehind:!0},string:{pattern:/"(?:\\.|[^"\\\r\n])*"|'(?:\\.|[^'\\\r\n])*'/,inside:{outline:{pattern:/<[^>]+>/,alias:"variable"}}},outline:{pattern:/<[^>]+>/,alias:"variable"}}}(Prism)},2503:function(){!function(e){var t=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record(?!\s*[(){}[\]<>=%~.:,;?+\-*/&|^])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,r=/(?:[a-z]\w*\s*\.\s*)*(?:[A-Z]\w*\s*\.\s*)*/.source,n={pattern:RegExp(/(^|[^\w.])/.source+r+/[A-Z](?:[\d_A-Z]*[a-z]\w*)?\b/.source),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}};e.languages.java=e.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"/,lookbehind:!0,greedy:!0},"class-name":[n,{pattern:RegExp(/(^|[^\w.])/.source+r+/[A-Z]\w*(?=\s+\w+\s*[;,=()]|\s*(?:\[[\s,]*\]\s*)?::\s*new\b)/.source),lookbehind:!0,inside:n.inside},{pattern:RegExp(/(\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\s+)/.source+r+/[A-Z]\w*\b/.source),lookbehind:!0,inside:n.inside}],keyword:t,function:[e.languages.clike.function,{pattern:/(::\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0},constant:/\b[A-Z][A-Z_\d]+\b/}),e.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"},char:{pattern:/'(?:\\.|[^'\\\r\n]){1,6}'/,greedy:!0}}),e.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"class-name":n,keyword:t,punctuation:/[<>(),.:]/,operator:/[?&|]/}},import:[{pattern:RegExp(/(\bimport\s+)/.source+r+/(?:[A-Z]\w*|\*)(?=\s*;)/.source),lookbehind:!0,inside:{namespace:n.inside.namespace,punctuation:/\./,operator:/\*/,"class-name":/\w+/}},{pattern:RegExp(/(\bimport\s+static\s+)/.source+r+/(?:\w+|\*)(?=\s*;)/.source),lookbehind:!0,alias:"static",inside:{namespace:n.inside.namespace,static:/\b\w+$/,punctuation:/\./,operator:/\*/,"class-name":/\w+/}}],namespace:{pattern:RegExp(/(\b(?:exports|import(?:\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\s+)(?!<keyword>)[a-z]\w*(?:\.[a-z]\w*)*\.?/.source.replace(/<keyword>/g,(function(){return t.source}))),lookbehind:!0,inside:{punctuation:/\./}}})}(Prism)},9980:function(){Prism.languages.javascript=Prism.languages.extend("clike",{"class-name":[Prism.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),Prism.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:Prism.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:Prism.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),Prism.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:Prism.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),Prism.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),Prism.languages.markup&&(Prism.languages.markup.tag.addInlined("script","javascript"),Prism.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),Prism.languages.js=Prism.languages.javascript},6854:function(){!function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(r,n,i,o){if(r.language===n){var a=r.tokenStack=[];r.code=r.code.replace(i,(function(e){if("function"==typeof o&&!o(e))return e;for(var i,s=a.length;-1!==r.code.indexOf(i=t(n,s));)++s;return a[s]=e,i})),r.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(r,n){if(r.language===n&&r.tokenStack){r.grammar=e.languages[n];var i=0,o=Object.keys(r.tokenStack);!function a(s){for(var l=0;l<s.length&&!(i>=o.length);l++){var c=s[l];if("string"==typeof c||c.content&&"string"==typeof c.content){var u=o[i],d=r.tokenStack[u],p="string"==typeof c?c:c.content,h=t(n,u),m=p.indexOf(h);if(m>-1){++i;var g=p.substring(0,m),f=new e.Token(n,e.tokenize(d,r.grammar),"language-"+n,d),b=p.substring(m+h.length),v=[];g&&v.push.apply(v,a([g])),v.push(f),b&&v.push.apply(v,a([b])),"string"==typeof c?s.splice.apply(s,[l,1].concat(v)):c.content=v}}else c.content&&a(c.content)}return s}(r.tokens)}}}})}(Prism)},4335:function(){Prism.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},Prism.languages.markup.tag.inside["attr-value"].inside.entity=Prism.languages.markup.entity,Prism.languages.markup.doctype.inside["internal-subset"].inside=Prism.languages.markup,Prism.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(Prism.languages.markup.tag,"addInlined",{value:function(e,t){var r={};r["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:Prism.languages[t]},r.cdata=/^<!\[CDATA\[|\]\]>$/i;var n={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:r}};n["language-"+t]={pattern:/[\s\S]+/,inside:Prism.languages[t]};var i={};i[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:n},Prism.languages.insertBefore("markup","cdata",i)}}),Object.defineProperty(Prism.languages.markup.tag,"addAttribute",{value:function(e,t){Prism.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:Prism.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),Prism.languages.html=Prism.languages.markup,Prism.languages.mathml=Prism.languages.markup,Prism.languages.svg=Prism.languages.markup,Prism.languages.xml=Prism.languages.extend("markup",{}),Prism.languages.ssml=Prism.languages.xml,Prism.languages.atom=Prism.languages.xml,Prism.languages.rss=Prism.languages.xml},9945:function(){!function(e){var t=/\/\*[\s\S]*?\*\/|\/\/.*|#(?!\[).*/,r=[{pattern:/\b(?:false|true)\b/i,alias:"boolean"},{pattern:/(::\s*)\b[a-z_]\w*\b(?!\s*\()/i,greedy:!0,lookbehind:!0},{pattern:/(\b(?:case|const)\s+)\b[a-z_]\w*(?=\s*[;=])/i,greedy:!0,lookbehind:!0},/\b(?:null)\b/i,/\b[A-Z_][A-Z0-9_]*\b(?!\s*\()/],n=/\b0b[01]+(?:_[01]+)*\b|\b0o[0-7]+(?:_[0-7]+)*\b|\b0x[\da-f]+(?:_[\da-f]+)*\b|(?:\b\d+(?:_\d+)*\.?(?:\d+(?:_\d+)*)?|\B\.\d+)(?:e[+-]?\d+)?/i,i=/<?=>|\?\?=?|\.{3}|\??->|[!=]=?=?|::|\*\*=?|--|\+\+|&&|\|\||<<|>>|[?~]|[/^|%*&<>.+-]=?/,o=/[{}\[\](),:;]/;e.languages.php={delimiter:{pattern:/\?>$|^<\?(?:php(?=\s)|=)?/i,alias:"important"},comment:t,variable:/\$+(?:\w+\b|(?=\{))/,package:{pattern:/(namespace\s+|use\s+(?:function\s+)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,lookbehind:!0,inside:{punctuation:/\\/}},"class-name-definition":{pattern:/(\b(?:class|enum|interface|trait)\s+)\b[a-z_]\w*(?!\\)\b/i,lookbehind:!0,alias:"class-name"},"function-definition":{pattern:/(\bfunction\s+)[a-z_]\w*(?=\s*\()/i,lookbehind:!0,alias:"function"},keyword:[{pattern:/(\(\s*)\b(?:array|bool|boolean|float|int|integer|object|string)\b(?=\s*\))/i,alias:"type-casting",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*)\b(?:array(?!\s*\()|bool|callable|(?:false|null)(?=\s*\|)|float|int|iterable|mixed|object|self|static|string)\b(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?)\b(?:array(?!\s*\()|bool|callable|(?:false|null)(?=\s*\|)|float|int|iterable|mixed|never|object|self|static|string|void)\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/\b(?:array(?!\s*\()|bool|float|int|iterable|mixed|object|string|void)\b/i,alias:"type-declaration",greedy:!0},{pattern:/(\|\s*)(?:false|null)\b|\b(?:false|null)(?=\s*\|)/i,alias:"type-declaration",greedy:!0,lookbehind:!0},{pattern:/\b(?:parent|self|static)(?=\s*::)/i,alias:"static-context",greedy:!0},{pattern:/(\byield\s+)from\b/i,lookbehind:!0},/\bclass\b/i,{pattern:/((?:^|[^\s>:]|(?:^|[^-])>|(?:^|[^:]):)\s*)\b(?:abstract|and|array|as|break|callable|case|catch|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|enum|eval|exit|extends|final|finally|fn|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|insteadof|interface|isset|list|match|namespace|never|new|or|parent|print|private|protected|public|readonly|require|require_once|return|self|static|switch|throw|trait|try|unset|use|var|while|xor|yield|__halt_compiler)\b/i,lookbehind:!0}],"argument-name":{pattern:/([(,]\s*)\b[a-z_]\w*(?=\s*:(?!:))/i,lookbehind:!0},"class-name":[{pattern:/(\b(?:extends|implements|instanceof|new(?!\s+self|\s+static))\s+|\bcatch\s*\()\b[a-z_]\w*(?!\\)\b/i,greedy:!0,lookbehind:!0},{pattern:/(\|\s*)\b[a-z_]\w*(?!\\)\b/i,greedy:!0,lookbehind:!0},{pattern:/\b[a-z_]\w*(?!\\)\b(?=\s*\|)/i,greedy:!0},{pattern:/(\|\s*)(?:\\?\b[a-z_]\w*)+\b/i,alias:"class-name-fully-qualified",greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/(?:\\?\b[a-z_]\w*)+\b(?=\s*\|)/i,alias:"class-name-fully-qualified",greedy:!0,inside:{punctuation:/\\/}},{pattern:/(\b(?:extends|implements|instanceof|new(?!\s+self\b|\s+static\b))\s+|\bcatch\s*\()(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,alias:"class-name-fully-qualified",greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/\b[a-z_]\w*(?=\s*\$)/i,alias:"type-declaration",greedy:!0},{pattern:/(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i,alias:["class-name-fully-qualified","type-declaration"],greedy:!0,inside:{punctuation:/\\/}},{pattern:/\b[a-z_]\w*(?=\s*::)/i,alias:"static-context",greedy:!0},{pattern:/(?:\\?\b[a-z_]\w*)+(?=\s*::)/i,alias:["class-name-fully-qualified","static-context"],greedy:!0,inside:{punctuation:/\\/}},{pattern:/([(,?]\s*)[a-z_]\w*(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*)(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i,alias:["class-name-fully-qualified","type-hint"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/(\)\s*:\s*(?:\?\s*)?)\b[a-z_]\w*(?!\\)\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,alias:["class-name-fully-qualified","return-type"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}}],constant:r,function:{pattern:/(^|[^\\\w])\\?[a-z_](?:[\w\\]*\w)?(?=\s*\()/i,lookbehind:!0,inside:{punctuation:/\\/}},property:{pattern:/(->\s*)\w+/,lookbehind:!0},number:n,operator:i,punctuation:o};var a={pattern:/\{\$(?:\{(?:\{[^{}]+\}|[^{}]+)\}|[^{}])+\}|(^|[^\\{])\$+(?:\w+(?:\[[^\r\n\[\]]+\]|->\w+)?)/,lookbehind:!0,inside:e.languages.php},s=[{pattern:/<<<'([^']+)'[\r\n](?:.*[\r\n])*?\1;/,alias:"nowdoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<<'[^']+'|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<'?|[';]$/}}}},{pattern:/<<<(?:"([^"]+)"[\r\n](?:.*[\r\n])*?\1;|([a-z_]\w*)[\r\n](?:.*[\r\n])*?\2;)/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<<(?:"[^"]+"|[a-z_]\w*)|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<"?|[";]$/}},interpolation:a}},{pattern:/`(?:\\[\s\S]|[^\\`])*`/,alias:"backtick-quoted-string",greedy:!0},{pattern:/'(?:\\[\s\S]|[^\\'])*'/,alias:"single-quoted-string",greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,alias:"double-quoted-string",greedy:!0,inside:{interpolation:a}}];e.languages.insertBefore("php","variable",{string:s,attribute:{pattern:/#\[(?:[^"'\/#]|\/(?![*/])|\/\/.*$|#(?!\[).*$|\/\*(?:[^*]|\*(?!\/))*\*\/|"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*')+\](?=\s*[a-z$#])/im,greedy:!0,inside:{"attribute-content":{pattern:/^(#\[)[\s\S]+(?=\]$)/,lookbehind:!0,inside:{comment:t,string:s,"attribute-class-name":[{pattern:/([^:]|^)\b[a-z_]\w*(?!\\)\b/i,alias:"class-name",greedy:!0,lookbehind:!0},{pattern:/([^:]|^)(?:\\?\b[a-z_]\w*)+/i,alias:["class-name","class-name-fully-qualified"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}}],constant:r,number:n,operator:i,punctuation:o}},delimiter:{pattern:/^#\[|\]$/,alias:"punctuation"}}}}),e.hooks.add("before-tokenize",(function(t){/<\?/.test(t.code)&&e.languages["markup-templating"].buildPlaceholders(t,"php",/<\?(?:[^"'/#]|\/(?![*/])|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|(?:\/\/|#(?!\[))(?:[^?\n\r]|\?(?!>))*(?=$|\?>|[\r\n])|#\[|\/\*(?:[^*]|\*(?!\/))*(?:\*\/|$))*?(?:\?>|$)/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"php")}))}(Prism)},2886:function(){Prism.languages.scala=Prism.languages.extend("java",{"triple-quoted-string":{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string"},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:/<-|=>|\b(?:abstract|case|catch|class|def|derives|do|else|enum|extends|extension|final|finally|for|forSome|given|if|implicit|import|infix|inline|lazy|match|new|null|object|opaque|open|override|package|private|protected|return|sealed|self|super|this|throw|trait|transparent|try|type|using|val|var|while|with|yield)\b/,number:/\b0x(?:[\da-f]*\.)?[\da-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e\d+)?[dfl]?/i,builtin:/\b(?:Any|AnyRef|AnyVal|Boolean|Byte|Char|Double|Float|Int|Long|Nothing|Short|String|Unit)\b/,symbol:/'[^\d\s\\]\w*/}),Prism.languages.insertBefore("scala","triple-quoted-string",{"string-interpolation":{pattern:/\b[a-z]\w*(?:"""(?:[^$]|\$(?:[^{]|\{(?:[^{}]|\{[^{}]*\})*\}))*?"""|"(?:[^$"\r\n]|\$(?:[^{]|\{(?:[^{}]|\{[^{}]*\})*\}))*")/i,greedy:!0,inside:{id:{pattern:/^\w+/,greedy:!0,alias:"function"},escape:{pattern:/\\\$"|\$[$"]/,greedy:!0,alias:"symbol"},interpolation:{pattern:/\$(?:\w+|\{(?:[^{}]|\{[^{}]*\})*\})/,greedy:!0,inside:{punctuation:/^\$\{?|\}$/,expression:{pattern:/[\s\S]+/,inside:Prism.languages.scala}}},string:/[\s\S]+/}}}),delete Prism.languages.scala["class-name"],delete Prism.languages.scala.function,delete Prism.languages.scala.constant},6836:function(){!function(e){e.languages.typescript=e.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(Prism)},6488:function(){"undefined"!=typeof Prism&&"undefined"!=typeof document&&document.createRange&&(Prism.plugins.KeepMarkup=!0,Prism.hooks.add("before-highlight",(function(e){if(e.element.children.length&&Prism.util.isActive(e.element,"keep-markup",!0)){var t=Prism.util.isActive(e.element,"drop-tokens",!1),r=0,n=[];o(e.element),n.length&&(e.keepMarkup=n)}function i(e){if(function(e){return!t||"span"!==e.nodeName.toLowerCase()||!e.classList.contains("token")}(e)){var i={element:e,posOpen:r};n.push(i),o(e),i.posClose=r}else o(e)}function o(e){for(var t=0,n=e.childNodes.length;t<n;t++){var o=e.childNodes[t];1===o.nodeType?i(o):3===o.nodeType&&(r+=o.data.length)}}})),Prism.hooks.add("after-highlight",(function(e){if(e.keepMarkup&&e.keepMarkup.length){var t=function(e,r){for(var n=0,i=e.childNodes.length;n<i;n++){var o=e.childNodes[n];if(1===o.nodeType){if(!t(o,r))return!1}else 3===o.nodeType&&(!r.nodeStart&&r.pos+o.data.length>r.node.posOpen&&(r.nodeStart=o,r.nodeStartPos=r.node.posOpen-r.pos),r.nodeStart&&r.pos+o.data.length>=r.node.posClose&&(r.nodeEnd=o,r.nodeEndPos=r.node.posClose-r.pos),r.pos+=o.data.length);if(r.nodeStart&&r.nodeEnd){var a=document.createRange();return a.setStart(r.nodeStart,r.nodeStartPos),a.setEnd(r.nodeEnd,r.nodeEndPos),r.node.element.innerHTML="",r.node.element.appendChild(a.extractContents()),a.insertNode(r.node.element),a.detach(),!1}}return!0};e.keepMarkup.forEach((function(r){t(e.element,{node:r,pos:0})})),e.highlightedCode=e.element.innerHTML}})))},8759:function(){!function(){if("undefined"!=typeof Prism&&"undefined"!=typeof document){var e="line-numbers",t=/\n(?!$)/g,r=Prism.plugins.lineNumbers={getLine:function(t,r){if("PRE"===t.tagName&&t.classList.contains(e)){var n=t.querySelector(".line-numbers-rows");if(n){var i=parseInt(t.getAttribute("data-start"),10)||1,o=i+(n.children.length-1);r<i&&(r=i),r>o&&(r=o);var a=r-i;return n.children[a]}}},resize:function(e){i([e])},assumeViewportIndependence:!0},n=void 0;window.addEventListener("resize",(function(){r.assumeViewportIndependence&&n===window.innerWidth||(n=window.innerWidth,i(Array.prototype.slice.call(document.querySelectorAll("pre.line-numbers"))))})),Prism.hooks.add("complete",(function(r){if(r.code){var n=r.element,o=n.parentNode;if(o&&/pre/i.test(o.nodeName)&&!n.querySelector(".line-numbers-rows")&&Prism.util.isActive(n,e)){n.classList.remove(e),o.classList.add(e);var a,s=r.code.match(t),l=s?s.length+1:1,c=new Array(l+1).join("<span></span>");(a=document.createElement("span")).setAttribute("aria-hidden","true"),a.className="line-numbers-rows",a.innerHTML=c,o.hasAttribute("data-start")&&(o.style.counterReset="linenumber "+(parseInt(o.getAttribute("data-start"),10)-1)),r.element.appendChild(a),i([o]),Prism.hooks.run("line-numbers",r)}}})),Prism.hooks.add("line-numbers",(function(e){e.plugins=e.plugins||{},e.plugins.lineNumbers=!0}))}function i(e){if(0!=(e=e.filter((function(e){var t,r=(t=e,t?window.getComputedStyle?getComputedStyle(t):t.currentStyle||null:null)["white-space"];return"pre-wrap"===r||"pre-line"===r}))).length){var r=e.map((function(e){var r=e.querySelector("code"),n=e.querySelector(".line-numbers-rows");if(r&&n){var i=e.querySelector(".line-numbers-sizer"),o=r.textContent.split(t);i||((i=document.createElement("span")).className="line-numbers-sizer",r.appendChild(i)),i.innerHTML="0",i.style.display="block";var a=i.getBoundingClientRect().height;return i.innerHTML="",{element:e,lines:o,lineHeights:[],oneLinerHeight:a,sizer:i}}})).filter(Boolean);r.forEach((function(e){var t=e.sizer,r=e.lines,n=e.lineHeights,i=e.oneLinerHeight;n[r.length-1]=void 0,r.forEach((function(e,r){if(e&&e.length>1){var o=t.appendChild(document.createElement("span"));o.style.display="block",o.textContent=e}else n[r]=i}))})),r.forEach((function(e){for(var t=e.sizer,r=e.lineHeights,n=0,i=0;i<r.length;i++)void 0===r[i]&&(r[i]=t.children[n++].getBoundingClientRect().height)})),r.forEach((function(e){var t=e.sizer,r=e.element.querySelector(".line-numbers-rows");t.style.display="none",t.innerHTML="",e.lineHeights.forEach((function(e,t){r.children[t].style.height=e+"px"}))}))}}}()},7951:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.aggregateResultsByModule=void 0;const n=r(5740);function i(e,t){if(t){const r=o.bind(void 0,e);return t.map(r)}}function o(e,t){return`${e}_${t}`}t.aggregateResultsByModule=function(e){const t=Object.values(e).map((e=>e.projectRoot)).filter(n.isNotNullish),r={files:{},schemaVersion:"1.7",thresholds:e[0]?.thresholds??{high:80,low:60},projectRoot:t.length?(0,n.determineCommonBasePath)(t):void 0,config:{}};return Object.entries(e).reduce(((e,[t,a])=>{if(Object.entries((0,n.normalizeFileNames)(a.files)).forEach((([e,n])=>{r.files[`${t}/${e}`]={...n,mutants:[...n.mutants.map((({id:e,coveredBy:r,killedBy:n,...a})=>({...a,id:o(t,e),killedBy:i(t,n),coveredBy:i(t,r)})))]}})),a.testFiles){const e=r.testFiles??(r.testFiles=Object.create(null));Object.entries((0,n.normalizeFileNames)(a.testFiles)).forEach((([r,n])=>{e[`${t}/${r}`]={...n,tests:n.tests.map((({id:e,...r})=>({...r,id:o(t,e)})))}}))}return e}),r)}},2103:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.calculateMutationTestMetrics=t.calculateMetrics=void 0;const n=r(5740),i=r(9130),o=r(5740),a=r(8533),s=r(8689),l="All files";function c(e,t,r){const n=Object.keys(t);return 1===n.length&&""===n[0]?d(e,t[n[0]],r):u(e,t,r)}function u(e,t,r){const i=r(Object.values(t)),a=function(e,t){const r=(0,o.groupBy)(Object.entries(e),(e=>e[0].split("/")[0]));return Object.keys(r).map((e=>{if(r[e].length>1||r[e][0][0]!==e){const n={};return r[e].forEach((t=>n[t[0].substr(e.length+1)]=t[1])),u(e,n,t)}{const[n,i]=r[e][0];return d(n,i,t)}})).sort(n.compareNames)}(t,r);return{name:e,childResults:a,metrics:i}}function d(e,t,r){return{file:t,name:e,childResults:[],metrics:r([t])}}function p(e){const t=e.flatMap((e=>e.tests)),r=e=>t.filter((t=>t.status===e)).length;return{total:t.length,killing:r(s.TestStatus.Killing),covering:r(s.TestStatus.Covering),notCovering:r(s.TestStatus.NotCovering)}}function h(e){const t=e.flatMap((e=>e.mutants)),r=e=>t.filter((t=>t.status===e)).length,n=r(i.MutantStatus.Killed),o=r(i.MutantStatus.Timeout),a=r(i.MutantStatus.Survived),s=r(i.MutantStatus.NoCoverage),l=r(i.MutantStatus.RuntimeError),c=r(i.MutantStatus.CompileError),u=r(i.MutantStatus.Ignored),d=o+n,p=a+s,h=d+a,m=p+d,g=l+c;return{killed:n,timeout:o,survived:a,noCoverage:s,runtimeErrors:l,compileErrors:c,ignored:u,totalDetected:d,totalUndetected:p,totalCovered:h,totalValid:m,totalInvalid:g,mutationScore:m>0?d/m*100:NaN,totalMutants:m+g+u,mutationScoreBasedOnCoveredCode:m>0?d/h*100||0:NaN}}t.calculateMetrics=function(e){const t=(0,n.normalize)(e,"",((e,t)=>new a.FileUnderTestModel(e,t)));return u(l,t,h)},t.calculateMutationTestMetrics=function(e){const{files:t,testFiles:r,projectRoot:i=""}=e,o=(0,n.normalize)(t,i,((e,t)=>new a.FileUnderTestModel(e,t)));if(r&&Object.keys(r).length){const e=(0,n.normalize)(r,i,((e,t)=>new a.TestFileModel(e,t)));return function(e,t){const r=new Map(t.map((e=>[e.id,e])));for(const t of e){const e=t.coveredBy?.map((e=>r.get(e)))??[];for(const r of e)r&&(t.addCoveredBy(r),r.addCovered(t));const n=t.killedBy?.map((e=>r.get(e)))??[];for(const e of n)e&&(t.addKilledBy(e),e.addKilled(t))}}(Object.values(o).flatMap((e=>e.mutants)),Object.values(e).flatMap((e=>e.tests))),{systemUnderTestMetrics:c(l,o,h),testMetrics:c("All tests",e,p)}}return{systemUnderTestMetrics:c(l,o,h),testMetrics:void 0}}},400:function(e,t){"use strict";function r(e,t,r){const o=Object.keys(e),a=i(o),s=Object.create(null);return o.forEach((i=>{const o=n(i.startsWith(t)?i.substr(t.length):i);s[n(i.substr(a.length))]=r(e[i],o)})),s}function n(e){return e.split(/\/|\\/).filter(Boolean).join("/")}function i(e){const t=e.map((e=>e.split(/\/|\\/).slice(0,-1)));return e.length?t.reduce((function(e,t){for(let r=0;r<e.length;r++)if(e[r]!==t[r])return e.splice(0,r);return e})).join("/"):""}Object.defineProperty(t,"__esModule",{value:!0}),t.compareNames=t.determineCommonBasePath=t.normalize=t.normalizeFileNames=void 0,t.normalizeFileNames=function(e,t=""){return r(e,t,(e=>e))},t.normalize=r,t.determineCommonBasePath=i,t.compareNames=function(e,t){const r=e=>e.file?`1${e.name}`:`0${e.name}`;return r(e).localeCompare(r(t))}},7648:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.groupBy=void 0,t.groupBy=function(e,t){return e.reduce(((e,r)=>{const n=t(r);return Object.prototype.hasOwnProperty.call(e,n)||(e[n]=[]),e[n].push(r),e}),{})}},5740:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),i(r(7648),t),i(r(400),t),i(r(9676),t),i(r(3029),t)},3029:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isNotNullish=void 0,t.isNotNullish=function(e){return null!=e}},9676:function(e,t){"use strict";function r(e){return 10===e||13===e||8232===e||8233===e}Object.defineProperty(t,"__esModule",{value:!0}),t.computeLineStarts=void 0,t.computeLineStarts=function(e){const t=[];let n=0,i=0;function o(e){t.push(i),i=e}for(o(0);n<e.length;){const t=e.charCodeAt(n);switch(n++,t){case 13:10===e.charCodeAt(n)&&n++,o(n);break;case 10:o(n);break;default:t>127&&r(t)&&o(n)}}return t.push(i),t}},4193:function(e,t,r){"use strict";t.ih=t.xR=void 0;var n=r(2103);Object.defineProperty(t,"xR",{enumerable:!0,get:function(){return n.calculateMutationTestMetrics}});r(7951),r(5740);var i=r(8533);Object.defineProperty(t,"ih",{enumerable:!0,get:function(){return i.TestStatus}})},1211:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FileUnderTestModel=void 0;const n=r(1223),i=r(7966);class o extends i.SourceFile{constructor(e,t){super(),this.name=t,this.language=e.language,this.source=e.source,this.mutants=e.mutants.map((e=>{const t=new n.MutantModel(e);return t.sourceFile=this,t}))}getMutationLines(e){const t=this.getLineMap(),r=t[e.location.start.line],n=t[e.location.end.line],i=t[e.location.end.line+1];return`${this.source.substr(r,e.location.start.column-1)}${e.replacement??e.description??e.mutatorName}${this.source.substring(n+e.location.end.column-1,i)}`}}t.FileUnderTestModel=o},8533:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TestStatus=t.TestModel=t.TestFileModel=t.MutantModel=t.FileUnderTestModel=void 0;var n=r(1211);Object.defineProperty(t,"FileUnderTestModel",{enumerable:!0,get:function(){return n.FileUnderTestModel}});var i=r(1223);Object.defineProperty(t,"MutantModel",{enumerable:!0,get:function(){return i.MutantModel}});var o=r(7100);Object.defineProperty(t,"TestFileModel",{enumerable:!0,get:function(){return o.TestFileModel}});var a=r(8689);Object.defineProperty(t,"TestModel",{enumerable:!0,get:function(){return a.TestModel}}),Object.defineProperty(t,"TestStatus",{enumerable:!0,get:function(){return a.TestStatus}})},1223:function(e,t){"use strict";function r(e){if(void 0===e)throw new Error("mutant.sourceFile was not defined")}Object.defineProperty(t,"__esModule",{value:!0}),t.MutantModel=void 0,t.MutantModel=class{constructor(e){this.coveredBy=e.coveredBy,this.description=e.description,this.duration=e.duration,this.id=e.id,this.killedBy=e.killedBy,this.location=e.location,this.mutatorName=e.mutatorName,this.replacement=e.replacement,this.static=e.static,this.status=e.status,this.statusReason=e.statusReason,this.testsCompleted=e.testsCompleted}addCoveredBy(e){this.coveredByTests||(this.coveredByTests=[]),this.coveredByTests.push(e)}addKilledBy(e){this.killedByTests||(this.killedByTests=[]),this.killedByTests.push(e)}getMutatedLines(){return r(this.sourceFile),this.sourceFile.getMutationLines(this)}getOriginalLines(){return r(this.sourceFile),this.sourceFile.getLines(this.location)}get fileName(){return r(this.sourceFile),this.sourceFile.name}}},7966:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SourceFile=t.assertSourceDefined=void 0;const n=r(5740);function i(e){if(void 0===e)throw new Error("sourceFile.source is undefined")}t.assertSourceDefined=i,t.SourceFile=class{getLineMap(){return i(this.source),this.lineMap||(this.lineMap=(0,n.computeLineStarts)(this.source))}getLines(e){i(this.source);const t=this.getLineMap();return this.source.substring(t[e.start.line],t[(e.end??e.start).line+1])}}},7100:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TestFileModel=void 0;const n=r(7966),i=r(8689);class o extends n.SourceFile{constructor(e,t){super(),this.name=t,this.source=e.source,this.tests=e.tests.map((e=>{const t=new i.TestModel(e);return t.sourceFile=this,t}))}}t.TestFileModel=o},8689:function(e,t){"use strict";function r(e){if(void 0===e)throw new Error("test.sourceFile was not defined")}var n;Object.defineProperty(t,"__esModule",{value:!0}),t.TestModel=t.TestStatus=void 0,function(e){e.Killing="Killing",e.Covering="Covering",e.NotCovering="NotCovering"}(n=t.TestStatus||(t.TestStatus={})),t.TestModel=class{addCovered(e){this.coveredMutants||(this.coveredMutants=[]),this.coveredMutants.push(e)}addKilled(e){this.killedMutants||(this.killedMutants=[]),this.killedMutants.push(e)}constructor(e){Object.entries(e).forEach((([e,t])=>{this[e]=t}))}getLines(){return r(this.sourceFile),function(e){if(void 0===e)throw new Error("test.location was not defined")}(this.location),this.sourceFile.getLines(this.location)}get fileName(){return r(this.sourceFile),this.sourceFile.name}get status(){return this.killedMutants?.length?n.Killing:this.coveredMutants?.length?n.Covering:n.NotCovering}}},9130:function(e,t){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.MutantStatus=void 0,(r=t.MutantStatus||(t.MutantStatus={})).Killed="Killed",r.Survived="Survived",r.NoCoverage="NoCoverage",r.CompileError="CompileError",r.RuntimeError="RuntimeError",r.Timeout="Timeout",r.Ignored="Ignored"},9138:function(e){"use strict";e.exports="data:image/svg+xml;charset=UTF8,<svg xmlns=%27http://www.w3.org/2000/svg%27 height=%273%27 width=%276%27><g fill=%27%23ef4444%27><path d=%27m5.5 0-3 3H1.1l3-3z%27/><path d=%27m4 0 2 2V.6L5.4 0zM0 2l1 1h1.4L0 .6z%27/></g></svg>"},3783:function(e){"use strict";e.exports="data:image/svg+xml;charset=UTF8,<svg xmlns=%27http://www.w3.org/2000/svg%27 height=%273%27 width=%276%27><g fill=%27%23fb923c%27><path d=%27m5.5 0-3 3H1.1l3-3z%27/><path d=%27m4 0 2 2V.6L5.4 0zM0 2l1 1h1.4L0 .6z%27/></g></svg>"},6184:function(e){"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg viewBox=%270 0 16 16%27 fill=%27%23fff%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Ccircle cx=%278%27 cy=%278%27 r=%273%27/%3E%3C/svg%3E"},2254:function(e){"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg viewBox=%270 0 16 16%27 fill=%27%23fff%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M12.207 4.793a1 1 0 0 1 0 1.414l-5 5a1 1 0 0 1-1.414 0l-2-2a1 1 0 0 1 1.414-1.414L6.5 9.086l4.293-4.293a1 1 0 0 1 1.414 0z%27/%3E%3C/svg%3E"},421:function(e){"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 fill=%27none%27 viewBox=%270 0 16 16%27%3E%3Cpath stroke=%27%23fff%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%272%27 d=%27M4 8h8%27/%3E%3C/svg%3E"},4507:function(e){"use strict";e.exports="data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 fill=%27none%27 viewBox=%270 0 20 20%27%3E%3Cpath stroke=%27rgb%28var%28--mut-gray-500, 113 113 122%29 / %26lt;alpha-value%26gt;%29%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%271.5%27 d=%27m6 8 4 4 4-4%27/%3E%3C/svg%3E"}},t={};function r(n){var i=t[n];if(void 0!==i)return i.exports;var o=t[n]={id:n,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.exports}r.m=e,r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,{a:t}),t},r.d=function(e,t){for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.b=document.baseURI||self.location.href,function(){"use strict";const e=window,t=e.ShadowRoot&&(void 0===e.ShadyCSS||e.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,n=Symbol(),i=new WeakMap;class o{constructor(e,t,r){if(this._$cssResult$=!0,r!==n)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e,this.t=t}get styleSheet(){let e=this.o;const r=this.t;if(t&&void 0===e){const t=void 0!==r&&1===r.length;t&&(e=i.get(r)),void 0===e&&((this.o=e=new CSSStyleSheet).replaceSync(this.cssText),t&&i.set(r,e))}return e}toString(){return this.cssText}}const a=e=>new o("string"==typeof e?e:e+"",void 0,n),s=t?e=>e:e=>e instanceof CSSStyleSheet?(e=>{let t="";for(const r of e.cssRules)t+=r.cssText;return a(t)})(e):e;var l;const c=window,u=c.trustedTypes,d=u?u.emptyScript:"",p=c.reactiveElementPolyfillSupport,h={toAttribute(e,t){switch(t){case Boolean:e=e?d:null;break;case Object:case Array:e=null==e?e:JSON.stringify(e)}return e},fromAttribute(e,t){let r=e;switch(t){case Boolean:r=null!==e;break;case Number:r=null===e?null:Number(e);break;case Object:case Array:try{r=JSON.parse(e)}catch(e){r=null}}return r}},m=(e,t)=>t!==e&&(t==t||e==e),g={attribute:!0,type:String,converter:h,reflect:!1,hasChanged:m};class f extends HTMLElement{constructor(){super(),this._$Ei=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$El=null,this.u()}static addInitializer(e){var t;this.finalize(),(null!==(t=this.h)&&void 0!==t?t:this.h=[]).push(e)}static get observedAttributes(){this.finalize();const e=[];return this.elementProperties.forEach(((t,r)=>{const n=this._$Ep(r,t);void 0!==n&&(this._$Ev.set(n,r),e.push(n))})),e}static createProperty(e,t=g){if(t.state&&(t.attribute=!1),this.finalize(),this.elementProperties.set(e,t),!t.noAccessor&&!this.prototype.hasOwnProperty(e)){const r="symbol"==typeof e?Symbol():"__"+e,n=this.getPropertyDescriptor(e,r,t);void 0!==n&&Object.defineProperty(this.prototype,e,n)}}static getPropertyDescriptor(e,t,r){return{get(){return this[t]},set(n){const i=this[e];this[t]=n,this.requestUpdate(e,i,r)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)||g}static finalize(){if(this.hasOwnProperty("finalized"))return!1;this.finalized=!0;const e=Object.getPrototypeOf(this);if(e.finalize(),void 0!==e.h&&(this.h=[...e.h]),this.elementProperties=new Map(e.elementProperties),this._$Ev=new Map,this.hasOwnProperty("properties")){const e=this.properties,t=[...Object.getOwnPropertyNames(e),...Object.getOwnPropertySymbols(e)];for(const r of t)this.createProperty(r,e[r])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(e){const t=[];if(Array.isArray(e)){const r=new Set(e.flat(1/0).reverse());for(const e of r)t.unshift(s(e))}else void 0!==e&&t.push(s(e));return t}static _$Ep(e,t){const r=t.attribute;return!1===r?void 0:"string"==typeof r?r:"string"==typeof e?e.toLowerCase():void 0}u(){var e;this._$E_=new Promise((e=>this.enableUpdating=e)),this._$AL=new Map,this._$Eg(),this.requestUpdate(),null===(e=this.constructor.h)||void 0===e||e.forEach((e=>e(this)))}addController(e){var t,r;(null!==(t=this._$ES)&&void 0!==t?t:this._$ES=[]).push(e),void 0!==this.renderRoot&&this.isConnected&&(null===(r=e.hostConnected)||void 0===r||r.call(e))}removeController(e){var t;null===(t=this._$ES)||void 0===t||t.splice(this._$ES.indexOf(e)>>>0,1)}_$Eg(){this.constructor.elementProperties.forEach(((e,t)=>{this.hasOwnProperty(t)&&(this._$Ei.set(t,this[t]),delete this[t])}))}createRenderRoot(){var r;const n=null!==(r=this.shadowRoot)&&void 0!==r?r:this.attachShadow(this.constructor.shadowRootOptions);return((r,n)=>{t?r.adoptedStyleSheets=n.map((e=>e instanceof CSSStyleSheet?e:e.styleSheet)):n.forEach((t=>{const n=document.createElement("style"),i=e.litNonce;void 0!==i&&n.setAttribute("nonce",i),n.textContent=t.cssText,r.appendChild(n)}))})(n,this.constructor.elementStyles),n}connectedCallback(){var e;void 0===this.renderRoot&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),null===(e=this._$ES)||void 0===e||e.forEach((e=>{var t;return null===(t=e.hostConnected)||void 0===t?void 0:t.call(e)}))}enableUpdating(e){}disconnectedCallback(){var e;null===(e=this._$ES)||void 0===e||e.forEach((e=>{var t;return null===(t=e.hostDisconnected)||void 0===t?void 0:t.call(e)}))}attributeChangedCallback(e,t,r){this._$AK(e,r)}_$EO(e,t,r=g){var n;const i=this.constructor._$Ep(e,r);if(void 0!==i&&!0===r.reflect){const o=(void 0!==(null===(n=r.converter)||void 0===n?void 0:n.toAttribute)?r.converter:h).toAttribute(t,r.type);this._$El=e,null==o?this.removeAttribute(i):this.setAttribute(i,o),this._$El=null}}_$AK(e,t){var r;const n=this.constructor,i=n._$Ev.get(e);if(void 0!==i&&this._$El!==i){const e=n.getPropertyOptions(i),o="function"==typeof e.converter?{fromAttribute:e.converter}:void 0!==(null===(r=e.converter)||void 0===r?void 0:r.fromAttribute)?e.converter:h;this._$El=i,this[i]=o.fromAttribute(t,e.type),this._$El=null}}requestUpdate(e,t,r){let n=!0;void 0!==e&&(((r=r||this.constructor.getPropertyOptions(e)).hasChanged||m)(this[e],t)?(this._$AL.has(e)||this._$AL.set(e,t),!0===r.reflect&&this._$El!==e&&(void 0===this._$EC&&(this._$EC=new Map),this._$EC.set(e,r))):n=!1),!this.isUpdatePending&&n&&(this._$E_=this._$Ej())}async _$Ej(){this.isUpdatePending=!0;try{await this._$E_}catch(e){Promise.reject(e)}const e=this.scheduleUpdate();return null!=e&&await e,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var e;if(!this.isUpdatePending)return;this.hasUpdated,this._$Ei&&(this._$Ei.forEach(((e,t)=>this[t]=e)),this._$Ei=void 0);let t=!1;const r=this._$AL;try{t=this.shouldUpdate(r),t?(this.willUpdate(r),null===(e=this._$ES)||void 0===e||e.forEach((e=>{var t;return null===(t=e.hostUpdate)||void 0===t?void 0:t.call(e)})),this.update(r)):this._$Ek()}catch(e){throw t=!1,this._$Ek(),e}t&&this._$AE(r)}willUpdate(e){}_$AE(e){var t;null===(t=this._$ES)||void 0===t||t.forEach((e=>{var t;return null===(t=e.hostUpdated)||void 0===t?void 0:t.call(e)})),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(e)),this.updated(e)}_$Ek(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$E_}shouldUpdate(e){return!0}update(e){void 0!==this._$EC&&(this._$EC.forEach(((e,t)=>this._$EO(t,this[t],e))),this._$EC=void 0),this._$Ek()}updated(e){}firstUpdated(e){}}var b;f.finalized=!0,f.elementProperties=new Map,f.elementStyles=[],f.shadowRootOptions={mode:"open"},null==p||p({ReactiveElement:f}),(null!==(l=c.reactiveElementVersions)&&void 0!==l?l:c.reactiveElementVersions=[]).push("1.6.0");const v=window,y=v.trustedTypes,w=y?y.createPolicy("lit-html",{createHTML:e=>e}):void 0,x=`lit$${(Math.random()+"").slice(9)}$`,k="?"+x,$=`<${k}>`,S=document,_=(e="")=>S.createComment(e),A=e=>null===e||"object"!=typeof e&&"function"!=typeof e,M=Array.isArray,C=e=>M(e)||"function"==typeof(null==e?void 0:e[Symbol.iterator]),E=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,P=/-->/g,T=/>/g,j=RegExp(">|[ \t\n\f\r](?:([^\\s\"'>=/]+)([ \t\n\f\r]*=[ \t\n\f\r]*(?:[^ \t\n\f\r\"'`<>=]|(\"|')|))|$)","g"),F=/'/g,z=/"/g,O=/^(?:script|style|textarea|title)$/i,N=e=>(t,...r)=>({_$litType$:e,strings:t,values:r}),R=N(1),B=N(2),L=Symbol.for("lit-noChange"),D=Symbol.for("lit-nothing"),H=new WeakMap,U=S.createTreeWalker(S,129,null,!1),I=(e,t)=>{const r=e.length-1,n=[];let i,o=2===t?"<svg>":"",a=E;for(let t=0;t<r;t++){const r=e[t];let s,l,c=-1,u=0;for(;u<r.length&&(a.lastIndex=u,l=a.exec(r),null!==l);)u=a.lastIndex,a===E?"!--"===l[1]?a=P:void 0!==l[1]?a=T:void 0!==l[2]?(O.test(l[2])&&(i=RegExp("</"+l[2],"g")),a=j):void 0!==l[3]&&(a=j):a===j?">"===l[0]?(a=null!=i?i:E,c=-1):void 0===l[1]?c=-2:(c=a.lastIndex-l[2].length,s=l[1],a=void 0===l[3]?j:'"'===l[3]?z:F):a===z||a===F?a=j:a===P||a===T?a=E:(a=j,i=void 0);const d=a===j&&e[t+1].startsWith("/>")?" ":"";o+=a===E?r+$:c>=0?(n.push(s),r.slice(0,c)+"$lit$"+r.slice(c)+x+d):r+x+(-2===c?(n.push(void 0),t):d)}const s=o+(e[r]||"<?>")+(2===t?"</svg>":"");if(!Array.isArray(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return[void 0!==w?w.createHTML(s):s,n]};class Z{constructor({strings:e,_$litType$:t},r){let n;this.parts=[];let i=0,o=0;const a=e.length-1,s=this.parts,[l,c]=I(e,t);if(this.el=Z.createElement(l,r),U.currentNode=this.el.content,2===t){const e=this.el.content,t=e.firstChild;t.remove(),e.append(...t.childNodes)}for(;null!==(n=U.nextNode())&&s.length<a;){if(1===n.nodeType){if(n.hasAttributes()){const e=[];for(const t of n.getAttributeNames())if(t.endsWith("$lit$")||t.startsWith(x)){const r=c[o++];if(e.push(t),void 0!==r){const e=n.getAttribute(r.toLowerCase()+"$lit$").split(x),t=/([.?@])?(.*)/.exec(r);s.push({type:1,index:i,name:t[2],strings:e,ctor:"."===t[1]?Y:"?"===t[1]?Q:"@"===t[1]?J:W})}else s.push({type:6,index:i})}for(const t of e)n.removeAttribute(t)}if(O.test(n.tagName)){const e=n.textContent.split(x),t=e.length-1;if(t>0){n.textContent=y?y.emptyScript:"";for(let r=0;r<t;r++)n.append(e[r],_()),U.nextNode(),s.push({type:2,index:++i});n.append(e[t],_())}}}else if(8===n.nodeType)if(n.data===k)s.push({type:2,index:i});else{let e=-1;for(;-1!==(e=n.data.indexOf(x,e+1));)s.push({type:7,index:i}),e+=x.length-1}i++}}static createElement(e,t){const r=S.createElement("template");return r.innerHTML=e,r}}function K(e,t,r=e,n){var i,o,a,s;if(t===L)return t;let l=void 0!==n?null===(i=r._$Co)||void 0===i?void 0:i[n]:r._$Cl;const c=A(t)?void 0:t._$litDirective$;return(null==l?void 0:l.constructor)!==c&&(null===(o=null==l?void 0:l._$AO)||void 0===o||o.call(l,!1),void 0===c?l=void 0:(l=new c(e),l._$AT(e,r,n)),void 0!==n?(null!==(a=(s=r)._$Co)&&void 0!==a?a:s._$Co=[])[n]=l:r._$Cl=l),void 0!==l&&(t=K(e,l._$AS(e,t.values),l,n)),t}class q{constructor(e,t){this.u=[],this._$AN=void 0,this._$AD=e,this._$AM=t}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}v(e){var t;const{el:{content:r},parts:n}=this._$AD,i=(null!==(t=null==e?void 0:e.creationScope)&&void 0!==t?t:S).importNode(r,!0);U.currentNode=i;let o=U.nextNode(),a=0,s=0,l=n[0];for(;void 0!==l;){if(a===l.index){let t;2===l.type?t=new V(o,o.nextSibling,this,e):1===l.type?t=new l.ctor(o,l.name,l.strings,this,e):6===l.type&&(t=new X(o,this,e)),this.u.push(t),l=n[++s]}a!==(null==l?void 0:l.index)&&(o=U.nextNode(),a++)}return i}p(e){let t=0;for(const r of this.u)void 0!==r&&(void 0!==r.strings?(r._$AI(e,r,t),t+=r.strings.length-2):r._$AI(e[t])),t++}}class V{constructor(e,t,r,n){var i;this.type=2,this._$AH=D,this._$AN=void 0,this._$AA=e,this._$AB=t,this._$AM=r,this.options=n,this._$Cm=null===(i=null==n?void 0:n.isConnected)||void 0===i||i}get _$AU(){var e,t;return null!==(t=null===(e=this._$AM)||void 0===e?void 0:e._$AU)&&void 0!==t?t:this._$Cm}get parentNode(){let e=this._$AA.parentNode;const t=this._$AM;return void 0!==t&&11===e.nodeType&&(e=t.parentNode),e}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(e,t=this){e=K(this,e,t),A(e)?e===D||null==e||""===e?(this._$AH!==D&&this._$AR(),this._$AH=D):e!==this._$AH&&e!==L&&this.g(e):void 0!==e._$litType$?this.$(e):void 0!==e.nodeType?this.T(e):C(e)?this.k(e):this.g(e)}O(e,t=this._$AB){return this._$AA.parentNode.insertBefore(e,t)}T(e){this._$AH!==e&&(this._$AR(),this._$AH=this.O(e))}g(e){this._$AH!==D&&A(this._$AH)?this._$AA.nextSibling.data=e:this.T(S.createTextNode(e)),this._$AH=e}$(e){var t;const{values:r,_$litType$:n}=e,i="number"==typeof n?this._$AC(e):(void 0===n.el&&(n.el=Z.createElement(n.h,this.options)),n);if((null===(t=this._$AH)||void 0===t?void 0:t._$AD)===i)this._$AH.p(r);else{const e=new q(i,this),t=e.v(this.options);e.p(r),this.T(t),this._$AH=e}}_$AC(e){let t=H.get(e.strings);return void 0===t&&H.set(e.strings,t=new Z(e)),t}k(e){M(this._$AH)||(this._$AH=[],this._$AR());const t=this._$AH;let r,n=0;for(const i of e)n===t.length?t.push(r=new V(this.O(_()),this.O(_()),this,this.options)):r=t[n],r._$AI(i),n++;n<t.length&&(this._$AR(r&&r._$AB.nextSibling,n),t.length=n)}_$AR(e=this._$AA.nextSibling,t){var r;for(null===(r=this._$AP)||void 0===r||r.call(this,!1,!0,t);e&&e!==this._$AB;){const t=e.nextSibling;e.remove(),e=t}}setConnected(e){var t;void 0===this._$AM&&(this._$Cm=e,null===(t=this._$AP)||void 0===t||t.call(this,e))}}class W{constructor(e,t,r,n,i){this.type=1,this._$AH=D,this._$AN=void 0,this.element=e,this.name=t,this._$AM=n,this.options=i,r.length>2||""!==r[0]||""!==r[1]?(this._$AH=Array(r.length-1).fill(new String),this.strings=r):this._$AH=D}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(e,t=this,r,n){const i=this.strings;let o=!1;if(void 0===i)e=K(this,e,t,0),o=!A(e)||e!==this._$AH&&e!==L,o&&(this._$AH=e);else{const n=e;let a,s;for(e=i[0],a=0;a<i.length-1;a++)s=K(this,n[r+a],t,a),s===L&&(s=this._$AH[a]),o||(o=!A(s)||s!==this._$AH[a]),s===D?e=D:e!==D&&(e+=(null!=s?s:"")+i[a+1]),this._$AH[a]=s}o&&!n&&this.j(e)}j(e){e===D?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,null!=e?e:"")}}class Y extends W{constructor(){super(...arguments),this.type=3}j(e){this.element[this.name]=e===D?void 0:e}}const G=y?y.emptyScript:"";class Q extends W{constructor(){super(...arguments),this.type=4}j(e){e&&e!==D?this.element.setAttribute(this.name,G):this.element.removeAttribute(this.name)}}class J extends W{constructor(e,t,r,n,i){super(e,t,r,n,i),this.type=5}_$AI(e,t=this){var r;if((e=null!==(r=K(this,e,t,0))&&void 0!==r?r:D)===L)return;const n=this._$AH,i=e===D&&n!==D||e.capture!==n.capture||e.once!==n.once||e.passive!==n.passive,o=e!==D&&(n===D||i);i&&this.element.removeEventListener(this.name,this,n),o&&this.element.addEventListener(this.name,this,e),this._$AH=e}handleEvent(e){var t,r;"function"==typeof this._$AH?this._$AH.call(null!==(r=null===(t=this.options)||void 0===t?void 0:t.host)&&void 0!==r?r:this.element,e):this._$AH.handleEvent(e)}}class X{constructor(e,t,r){this.element=e,this.type=6,this._$AN=void 0,this._$AM=t,this.options=r}get _$AU(){return this._$AM._$AU}_$AI(e){K(this,e)}}const ee={P:"$lit$",A:x,M:k,C:1,L:I,R:q,D:C,V:K,I:V,H:W,N:Q,U:J,B:Y,F:X},te=v.litHtmlPolyfillSupport;var re,ne;null==te||te(Z,V),(null!==(b=v.litHtmlVersions)&&void 0!==b?b:v.litHtmlVersions=[]).push("2.6.0");class ie extends f{constructor(){super(...arguments),this.renderOptions={host:this},this._$Dt=void 0}createRenderRoot(){var e,t;const r=super.createRenderRoot();return null!==(e=(t=this.renderOptions).renderBefore)&&void 0!==e||(t.renderBefore=r.firstChild),r}update(e){const t=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(e),this._$Dt=((e,t,r)=>{var n,i;const o=null!==(n=null==r?void 0:r.renderBefore)&&void 0!==n?n:t;let a=o._$litPart$;if(void 0===a){const e=null!==(i=null==r?void 0:r.renderBefore)&&void 0!==i?i:null;o._$litPart$=a=new V(t.insertBefore(_(),e),e,void 0,null!=r?r:{})}return a._$AI(e),a})(t,this.renderRoot,this.renderOptions)}connectedCallback(){var e;super.connectedCallback(),null===(e=this._$Dt)||void 0===e||e.setConnected(!0)}disconnectedCallback(){var e;super.disconnectedCallback(),null===(e=this._$Dt)||void 0===e||e.setConnected(!1)}render(){return L}}ie.finalized=!0,ie._$litElement$=!0,null===(re=globalThis.litElementHydrateSupport)||void 0===re||re.call(globalThis,{LitElement:ie});const oe=globalThis.litElementPolyfillSupport;null==oe||oe({LitElement:ie}),(null!==(ne=globalThis.litElementVersions)&&void 0!==ne?ne:globalThis.litElementVersions=[]).push("3.2.0");const ae=e=>t=>"function"==typeof t?((e,t)=>(customElements.define(e,t),t))(e,t):((e,t)=>{const{kind:r,elements:n}=t;return{kind:r,elements:n,finisher(t){customElements.define(e,t)}}})(e,t),se=(e,t)=>"method"===t.kind&&t.descriptor&&!("value"in t.descriptor)?{...t,finisher(r){r.createProperty(t.key,e)}}:{kind:"field",key:Symbol(),placement:"own",descriptor:{},originalKey:t.key,initializer(){"function"==typeof t.initializer&&(this[t.key]=t.initializer.call(this))},finisher(r){r.createProperty(t.key,e)}};function le(e){return(t,r)=>void 0!==r?((e,t,r)=>{t.constructor.createProperty(r,e)})(e,t,r):se(e,t)}function ce(e){return le({...e,state:!0})}var ue;null===(ue=window.HTMLSlotElement)||void 0===ue||ue.prototype.assignedElements;var de=r(4193),pe=r(7063),he=r(6773),me=r(5043),ge=r(8325);r(8759),r(5433),r(9980),r(6836),r(9016),r(2503),r(2886),r(9472),r(4335),r(6854),r(9945),r(6488);const fe=a(pe.Z),be=a(he.Z),ve=a(me.Z);function ye(e){return"function"==typeof e}function we(e){return function(t){if(function(e){return ye(null==e?void 0:e.lift)}(t))return t.lift((function(t){try{return e(t,this)}catch(e){this.error(e)}}));throw new TypeError("Unable to lift unknown Observable type")}}var xe=function(e,t){return xe=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},xe(e,t)};function ke(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}xe(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}function $e(e,t){var r,n,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(s){return function(l){return function(s){if(r)throw new TypeError("Generator is already executing.");for(;o&&(o=0,s[0]&&(a=0)),a;)try{if(r=1,n&&(i=2&s[0]?n.return:s[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,s[1])).done)return i;switch(n=0,i&&(s=[2&s[0],i.value]),s[0]){case 0:case 1:i=s;break;case 4:return a.label++,{value:s[1],done:!1};case 5:a.label++,n=s[1],s=[0];continue;case 7:s=a.ops.pop(),a.trys.pop();continue;default:if(!((i=(i=a.trys).length>0&&i[i.length-1])||6!==s[0]&&2!==s[0])){a=0;continue}if(3===s[0]&&(!i||s[1]>i[0]&&s[1]<i[3])){a.label=s[1];break}if(6===s[0]&&a.label<i[1]){a.label=i[1],i=s;break}if(i&&a.label<i[2]){a.label=i[2],a.ops.push(s);break}i[2]&&a.ops.pop(),a.trys.pop();continue}s=t.call(e,a)}catch(e){s=[6,e],n=0}finally{r=i=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,l])}}}function Se(e){var t="function"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function _e(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,i,o=r.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(n=o.next()).done;)a.push(n.value)}catch(e){i={error:e}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(i)throw i.error}}return a}function Ae(e,t,r){if(r||2===arguments.length)for(var n,i=0,o=t.length;i<o;i++)!n&&i in t||(n||(n=Array.prototype.slice.call(t,0,i)),n[i]=t[i]);return e.concat(n||Array.prototype.slice.call(t))}function Me(e){return this instanceof Me?(this.v=e,this):new Me(e)}function Ce(e,t,r){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var n,i=r.apply(e,t||[]),o=[];return n={},a("next"),a("throw"),a("return"),n[Symbol.asyncIterator]=function(){return this},n;function a(e){i[e]&&(n[e]=function(t){return new Promise((function(r,n){o.push([e,t,r,n])>1||s(e,t)}))})}function s(e,t){try{!function(e){e.value instanceof Me?Promise.resolve(e.value.v).then(l,c):u(o[0][2],e)}(i[e](t))}catch(e){u(o[0][3],e)}}function l(e){s("next",e)}function c(e){s("throw",e)}function u(e,t){e(t),o.shift(),o.length&&s(o[0][0],o[0][1])}}Object.create,Object.create;var Ee,Pe=((Ee=function(e){return function(t){e(this),this.message=t?t.length+" errors occurred during unsubscription:\n"+t.map((function(e,t){return t+1+") "+e.toString()})).join("\n "):"",this.name="UnsubscriptionError",this.errors=t}}((function(e){Error.call(e),e.stack=(new Error).stack}))).prototype=Object.create(Error.prototype),Ee.prototype.constructor=Ee,Ee);function Te(e,t){if(e){var r=e.indexOf(t);0<=r&&e.splice(r,1)}}var je=function(){function e(e){this.initialTeardown=e,this.closed=!1,this._parentage=null,this._finalizers=null}return e.prototype.unsubscribe=function(){var e,t,r,n,i;if(!this.closed){this.closed=!0;var o=this._parentage;if(o)if(this._parentage=null,Array.isArray(o))try{for(var a=Se(o),s=a.next();!s.done;s=a.next())s.value.remove(this)}catch(t){e={error:t}}finally{try{s&&!s.done&&(t=a.return)&&t.call(a)}finally{if(e)throw e.error}}else o.remove(this);var l=this.initialTeardown;if(ye(l))try{l()}catch(e){i=e instanceof Pe?e.errors:[e]}var c=this._finalizers;if(c){this._finalizers=null;try{for(var u=Se(c),d=u.next();!d.done;d=u.next()){var p=d.value;try{ze(p)}catch(e){i=null!=i?i:[],e instanceof Pe?i=Ae(Ae([],_e(i)),_e(e.errors)):i.push(e)}}}catch(e){r={error:e}}finally{try{d&&!d.done&&(n=u.return)&&n.call(u)}finally{if(r)throw r.error}}}if(i)throw new Pe(i)}},e.prototype.add=function(t){var r;if(t&&t!==this)if(this.closed)ze(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=null!==(r=this._finalizers)&&void 0!==r?r:[]).push(t)}},e.prototype._hasParent=function(e){var t=this._parentage;return t===e||Array.isArray(t)&&t.includes(e)},e.prototype._addParent=function(e){var t=this._parentage;this._parentage=Array.isArray(t)?(t.push(e),t):t?[t,e]:e},e.prototype._removeParent=function(e){var t=this._parentage;t===e?this._parentage=null:Array.isArray(t)&&Te(t,e)},e.prototype.remove=function(t){var r=this._finalizers;r&&Te(r,t),t instanceof e&&t._removeParent(this)},e.EMPTY=((t=new e).closed=!0,t),e;var t}();function Fe(e){return e instanceof je||e&&"closed"in e&&ye(e.remove)&&ye(e.add)&&ye(e.unsubscribe)}function ze(e){ye(e)?e():e.unsubscribe()}je.EMPTY;var Oe=null,Ne=null,Re=void 0,Be=!1,Le=!1,De={setTimeout:function(e,t){for(var r=[],n=2;n<arguments.length;n++)r[n-2]=arguments[n];var i=De.delegate;return(null==i?void 0:i.setTimeout)?i.setTimeout.apply(i,Ae([e,t],_e(r))):setTimeout.apply(void 0,Ae([e,t],_e(r)))},clearTimeout:function(e){var t=De.delegate;return((null==t?void 0:t.clearTimeout)||clearTimeout)(e)},delegate:void 0};function He(e){De.setTimeout((function(){if(!Oe)throw e;Oe(e)}))}function Ue(){}var Ie=Ze("C",void 0,void 0);function Ze(e,t,r){return{kind:e,value:t,error:r}}var Ke=null,qe=function(e){function t(t){var r=e.call(this)||this;return r.isStopped=!1,t?(r.destination=t,Fe(t)&&t.add(r)):r.destination=Xe,r}return ke(t,e),t.create=function(e,t,r){return new Ge(e,t,r)},t.prototype.next=function(e){this.isStopped?Je(function(e){return Ze("N",e,void 0)}(e),this):this._next(e)},t.prototype.error=function(e){this.isStopped?Je(Ze("E",void 0,e),this):(this.isStopped=!0,this._error(e))},t.prototype.complete=function(){this.isStopped?Je(Ie,this):(this.isStopped=!0,this._complete())},t.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,e.prototype.unsubscribe.call(this),this.destination=null)},t.prototype._next=function(e){this.destination.next(e)},t.prototype._error=function(e){try{this.destination.error(e)}finally{this.unsubscribe()}},t.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},t}(je),Ve=Function.prototype.bind;function We(e,t){return Ve.call(e,t)}var Ye=function(){function e(e){this.partialObserver=e}return e.prototype.next=function(e){var t=this.partialObserver;if(t.next)try{t.next(e)}catch(e){Qe(e)}},e.prototype.error=function(e){var t=this.partialObserver;if(t.error)try{t.error(e)}catch(e){Qe(e)}else Qe(e)},e.prototype.complete=function(){var e=this.partialObserver;if(e.complete)try{e.complete()}catch(e){Qe(e)}},e}(),Ge=function(e){function t(t,r,n){var i,o,a=e.call(this)||this;return ye(t)||!t?i={next:null!=t?t:void 0,error:null!=r?r:void 0,complete:null!=n?n:void 0}:a&&Le?((o=Object.create(t)).unsubscribe=function(){return a.unsubscribe()},i={next:t.next&&We(t.next,o),error:t.error&&We(t.error,o),complete:t.complete&&We(t.complete,o)}):i=t,a.destination=new Ye(i),a}return ke(t,e),t}(qe);function Qe(e){var t;Be?(t=e,Be&&Ke&&(Ke.errorThrown=!0,Ke.error=t)):He(e)}function Je(e,t){var r=Ne;r&&De.setTimeout((function(){return r(e,t)}))}var Xe={closed:!0,next:Ue,error:function(e){throw e},complete:Ue};function et(e,t,r,n,i){return new tt(e,t,r,n,i)}var tt=function(e){function t(t,r,n,i,o,a){var s=e.call(this,t)||this;return s.onFinalize=o,s.shouldUnsubscribe=a,s._next=r?function(e){try{r(e)}catch(e){t.error(e)}}:e.prototype._next,s._error=i?function(e){try{i(e)}catch(e){t.error(e)}finally{this.unsubscribe()}}:e.prototype._error,s._complete=n?function(){try{n()}catch(e){t.error(e)}finally{this.unsubscribe()}}:e.prototype._complete,s}return ke(t,e),t.prototype.unsubscribe=function(){var t;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){var r=this.closed;e.prototype.unsubscribe.call(this),!r&&(null===(t=this.onFinalize)||void 0===t||t.call(this))}},t}(qe);function rt(e,t){return we((function(r,n){var i=0;r.subscribe(et(n,(function(r){n.next(e.call(t,r,i++))})))}))}var nt=function(e){return e&&"number"==typeof e.length&&"function"!=typeof e};function it(e){return ye(null==e?void 0:e.then)}var ot="function"==typeof Symbol&&Symbol.observable||"@@observable";function at(e){return e}function st(e){return 0===e.length?at:1===e.length?e[0]:function(t){return e.reduce((function(e,t){return t(e)}),t)}}var lt=function(){function e(e){e&&(this._subscribe=e)}return e.prototype.lift=function(t){var r=new e;return r.source=this,r.operator=t,r},e.prototype.subscribe=function(e,t,r){var n,i=this,o=(n=e)&&n instanceof qe||function(e){return e&&ye(e.next)&&ye(e.error)&&ye(e.complete)}(n)&&Fe(n)?e:new Ge(e,t,r);return function(e){if(Be){var t=!Ke;if(t&&(Ke={errorThrown:!1,error:null}),e(),t){var r=Ke,n=r.errorThrown,i=r.error;if(Ke=null,n)throw i}}else e()}((function(){var e=i,t=e.operator,r=e.source;o.add(t?t.call(o,r):r?i._subscribe(o):i._trySubscribe(o))})),o},e.prototype._trySubscribe=function(e){try{return this._subscribe(e)}catch(t){e.error(t)}},e.prototype.forEach=function(e,t){var r=this;return new(t=ct(t))((function(t,n){var i=new Ge({next:function(t){try{e(t)}catch(e){n(e),i.unsubscribe()}},error:n,complete:t});r.subscribe(i)}))},e.prototype._subscribe=function(e){var t;return null===(t=this.source)||void 0===t?void 0:t.subscribe(e)},e.prototype[ot]=function(){return this},e.prototype.pipe=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return st(e)(this)},e.prototype.toPromise=function(e){var t=this;return new(e=ct(e))((function(e,r){var n;t.subscribe((function(e){return n=e}),(function(e){return r(e)}),(function(){return e(n)}))}))},e.create=function(t){return new e(t)},e}();function ct(e){var t;return null!==(t=null!=e?e:Re)&&void 0!==t?t:Promise}function ut(e){return ye(e[ot])}function dt(e){return Symbol.asyncIterator&&ye(null==e?void 0:e[Symbol.asyncIterator])}function pt(e){return new TypeError("You provided "+(null!==e&&"object"==typeof e?"an invalid object":"'"+e+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}var ht="function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator";function mt(e){return ye(null==e?void 0:e[ht])}function gt(e){return Ce(this,arguments,(function(){var t,r,n;return $e(this,(function(i){switch(i.label){case 0:t=e.getReader(),i.label=1;case 1:i.trys.push([1,,9,10]),i.label=2;case 2:return[4,Me(t.read())];case 3:return r=i.sent(),n=r.value,r.done?[4,Me(void 0)]:[3,5];case 4:return[2,i.sent()];case 5:return[4,Me(n)];case 6:return[4,i.sent()];case 7:return i.sent(),[3,2];case 8:return[3,10];case 9:return t.releaseLock(),[7];case 10:return[2]}}))}))}function ft(e){return ye(null==e?void 0:e.getReader)}function bt(e){if(e instanceof lt)return e;if(null!=e){if(ut(e))return i=e,new lt((function(e){var t=i[ot]();if(ye(t.subscribe))return t.subscribe(e);throw new TypeError("Provided object does not correctly implement Symbol.observable")}));if(nt(e))return n=e,new lt((function(e){for(var t=0;t<n.length&&!e.closed;t++)e.next(n[t]);e.complete()}));if(it(e))return r=e,new lt((function(e){r.then((function(t){e.closed||(e.next(t),e.complete())}),(function(t){return e.error(t)})).then(null,He)}));if(dt(e))return vt(e);if(mt(e))return t=e,new lt((function(e){var r,n;try{for(var i=Se(t),o=i.next();!o.done;o=i.next()){var a=o.value;if(e.next(a),e.closed)return}}catch(e){r={error:e}}finally{try{o&&!o.done&&(n=i.return)&&n.call(i)}finally{if(r)throw r.error}}e.complete()}));if(ft(e))return vt(gt(e))}var t,r,n,i;throw pt(e)}function vt(e){return new lt((function(t){(function(e,t){var r,n,i,o;return function(e,t,r,n){return new(r||(r=Promise))((function(i,o){function a(e){try{l(n.next(e))}catch(e){o(e)}}function s(e){try{l(n.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,s)}l((n=n.apply(e,t||[])).next())}))}(this,void 0,void 0,(function(){var a,s;return $e(this,(function(l){switch(l.label){case 0:l.trys.push([0,5,6,11]),r=function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,r=e[Symbol.asyncIterator];return r?r.call(e):(e=Se(e),t={},n("next"),n("throw"),n("return"),t[Symbol.asyncIterator]=function(){return this},t);function n(r){t[r]=e[r]&&function(t){return new Promise((function(n,i){!function(e,t,r,n){Promise.resolve(n).then((function(t){e({value:t,done:r})}),t)}(n,i,(t=e[r](t)).done,t.value)}))}}}(e),l.label=1;case 1:return[4,r.next()];case 2:if((n=l.sent()).done)return[3,4];if(a=n.value,t.next(a),t.closed)return[2];l.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return s=l.sent(),i={error:s},[3,11];case 6:return l.trys.push([6,,9,10]),n&&!n.done&&(o=r.return)?[4,o.call(r)]:[3,8];case 7:l.sent(),l.label=8;case 8:return[3,10];case 9:if(i)throw i.error;return[7];case 10:return[7];case 11:return t.complete(),[2]}}))}))})(e,t).catch((function(e){return t.error(e)}))}))}function yt(e,t,r,n,i){void 0===n&&(n=0),void 0===i&&(i=!1);var o=t.schedule((function(){r(),i?e.add(this.schedule(null,n)):this.unsubscribe()}),n);if(e.add(o),!i)return o}function wt(e,t,r){return void 0===r&&(r=1/0),ye(t)?wt((function(r,n){return rt((function(e,i){return t(r,e,n,i)}))(bt(e(r,n)))}),r):("number"==typeof t&&(r=t),we((function(t,n){return function(e,t,r,n,i,o,a,s){var l=[],c=0,u=0,d=!1,p=function(){!d||l.length||c||t.complete()},h=function(e){return c<n?m(e):l.push(e)},m=function(e){c++;var i=!1;bt(r(e,u++)).subscribe(et(t,(function(e){t.next(e)}),(function(){i=!0}),void 0,(function(){if(i)try{c--;for(;l.length&&c<n;)e=void 0,e=l.shift(),m(e);p()}catch(e){t.error(e)}var e})))};return e.subscribe(et(t,h,(function(){d=!0,p()}))),function(){}}(t,n,e,r)})))}function xt(e){return void 0===e&&(e=1/0),wt(at,e)}var kt=new lt((function(e){return e.complete()}));function $t(e){return e[e.length-1]}function St(e){return(t=$t(e))&&ye(t.schedule)?e.pop():void 0;var t}function _t(e,t){return"number"==typeof $t(e)?e.pop():t}function At(e,t){return void 0===t&&(t=0),we((function(r,n){r.subscribe(et(n,(function(r){return yt(n,e,(function(){return n.next(r)}),t)}),(function(){return yt(n,e,(function(){return n.complete()}),t)}),(function(r){return yt(n,e,(function(){return n.error(r)}),t)})))}))}function Mt(e,t){return void 0===t&&(t=0),we((function(r,n){n.add(e.schedule((function(){return r.subscribe(n)}),t))}))}function Ct(e,t){if(!e)throw new Error("Iterable cannot be null");return new lt((function(r){yt(r,t,(function(){var n=e[Symbol.asyncIterator]();yt(r,t,(function(){n.next().then((function(e){e.done?r.complete():r.next(e.value)}))}),0,!0)}))}))}function Et(e,t){return t?function(e,t){if(null!=e){if(ut(e))return function(e,t){return bt(e).pipe(Mt(t),At(t))}(e,t);if(nt(e))return function(e,t){return new lt((function(r){var n=0;return t.schedule((function(){n===e.length?r.complete():(r.next(e[n++]),r.closed||this.schedule())}))}))}(e,t);if(it(e))return function(e,t){return bt(e).pipe(Mt(t),At(t))}(e,t);if(dt(e))return Ct(e,t);if(mt(e))return function(e,t){return new lt((function(r){var n;return yt(r,t,(function(){n=e[ht](),yt(r,t,(function(){var e,t,i;try{t=(e=n.next()).value,i=e.done}catch(e){return void r.error(e)}i?r.complete():r.next(t)}),0,!0)})),function(){return ye(null==n?void 0:n.return)&&n.return()}}))}(e,t);if(ft(e))return function(e,t){return Ct(gt(e),t)}(e,t)}throw pt(e)}(e,t):bt(e)}var Pt=Array.isArray;var Tt=["addListener","removeListener"],jt=["addEventListener","removeEventListener"],Ft=["on","off"];function zt(e,t){return function(r){return function(n){return e[r](t,n)}}}const Ot=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=St(e),n=_t(e,1/0),i=e;return i.length?1===i.length?bt(i[0]):xt(n)(Et(i,r)):kt}(function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var r=St(e);return Et(e,r)}(1),function e(t,r,n,i){if(ye(n)&&(i=n,n=void 0),i)return e(t,r,n).pipe((o=i,rt((function(e){return function(e,t){return Pt(t)?e.apply(void 0,Ae([],_e(t))):e(t)}(o,e)}))));var o,a=_e(function(e){return ye(e.addEventListener)&&ye(e.removeEventListener)}(t)?jt.map((function(e){return function(i){return t[e](r,i,n)}})):function(e){return ye(e.addListener)&&ye(e.removeListener)}(t)?Tt.map(zt(t,r)):function(e){return ye(e.on)&&ye(e.off)}(t)?Ft.map(zt(t,r)):[],2),s=a[0],l=a[1];if(!s&&nt(t))return wt((function(t){return e(t,r,n)}))(bt(t));if(!s)throw new TypeError("Invalid event target");return new lt((function(e){var t=function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return e.next(1<t.length?t:t[0])};return s(t),function(){return l(t)}}))}(window,"hashchange").pipe((Nt=e=>e.preventDefault(),Lt=ye(Nt)?{next:Nt,error:Rt,complete:Bt}:Nt,Lt?we((function(e,t){var r;null===(r=Lt.subscribe)||void 0===r||r.call(Lt);var n=!0;e.subscribe(et(t,(function(e){var r;null===(r=Lt.next)||void 0===r||r.call(Lt,e),t.next(e)}),(function(){var e;n=!1,null===(e=Lt.complete)||void 0===e||e.call(Lt),t.complete()}),(function(e){var r;n=!1,null===(r=Lt.error)||void 0===r||r.call(Lt,e),t.error(e)}),(function(){var e,t;n&&(null===(e=Lt.unsubscribe)||void 0===e||e.call(Lt)),null===(t=Lt.finalize)||void 0===t||t.call(Lt)})))})):at))).pipe(rt((()=>window.location.hash.substr(1).split("/").filter(Boolean).map(decodeURIComponent))));var Nt,Rt,Bt,Lt,Dt;!function(e){e.mutant="mutant",e.test="test"}(Dt||(Dt={}));var Ht=r(3704);function Ut(e,t,r){return new CustomEvent(e,{detail:t,...r})}var It=r(9130);const Zt=(e,t)=>R`<li title=${e||D} class="my-3 rounded bg-white py-3 px-2 shadow">${t}</li>`,Kt=(e,t)=>R`<p title=${t||D}>${e}</p>`,qt=e=>R`<div class="mb-6 mt-2 mr-6 flex flex-col gap-4">${e}</div>`,Vt=(e,t)=>R`<span role="img" aria-label="${t}">${e}</span>`;var Wt=r(9483),Yt=function(e,t,r,n){var i,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(a=(o<3?i(a):o>3?i(t,r,a):i(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};let Gt=class extends ie{constructor(){super(...arguments),this.mode="closed",this.hasDetail=!1,this.toggleReadMore=e=>{"open"===this.mode?this.mode="half":this.mode="open",e.preventDefault(),e.stopImmediatePropagation()}}get toggleMoreLabel(){switch(this.mode){case"half":return R`${Vt("🔼","up arrow")} More`;case"open":return R`${Vt("🔽","down arrow")} Less`;case"closed":return D}}render(){return R`<aside @click="${e=>e.stopPropagation()}">
<div class="mx-6">
<header class="w-full py-4">
<h2>
<slot name="header"></slot>
${Qt(this.hasDetail,R`<button data-testId="btnReadMoreToggle" class="ml-2 align-middle" @click="${this.toggleReadMore}">${this.toggleMoreLabel}</button>`)}
</h2>
</header>
<div class="scrollable container fixed motion-safe:transition-max-width">
<slot name="summary"></slot>
${Qt(this.hasDetail&&"open"===this.mode,R`<slot name="detail"></slot>`)}
</div>
</div>
</aside>`}};function Qt(e,t){return e?"function"==typeof t?t():t:D}function Jt(e,t){return null==e?D:t(e)}function Xt(e){switch(e){case It.MutantStatus.Killed:return"success";case It.MutantStatus.NoCoverage:return"caution";case It.MutantStatus.Survived:return"danger";case It.MutantStatus.Timeout:return"warning";case It.MutantStatus.Ignored:case It.MutantStatus.RuntimeError:case It.MutantStatus.CompileError:return"secondary"}}function er(e){switch(e){case de.ih.Killing:return"success";case de.ih.Covering:return"warning";case de.ih.NotCovering:return"caution"}}function tr(e){switch(e){case de.ih.Killing:return Vt("✅",e);case de.ih.Covering:return Vt("☂",e);case de.ih.NotCovering:return Vt("🌧",e)}}function rr(e){switch(e){case It.MutantStatus.Killed:return Vt("✅",e);case It.MutantStatus.NoCoverage:return Vt("🙈",e);case It.MutantStatus.Ignored:return Vt("🤥",e);case It.MutantStatus.Survived:return Vt("👽",e);case It.MutantStatus.Timeout:return Vt("⌛",e);case It.MutantStatus.RuntimeError:case It.MutantStatus.CompileError:return Vt("💥",e)}}function nr(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function ir(...e){const t=new URL(window.location.href);return new URL(`#${e.filter(Boolean).join("/")}`,t).href}function or(e){return e.length>1?"s":""}function ar({fileName:e,location:t}){return e?`${e}${t?`:${t.start.line}:${t.start.column}`:""}`:""}function sr(e){e&&!function(e){const{top:t,bottom:r}=e.getBoundingClientRect();return t>=0&&r<=(window.innerHeight||document.documentElement.clientHeight)-120}(e)&&e.scrollIntoView({block:"center",behavior:"smooth"})}function lr(){const e="test";try{return localStorage.setItem(e,e),localStorage.removeItem(e),!0}catch(e){return!1}}Gt.styles=[a(Wt.Z),fe],Yt([le({reflect:!0})],Gt.prototype,"mode",void 0),Yt([le({reflect:!0,type:Boolean})],Gt.prototype,"hasDetail",void 0),Yt([le()],Gt.prototype,"toggleMoreLabel",null),Gt=Yt([ae("mte-drawer")],Gt);var cr=function(e,t,r,n){var i,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(a=(o<3?i(a):o>3?i(t,r,a):i(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};let ur=class extends ie{constructor(){super(...arguments),this.context={view:Dt.mutant,path:[]},this.path=[],this.themeSwitch=e=>{this.theme=e.detail,lr()&&localStorage.setItem("mutation-testing-elements-theme",this.theme)},this.subscriptions=[]}get themeBackgroundColor(){return getComputedStyle(this).getPropertyValue("--mut-body-bg")}get title(){return this.context.result?this.titlePostfix?`${this.context.result.name} - ${this.titlePostfix}`:this.context.result.name:""}firstUpdated(){(0===this.path.length||this.path[0]!==Dt.mutant&&this.path[0]!==Dt.test)&&window.location.replace(ir(`${Dt.mutant}`))}async loadData(){if(this.src)try{const e=await fetch(this.src);this.report=await e.json()}catch(e){const t=String(e);this.errorMessage=t}}async willUpdate(e){this.theme||(this.theme=this.getTheme()),this.report&&(e.has("report")&&this.updateModel(this.report),(e.has("path")||e.has("report"))&&(this.updateContext(),this.updateTitle())),e.has("src")&&await this.loadData()}updated(e){e.has("theme")&&this.theme&&this.dispatchEvent(Ut("theme-changed",{theme:this.theme,themeBackgroundColor:this.themeBackgroundColor}))}getTheme(){return lr()&&localStorage.getItem("mutation-testing-elements-theme")||(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)")?.matches?"dark":"light")}updateModel(e){this.rootModel=(0,de.xR)(e)}updateContext(){if(this.rootModel){const e=(e,t)=>t.reduce(((e,t)=>e&&e.childResults.find((e=>e.name===t))),e),t=this.path.slice(1);this.path[0]===Dt.test&&this.rootModel.testMetrics?this.context={view:Dt.test,path:t,result:e(this.rootModel.testMetrics,this.path.slice(1))}:this.context={view:Dt.mutant,path:t,result:e(this.rootModel.systemUnderTestMetrics,this.path.slice(1))}}}updateTitle(){document.title=this.title}connectedCallback(){super.connectedCallback(),this.subscriptions.push(Ot.subscribe((e=>this.path=e)))}disconnectedCallback(){super.disconnectedCallback(),this.subscriptions.forEach((e=>e.unsubscribe()))}renderTitle(){return this.context.result?R`
<h1 class="text-5xl font-bold tracking-tight">
${this.context.result.name}${this.titlePostfix?R`<small class="text-light-muted ml-4 font-light">${this.titlePostfix}</small>`:D}
</h1>
`:D}render(){return this.context.result||this.errorMessage?R`
<div class="container bg-white pb-4 font-sans text-gray-800 motion-safe:transition-max-width">
<div class="space-y-4 transition-colors">
${this.renderErrorMessage()}
<mte-theme-switch @theme-switch="${this.themeSwitch}" class="sticky top-offset z-20 float-right mx-4 pt-4" .theme="${this.theme}">
</mte-theme-switch>
${this.renderTitle()} ${this.renderTabs()}
<mte-breadcrumb .view="${this.context.view}" class="my-4" .path="${this.context.path}"></mte-breadcrumb>
${"mutant"===this.context.view&&this.context.result?R`<mte-mutant-view
id="mte-mutant-view"
.result="${this.context.result}"
.thresholds="${this.report.thresholds}"
.path="${this.path}"
></mte-mutant-view>`:D}
${"test"===this.context.view&&this.context.result?R`<mte-test-view id="mte-test-view" .result="${this.context.result}" .path="${this.path}"></mte-test-view>`:D}
</div>
</div>
`:R``}renderErrorMessage(){return this.errorMessage?R`<div class="my-4 rounded-lg bg-red-100 p-4 text-sm text-red-700" role="alert">${this.errorMessage}</div>`:D}renderTabs(){if(this.rootModel?.testMetrics){const e="mutant"===this.context.view,t="test"===this.context.view;return R`
<nav class="border-b border-gray-200 text-center text-sm font-medium text-gray-600">
<ul class="-mb-px flex flex-wrap" role="tablist">
${[{type:"mutant",isActive:e,text:"👽 Mutants"},{type:"test",isActive:t,text:"🧪 Tests"}].map((({type:e,isActive:t,text:r})=>R`<li class="mr-2" role="presentation">
<a
class="inline-block rounded-t-lg border-b-2 border-transparent p-4 transition-colors hover:border-gray-300 hover:bg-gray-200 hover:text-gray-700 aria-selected:border-b-[3px] aria-selected:border-primary-700 aria-selected:text-primary-on"
role="tab"
href="${ir(e)}"
aria-selected="${t}"
aria-controls="mte-${e}-view"
>${r}</a
>
</li>`))}
</ul>
</nav>
`}return D}};ur.styles=[ve,a(Ht.Z),fe],cr([le({attribute:!1})],ur.prototype,"report",void 0),cr([le({attribute:!1})],ur.prototype,"rootModel",void 0),cr([le()],ur.prototype,"src",void 0),cr([le({attribute:!1})],ur.prototype,"errorMessage",void 0),cr([le({attribute:!1})],ur.prototype,"context",void 0),cr([le()],ur.prototype,"path",void 0),cr([le({attribute:"title-postfix"})],ur.prototype,"titlePostfix",void 0),cr([le({reflect:!0})],ur.prototype,"theme",void 0),cr([le({attribute:!1})],ur.prototype,"themeBackgroundColor",null),cr([le()],ur.prototype,"title",null),ur=cr([ae("mutation-test-report-app")],ur);const{I:dr}=ee,pr=()=>document.createComment(""),hr=(e,t,r)=>{var n;const i=e._$AA.parentNode,o=void 0===t?e._$AB:t._$AA;if(void 0===r){const t=i.insertBefore(pr(),o),n=i.insertBefore(pr(),o);r=new dr(t,n,e,e.options)}else{const t=r._$AB.nextSibling,a=r._$AM,s=a!==e;if(s){let t;null===(n=r._$AQ)||void 0===n||n.call(r,e),r._$AM=e,void 0!==r._$AP&&(t=e._$AU)!==a._$AU&&r._$AP(t)}if(t!==o||s){let e=r._$AA;for(;e!==t;){const t=e.nextSibling;i.insertBefore(e,o),e=t}}}return r},mr=(e,t,r=e)=>(e._$AI(t,r),e),gr={},fr=e=>{var t;null===(t=e._$AP)||void 0===t||t.call(e,!1,!0);let r=e._$AA;const n=e._$AB.nextSibling;for(;r!==n;){const e=r.nextSibling;r.remove(),r=e}},br=e=>(...t)=>({_$litDirective$:e,values:t});class vr{constructor(e){}get _$AU(){return this._$AM._$AU}_$AT(e,t,r){this._$Ct=e,this._$AM=t,this._$Ci=r}_$AS(e,t){return this.update(e,t)}update(e,t){return this.render(...t)}}const yr=(e,t)=>{var r,n;const i=e._$AN;if(void 0===i)return!1;for(const e of i)null===(n=(r=e)._$AO)||void 0===n||n.call(r,t,!1),yr(e,t);return!0},wr=e=>{let t,r;do{if(void 0===(t=e._$AM))break;r=t._$AN,r.delete(e),e=t}while(0===(null==r?void 0:r.size))},xr=e=>{for(let t;t=e._$AM;e=t){let r=t._$AN;if(void 0===r)t._$AN=r=new Set;else if(r.has(e))break;r.add(e),Sr(t)}};function kr(e){void 0!==this._$AN?(wr(this),this._$AM=e,xr(this)):this._$AM=e}function $r(e,t=!1,r=0){const n=this._$AH,i=this._$AN;if(void 0!==i&&0!==i.size)if(t)if(Array.isArray(n))for(let e=r;e<n.length;e++)yr(n[e],!1),wr(n[e]);else null!=n&&(yr(n,!1),wr(n));else yr(this,e)}const Sr=e=>{var t,r,n,i;2==e.type&&(null!==(t=(n=e)._$AP)&&void 0!==t||(n._$AP=$r),null!==(r=(i=e)._$AQ)&&void 0!==r||(i._$AQ=kr))};class _r extends vr{constructor(){super(...arguments),this._$AN=void 0}_$AT(e,t,r){super._$AT(e,t,r),xr(this),this.isConnected=e._$AU}_$AO(e,t=!0){var r,n;e!==this.isConnected&&(this.isConnected=e,e?null===(r=this.reconnected)||void 0===r||r.call(this):null===(n=this.disconnected)||void 0===n||n.call(this)),t&&(yr(this,e),wr(this))}setValue(e){if((e=>void 0===this._$Ct.strings)())this._$Ct._$AI(e,this);else{const t=[...this._$Ct._$AH];t[this._$Ci]=e,this._$Ct._$AI(t,this,0)}}disconnected(){}reconnected(){}}class Ar{}const Mr=new WeakMap,Cr=br(class extends _r{render(e){return D}update(e,[t]){var r;const n=t!==this.Y;return n&&void 0!==this.Y&&this.rt(void 0),(n||this.lt!==this.ct)&&(this.Y=t,this.dt=null===(r=e.options)||void 0===r?void 0:r.host,this.rt(this.ct=e.element)),D}rt(e){var t;if("function"==typeof this.Y){const r=null!==(t=this.dt)&&void 0!==t?t:globalThis;let n=Mr.get(r);void 0===n&&(n=new WeakMap,Mr.set(r,n)),void 0!==n.get(this.Y)&&this.Y.call(this.dt,void 0),n.set(this.Y,e),void 0!==e&&this.Y.call(this.dt,e)}else this.Y.value=e}get lt(){var e,t,r;return"function"==typeof this.Y?null===(t=Mr.get(null!==(e=this.dt)&&void 0!==e?e:globalThis))||void 0===t?void 0:t.get(this.Y):null===(r=this.Y)||void 0===r?void 0:r.value}disconnected(){this.lt===this.ct&&this.rt(void 0)}reconnected(){this.rt(this.ct)}});var Er,Pr;function Tr(e){switch(function(e){return e.substr(e.lastIndexOf(".")+1).toLocaleLowerCase()}(e)){case"cs":return Er.csharp;case"html":return Er.html;case"java":return Er.java;case"js":case"cjs":case"mjs":return Er.javascript;case"ts":case"tsx":case"cts":case"mts":return Er.typescript;case"scala":return Er.scala;case"php":return Er.php;case"vue":return Er.vue;case"feature":return Er.gherkin;default:return}}function jr(e,t){const r=Tr(t)??"plain";let n=r;return r===Er.vue&&(n=Er.html),(0,ge.highlight)(e,ge.languages[n],n)}function Fr(e,t){let r=[];const n=[],i={column:0,line:1,offset:-1},o=[];let a=!1,s=0;for(;s<e.length;){switch(a&&!zr(e[s])&&(o.forEach((e=>l(c(e)))),a=!1),e[s]){case Pr.CarriageReturn:i.offset++;break;case Pr.NewLine:u(),i.offset++,i.line++,i.column=0,a=!0;break;case Pr.LT:{const e=p();e.isClosing?m(e):h(e);break}case Pr.Amp:d(f());break;default:d(e[s])}s++}return u(),n;function l(...e){r.push(...e)}function c({attributes:e,elementName:t,isClosing:r}){return r?`</${t}>`:`<${t}${Object.entries(e??{}).reduce(((e,[t,r])=>void 0===r?`${e} ${t}`:`${e} ${t}="${r}"`),"")}>`}function u(){o.forEach((e=>l(c({...e,isClosing:!0})))),n.push(r.join("")),r=[]}function d(e){if(i.column++,i.offset++,t)for(const e of t(i))e.isClosing?m(e):(l(c(e)),o.push(e));l(e)}function p(){s++;const t="/"===e[s]||void 0;t&&s++;const r=s;for(;!zr(e[s])&&e[s]!==Pr.GT;)s++;return{elementName:e.substring(r,s),attributes:function(){const t=Object.create(null);for(;s<e.length;){const r=e[s];if(r===Pr.GT)return t;if(!zr(r)){const{name:e,value:r}=g();t[e]=r}s++}throw new Error(`Missing closing tag near ${e.substr(s-10)}`)}(),isClosing:t}}function h(e){o.push(e),l(c(e))}function m(e){let t;for(t=o.length-1;t>=0;t--){const r=o[t];if(e.elementName===r.elementName&&r.id===e.id){l(c(e)),o.splice(t,1);for(let e=t;e<o.length;e++)l(c(o[e]));break}l(c({...r,isClosing:!0}))}if(-1===t)throw new Error(`Cannot find corresponding opening tag for ${c(e)}`)}function g(){const t=s;for(;"="!==e[s];)s++;const r=e.substring(t,s);s++;const n=function(){'"'===e[s]&&s++;const t=s;for(;'"'!==e[s];)s++;return e.substring(t,s)}();return{name:r,value:n}}function f(){const t=s;for(;e[s]!==Pr.Semicolon;)s++;return e.substring(t,s+1)}}function zr(e){return e===Pr.NewLine||e===Pr.Space||e===Pr.Tab}function Or(e,t){return e.line>t.line||e.line===t.line&&e.column>=t.column}!function(e){e.csharp="cs",e.java="java",e.javascript="javascript",e.html="html",e.php="php",e.scala="scala",e.typescript="typescript",e.vue="vue",e.gherkin="gherkin"}(Er||(Er={})),function(e){e.CarriageReturn="\r",e.NewLine="\n",e.Space=" ",e.Amp="&",e.Semicolon=";",e.LT="<",e.GT=">",e.Tab="\t"}(Pr||(Pr={}));var Nr=r(5545);class Rr extends vr{constructor(e){if(super(e),this.it=D,2!==e.type)throw Error(this.constructor.directiveName+"() can only be used in child bindings")}render(e){if(e===D||null==e)return this._t=void 0,this.it=e;if(e===L)return e;if("string"!=typeof e)throw Error(this.constructor.directiveName+"() called with a non-string value");if(e===this.it)return this._t;this.it=e;const t=[e];return t.raw=t,this._t={_$litType$:this.constructor.resultType,strings:t,values:[]}}}Rr.directiveName="unsafeHTML",Rr.resultType=1;const Br=br(Rr);function Lr(e,t){return e===D&&t===D?D:R`<span class="ml-1 flex flex-row items-center">${e}${t}</span>`}function Dr(e,t){return R`<tr class="line"
><td class="line-number"></td><td class="line-marker"></td><td class="code flex"><span>${Br(e)}</span>${t}</td></tr
>`}var Hr=function(e,t,r,n){var i,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(a=(o<3?i(a):o>3?i(t,r,a):i(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};const Ur="diff-old";let Ir=class extends ie{constructor(){super(...arguments),this.filters=[],this.selectedMutantStates=[],this.lines=[],this.mutants=[],this.codeRef=new Ar,this.filtersChanged=e=>{this.selectedMutantStates=e.detail},this.codeClicked=e=>{if(e.stopPropagation(),e.target instanceof Element){let t=e.target;const r=[];for(;t instanceof Element;t=t.parentElement){const e=t.getAttribute("mutant-id"),n=this.mutants.find((({id:t})=>t.toString()===e));n&&r.push(n)}const n=(this.selectedMutant?r.indexOf(this.selectedMutant):-1)+1;r[n]?(this.toggleMutant(r[n]),Kr()):this.selectedMutant&&(this.toggleMutant(this.selectedMutant),Kr())}},this.nextMutant=()=>{const e=this.selectedMutant?(this.mutants.indexOf(this.selectedMutant)+1)%this.mutants.length:0;this.mutants[e]&&this.toggleMutant(this.mutants[e])},this.previousMutant=()=>{const e=this.selectedMutant?(this.mutants.indexOf(this.selectedMutant)+this.mutants.length-1)%this.mutants.length:this.mutants.length-1;this.mutants[e]&&this.toggleMutant(this.mutants[e])}}render(){const e=new Map;for(const t of this.mutants){let r=e.get(t.location.start.line);r||(r=[],e.set(t.location.start.line,r)),r.push(t)}const t=t=>this.renderMutantDots([...e.entries()].filter((([e])=>e>t)).flatMap((([,e])=>e)));return R`
<mte-state-filter
allow-toggle-all
.filters="${this.filters}"
@filters-changed="${this.filtersChanged}"
@next=${this.nextMutant}
@previous=${this.previousMutant}
></mte-state-filter>
<pre
@click="${this.codeClicked}"
id="report-code-block"
class="line-numbers ${this.selectedMutantStates.map((e=>`mte-selected-${e}`)).join(" ")} flex rounded-md py-4"
>
<code ${Cr(this.codeRef)} class="flex language-${this.model.language}">
<table>${this.lines.map(((r,n)=>{const i=n+1;return Dr(r,Lr(this.renderMutantDots(e.get(i)),this.lines.length===i?t(i):D))}))}</table>
</code>
</pre>
`}renderMutantDots(e){return e?.length?e.map((e=>B`<svg mutant-id="${e.id}" class="mutant-dot ${this.selectedMutant?.id===e.id?"selected":e.status}" height="10" width="12">
<title>${Zr(e)}</title>
<circle cx="5" cy="5" r="5" />
</svg>`)):D}toggleMutant(e){if(this.removeCurrentDiff(),this.selectedMutant===e)return this.selectedMutant=void 0,void this.dispatchEvent(Ut("mutant-selected",{selected:!1,mutant:e}));this.selectedMutant=e;const t=this.codeRef.value.querySelectorAll("tr.line");for(let r=e.location.start.line-1;r<e.location.end.line;r++)t.item(r).classList.add(Ur);const r=this.highlightedReplacementRows(e),n=t.item(e.location.end.line-1);n.insertAdjacentHTML("afterend",r),sr(n),this.dispatchEvent(Ut("mutant-selected",{selected:!0,mutant:e}))}removeCurrentDiff(){this.codeRef.value.querySelectorAll(".diff-old").forEach((e=>e.classList.remove(Ur))),this.codeRef.value.querySelectorAll(".diff-new").forEach((e=>e.remove()))}update(e){if(e.has("model")&&this.model){this.filters=[It.MutantStatus.Killed,It.MutantStatus.Survived,It.MutantStatus.NoCoverage,It.MutantStatus.Ignored,It.MutantStatus.Timeout,It.MutantStatus.CompileError,It.MutantStatus.RuntimeError].filter((e=>this.model.mutants.some((t=>t.status===e)))).map((e=>({enabled:[It.MutantStatus.Survived,It.MutantStatus.NoCoverage,It.MutantStatus.Timeout].includes(e),count:this.model.mutants.filter((t=>t.status===e)).length,status:e,label:R`${rr(e)} ${e}`,context:Xt(e)})));const e=jr(this.model.source,this.model.name),t=new Set,r=new Set(this.model.mutants);this.lines=Fr(e,(function*(e){for(const r of t)Or(e,r.location.end)&&(t.delete(r),yield{elementName:"span",id:r.id,isClosing:!0});for(const n of r)Or(e,n.location.start)&&(t.add(n),r.delete(n),yield{elementName:"span",id:n.id,attributes:{class:nr(`mutant border-none ${n.status}`),title:nr(Zr(n)),"mutant-id":nr(n.id.toString())}})}))}(e.has("model")&&this.model||e.has("selectedMutantStates"))&&(this.mutants=this.model.mutants.filter((e=>this.selectedMutantStates.includes(e.status))).sort(((e,t)=>Or(e.location.start,t.location.start)?1:-1)),this.selectedMutant&&!this.mutants.includes(this.selectedMutant)&&this.toggleMutant(this.selectedMutant)),super.update(e)}highlightedReplacementRows(e){const t=e.getMutatedLines().trimEnd(),r=e.getOriginalLines().trimEnd(),[n,i]=function(e,t){let r=0,n=t.length-1;for(;e[r]===t[r]&&r<t.length;)r++;const i=e.length-t.length;for(;e[n+i]===t[n]&&n>r;)n--;n===r&&(zr(t[r-1])||r--),n++;const o=t.substring(r,n);return["true","false"].forEach((e=>{o===e.substr(0,e.length-1)&&e[e.length-1]===t[n]&&n++,o===e.substr(1,e.length)&&e[0]===t[r-1]&&r--})),[r,n]}(r,t);return Fr(jr(t,this.model.name),(function*({offset:e}){e===n?yield{elementName:"span",id:"diff-focus",attributes:{class:"diff-focus"}}:e===i&&(yield{elementName:"span",id:"diff-focus",isClosing:!0})})).map((e=>`<tr class="diff-new"><td class="empty-line-number"></td><td class="line-marker"></td><td class="code">${e}</td></tr>`)).join("")}};function Zr(e){return`${e.mutatorName} ${e.status}`}function Kr(){window.getSelection()?.removeAllRanges()}Ir.styles=[be,fe,a(Nr.Z)],Hr([ce()],Ir.prototype,"filters",void 0),Hr([le()],Ir.prototype,"model",void 0),Hr([ce()],Ir.prototype,"selectedMutantStates",void 0),Hr([ce()],Ir.prototype,"selectedMutant",void 0),Hr([ce()],Ir.prototype,"lines",void 0),Hr([ce()],Ir.prototype,"mutants",void 0),Ir=Hr([ae("mte-file")],Ir);const qr=(e,t,r)=>{const n=new Map;for(let i=t;i<=r;i++)n.set(e[i],i);return n},Vr=br(class extends vr{constructor(e){if(super(e),2!==e.type)throw Error("repeat() can only be used in text expressions")}ht(e,t,r){let n;void 0===r?r=t:void 0!==t&&(n=t);const i=[],o=[];let a=0;for(const t of e)i[a]=n?n(t,a):a,o[a]=r(t,a),a++;return{values:o,keys:i}}render(e,t,r){return this.ht(e,t,r).values}update(e,[t,r,n]){var i;const o=e._$AH,{values:a,keys:s}=this.ht(t,r,n);if(!Array.isArray(o))return this.ut=s,a;const l=null!==(i=this.ut)&&void 0!==i?i:this.ut=[],c=[];let u,d,p=0,h=o.length-1,m=0,g=a.length-1;for(;p<=h&&m<=g;)if(null===o[p])p++;else if(null===o[h])h--;else if(l[p]===s[m])c[m]=mr(o[p],a[m]),p++,m++;else if(l[h]===s[g])c[g]=mr(o[h],a[g]),h--,g--;else if(l[p]===s[g])c[g]=mr(o[p],a[g]),hr(e,c[g+1],o[p]),p++,g--;else if(l[h]===s[m])c[m]=mr(o[h],a[m]),hr(e,o[p],o[h]),h--,m++;else if(void 0===u&&(u=qr(s,m,g),d=qr(l,p,h)),u.has(l[p]))if(u.has(l[h])){const t=d.get(s[m]),r=void 0!==t?o[t]:null;if(null===r){const t=hr(e,o[p]);mr(t,a[m]),c[m]=t}else c[m]=mr(r,a[m]),hr(e,o[p],r),o[t]=null;m++}else fr(o[h]),h--;else fr(o[p]),p++;for(;m<=g;){const t=hr(e,c[g+1]);mr(t,a[m]),c[m++]=t}for(;p<=h;){const e=o[p++];null!==e&&fr(e)}return this.ut=s,((e,t=gr)=>{e._$AH=t})(e,c),L}});var Wr=function(e,t,r,n){var i,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(a=(o<3?i(a):o>3?i(t,r,a):i(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};let Yr=class extends ie{get rootName(){switch(this.view){case Dt.mutant:return"All files";case Dt.test:return"All tests"}}render(){return R`<nav class="my-6 flex rounded-md border border-gray-200 bg-primary-100 px-5 py-3 text-gray-700" aria-label="Breadcrumb">
<ol class="inline-flex items-center">
${this.path&&this.path.length>0?this.renderLink(this.rootName,[]):this.renderActiveItem(this.rootName)}
${this.renderBreadcrumbItems()}
</ol>
</nav> `}renderBreadcrumbItems(){if(this.path){const e=this.path;return Vr(e,(e=>e),((t,r)=>r===e.length-1?this.renderActiveItem(t):this.renderLink(t,e.slice(0,r+1))))}}renderActiveItem(e){return R`<li aria-current="page">
<span class="ml-1 text-sm font-medium text-gray-800 md:ml-2">${e}</span>
</li> `}renderLink(e,t){return R`<li class="after:text-gray-800 after:content-['/'] md:after:pl-1">
<a
href="${ir(this.view,...t)}"
class="ml-1 text-sm font-medium text-primary-800 underline hover:text-gray-900 hover:underline md:ml-2"
>${e}</a
>
</li>`}};Yr.styles=[fe],Wr([le()],Yr.prototype,"path",void 0),Wr([le()],Yr.prototype,"view",void 0),Yr=Wr([ae("mte-breadcrumb")],Yr);var Gr=r(1276),Qr=function(e,t,r,n){var i,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(a=(o<3?i(a):o>3?i(t,r,a):i(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};let Jr=class extends ie{constructor(){super(...arguments),this.next=e=>{e.stopPropagation(),this.dispatchEvent(Ut("next",void 0,{bubbles:!0,composed:!0}))},this.previous=e=>{e.stopPropagation(),this.dispatchEvent(Ut("previous",void 0,{bubbles:!0,composed:!0}))}}updated(e){e.has("filters")&&this.dispatchFiltersChangedEvent()}checkboxChanged(e,t){e.enabled=t,this.dispatchFiltersChangedEvent()}dispatchFiltersChangedEvent(){this.dispatchEvent(Ut("filters-changed",this.filters.filter((({enabled:e})=>e)).map((({status:e})=>e))))}render(){return R`
<div class="sticky top-offset z-10 my-1 flex flex-row bg-white py-4">
<div class="mr-3">
<button title="Previous" @click=${this.previous} type="button" class="step-button">
<svg aria-hidden="true" class="h-4 w-4 rotate-180" fill="white" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
<path
fill-rule="evenodd"
d="M10.293 3.293a1 1 0 011.414 0l6 6a1 1 0 010 1.414l-6 6a1 1 0 01-1.414-1.414L14.586 11H3a1 1 0 110-2h11.586l-4.293-4.293a1 1 0 010-1.414z"
clip-rule="evenodd"
></path>
</svg>
<span class="sr-only">Select previous mutant</span>
</button>
<button title="Next" @click=${this.next} type="button" class="step-button">
<svg aria-hidden="true" class="h-4 w-4" fill="white" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
<path
fill-rule="evenodd"
d="M10.293 3.293a1 1 0 011.414 0l6 6a1 1 0 010 1.414l-6 6a1 1 0 01-1.414-1.414L14.586 11H3a1 1 0 110-2h11.586l-4.293-4.293a1 1 0 010-1.414z"
clip-rule="evenodd"
></path>
</svg>
<span class="sr-only">Select next mutant</span>
</button>
</div>
${Qt(this.filters?.length,Vr(this.filters,(e=>e.status),(e=>R`
<div class="mr-4 flex items-center" data-status="${e.status}">
<input
?checked="${e.enabled}"
id="filter-${e.status}"
aria-describedby="status-description"
type="checkbox"
value="${e.status}"
@input="${t=>this.checkboxChanged(e,t.target.checked)}"
class="h-5 w-5 rounded border-gray-300 bg-gray-100 text-primary-on !ring-offset-gray-200 focus:outline-none focus:ring-2 focus:ring-primary-500"
/>
<label
for="filter-${e.status}"
class="${this.bgForContext(e.context)} mx-2 rounded px-2.5 py-0.5 text-sm font-medium hover:cursor-pointer"
>
${e.label} (${e.count})
</label>
</div>
`)))}
</div>
`}bgForContext(e){switch(e){case"success":return"bg-green-100 text-green-800";case"warning":return"bg-yellow-100 text-yellow-800";case"danger":return"bg-red-100 text-red-800";case"caution":return"bg-orange-100 text-orange-800";default:return"bg-gray-100 text-gray-800"}}};Jr.styles=[fe,a(Gr.Z)],Qr([le({type:Array})],Jr.prototype,"filters",void 0),Jr=Qr([ae("mte-state-filter")],Jr);var Xr=r(4835),en=function(e,t,r,n){var i,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(a=(o<3?i(a):o>3?i(t,r,a):i(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};let tn=class extends ie{constructor(){super(...arguments),this.dispatchThemeChangedEvent=e=>{const t=e.target.checked;this.dispatchEvent(Ut("theme-switch",t?"dark":"light"))}}render(){return R`
<div class="check-box-container" @click="${e=>e.stopPropagation()}">
<input type="checkbox" @click="${this.dispatchThemeChangedEvent}" ?checked="${"dark"==this.theme}" id="darkTheme" />
<label for="darkTheme">Dark</label>
</div>
`}};tn.styles=[fe,a(Xr.Z)],en([le()],tn.prototype,"theme",void 0),tn=en([ae("mte-theme-switch")],tn);const rn=({hasDetail:e,mode:t},r)=>R`<mte-drawer
class="container fixed bottom-0 z-10 overflow-hidden rounded-t-3xl bg-gray-200/60 shadow-xl backdrop-blur-lg motion-safe:transition-[height,max-width] motion-safe:duration-200"
?hasDetail=${e}
.mode="${t}"
>
${r}
</mte-drawer>`;var nn=function(e,t,r,n){var i,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(a=(o<3?i(a):o>3?i(t,r,a):i(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};const on=e=>`${e.name}${e.sourceFile&&e.location?` (${ar(e)})`:""}`;let an=class extends ie{constructor(){super(...arguments),this.mode="closed"}render(){return rn({hasDetail:Boolean(this.mutant?.killedByTests?.length||this.mutant?.coveredByTests?.length),mode:this.mode},Jt(this.mutant,(e=>R`
<span class="align-middle text-lg" slot="header"
>${rr(e.status)} ${e.mutatorName} ${e.status}
(${e.location.start.line}:${e.location.start.column})</span
>
<span slot="summary">${this.renderSummary()}</span>
<span slot="detail" class="block">${this.renderDetail()}</span>
`)))}renderSummary(){return qt(R`${this.mutant?.killedByTests?.[0]?Kt(R`${Vt("🎯","killed")} Killed by:
${this.mutant.killedByTests?.[0].name}${this.mutant.killedByTests.length>1?`(and ${this.mutant.killedByTests.length-1} more)`:""}`):D}
${Qt(this.mutant?.static,Kt(R`${Vt("🗿","static")} Static mutant`))}
${Jt(this.mutant?.coveredByTests,(e=>Kt(R`${Vt("☂️","umbrella")} Covered by ${e.length}
test${or(e)}${this.mutant?.status===It.MutantStatus.Survived?" (yet still survived)":""}`)))}
${Qt(this.mutant?.statusReason?.trim(),Kt(R`${Vt("🕵️","spy")} ${this.mutant.statusReason}`,`Reason for the ${this.mutant.status} status`))}
${Jt(this.mutant?.description,(e=>Kt(R`${Vt("📖","book")} ${e}`)))}`)}renderDetail(){return R`<ul class="mb-6 mr-12">
${this.mutant?.killedByTests?.map((e=>Zt("This mutant was killed by this test",R`${Vt("🎯","killed")} ${on(e)}`)))}
${this.mutant?.coveredByTests?.filter((e=>!this.mutant?.killedByTests?.includes(e))).map((e=>Zt("This mutant was covered by this test",R`${Vt("☂️","umbrella")} ${on(e)}`)))}
</ul>`}};an.styles=[fe],nn([le()],an.prototype,"mutant",void 0),nn([le({reflect:!0})],an.prototype,"mode",void 0),an=nn([ae("mte-drawer-mutant")],an);var sn=r(3813),ln=function(e,t,r,n){var i,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(a=(o<3?i(a):o>3?i(t,r,a):i(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};let cn=class extends ie{constructor(){super(...arguments),this.drawerMode="closed",this.handleClick=()=>{this.drawerMode="closed"},this.handleMutantSelected=e=>{this.selectedMutant=e.detail.mutant,this.drawerMode=e.detail.selected?"half":"closed"}}updated(e){e.has("result")&&!this.result.file&&(this.drawerMode="closed")}render(){return R`
<main @click="${this.handleClick}">
<mte-metrics-table .columns="${un}" .currentPath="${this.path}" .thresholds="${this.thresholds}" .model="${this.result}">
</mte-metrics-table>
${this.result.file?R`<mte-file @mutant-selected="${this.handleMutantSelected}" .model="${this.result.file}"></mte-file>`:D}
</main>
<mte-drawer-mutant .mode="${this.drawerMode}" .mutant="${this.selectedMutant}"></mte-drawer-mutant>
`}};cn.styles=[a(sn.Z),fe],ln([le()],cn.prototype,"drawerMode",void 0),ln([le()],cn.prototype,"selectedMutant",void 0),ln([le()],cn.prototype,"result",void 0),ln([le({attribute:!1,reflect:!1})],cn.prototype,"thresholds",void 0),ln([le({attribute:!1,reflect:!1})],cn.prototype,"path",void 0),cn=ln([ae("mte-mutant-view")],cn);const un=[{key:"mutationScore",label:"Mutation score",tooltip:"The percentage of mutants that were detected. The higher, the better!",category:"percentage"},{key:"killed",label:"Killed",tooltip:"At least one test failed while these mutants were active. This is what you want!",category:"number"},{key:"survived",label:"Survived",tooltip:"All tests passed while these mutants were active. You're missing a test for them.",category:"number"},{key:"timeout",label:"Timeout",tooltip:"Running the tests while these mutants were active resulted in a timeout. For example, an infinite loop.",category:"number"},{key:"noCoverage",label:"No coverage",tooltip:"These mutants aren't covered by one of your tests and survived as a result.",category:"number"},{key:"ignored",label:"Ignored",tooltip:"These mutants weren't tested because they are ignored. Either by user action, or for another reason.",category:"number"},{key:"runtimeErrors",label:"Runtime errors",tooltip:"Running tests when these mutants are active resulted in an error (rather than a failed test). For example: an out of memory error.",category:"number"},{key:"compileErrors",label:"Compile errors",tooltip:"Mutants that caused a compile error.",category:"number"},{key:"totalDetected",label:"Detected",tooltip:"The number of mutants detected by your tests (killed + timeout).",category:"number",width:"large",isBold:!0},{key:"totalUndetected",label:"Undetected",tooltip:"The number of mutants that are not detected by your tests (survived + no coverage).",category:"number",width:"large",isBold:!0},{key:"totalMutants",label:"Total",tooltip:"All mutants (valid + invalid + ignored)",category:"number",width:"large",isBold:!0}];var dn=r(9827),pn=function(e,t,r,n){var i,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(a=(o<3?i(a):o>3?i(t,r,a):i(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};let hn=class extends ie{constructor(){super(...arguments),this.drawerMode="closed",this.handleClick=()=>{this.drawerMode="closed"},this.handleTestSelected=e=>{this.selectedTest=e.detail.test,this.drawerMode=e.detail.selected?"half":"closed"}}updated(e){e.has("result")&&!this.result.file&&(this.drawerMode="closed")}render(){return R`
<main @click="${this.handleClick}">
<mte-metrics-table .columns="${mn}" .currentPath="${this.path}" .model="${this.result}"> </mte-metrics-table>
${this.result.file?R`<mte-test-file @test-selected="${this.handleTestSelected}" .model="${this.result.file}"></mte-test-file>`:D}
</main>
<mte-drawer-test .mode="${this.drawerMode}" .test="${this.selectedTest}"></mte-drawer-test>
`}};hn.styles=[a(dn.Z),fe],pn([le()],hn.prototype,"drawerMode",void 0),pn([le()],hn.prototype,"result",void 0),pn([le({attribute:!1,reflect:!1})],hn.prototype,"path",void 0),pn([le()],hn.prototype,"selectedTest",void 0),hn=pn([ae("mte-test-view")],hn);const mn=[{key:"killing",label:"Killing",tooltip:"These tests killed at least one mutant",width:"normal",category:"number"},{key:"covering",label:"Covering",tooltip:"These tests are covering at least one mutant, but not killing any of them.",width:"normal",category:"number"},{key:"notCovering",label:"Not Covering",tooltip:"These tests were not covering a mutant (and thus not killing any of them).",width:"normal",category:"number"},{key:"total",label:"Total tests",width:"large",category:"number",isBold:!0}],gn=br(class extends vr{constructor(e){var t;if(super(e),1!==e.type||"class"!==e.name||(null===(t=e.strings)||void 0===t?void 0:t.length)>2)throw Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.")}render(e){return" "+Object.keys(e).filter((t=>e[t])).join(" ")+" "}update(e,[t]){var r,n;if(void 0===this.nt){this.nt=new Set,void 0!==e.strings&&(this.st=new Set(e.strings.join(" ").split(/\s/).filter((e=>""!==e))));for(const e in t)t[e]&&!(null===(r=this.st)||void 0===r?void 0:r.has(e))&&this.nt.add(e);return this.render(t)}const i=e.element.classList;this.nt.forEach((e=>{e in t||(i.remove(e),this.nt.delete(e))}));for(const e in t){const r=!!t[e];r===this.nt.has(e)||(null===(n=this.st)||void 0===n?void 0:n.has(e))||(r?(i.add(e),this.nt.add(e)):(i.remove(e),this.nt.delete(e)))}return L}});var fn=function(e,t,r,n){var i,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(a=(o<3?i(a):o>3?i(t,r,a):i(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};let bn=class extends ie{constructor(){super(...arguments),this.currentPath=[],this.thresholds={high:80,low:60},this.hasMultipleColspan=!1}willUpdate(e){e.has("columns")&&(this.hasMultipleColspan=this.columns.some((e=>"percentage"===e.category)))}render(){return R`${this.model?R`<div class="overflow-x-auto rounded-md border border-gray-200">
<table class="w-full table-auto text-left text-sm">${this.renderTableHeadRow()}${this.renderTableBody(this.model)} </table>
</div>`:D}`}renderTableHeadRow(){return R`<thead class="border-b border-gray-200 text-center text-sm">
<tr>
<th scope="col" class="py-4 px-4">
<div class="flex items-center justify-around">
<span>File / Directory</span
><a
href="https://stryker-mutator.io/docs/mutation-testing-elements/mutant-states-and-metrics"
target="_blank"
class="info-icon float-right"
title="What does this all mean?"
>${Vt("ℹ","info icon")}</a
>
</div>
</th>
${Vr(this.columns,(e=>e.key),(e=>this.renderTableHead(e)))}
</tr>
</thead>`}renderTableHead(e){const t=`tooltip-${e.key.toString()}`,r=e.tooltip?R`<mte-tooltip title="${e.tooltip}" id="${t}">${e.label}</mte-tooltip>`:R`<span id="${t}">${e.label}</span>`;return"percentage"===e.category?R` <th colspan="2" class="px-2 even:bg-gray-100"> ${r} </th>`:R`<th class="w-24 px-2 even:bg-gray-100 2xl:w-28">
<div class="inline-block">${r}</div>
</th>`}renderTableBody(e){return R`<tbody class="divide-y divide-gray-200">${this.renderRow(e.name,e)} ${(()=>e.file?D:e.childResults.map((e=>{const t=[e.name];for(;!e.file&&1===e.childResults.length;)e=e.childResults[0],t.push(e.name);return this.renderRow(t.join("/"),e,...this.currentPath,...t)})))()}</tbody>`}renderRow(e,t,...r){return R`<tr title="${t.name}" class="group hover:bg-gray-200">
<td class="font-semibold">
<div class="flex items-center justify-start">
<mte-file-icon file-name="${t.name}" ?file="${t.file}" class="mx-1"></mte-file-icon> ${r.length>0?R`<a class="mr-auto inline-block w-full py-4 pr-2 hover:text-primary-on hover:underline" href="${ir(...r)}"
>${e}</a
>`:R`<span class="py-4">${t.name}</span>`}
</div>
</td>
${this.columns.map((e=>this.renderCell(e,t.metrics)))}
</tr>`}renderCell(e,t){const r=t[e.key],n=this.hasMultipleColspan?"odd:bg-gray-100":"even:bg-gray-100";if("percentage"===e.category){const t=!isNaN(r),i=this.determineBgColoringClass(r),o=this.determineTextColoringClass(r),a=r.toFixed(2),s=`width: ${r}%`;return R`<td class="bg-gray-100 py-4 px-4 group-hover:bg-gray-200">
${t?R`<div class="h-3 w-full min-w-[24px] rounded-full bg-gray-300">
<div
class="${i} h-3 rounded-full pl-1 transition-width"
role="progressbar"
aria-valuenow="${a}"
aria-valuemin="0"
aria-valuemax="100"
aria-describedby="tooltip-mutationScore"
title="${e.label}"
style="${s}"
></div>
</div>`:R` <span class="text-light-muted font-bold">N/A</span> `}
</td>
<td class="${o} ${n} w-12 pr-2 text-center font-bold group-hover:bg-gray-200"
>${t?a:D}</td
>`}return R`<td
class="${gn({"font-bold":e.isBold??!1,[n]:!0})} py-4 text-center group-hover:bg-gray-200"
aria-describedby="${`tooltip-${e.key.toString()}`}"
>${r}</td
>`}determineBgColoringClass(e){return!isNaN(e)&&this.thresholds?e<this.thresholds.low?"bg-red-600 text-gray-200":e<this.thresholds.high?"bg-yellow-400":"bg-green-600 text-gray-200":"bg-blue-600"}determineTextColoringClass(e){return!isNaN(e)&&this.thresholds?e<this.thresholds.low?"text-red-700":e<this.thresholds.high?"text-yellow-600":"text-green-700":""}};bn.styles=[fe],fn([le()],bn.prototype,"model",void 0),fn([le()],bn.prototype,"currentPath",void 0),fn([le({type:Array})],bn.prototype,"columns",void 0),fn([le()],bn.prototype,"thresholds",void 0),bn=fn([ae("mte-metrics-table")],bn);var vn=r(5110),yn=function(e,t,r,n){var i,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(a=(o<3?i(a):o>3?i(t,r,a):i(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};let wn=class extends ie{constructor(){super(...arguments),this.filters=[],this.lines=[],this.enabledStates=[],this.tests=[],this.filtersChanged=e=>{this.enabledStates=e.detail,this.selectedTest&&!this.enabledStates.includes(this.selectedTest.status)&&this.toggleTest(this.selectedTest)},this.nextTest=()=>{const e=this.selectedTest?(this.tests.findIndex((({id:e})=>e===this.selectedTest.id))+1)%this.tests.length:0;this.selectTest(this.tests[e])},this.previousTest=()=>{const e=this.selectedTest?(this.tests.findIndex((({id:e})=>e===this.selectedTest.id))+this.tests.length-1)%this.tests.length:this.tests.length-1;this.selectTest(this.tests[e])}}toggleTest(e){this.selectedTest===e?(this.selectedTest=void 0,this.dispatchEvent(Ut("test-selected",{selected:!1,test:e}))):(this.selectedTest=e,this.dispatchEvent(Ut("test-selected",{selected:!0,test:e})),sr(this.shadowRoot.querySelector(`[test-id="${e.id}"]`)))}selectTest(e){e&&this.toggleTest(e)}render(){return R`
<mte-state-filter
@next=${this.nextTest}
@previous=${this.previousTest}
.filters="${this.filters}"
@filters-changed="${this.filtersChanged}"
></mte-state-filter>
${this.renderTestList()} ${this.renderCode()}
`}renderTestList(){const e=this.tests.filter((e=>!e.location));return e.length?R`<ul class="max-w-6xl">
${Vr(e,(e=>e.id),(e=>R`<li class="my-3">
<button
class="w-full rounded p-3 text-left hover:bg-gray-100 active:bg-gray-200"
type="button"
data-active="${this.selectedTest===e}"
test-id="${e.id}"
@click=${t=>{t.stopPropagation(),this.toggleTest(e)}}
>${tr(e.status)} ${e.name} [${e.status}]
</button>
</li>`))}
</ul>`:D}renderCode(){if(this.model?.source){const e=new Map;for(const t of this.tests)if(t.location){let r=e.get(t.location.start.line);r||(r=[],e.set(t.location.start.line,r)),r.push(t)}const t=t=>this.renderTestDots([...e.entries()].filter((([e])=>e>t)).flatMap((([,e])=>e)));return R`<pre id="report-code-block" class="line-numbers flex rounded-md p-1"><code class="flex language-${Tr(this.model.name)}">
<table>
${this.lines.map(((r,n)=>{const i=n+1;return Dr(r,Lr(this.renderTestDots(e.get(i)),this.lines.length===i?t(i):D))}))}</table></code></pre>`}return D}renderTestDots(e){return e?.length?e.map((e=>B`<svg test-id="${e.id}" class="cursor-pointer test-dot ${this.selectedTest===e?"selected":e.status}" @click=${t=>{t.stopPropagation(),this.toggleTest(e)}} height="10" width="12">
<title>${function(e){return`${e.name} (${e.status})`}(e)}</title>
<circle cx="5" cy="5" r="5" />
</svg>`)):D}willUpdate(e){if(e.has("model")&&this.model){const e=this.model;this.filters=[de.ih.Killing,de.ih.Covering,de.ih.NotCovering].filter((t=>e.tests.some((e=>e.status===t)))).map((t=>({enabled:!0,count:e.tests.filter((e=>e.status===t)).length,status:t,label:R`${tr(t)} ${t}`,context:er(t)}))),this.model.source&&(this.lines=Fr(jr(this.model.source,this.model.name)))}(e.has("model")||e.has("enabledStates"))&&this.model&&(this.tests=this.model.tests.filter((e=>this.enabledStates.includes(e.status))).sort(((e,t)=>e.location&&t.location?Or(e.location.start,t.location.start)?1:-1:this.model.tests.indexOf(e)-this.model.tests.indexOf(t)))),super.update(e)}};wn.styles=[be,fe,a(vn.Z)],yn([le()],wn.prototype,"model",void 0),yn([ce()],wn.prototype,"filters",void 0),yn([ce()],wn.prototype,"lines",void 0),yn([ce()],wn.prototype,"enabledStates",void 0),yn([ce()],wn.prototype,"selectedTest",void 0),yn([ce()],wn.prototype,"tests",void 0),wn=yn([ae("mte-test-file")],wn);var xn=function(e,t,r,n){var i,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(a=(o<3?i(a):o>3?i(t,r,a):i(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};const kn=e=>R`<code>${e.getMutatedLines()}</code> (${ar(e)})`;let $n=class extends ie{constructor(){super(...arguments),this.mode="closed"}render(){return rn({hasDetail:Boolean(this.test?.killedMutants?.length||this.test?.coveredMutants?.length),mode:this.mode},Jt(this.test,(e=>R`
<span class="align-middle text-lg" slot="header"
>${tr(e.status)} ${e.name} [${e.status}]
${e.location?R`(${e.location.start.line}:${e.location.start.column})`:D}</span
>
<span slot="summary">${this.renderSummary()}</span>
<span class="block" slot="detail">${this.renderDetail()}</span>
`)))}renderSummary(){return qt(R`${this.test?.killedMutants?.[0]?Kt(R`${Vt("🎯","killed")} Killed:
${kn(this.test.killedMutants?.[0])}${this.test.killedMutants.length>1?R` (and ${this.test.killedMutants.length-1} more)`:""}`):D}
${Jt(this.test?.coveredMutants,(e=>Kt(R`${Vt("☂️","umbrella")} Covered ${e.length}
mutant${or(e)}${this.test?.status===de.ih.Covering?" (yet didn't kill any of them)":""}`)))}`)}renderDetail(){return R`<ul class="mb-6 mr-12">
${this.test?.killedMutants?.map((e=>Zt("This test killed this mutant",R`${Vt("🎯","killed")} ${kn(e)}`)))}
${this.test?.coveredMutants?.filter((e=>!this.test?.killedMutants?.includes(e))).map((e=>Zt("This test covered this mutant",R`${Vt("☂️","umbrella")} ${kn(e)}`)))}
</ul>`}};$n.styles=[fe],xn([le()],$n.prototype,"test",void 0),xn([le({reflect:!0})],$n.prototype,"mode",void 0),$n=xn([ae("mte-drawer-test")],$n);var Sn=r(8847),_n=function(e,t,r,n){var i,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(a=(o<3?i(a):o>3?i(t,r,a):i(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};let An=class extends ie{get language(){return Tr(this.fileName)}get isTestFile(){const e=this.fileName.substr(0,this.fileName.lastIndexOf(".")).toLowerCase();return e.endsWith("spec")||e.endsWith("test")}get cssClass(){return gn({[this.language?.toString()??"unknown"]:this.isFile,test:this.isTestFile})}render(){if(!this.isFile)return B`<svg aria-label="directory" class="octicon octicon-file-directory" viewBox="0 0 14 16" version="1.1" width="14" height="16" role="img"><path fill-rule="evenodd" d="M 13,2 H 7 V 1 C 7,0.34 6.69,0 6,0 H 1 C 0.45,0 0,0.45 0,1 v 10 c 0,0.55 0.45,1 1,1 h 12 c 0.55,0 1,-0.45 1,-1 V 3 C 14,2.45 13.55,2 13,2 Z M 6,2 H 1 V 1 h 5 z" id="path2" /></svg>`;if(!this.language)return B`<svg aria-label="file" class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" role="img"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"></path></svg>`;switch(this.language){case Er.csharp:return B`<svg class="${this.cssClass}" aria-label="cs" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><g><path d="M7.1 15.9c0-1.3.2-2.4.6-3.4.4-1 .9-1.8 1.6-2.5.7-.7 1.5-1.2 2.4-1.6s1.9-.5 2.9-.5 1.9.2 2.7.6c.8.4 1.5.9 2 1.4l-2.2 2.5c-.4-.3-.7-.6-1.1-.7-.4-.1-.8-.3-1.4-.3-.5 0-.9.1-1.3.3-.4.2-.8.5-1.1.9s-.5.8-.7 1.4c-.2.6-.3 1.2-.3 1.9 0 1.5.3 2.6 1 3.3.7.8 1.5 1.2 2.6 1.2.5 0 1-.1 1.4-.3.4-.2.8-.5 1.1-.9l2.2 2.5c-.7.8-1.4 1.3-2.2 1.7-.8.4-1.7.6-2.7.6s-2-.2-2.9-.5-1.7-.8-2.4-1.5-1.1-1.7-1.5-2.7c-.5-.9-.7-2.1-.7-3.4z"/><path d="M21.8 17.1h-1l-.4 2.4h-1.2l.4-2.4h-1.2V16h1.5l.2-1.6h-1.3v-1.1h1.5l.4-2.4h1.2l-.4 2.4h1l.4-2.4h1.2l-.4 2.4H25v1.1h-1.6l-.2 1.6h1.3v1.1h-1.6l-.4 2.4h-1.2c0 .1.5-2.4.5-2.4zm-.8-1h1l.2-1.6h-1l-.2 1.6z"/></g></svg>`;case Er.html:return B`<svg class="${this.cssClass}" aria-label="html" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="M8 15l6-5.6V12l-4.5 4 4.5 4v2.6L8 17v-2zm16 2.1l-6 5.6V20l4.6-4-4.6-4V9.3l6 5.6v2.2z"/></svg>`;case Er.java:return B`<svg class="${this.cssClass}" aria-label="java" xmlns="http://www.w3.org/2000/svg" viewBox="-4 -4 20 20"><path class="cls-1" d="M6 0a6 6 0 1 0 6 6 6 6 0 0 0-6-6zm2.14 6.8a2.16 2.16 0 0 1-2.29 2.41 2.5 2.5 0 0 1-2-.87l.73-.92a1.52 1.52 0 0 0 1.23.59c.66 0 1.06-.42 1.06-1.32V2.8h1.26z"/></svg>`;case Er.javascript:return B`<svg class="${this.cssClass}" aria-label="js" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="M11.4 10h2.7v7.6c0 3.4-1.6 4.6-4.3 4.6-.6 0-1.5-.1-2-.3l.3-2.2c.4.2.9.3 1.4.3 1.1 0 1.9-.5 1.9-2.4V10zm5.1 9.2c.7.4 1.9.8 3 .8 1.3 0 1.9-.5 1.9-1.3s-.6-1.2-2-1.7c-2-.7-3.3-1.8-3.3-3.6 0-2.1 1.7-3.6 4.6-3.6 1.4 0 2.4.3 3.1.6l-.6 2.2c-.5-.2-1.3-.6-2.5-.6s-1.8.5-1.8 1.2c0 .8.7 1.1 2.2 1.7 2.1.8 3.1 1.9 3.1 3.6 0 2-1.6 3.7-4.9 3.7-1.4 0-2.7-.4-3.4-.7l.6-2.3z"/></svg>`;case Er.typescript:return B`<svg class="${this.cssClass}" aria-label="ts" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="M15.6 11.8h-3.4V22H9.7V11.8H6.3V10h9.2v1.8zm7.7 7.1c0-.5-.2-.8-.5-1.1-.3-.3-.9-.5-1.7-.8-1.4-.4-2.5-.9-3.3-1.5-.7-.6-1.1-1.3-1.1-2.3 0-1 .4-1.8 1.3-2.4.8-.6 1.9-.9 3.2-.9 1.3 0 2.4.4 3.2 1.1.8.7 1.2 1.6 1.2 2.6h-2.3c0-.6-.2-1-.6-1.4-.4-.3-.9-.5-1.6-.5-.6 0-1.1.1-1.5.4-.4.3-.5.7-.5 1.1 0 .4.2.7.6 1 .4.3 1 .5 2 .8 1.3.4 2.3.9 3 1.5.7.6 1 1.4 1 2.4s-.4 1.9-1.2 2.4c-.8.6-1.9.9-3.2.9-1.3 0-2.5-.3-3.4-1s-1.5-1.6-1.4-2.9h2.4c0 .7.2 1.2.7 1.6.4.3 1.1.5 1.8.5s1.2-.1 1.5-.4c.2-.3.4-.7.4-1.1z"/></svg>`;case Er.scala:return B`<svg class="${this.cssClass}" aria-label="scala" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="M21.6 7v4.2c-.1.1-.1.2-.2.2-.3.3-.7.5-1.1.6-.9.3-1.9.5-2.8.7-1.6.3-3.1.5-4.7.7-.8.1-1.6.2-2.4.4V9.6c.1-.1.2-.1.4-.1 1.2-.2 2.5-.4 3.8-.5 1.9-.3 3.8-.5 5.6-1.1.5-.2 1.1-.4 1.4-.9zm0 5.6v4.2l-.2.2c-.5.4-1.1.6-1.6.8-.8.2-1.6.4-2.4.5-1 .2-1.9.3-2.9.5-1.4.2-2.7.3-4.1.6v-4.2c.1-.1.2-.1.3-.1 1.7-.2 3.4-.5 5.1-.7 1.4-.2 2.9-.5 4.3-.9.6-.2 1.1-.4 1.5-.9zM10.5 25h-.1v-4.2c.1-.1.2-.1.3-.1 1.2-.2 2.3-.3 3.5-.5 2-.3 3.9-.5 5.8-1.1.6-.2 1.2-.4 1.6-.9v4.2c-.1.2-.3.3-.5.5-.6.3-1.2.5-1.9.7-1.2.3-2.5.5-3.7.7-1.3.2-2.6.4-3.9.5-.4 0-.7.1-1.1.2z"/></svg>`;case Er.php:return B`<svg class="${this.cssClass}" aria-label="php" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="M12.7 19.7c-.1-.6-.4-1.1-1-1.3-.2-.1-.5-.3-.7-.4-.3-.1-.6-.2-.8-.3-.2-.1-.4 0-.6.2-.1.2 0 .4.1.5.1.2.2.3.4.5.2.3.4.5.7.8.2.3.4.5.3.9-.1.7-.4 1.4-.9 1.9-.1.1-.2.1-.2.1-.3 0-.7-.2-.9-.4-.3-.3-.2-.6.1-.8.1 0 .2-.1.2-.2.2-.2.3-.4.2-.7-.1-.1-.1-.2-.2-.3-.4-.4-.9-.8-1.4-1.2-1.3-1-1.9-2.2-2-3.6-.1-1.6.3-3.1 1.1-4.5.3-.5.7-1 1.3-1.3.4-.2.8-.3 1.2-.4 1.1-.3 2.3-.5 3.5-.3 1 .2 1.8.7 2.1 1.7.2.7.3 1.3.2 2-.1 1.4-1.2 2.6-2.5 3-.6.2-.9.1-1.2-.4-.2-.3-.5-.7-.7-1.1V14c0-.1-.1-.1-.1-.2.1.6.2 1.2.5 1.7.2.3.4.5.8.5 1.3.1 2.3-.3 3.1-1.3.8-1.1 1-2.4.8-3.8 0-.3-.1-.5-.2-.8 0-.2 0-.3.2-.4.1 0 .2 0 .2-.1 1-.2 2.1-.3 3.1-.2 1.2.1 2.3.4 3.3 1.1 1.6 1 2.6 2.5 3.1 4.3.1.3.1.5.1.8 0 .2-.1.2-.3.1-.2-.1-.3-.3-.4-.4-.1-.1-.2-.3-.3-.4-.1-.1-.2-.1-.2 0s-.1.2-.1.3c-.3 1-.7 1.9-1.4 2.6-.1.1-.2.3-.2.4 0 .4-.1.8 0 1.2.1.8.2 1.7.3 2.5.1.5-.1.7-.5.9-.3.1-.6.2-1 .2h-1.6c0-.6 0-1.2-.5-1.5.1-.4.2-.8.3-1.3.1-.4 0-.7-.2-1-.2-.3-.5-.3-.8-.2-.8.5-1.6.5-2.5.2-.4-.1-.7-.1-.9.3-.2.4-.3.8-.3 1.2 0 .5.1 1.1.2 1.6 0 .3 0 .4-.3.5-.7.2-1.4.2-2 .1h-.1c0-.6 0-1.2-.7-1.5.4-.4.4-1.1.3-1.7zm-4.1-2.3c.1-.1.2-.2.2-.4.1-.3-.2-.8-.5-.9-.2-.1-.3 0-.4.1-.3.3-.5.6-.8.9 0 .1-.1.1-.1.2-.1.2 0 .4.2.4.1 0 .3 0 .4.1.4 0 .7-.1 1-.4zm0-3.3c0-.2-.2-.4-.4-.4s-.5.2-.4.5c0 .2.2.4.5.4.1-.1.3-.3.3-.5z"/></svg>`;case Er.vue:return B`<svg class="${this.cssClass}" aria-label="vue" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 1000"><path d="M600 495.9l159.1-275.4h-84.4L600 349.7l-74.6-129.2h-84.5z"/><path d="M793.7 220.5L600 555.9 406.3 220.5H277l323 559 323-559z"/></svg>`;case Er.gherkin:return B`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="M16.129,2a12.348,12.348,0,0,0-2.35,24.465V30c7.371-1.114,13.9-6.982,14.384-14.684a12.8,12.8,0,0,0-5.9-11.667c-.223-.132-.449-.262-.682-.377s-.481-.231-.729-.33c-.079-.033-.156-.063-.235-.094-.216-.08-.435-.17-.658-.236A12.188,12.188,0,0,0,16.129,2Z" style="fill:var(--mut-file-gherkin-color)"/><path d="M18.68,6.563a1.345,1.345,0,0,0-1.178.472,5.493,5.493,0,0,0-.518.9,2.9,2.9,0,0,0,.377,3.023A3.317,3.317,0,0,0,19.763,9,2.388,2.388,0,0,0,20,8,1.411,1.411,0,0,0,18.68,6.563Zm-5.488.071A1.441,1.441,0,0,0,11.85,8,2.388,2.388,0,0,0,12.085,9a3.427,3.427,0,0,0,2.473,1.96,3.141,3.141,0,0,0-.212-3.85,1.322,1.322,0,0,0-1.154-.472Zm-3.7,3.637a1.3,1.3,0,0,0-.73,2.338,5.663,5.663,0,0,0,.895.543,3.386,3.386,0,0,0,3.179-.307,3.492,3.492,0,0,0-2.049-2.338,2.69,2.69,0,0,0-1.06-.236,1.369,1.369,0,0,0-.236,0Zm11.611,4.582a3.44,3.44,0,0,0-1.955.567A3.492,3.492,0,0,0,21.2,17.758a2.69,2.69,0,0,0,1.06.236,1.329,1.329,0,0,0,.966-2.362,5.47,5.47,0,0,0-.895-.52,3.247,3.247,0,0,0-1.225-.26Zm-10.292.071a3.247,3.247,0,0,0-1.225.26,2.575,2.575,0,0,0-.895.543A1.34,1.34,0,0,0,9.73,18.065a2.426,2.426,0,0,0,1.06-.236,3.185,3.185,0,0,0,1.955-2.338,3.366,3.366,0,0,0-1.931-.567Zm3.815,2.314a3.317,3.317,0,0,0-2.4,1.96,2.286,2.286,0,0,0-.236.968,1.4,1.4,0,0,0,2.426.992,5.492,5.492,0,0,0,.518-.9,3.109,3.109,0,0,0-.306-3.023Zm2.8.071a3.141,3.141,0,0,0,.212,3.85,1.47,1.47,0,0,0,2.5-.9,2.388,2.388,0,0,0-.236-.992,3.427,3.427,0,0,0-2.473-1.96Z" style="fill:#fff"/></svg>`}}};An.styles=[a(Sn.Z)],_n([le({attribute:"file-name"})],An.prototype,"fileName",void 0),_n([le({attribute:"file",type:Boolean})],An.prototype,"isFile",void 0),An=_n([ae("mte-file-icon")],An);var Mn=function(e,t,r,n){var i,o=arguments.length,a=o<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(a=(o<3?i(a):o>3?i(t,r,a):i(t,r))||a);return o>3&&a&&Object.defineProperty(t,r,a),a};let Cn=class extends ie{render(){return R`<span class="cursor-help underline decoration-dotted" title="${this.title}"><slot></slot></span>`}};Cn.styles=[fe],Mn([le({attribute:!0})],Cn.prototype,"title",void 0),Cn=Mn([ae("mte-tooltip")],Cn)}()}();
</script>
</head>
<body>
<svg style="width: 80px; position:fixed; right:10px; bottom:10px; z-index:10" class="stryker-image" viewBox="0 0 1458 1458" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2"><path fill="none" d="M0 0h1458v1458H0z"/><clipPath id="a"><path d="M0 0h1458v1458H0z"/></clipPath><g clip-path="url(#a)"><path d="M1458 729c0 402.655-326.345 729-729 729S0 1131.655 0 729C0 326.445 326.345 0 729 0s729 326.345 729 729" fill="#e74c3c" fill-rule="nonzero"/><path d="M778.349 1456.15L576.6 1254.401l233-105 85-78.668v-64.332l-257-257-44-187-50-208 251.806-82.793L1076.6 389.401l380.14 379.15c-19.681 367.728-311.914 663.049-678.391 687.599z" fill-opacity=".3"/><path d="M753.4 329.503c41.79 0 74.579 7.83 97.925 25.444 23.571 18.015 41.69 43.956 55.167 77.097l11.662 28.679 165.733-58.183-14.137-32.13c-26.688-60.655-64.896-108.61-114.191-144.011-49.329-35.423-117.458-54.302-204.859-54.302-50.78 0-95.646 7.376-134.767 21.542-40.093 14.671-74.09 34.79-102.239 60.259-28.84 26.207-50.646 57.06-65.496 92.701-14.718 35.052-22.101 72.538-22.101 112.401 0 72.536 20.667 133.294 61.165 182.704 38.624 47.255 98.346 88.037 179.861 121.291 42.257 17.475 78.715 33.125 109.227 46.994 27.193 12.361 49.294 26.124 66.157 41.751 15.309 14.186 26.497 30.584 33.63 49.258 7.721 20.214 11.16 45.69 11.16 76.402 0 28.021-4.251 51.787-13.591 71.219-8.832 18.374-20.171 33.178-34.523 44.219-14.787 11.374-31.193 19.591-49.393 24.466-19.68 5.359-39.14 7.993-58.69 7.993-29.359 0-54.387-3.407-75.182-10.747-20.112-7.013-37.144-16.144-51.259-27.486-13.618-11.009-24.971-23.766-33.744-38.279-9.64-15.8-17.272-31.924-23.032-48.408l-10.965-31.376-161.669 60.585 10.734 30.124c10.191 28.601 24.197 56.228 42.059 82.748 18.208 27.144 41.322 51.369 69.525 72.745 27.695 21.075 60.904 38.218 99.481 51.041 37.777 12.664 82.004 19.159 132.552 19.159 49.998 0 95.818-8.321 137.611-24.622 42.228-16.471 78.436-38.992 108.835-67.291 30.719-28.597 54.631-62.103 71.834-100.642 17.263-38.56 25.923-79.392 25.923-122.248 0-54.339-8.368-100.37-24.208-138.32-16.29-38.759-38.252-71.661-65.948-98.797-26.965-26.418-58.269-48.835-93.858-67.175-33.655-17.241-69.196-33.11-106.593-47.533-35.934-13.429-65.822-26.601-89.948-39.525-22.153-11.868-40.009-24.21-53.547-37.309-11.429-11.13-19.83-23.678-24.718-37.664-5.413-15.49-7.98-33.423-7.98-53.577 0-40.883 11.293-71.522 37.086-90.539 28.443-20.825 64.985-30.658 109.311-30.658z" fill="#f1c40f" fill-rule="nonzero"/><path d="M720 0h18v113h-18zM1458 738v-18h-113v18h113zM720 1345h18v113h-18zM113 738v-18H0v18h113z"/></g></svg>
<mutation-test-report-app titlePostfix="Stryker">
Your browser doesn't support <a href="https://caniuse.com/#search=custom%20elements">custom elements</a>.
Please use a latest version of an evergreen browser (Firefox, Chrome, Safari, Opera, Edge, etc).
</mutation-test-report-app>
<script>
const app = document.querySelector('mutation-test-report-app');
app.report = {"files":{"src/services/weather.ts":{"language":"typescript","mutants":[{"id":"3","mutatorName":"MethodExpression","replacement":"input.replace(/[<"+">'\";&()]/g, '') // Remove dangerous characters\n.trim()","status":"Survived","testsCompleted":11,"location":{"end":{"column":31,"line":12},"start":{"column":16,"line":9}}},{"id":"1","mutatorName":"StringLiteral","replacement":"\"\"","statusReason":"Error: expect(jest.fn()).toHaveBeenNthCalledWith(n, ...expected)\n\nn: 2\nExpected: StringContaining \"https://api.open-meteo.com/v1/forecast\"\nReceived\n 1: \"https://geocoding-api.open-meteo.com/v1/search?name=London&count=1&language=en&format=json\"\n-> 2: \"?latitude=51.5074&longitude=-0.1278&hourly=temperature_2m&models=ukmo_seamless¤t=temperature_2m,apparent_temperature,is_day,rain\"\n\nNumber of calls: 2\n at Object.<"+"anonymous> (/Users/anushkaparthiban/mcp-weather/.stryker-tmp/sandbox1774993/tests/services/weather.test.ts:67:25)","status":"Killed","testsCompleted":11,"killedBy":["0"],"location":{"end":{"column":83,"line":5},"start":{"column":43,"line":5}}},{"id":"0","mutatorName":"StringLiteral","replacement":"\"\"","statusReason":"Error: expect(jest.fn()).toHaveBeenNthCalledWith(n, ...expected)\n\nn: 1\nExpected: \"https://geocoding-api.open-meteo.com/v1/search?name=London&count=1&language=en&format=json\"\nReceived\n-> 1: \"?name=London&count=1&language=en&format=json\"\n 2: \"https://api.open-meteo.com/v1/forecast?latitude=51.5074&longitude=-0.1278&hourly=temperature_2m&models=ukmo_seamless¤t=temperature_2m,apparent_temperature,is_day,rain\"\n\nNumber of calls: 2\n at Object.<"+"anonymous> (/Users/anushkaparthiban/mcp-weather/.stryker-tmp/sandbox1774993/tests/services/weather.test.ts:62:25)","status":"Killed","testsCompleted":11,"killedBy":["0"],"location":{"end":{"column":93,"line":4},"start":{"column":45,"line":4}}},{"id":"2","mutatorName":"BlockStatement","replacement":"{}","statusReason":"Error: expect(jest.fn()).toHaveBeenNthCalledWith(n, ...expected)\n\nn: 1\nExpected: \"https://geocoding-api.open-meteo.com/v1/search?name=London&count=1&language=en&format=json\"\nReceived\n-> 1: \"https://geocoding-api.open-meteo.com/v1/search?name=undefined&count=1&language=en&format=json\"\n 2: \"https://api.open-meteo.com/v1/forecast?latitude=51.5074&longitude=-0.1278&hourly=temperature_2m&models=ukmo_seamless¤t=temperature_2m,apparent_temperature,is_day,rain\"\n\nNumber of calls: 2\n at Object.<"+"anonymous> (/Users/anushkaparthiban/mcp-weather/.stryker-tmp/sandbox1774993/tests/services/weather.test.ts:62:25)","status":"Killed","testsCompleted":11,"killedBy":["0"],"location":{"end":{"column":6,"line":13},"start":{"column":50,"line":7}}},{"id":"4","mutatorName":"MethodExpression","replacement":"input.replace(/[<"+">'\";&()]/g, '') // Remove dangerous characters","status":"Survived","testsCompleted":11,"location":{"end":{"column":20,"line":11},"start":{"column":16,"line":9}}},{"id":"6","mutatorName":"StringLiteral","replacement":"\"Stryker was here!\"","status":"Survived","testsCompleted":11,"location":{"end":{"column":39,"line":10},"start":{"column":37,"line":10}}},{"id":"5","mutatorName":"Regex","replacement":"/[^<"+">'\";&()]/g","statusReason":"SyntaxError: Unexpected token 'E', \"Error: Inv\"... is not valid JSON\n at JSON.parse (<"+"anonymous>)\n at Object.<"+"anonymous> (/Users/anushkaparthiban/mcp-weather/.stryker-tmp/sandbox1774993/tests/services/weather.test.ts:56:32)","status":"Killed","testsCompleted":11,"killedBy":["0"],"location":{"end":{"column":35,"line":10},"start":{"column":22,"line":10}}},{"id":"7","mutatorName":"BlockStatement","replacement":"{}","statusReason":"SyntaxError: \"undefined\" is not valid JSON\n at JSON.parse (<"+"anonymous>)\n at Object.<"+"anonymous> (/Users/anushkaparthiban/mcp-weather/.stryker-tmp/sandbox1774993/tests/services/weather.test.ts:56:32)","status":"Killed","testsCompleted":11,"killedBy":["0"],"location":{"end":{"column":6,"line":59},"start":{"column":60,"line":15}}},{"id":"10","mutatorName":"ConditionalExpression","replacement":"false","statusReason":"Error: expect(received).toContain(expected) // indexOf\n\nExpected substring: \"Error: City name cannot be empty\"\nReceived string: \"Error: Invalid city name provided\"\n at Object.<"+"anonymous> (/Users/anushkaparthiban/mcp-weather/.stryker-tmp/sandbox1774993/tests/services/weather.test.ts:141:22)","status":"Killed","testsCompleted":11,"killedBy":["5"],"location":{"end":{"column":56,"line":18},"start":{"column":17,"line":18}}},{"id":"12","mutatorName":"BooleanLiteral","replacement":"input.city","statusReason":"SyntaxError: Unexpected token 'E', \"Error: Cit\"... is not valid JSON\n at JSON.parse (<"+"anonymous>)\n at Object.<"+"anonymous> (/Users/anushkaparthiban/mcp-weather/.stryker-tmp/sandbox1774993/tests/services/weather.test.ts:56:32)","status":"Killed","testsCompleted":11,"killedBy":["0"],"location":{"end":{"column":28,"line":18},"start":{"column":17,"line":18}}},{"id":"11","mutatorName":"LogicalOperator","replacement":"!input.city && input.city.trim() === ''","status":"Survived","testsCompleted":11,"location":{"end":{"column":56,"line":18},"start":{"column":17,"line":18}}},{"id":"13","mutatorName":"ConditionalExpression","replacement":"false","status":"Survived","testsCompleted":11,"location":{"end":{"column":56,"line":18},"start":{"column":32,"line":18}}},{"id":"14","mutatorName":"EqualityOperator","replacement":"input.city.trim() !== ''","statusReason":"SyntaxError: Unexpected token 'E', \"Error: Cit\"... is not valid JSON\n at JSON.parse (<"+"anonymous>)\n at Object.<"+"anonymous> (/Users/anushkaparthiban/mcp-weather/.stryker-tmp/sandbox1774993/tests/services/weather.test.ts:56:32)","status":"Killed","testsCompleted":11,"killedBy":["0"],"location":{"end":{"column":56,"line":18},"start":{"column":32,"line":18}}},{"id":"8","mutatorName":"BlockStatement","replacement":"{}","statusReason":"SyntaxError: \"undefined\" is not valid JSON\n at JSON.parse (<"+"anonymous>)\n at Object.<"+"anonymous> (/Users/anushkaparthiban/mcp-weather/.stryker-tmp/sandbox1774993/tests/services/weather.test.ts:56:32)","status":"Killed","testsCompleted":11,"killedBy":["0"],"location":{"end":{"column":10,"line":56},"start":{"column":13,"line":16}}},{"id":"15","mutatorName":"MethodExpression","replacement":"input.city","status":"Survived","testsCompleted":11,"location":{"end":{"column":49,"line":18},"start":{"column":32,"line":18}}},{"id":"9","mutatorName":"ConditionalExpression","replacement":"true","statusReason":"SyntaxError: Unexpected token 'E', \"Error: Cit\"... is not valid JSON\n at JSON.parse (<"+"anonymous>)\n at Object.<"+"anonymous> (/Users/anushkaparthiban/mcp-weather/.stryker-tmp/sandbox1774993/tests/services/weather.test.ts:56:32)","status":"Killed","testsCompleted":11,"killedBy":["0"],"location":{"end":{"column":56,"line":18},"start":{"column":17,"line":18}}},{"id":"16","mutatorName":"StringLiteral","replacement":"\"Stryker was here!\"","status":"Survived","testsCompleted":11,"location":{"end":{"column":56,"line":18},"start":{"column":54,"line":18}}},{"id":"17","mutatorName":"BlockStatement","replacement":"{}","statusReason":"Error: expect(received).toContain(expected) // indexOf\n\nExpected substring: \"Error: City name cannot be empty\"\nReceived string: \"Error: Invalid city name provided\"\n at Object.<"+"anonymous> (/Users/anushkaparthiban/mcp-weather/.stryker-tmp/sandbox1774993/tests/services/weather.test.ts:141:22)","status":"Killed","testsCompleted":11,"killedBy":["5"],"location":{"end":{"column":14,"line":20},"start":{"column":58,"line":18}}},{"id":"18","mutatorName":"StringLiteral","replacement":"\"\"","statusReason":"Error: expect(received).toContain(expected) // indexOf\n\nExpected substring: \"Error: City name cannot be empty\"\nReceived string: \"\"\n at Object.<"+"anonymous> (/Users/anushkaparthiban/mcp-weather/.stryker-tmp/sandbox1774993/tests/services/weather.test.ts:141:22)","status":"Killed","testsCompleted":11,"killedBy":["5"],"location":{"end":{"column":58,"line":19},"start":{"column":24,"line":19}}},{"id":"19","mutatorName":"ConditionalExpression","replacement":"true","statusReason":"SyntaxError: Unexpected token 'E', \"Error: Inv\"... is not valid JSON\n at JSON.parse (<"+"anonymous>)\n at Object.<"+"anonymous> (/Users/anushkaparthiban/mcp-weather/.stryker-tmp/sandbox1774993/tests/services/weather.test.ts:56:32)","status":"Killed","testsCompleted":11,"killedBy":["0"],"location":{"end":{"column":37,"line":23},"start":{"column":17,"line":23}}},{"id":"22","mutatorName":"StringLiteral","replacement":"\"Stryker was here!\"","status":"Survived","testsCompleted":11,"location":{"end":{"column":37,"line":23},"start":{"column":35,"line":23}}},{"id":"20","mutatorName":"ConditionalExpression","replacement":"false","status":"Survived","testsCompleted":11,"location":{"end":{"column":37,"line":23},"start":{"column":17,"line":23}}},{"id":"21","mutatorName":"EqualityOperator","replacement":"sanitizedCity !== ''","statusReason":"SyntaxError: Unexpected token 'E', \"Error: Inv\"... is not valid JSON\n at JSON.parse (<"+"anonymous>)\n at Object.<"+"anonymous> (/Users/anushkaparthiban/mcp-weather/.stryker-tmp/sandbox1774993/tests/services/weather.test.ts:56:32)","status":"Killed","testsCompleted":11,"killedBy":["0"],"location":{"end":{"column":37,"line":23},"start":{"column":17,"line":23}}},{"id":"23","mutatorName":"BlockStatement","replacement":"{}","status":"Survived","testsCompleted":11,"location":{"end":{"column":14,"line":25},"start":{"column":39,"line":23}}},{"id":"24","mutatorName":"StringLiteral","replacement":"\"\"","status":"Survived","testsCompleted":11,"location":{"end":{"column":59,"line":24},"start":{"column":24,"line":24}}},{"id":"27","mutatorName":"ConditionalExpression","replacement":"true","statusReason":"SyntaxError: Unexpected token 'E', \"Error fetc\"... is not valid JSON\n at JSON.parse (<"+"anonymous>)\n at Object.<"+"anonymous> (/Users/anushkaparthiban/mcp-weather/.stryker-tmp/sandbox1774993/tests/services/weather.test.ts:56:32)","status":"Killed","testsCompleted":11,"killedBy":["0"],"location":{"end":{"column":36,"line":32},"start":{"column":17,"line":32}}},{"id":"26","mutatorName":"BooleanLiteral","replacement":"geocodeResponse.ok","statusReason":"SyntaxError: Unexpected token 'E', \"Error fetc\"... is not valid JSON\n at JSON.parse (<"+"anonymous>)\n at Object.<"+"anonymous> (/Users/anushkaparthiban/mcp-weather/.stryker-tmp/sandbox1774993/tests/services/weather.test.ts:56:32)","status":"Killed","testsCompleted":11,"killedBy":["0"],"location":{"end":{"column":36,"line":32},"start":{"column":17,"line":32}}},{"id":"29","mutatorName":"BlockStatement","replacement":"{}","statusReason":"Error: expect(received).toContain(expected) // indexOf\n\nExpected substring: \"Error fetching location data\"\nReceived string: \"Error: City not found. Please check the spelling and try again.\"\n at Object.<"+"anonymous> (/Users/anushkaparthiban/mcp-weather/.stryker-tmp/sandbox1774993/tests/services/weather.test.ts:97:22)","status":"Killed","testsCompleted":11,"killedBy":["2"],"location":{"end":{"column":14,"line":34},"start":{"column":38,"line":32}}},{"id":"30","mutatorName":"StringLiteral","replacement":"``","statusReason":"Error: expect(received).toContain(expected) // indexOf\n\nExpected substring: \"Error fetching location data\"\nReceived string: \"\"\n at Object.<"+"anonymous> (/Users/anushkaparthiban/mcp-weather/.stryker-tmp/sandbox1774993/tests/services/weather.test.ts:97:22)","status":"Killed","testsCompleted":11,"killedBy":["2"],"location":{"end":{"column":111,"line":33},"start":{"column":24,"line":33}}},{"id":"32","mutatorName":"ConditionalExpression","replacement":"false","statusReason":"Error: expect(received).toContain(expected) // indexOf\n\nExpected substring: \"Error: City not found\"\nReceived string: \"Error retrieving weather: Cannot destructure property 'latitude' of 'geocodeData.results[0]' as it is undefined.\"\n at Object.<"+"anonymous> (/Users/anushkaparthiban/mcp-weather/.stryker-tmp/sandbox1774993/tests/services/weather.test.ts:84:22)","status":"Killed","testsCompleted":11,"killedBy":["1"],"location":{"end":{"column":73,"line":39},"start":{"column":17,"line":39}}},{"id":"31","mutatorName":"ConditionalExpression","replacement":"true","statusReason":"SyntaxError: Unexpected token 'E', \"Error: Cit\"... is not valid JSON\n at JSON.parse (<"+"anonymous>)\n at Object.<"+"anonymous> (/Users/anushkaparthiban/mcp-weather/.stryker-tmp/sandbox1774993/tests/services/weather.test.ts:56:32)","status":"Killed","testsCompleted":11,"killedBy":["0"],"location":{"end":{"column":73,"line":39},"start":{"column":17,"line":39}}},{"id":"34","mutatorName":"BooleanLiteral","replacement":"geocodeData.results","statusReason":"SyntaxError: Unexpected token 'E', \"Error: Cit\"... is not valid JSON\n at JSON.parse (<"+"anonymous>)\n at Object.<"+"anonymous> (/Users/anushkaparthiban/mcp-weather/.stryker-tmp/sandbox1774993/tests/services/weather.test.ts:56:32)","status":"Killed","testsCompleted":11,"killedBy":["0"],"location":{"end":{"column":37,"line":39},"start":{"column":17,"line":39}}},{"id":"33","mutatorName":"LogicalOperator","replacement":"!geocodeData.results && geocodeData.results.length === 0","statusReason":"Error: expect(received).toContain(expected) // indexOf\n\nExpected substring: \"Error: City not found\"\nReceived string: \"Error retrieving weather: Cannot destructure property 'latitude' of 'geocodeData.results[0]' as it is undefined.\"\n at Object.<"+"anonymous> (/Users/anushkaparthiban/mcp-weather/.stryker-tmp/sandbox1774993/tests/services/weather.test.ts:84:22)","status":"Killed","testsCompleted":11,"killedBy":["1"],"location":{"end":{"column":73,"line":39},"start":{"column":17,"line":39}}},{"id":"35","mutatorName":"ConditionalExpression","replacement":"false","statusReason":"Error: expect(received).toContain(expected) // indexOf\n\nExpected substring: \"Error: City not found\"\nReceived string: \"Error retrieving weather: Cannot destructure property 'latitude' of 'geocodeData.results[0]' as it is undefined.\"\n at Object.<"+"anonymous> (/Users/anushkaparthiban/mcp-weather/.stryker-tmp/sandbox1774993/tests/services/weather.test.ts:84:22)","status":"Killed","testsCompleted":11,"killedBy":["1"],"location":{"end":{"column":73,"line":39},"start":{"column":41,"line":39}}},{"id":"36","mutatorName":"EqualityOperator","replacement":"geocodeData.results.length !== 0","statusReason":"SyntaxError: Unexpected token 'E', \"Error: Cit\"... is not valid JSON\n at JSON.parse (<"+"anonymous>)\n at Object.<"+"anonymous> (/Users/anushkaparthiban/mcp-weather/.stryker-tmp/sandbox1774993/tests/services/weather.test.ts:56:32)","status":"Killed","testsCompleted":11,"killedBy":["0"],"location":{"end":{"column":73,"line":39},"start":{"column":41,"line":39}}},{"id":"37","mutatorName":"BlockStatement","replacement":"{}","statusReason":"Error: expect(received).toContain(expected) // indexOf\n\nExpected substring: \"Error: City not found\"\nReceived string: \"Error retrieving weather: Cannot destructure property 'latitude' of 'geocodeData.results[0]' as it is undefined.\"\n at Object.<"+"anonymous> (/Users/anushkaparthiban/mcp-weather/.stryker-tmp/sandbox1774993/tests/services/weather.test.ts:84:22)","status":"Killed","testsCompleted":11,"killedBy":["1"],"location":{"end":{"column":14,"line":41},"start":{"column":75,"line":39}}},{"id":"25","mutatorName":"StringLiteral","replacement":"``","statusReason":"Error: expect(jest.fn()).toHaveBeenNthCalledWith(n, ...expected)\n\nn: 1\nExpected: \"https://geocoding-api.open-meteo.com/v1/search?name=London&count=1&language=en&format=json\"\nReceived\n-> 1: \"\"\n 2: \"https://api.open-meteo.com/v1/forecast?latitude=51.5074&longitude=-0.1278&hourly=temperature_2m&models=ukmo_seamless¤t=temperature_2m,apparent_temperature,is_day,rain\"\n\nNumber of calls: 2\n at Object.<"+"anonymous> (/Users/anushkaparthiban/mcp-weather/.stryker-tmp/sandbox1774993/tests/services/weather.test.ts:62:25)","status":"Killed","testsCompleted":11,"killedBy":["0"],"location":{"end":{"column":124,"line":29},"start":{"column":17,"line":29}}},{"id":"38","mutatorName":"StringLiteral","replacement":"\"\"","statusReason":"Error: expect(received).toContain(expected) // indexOf\n\nExpected substring: \"Error: City not found\"\nReceived string: \"\"\n at Object.<"+"anonymous> (/Users/anushkaparthiban/mcp-weather/.stryker-tmp/sandbox1774993/tests/services/weather.test.ts:84:22)","status":"Killed","testsCompleted":11,"killedBy":["1"],"location":{"end":{"column":89,"line":40},"start":{"column":24,"line":40}}},{"id":"28","mutatorName":"ConditionalExpression","replacement":"false","statusReason":"Error: expect(received).toContain(expected) // indexOf\n\nExpected substring: \"Error fetching location data\"\nReceived string: \"Error: City not found. Please check the spelling and try again.\"\n at Object.<"+"anonymous> (/Users/anushkaparthiban/mcp-weather/.stryker-tmp/sandbox1774993/tests/services/weather.test.ts:97:22)","status":"Killed","testsCompleted":11,"killedBy":["2"],"location":{"end":{"column":36,"line":32},"start":{"column":17,"line":32}}},{"id":"39","mutatorName":"StringLiteral","replacement":"``","statusReason":"Error: expect(jest.fn()).toHaveBeenNthCalledWith(n, ...expected)\n\nn: 2\nExpected: StringContaining \"https://api.open-meteo.com/v1/forecast\"\nReceived\n 1: \"https://geocoding-api.open-meteo.com/v1/search?name=London&count=1&language=en&format=json\"\n-> 2: \"\"\n\nNumber of calls: 2\n at Object.<"+"anonymous> (/Users/anushkaparthiban/mcp-weather/.stryker-tmp/sandbox1774993/tests/services/weather.test.ts:67:25)","status":"Killed","testsCompleted":11,"killedBy":["0"],"location":{"end":{"column":191,"line":46},"start":{"column":17,"line":46}}},{"id":"40","mutatorName":"BooleanLiteral","replacement":"weatherResponse.ok","statusReason":"SyntaxError: Unexpected token 'E', \"Error fetc\"... is not valid JSON\n at JSON.parse (<"+"anonymous>)\n at Object.<"+"anonymous> (/Users/anushkaparthiban/mcp-weather/.stryker-tmp/sandbox1774993/tests/services/weather.test.ts:56:32)","status":"Killed","testsCompleted":11,"killedBy":["0"],"location":{"end":{"column":36,"line":49},"start":{"column":17,"line":49}}},{"id":"42","mutatorName":"ConditionalExpression","replacement":"false","statusReason":"Error: expect(received).toContain(expected) // indexOf\n\nExpected substring: \"Error fetching weather data\"\nReceived string: \"{\n \\\"error\\\": \\\"Weather service unavailable\\\"\n}\"\n at Object.<"+"anonymous> (/Users/anushkaparthiban/mcp-weather/.stryker-tmp/sandbox1774993/tests/services/weather.test.ts:125:22)","status":"Killed","testsCompleted":11,"killedBy":["3"],"location":{"end":{"column":36,"line":49},"start":{"column":17,"line":49}}},{"id":"43","mutatorName":"BlockStatement","replacement":"{}","statusReason":"Error: expect(received).toContain(expected) // indexOf\n\nExpected substring: \"Error fetching weather data\"\nReceived string: \"{\n \\\"error\\\": \\\"Weather service unavailable\\\"\n}\"\n at Object.<"+"anonymous> (/Users/anushkaparthiban/mcp-weather/.stryker-tmp/sandbox1774993/tests/services/weather.test.ts:125:22)","status":"Killed","testsCompleted":11,"killedBy":["3"],"location":{"end":{"column":14,"line":51},"start":{"column":38,"line":49}}},{"id":"41","mutatorName":"ConditionalExpression","replacement":"true","statusReason":"SyntaxError: Unexpected token 'E', \"Error fetc\"... is not valid JSON\n at JSON.parse (<"+"anonymous>)\n at Object.<"+"anonymous> (/Users/anushkaparthiban/mcp-weather/.stryker-tmp/sandbox1774993/tests/services/weather.test.ts:56:32)","status":"Killed","testsCompleted":11,"killedBy":["0"],"location":{"end":{"column":36,"line":49},"start":{"column":17,"line":49}}},{"id":"45","mutatorName":"BlockStatement","replacement":"{}","statusReason":"Error: expect(received).toContain(expected) // indexOf\n\nMatcher error: received value must not be null nor undefined\n\nReceived has value: undefined\n at Object.<"+"anonymous> (/Users/anushkaparthiban/mcp-weather/.stryker-tmp/sandbox1774993/tests/services/weather.test.ts:134:22)","status":"Killed","testsCompleted":11,"killedBy":["4"],"location":{"end":{"column":10,"line":58},"start":{"column":25,"line":56}}},{"id":"44","mutatorName":"StringLiteral","replacement":"``","statusReason":"Error: expect(received).toContain(expected) // indexOf\n\nExpected substring: \"Error fetching weather data\"\nReceived string: \"\"\n at Object.<"+"anonymous> (/Users/anushkaparthiban/mcp-weather/.stryker-tmp/sandbox1774993/tests/services/weather.test.ts:125:22)","status":"Killed","testsCompleted":11,"killedBy":["3"],"location":{"end":{"column":110,"line":50},"start":{"column":24,"line":50}}},{"id":"47","mutatorName":"StringLiteral","replacement":"\"\"","status":"Survived","testsCompleted":11,"location":{"end":{"column":105,"line":57},"start":{"column":90,"line":57}}},{"id":"46","mutatorName":"StringLiteral","replacement":"``","statusReason":"Error: expect(received).toContain(expected) // indexOf\n\nExpected substring: \"Error retrieving weather\"\nReceived string: \"\"\n at Object.<"+"anonymous> (/Users/anushkaparthiban/mcp-weather/.stryker-tmp/sandbox1774993/tests/services/weather.test.ts:134:22)","status":"Killed","testsCompleted":11,"killedBy":["4"],"location":{"end":{"column":107,"line":57},"start":{"column":20,"line":57}}}],"source":"import { WeatherData, GeocodingResult, WeatherInput } from \"../types/weather.js\";\n\nexport class WeatherService {\n private static readonly GEOCODING_API = \"https://geocoding-api.open-meteo.com/v1/search\";\n private static readonly WEATHER_API = \"https://api.open-meteo.com/v1/forecast\";\n\n private sanitizeInput(input: string): string {\n // Remove potentially dangerous characters and limit length\n return input\n .replace(/[<"+">'\";&()]/g, '') // Remove dangerous characters\n .trim()\n .substring(0, 100); // Limit length\n }\n\n async getWeather(input: WeatherInput): Promise<"+"string> {\n try {\n // Validate and sanitize input\n if (!input.city || input.city.trim() === '') {\n return 'Error: City name cannot be empty';\n }\n\n const sanitizedCity = this.sanitizeInput(input.city);\n if (sanitizedCity === '') {\n return 'Error: Invalid city name provided';\n }\n\n // Geocoding\n const geocodeResponse = await fetch(\n `${WeatherService.GEOCODING_API}?name=${encodeURIComponent(sanitizedCity)}&count=1&language=en&format=json`\n );\n \n if (!geocodeResponse.ok) {\n return `Error fetching location data: ${geocodeResponse.status} ${geocodeResponse.statusText}`;\n }\n \n const geocodeData: GeocodingResult = await geocodeResponse.json();\n\n // Handle city not found\n if (!geocodeData.results || geocodeData.results.length === 0) {\n return 'Error: City not found. Please check the spelling and try again.';\n }\n\n // Get weather data\n const { latitude, longitude } = geocodeData.results[0];\n const weatherResponse = await fetch(\n `${WeatherService.WEATHER_API}?latitude=${latitude}&longitude=${longitude}&hourly=temperature_2m&models=ukmo_seamless¤t=temperature_2m,apparent_temperature,is_day,rain`\n );\n \n if (!weatherResponse.ok) {\n return `Error fetching weather data: ${weatherResponse.status} ${weatherResponse.statusText}`;\n }\n \n const weatherData: WeatherData = await weatherResponse.json();\n\n return JSON.stringify(weatherData, null, 2);\n } catch (error) {\n return `Error retrieving weather: ${error instanceof Error ? error.message : 'Unknown error'}`;\n }\n }\n}\n"},"src/utils/registry.ts":{"language":"typescript","mutants":[{"id":"54","mutatorName":"StringLiteral","replacement":"\"\"","statusReason":"Error: expect(received).toHaveProperty(path, value)\n\nExpected path: \"name\"\n\nExpected value: \"getWeather\"\nReceived value: \"\"\n at Object.<"+"anonymous> (/Users/anushkaparthiban/mcp-weather/.stryker-tmp/sandbox1774993/tests/utils/registry.test.ts:26:22)\n at Promise.then.completed (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/utils.js:298:28)\n at new Promise (<"+"anonymous>)\n at callAsyncCircusFn (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/utils.js:231:10)\n at _callCircusTest (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/run.js:316:40)\n at _runTest (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/run.js:252:3)\n at _runTestsForDescribeBlock (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/run.js:126:9)\n at _runTestsForDescribeBlock (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/run.js:121:9)\n at run (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/run.js:71:3)\n at runAndTransformResultsToJestFormat (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)\n at jestAdapter (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)\n at runTestInternal (/Users/anushkaparthiban/mcp-weather/node_modules/jest-runner/build/runTest.js:367:16)\n at runTest (/Users/anushkaparthiban/mcp-weather/node_modules/jest-runner/build/runTest.js:444:34)","status":"Killed","testsCompleted":3,"killedBy":["6"],"location":{"end":{"column":31,"line":10},"start":{"column":19,"line":10}}},{"id":"51","mutatorName":"ObjectLiteral","replacement":"{}","statusReason":"Error: expect(received).toBeGreaterThan(expected)\n\nExpected: > 0\nReceived: 0\n at Object.<"+"anonymous> (/Users/anushkaparthiban/mcp-weather/.stryker-tmp/sandbox1774993/tests/utils/registry.test.ts:25:26)\n at Promise.then.completed (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/utils.js:298:28)\n at new Promise (<"+"anonymous>)\n at callAsyncCircusFn (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/utils.js:231:10)\n at _callCircusTest (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/run.js:316:40)\n at _runTest (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/run.js:252:3)\n at _runTestsForDescribeBlock (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/run.js:126:9)\n at _runTestsForDescribeBlock (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/run.js:121:9)\n at run (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/run.js:71:3)\n at runAndTransformResultsToJestFormat (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)\n at jestAdapter (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)\n at runTestInternal (/Users/anushkaparthiban/mcp-weather/node_modules/jest-runner/build/runTest.js:367:16)\n at runTest (/Users/anushkaparthiban/mcp-weather/node_modules/jest-runner/build/runTest.js:444:34)","status":"Killed","testsCompleted":3,"killedBy":["6"],"location":{"end":{"column":2,"line":21},"start":{"column":49,"line":7}}},{"id":"52","mutatorName":"ArrayDeclaration","replacement":"[]","statusReason":"Error: expect(received).toBeGreaterThan(expected)\n\nExpected: > 0\nReceived: 0\n at Object.<"+"anonymous> (/Users/anushkaparthiban/mcp-weather/.stryker-tmp/sandbox1774993/tests/utils/registry.test.ts:25:26)\n at Promise.then.completed (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/utils.js:298:28)\n at new Promise (<"+"anonymous>)\n at callAsyncCircusFn (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/utils.js:231:10)\n at _callCircusTest (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/run.js:316:40)\n at _runTest (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/run.js:252:3)\n at _runTestsForDescribeBlock (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/run.js:126:9)\n at _runTestsForDescribeBlock (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/run.js:121:9)\n at run (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/run.js:71:3)\n at runAndTransformResultsToJestFormat (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)\n at jestAdapter (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)\n at runTestInternal (/Users/anushkaparthiban/mcp-weather/node_modules/jest-runner/build/runTest.js:367:16)\n at runTest (/Users/anushkaparthiban/mcp-weather/node_modules/jest-runner/build/runTest.js:444:34)","status":"Killed","testsCompleted":3,"killedBy":["6"],"location":{"end":{"column":6,"line":15},"start":{"column":14,"line":8}}},{"id":"57","mutatorName":"BlockStatement","replacement":"{}","statusReason":"Error: expect(received).toBe(expected) // Object.is equality\n\nExpected: true\nReceived: false\n at Object.<"+"anonymous> (/Users/anushkaparthiban/mcp-weather/.stryker-tmp/sandbox1774993/tests/utils/registry.test.ts:24:34)\n at Promise.then.completed (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/utils.js:298:28)\n at new Promise (<"+"anonymous>)\n at callAsyncCircusFn (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/utils.js:231:10)\n at _callCircusTest (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/run.js:316:40)\n at _runTest (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/run.js:252:3)\n at _runTestsForDescribeBlock (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/run.js:126:9)\n at _runTestsForDescribeBlock (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/run.js:121:9)\n at run (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/run.js:71:3)\n at runAndTransformResultsToJestFormat (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)\n at jestAdapter (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)\n at runTestInternal (/Users/anushkaparthiban/mcp-weather/node_modules/jest-runner/build/runTest.js:367:16)\n at runTest (/Users/anushkaparthiban/mcp-weather/node_modules/jest-runner/build/runTest.js:444:34)","status":"Killed","testsCompleted":3,"killedBy":["6"],"location":{"end":{"column":2,"line":36},"start":{"column":31,"line":23}}},{"id":"56","mutatorName":"ArrowFunction","replacement":"() => undefined","status":"Survived","testsCompleted":3,"location":{"end":{"column":77,"line":13},"start":{"column":22,"line":13}}},{"id":"59","mutatorName":"BlockStatement","replacement":"{}","statusReason":"Error: expect(received).toBeGreaterThan(expected)\n\nExpected: > 0\nReceived: 0\n at Object.<"+"anonymous> (/Users/anushkaparthiban/mcp-weather/.stryker-tmp/sandbox1774993/tests/utils/registry.test.ts:25:26)\n at Promise.then.completed (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/utils.js:298:28)\n at new Promise (<"+"anonymous>)\n at callAsyncCircusFn (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/utils.js:231:10)\n at _callCircusTest (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/run.js:316:40)\n at _runTest (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/run.js:252:3)\n at _runTestsForDescribeBlock (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/run.js:126:9)\n at _runTestsForDescribeBlock (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/run.js:121:9)\n at run (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/run.js:71:3)\n at runAndTransformResultsToJestFormat (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)\n at jestAdapter (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)\n at runTestInternal (/Users/anushkaparthiban/mcp-weather/node_modules/jest-runner/build/runTest.js:367:16)\n at runTest (/Users/anushkaparthiban/mcp-weather/node_modules/jest-runner/build/runTest.js:444:34)","status":"Killed","testsCompleted":3,"killedBy":["6"],"location":{"end":{"column":6,"line":33},"start":{"column":60,"line":31}}},{"id":"58","mutatorName":"ArrayDeclaration","replacement":"[\"Stryker was here\"]","statusReason":"Error: expect(received).toHaveProperty(path, value)\n\nExpected path: \"name\"\nReceived path: []\n\nExpected value: \"getWeather\"\nReceived value: \"Stryker was here\"\n at Object.<"+"anonymous> (/Users/anushkaparthiban/mcp-weather/.stryker-tmp/sandbox1774993/tests/utils/registry.test.ts:26:22)\n at Promise.then.completed (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/utils.js:298:28)\n at new Promise (<"+"anonymous>)\n at callAsyncCircusFn (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/utils.js:231:10)\n at _callCircusTest (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/run.js:316:40)\n at _runTest (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/run.js:252:3)\n at _runTestsForDescribeBlock (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/run.js:126:9)\n at _runTestsForDescribeBlock (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/run.js:121:9)\n at run (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/run.js:71:3)\n at runAndTransformResultsToJestFormat (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)\n at jestAdapter (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)\n at runTestInternal (/Users/anushkaparthiban/mcp-weather/node_modules/jest-runner/build/runTest.js:367:16)\n at runTest (/Users/anushkaparthiban/mcp-weather/node_modules/jest-runner/build/runTest.js:444:34)","status":"Killed","testsCompleted":3,"killedBy":["6"],"location":{"end":{"column":12,"line":29},"start":{"column":10,"line":29}}},{"id":"53","mutatorName":"ObjectLiteral","replacement":"{}","statusReason":"Error: expect(received).toHaveProperty(path, value)\n\nExpected path: \"name\"\nReceived path: []\n\nExpected value: \"getWeather\"\nReceived value: {}\n at Object.<"+"anonymous> (/Users/anushkaparthiban/mcp-weather/.stryker-tmp/sandbox1774993/tests/utils/registry.test.ts:26:22)\n at Promise.then.completed (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/utils.js:298:28)\n at new Promise (<"+"anonymous>)\n at callAsyncCircusFn (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/utils.js:231:10)\n at _callCircusTest (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/run.js:316:40)\n at _runTest (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/run.js:252:3)\n at _runTestsForDescribeBlock (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/run.js:126:9)\n at _runTestsForDescribeBlock (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/run.js:121:9)\n at run (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/run.js:71:3)\n at runAndTransformResultsToJestFormat (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)\n at jestAdapter (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)\n at runTestInternal (/Users/anushkaparthiban/mcp-weather/node_modules/jest-runner/build/runTest.js:367:16)\n at runTest (/Users/anushkaparthiban/mcp-weather/node_modules/jest-runner/build/runTest.js:444:34)","status":"Killed","testsCompleted":3,"killedBy":["6"],"location":{"end":{"column":10,"line":14},"start":{"column":9,"line":9}}},{"id":"55","mutatorName":"StringLiteral","replacement":"\"\"","status":"Survived","testsCompleted":3,"location":{"end":{"column":72,"line":11},"start":{"column":26,"line":11}}}],"source":"import { ServiceRegistry } from \"../types/service.js\";\nimport { WeatherService } from \"../services/weather.js\";\nimport { WeatherSchema } from \"../types/weather.js\";\n\nconst weatherService = new WeatherService();\n\nexport const serviceRegistry: ServiceRegistry = {\n weather: [\n {\n name: \"getWeather\",\n description: \"Get the current weather for a given location\",\n inputSchema: WeatherSchema,\n handler: async (input) => await weatherService.getWeather(input)\n }\n ]\n // Future services can be added here:\n // finance: [...],\n // news: [...],\n // sports: [...],\n // etc.\n};\n\nexport function getAllTools() {\n const tools: Array<"+"{\n name: string;\n description: string;\n inputSchema: any;\n handler: (input: any) => Promise<"+"string>;\n }> = [];\n\n Object.values(serviceRegistry).forEach(serviceTools => {\n tools.push(...serviceTools);\n });\n\n return tools;\n}\n"},"src/types/weather.ts":{"language":"typescript","mutants":[{"id":"50","mutatorName":"StringLiteral","replacement":"\"\"","status":"Survived","testsCompleted":17,"location":{"end":{"column":100,"line":29},"start":{"column":67,"line":29}}},{"id":"49","mutatorName":"StringLiteral","replacement":"\"\"","status":"Survived","testsCompleted":17,"location":{"end":{"column":56,"line":29},"start":{"column":29,"line":29}}},{"id":"48","mutatorName":"ObjectLiteral","replacement":"{}","statusReason":"Error: expect(received).toEqual(expected) // deep equality\n\n- Expected - 3\n+ Received + 1\n\n- Object {\n- \"city\": \"London\",\n- }\n+ Object {}\n at Object.<"+"anonymous> (/Users/anushkaparthiban/mcp-weather/.stryker-tmp/sandbox1774993/tests/types/weather.test.ts:11:29)\n at Promise.then.completed (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/utils.js:298:28)\n at new Promise (<"+"anonymous>)\n at callAsyncCircusFn (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/utils.js:231:10)\n at _callCircusTest (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/run.js:316:40)\n at _runTest (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/run.js:252:3)\n at _runTestsForDescribeBlock (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/run.js:126:9)\n at _runTestsForDescribeBlock (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/run.js:121:9)\n at _runTestsForDescribeBlock (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/run.js:121:9)\n at run (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/run.js:71:3)\n at runAndTransformResultsToJestFormat (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)\n at jestAdapter (/Users/anushkaparthiban/mcp-weather/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)\n at runTestInternal (/Users/anushkaparthiban/mcp-weather/node_modules/jest-runner/build/runTest.js:367:16)\n at runTest (/Users/anushkaparthiban/mcp-weather/node_modules/jest-runner/build/runTest.js:444:34)","status":"Killed","testsCompleted":17,"killedBy":["9"],"location":{"end":{"column":2,"line":30},"start":{"column":39,"line":28}}}],"source":"import { z } from \"zod\";\n\nexport interface WeatherData {\n latitude: number;\n longitude: number;\n current: {\n time: string;\n temperature_2m: number;\n apparent_temperature: number;\n is_day: number;\n rain: number;\n };\n hourly: {\n time: string[];\n temperature_2m: number[];\n };\n}\n\nexport interface GeocodingResult {\n results: Array<"+"{\n latitude: number;\n longitude: number;\n name: string;\n country: string;\n }>;\n}\n\nexport const WeatherSchema = z.object({\n city: z.string().min(1, \"City name cannot be empty\").describe(\"The city to get the weather for\")\n});\n\nexport type WeatherInput = z.infer<"+"typeof WeatherSchema>;\n"}},"schemaVersion":"1.0","thresholds":{"high":80,"low":60,"break":null},"testFiles":{"tests/services/weather.test.ts":{"tests":[{"id":"0","name":"WeatherService getWeather should return weather data for a valid city","location":{"start":{"column":6,"line":15}}},{"id":"1","name":"WeatherService getWeather should handle city not found error","location":{"start":{"column":6,"line":72}}},{"id":"2","name":"WeatherService getWeather should handle geocoding API errors","location":{"start":{"column":6,"line":88}}},{"id":"3","name":"WeatherService getWeather should handle weather API errors","location":{"start":{"column":6,"line":101}}},{"id":"4","name":"WeatherService getWeather should handle network errors","location":{"start":{"column":6,"line":129}}},{"id":"5","name":"WeatherService getWeather should handle empty city input","location":{"start":{"column":6,"line":138}}}],"source":"import { WeatherService } from '../../src/services/weather.js';\n\n// Mock fetch globally for these tests\nconst mockFetch = global.fetch as jest.MockedFunction<"+"typeof fetch>;\n\ndescribe('WeatherService', () => {\n let weatherService: WeatherService;\n\n beforeEach(() => {\n weatherService = new WeatherService();\n jest.clearAllMocks();\n });\n\n describe('getWeather', () => {\n it('should return weather data for a valid city', async () => {\n // Mock geocoding response\n const mockGeocodingResponse = {\n results: [{\n name: 'London',\n latitude: 51.5074,\n longitude: -0.1278,\n country: 'United Kingdom',\n timezone: 'Europe/London'\n }]\n };\n\n // Mock weather response\n const mockWeatherResponse = {\n latitude: 51.5074,\n longitude: -0.1278,\n timezone: 'Europe/London',\n current: {\n time: '2024-01-15T14:30',\n temperature_2m: 15.5,\n apparent_temperature: 14.2,\n is_day: 1,\n rain: 0\n },\n hourly: {\n time: ['2024-01-15T14:00', '2024-01-15T15:00'],\n temperature_2m: [15.5, 16.0]\n }\n };\n\n mockFetch\n .mockResolvedValueOnce({\n ok: true,\n json: () => Promise.resolve(mockGeocodingResponse)\n } as Response)\n .mockResolvedValueOnce({\n ok: true,\n json: () => Promise.resolve(mockWeatherResponse)\n } as Response);\n\n const result = await weatherService.getWeather({ city: 'London' });\n const weatherData = JSON.parse(result);\n\n expect(weatherData).toEqual(mockWeatherResponse);\n expect(mockFetch).toHaveBeenCalledTimes(2);\n \n // Check geocoding API call\n expect(mockFetch).toHaveBeenNthCalledWith(1, \n 'https://geocoding-api.open-meteo.com/v1/search?name=London&count=1&language=en&format=json'\n );\n \n // Check weather API call\n expect(mockFetch).toHaveBeenNthCalledWith(2, \n expect.stringContaining('https://api.open-meteo.com/v1/forecast')\n );\n });\n\n it('should handle city not found error', async () => {\n const mockGeocodingResponse = {\n results: []\n };\n\n mockFetch.mockResolvedValueOnce({\n ok: true,\n json: () => Promise.resolve(mockGeocodingResponse)\n } as Response);\n\n const result = await weatherService.getWeather({ city: 'NonExistentCity' });\n\n expect(result).toContain('Error: City not found');\n expect(mockFetch).toHaveBeenCalledTimes(1);\n });\n\n it('should handle geocoding API errors', async () => {\n mockFetch.mockResolvedValueOnce({\n ok: false,\n status: 500,\n json: () => Promise.resolve({ error: 'Internal server error' })\n } as Response);\n\n const result = await weatherService.getWeather({ city: 'London' });\n\n expect(result).toContain('Error fetching location data');\n expect(mockFetch).toHaveBeenCalledTimes(1);\n });\n\n it('should handle weather API errors', async () => {\n const mockGeocodingResponse = {\n results: [{\n name: 'London',\n latitude: 51.5074,\n longitude: -0.1278,\n country: 'United Kingdom',\n timezone: 'Europe/London'\n }]\n };\n\n mockFetch\n .mockResolvedValueOnce({\n ok: true,\n json: () => Promise.resolve(mockGeocodingResponse)\n } as Response)\n .mockResolvedValueOnce({\n ok: false,\n status: 500,\n json: () => Promise.resolve({ error: 'Weather service unavailable' })\n } as Response);\n\n const result = await weatherService.getWeather({ city: 'London' });\n\n expect(result).toContain('Error fetching weather data');\n expect(mockFetch).toHaveBeenCalledTimes(2);\n });\n\n it('should handle network errors', async () => {\n mockFetch.mockRejectedValueOnce(new Error('Network error'));\n\n const result = await weatherService.getWeather({ city: 'London' });\n\n expect(result).toContain('Error retrieving weather');\n expect(result).toContain('Network error');\n });\n\n it('should handle empty city input', async () => {\n const result = await weatherService.getWeather({ city: '' });\n\n expect(result).toContain('Error: City name cannot be empty');\n expect(mockFetch).not.toHaveBeenCalled();\n });\n });\n});\n"},"tests/utils/registry.test.ts":{"tests":[{"id":"6","name":"utils/registry should return all registered tools","location":{"start":{"column":4,"line":22}}},{"id":"7","name":"utils/registry should return an empty array if no tools are registered","location":{"start":{"column":4,"line":29}}},{"id":"8","name":"utils/registry should handle tool handler errors gracefully","location":{"start":{"column":4,"line":39}}}],"source":"import { getAllTools } from '../../src/utils/registry.js';\n\n// Mock the serviceRegistry for isolated testing\njest.mock('../../src/utils/registry.js', () => {\n const original = jest.requireActual('../../src/utils/registry.js');\n return {\n ...original,\n serviceRegistry: {\n weather: [\n {\n name: 'getWeather',\n description: 'Get weather',\n inputSchema: { city: 'string' },\n handler: jest.fn(async () => 'Weather data')\n }\n ]\n }\n };\n});\n\ndescribe('utils/registry', () => {\n it('should return all registered tools', () => {\n const tools = getAllTools();\n expect(Array.isArray(tools)).toBe(true);\n expect(tools.length).toBeGreaterThan(0);\n expect(tools[0]).toHaveProperty('name', 'getWeather');\n });\n\n it('should return an empty array if no tools are registered', () => {\n jest.resetModules();\n jest.doMock('../../src/utils/registry.js', () => ({\n serviceRegistry: {},\n getAllTools: () => []\n }));\n const { getAllTools: getAllToolsEmpty } = require('../../src/utils/registry.js');\n expect(getAllToolsEmpty()).toEqual([]);\n });\n\n it('should handle tool handler errors gracefully', async () => {\n jest.resetModules();\n jest.doMock('../../src/utils/registry.js', () => ({\n serviceRegistry: {\n weather: [\n {\n name: 'brokenTool',\n description: 'Broken',\n inputSchema: {},\n handler: async () => { throw new Error('fail'); }\n }\n ]\n },\n getAllTools: () => [\n {\n name: 'brokenTool',\n description: 'Broken',\n inputSchema: {},\n handler: async () => { throw new Error('fail'); }\n }\n ]\n }));\n const { getAllTools: getAllToolsBroken } = require('../../src/utils/registry.js');\n const tools = getAllToolsBroken();\n expect(tools[0].name).toBe('brokenTool');\n await expect(tools[0].handler()).rejects.toThrow('fail');\n });\n});\n"},"tests/types/weather.test.ts":{"tests":[{"id":"9","name":"Weather Types and Schemas WeatherSchema should validate correct weather input","location":{"start":{"column":6,"line":5}}},{"id":"10","name":"Weather Types and Schemas WeatherSchema should reject empty city","location":{"start":{"column":6,"line":15}}},{"id":"11","name":"Weather Types and Schemas WeatherSchema should reject non-string city","location":{"start":{"column":6,"line":22}}},{"id":"12","name":"Weather Types and Schemas WeatherSchema should reject missing city","location":{"start":{"column":6,"line":29}}},{"id":"13","name":"Weather Types and Schemas WeatherSchema should accept city with spaces","location":{"start":{"column":6,"line":36}}},{"id":"14","name":"Weather Types and Schemas WeatherSchema should accept city with special characters","location":{"start":{"column":6,"line":43}}}],"source":"import { WeatherSchema } from '../../src/types/weather.js';\n\ndescribe('Weather Types and Schemas', () => {\n describe('WeatherSchema', () => {\n it('should validate correct weather input', () => {\n const validInput = { city: 'London' };\n const result = WeatherSchema.safeParse(validInput);\n \n expect(result.success).toBe(true);\n if (result.success) {\n expect(result.data).toEqual(validInput);\n }\n });\n\n it('should reject empty city', () => {\n const invalidInput = { city: '' };\n const result = WeatherSchema.safeParse(invalidInput);\n \n expect(result.success).toBe(false);\n });\n\n it('should reject non-string city', () => {\n const invalidInput = { city: 123 };\n const result = WeatherSchema.safeParse(invalidInput);\n \n expect(result.success).toBe(false);\n });\n\n it('should reject missing city', () => {\n const invalidInput = {};\n const result = WeatherSchema.safeParse(invalidInput);\n \n expect(result.success).toBe(false);\n });\n\n it('should accept city with spaces', () => {\n const validInput = { city: 'New York' };\n const result = WeatherSchema.safeParse(validInput);\n \n expect(result.success).toBe(true);\n });\n\n it('should accept city with special characters', () => {\n const validInput = { city: 'São Paulo' };\n const result = WeatherSchema.safeParse(validInput);\n \n expect(result.success).toBe(true);\n });\n });\n});\n"},"tests/main/main.test.ts":{"tests":[{"id":"15","name":"main.ts should export expected properties/functions","location":{"start":{"column":4,"line":4}}},{"id":"16","name":"main.ts should not throw when importing","location":{"start":{"column":4,"line":13}}}],"source":"import * as mainModule from '../../src/main.js';\n\ndescribe('main.ts', () => {\n it('should export expected properties/functions', () => {\n // Check for known exports (adjust as needed)\n expect(mainModule).toBeDefined();\n // Example: if main exports a function called main\n if (typeof mainModule.main === 'function') {\n expect(typeof mainModule.main).toBe('function');\n }\n });\n\n it('should not throw when importing', () => {\n expect(() => require('../../src/main.js')).not.toThrow();\n });\n\n // Removed tests for non-existent exports handleToolRequest and init\n // Add more tests here as main.ts exports more testable functions\n});\n"}},"projectRoot":"/Users/anushkaparthiban/mcp-weather","config":{"packageManager":"npm","reporters":["html","clear-text","progress"],"testRunner":"jest","jest":{"projectType":"custom","configFile":"jest.config.js","enableFindRelatedTests":true},"tsconfigFile":"tsconfig.json","coverageAnalysis":"off","mutate":["src/**/*.ts","!src/**/*.d.ts","!src/main.ts"],"ignore":["tests/**","**/*.test.ts","**/*.spec.ts","**/node_modules/**"],"allowConsoleColors":true,"checkers":[],"checkerNodeArgs":[],"commandRunner":{"command":"npm test"},"clearTextReporter":{"allowColor":true,"allowEmojis":false,"logTests":true,"maxTestsToLog":3},"dashboard":{"baseUrl":"https://dashboard.stryker-mutator.io/api/reports","reportType":"full"},"dryRunOnly":false,"eventReporter":{"baseDir":"reports/mutation/events"},"ignorePatterns":[],"ignoreStatic":false,"incremental":false,"incrementalFile":"reports/stryker-incremental.json","force":false,"fileLogLevel":"off","inPlace":false,"logLevel":"info","maxConcurrentTestRunners":9007199254740991,"maxTestRunnerReuse":0,"mutator":{"plugins":null,"excludedMutations":[]},"plugins":["@stryker-mutator/*"],"appendPlugins":[],"htmlReporter":{"fileName":"reports/mutation/mutation.html"},"jsonReporter":{"fileName":"reports/mutation/mutation.json"},"disableTypeChecks":"{test,src,lib}/**/*.{js,ts,jsx,tsx,html,vue}","symlinkNodeModules":true,"tempDirName":".stryker-tmp","cleanTempDir":true,"testRunnerNodeArgs":[],"thresholds":{"high":80,"low":60,"break":null},"timeoutFactor":1.5,"timeoutMS":5000,"dryRunTimeoutMinutes":5,"warnings":true,"disableBail":false,"typescriptChecker":{"prioritizePerformanceOverAccuracy":true}},"framework":{"name":"StrykerJS","version":"6.4.2","branding":{"homepageUrl":"https://stryker-mutator.io","imageUrl":"data:image/svg+xml;utf8,%3Csvg viewBox='0 0 1458 1458' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd' clip-rule='evenodd' stroke-linejoin='round' stroke-miterlimit='2'%3E%3Cpath fill='none' d='M0 0h1458v1458H0z'/%3E%3CclipPath id='a'%3E%3Cpath d='M0 0h1458v1458H0z'/%3E%3C/clipPath%3E%3Cg clip-path='url(%23a)'%3E%3Cpath d='M1458 729c0 402.655-326.345 729-729 729S0 1131.655 0 729C0 326.445 326.345 0 729 0s729 326.345 729 729' fill='%23e74c3c' fill-rule='nonzero'/%3E%3Cpath d='M778.349 1456.15L576.6 1254.401l233-105 85-78.668v-64.332l-257-257-44-187-50-208 251.806-82.793L1076.6 389.401l380.14 379.15c-19.681 367.728-311.914 663.049-678.391 687.599z' fill-opacity='.3'/%3E%3Cpath d='M753.4 329.503c41.79 0 74.579 7.83 97.925 25.444 23.571 18.015 41.69 43.956 55.167 77.097l11.662 28.679 165.733-58.183-14.137-32.13c-26.688-60.655-64.896-108.61-114.191-144.011-49.329-35.423-117.458-54.302-204.859-54.302-50.78 0-95.646 7.376-134.767 21.542-40.093 14.671-74.09 34.79-102.239 60.259-28.84 26.207-50.646 57.06-65.496 92.701-14.718 35.052-22.101 72.538-22.101 112.401 0 72.536 20.667 133.294 61.165 182.704 38.624 47.255 98.346 88.037 179.861 121.291 42.257 17.475 78.715 33.125 109.227 46.994 27.193 12.361 49.294 26.124 66.157 41.751 15.309 14.186 26.497 30.584 33.63 49.258 7.721 20.214 11.16 45.69 11.16 76.402 0 28.021-4.251 51.787-13.591 71.219-8.832 18.374-20.171 33.178-34.523 44.219-14.787 11.374-31.193 19.591-49.393 24.466-19.68 5.359-39.14 7.993-58.69 7.993-29.359 0-54.387-3.407-75.182-10.747-20.112-7.013-37.144-16.144-51.259-27.486-13.618-11.009-24.971-23.766-33.744-38.279-9.64-15.8-17.272-31.924-23.032-48.408l-10.965-31.376-161.669 60.585 10.734 30.124c10.191 28.601 24.197 56.228 42.059 82.748 18.208 27.144 41.322 51.369 69.525 72.745 27.695 21.075 60.904 38.218 99.481 51.041 37.777 12.664 82.004 19.159 132.552 19.159 49.998 0 95.818-8.321 137.611-24.622 42.228-16.471 78.436-38.992 108.835-67.291 30.719-28.597 54.631-62.103 71.834-100.642 17.263-38.56 25.923-79.392 25.923-122.248 0-54.339-8.368-100.37-24.208-138.32-16.29-38.759-38.252-71.661-65.948-98.797-26.965-26.418-58.269-48.835-93.858-67.175-33.655-17.241-69.196-33.11-106.593-47.533-35.934-13.429-65.822-26.601-89.948-39.525-22.153-11.868-40.009-24.21-53.547-37.309-11.429-11.13-19.83-23.678-24.718-37.664-5.413-15.49-7.98-33.423-7.98-53.577 0-40.883 11.293-71.522 37.086-90.539 28.443-20.825 64.985-30.658 109.311-30.658z' fill='%23f1c40f' fill-rule='nonzero'/%3E%3Cpath d='M720 0h18v113h-18zM1458 738v-18h-113v18h113zM720 1345h18v113h-18zM113 738v-18H0v18h113z'/%3E%3C/g%3E%3C/svg%3E"},"dependencies":{"@stryker-mutator/typescript-checker":"6.4.2","jest":"29.7.0","typescript":"5.8.3","ts-jest":"29.4.0"}}};
function updateTheme() {
document.body.style.backgroundColor = app.themeBackgroundColor;
}
app.addEventListener('theme-changed', updateTheme);
updateTheme();
</script>
</body>
</html>