Skip to content
Snippets Groups Projects
Commit 9717f102 authored by Sigmund, Dominik's avatar Sigmund, Dominik
Browse files

Merge branch 'master' into 'main'

Master

See merge request !1
parents a0f16637 4c19d95c
Branches
Tags
1 merge request!1Master
Pipeline #7100 canceled
Showing
with 399 additions and 58 deletions
node_modules/
coverage/
stryker.log
*.DS_Store
# stryker temp files
.stryker-tmp
ho-copy
image: node:latest
include:
- project: 'general/templates'
file: '/cicd/SAST-nodejs.gitlab-ci.yml'
- project: 'general/templates'
file: '/cicd/npm-audit.gitlab-ci.yml'
- project: 'general/templates'
file: '/cicd/sonarqube.gitlab-ci.yml'
variables:
SONAR_PROJECT_KEY: config
SONAR_TOKEN: 11922a8e774494f51e1d2f0e695949e4073e7df8
NPM_REGISTRY: https://npm.br-edv.brnet.int
NPM_TOKEN: 5w2Gy80rdH+2Tch0afNI6Q==
cache:
paths:
- node_modules/
- docs/
stages:
- build
- test
- quality
- publish
build:
stage: build
script:
- npm install --production
test:
stage: test
before_script:
- npm install -g jest
script:
- jest
artifacts:
paths:
- docs/test-report.html
- docs/coverage/lcov.info
publish:
only:
refs:
- tags
stage: publish
script:
- npm publish
.gitlab-ci.yml
\ No newline at end of file
.npmrc 0 → 100755
tag-version-prefix=""
strict-ssl=false
@general:registry=https://gitlab.br.de/api/v4/projects/7/packages/npm/
//gitlab.br.de/api/v4/packages/npm/:_authToken=${CI_JOB_TOKEN}
//gitlab.br.de/api/v4/projects/7/packages/npm/:_authToken=${CI_JOB_TOKEN}
README.md 100644 → 100755
# config # config
Simple Config with ENV and Files Support.
## Installation
## Getting started - `npm install --save @general/config`
To make it easy for you to get started with GitLab, here's a list of recommended next steps. ## Usage
Already a pro? Just edit this README.md and make it your own. Want to make it easy? [Use the template at the bottom](#editing-this-readme)! `const Config = require('@general/config')`
`let config = new Config([basePath])`
## Add your files Then config is your config object. (Use it like config.setting)
- [ ] [Create](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#create-a-file) or [upload](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#upload-a-file) files It reads from the following sources, performing a deep merge:
- [ ] [Add files using the command line](https://docs.gitlab.com/ee/gitlab-basics/add-file.html#add-a-file-using-the-command-line) or push an existing Git repository with the following command: (The Top Value overwrites the lower ones)
``` - ENV
cd existing_repo - config.json
git remote add origin https://gitlab.ard.de/libs/config.git - config.defaults.json
git branch -M main
git push -uf origin main Enviroment Variables can target deep nested settings:
``` The Setting _setting.deep.key_ can be reached with *SETTING_DEEP_KEY*
You may use the function __reload()_ to reload the config from all sources.
`config._reload()``
## Integrate with your tools This makes *_reload* a reserved keyword
- [ ] [Set up project integrations](https://gitlab.ard.de/libs/config/-/settings/integrations) You may use the function __show()_ to display the config without:
## Collaborate with your team - password
- secret
- token
- key
- apiKey
- apiToken
- apiSecret
- user
- username
- [ ] [Invite team members and collaborators](https://docs.gitlab.com/ee/user/project/members/) Values will be replaced with the value "redacted"
- [ ] [Create a new merge request](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html)
- [ ] [Automatically close issues from merge requests](https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically)
- [ ] [Enable merge request approvals](https://docs.gitlab.com/ee/user/project/merge_requests/approvals/)
- [ ] [Automatically merge when pipeline succeeds](https://docs.gitlab.com/ee/user/project/merge_requests/merge_when_pipeline_succeeds.html)
## Test and Deploy `config._show()``
Use the built-in continuous integration in GitLab. This makes *_show* a reserved keyword
- [ ] [Get started with GitLab CI/CD](https://docs.gitlab.com/ee/ci/quick_start/index.html) If you give a basePath, the config-Files are used from there.
- [ ] [Analyze your code for known vulnerabilities with Static Application Security Testing(SAST)](https://docs.gitlab.com/ee/user/application_security/sast/) Else the main dir of the application will be used.
- [ ] [Deploy to Kubernetes, Amazon EC2, or Amazon ECS using Auto Deploy](https://docs.gitlab.com/ee/topics/autodevops/requirements.html)
- [ ] [Use pull-based deployments for improved Kubernetes management](https://docs.gitlab.com/ee/user/clusters/agent/)
- [ ] [Set up protected environments](https://docs.gitlab.com/ee/ci/environments/protected_environments.html)
*** ### Values
# Editing this README You may use direct values like strings or numbers:
When you're ready to make this README your own, just edit this file and use the handy template below (or feel free to structure it however you want - this is just a starting point!). Thank you to [makeareadme.com](https://www.makeareadme.com/) for this template. ```json
{
"key": "value"
}
```
## Suggestions for a good README You can also use files to read the value from. This makes the config compatible with e.g. secrets:
Every project is different, so consider which of these sections apply to yours. The sections used in the template are suggestions for most open source projects. Also keep in mind that while a README can be too long and detailed, too long is better than too short. If you think your README is too long, consider utilizing another form of documentation rather than cutting out information.
## Name ```json
Choose a self-explaining name for your project. {
"key": "file:/path/to/file"
}
```
## Description
Let people know what your project can do specifically. Provide context and add a link to any reference visitors might be unfamiliar with. A list of Features or a Background subsection can also be added here. If there are alternatives to your project, this is a good place to list differentiating factors.
## Badges ## Examples
On some READMEs, you may see small images that convey metadata, such as whether or not all the tests are passing for the project. You can use Shields to add some to your README. Many services also have instructions for adding a badge.
## Visuals ### Only config.defaults.json
Depending on what you are making, it can be a good idea to include screenshots or even a video (you'll frequently see GIFs rather than actual videos). Tools like ttygif can help, but check out Asciinema for a more sophisticated method.
## Installation `node examples/only-defaults/index.js`
Within a particular ecosystem, there may be a common way of installing things, such as using Yarn, NuGet, or Homebrew. However, consider the possibility that whoever is reading your README is a novice and would like more guidance. Listing specific steps helps remove ambiguity and gets people to using your project as quickly as possible. If it only runs in a specific context like a particular programming language version or operating system or has dependencies that have to be installed manually, also add a Requirements subsection.
## Usage ### Only config.json
Use examples liberally, and show the expected output if you can. It's helpful to have inline the smallest example of usage that you can demonstrate, while providing links to more sophisticated examples if they are too long to reasonably include in the README.
(Kind of legacy use)
`node examples/only-local/index.js`
## Support ### defaults and config.json
Tell people where they can go to for help. It can be any combination of an issue tracker, a chat room, an email address, etc.
## Roadmap `node examples/defaults-overwrite/index.js`
If you have ideas for releases in the future, it is a good idea to list them in the README.
## Contributing ### enviroment variables
State if you are open to contributions and what your requirements are for accepting them.
For people who want to make changes to your project, it's helpful to have some documentation on how to get started. Perhaps there is a script that they should run or some environment variables that they need to set. Make these steps explicit. These instructions could also be useful to your future self. (Enviroment set by command to not pollute your machine)
You can also document commands to lint the code or run tests. These steps help to ensure high code quality and reduce the likelihood that the changes inadvertently break something. Having instructions for running tests is especially helpful if it requires external setup, such as starting a Selenium server for testing in a browser. `SETTING=overwritten-by-env node examples/env/index.js`
## Authors and acknowledgment ### use files to read from
Show your appreciation to those who have contributed to the project.
## License (Enviroment set by command to not pollute your machine)
For open source projects, say how it is licensed.
## Project status `SETTING=file:examples/files/setting_1.txt node examples/files/index.js`
If you have run out of energy or time for your project, put a note at the top of the README saying that development has slowed down or stopped completely. Someone may choose to fork your project or volunteer to step in as a maintainer or owner, allowing your project to keep going. You can also make an explicit request for maintainers.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script>
/*! For license information please see mutation-test-elements.js.LICENSE.txt */
!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=33)}([function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),o=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.schema=void 0,o(n(17),t);const s=i(n(18));t.schema=s.default},function(e,t,n){"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n=e(t);return t[2]?"@media ".concat(t[2]," {").concat(n,"}"):n})).join("")},t.i=function(e,n,r){"string"==typeof e&&(e=[[null,e,""]]);var o={};if(r)for(var i=0;i<this.length;i++){var s=this[i][0];null!=s&&(o[s]=!0)}for(var a=0;a<e.length;a++){var l=[].concat(e[a]);r&&o[l[0]]||(n&&(l[2]?l[2]="".concat(n," and ").concat(l[2]):l[2]=n),t.push(l))}},t}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.compareNames=t.normalizeFileNames=t.pathJoin=t.groupBy=t.flatMap=void 0;t.flatMap=function(e,t){const n=[];return e.map(t).forEach((e=>n.push(...e))),n},t.groupBy=function(e,t){return e.reduce(((e,n)=>{const r=t(n);return Object.prototype.hasOwnProperty.call(e,r)||(e[r]=[]),e[r].push(n),e}),{})},t.pathJoin=function(...e){return e.reduce(((e,t)=>e.length?t?`${e}/${t}`:e:t),"")},t.normalizeFileNames=function(e){const t=Object.keys(e),n=function(e){const t=e.map((e=>e.split(/\/|\\/).slice(0,-1)));return e.length?t.reduce(n).join("/"):"";function n(e,t){for(let n=0;n<e.length;n++)if(e[n]!==t[n])return e.splice(0,n);return e}}(t),r={};return t.forEach((t=>{r[function(e){return e.split(/\/|\\/).filter((e=>e)).join("/")}(t.substr(n.length))]=e[t]})),r},t.compareNames=function(e,t){const n=e=>e.file?"1"+e.name:"0"+e.name;return n(e).localeCompare(n(t))}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.normalizeFileNames=t.calculateMetrics=void 0;const r=n(16);Object.defineProperty(t,"calculateMetrics",{enumerable:!0,get:function(){return r.calculateMetrics}});const o=n(2);Object.defineProperty(t,"normalizeFileNames",{enumerable:!0,get:function(){return o.normalizeFileNames}})},function(e,t,n){var r=n(1)((function(e){return e[1]}));r.push([e.i,'/*!\n * Bootstrap Reboot v4.5.3 (https://getbootstrap.com/)\n * Copyright 2011-2020 The Bootstrap Authors\n * Copyright 2011-2020 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n *//*!\n * Bootstrap v4.5.3 (https://getbootstrap.com/)\n * Copyright 2011-2020 The Bootstrap Authors\n * Copyright 2011-2020 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--caution:#fd7e14;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-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";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}header{display:block}[tabindex="-1"]:focus:not(.focus-visible),[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}h1,h3,h5{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}ol{margin-bottom:1rem}ol{margin-top:0}ol ol{margin-bottom:0}b{font-weight:bolder}small{font-size:80%}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,pre{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}th{text-align:inherit;text-align:-webkit-match-parent}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button{text-transform:none}[role=button]{cursor:pointer}[type=button],button{-webkit-appearance:button}[type=button]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox]{box-sizing:border-box;padding:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[hidden]{display:none!important}.h1,.h3,.h5,h1,h3,h5{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h3,h3{font-size:1.75rem}.h5,h5{font-size:1.25rem}.display-4{font-weight:300;line-height:1.2}.display-4{font-size:3.5rem}.small,small{font-size:80%;font-weight:400}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.container-fluid{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.col-md-12,.col-sm-11{position:relative;width:100%;padding-right:15px;padding-left:15px}@media(min-width:576px){.col-sm-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}}@media(min-width:768px){.col-md-12{flex:0 0 100%;max-width:100%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:inline-flex;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529}.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn:disabled{opacity:.65}.btn:not(:disabled):not(.disabled){cursor:pointer}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:focus,.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3}.btn-link:focus,.btn-link:hover{text-decoration:underline}.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.breadcrumb{flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb,.breadcrumb-item{display:flex}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item:before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover:before{text-decoration:underline;text-decoration:none}.breadcrumb-item.active{color:#6c757d}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-caution{color:#212529;background-color:#fd7e14}a.badge-caution:focus,a.badge-caution:hover{color:#212529;background-color:#dc6502}a.badge-caution:focus{outline:0;box-shadow:0 0 0 .2rem rgba(253,126,20,.5)}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}@-webkit-keyframes progress-bar-stripes{to{background-position:0 0}}@keyframes progress-bar-stripes{0%{background-position:1rem 0}to{background-position:0 0}}.progress{height:1rem;line-height:0;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress,.progress-bar{display:flex;overflow:hidden}.progress-bar{flex-direction:column;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media(prefers-reduced-motion:reduce){.progress-bar{transition:none}}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.show .modal-dialog{transform:none}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}@media(min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}}.popover{top:0;left:0;z-index:1060;max-width:276px;font-family:-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;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover{position:absolute;display:block}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}@-webkit-keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-caution{background-color:#fd7e14!important}a.bg-caution:focus,a.bg-caution:hover,button.bg-caution:focus,button.bg-caution:hover{background-color:#dc6502!important}.text-center{text-align:center!important}.font-weight-bold{font-weight:700!important}.text-white{color:#fff!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-caution{color:#fd7e14!important}a.text-caution:focus,a.text-caution:hover{color:#c35a02!important}.text-muted{color:#6c757d!important}@media print{*{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}pre{white-space:pre-wrap!important}pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h3,p{orphans:3;widows:3}h3{page-break-after:avoid}@page{size:a3}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}}:host{background-color:var(--bs-body-bs);color:var(--bs-body-color)}.bg-secondary{background-color:var(--bs-secondary-bg)!important}.bg-success{background-color:var(--bs-success-bg)!important}.bg-warning{background-color:var(--bs-warning-bg)!important}.bg-danger{background-color:var(--bs-danger-bg)!important}.bg-caution{background-color:var(--bs-caution-bg)!important}.btn,.btn:hover{color:var(--bs-body-color)}.btn:hover{text-decoration:none}.btn-secondary{color:var(--bs-btn-secondary-color)}.btn-secondary:hover{color:var(--bs-btn-secondary-hover-color)}.badge-secondary{color:var(--bs-badge-secondary-color);background-color:var(--bs-badge-secondary-bg)}.badge-success{color:var(--bs-badge-success-color);background-color:var(--bs-badge-success-bg)}.badge-info{color:var(--bs-badge-info-color);background-color:var(--bs-badge-info-bg)}.badge-warning{color:var(--bs-badge-warning-color);background-color:var(--bs-badge-warning-bg)}.badge-danger{color:var(--bs-badge-danger-color);background-color:var(--bs-badge-danger-bg)}.badge-caution{color:var(--bs-badge-caution-color);background-color:var(--bs-badge-caution-bg)}.modal-content{background-color:var(--bs-modal-content-bg);border-color:var(--bs-modal-content-border-color)}.modal-header{border-bottom:var(--bs-modal-header-border-color)}a{color:var(--bs-link-color)}a:hover{color:var(--bs-link-hover-color)}.popover{background-color:var(--bs-popover-bg)}.table{color:var(--bs-body-color)}.table-hover tbody tr:hover{color:var(--bs-body-color);background-color:var(--bs-table-hover-bg)}.progress{background-color:var(--bs-progress-bg)}.breadcrumb a{color:var(--bs-link-color)}.breadcrumb{background-color:var(--bs-breadcrumb-bg)}.breadcrumb-item.active,.breadcrumb-item:before{color:var(--bs-breadcrumb-active-color)}',""]),e.exports=r},function(e,t,n){var r=n(1),o=n(19),i=n(20),s=r((function(e){return e[1]}));s.i(o),s.i(i),s.push([e.i,"",""]),e.exports=s},function(e,t,n){var r=n(1)((function(e){return e[1]}));r.push([e.i,":host{line-height:1.15;margin:0;font-family:-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;font-size:1rem;font-weight:400;line-height:1.5;text-align:left}.container-fluid,:host{background-color:var(--bs-body-bg)}.display-4 small{font-weight:300}.theme-switch{float:right;top:0;top:var(--top-offset,0);position:-webkit-sticky;position:sticky;z-index:20;margin-right:1em;margin-left:1em;padding-top:.5em}",""]),e.exports=r},function(e,t,n){var r=n(1)((function(e){return e[1]}));r.push([e.i,'/*!\n * Bootstrap Reboot v4.5.3 (https://getbootstrap.com/)\n * Copyright 2011-2020 The Bootstrap Authors\n * Copyright 2011-2020 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */*{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}header{display:block}[tabindex="-1"]:focus:not(.focus-visible),[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}h1,h3,h5{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}ol{margin-bottom:1rem}ol{margin-top:0}ol ol{margin-bottom:0}b{font-weight:bolder}small{font-size:80%}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,pre{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}th{text-align:inherit;text-align:-webkit-match-parent}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button{text-transform:none}[role=button]{cursor:pointer}[type=button],button{-webkit-appearance:button}[type=button]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox]{box-sizing:border-box;padding:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[hidden]{display:none!important}:host(:not([theme=dark])){--bs-link-color:#007bff;--bs-link-hover-color:#0056b3;--bs-breadcrumb-bg:#e9ecef;--bs-breadcrumb-active-color:#6c757d;--bs-body-bg:#fff;--bs-body-color:#212529;--bs-table-border-color:#dee2e6;--bs-table-hover-bg:rgba(0,0,0,0.075);--bs-popover-bg:#fff;--bs-popover-header-bg:#f7f7f7;--bs-modal-content-bg:#fff;--bs-modal-content-border-color:rgba(0,0,0,0.2);--bs-modal-header-border-color:#dee2e6;--bs-progress-bg:#e9ecef;--bs-table-caution-bg:#fedbbd;--bs-table-caution-hover-bg:#f57102;--bs-badge-caution-color:#212529;--bs-badge-caution-bg:#fd7e14;--bs-btn-caution-color:#212529;--bs-btn-caution-hover-color:#fff;--bs-caution-bg:#fd7e14;--bs-table-primary-bg:#b8daff;--bs-table-primary-hover-bg:#006fe6;--bs-badge-primary-color:#fff;--bs-badge-primary-bg:#007bff;--bs-btn-primary-color:#fff;--bs-btn-primary-hover-color:#fff;--bs-primary-bg:#007bff;--bs-table-secondary-bg:#d6d8db;--bs-table-secondary-hover-bg:#60686f;--bs-badge-secondary-color:#fff;--bs-badge-secondary-bg:#6c757d;--bs-btn-secondary-color:#fff;--bs-btn-secondary-hover-color:#fff;--bs-secondary-bg:#6c757d;--bs-table-success-bg:#c3e6cb;--bs-table-success-hover-bg:#23923d;--bs-badge-success-color:#fff;--bs-badge-success-bg:#28a745;--bs-btn-success-color:#fff;--bs-btn-success-hover-color:#fff;--bs-success-bg:#28a745;--bs-table-info-bg:#bee5eb;--bs-table-info-hover-bg:#148ea1;--bs-badge-info-color:#fff;--bs-badge-info-bg:#17a2b8;--bs-btn-info-color:#fff;--bs-btn-info-hover-color:#fff;--bs-info-bg:#17a2b8;--bs-table-warning-bg:#ffeeba;--bs-table-warning-hover-bg:#edb100;--bs-badge-warning-color:#212529;--bs-badge-warning-bg:#ffc107;--bs-btn-warning-color:#212529;--bs-btn-warning-hover-color:#212529;--bs-warning-bg:#ffc107;--bs-table-danger-bg:#f5c6cb;--bs-table-danger-hover-bg:#d32535;--bs-badge-danger-color:#fff;--bs-badge-danger-bg:#dc3545;--bs-btn-danger-color:#fff;--bs-btn-danger-hover-color:#fff;--bs-danger-bg:#dc3545;--bs-table-light-bg:#fdfdfe;--bs-table-light-hover-bg:#e9ecef;--bs-badge-light-color:#212529;--bs-badge-light-bg:#f8f9fa;--bs-btn-light-color:#212529;--bs-btn-light-hover-color:#212529;--bs-light-bg:#f8f9fa;--bs-table-dark-bg:#c6c8ca;--bs-table-dark-hover-bg:#292d32;--bs-badge-dark-color:#fff;--bs-badge-dark-bg:#343a40;--bs-btn-dark-color:#fff;--bs-btn-dark-hover-color:#fff;--bs-dark-bg:#343a40;--bs-anchor:#fff}:host([theme=dark]){--bs-link-color:#00bc8c;--bs-link-hover-color:#d9d9d9;--bs-breadcrumb-bg:#444;--bs-breadcrumb-active-color:#888;--bs-body-bg:#222;--bs-body-color:#fff;--bs-table-border-color:#444;--bs-table-hover-bg:rgba(0,0,0,0.075);--bs-popover-bg:#303030;--bs-popover-header-bg:#444;--bs-modal-content-bg:#303030;--bs-modal-content-border-color:#444;--bs-modal-header-border-color:#444;--bs-progress-bg:#444;--bs-table-primary-bg:#375a7f;--bs-table-primary-hover-bg:#2f4d6d;--bs-badge-primary-color:#fff;--bs-badge-primary-bg:#375a7f;--bs-btn-primary-color:#fff;--bs-btn-primary-hover-color:#fff;--bs-primary-bg:#375a7f;--bs-table-secondary-bg:#444;--bs-table-secondary-hover-bg:#373737;--bs-badge-secondary-color:#fff;--bs-badge-secondary-bg:#444;--bs-btn-secondary-color:#fff;--bs-btn-secondary-hover-color:#fff;--bs-secondary-bg:#444;--bs-table-success-bg:#00bc8c;--bs-table-success-hover-bg:#00a379;--bs-badge-success-color:#fff;--bs-badge-success-bg:#00bc8c;--bs-btn-success-color:#fff;--bs-btn-success-hover-color:#fff;--bs-success-bg:#00bc8c;--bs-table-info-bg:#3498db;--bs-table-info-hover-bg:#258cd1;--bs-badge-info-color:#fff;--bs-badge-info-bg:#3498db;--bs-btn-info-color:#fff;--bs-btn-info-hover-color:#fff;--bs-info-bg:#3498db;--bs-table-warning-bg:#f39c12;--bs-table-warning-hover-bg:#e08e0b;--bs-badge-warning-color:#212529;--bs-badge-warning-bg:#f39c12;--bs-btn-warning-color:#212529;--bs-btn-warning-hover-color:#fff;--bs-warning-bg:#f39c12;--bs-table-danger-bg:#e74c3c;--bs-table-danger-hover-bg:#e43725;--bs-badge-danger-color:#fff;--bs-badge-danger-bg:#e74c3c;--bs-btn-danger-color:#fff;--bs-btn-danger-hover-color:#fff;--bs-danger-bg:#e74c3c;--bs-table-light-bg:#adb5bd;--bs-table-light-hover-bg:#9fa8b2;--bs-badge-light-color:#212529;--bs-badge-light-bg:#adb5bd;--bs-btn-light-color:#212529;--bs-btn-light-hover-color:#212529;--bs-light-bg:#adb5bd;--bs-table-caution-bg:#fd7e14;--bs-table-caution-hover-bg:#f57102;--bs-badge-caution-color:#212529;--bs-badge-caution-bg:#fd7e14;--bs-btn-caution-color:#212529;--bs-btn-caution-hover-color:#fff;--bs-caution-bg:#fd7e14;--bs-table-dark-bg:#303030;--bs-table-dark-hover-bg:#232323;--bs-badge-dark-color:#fff;--bs-badge-dark-bg:#303030;--bs-btn-dark-color:#fff;--bs-btn-dark-hover-color:#fff;--bs-dark-bg:#303030}:host(:not([theme=dark])){--prism-maintext:#000;--prism-background:#f5f2f0;--prism-text:#999;--prism-keywords:#07a;--prism-punctuation:#999;--prism-functions:#dd4a68;--prism-strings:#690;--prism-namespace:#708090;--prism-names:#905;--prism-symbol:#dd4a68;--prism-url:#67cdcc}:host([theme=dark]){--prism-maintext:#ccc;--prism-background:#2d2d2d;--prism-text:#999;--prism-keywords:#cc99cd;--prism-punctuation:#ccc;--prism-functions:#f08d49;--prism-strings:#7ec699;--prism-namespace:#e2777a;--prism-names:#6196cc;--prism-symbol:#f8c555;--prism-url:#9a6e3a}:host(:not([theme=dark])){--mut-file-ts-color:#498ba7;--mut-file-scala-color:#b8383d;--mut-file-java-color:#b8383d;--mut-file-js-color:#b7b73b;--mut-file-php-color:#9068b0;--mut-file-html-color:#498ba7;--mut-file-csharp-color:#498ba7;--mut-file-vue-color:#7fae42}:host([theme=dark]){--mut-file-ts-color:#519aba;--mut-file-scala-color:#cc3e44;--mut-file-java-color:#cc3e44;--mut-file-js-color:#cbcb41;--mut-file-php-color:#a074c4;--mut-file-html-color:#519aba;--mut-file-csharp-color:#519aba;--mut-file-vue-color:#8dc149}:host(:not([theme=dark])){--mut-danger-bg:#f2dede;--mut-success-bg:#dff0d8;--mut-warning-bg:#fcf8e3;--mut-caution-bg:#ffedde;--mut-table-icon-color:#498ba7}:host([theme=dark]){--mut-danger-bg:#270c0c;--mut-success-bg:#2f3d33;--mut-warning-bg:#24200b;--mut-caution-bg:#441f01;--mut-table-icon-color:#519aba}',""]),e.exports=r},function(e,t,n){var r=n(1)((function(e){return e[1]}));r.push([e.i,'/*!\n * Bootstrap Reboot v4.5.3 (https://getbootstrap.com/)\n * Copyright 2011-2020 The Bootstrap Authors\n * Copyright 2011-2020 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */*{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}header{display:block}[tabindex="-1"]:focus:not(.focus-visible),[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}h1,h3,h5{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}ol{margin-bottom:1rem}ol{margin-top:0}ol ol{margin-bottom:0}b{font-weight:bolder}small{font-size:80%}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,pre{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}th{text-align:inherit;text-align:-webkit-match-parent}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button{text-transform:none}[role=button]{cursor:pointer}[type=button],button{-webkit-appearance:button}[type=button]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox]{box-sizing:border-box;padding:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[hidden]{display:none!important}:host{position:relative;display:inline-block;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.popover{width:200px;z-index:1;top:125%;margin-left:-100px;visibility:hidden;opacity:0;transition:.1s ease-in}.popover,.popover:before{position:absolute;left:50%}.popover:before{content:"";top:-10px;margin-left:-6px;border:6px solid transparent;border-bottom-color:#555}.popover-caution:before{border-bottom-color:var(--bs-caution-bg)}.popover-secondary:before{border-bottom-color:var(--bs-secondary-bg)}.popover-success:before{border-bottom-color:var(--bs-success-bg)}.popover-warning:before{border-bottom-color:var(--bs-warning-bg)}.popover-danger:before{border-bottom-color:var(--bs-danger-bg)}.popover.show{visibility:visible;opacity:1}',""]),e.exports=r},function(e,t,n){var r=n(1)((function(e){return e[1]}));r.push([e.i,".badge{cursor:pointer}.disabled-code{text-decoration:line-through}span.badge{text-shadow:none}",""]),e.exports=r},function(e,t,n){(function(t){var n=function(e){var t=/\blang(?:uage)?-([\w-]+)\b/i,n=0,r={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,"&amp;").replace(/</g,"&lt;").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:++n}),e.__id},clone:function e(t,n){var o,i;switch(n=n||{},r.util.type(t)){case"Object":if(i=r.util.objId(t),n[i])return n[i];for(var s in o={},n[i]=o,t)t.hasOwnProperty(s)&&(o[s]=e(t[s],n));return o;case"Array":return i=r.util.objId(t),n[i]?n[i]:(o=[],n[i]=o,t.forEach((function(t,r){o[r]=e(t,n)})),o);default:return t}},getLanguage:function(e){for(;e&&!t.test(e.className);)e=e.parentElement;return e?(e.className.match(t)||[,"none"])[1].toLowerCase():"none"},currentScript:function(){if("undefined"==typeof document)return null;if("currentScript"in document)return document.currentScript;try{throw new Error}catch(r){var e=(/at [^(\r\n]*\((.*):.+:.+\)$/i.exec(r.stack)||[])[1];if(e){var t=document.getElementsByTagName("script");for(var n in t)if(t[n].src==e)return t[n]}return null}},isActive:function(e,t,n){for(var r="no-"+t;e;){var o=e.classList;if(o.contains(t))return!0;if(o.contains(r))return!1;e=e.parentElement}return!!n}},languages:{extend:function(e,t){var n=r.util.clone(r.languages[e]);for(var o in t)n[o]=t[o];return n},insertBefore:function(e,t,n,o){var i=(o=o||r.languages)[e],s={};for(var a in i)if(i.hasOwnProperty(a)){if(a==t)for(var l in n)n.hasOwnProperty(l)&&(s[l]=n[l]);n.hasOwnProperty(a)||(s[a]=i[a])}var c=o[e];return o[e]=s,r.languages.DFS(r.languages,(function(t,n){n===c&&t!=e&&(this[t]=s)})),s},DFS:function e(t,n,o,i){i=i||{};var s=r.util.objId;for(var a in t)if(t.hasOwnProperty(a)){n.call(t,a,t[a],o||a);var l=t[a],c=r.util.type(l);"Object"!==c||i[s(l)]?"Array"!==c||i[s(l)]||(i[s(l)]=!0,e(l,n,a,i)):(i[s(l)]=!0,e(l,n,null,i))}}},plugins:{},highlightAll:function(e,t){r.highlightAllUnder(document,e,t)},highlightAllUnder:function(e,t,n){var o={callback:n,container:e,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};r.hooks.run("before-highlightall",o),o.elements=Array.prototype.slice.apply(o.container.querySelectorAll(o.selector)),r.hooks.run("before-all-elements-highlight",o);for(var i,s=0;i=o.elements[s++];)r.highlightElement(i,!0===t,o.callback)},highlightElement:function(n,o,i){var s=r.util.getLanguage(n),a=r.languages[s];n.className=n.className.replace(t,"").replace(/\s+/g," ")+" language-"+s;var l=n.parentElement;l&&"pre"===l.nodeName.toLowerCase()&&(l.className=l.className.replace(t,"").replace(/\s+/g," ")+" language-"+s);var c={element:n,language:s,grammar:a,code:n.textContent};function d(e){c.highlightedCode=e,r.hooks.run("before-insert",c),c.element.innerHTML=c.highlightedCode,r.hooks.run("after-highlight",c),r.hooks.run("complete",c),i&&i.call(c.element)}if(r.hooks.run("before-sanity-check",c),!c.code)return r.hooks.run("complete",c),void(i&&i.call(c.element));if(r.hooks.run("before-highlight",c),c.grammar)if(o&&e.Worker){var u=new Worker(r.filename);u.onmessage=function(e){d(e.data)},u.postMessage(JSON.stringify({language:c.language,code:c.code,immediateClose:!0}))}else d(r.highlight(c.code,c.grammar,c.language));else d(r.util.encode(c.code))},highlight:function(e,t,n){var i={code:e,grammar:t,language:n};return r.hooks.run("before-tokenize",i),i.tokens=r.tokenize(i.code,i.grammar),r.hooks.run("after-tokenize",i),o.stringify(r.util.encode(i.tokens),i.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var r in n)t[r]=n[r];delete t.rest}var o=new s;return a(o,o.head,e),i(e,o,t,o.head,0),function(e){var t=[],n=e.head.next;for(;n!==e.tail;)t.push(n.value),n=n.next;return t}(o)},hooks:{all:{},add:function(e,t){var n=r.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=r.hooks.all[e];if(n&&n.length)for(var o,i=0;o=n[i++];)o(t)}},Token:o};function o(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length}function i(e,t,n,s,c,d){for(var u in n)if(n.hasOwnProperty(u)&&n[u]){var p=n[u];p=Array.isArray(p)?p:[p];for(var h=0;h<p.length;++h){if(d&&d.cause==u+","+h)return;var b=p[h],f=b.inside,m=!!b.lookbehind,g=!!b.greedy,v=0,y=b.alias;if(g&&!b.pattern.global){var w=b.pattern.toString().match(/[imsuy]*$/)[0];b.pattern=RegExp(b.pattern.source,w+"g")}for(var x=b.pattern||b,k=s.next,_=c;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 E=1;if(g&&k!=t.tail.prev){if(x.lastIndex=_,!(T=x.exec(e)))break;var P=T.index+(m&&T[1]?T[1].length:0),C=T.index+T[0].length,M=_;for(M+=k.value.length;P>=M;)M+=(k=k.next).value.length;if(_=M-=k.value.length,k.value instanceof o)continue;for(var $=k;$!==t.tail&&(M<C||"string"==typeof $.value);$=$.next)E++,M+=$.value.length;E--,S=e.slice(_,M),T.index-=_}else{x.lastIndex=0;var T=x.exec(S)}if(T){m&&(v=T[1]?T[1].length:0);P=T.index+v;var j=T[0].slice(v),N=(C=P+j.length,S.slice(0,P)),A=S.slice(C),z=_+S.length;d&&z>d.reach&&(d.reach=z);var F=k.prev;N&&(F=a(t,F,N),_+=N.length),l(t,F,E),k=a(t,F,new o(u,f?r.tokenize(j,f):j,y,j)),A&&a(t,k,A),E>1&&i(e,t,n,k.prev,_,{cause:u+","+h,reach:z})}}}}}}function s(){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 a(e,t,n){var r=t.next,o={value:n,prev:t,next:r};return t.next=o,r.prev=o,e.length++,o}function l(e,t,n){for(var r=t.next,o=0;o<n&&r!==e.tail;o++)r=r.next;t.next=r,r.prev=t,e.length-=o}if(e.Prism=r,o.stringify=function e(t,n){if("string"==typeof t)return t;if(Array.isArray(t)){var o="";return t.forEach((function(t){o+=e(t,n)})),o}var i={type:t.type,content:e(t.content,n),tag:"span",classes:["token",t.type],attributes:{},language:n},s=t.alias;s&&(Array.isArray(s)?Array.prototype.push.apply(i.classes,s):i.classes.push(s)),r.hooks.run("wrap",i);var a="";for(var l in i.attributes)a+=" "+l+'="'+(i.attributes[l]||"").replace(/"/g,"&quot;")+'"';return"<"+i.tag+' class="'+i.classes.join(" ")+'"'+a+">"+i.content+"</"+i.tag+">"},!e.document)return e.addEventListener?(r.disableWorkerMessageHandler||e.addEventListener("message",(function(t){var n=JSON.parse(t.data),o=n.language,i=n.code,s=n.immediateClose;e.postMessage(r.highlight(i,r.languages[o],o)),s&&e.close()}),!1),r):r;var c=r.util.currentScript();function d(){r.manual||r.highlightAll()}if(c&&(r.filename=c.src,c.hasAttribute("data-manual")&&(r.manual=!0)),!r.manual){var u=document.readyState;"loading"===u||"interactive"===u&&c&&c.defer?document.addEventListener("DOMContentLoaded",d):window.requestAnimationFrame?window.requestAnimationFrame(d):window.setTimeout(d,16)}return r}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{});e.exports&&(e.exports=n),void 0!==t&&(t.Prism=n)}).call(this,n(21))},function(e,t,n){var r=n(1)((function(e){return e[1]}));r.push([e.i,'/*!\n * Bootstrap Reboot v4.5.3 (https://getbootstrap.com/)\n * Copyright 2011-2020 The Bootstrap Authors\n * Copyright 2011-2020 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */*{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}header{display:block}[tabindex="-1"]:focus:not(.focus-visible),[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}h1,h3,h5{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}ol{margin-bottom:1rem}ol{margin-top:0}ol ol{margin-bottom:0}b{font-weight:bolder}small{font-size:80%}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,pre{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}table{border-collapse:collapse}th{text-align:inherit;text-align:-webkit-match-parent}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button{text-transform:none}[role=button]{cursor:pointer}[type=button],button{-webkit-appearance:button}[type=button]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox]{box-sizing:border-box;padding:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[hidden]{display:none!important}.bg-danger-light{background-color:#f2dede;background-color:var(--mut-danger-bg,#f2dede)}.bg-success-light{background-color:#dff0d8;background-color:var(--mut-success-bg,#dff0d8)}.bg-warning-light{background-color:#fcf8e3;background-color:var(--mut-warning-bg,#fcf8e3)}.bg-caution-light{background-color:var(--mut-caution-bg)}#report-code-block{overflow:visible}',""]),e.exports=r},function(e,t,n){var r=n(1)((function(e){return e[1]}));r.push([e.i,".table a{display:block}th.rotate{height:80px;white-space:nowrap;padding-bottom:10px}th.rotate>div{transform:translate(27px) rotate(325deg);width:30px}.table-no-top,.table-no-top>thead>tr>th{border-width:0}.table-no-top{margin-bottom:0}.table .no-border-right{border-right:none}.table .no-border-left{border-left:none}table td.icon{color:var(--mut-table-icon-color);padding-left:10px;padding-right:2px}.octicon{fill:currentColor}table td.vertical-middle,table th.vertical-middle{vertical-align:middle}.text-default{color:#777}",""]),e.exports=r},function(e,t,n){var r=n(1)((function(e){return e[1]}));r.push([e.i,".modal-dialog{margin-top:5.15rem}",""]),e.exports=r},function(e,t,n){var r=n(1)((function(e){return e[1]}));r.push([e.i,".legend{position:-webkit-sticky;position:sticky;top:0;top:var(--top-offset,0);background:var(--bs-body-bg);margin-top:.5rem;margin-bottom:.5rem;padding-top:.5rem;padding-bottom:.5rem;z-index:10}.badge{font-size:1em;cursor:pointer}",""]),e.exports=r},function(e,t,n){var r=n(1)((function(e){return e[1]}));r.push([e.i,'#darkTheme{position:absolute;right:100vw}#darkTheme+label{--i:0;--j:calc(1 - var(--i));display:grid;grid-gap:.15em .06em;overflow:hidden;padding:.15em;height:1.5em;border-radius:.75em;background:hsl(199,98%,calc(var(--j)*48%));color:transparent;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;transition:.3s;cursor:pointer}#darkTheme+label:after,#darkTheme+label:before{width:1.2em;height:1.2em;transition:inherit;content:""}#darkTheme+label:before{transform-origin:20% 20%;transform:translate(calc(var(--i)*(100% + .06em))) scale(calc(1 - var(--i)*0.8));background:#ff0;--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%);-webkit-clip-path:var(--poly);clip-path:var(--poly)}#darkTheme+label:after{grid-column:2;border-radius:50%;transform:translatey(calc(var(--i)*(-130% - .15em)));background:radial-gradient(circle at 19%,at 19%,transparent 41%,#fff 43%);background:radial-gradient(circle at 19% 19%,transparent 41%,#fff 43%)}#darkTheme:checked+label{--i:1}.check-box-container{width:2.9em}',""]),e.exports=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.calculateMetrics=void 0;const r=n(2),o=n(0),i=n(2);function s(e,t){const n=a(r.flatMap(Object.values(e),(e=>e.mutants)));return{name:t,childResults:function(e){const t=i.groupBy(Object.entries(e),(e=>e[0].split("/")[0]));return Object.keys(t).map((e=>{if(t[e].length>1||t[e][0][0]!==e){const n={};return t[e].forEach((t=>n[t[0].substr(e.length+1)]=t[1])),s(n,e)}return function(e,t){return{file:t,name:e,childResults:[],metrics:a(t.mutants)}}(t[e][0][0],t[e][0][1])})).sort(r.compareNames)}(e),metrics:n}}function a(e){const t=t=>e.filter((e=>e.status===t)).length,n=t(o.MutantStatus.Killed),r=t(o.MutantStatus.Timeout),i=t(o.MutantStatus.Survived),s=t(o.MutantStatus.NoCoverage),a=t(o.MutantStatus.RuntimeError),l=t(o.MutantStatus.CompileError),c=t(o.MutantStatus.Ignored),d=r+n,u=i+s,p=d+i,h=u+d,b=a+l;return{killed:n,timeout:r,survived:i,noCoverage:s,runtimeErrors:a,compileErrors:l,ignored:c,totalDetected:d,totalUndetected:u,totalCovered:p,totalValid:h,totalInvalid:b,mutationScore:h>0?d/h*100:NaN,totalMutants:h+b+c,mutationScoreBasedOnCoveredCode:h>0?d/p*100||0:NaN}}t.calculateMetrics=function(e){return s(r.normalizeFileNames(e),"All files")}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MutantStatus=void 0,function(e){e.Killed="Killed",e.Survived="Survived",e.NoCoverage="NoCoverage",e.CompileError="CompileError",e.RuntimeError="RuntimeError",e.Timeout="Timeout",e.Ignored="Ignored"}(t.MutantStatus||(t.MutantStatus={}))},function(e){e.exports=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema#","$id":"http://stryker-mutator.io/report.schema.json","title":"MutationTestResult","description":"Schema for a mutation testing report.","type":"object","required":["schemaVersion","thresholds","files"],"properties":{"config":{"description":"Free-format object that represents the configuration used to run mutation testing.","type":"object"},"schemaVersion":{"type":"string","pattern":"^1(\\\\.\\\\d*)?$","description":"Major version of this report. Used for compatibility.","examples":["1"]},"files":{"type":"object","title":"FileResultDictionary","description":"All mutated files.","additionalProperties":{"type":"object","title":"FileResult","description":"Mutated file, with the relative path of the file as the key.","required":["language","source","mutants"],"properties":{"language":{"description":"Programming language that is used. Used for code highlighting, see https://prismjs.com/#examples.","examples":["javascript","typescript","cs","scala","java"],"type":"string"},"mutants":{"type":"array","uniqueItems":true,"items":{"type":"object","title":"MutantResult","description":"Single mutation.","required":["id","mutatorName","location","status"],"properties":{"coveredBy":{"type":"array","description":"The test ids that covered this mutant. If a mutation testing framework doesn\'t measure this information, it can simply be left out.","items":{"type":"string"}},"description":{"type":"string","description":"Description of the applied mutation.","examples":["removed call to java/io/Writer::write"]},"duration":{"type":"number","description":"The net time it took to test this mutant in milliseconds. This is the time measurement without overhead from the mutation testing framework."},"id":{"type":"string","description":"Unique id, can be used to correlate this mutant across reports.","examples":["321321"]},"killedBy":{"type":"array","description":"The test ids that killed this mutant. It is a best practice to \\"bail\\" on first failing test, in which case you can fill this array with that one test.","items":{"type":"string"}},"location":{"$ref":"#/definitions/location"},"mutatorName":{"type":"string","description":"Category of the mutation.","examples":["ConditionalExpression","EqualityOperator","LogicalOperator"]},"replacement":{"type":"string","description":"Actual mutation that has been applied.","examples":["-","+","&&","||"]},"static":{"type":"boolean","description":"A static mutant means that it was loaded once at during initialization, this makes it slow or even impossible to test, depending on the mutation testing framework."},"status":{"type":"string","title":"MutantStatus","description":"Result of the mutation.","enum":["Killed","Survived","NoCoverage","CompileError","RuntimeError","Timeout","Ignored"]},"testsCompleted":{"type":"number","description":"The number of tests actually completed in order to test this mutant. Can differ from \\"coveredBy\\" because of bailing a mutant test run after first failing test."}}}},"source":{"description":"Full source code of the mutated file, this is used for highlighting.","examples":["using System; using....."],"type":"string"}}}},"testFiles":{"type":"object","title":"TestFileDefinitionDictionary","description":"Test file definitions by file path OR class name.","additionalProperties":{"type":"object","title":"TestFile","description":"A file containing one or more tests","required":["tests"],"properties":{"tests":{"type":"array","items":{"type":"object","title":"TestDefinition","required":["id","name"],"description":"A test in your test file.","properties":{"id":{"type":"string","description":"Unique id of the test, used to correlate what test killed a mutant."},"name":{"type":"string","description":"Name of the test, used to display the test."},"location":{"$ref":"#/definitions/openEndLocation"}}}}}}},"thresholds":{"type":"object","title":"Thresholds","description":"Thresholds for the status of the reported application.","required":["high","low"],"properties":{"high":{"type":"integer","description":"Higher bound threshold.","minimum":0,"maximum":100,"examples":[80]},"low":{"type":"integer","description":"Lower bound threshold.","minimum":0,"maximum":100,"examples":[60]}}},"projectRoot":{"type":"string","description":"The optional location of the project root.","examples":["C:\\\\Projects\\\\project-under-test","/home/user/projects/project-under-test"]},"performance":{"type":"object","title":"PerformanceStatistics","description":"The performance statistics per phase. Total time should be roughly equal to the sum of all these.","required":["setup","initialRun","mutation"],"properties":{"setup":{"type":"number","description":"Time it took to run the setup phase in milliseconds."},"initialRun":{"type":"number","description":"Time it took to run the initial test phase (dry-run) in milliseconds."},"mutation":{"type":"number","description":"Time it took to run the mutation test phase in milliseconds."}}},"framework":{"type":"object","title":"FrameworkInformation","description":"Extra information about the framework used","required":["name"],"properties":{"name":{"type":"string","description":"Name of the framework used.","examples":["Stryker","Stryker4s","Stryker.NET","Infection PHP","Pitest"]},"version":{"type":"string","description":"Version of the framework."},"branding":{"type":"object","title":"BrandingInformation","description":"Extra branding information about the framework used.","required":["homepageUrl"],"properties":{"homepageUrl":{"type":"string","format":"uri","description":"URL to the homepage of the framework."},"imageUrl":{"type":"string","description":"URL to an image for the framework, can be a data URL."}}},"dependencies":{"type":"object","title":"Dependencies","description":"Dependencies used by the framework. Key-value pair of dependencies and their versions.","additionalProperties":{"type":"string"}}}},"system":{"type":"object","title":"SystemInformation","description":"Information about the system that performed mutation testing.","required":["ci"],"properties":{"ci":{"description":"Did mutation testing run in a Continuous Integration environment (pipeline)? Note that there is no way of knowing this for sure. It\'s done on a best-effort basis.","type":"boolean"},"os":{"type":"object","title":"OSInformation","required":["platform"],"properties":{"description":{"type":"string","description":"Human-readable description of the OS","examples":["Windows 10 Pro","Debian Buster","Ubuntu 20.04.1 LTS"]},"platform":{"type":"string","description":"Platform identifier","examples":["linux","win32"]},"version":{"type":"string","description":"Version of the OS or distribution","examples":["10.0.19041"]}}},"cpu":{"type":"object","title":"CpuInformation","required":["logicalCores"],"properties":{"baseClock":{"type":"number","description":"Clock speed in MHz"},"logicalCores":{"type":"number"},"model":{"type":"string","examples":["Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz"]}}},"ram":{"title":"RamInformation","type":"object","required":["total"],"properties":{"total":{"type":"number","description":"The total RAM of the system that performed mutation testing in MB."}}}}}},"definitions":{"position":{"type":"object","title":"Position","description":"Position of a mutation. Both line and column start at one.","required":["line","column"],"properties":{"line":{"type":"integer","minimum":1,"examples":[4]},"column":{"type":"integer","minimum":1,"examples":[3]}}},"location":{"type":"object","title":"Location","description":"A location with start and end. Start is inclusive, end is exclusive.","required":["start","end"],"properties":{"start":{"$ref":"#/definitions/position"},"end":{"$ref":"#/definitions/position"}}},"openEndLocation":{"type":"object","title":"OpenEndLocation","description":"A location where \\"end\\" is not required. Start is inclusive, end is exclusive.","required":["start"],"properties":{"start":{"$ref":"#/definitions/position"},"end":{"$ref":"#/definitions/position"}}}}}')},function(e,t,n){var r=n(1)((function(e){return e[1]}));r.push([e.i,'/**\n * prism.js tomorrow night eighties for JavaScript, CoffeeScript, CSS and HTML\n * Based on https://github.com/chriskempson/tomorrow-theme\n * @author Rose Pritchard\n */\n\ncode[class*="language-"],\npre[class*="language-"] {\n\tcolor: var(--prism-maintext, #ccc);\n\tbackground: none;\n\tfont-family: Consolas, Monaco, \'Andale Mono\', \'Ubuntu Mono\', monospace;\n\tfont-size: 1em;\n\ttext-align: left;\n\twhite-space: pre;\n\tword-spacing: normal;\n\tword-break: normal;\n\tword-wrap: normal;\n\tline-height: 1.5;\n\n\t-moz-tab-size: 4;\n\t-o-tab-size: 4;\n\ttab-size: 4;\n\n\t-webkit-hyphens: none;\n\t-moz-hyphens: none;\n\t-ms-hyphens: none;\n\thyphens: none;\n\n}\n\n/* Code blocks */\npre[class*="language-"] {\n\tpadding: 1em;\n\tmargin: .5em 0;\n\toverflow: auto;\n}\n\n:not(pre) > code[class*="language-"],\npre[class*="language-"] {\n\tbackground: var(--prism-background, #2d2d2d);\n}\n\n/* Inline code */\n:not(pre) > code[class*="language-"] {\n\tpadding: .1em;\n\tborder-radius: .3em;\n\twhite-space: normal;\n}\n\n.token.comment,\n.token.block-comment,\n.token.prolog,\n.token.doctype,\n.token.cdata {\n\tcolor: var(--prism-text, #999);\n}\n\n.token.punctuation {\n\tcolor: var(--prism-punctuation, #ccc);\n}\n\n.token.namespace {\n color: var(--prism-namespace, #e2777a);\n}\n\n.token.tag,\n.token.attr-name,\n.token.deleted {\n color: var(--prism-names, #e2777a);\n}\n\n.token.function-name {\n\tcolor: var(--prism-punctuation, #6196cc);\n}\n\n.token.boolean,\n.token.number,\n.token.function {\n\tcolor: var(--prism-functions, #f08d49);\n}\n\n.token.property,\n.token.class-name,\n.token.constant,\n.token.symbol {\n\tcolor: var(--prism-symbol, #f8c555);\n}\n\n.token.selector,\n.token.important,\n.token.atrule,\n.token.keyword,\n.token.builtin {\n\tcolor: var(--prism-keywords, #cc99cd);\n}\n\n.token.string,\n.token.char,\n.token.attr-value,\n.token.regex,\n.token.variable {\n\tcolor: var(--prism-strings, #7ec699);\n}\n\n.token.operator,\n.token.entity,\n.token.url {\n\tcolor: var(--prism-url, #67cdcc);\n}\n\n.token.important,\n.token.bold {\n\tfont-weight: bold;\n}\n.token.italic {\n\tfont-style: italic;\n}\n\n.token.entity {\n\tcursor: help;\n}\n\n.token.inserted {\n\tcolor: green;\n}\n',""]),e.exports=r},function(e,t,n){var r=n(1)((function(e){return e[1]}));r.push([e.i,'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',""]),e.exports=r},function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t){!function(){if("undefined"!=typeof self&&self.Prism&&self.document){var e="line-numbers",t=/\n(?!$)/g,n=Prism.plugins.lineNumbers={getLine:function(t,n){if("PRE"===t.tagName&&t.classList.contains(e)){var r=t.querySelector(".line-numbers-rows"),o=parseInt(t.getAttribute("data-start"),10)||1,i=o+(r.children.length-1);n<o&&(n=o),n>i&&(n=i);var s=n-o;return r.children[s]}},resize:function(e){i([e])},assumeViewportIndependence:!0},r=function(e){return e?window.getComputedStyle?getComputedStyle(e):e.currentStyle||null:null},o=void 0;window.addEventListener("resize",(function(){n.assumeViewportIndependence&&o===window.innerWidth||(o=window.innerWidth,i(Array.prototype.slice.call(document.querySelectorAll("pre.line-numbers"))))})),Prism.hooks.add("complete",(function(n){if(n.code){var r=n.element,o=r.parentNode;if(o&&/pre/i.test(o.nodeName)&&!r.querySelector(".line-numbers-rows")&&Prism.util.isActive(r,e)){r.classList.remove(e),o.classList.add(e);var s,a=n.code.match(t),l=a?a.length+1:1,c=new Array(l+1).join("<span></span>");(s=document.createElement("span")).setAttribute("aria-hidden","true"),s.className="line-numbers-rows",s.innerHTML=c,o.hasAttribute("data-start")&&(o.style.counterReset="linenumber "+(parseInt(o.getAttribute("data-start"),10)-1)),n.element.appendChild(s),i([o]),Prism.hooks.run("line-numbers",n)}}})),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(e)["white-space"];return"pre-wrap"===t||"pre-line"===t}))).length){var n=e.map((function(e){var n=e.querySelector("code"),r=e.querySelector(".line-numbers-rows");if(n&&r){var o=e.querySelector(".line-numbers-sizer"),i=n.textContent.split(t);o||((o=document.createElement("span")).className="line-numbers-sizer",n.appendChild(o)),o.innerHTML="0",o.style.display="block";var s=o.getBoundingClientRect().height;return o.innerHTML="",{element:e,lines:i,lineHeights:[],oneLinerHeight:s,sizer:o}}})).filter(Boolean);n.forEach((function(e){var t=e.sizer,n=e.lines,r=e.lineHeights,o=e.oneLinerHeight;r[n.length-1]=void 0,n.forEach((function(e,n){if(e&&e.length>1){var i=t.appendChild(document.createElement("span"));i.style.display="block",i.textContent=e}else r[n]=o}))})),n.forEach((function(e){for(var t=e.sizer,n=e.lineHeights,r=0,o=0;o<n.length;o++)void 0===n[o]&&(n[o]=t.children[r++].getBoundingClientRect().height)})),n.forEach((function(e){var t=e.sizer,n=e.element.querySelector(".line-numbers-rows");t.style.display="none",t.innerHTML="",e.lineHeights.forEach((function(e,t){n.children[t].style.height=e+"px"}))}))}}}()},function(e,t){Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|interface|extends|implements|trait|instanceof|new)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,boolean:/\b(?:true|false)\b/,function:/\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/}},function(e,t){Prism.languages.javascript=Prism.languages.extend("clike",{"class-name":[Prism.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])[_$A-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\.(?:prototype|constructor))/,lookbehind:!0}],keyword:[{pattern:/((?:^|})\s*)(?:catch|finally)\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|for|from|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}],number:/\b(?:(?:0[xX](?:[\dA-Fa-f](?:_[\dA-Fa-f])?)+|0[bB](?:[01](?:_[01])?)+|0[oO](?:[0-7](?:_[0-7])?)+)n?|(?:\d(?:_\d)?)+n|NaN|Infinity)\b|(?:\b(?:\d(?:_\d)?)+\.?(?:\d(?:_\d)?)*|\B\.(?:\d(?:_\d)?)+)(?:[Ee][+-]?(?:\d(?:_\d)?)+)?/,function:/#?[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),Prism.languages.javascript["class-name"][0].pattern=/(\b(?:class|interface|extends|implements|instanceof|new)\s+)[\w.\\]+/,Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*]|\\.|[^/\\\[\r\n])+\/[gimyus]{0,6}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:Prism.languages.regex},"regex-flags":/[a-z]+$/,"regex-delimiter":/^\/|\/$/}},"function-variable":{pattern:/#?[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)?\s*\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\))/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=>)/i,inside:Prism.languages.javascript},{pattern:/(\(\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]))(?:[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*\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",{"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]+/}}}),Prism.languages.markup&&Prism.languages.markup.tag.addInlined("script","javascript"),Prism.languages.js=Prism.languages.javascript},function(e,t){!function(e){e.languages.typescript=e.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},keyword:/\b(?:abstract|as|asserts|async|await|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|is|keyof|let|module|namespace|new|null|of|package|private|protected|public|readonly|return|require|set|static|super|switch|this|throw|try|type|typeof|undefined|var|void|while|with|yield)\b/,builtin:/\b(?:string|Function|any|number|boolean|Array|symbol|console|Promise|unknown|never)\b/}),delete e.languages.typescript.parameter;var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{"generic-function":{pattern:/#?[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(Prism)},function(e,t){!function(e){function t(e,t){return e.replace(/<<(\d+)>>/g,(function(e,n){return"(?:"+t[+n]+")"}))}function n(e,n,r){return RegExp(t(e,n),r||"")}function r(e,t){for(var n=0;n<t;n++)e=e.replace(/<<self>>/g,(function(){return"(?:"+e+")"}));return e.replace(/<<self>>/g,"[^\\s\\S]")}var o="bool byte char decimal double dynamic float int long object sbyte short string uint ulong ushort var void",i="class enum interface struct",s="add alias and ascending async await by descending from get global group into join let nameof not notnull on or orderby partial remove select set unmanaged value when where where",a="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(i),d=RegExp(l(o+" "+i+" "+s+" "+a)),u=l(i+" "+s+" "+a),p=l(o+" "+i+" "+a),h=r(/<(?:[^<>;=+\-*/%&|^]|<<self>>)*>/.source,2),b=r(/\((?:[^()]|<<self>>)*\)/.source,2),f=/@?\b[A-Za-z_]\w*\b/.source,m=t(/<<0>>(?:\s*<<1>>)?/.source,[f,h]),g=t(/(?!<<0>>)<<1>>(?:\s*\.\s*<<1>>)*/.source,[u,m]),v=/\[\s*(?:,\s*)*\]/.source,y=t(/<<0>>(?:\s*(?:\?\s*)?<<1>>)*(?:\s*\?)?/.source,[g,v]),w=t(/[^,()<>[\];=+\-*/%&|^]|<<0>>|<<1>>|<<2>>/.source,[h,b,v]),x=t(/\(<<0>>+(?:,<<0>>+)+\)/.source,[w]),k=t(/(?:<<0>>|<<1>>)(?:\s*(?:\?\s*)?<<2>>)*(?:\s*\?)?/.source,[x,g,v]),_={keyword:d,punctuation:/[<>()?,.:[\]]/},S=/'(?:[^\r\n'\\]|\\.|\\[Uux][\da-fA-F]{1,8})'/.source,E=/"(?:\\.|[^\\"\r\n])*"/.source,P=/@"(?:""|\\[\s\S]|[^\\"])*"(?!")/.source;e.languages.csharp=e.languages.extend("clike",{string:[{pattern:n(/(^|[^$\\])<<0>>/.source,[P]),lookbehind:!0,greedy:!0},{pattern:n(/(^|[^@$\\])<<0>>/.source,[E]),lookbehind:!0,greedy:!0},{pattern:RegExp(S),greedy:!0,alias:"character"}],"class-name":[{pattern:n(/(\busing\s+static\s+)<<0>>(?=\s*;)/.source,[g]),lookbehind:!0,inside:_},{pattern:n(/(\busing\s+<<0>>\s*=\s*)<<1>>(?=\s*;)/.source,[f,k]),lookbehind:!0,inside:_},{pattern:n(/(\busing\s+)<<0>>(?=\s*=)/.source,[f]),lookbehind:!0},{pattern:n(/(\b<<0>>\s+)<<1>>/.source,[c,m]),lookbehind:!0,inside:_},{pattern:n(/(\bcatch\s*\(\s*)<<0>>/.source,[g]),lookbehind:!0,inside:_},{pattern:n(/(\bwhere\s+)<<0>>/.source,[f]),lookbehind:!0},{pattern:n(/(\b(?:is(?:\s+not)?|as)\s+)<<0>>/.source,[y]),lookbehind:!0,inside:_},{pattern:n(/\b<<0>>(?=\s+(?!<<1>>)<<2>>(?:\s*[=,;:{)\]]|\s+(?:in|when)\b))/.source,[k,p,f]),inside:_}],keyword:d,number:/(?:\b0(?:x[\da-f_]*[\da-f]|b[01_]*[01])|(?:\B\.\d+(?:_+\d+)*|\b\d+(?:_+\d+)*(?:\.\d+(?:_+\d+)*)?)(?:e[-+]?\d+(?:_+\d+)*)?)(?:ul|lu|[dflmu])?\b/i,operator:/>>=?|<<=?|[-=]>|([-+&|])\1|~|\?\?=?|[-+*/%&|^!=<>]=?/,punctuation:/\?\.?|::|[{}[\];(),.:]/}),e.languages.insertBefore("csharp","number",{range:{pattern:/\.\./,alias:"operator"}}),e.languages.insertBefore("csharp","punctuation",{"named-parameter":{pattern:n(/([(,]\s*)<<0>>(?=\s*:)/.source,[f]),lookbehind:!0,alias:"punctuation"}}),e.languages.insertBefore("csharp","class-name",{namespace:{pattern:n(/(\b(?:namespace|using)\s+)<<0>>(?:\s*\.\s*<<0>>)*(?=\s*[;{])/.source,[f]),lookbehind:!0,inside:{punctuation:/\./}},"type-expression":{pattern:n(/(\b(?:default|typeof|sizeof)\s*\(\s*)(?:[^()\s]|\s(?!\s*\))|<<0>>)*(?=\s*\))/.source,[b]),lookbehind:!0,alias:"class-name",inside:_},"return-type":{pattern:n(/<<0>>(?=\s+(?:<<1>>\s*(?:=>|[({]|\.\s*this\s*\[)|this\s*\[))/.source,[k,g]),inside:_,alias:"class-name"},"constructor-invocation":{pattern:n(/(\bnew\s+)<<0>>(?=\s*[[({])/.source,[k]),lookbehind:!0,inside:_,alias:"class-name"},"generic-method":{pattern:n(/<<0>>\s*<<1>>(?=\s*\()/.source,[f,h]),inside:{function:n(/^<<0>>/.source,[f]),generic:{pattern:RegExp(h),alias:"class-name",inside:_}}},"type-list":{pattern:n(/\b((?:<<0>>\s+<<1>>|where\s+<<2>>)\s*:\s*)(?:<<3>>|<<4>>)(?:\s*,\s*(?:<<3>>|<<4>>))*(?=\s*(?:where|[{;]|=>|$))/.source,[c,m,f,k,d.source]),lookbehind:!0,inside:{keyword:d,"class-name":{pattern:RegExp(k),greedy:!0,inside:_},punctuation:/,/}},preprocessor:{pattern:/(^\s*)#.*/m,lookbehind:!0,alias:"property",inside:{directive:{pattern:/(\s*#)\b(?:define|elif|else|endif|endregion|error|if|line|pragma|region|undef|warning)\b/,lookbehind:!0,alias:"keyword"}}}});var C=E+"|"+S,M=t(/\/(?![*/])|\/\/[^\r\n]*[\r\n]|\/\*(?:[^*]|\*(?!\/))*\*\/|<<0>>/.source,[C]),$=r(t(/[^"'/()]|<<0>>|\(<<self>>*\)/.source,[M]),2),T=/\b(?:assembly|event|field|method|module|param|property|return|type)\b/.source,j=t(/<<0>>(?:\s*\(<<1>>*\))?/.source,[g,$]);e.languages.insertBefore("csharp","class-name",{attribute:{pattern:n(/((?:^|[^\s\w>)?])\s*\[\s*)(?:<<0>>\s*:\s*)?<<1>>(?:\s*,\s*<<1>>)*(?=\s*\])/.source,[T,j]),lookbehind:!0,greedy:!0,inside:{target:{pattern:n(/^<<0>>(?=\s*:)/.source,[T]),alias:"keyword"},"attribute-arguments":{pattern:n(/\(<<0>>*\)/.source,[$]),inside:e.languages.csharp},"class-name":{pattern:RegExp(g),inside:{punctuation:/\./}},punctuation:/[:,]/}}});var N=/:[^}\r\n]+/.source,A=r(t(/[^"'/()]|<<0>>|\(<<self>>*\)/.source,[M]),2),z=t(/\{(?!\{)(?:(?![}:])<<0>>)*<<1>>?\}/.source,[A,N]),F=r(t(/[^"'/()]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|<<0>>|\(<<self>>*\)/.source,[C]),2),O=t(/\{(?!\{)(?:(?![}:])<<0>>)*<<1>>?\}/.source,[F,N]);function I(t,r){return{interpolation:{pattern:n(/((?:^|[^{])(?:\{\{)*)<<0>>/.source,[t]),lookbehind:!0,inside:{"format-string":{pattern:n(/(^\{(?:(?![}:])<<0>>)*)<<1>>(?=\}$)/.source,[r,N]),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:n(/(^|[^\\])(?:\$@|@\$)"(?:""|\\[\s\S]|\{\{|<<0>>|[^\\{"])*"/.source,[z]),lookbehind:!0,greedy:!0,inside:I(z,A)},{pattern:n(/(^|[^@\\])\$"(?:\\.|\{\{|<<0>>|[^\\"{])*"/.source,[O]),lookbehind:!0,greedy:!0,inside:I(O,F)}]})}(Prism),Prism.languages.dotnet=Prism.languages.cs=Prism.languages.csharp},function(e,t){!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|null|open|opens|package|private|protected|provides|public|record|requires|return|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,n=/\b[A-Z](?:\w*[a-z]\w*)?\b/;e.languages.java=e.languages.extend("clike",{"class-name":[n,/\b[A-Z]\w*(?=\s+\w+\s*[;,=())])/],keyword:t,function:[e.languages.clike.function,{pattern:/(\:\:)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x[\da-f_]*\.?[\da-f_p+-]+\b|(?:\b\d[\d_]*\.?[\d_]*|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0}}),e.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"}}),e.languages.insertBefore("java","class-name",{annotation:{alias:"punctuation",pattern:/(^|[^.])@\w+/,lookbehind:!0},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:/\./}},generics:{pattern:/<(?:[\w\s,.&?]|<(?:[\w\s,.&?]|<(?:[\w\s,.&?]|<[\w\s,.&?]*>)*>)*>)*>/,inside:{"class-name":n,keyword:t,punctuation:/[<>(),.:]/,operator:/[?&|]/}}})}(Prism)},function(e,t){Prism.languages.scala=Prism.languages.extend("java",{keyword:/<-|=>|\b(?:abstract|case|catch|class|def|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|null|object|override|package|private|protected|return|sealed|self|super|this|throw|trait|try|type|val|var|while|with|yield)\b/,"triple-quoted-string":{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string"},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},builtin:/\b(?:String|Int|Long|Short|Byte|Boolean|Double|Float|Char|Any|AnyRef|AnyVal|Unit|Nothing)\b/,number:/\b0x[\da-f]*\.?[\da-f]+|(?:\b\d+\.?\d*|\B\.\d+)(?:e\d+)?[dfl]?/i,symbol:/'[^\d\s\\]\w*/}),delete Prism.languages.scala["class-name"],delete Prism.languages.scala.function},function(e,t){Prism.languages.markup={comment:/<!--[\s\S]*?-->/,prolog:/<\?[\s\S]+?\?>/,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/,name:/[^\s<>'"]+/}},cdata:/<!\[CDATA\[[\s\S]*?]]>/i,tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},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(/&amp;/,"&"))})),Object.defineProperty(Prism.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:Prism.languages[t]},n.cdata=/^<!\[CDATA\[|\]\]>$/i;var r={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:Prism.languages[t]};var o={};o[e]={pattern:RegExp(/(<__[\s\S]*?>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:r},Prism.languages.insertBefore("markup","cdata",o)}}),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},function(e,t){!function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,o,i){if(n.language===r){var s=n.tokenStack=[];n.code=n.code.replace(o,(function(e){if("function"==typeof i&&!i(e))return e;for(var o,a=s.length;-1!==n.code.indexOf(o=t(r,a));)++a;return s[a]=e,o})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var o=0,i=Object.keys(n.tokenStack);!function s(a){for(var l=0;l<a.length&&!(o>=i.length);l++){var c=a[l];if("string"==typeof c||c.content&&"string"==typeof c.content){var d=i[o],u=n.tokenStack[d],p="string"==typeof c?c:c.content,h=t(r,d),b=p.indexOf(h);if(b>-1){++o;var f=p.substring(0,b),m=new e.Token(r,e.tokenize(u,n.grammar),"language-"+r,u),g=p.substring(b+h.length),v=[];f&&v.push.apply(v,s([f])),v.push(m),g&&v.push.apply(v,s([g])),"string"==typeof c?a.splice.apply(a,[l,1].concat(v)):c.content=v}}else c.content&&s(c.content)}return a}(n.tokens)}}}})}(Prism)},function(e,t){!function(e){e.languages.php=e.languages.extend("clike",{keyword:/\b(?:__halt_compiler|abstract|and|array|as|break|callable|case|catch|class|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|eval|exit|extends|final|finally|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|insteadof|interface|isset|list|match|namespace|new|or|parent|print|private|protected|public|require|require_once|return|static|switch|throw|trait|try|unset|use|var|while|xor|yield)\b/i,boolean:{pattern:/\b(?:false|true)\b/i,alias:"constant"},constant:[/\b[A-Z_][A-Z0-9_]*\b/,/\b(?:null)\b/i],comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0}}),e.languages.insertBefore("php","string",{"shell-comment":{pattern:/(^|[^\\])#.*/,lookbehind:!0,alias:"comment"}}),e.languages.insertBefore("php","comment",{delimiter:{pattern:/\?>$|^<\?(?:php(?=\s)|=)?/i,alias:"important"}}),e.languages.insertBefore("php","keyword",{variable:/\$+(?:\w+\b|(?={))/i,package:{pattern:/(\\|namespace\s+|use\s+)[\w\\]+/,lookbehind:!0,inside:{punctuation:/\\/}}}),e.languages.insertBefore("php","operator",{property:{pattern:/(->)[\w]+/,lookbehind:!0}});var t={pattern:/{\$(?:{(?:{[^{}]+}|[^{}]+)}|[^{}])+}|(^|[^\\{])\$+(?:\w+(?:\[[^\r\n\[\]]+\]|->\w+)*)/,lookbehind:!0,inside:e.languages.php};e.languages.insertBefore("php","string",{"nowdoc-string":{pattern:/<<<'([^']+)'[\r\n](?:.*[\r\n])*?\1;/,greedy:!0,alias:"string",inside:{delimiter:{pattern:/^<<<'[^']+'|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<'?|[';]$/}}}},"heredoc-string":{pattern:/<<<(?:"([^"]+)"[\r\n](?:.*[\r\n])*?\1;|([a-z_]\w*)[\r\n](?:.*[\r\n])*?\2;)/i,greedy:!0,alias:"string",inside:{delimiter:{pattern:/^<<<(?:"[^"]+"|[a-z_]\w*)|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<"?|[";]$/}},interpolation:t}},"single-quoted-string":{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0,alias:"string"},"double-quoted-string":{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,alias:"string",inside:{interpolation:t}}}),delete e.languages.php.string,e.hooks.add("before-tokenize",(function(t){if(/<\?/.test(t.code)){e.languages["markup-templating"].buildPlaceholders(t,"php",/<\?(?:[^"'/#]|\/(?![*/])|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|(?:\/\/|#)(?:[^?\n\r]|\?(?!>))*(?=$|\?>|[\r\n])|\/\*[\s\S]*?(?:\*\/|$))*?(?:\?>|$)/gi)}})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"php")}))}(Prism)},function(e,t){"undefined"!=typeof self&&self.Prism&&self.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=0,n=[],r=function(e,o){var i={};o||(i.clone=e.cloneNode(!1),i.posOpen=t,n.push(i));for(var s=0,a=e.childNodes.length;s<a;s++){var l=e.childNodes[s];1===l.nodeType?r(l):3===l.nodeType&&(t+=l.data.length)}o||(i.posClose=t)};r(e.element,!0),n&&n.length&&(e.keepMarkup=n)}})),Prism.hooks.add("after-highlight",(function(e){if(e.keepMarkup&&e.keepMarkup.length){var t=function(e,n){for(var r=0,o=e.childNodes.length;r<o;r++){var i=e.childNodes[r];if(1===i.nodeType){if(!t(i,n))return!1}else 3===i.nodeType&&(!n.nodeStart&&n.pos+i.data.length>n.node.posOpen&&(n.nodeStart=i,n.nodeStartPos=n.node.posOpen-n.pos),n.nodeStart&&n.pos+i.data.length>=n.node.posClose&&(n.nodeEnd=i,n.nodeEndPos=n.node.posClose-n.pos),n.pos+=i.data.length);if(n.nodeStart&&n.nodeEnd){var s=document.createRange();return s.setStart(n.nodeStart,n.nodeStartPos),s.setEnd(n.nodeEnd,n.nodeEndPos),n.node.clone.appendChild(s.extractContents()),s.insertNode(n.node.clone),s.detach(),!1}}return!0};e.keepMarkup.forEach((function(n){t(e.element,{node:n,pos:0})})),e.highlightedCode=e.element.innerHTML}})))},function(e,t,n){"use strict";n.r(t);const r="undefined"!=typeof window&&null!=window.customElements&&void 0!==window.customElements.polyfillWrapFlushCallback,o=(e,t,n=null)=>{for(;t!==n;){const n=t.nextSibling;e.removeChild(t),t=n}},i=`{{lit-${String(Math.random()).slice(2)}}}`,s=`\x3c!--${i}--\x3e`,a=new RegExp(`${i}|${s}`),l="$lit$";class c{constructor(e,t){this.parts=[],this.element=t;const n=[],r=[],o=document.createTreeWalker(t.content,133,null,!1);let s=0,c=-1,u=0;const{strings:b,values:{length:f}}=e;for(;u<f;){const e=o.nextNode();if(null!==e){if(c++,1===e.nodeType){if(e.hasAttributes()){const t=e.attributes,{length:n}=t;let r=0;for(let e=0;e<n;e++)d(t[e].name,l)&&r++;for(;r-- >0;){const t=b[u],n=h.exec(t)[2],r=n.toLowerCase()+l,o=e.getAttribute(r);e.removeAttribute(r);const i=o.split(a);this.parts.push({type:"attribute",index:c,name:n,strings:i}),u+=i.length-1}}"TEMPLATE"===e.tagName&&(r.push(e),o.currentNode=e.content)}else if(3===e.nodeType){const t=e.data;if(t.indexOf(i)>=0){const r=e.parentNode,o=t.split(a),i=o.length-1;for(let t=0;t<i;t++){let n,i=o[t];if(""===i)n=p();else{const e=h.exec(i);null!==e&&d(e[2],l)&&(i=i.slice(0,e.index)+e[1]+e[2].slice(0,-l.length)+e[3]),n=document.createTextNode(i)}r.insertBefore(n,e),this.parts.push({type:"node",index:++c})}""===o[i]?(r.insertBefore(p(),e),n.push(e)):e.data=o[i],u+=i}}else if(8===e.nodeType)if(e.data===i){const t=e.parentNode;null!==e.previousSibling&&c!==s||(c++,t.insertBefore(p(),e)),s=c,this.parts.push({type:"node",index:c}),null===e.nextSibling?e.data="":(n.push(e),c--),u++}else{let t=-1;for(;-1!==(t=e.data.indexOf(i,t+1));)this.parts.push({type:"node",index:-1}),u++}}else o.currentNode=r.pop()}for(const e of n)e.parentNode.removeChild(e)}}const d=(e,t)=>{const n=e.length-t.length;return n>=0&&e.slice(n)===t},u=e=>-1!==e.index,p=()=>document.createComment(""),h=/([ \x09\x0a\x0c\x0d])([^\0-\x1F\x7F-\x9F "'>=/]+)([ \x09\x0a\x0c\x0d]*=[ \x09\x0a\x0c\x0d]*(?:[^ \x09\x0a\x0c\x0d"'`<>=]*|"[^"]*|'[^']*))$/;function b(e,t){const{element:{content:n},parts:r}=e,o=document.createTreeWalker(n,133,null,!1);let i=m(r),s=r[i],a=-1,l=0;const c=[];let d=null;for(;o.nextNode();){a++;const e=o.currentNode;for(e.previousSibling===d&&(d=null),t.has(e)&&(c.push(e),null===d&&(d=e)),null!==d&&l++;void 0!==s&&s.index===a;)s.index=null!==d?-1:s.index-l,i=m(r,i),s=r[i]}c.forEach((e=>e.parentNode.removeChild(e)))}const f=e=>{let t=11===e.nodeType?0:1;const n=document.createTreeWalker(e,133,null,!1);for(;n.nextNode();)t++;return t},m=(e,t=-1)=>{for(let n=t+1;n<e.length;n++){const t=e[n];if(u(t))return n}return-1};const g=new WeakMap,v=e=>"function"==typeof e&&g.has(e),y={},w={};class x{constructor(e,t,n){this.__parts=[],this.template=e,this.processor=t,this.options=n}update(e){let t=0;for(const n of this.__parts)void 0!==n&&n.setValue(e[t]),t++;for(const e of this.__parts)void 0!==e&&e.commit()}_clone(){const e=r?this.template.element.content.cloneNode(!0):document.importNode(this.template.element.content,!0),t=[],n=this.template.parts,o=document.createTreeWalker(e,133,null,!1);let i,s=0,a=0,l=o.nextNode();for(;s<n.length;)if(i=n[s],u(i)){for(;a<i.index;)a++,"TEMPLATE"===l.nodeName&&(t.push(l),o.currentNode=l.content),null===(l=o.nextNode())&&(o.currentNode=t.pop(),l=o.nextNode());if("node"===i.type){const e=this.processor.handleTextExpression(this.options);e.insertAfterNode(l.previousSibling),this.__parts.push(e)}else this.__parts.push(...this.processor.handleAttributeExpressions(l,i.name,i.strings,this.options));s++}else this.__parts.push(void 0),s++;return r&&(document.adoptNode(e),customElements.upgrade(e)),e}}const k=window.trustedTypes&&trustedTypes.createPolicy("lit-html",{createHTML:e=>e}),_=` ${i} `;class S{constructor(e,t,n,r){this.strings=e,this.values=t,this.type=n,this.processor=r}getHTML(){const e=this.strings.length-1;let t="",n=!1;for(let r=0;r<e;r++){const e=this.strings[r],o=e.lastIndexOf("\x3c!--");n=(o>-1||n)&&-1===e.indexOf("--\x3e",o+1);const a=h.exec(e);t+=null===a?e+(n?_:s):e.substr(0,a.index)+a[1]+a[2]+l+a[3]+i}return t+=this.strings[e],t}getTemplateElement(){const e=document.createElement("template");let t=this.getHTML();return void 0!==k&&(t=k.createHTML(t)),e.innerHTML=t,e}}class E extends S{getHTML(){return`<svg>${super.getHTML()}</svg>`}getTemplateElement(){const e=super.getTemplateElement(),t=e.content,n=t.firstChild;return t.removeChild(n),((e,t,n=null,r=null)=>{for(;t!==n;){const n=t.nextSibling;e.insertBefore(t,r),t=n}})(t,n.firstChild),e}}const P=e=>null===e||!("object"==typeof e||"function"==typeof e),C=e=>Array.isArray(e)||!(!e||!e[Symbol.iterator]);class M{constructor(e,t,n){this.dirty=!0,this.element=e,this.name=t,this.strings=n,this.parts=[];for(let e=0;e<n.length-1;e++)this.parts[e]=this._createPart()}_createPart(){return new $(this)}_getValue(){const e=this.strings,t=e.length-1,n=this.parts;if(1===t&&""===e[0]&&""===e[1]){const e=n[0].value;if("symbol"==typeof e)return String(e);if("string"==typeof e||!C(e))return e}let r="";for(let o=0;o<t;o++){r+=e[o];const t=n[o];if(void 0!==t){const e=t.value;if(P(e)||!C(e))r+="string"==typeof e?e:String(e);else for(const t of e)r+="string"==typeof t?t:String(t)}}return r+=e[t],r}commit(){this.dirty&&(this.dirty=!1,this.element.setAttribute(this.name,this._getValue()))}}class ${constructor(e){this.value=void 0,this.committer=e}setValue(e){e===y||P(e)&&e===this.value||(this.value=e,v(e)||(this.committer.dirty=!0))}commit(){for(;v(this.value);){const e=this.value;this.value=y,e(this)}this.value!==y&&this.committer.commit()}}class T{constructor(e){this.value=void 0,this.__pendingValue=void 0,this.options=e}appendInto(e){this.startNode=e.appendChild(p()),this.endNode=e.appendChild(p())}insertAfterNode(e){this.startNode=e,this.endNode=e.nextSibling}appendIntoPart(e){e.__insert(this.startNode=p()),e.__insert(this.endNode=p())}insertAfterPart(e){e.__insert(this.startNode=p()),this.endNode=e.endNode,e.endNode=this.startNode}setValue(e){this.__pendingValue=e}commit(){if(null===this.startNode.parentNode)return;for(;v(this.__pendingValue);){const e=this.__pendingValue;this.__pendingValue=y,e(this)}const e=this.__pendingValue;e!==y&&(P(e)?e!==this.value&&this.__commitText(e):e instanceof S?this.__commitTemplateResult(e):e instanceof Node?this.__commitNode(e):C(e)?this.__commitIterable(e):e===w?(this.value=w,this.clear()):this.__commitText(e))}__insert(e){this.endNode.parentNode.insertBefore(e,this.endNode)}__commitNode(e){this.value!==e&&(this.clear(),this.__insert(e),this.value=e)}__commitText(e){const t=this.startNode.nextSibling,n="string"==typeof(e=null==e?"":e)?e:String(e);t===this.endNode.previousSibling&&3===t.nodeType?t.data=n:this.__commitNode(document.createTextNode(n)),this.value=e}__commitTemplateResult(e){const t=this.options.templateFactory(e);if(this.value instanceof x&&this.value.template===t)this.value.update(e.values);else{const n=new x(t,e.processor,this.options),r=n._clone();n.update(e.values),this.__commitNode(r),this.value=n}}__commitIterable(e){Array.isArray(this.value)||(this.value=[],this.clear());const t=this.value;let n,r=0;for(const o of e)n=t[r],void 0===n&&(n=new T(this.options),t.push(n),0===r?n.appendIntoPart(this):n.insertAfterPart(t[r-1])),n.setValue(o),n.commit(),r++;r<t.length&&(t.length=r,this.clear(n&&n.endNode))}clear(e=this.startNode){o(this.startNode.parentNode,e.nextSibling,this.endNode)}}class j{constructor(e,t,n){if(this.value=void 0,this.__pendingValue=void 0,2!==n.length||""!==n[0]||""!==n[1])throw new Error("Boolean attributes can only contain a single expression");this.element=e,this.name=t,this.strings=n}setValue(e){this.__pendingValue=e}commit(){for(;v(this.__pendingValue);){const e=this.__pendingValue;this.__pendingValue=y,e(this)}if(this.__pendingValue===y)return;const e=!!this.__pendingValue;this.value!==e&&(e?this.element.setAttribute(this.name,""):this.element.removeAttribute(this.name),this.value=e),this.__pendingValue=y}}class N extends M{constructor(e,t,n){super(e,t,n),this.single=2===n.length&&""===n[0]&&""===n[1]}_createPart(){return new A(this)}_getValue(){return this.single?this.parts[0].value:super._getValue()}commit(){this.dirty&&(this.dirty=!1,this.element[this.name]=this._getValue())}}class A extends ${}let z=!1;(()=>{try{const e={get capture(){return z=!0,!1}};window.addEventListener("test",e,e),window.removeEventListener("test",e,e)}catch(e){}})();class F{constructor(e,t,n){this.value=void 0,this.__pendingValue=void 0,this.element=e,this.eventName=t,this.eventContext=n,this.__boundHandleEvent=e=>this.handleEvent(e)}setValue(e){this.__pendingValue=e}commit(){for(;v(this.__pendingValue);){const e=this.__pendingValue;this.__pendingValue=y,e(this)}if(this.__pendingValue===y)return;const e=this.__pendingValue,t=this.value,n=null==e||null!=t&&(e.capture!==t.capture||e.once!==t.once||e.passive!==t.passive),r=null!=e&&(null==t||n);n&&this.element.removeEventListener(this.eventName,this.__boundHandleEvent,this.__options),r&&(this.__options=O(e),this.element.addEventListener(this.eventName,this.__boundHandleEvent,this.__options)),this.value=e,this.__pendingValue=y}handleEvent(e){"function"==typeof this.value?this.value.call(this.eventContext||this.element,e):this.value.handleEvent(e)}}const O=e=>e&&(z?{capture:e.capture,passive:e.passive,once:e.once}:e.capture);function I(e){let t=R.get(e.type);void 0===t&&(t={stringsArray:new WeakMap,keyString:new Map},R.set(e.type,t));let n=t.stringsArray.get(e.strings);if(void 0!==n)return n;const r=e.strings.join(i);return n=t.keyString.get(r),void 0===n&&(n=new c(e,e.getTemplateElement()),t.keyString.set(r,n)),t.stringsArray.set(e.strings,n),n}const R=new Map,L=new WeakMap;const B=new class{handleAttributeExpressions(e,t,n,r){const o=t[0];if("."===o){return new N(e,t.slice(1),n).parts}if("@"===o)return[new F(e,t.slice(1),r.eventContext)];if("?"===o)return[new j(e,t.slice(1),n)];return new M(e,t,n).parts}handleTextExpression(e){return new T(e)}};"undefined"!=typeof window&&(window.litHtmlVersions||(window.litHtmlVersions=[])).push("1.3.0");const V=(e,...t)=>new S(e,t,"html",B),U=(e,...t)=>new E(e,t,"svg",B),D=(e,t)=>`${e}--${t}`;let H=!0;void 0===window.ShadyCSS?H=!1:void 0===window.ShadyCSS.prepareTemplateDom&&(console.warn("Incompatible ShadyCSS version detected. Please update to at least @webcomponents/webcomponentsjs@2.0.2 and @webcomponents/shadycss@1.3.1."),H=!1);const q=e=>t=>{const n=D(t.type,e);let r=R.get(n);void 0===r&&(r={stringsArray:new WeakMap,keyString:new Map},R.set(n,r));let o=r.stringsArray.get(t.strings);if(void 0!==o)return o;const s=t.strings.join(i);if(o=r.keyString.get(s),void 0===o){const n=t.getTemplateElement();H&&window.ShadyCSS.prepareTemplateDom(n,e),o=new c(t,n),r.keyString.set(s,o)}return r.stringsArray.set(t.strings,o),o},W=["html","svg"],Z=new Set,J=(e,t,n)=>{Z.add(e);const r=n?n.element:document.createElement("template"),o=t.querySelectorAll("style"),{length:i}=o;if(0===i)return void window.ShadyCSS.prepareTemplateStyles(r,e);const s=document.createElement("style");for(let e=0;e<i;e++){const t=o[e];t.parentNode.removeChild(t),s.textContent+=t.textContent}(e=>{W.forEach((t=>{const n=R.get(D(t,e));void 0!==n&&n.keyString.forEach((e=>{const{element:{content:t}}=e,n=new Set;Array.from(t.querySelectorAll("style")).forEach((e=>{n.add(e)})),b(e,n)}))}))})(e);const a=r.content;n?function(e,t,n=null){const{element:{content:r},parts:o}=e;if(null==n)return void r.appendChild(t);const i=document.createTreeWalker(r,133,null,!1);let s=m(o),a=0,l=-1;for(;i.nextNode();)for(l++,i.currentNode===n&&(a=f(t),n.parentNode.insertBefore(t,n));-1!==s&&o[s].index===l;){if(a>0){for(;-1!==s;)o[s].index+=a,s=m(o,s);return}s=m(o,s)}}(n,s,a.firstChild):a.insertBefore(s,a.firstChild),window.ShadyCSS.prepareTemplateStyles(r,e);const l=a.querySelector("style");if(window.ShadyCSS.nativeShadow&&null!==l)t.insertBefore(l.cloneNode(!0),t.firstChild);else if(n){a.insertBefore(s,a.firstChild);const e=new Set;e.add(s),b(n,e)}};window.JSCompiler_renameProperty=(e,t)=>e;const K={toAttribute(e,t){switch(t){case Boolean:return e?"":null;case Object:case Array:return null==e?e:JSON.stringify(e)}return e},fromAttribute(e,t){switch(t){case Boolean:return null!==e;case Number:return null===e?null:Number(e);case Object:case Array:return JSON.parse(e)}return e}},Y=(e,t)=>t!==e&&(t==t||e==e),G={attribute:!0,type:String,converter:K,reflect:!1,hasChanged:Y},X="finalized";class Q extends HTMLElement{constructor(){super(),this.initialize()}static get observedAttributes(){this.finalize();const e=[];return this._classProperties.forEach(((t,n)=>{const r=this._attributeNameForProperty(n,t);void 0!==r&&(this._attributeToPropertyMap.set(r,n),e.push(r))})),e}static _ensureClassProperties(){if(!this.hasOwnProperty(JSCompiler_renameProperty("_classProperties",this))){this._classProperties=new Map;const e=Object.getPrototypeOf(this)._classProperties;void 0!==e&&e.forEach(((e,t)=>this._classProperties.set(t,e)))}}static createProperty(e,t=G){if(this._ensureClassProperties(),this._classProperties.set(e,t),t.noAccessor||this.prototype.hasOwnProperty(e))return;const n="symbol"==typeof e?Symbol():"__"+e,r=this.getPropertyDescriptor(e,n,t);void 0!==r&&Object.defineProperty(this.prototype,e,r)}static getPropertyDescriptor(e,t,n){return{get(){return this[t]},set(r){const o=this[e];this[t]=r,this.requestUpdateInternal(e,o,n)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this._classProperties&&this._classProperties.get(e)||G}static finalize(){const e=Object.getPrototypeOf(this);if(e.hasOwnProperty(X)||e.finalize(),this.finalized=!0,this._ensureClassProperties(),this._attributeToPropertyMap=new Map,this.hasOwnProperty(JSCompiler_renameProperty("properties",this))){const e=this.properties,t=[...Object.getOwnPropertyNames(e),..."function"==typeof Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e):[]];for(const n of t)this.createProperty(n,e[n])}}static _attributeNameForProperty(e,t){const n=t.attribute;return!1===n?void 0:"string"==typeof n?n:"string"==typeof e?e.toLowerCase():void 0}static _valueHasChanged(e,t,n=Y){return n(e,t)}static _propertyValueFromAttribute(e,t){const n=t.type,r=t.converter||K,o="function"==typeof r?r:r.fromAttribute;return o?o(e,n):e}static _propertyValueToAttribute(e,t){if(void 0===t.reflect)return;const n=t.type,r=t.converter;return(r&&r.toAttribute||K.toAttribute)(e,n)}initialize(){this._updateState=0,this._updatePromise=new Promise((e=>this._enableUpdatingResolver=e)),this._changedProperties=new Map,this._saveInstanceProperties(),this.requestUpdateInternal()}_saveInstanceProperties(){this.constructor._classProperties.forEach(((e,t)=>{if(this.hasOwnProperty(t)){const e=this[t];delete this[t],this._instanceProperties||(this._instanceProperties=new Map),this._instanceProperties.set(t,e)}}))}_applyInstanceProperties(){this._instanceProperties.forEach(((e,t)=>this[t]=e)),this._instanceProperties=void 0}connectedCallback(){this.enableUpdating()}enableUpdating(){void 0!==this._enableUpdatingResolver&&(this._enableUpdatingResolver(),this._enableUpdatingResolver=void 0)}disconnectedCallback(){}attributeChangedCallback(e,t,n){t!==n&&this._attributeToProperty(e,n)}_propertyToAttribute(e,t,n=G){const r=this.constructor,o=r._attributeNameForProperty(e,n);if(void 0!==o){const e=r._propertyValueToAttribute(t,n);if(void 0===e)return;this._updateState=8|this._updateState,null==e?this.removeAttribute(o):this.setAttribute(o,e),this._updateState=-9&this._updateState}}_attributeToProperty(e,t){if(8&this._updateState)return;const n=this.constructor,r=n._attributeToPropertyMap.get(e);if(void 0!==r){const e=n.getPropertyOptions(r);this._updateState=16|this._updateState,this[r]=n._propertyValueFromAttribute(t,e),this._updateState=-17&this._updateState}}requestUpdateInternal(e,t,n){let r=!0;if(void 0!==e){const o=this.constructor;n=n||o.getPropertyOptions(e),o._valueHasChanged(this[e],t,n.hasChanged)?(this._changedProperties.has(e)||this._changedProperties.set(e,t),!0!==n.reflect||16&this._updateState||(void 0===this._reflectingProperties&&(this._reflectingProperties=new Map),this._reflectingProperties.set(e,n))):r=!1}!this._hasRequestedUpdate&&r&&(this._updatePromise=this._enqueueUpdate())}requestUpdate(e,t){return this.requestUpdateInternal(e,t),this.updateComplete}async _enqueueUpdate(){this._updateState=4|this._updateState;try{await this._updatePromise}catch(e){}const e=this.performUpdate();return null!=e&&await e,!this._hasRequestedUpdate}get _hasRequestedUpdate(){return 4&this._updateState}get hasUpdated(){return 1&this._updateState}performUpdate(){if(!this._hasRequestedUpdate)return;this._instanceProperties&&this._applyInstanceProperties();let e=!1;const t=this._changedProperties;try{e=this.shouldUpdate(t),e?this.update(t):this._markUpdated()}catch(t){throw e=!1,this._markUpdated(),t}e&&(1&this._updateState||(this._updateState=1|this._updateState,this.firstUpdated(t)),this.updated(t))}_markUpdated(){this._changedProperties=new Map,this._updateState=-5&this._updateState}get updateComplete(){return this._getUpdateComplete()}_getUpdateComplete(){return this._updatePromise}shouldUpdate(e){return!0}update(e){void 0!==this._reflectingProperties&&this._reflectingProperties.size>0&&(this._reflectingProperties.forEach(((e,t)=>this._propertyToAttribute(t,this[t],e))),this._reflectingProperties=void 0),this._markUpdated()}updated(e){}firstUpdated(e){}}Q.finalized=!0;const ee=e=>t=>"function"==typeof t?((e,t)=>(window.customElements.define(e,t),t))(e,t):((e,t)=>{const{kind:n,elements:r}=t;return{kind:n,elements:r,finisher(t){window.customElements.define(e,t)}}})(e,t),te=(e,t)=>"method"===t.kind&&t.descriptor&&!("value"in t.descriptor)?Object.assign(Object.assign({},t),{finisher(n){n.createProperty(t.key,e)}}):{kind:"field",key:Symbol(),placement:"own",descriptor:{},initializer(){"function"==typeof t.initializer&&(this[t.key]=t.initializer.call(this))},finisher(n){n.createProperty(t.key,e)}};function ne(e){return(t,n)=>void 0!==n?((e,t,n)=>{t.constructor.createProperty(n,e)})(e,t,n):te(e,t)}const re=Element.prototype;re.msMatchesSelector||re.webkitMatchesSelector;const oe=window.ShadowRoot&&(void 0===window.ShadyCSS||window.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,ie=Symbol();class se{constructor(e,t){if(t!==ie)throw new Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e}get styleSheet(){return void 0===this._styleSheet&&(oe?(this._styleSheet=new CSSStyleSheet,this._styleSheet.replaceSync(this.cssText)):this._styleSheet=null),this._styleSheet}toString(){return this.cssText}}const ae=e=>new se(String(e),ie);(window.litElementVersions||(window.litElementVersions=[])).push("2.4.0");const le={};class ce extends Q{static getStyles(){return this.styles}static _getUniqueStyles(){if(this.hasOwnProperty(JSCompiler_renameProperty("_styles",this)))return;const e=this.getStyles();if(Array.isArray(e)){const t=(e,n)=>e.reduceRight(((e,n)=>Array.isArray(n)?t(n,e):(e.add(n),e)),n),n=t(e,new Set),r=[];n.forEach((e=>r.unshift(e))),this._styles=r}else this._styles=void 0===e?[]:[e];this._styles=this._styles.map((e=>{if(e instanceof CSSStyleSheet&&!oe){const t=Array.prototype.slice.call(e.cssRules).reduce(((e,t)=>e+t.cssText),"");return ae(t)}return e}))}initialize(){super.initialize(),this.constructor._getUniqueStyles(),this.renderRoot=this.createRenderRoot(),window.ShadowRoot&&this.renderRoot instanceof window.ShadowRoot&&this.adoptStyles()}createRenderRoot(){return this.attachShadow({mode:"open"})}adoptStyles(){const e=this.constructor._styles;0!==e.length&&(void 0===window.ShadyCSS||window.ShadyCSS.nativeShadow?oe?this.renderRoot.adoptedStyleSheets=e.map((e=>e instanceof CSSStyleSheet?e:e.styleSheet)):this._needsShimAdoptedStyleSheets=!0:window.ShadyCSS.ScopingShim.prepareAdoptedCssText(e.map((e=>e.cssText)),this.localName))}connectedCallback(){super.connectedCallback(),this.hasUpdated&&void 0!==window.ShadyCSS&&window.ShadyCSS.styleElement(this)}update(e){const t=this.render();super.update(e),t!==le&&this.constructor.render(t,this.renderRoot,{scopeName:this.localName,eventContext:this}),this._needsShimAdoptedStyleSheets&&(this._needsShimAdoptedStyleSheets=!1,this.constructor._styles.forEach((e=>{const t=document.createElement("style");t.textContent=e.cssText,this.renderRoot.appendChild(t)})))}render(){return le}}ce.finalized=!0,ce.render=(e,t,n)=>{if(!n||"object"!=typeof n||!n.scopeName)throw new Error("The `scopeName` option is required.");const r=n.scopeName,i=L.has(t),s=H&&11===t.nodeType&&!!t.host,a=s&&!Z.has(r),l=a?document.createDocumentFragment():t;if(((e,t,n)=>{let r=L.get(t);void 0===r&&(o(t,t.firstChild),L.set(t,r=new T(Object.assign({templateFactory:I},n))),r.appendInto(t)),r.setValue(e),r.commit()})(e,l,Object.assign({templateFactory:q(r)},n)),a){const e=L.get(l);L.delete(l);const n=e.value instanceof x?e.value.template:void 0;J(r,l,n),o(t,t.firstChild),t.appendChild(l),L.set(t,e)}!i&&s&&window.ShadyCSS.styleElement(t.host)};var de=n(3),ue=n(4),pe=n.n(ue),he=n(5),be=n.n(he);const fe=ae(pe.a),me=ae(be.a);var ge=function(e,t){return(ge=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};function ve(e,t){function n(){this.constructor=e}ge(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}function ye(e){return"function"==typeof e}var we=!1,xe={Promise:void 0,set useDeprecatedSynchronousErrorHandling(e){e&&(new Error).stack;we=e},get useDeprecatedSynchronousErrorHandling(){return we}};function ke(e){setTimeout((function(){throw e}),0)}var _e={closed:!0,next:function(e){},error:function(e){if(xe.useDeprecatedSynchronousErrorHandling)throw e;ke(e)},complete:function(){}},Se=function(){return Array.isArray||function(e){return e&&"number"==typeof e.length}}();function Ee(e){return null!==e&&"object"==typeof e}var Pe=function(){function e(e){return Error.call(this),this.message=e?e.length+" errors occurred during unsubscription:\n"+e.map((function(e,t){return t+1+") "+e.toString()})).join("\n "):"",this.name="UnsubscriptionError",this.errors=e,this}return e.prototype=Object.create(Error.prototype),e}(),Ce=function(){function e(e){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,e&&(this._ctorUnsubscribe=!0,this._unsubscribe=e)}return e.prototype.unsubscribe=function(){var t;if(!this.closed){var n=this,r=n._parentOrParents,o=n._ctorUnsubscribe,i=n._unsubscribe,s=n._subscriptions;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,r instanceof e)r.remove(this);else if(null!==r)for(var a=0;a<r.length;++a){r[a].remove(this)}if(ye(i)){o&&(this._unsubscribe=void 0);try{i.call(this)}catch(e){t=e instanceof Pe?Me(e.errors):[e]}}if(Se(s)){a=-1;for(var l=s.length;++a<l;){var c=s[a];if(Ee(c))try{c.unsubscribe()}catch(e){t=t||[],e instanceof Pe?t=t.concat(Me(e.errors)):t.push(e)}}}if(t)throw new Pe(t)}},e.prototype.add=function(t){var n=t;if(!t)return e.EMPTY;switch(typeof t){case"function":n=new e(t);case"object":if(n===this||n.closed||"function"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof e)){var r=n;(n=new e)._subscriptions=[r]}break;default:throw new Error("unrecognized teardown "+t+" added to Subscription.")}var o=n._parentOrParents;if(null===o)n._parentOrParents=this;else if(o instanceof e){if(o===this)return n;n._parentOrParents=[o,this]}else{if(-1!==o.indexOf(this))return n;o.push(this)}var i=this._subscriptions;return null===i?this._subscriptions=[n]:i.push(n),n},e.prototype.remove=function(e){var t=this._subscriptions;if(t){var n=t.indexOf(e);-1!==n&&t.splice(n,1)}},e.EMPTY=function(e){return e.closed=!0,e}(new e),e}();function Me(e){return e.reduce((function(e,t){return e.concat(t instanceof Pe?t.errors:t)}),[])}var $e=function(){return"function"==typeof Symbol?Symbol("rxSubscriber"):"@@rxSubscriber_"+Math.random()}(),Te=function(e){function t(n,r,o){var i=e.call(this)||this;switch(i.syncErrorValue=null,i.syncErrorThrown=!1,i.syncErrorThrowable=!1,i.isStopped=!1,arguments.length){case 0:i.destination=_e;break;case 1:if(!n){i.destination=_e;break}if("object"==typeof n){n instanceof t?(i.syncErrorThrowable=n.syncErrorThrowable,i.destination=n,n.add(i)):(i.syncErrorThrowable=!0,i.destination=new je(i,n));break}default:i.syncErrorThrowable=!0,i.destination=new je(i,n,r,o)}return i}return ve(t,e),t.prototype[$e]=function(){return this},t.create=function(e,n,r){var o=new t(e,n,r);return o.syncErrorThrowable=!1,o},t.prototype.next=function(e){this.isStopped||this._next(e)},t.prototype.error=function(e){this.isStopped||(this.isStopped=!0,this._error(e))},t.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},t.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,e.prototype.unsubscribe.call(this))},t.prototype._next=function(e){this.destination.next(e)},t.prototype._error=function(e){this.destination.error(e),this.unsubscribe()},t.prototype._complete=function(){this.destination.complete(),this.unsubscribe()},t.prototype._unsubscribeAndRecycle=function(){var e=this._parentOrParents;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this},t}(Ce),je=function(e){function t(t,n,r,o){var i,s=e.call(this)||this;s._parentSubscriber=t;var a=s;return ye(n)?i=n:n&&(i=n.next,r=n.error,o=n.complete,n!==_e&&(ye((a=Object.create(n)).unsubscribe)&&s.add(a.unsubscribe.bind(a)),a.unsubscribe=s.unsubscribe.bind(s))),s._context=a,s._next=i,s._error=r,s._complete=o,s}return ve(t,e),t.prototype.next=function(e){if(!this.isStopped&&this._next){var t=this._parentSubscriber;xe.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}},t.prototype.error=function(e){if(!this.isStopped){var t=this._parentSubscriber,n=xe.useDeprecatedSynchronousErrorHandling;if(this._error)n&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)n?(t.syncErrorValue=e,t.syncErrorThrown=!0):ke(e),this.unsubscribe();else{if(this.unsubscribe(),n)throw e;ke(e)}}},t.prototype.complete=function(){var e=this;if(!this.isStopped){var t=this._parentSubscriber;if(this._complete){var n=function(){return e._complete.call(e._context)};xe.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?(this.__tryOrSetError(t,n),this.unsubscribe()):(this.__tryOrUnsub(n),this.unsubscribe())}else this.unsubscribe()}},t.prototype.__tryOrUnsub=function(e,t){try{e.call(this._context,t)}catch(e){if(this.unsubscribe(),xe.useDeprecatedSynchronousErrorHandling)throw e;ke(e)}},t.prototype.__tryOrSetError=function(e,t,n){if(!xe.useDeprecatedSynchronousErrorHandling)throw new Error("bad call");try{t.call(this._context,n)}catch(t){return xe.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=t,e.syncErrorThrown=!0,!0):(ke(t),!0)}return!1},t.prototype._unsubscribe=function(){var e=this._parentSubscriber;this._context=null,this._parentSubscriber=null,e.unsubscribe()},t}(Te);var Ne=function(){return"function"==typeof Symbol&&Symbol.observable||"@@observable"}();function Ae(e){return e}function ze(e){return 0===e.length?Ae:1===e.length?e[0]:function(t){return e.reduce((function(e,t){return t(e)}),t)}}var Fe=function(){function e(e){this._isScalar=!1,e&&(this._subscribe=e)}return e.prototype.lift=function(t){var n=new e;return n.source=this,n.operator=t,n},e.prototype.subscribe=function(e,t,n){var r=this.operator,o=function(e,t,n){if(e){if(e instanceof Te)return e;if(e[$e])return e[$e]()}return e||t||n?new Te(e,t,n):new Te(_e)}(e,t,n);if(r?o.add(r.call(o,this.source)):o.add(this.source||xe.useDeprecatedSynchronousErrorHandling&&!o.syncErrorThrowable?this._subscribe(o):this._trySubscribe(o)),xe.useDeprecatedSynchronousErrorHandling&&o.syncErrorThrowable&&(o.syncErrorThrowable=!1,o.syncErrorThrown))throw o.syncErrorValue;return o},e.prototype._trySubscribe=function(e){try{return this._subscribe(e)}catch(t){xe.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=t),!function(e){for(;e;){var t=e,n=t.closed,r=t.destination,o=t.isStopped;if(n||o)return!1;e=r&&r instanceof Te?r:null}return!0}(e)?console.warn(t):e.error(t)}},e.prototype.forEach=function(e,t){var n=this;return new(t=Oe(t))((function(t,r){var o;o=n.subscribe((function(t){try{e(t)}catch(e){r(e),o&&o.unsubscribe()}}),r,t)}))},e.prototype._subscribe=function(e){var t=this.source;return t&&t.subscribe(e)},e.prototype[Ne]=function(){return this},e.prototype.pipe=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return 0===e.length?this:ze(e)(this)},e.prototype.toPromise=function(e){var t=this;return new(e=Oe(e))((function(e,n){var r;t.subscribe((function(e){return r=e}),(function(e){return n(e)}),(function(){return e(r)}))}))},e.create=function(t){return new e(t)},e}();function Oe(e){if(e||(e=xe.Promise||Promise),!e)throw new Error("no Promise impl found");return e}function Ie(e){return e&&"function"==typeof e.schedule}function Re(e,t){return function(n){if("function"!=typeof e)throw new TypeError("argument is not a function. Are you looking for `mapTo()`?");return n.lift(new Le(e,t))}}var Le=function(){function e(e,t){this.project=e,this.thisArg=t}return e.prototype.call=function(e,t){return t.subscribe(new Be(e,this.project,this.thisArg))},e}(),Be=function(e){function t(t,n,r){var o=e.call(this,t)||this;return o.project=n,o.count=0,o.thisArg=r||o,o}return ve(t,e),t.prototype._next=function(e){var t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(e){return void this.destination.error(e)}this.destination.next(t)},t}(Te),Ve=function(e){return function(t){for(var n=0,r=e.length;n<r&&!t.closed;n++)t.next(e[n]);t.complete()}};function Ue(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}var De=Ue(),He=function(e){return e&&"number"==typeof e.length&&"function"!=typeof e};function qe(e){return!!e&&"function"!=typeof e.subscribe&&"function"==typeof e.then}var We=function(e){if(e&&"function"==typeof e[Ne])return r=e,function(e){var t=r[Ne]();if("function"!=typeof t.subscribe)throw new TypeError("Provided object does not correctly implement Symbol.observable");return t.subscribe(e)};if(He(e))return Ve(e);if(qe(e))return n=e,function(e){return n.then((function(t){e.closed||(e.next(t),e.complete())}),(function(t){return e.error(t)})).then(null,ke),e};if(e&&"function"==typeof e[De])return t=e,function(e){for(var n=t[De]();;){var r=void 0;try{r=n.next()}catch(t){return e.error(t),e}if(r.done){e.complete();break}if(e.next(r.value),e.closed)break}return"function"==typeof n.return&&e.add((function(){n.return&&n.return()})),e};var t,n,r,o=Ee(e)?"an invalid object":"'"+e+"'";throw new TypeError("You provided "+o+" where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.")};function Ze(e,t){return new Fe((function(n){var r=new Ce,o=0;return r.add(t.schedule((function(){o!==e.length?(n.next(e[o++]),n.closed||r.add(this.schedule())):n.complete()}))),r}))}function Je(e,t){if(null!=e){if(function(e){return e&&"function"==typeof e[Ne]}(e))return function(e,t){return new Fe((function(n){var r=new Ce;return r.add(t.schedule((function(){var o=e[Ne]();r.add(o.subscribe({next:function(e){r.add(t.schedule((function(){return n.next(e)})))},error:function(e){r.add(t.schedule((function(){return n.error(e)})))},complete:function(){r.add(t.schedule((function(){return n.complete()})))}}))}))),r}))}(e,t);if(qe(e))return function(e,t){return new Fe((function(n){var r=new Ce;return r.add(t.schedule((function(){return e.then((function(e){r.add(t.schedule((function(){n.next(e),r.add(t.schedule((function(){return n.complete()})))})))}),(function(e){r.add(t.schedule((function(){return n.error(e)})))}))}))),r}))}(e,t);if(He(e))return Ze(e,t);if(function(e){return e&&"function"==typeof e[De]}(e)||"string"==typeof e)return function(e,t){if(!e)throw new Error("Iterable cannot be null");return new Fe((function(n){var r,o=new Ce;return o.add((function(){r&&"function"==typeof r.return&&r.return()})),o.add(t.schedule((function(){r=e[De](),o.add(t.schedule((function(){if(!n.closed){var e,t;try{var o=r.next();e=o.value,t=o.done}catch(e){return void n.error(e)}t?n.complete():(n.next(e),this.schedule())}})))}))),o}))}(e,t)}throw new TypeError((null!==e&&typeof e||e)+" is not observable")}var Ke=function(e){function t(t){var n=e.call(this)||this;return n.parent=t,n}return ve(t,e),t.prototype._next=function(e){this.parent.notifyNext(e)},t.prototype._error=function(e){this.parent.notifyError(e),this.unsubscribe()},t.prototype._complete=function(){this.parent.notifyComplete(),this.unsubscribe()},t}(Te),Ye=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return ve(t,e),t.prototype.notifyNext=function(e){this.destination.next(e)},t.prototype.notifyError=function(e){this.destination.error(e)},t.prototype.notifyComplete=function(){this.destination.complete()},t}(Te);function Ge(e,t,n){return void 0===n&&(n=Number.POSITIVE_INFINITY),"function"==typeof t?function(r){return r.pipe(Ge((function(n,r){return(o=e(n,r),i?Je(o,i):o instanceof Fe?o:new Fe(We(o))).pipe(Re((function(e,o){return t(n,e,r,o)})));var o,i}),n))}:("number"==typeof t&&(n=t),function(t){return t.lift(new Xe(e,n))})}var Xe=function(){function e(e,t){void 0===t&&(t=Number.POSITIVE_INFINITY),this.project=e,this.concurrent=t}return e.prototype.call=function(e,t){return t.subscribe(new Qe(e,this.project,this.concurrent))},e}(),Qe=function(e){function t(t,n,r){void 0===r&&(r=Number.POSITIVE_INFINITY);var o=e.call(this,t)||this;return o.project=n,o.concurrent=r,o.hasCompleted=!1,o.buffer=[],o.active=0,o.index=0,o}return ve(t,e),t.prototype._next=function(e){this.active<this.concurrent?this._tryNext(e):this.buffer.push(e)},t.prototype._tryNext=function(e){var t,n=this.index++;try{t=this.project(e,n)}catch(e){return void this.destination.error(e)}this.active++,this._innerSub(t)},t.prototype._innerSub=function(e){var t=new Ke(this),n=this.destination;n.add(t);var r=function(e,t){if(!t.closed)return e instanceof Fe?e.subscribe(t):We(e)(t)}(e,t);r!==t&&n.add(r)},t.prototype._complete=function(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()},t.prototype.notifyNext=function(e){this.destination.next(e)},t.prototype.notifyComplete=function(){var e=this.buffer;this.active--,e.length>0?this._next(e.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()},t}(Ye);function et(e){return void 0===e&&(e=Number.POSITIVE_INFINITY),Ge(Ae,e)}function tt(e,t){return t?Ze(e,t):new Fe(Ve(e))}function nt(e,t,n,r,o){var i;if(function(e){return e&&"function"==typeof e.addEventListener&&"function"==typeof e.removeEventListener}(e)){var s=e;e.addEventListener(t,n,o),i=function(){return s.removeEventListener(t,n,o)}}else if(function(e){return e&&"function"==typeof e.on&&"function"==typeof e.off}(e)){var a=e;e.on(t,n),i=function(){return a.off(t,n)}}else if(function(e){return e&&"function"==typeof e.addListener&&"function"==typeof e.removeListener}(e)){var l=e;e.addListener(t,n),i=function(){return l.removeListener(t,n)}}else{if(!e||!e.length)throw new TypeError("Invalid event target");for(var c=0,d=e.length;c<d;c++)nt(e[c],t,n,r,o)}r.add(i)}function rt(){}var ot=function(){function e(e,t,n){this.nextOrObserver=e,this.error=t,this.complete=n}return e.prototype.call=function(e,t){return t.subscribe(new it(e,this.nextOrObserver,this.error,this.complete))},e}(),it=function(e){function t(t,n,r,o){var i=e.call(this,t)||this;return i._tapNext=rt,i._tapError=rt,i._tapComplete=rt,i._tapError=r||rt,i._tapComplete=o||rt,ye(n)?(i._context=i,i._tapNext=n):n&&(i._context=n,i._tapNext=n.next||rt,i._tapError=n.error||rt,i._tapComplete=n.complete||rt),i}return ve(t,e),t.prototype._next=function(e){try{this._tapNext.call(this._context,e)}catch(e){return void this.destination.error(e)}this.destination.next(e)},t.prototype._error=function(e){try{this._tapError.call(this._context,e)}catch(e){return void this.destination.error(e)}this.destination.error(e)},t.prototype._complete=function(){try{this._tapComplete.call(this._context)}catch(e){return void this.destination.error(e)}return this.destination.complete()},t}(Te);const st=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=Number.POSITIVE_INFINITY,r=null,o=e[e.length-1];return Ie(o)?(r=e.pop(),e.length>1&&"number"==typeof e[e.length-1]&&(n=e.pop())):"number"==typeof o&&(n=e.pop()),null===r&&1===e.length&&e[0]instanceof Fe?e[0]:et(n)(tt(e,r))}(function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=e[e.length-1];return Ie(n)?(e.pop(),Ze(e,n)):tt(e)}(1),function e(t,n,r,o){return ye(r)&&(o=r,r=void 0),o?e(t,n,r).pipe(Re((function(e){return Se(e)?o.apply(void 0,e):o(e)}))):new Fe((function(e){nt(t,n,(function(t){arguments.length>1?e.next(Array.prototype.slice.call(arguments)):e.next(t)}),e,r)}))}(window,"hashchange").pipe((at=e=>e.preventDefault(),function(e){return e.lift(new ot(at,lt,ct))}))).pipe(Re((()=>window.location.hash.substr(1).split("/").filter(Boolean).map(decodeURIComponent))));var at,lt,ct,dt=n(6),ut=n.n(dt),pt=n(7),ht=n.n(pt),bt=function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},ft=function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function s(e){try{l(r.next(e))}catch(e){i(e)}}function a(e){try{l(r.throw(e))}catch(e){i(e)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}l((r=r.apply(e,t||[])).next())}))};let mt=class extends ce{constructor(){super(...arguments),this.path=[],this.themeSwitch=e=>{this.theme=e.detail,localStorage.setItem("mutation-testing-elements-theme",this.theme)},this.subscriptions=[]}get title(){return this.context?this.titlePostfix?`${this.context.name} - ${this.titlePostfix}`:this.context.name:""}firstUpdated(){var e;if(!this.theme){const t=localStorage.getItem("mutation-testing-elements-theme");t?this.theme=t:window.matchMedia&&(null===(e=window.matchMedia("(prefers-color-scheme: dark)"))||void 0===e?void 0:e.matches)?this.theme="dark":this.theme="light"}}loadData(){return ft(this,void 0,void 0,(function*(){if(this.src)try{const e=yield fetch(this.src);this.report=yield e.json()}catch(e){const t=String(e);this.errorMessage=t}}))}updated(e){return ft(this,void 0,void 0,(function*(){(e.has("path")||e.has("report"))&&this.report&&(this.updateModel(this.report),this.updateContext(),this.updateTitle()),e.has("src")&&(yield this.loadData()),e.has("theme")&&this.dispatchEvent(new CustomEvent("theme-changed",{detail:{theme:this.theme}}))}))}updateModel(e){this.rootModel=Object(de.calculateMetrics)(e.files)}updateContext(){this.rootModel&&(this.context=this.path.reduce(((e,t)=>e&&e.childResults.find((e=>e.name===t))),this.rootModel))}updateTitle(){document.title=this.title}connectedCallback(){super.connectedCallback(),this.subscriptions.push(st.subscribe((e=>this.path=e)))}disconnectedCallback(){super.disconnectedCallback(),this.subscriptions.forEach((e=>e.unsubscribe()))}renderTitle(){const e=()=>this.titlePostfix?V`<small class="text-muted"> - ${this.titlePostfix}</small>`:void 0;if(this.context&&this.titlePostfix)return V`<h1 class="display-4">${this.context.name}${e()}</h1>`}render(){return this.context||this.errorMessage?V`
<div class="container-fluid">
<div class="row">
<div class="col-md-12">${this.renderReport()} ${this.renderErrorMessage()}</div>
</div>
</div>
`:V``}renderErrorMessage(){return this.errorMessage?V`<div class="alert alert-danger" role="alert">${this.errorMessage}</div>`:V``}renderReport(){return this.context?V`
<mutation-test-report-theme-switch @theme-switch="${this.themeSwitch}" class="theme-switch" .theme="${this.theme}">
</mutation-test-report-theme-switch>
${this.renderTitle()}
<mutation-test-report-breadcrumb .path="${this.path}"></mutation-test-report-breadcrumb>
${this.renderTotals()} ${this.renderFileReport()}
`:void 0}renderFileReport(){return this.context&&this.report&&this.context.file?V`<mutation-test-report-file .model="${this.context.file}"></mutation-test-report-file>`:void 0}renderTotals(){return this.report&&this.context?V`
<div class="row">
<div class="totals col-sm-11">
<mutation-test-report-totals .currentPath="${this.path}" .thresholds="${this.report.thresholds}" .model="${this.context}">
</mutation-test-report-totals>
</div>
</div>
`:void 0}};mt.styles=[ae(ht.a),fe,ae(ut.a)],bt([ne({attribute:!1})],mt.prototype,"report",void 0),bt([ne({attribute:!1})],mt.prototype,"rootModel",void 0),bt([ne()],mt.prototype,"src",void 0),bt([ne({attribute:!1})],mt.prototype,"errorMessage",void 0),bt([ne({attribute:!1})],mt.prototype,"context",void 0),bt([ne()],mt.prototype,"path",void 0),bt([ne({attribute:"title-postfix"})],mt.prototype,"titlePostfix",void 0),bt([ne({reflect:!0})],mt.prototype,"theme",void 0),bt([ne()],mt.prototype,"title",null),mt=bt([ee("mutation-test-report-app")],mt);var gt=n(8),vt=n.n(gt),yt=function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s};let wt=class extends ce{constructor(){super(...arguments),this.show=!1}firstUpdated(){if(this.getBoundingClientRect().left<100){this.shadowRoot.querySelector(".popover").style.marginLeft="0px"}}getBackgroundClasses(){return this.context?`bg-${this.context} text-white`:""}render(){return V`<div class="popover popover-${this.context} ${this.show?"show":"hide"}">
<h3 class="popover-header ${this.getBackgroundClasses()}">${this.header}</h3>
<div class="popover-body">
<slot name="popover-body"></slot>
</div> </div
>${V`<slot></slot>`}`}};wt.styles=[fe,ae(vt.a)],yt([ne()],wt.prototype,"header",void 0),yt([ne({converter:e=>"string"==typeof e})],wt.prototype,"show",void 0),yt([ne()],wt.prototype,"context",void 0),wt=yt([ee("mutation-test-report-popup")],wt);const xt=new WeakMap,kt=(_t=e=>t=>{if(!(t instanceof T))throw new Error("unsafeHTML can only be used in text bindings");const n=xt.get(t);if(void 0!==n&&P(e)&&e===n.value&&t.value===n.fragment)return;const r=document.createElement("template");r.innerHTML=e;const o=document.importNode(r.content,!0);t.setValue(o),xt.set(t,{value:e,fragment:o})},(...e)=>{const t=_t(...e);return g.set(t,!0),t});var _t,St=n(0);function Et(e){switch(e){case St.MutantStatus.Killed:return"success";case St.MutantStatus.NoCoverage:return"caution";case St.MutantStatus.Survived:return"danger";case St.MutantStatus.Timeout:return"warning";case St.MutantStatus.Ignored:case St.MutantStatus.RuntimeError:case St.MutantStatus.CompileError:return"secondary"}}function Pt(e){switch(e){case St.MutantStatus.Killed:return"";case St.MutantStatus.NoCoverage:return"🙈";case St.MutantStatus.Ignored:return"🤥";case St.MutantStatus.Survived:return"👽";case St.MutantStatus.Timeout:return"";case St.MutantStatus.RuntimeError:case St.MutantStatus.CompileError:return"💥"}}function Ct(e){const t=new URL(window.location.href);return new URL("#"+e,t).href}var Mt=n(9),$t=n.n(Mt),Tt=function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s};let jt=class extends ce{constructor(){super(...arguments),this.show=!0,this.expand=!1,this.showPopup=!1,this.mutantClicked=e=>{this.expand=!this.expand,this.showPopup=this.expand,e.stopImmediatePropagation(),this.dispatchEvent(new CustomEvent("mutant-selected",{bubbles:!0,detail:this,composed:!0}))},this.showMoreInfo=e=>{this.dispatchEvent(new CustomEvent(Nt,{bubbles:!0,detail:e,composed:!0}))}}render(){return V`${this.renderButton()}${this.renderCode()}`}renderButton(){if(this.show&&this.mutant)return V`<mutation-test-report-popup
?show="${this.showPopup}"
context="${Et(this.mutant.status)}"
header="${this.mutant.mutatorName}"
>${this.renderPopupBody(this.mutant)}<span
class="mutant-toggle badge badge-${this.expand?"info":Et(this.mutant.status)}"
@click="${this.mutantClicked}"
title="${this.mutant.mutatorName}"
>${this.mutant.id}</span
></mutation-test-report-popup
>`}renderPopupBody(e){return V`<div slot="popover-body">
<span class="btn">${Pt(e.status)} ${e.status}</span>${this.renderDescription(e)}
</div>`}renderDescription(e){if(e.description)return V` <button class="show-more btn btn-link" @click="${()=>this.showMoreInfo(e)}">📖 Show more</button> `}renderCode(){return V`${this.renderReplacement()}${this.renderActual()}`}renderActual(){const e=V`<slot></slot>`;return V`<span class="original-code ${this.expand&&this.show?"disabled-code":""}">${e}</span>`}renderReplacement(){if(this.mutant)return V`<span class="replacement badge badge-info" @click="${this.mutantClicked}" ?hidden="${!this.expand||!this.show}"
>${this.mutant.replacement||this.mutant.mutatorName}</span
>`}};jt.styles=[fe,ae($t.a)],Tt([ne()],jt.prototype,"mutant",void 0),Tt([ne()],jt.prototype,"show",void 0),Tt([ne()],jt.prototype,"expand",void 0),Tt([ne()],jt.prototype,"showPopup",void 0),jt=Tt([ee("mutation-test-report-mutant")],jt);const Nt="show-more-click";class At{constructor(){this.killed=0,this.noCoverage=0,this.survived=0,this.timeout=0,this.ignored=0,this.markMutantStart=e=>{this.countMutant(1,e.status)},this.markMutantEnd=e=>{this.countMutant(-1,e.status)},this.determineBackground=()=>this.survived>0?Et(St.MutantStatus.Survived)+"-light":this.noCoverage>0?Et(St.MutantStatus.NoCoverage)+"-light":this.timeout>0?Et(St.MutantStatus.Timeout)+"-light":this.killed>0?Et(St.MutantStatus.Killed)+"-light":this.ignored>0?Et(St.MutantStatus.Ignored)+"-light":null}countMutant(e,t){switch(t){case St.MutantStatus.Killed:this.killed+=e;break;case St.MutantStatus.Survived:this.survived+=e;break;case St.MutantStatus.Timeout:this.timeout+=e;break;case St.MutantStatus.NoCoverage:this.noCoverage+=e;break;case St.MutantStatus.Ignored:this.ignored+=e}}}function zt(...e){return e.reduce(((e,t)=>e.length?t?`${e}/${t}`:e:t),"")}function Ft(e){const t=new At,n=[];return`<span>${function(e,t){let n=1,r=1;const o=[];for(const i of e)1===n&&"\r"===i||(i!==Ot?o.push(t(i,{line:r,column:n++})):(r++,n=1,o.push(Ot)));return o.join("")}(e.source,((r,o)=>{const i=e.mutants.filter((e=>{return t=e.location.start,n=o,t.line===n.line&&t.column===n.column;var t,n})),s=n.filter((e=>{return t=o,n=e.location.end,t.line>n.line||t.line===n.line&&t.column>=n.column;var t,n}));s.forEach((e=>n.splice(n.indexOf(e),1))),n.push(...i);const a=[];return(i.length||s.length)&&(i.forEach(t.markMutantStart),s.forEach(t.markMutantEnd),a.push("</span>"),s.forEach((()=>a.push("</mutation-test-report-mutant>"))),i.forEach((e=>a.push(`<mutation-test-report-mutant mutant-id="${e.id}">`))),a.push(`<span class="bg-${t.determineBackground()||""}">`)),a.push(r.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;")),a.join("")}))}</span>`}const Ot="\n";var It=n(10),Rt=n(11),Lt=n.n(Rt),Bt=(n(22),n(23),n(24),n(25),n(26),n(27),n(28),n(29),n(30),n(31),n(32),function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s});let Vt=class extends ce{constructor(){super(...arguments),this.dark=!0,this.expandAll=()=>{this.forEachMutantComponent((e=>e.expand=!0))},this.collapseAll=()=>{this.forEachMutantComponent((e=>e.expand=!1))},this.filtersChanged=e=>{const t=e.detail.filter((e=>e.enabled)).map((e=>e.status));this.forEachMutantComponent((e=>{e.show=t.some((t=>void 0!==e.mutant&&e.mutant.status===t))}))}}forEachMutantComponent(e,t=this.root){for(const n of t.querySelectorAll("mutation-test-report-mutant"))n instanceof jt&&e(n)}connectedCallback(){super.connectedCallback(),this.addEventListener("click",(()=>{this.forEachMutantComponent((e=>e.showPopup=!1))})),this.addEventListener("mutant-selected",(e=>{const t=e.detail;this.forEachMutantComponent((e=>e!==t&&(e.showPopup=!1)))})),this.addEventListener(Nt,(e=>{const t=e.detail;this.mutantInDialog=t,e.stopPropagation()})),this.addEventListener("close-dialog",(()=>{this.mutantInDialog=void 0}))}render(){if(this.model)return V`
<div class="row ${this.dark?"dark":""}">
<div class="col-md-12">
${this.renderModalDialog()}
<mutation-test-report-file-legend
@filters-changed="${this.filtersChanged}"
@expand-all="${this.expandAll}"
@collapse-all="${this.collapseAll}"
.mutants="${this.model.mutants}"
></mutation-test-report-file-legend>
<pre id="report-code-block" class="line-numbers"><code class="language-${this.model.language}">${kt(Ft(this.model))}</code></pre>
</div>
</div>
`}renderModalDialog(){return this.mutantInDialog?V`
<div .hidden="${!this.mutantInDialog}" class="modal-backdrop show"></div>
<mutation-test-report-modal-dialog
?show="${this.mutantInDialog}"
header="${this.mutantInDialog.id}: ${this.mutantInDialog.mutatorName} - ${Pt(this.mutantInDialog.status)} ${this.mutantInDialog.status}"
>
<p>${this.mutantInDialog.description}</p>
</mutation-test-report-modal-dialog>
`:void 0}firstUpdated(){const e=this.root.querySelector("code");e&&(Object(It.highlightElement)(e),this.forEachMutantComponent((e=>{e.mutant=this.model.mutants.find((t=>t.id.toString()===e.getAttribute("mutant-id")))}),e))}get root(){return this.shadowRoot||this}};Vt.styles=[me,fe,ae(Lt.a)],Bt([ne()],Vt.prototype,"model",void 0),Bt([ne()],Vt.prototype,"dark",void 0),Bt([ne({attribute:!1})],Vt.prototype,"mutantInDialog",void 0),Vt=Bt([ee("mutation-test-report-file")],Vt);class Ut{constructor(){this.file=U`<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>`,this.directory=U`<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="M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z"></path></svg>`,this.csharp=U`<svg aria-label="cs" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><g fill="var(--mut-file-csharp-color)"><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>`,this.html=U`<svg aria-label="html" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="var(--mut-file-html-color)" 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>`,this.java=U`<svg 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" fill="var(--mut-file-java-color)"/></svg>`,this.javascript=U`<svg aria-label="js" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="var(--mut-file-js-color)" 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>`,this.scala=U`<svg 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" fill="var(--mut-file-scala-color)"/></svg>`,this.typescript=U`<svg 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" fill="var(--mut-file-ts-color)"/></svg>`,this.php=U`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path fill="var(--mut-file-php-color)" 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>`,this.vue=U`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 1000"><path fill="var(--mut-file-vue-color)" d="M600 495.9l159.1-275.4h-84.4L600 349.7l-74.6-129.2h-84.5z"/><path fill="var(--mut-file-vue-color)" d="M793.7 220.5L600 555.9 406.3 220.5H277l323 559 323-559z"/></svg>`,this.svgMapping=new Map,this.svgMapping.set("cs",this.csharp),this.svgMapping.set("html",this.html),this.svgMapping.set("java",this.java),this.svgMapping.set("js",this.javascript),this.svgMapping.set("scala",this.scala),this.svgMapping.set("ts",this.typescript),this.svgMapping.set("php",this.php),this.svgMapping.set("vue",this.vue)}getIconForFile(e){const t=this.getFileExtension(e),n=this.svgMapping.get(t);return void 0!==n?n:this.file}getIconForFolder(){return this.directory}getFileExtension(e){const t=e.split(".");return t[t.length-1]}}var Dt=n(12),Ht=n.n(Dt),qt=function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s};let Wt=class extends ce{constructor(){super(...arguments),this.currentPath=[],this.svgService=new Ut}render(){return this.model?V`
<table class="table table-sm table-hover table-bordered table-no-top">${this.renderHead()} ${this.renderTableBody(this.model)}</table>
`:void 0}renderHead(){return V`<thead>
<tr>
<th colspan="2" style="width: 217px">
<div><span>File / Directory</span></div>
</th>
<th colspan="2">
<div><span>Mutation score</span></div>
</th>
<th class="rotate text-center" style="width: 50px">
<div><span># Killed</span></div>
</th>
<th class="rotate text-center" style="width: 50px">
<div><span># Survived</span></div>
</th>
<th class="rotate text-center" style="width: 50px">
<div><span># Timeout</span></div>
</th>
<th class="rotate text-center" style="width: 50px">
<div><span># No coverage</span></div>
</th>
<th class="rotate text-center" style="width: 50px">
<div><span># Ignored</span></div>
</th>
<th class="rotate text-center" style="width: 50px">
<div><span># Runtime errors</span></div>
</th>
<th class="rotate text-center" style="width: 50px">
<div><span># Compile errors</span></div>
</th>
<th class="rotate rotate-width-70 text-center" style="width: 70px">
<div><span>Total detected</span></div>
</th>
<th class="rotate rotate-width-70 text-center" style="width: 70px">
<div><span>Total undetected</span></div>
</th>
<th class="rotate rotate-width-70 text-center" style="width: 70px">
<div><span>Total mutants</span></div>
</th>
</tr>
</thead>`}renderTableBody(e){return V`<tbody>${this.renderRow(e.name,e,void 0)} ${(()=>e.file?void 0:e.childResults.map((e=>{let t=e.name;for(;!e.file&&1===e.childResults.length;)t=zt(t,(e=e.childResults[0]).name);return this.renderRow(t,e,zt(...this.currentPath,t))})))()}</tbody>`}renderRow(e,t,n){const{mutationScore:r}=t.metrics,o=!isNaN(r),i=this.determineColoringClass(r),s=r.toFixed(2),a=`width: ${r}%`;return V` <tr title="${t.name}">
<td style="width: 32px;" class="icon no-border-right"
>${t.file?this.svgService.getIconForFile(t.name):this.svgService.getIconForFolder()}</td
>
<td width="" class="no-border-left"
>${"string"==typeof n?V`<a href="${Ct(n)}">${e}</a>`:V`<span>${t.name}</span>`}</td
>
<td class="no-border-right vertical-middle">
${o?V` <div class="progress">
<div
class="progress-bar bg-${i}"
role="progressbar"
aria-valuenow="${s}"
aria-valuemin="0"
aria-valuemax="100"
style="${a}"
>
${s}%
</div>
</div>`:V` <span class="font-weight-bold text-muted">N/A</span> `}
</td>
<td style="width: 50px;" class="no-border-left font-weight-bold text-center text-${i}">
${o?s:void 0}
</td>
<td class="text-center">${t.metrics.killed}</td>
<td class="text-center">${t.metrics.survived}</td>
<td class="text-center">${t.metrics.timeout}</td>
<td class="text-center">${t.metrics.noCoverage}</td>
<td class="text-center">${t.metrics.ignored}</td>
<td class="text-center">${t.metrics.runtimeErrors}</td>
<td class="text-center">${t.metrics.compileErrors}</td>
<th class="text-center">${t.metrics.totalDetected}</th>
<th class="text-center">${t.metrics.totalUndetected}</th>
<th class="text-center">${t.metrics.totalMutants}</th>
</tr>`}determineColoringClass(e){return!isNaN(e)&&this.thresholds?e<this.thresholds.low?"danger":e<this.thresholds.high?"warning":"success":"default"}};Wt.styles=[fe,ae(Ht.a)],qt([ne()],Wt.prototype,"model",void 0),qt([ne()],Wt.prototype,"thresholds",void 0),qt([ne()],Wt.prototype,"currentPath",void 0),Wt=qt([ee("mutation-test-report-totals")],Wt);var Zt=function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s};const Jt="All files";let Kt=class extends ce{render(){return V`
<ol class="breadcrumb">
${this.renderRootItem()} ${this.renderBreadcrumbItems()}
</ol>
`}renderRootItem(){return this.path&&this.path.length?this.renderLink(Jt,""):this.renderActiveItem(Jt)}renderBreadcrumbItems(){if(this.path){const e=this.path;return e.map(((t,n)=>n===e.length-1?this.renderActiveItem(t):this.renderLink(t,""+e.filter(((e,t)=>t<=n)).join("/"))))}}renderActiveItem(e){return V` <li class="breadcrumb-item active" aria-current="page">${e}</li> `}renderLink(e,t){return V` <li class="breadcrumb-item"><a href="${Ct(t)}">${e}</a></li> `}};Kt.styles=[fe],Zt([ne()],Kt.prototype,"path",void 0),Kt=Zt([ee("mutation-test-report-breadcrumb")],Kt);var Yt=n(13),Gt=n.n(Yt),Xt=function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s};let Qt=class extends ce{constructor(){super(...arguments),this.show=!1,this.emitCloseEvent=e=>{this.dispatchEvent(new CustomEvent("close-dialog",{bubbles:!0,detail:this,composed:!0})),e.stopPropagation()}}render(){return V`
<div .hidden="${!this.show}" class="modal show" style="display: block;" tabindex="-1" role="dialog" @click="${this.emitCloseEvent}">
<div class="modal-dialog" role="document" @click="${e=>e.stopPropagation()}">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">${this.header}</h5>
</div>
<div class="modal-body">
<slot></slot>
</div>
<div class="modal-footer">
<button type="button" @click="${this.emitCloseEvent}" class="btn btn-link">Close</button>
</div>
</div>
</div>
</div>
<slot></slot>
`}};Qt.styles=[fe,ae(Gt.a)],Xt([ne({converter:e=>"string"==typeof e})],Qt.prototype,"show",void 0),Xt([ne()],Qt.prototype,"header",void 0),Qt=Xt([ee("mutation-test-report-modal-dialog")],Qt);var en=n(14),tn=n.n(en),nn=function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s};let rn=class extends ce{constructor(){super(...arguments),this.mutants=[],this.collapsed=!0,this.filters=[],this.toggleOpenAll=()=>{this.collapsed=!this.collapsed,this.collapsed?this.dispatchEvent(new CustomEvent("collapse-all")):this.dispatchEvent(new CustomEvent("expand-all"))}}get collapseButtonText(){return this.collapsed?"Expand all":"Collapse all"}updated(e){e.has("mutants")&&this.updateModel()}updateModel(){this.filters=[St.MutantStatus.Killed,St.MutantStatus.Survived,St.MutantStatus.NoCoverage,St.MutantStatus.Ignored,St.MutantStatus.Timeout,St.MutantStatus.CompileError,St.MutantStatus.RuntimeError].filter((e=>this.mutants.some((t=>t.status===e)))).map((e=>({enabled:[St.MutantStatus.Survived,St.MutantStatus.NoCoverage,St.MutantStatus.Timeout].some((t=>t===e)),numberOfMutants:this.mutants.filter((t=>t.status===e)).length,status:e}))),this.dispatchFiltersChangedEvent()}checkboxClicked(e){e.enabled=!e.enabled,this.dispatchFiltersChangedEvent()}dispatchFiltersChangedEvent(){this.dispatchEvent(new CustomEvent("filters-changed",{detail:this.filters}))}render(){return V`
<div class="legend col-md-12">
${this.filters.map((e=>V`
<div data-status="${e.status}" class="form-check form-check-inline">
<label class="form-check-label">
<input
class="form-check-input"
type="checkbox"
?checked="${e.enabled}"
value="${e.status}"
@input="${()=>this.checkboxClicked(e)}"
/>
<span class="badge badge-${Et(e.status)}"
>${Pt(e.status)} ${e.status} (${e.numberOfMutants})</span
>
</label>
</div>
`))}
<button @click="${this.toggleOpenAll}" class="btn btn-sm btn-secondary" type="button">${this.collapseButtonText}</button>
</div>
`}};rn.styles=[fe,ae(tn.a)],nn([ne()],rn.prototype,"mutants",void 0),nn([ne()],rn.prototype,"collapseButtonText",null),nn([ne()],rn.prototype,"collapsed",void 0),nn([ne()],rn.prototype,"filters",void 0),rn=nn([ee("mutation-test-report-file-legend")],rn);var on=n(15),sn=n.n(on),an=function(e,t,n,r){var o,i=arguments.length,s=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,n,s):o(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s};let ln=class extends ce{constructor(){super(...arguments),this.dispatchThemeChangedEvent=e=>{const t=e.target.checked;this.dispatchEvent(new CustomEvent("theme-switch",{detail:t?"dark":"light"}))}}render(){return V`
<div class="check-box-container">
<input type="checkbox" @click="${this.dispatchThemeChangedEvent}" ?checked="${"dark"==this.theme}" id="darkTheme" />
<label for="darkTheme">Dark</label>
</div>
`}};ln.styles=[fe,ae(sn.a)],an([ne()],ln.prototype,"theme",void 0),ln=an([ee("mutation-test-report-theme-switch")],ln)}]);
</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":{"/Users/dominiksigmund/Code/config/index.js":{"language":"javascript","mutants":[{"id":"0","location":{"end":{"column":2,"line":83},"start":{"column":49,"line":5}},"mutatorName":"BlockStatement","replacement":"{}","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"10","location":{"end":{"column":69,"line":19},"start":{"column":36,"line":19}},"mutatorName":"ArrowFunction","replacement":"() => undefined","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"11","location":{"end":{"column":130,"line":19},"start":{"column":75,"line":19}},"mutatorName":"ArrowFunction","replacement":"() => undefined","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"13","location":{"end":{"column":129,"line":19},"start":{"column":116,"line":19}},"mutatorName":"StringLiteral","replacement":"``","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"4","location":{"end":{"column":64,"line":9},"start":{"column":42,"line":9}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"2","location":{"end":{"column":15,"line":8},"start":{"column":7,"line":8}},"mutatorName":"ConditionalExpression","replacement":"false","status":"Killed","description":"Killed by: config should respect a given basepath"},{"id":"7","location":{"end":{"column":91,"line":12},"start":{"column":69,"line":12}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"5","location":{"end":{"column":52,"line":10},"start":{"column":39,"line":10}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"1","location":{"end":{"column":15,"line":8},"start":{"column":7,"line":8}},"mutatorName":"ConditionalExpression","replacement":"true","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"3","location":{"end":{"column":4,"line":11},"start":{"column":17,"line":8}},"mutatorName":"BlockStatement","replacement":"{}","status":"Killed","description":"Killed by: config should only have values from config.json"},{"id":"6","location":{"end":{"column":4,"line":14},"start":{"column":10,"line":11}},"mutatorName":"BlockStatement","replacement":"{}","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"14","location":{"end":{"column":160,"line":19},"start":{"column":139,"line":19}},"mutatorName":"ArrowFunction","replacement":"() => undefined","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"8","location":{"end":{"column":79,"line":13},"start":{"column":66,"line":13}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"Killed","description":"Killed by: config should only have values from config.json"},{"id":"15","location":{"end":{"column":4,"line":32},"start":{"column":42,"line":22}},"mutatorName":"BlockStatement","replacement":"{}","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"17","location":{"end":{"column":29,"line":26},"start":{"column":20,"line":26}},"mutatorName":"ConditionalExpression","replacement":"false","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"18","location":{"end":{"column":29,"line":26},"start":{"column":20,"line":26}},"mutatorName":"EqualityOperator","replacement":"i <" + "= len - 1","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"16","location":{"end":{"column":31,"line":24},"start":{"column":28,"line":24}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"19","location":{"end":{"column":29,"line":26},"start":{"column":20,"line":26}},"mutatorName":"EqualityOperator","replacement":"i >= len - 1","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"20","location":{"end":{"column":29,"line":26},"start":{"column":24,"line":26}},"mutatorName":"ArithmeticOperator","replacement":"len + 1","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"22","location":{"end":{"column":6,"line":30},"start":{"column":36,"line":26}},"mutatorName":"BlockStatement","replacement":"{}","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"9","location":{"end":{"column":4,"line":20},"start":{"column":41,"line":18}},"mutatorName":"BlockStatement","replacement":"{}","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"23","location":{"end":{"column":26,"line":28},"start":{"column":13,"line":28}},"mutatorName":"ConditionalExpression","replacement":"true","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"24","location":{"end":{"column":26,"line":28},"start":{"column":13,"line":28}},"mutatorName":"ConditionalExpression","replacement":"false","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"26","location":{"end":{"column":23,"line":31},"start":{"column":18,"line":31}},"mutatorName":"ArithmeticOperator","replacement":"len + 1","status":"Killed","description":"Killed by: config should respect a given basepath"},{"id":"25","location":{"end":{"column":26,"line":28},"start":{"column":13,"line":28}},"mutatorName":"BooleanLiteral","replacement":"schema[elem]","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"27","location":{"end":{"column":4,"line":43},"start":{"column":35,"line":33}},"mutatorName":"BlockStatement","replacement":"{}","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"28","location":{"end":{"column":31,"line":35},"start":{"column":28,"line":35}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"29","location":{"end":{"column":29,"line":37},"start":{"column":20,"line":37}},"mutatorName":"ConditionalExpression","replacement":"false","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"30","location":{"end":{"column":29,"line":37},"start":{"column":20,"line":37}},"mutatorName":"EqualityOperator","replacement":"i <" + "= len - 1","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"32","location":{"end":{"column":29,"line":37},"start":{"column":24,"line":37}},"mutatorName":"ArithmeticOperator","replacement":"len + 1","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"36","location":{"end":{"column":26,"line":39},"start":{"column":13,"line":39}},"mutatorName":"ConditionalExpression","replacement":"false","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"39","location":{"end":{"column":4,"line":80},"start":{"column":31,"line":45}},"mutatorName":"BlockStatement","replacement":"{}","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"34","location":{"end":{"column":6,"line":41},"start":{"column":36,"line":37}},"mutatorName":"BlockStatement","replacement":"{}","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"35","location":{"end":{"column":26,"line":39},"start":{"column":13,"line":39}},"mutatorName":"ConditionalExpression","replacement":"true","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"37","location":{"end":{"column":26,"line":39},"start":{"column":13,"line":39}},"mutatorName":"BooleanLiteral","replacement":"schema[elem]","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"38","location":{"end":{"column":30,"line":42},"start":{"column":25,"line":42}},"mutatorName":"ArithmeticOperator","replacement":"len + 1","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"12","location":{"end":{"column":129,"line":19},"start":{"column":111,"line":19}},"mutatorName":"ArrowFunction","replacement":"() => undefined","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"40","location":{"end":{"column":6,"line":49},"start":{"column":9,"line":46}},"mutatorName":"BlockStatement","replacement":"{}","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"42","location":{"end":{"column":6,"line":51},"start":{"column":20,"line":49}},"mutatorName":"BlockStatement","replacement":"{}","status":"Killed","description":"Killed by: config should respect a given basepath"},{"id":"41","location":{"end":{"column":77,"line":48},"start":{"column":71,"line":48}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"Killed","description":"Killed by: config should respect a given basepath"},{"id":"43","location":{"end":{"column":29,"line":50},"start":{"column":19,"line":50}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"47","location":{"end":{"column":29,"line":56},"start":{"column":19,"line":56}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"Killed","description":"Killed by: config should respect a given basepath"},{"id":"44","location":{"end":{"column":6,"line":55},"start":{"column":9,"line":52}},"mutatorName":"BlockStatement","replacement":"{}","status":"Killed","description":"Killed by: config should only have values from config.json"},{"id":"45","location":{"end":{"column":74,"line":54},"start":{"column":68,"line":54}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"46","location":{"end":{"column":6,"line":57},"start":{"column":21,"line":55}},"mutatorName":"BlockStatement","replacement":"{}","status":"Killed","description":"Killed by: config should respect a given basepath"},{"id":"49","location":{"end":{"column":44,"line":59},"start":{"column":25,"line":59}},"mutatorName":"EqualityOperator","replacement":"index <" + "= keys.length","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"48","location":{"end":{"column":44,"line":59},"start":{"column":25,"line":59}},"mutatorName":"ConditionalExpression","replacement":"false","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"50","location":{"end":{"column":44,"line":59},"start":{"column":25,"line":59}},"mutatorName":"EqualityOperator","replacement":"index >= keys.length","status":"Killed","description":"Killed by: config should respect a given basepath"},{"id":"52","location":{"end":{"column":6,"line":67},"start":{"column":55,"line":59}},"mutatorName":"BlockStatement","replacement":"{}","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"51","location":{"end":{"column":53,"line":59},"start":{"column":46,"line":59}},"mutatorName":"UpdateOperator","replacement":"index--","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"53","location":{"end":{"column":69,"line":61},"start":{"column":66,"line":61}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"Killed","description":"Killed by: config should respect a given basepath"},{"id":"55","location":{"end":{"column":14,"line":62},"start":{"column":11,"line":62}},"mutatorName":"ConditionalExpression","replacement":"false","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"54","location":{"end":{"column":14,"line":62},"start":{"column":11,"line":62}},"mutatorName":"ConditionalExpression","replacement":"true","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"56","location":{"end":{"column":8,"line":66},"start":{"column":16,"line":62}},"mutatorName":"BlockStatement","replacement":"{}","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"57","location":{"end":{"column":29,"line":63},"start":{"column":16,"line":63}},"mutatorName":"ConditionalExpression","replacement":"true","status":"Killed","description":"Killed by: config should respect a given basepath"},{"id":"58","location":{"end":{"column":29,"line":63},"start":{"column":16,"line":63}},"mutatorName":"ConditionalExpression","replacement":"false","status":"Killed","description":"Killed by: config should respect a given basepath"},{"id":"60","location":{"end":{"column":29,"line":63},"start":{"column":23,"line":63}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"Killed","description":"Killed by: config should respect a given basepath"},{"id":"61","location":{"end":{"column":37,"line":63},"start":{"column":33,"line":63}},"mutatorName":"BooleanLiteral","replacement":"false","status":"Killed","description":"Killed by: config should respect a given basepath"},{"id":"59","location":{"end":{"column":29,"line":63},"start":{"column":16,"line":63}},"mutatorName":"EqualityOperator","replacement":"env != 'true'","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"62","location":{"end":{"column":30,"line":64},"start":{"column":16,"line":64}},"mutatorName":"ConditionalExpression","replacement":"true","status":"Killed","description":"Killed by: config should respect a given basepath"},{"id":"63","location":{"end":{"column":30,"line":64},"start":{"column":16,"line":64}},"mutatorName":"ConditionalExpression","replacement":"false","status":"Killed","description":"Killed by: config should respect a given basepath"},{"id":"65","location":{"end":{"column":30,"line":64},"start":{"column":23,"line":64}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"64","location":{"end":{"column":30,"line":64},"start":{"column":16,"line":64}},"mutatorName":"EqualityOperator","replacement":"env != 'false'","status":"Killed","description":"Killed by: config should have both values with preference to config.json"},{"id":"67","location":{"end":{"column":44,"line":68},"start":{"column":25,"line":68}},"mutatorName":"ConditionalExpression","replacement":"false","status":"Killed","description":"Killed by: config should respect a given basepath"},{"id":"66","location":{"end":{"column":39,"line":64},"start":{"column":34,"line":64}},"mutatorName":"BooleanLiteral","replacement":"true","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"71","location":{"end":{"column":6,"line":79},"start":{"column":55,"line":68}},"mutatorName":"BlockStatement","replacement":"{}","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"68","location":{"end":{"column":44,"line":68},"start":{"column":25,"line":68}},"mutatorName":"EqualityOperator","replacement":"index <" + "= keys.length","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"69","location":{"end":{"column":44,"line":68},"start":{"column":25,"line":68}},"mutatorName":"EqualityOperator","replacement":"index >= keys.length","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"70","location":{"end":{"column":53,"line":68},"start":{"column":46,"line":68}},"mutatorName":"UpdateOperator","replacement":"index--","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"72","location":{"end":{"column":36,"line":71},"start":{"column":11,"line":71}},"mutatorName":"ConditionalExpression","replacement":"true","status":"Killed","description":"Killed by: config should respect a given basepath"},{"id":"74","location":{"end":{"column":35,"line":71},"start":{"column":28,"line":71}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"Killed","description":"Killed by: config should respect a given basepath"},{"id":"73","location":{"end":{"column":36,"line":71},"start":{"column":11,"line":71}},"mutatorName":"ConditionalExpression","replacement":"false","status":"Killed","description":"Killed by: config should respect a given basepath"},{"id":"77","location":{"end":{"column":69,"line":73},"start":{"column":62,"line":73}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"75","location":{"end":{"column":8,"line":78},"start":{"column":38,"line":71}},"mutatorName":"BlockStatement","replacement":"{}","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"76","location":{"end":{"column":10,"line":74},"start":{"column":13,"line":72}},"mutatorName":"BlockStatement","replacement":"{}","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"78","location":{"end":{"column":73,"line":73},"start":{"column":71,"line":73}},"mutatorName":"StringLiteral","replacement":"\"Stryker was here!\"","status":"Killed","description":"Killed by: config should only have values from config.defaults.json"},{"id":"79","location":{"end":{"column":82,"line":73},"start":{"column":76,"line":73}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"Killed","description":"Killed by: config should respect a given basepath"},{"id":"80","location":{"end":{"column":10,"line":76},"start":{"column":25,"line":74}},"mutatorName":"BlockStatement","replacement":"{}","status":"Killed","description":"Killed by: config should respect a given basepath"},{"id":"21","location":{"end":{"column":34,"line":26},"start":{"column":31,"line":26}},"mutatorName":"UpdateOperator","replacement":"i--","status":"Timeout"},{"id":"31","location":{"end":{"column":29,"line":37},"start":{"column":20,"line":37}},"mutatorName":"EqualityOperator","replacement":"i >= len - 1","status":"Timeout"},{"id":"33","location":{"end":{"column":34,"line":37},"start":{"column":31,"line":37}},"mutatorName":"UpdateOperator","replacement":"i--","status":"Timeout"}],"source":"var fs = require('fs')\nvar path = require('path')\nvar merge = require('lodash.merge')\n\nmodule.exports = function(basePath = undefined) {\n let configDefaults\n let configLocal\n if (basePath) {\n configDefaults = path.join(basePath, 'config.defaults.json')\n configLocal = path.join(basePath, 'config.json')\n } else {\n configDefaults = path.join(path.dirname(require.main.filename), 'config.defaults.json')\n configLocal = path.join(path.dirname(require.main.filename), 'config.json')\n }\n\n let config = {}\n \n const objectDeepKeys = function (obj) {\n return Object.keys(obj).filter(key => obj[key] instanceof Object).map(key => objectDeepKeys(obj[key]).map(k => `${key}.${k}`)).reduce((x, y) => x.concat(y), Object.keys(obj))\n }\n \n const set = function(obj, path, value) {\n var schema = obj // a moving reference to internal objects within obj\n var pList = path.split('.')\n var len = pList.length\n for(var i = 0; i <" + " len-1; i++) {\n var elem = pList[i]\n if( !schema[elem] ) schema[elem] = {}\n schema = schema[elem]\n }\n schema[pList[len-1]] = value\n }\n const get = function(obj, path) {\n var schema = obj // a moving reference to internal objects within obj\n var pList = path.split('.')\n var len = pList.length\n for(var i = 0; i <" + " len-1; i++) {\n var elem = pList[i]\n if( !schema[elem] ) schema[elem] = {}\n schema = schema[elem]\n }\n return schema[pList[len-1]]\n }\n\n config.reload = function () {\n try {\n fs.accessSync(configDefaults)\n config = merge(this, JSON.parse(fs.readFileSync(configDefaults, 'utf8')))\n } catch(error) {\n console.log('No File ' + configDefaults)\n }\n try {\n fs.accessSync(configLocal)\n config = merge(this, JSON.parse(fs.readFileSync(configLocal, 'utf8')))\n } catch (error) {\n console.log('No File ' + configLocal)\n }\n let keys = objectDeepKeys(this)\n for (let index = 0; index <" + " keys.length; index++) {\n const element = keys[index]\n let env = process.env[element.toUpperCase().replace(/\\./g, '_')]\n if (env) {\n env = (env == 'true') ? true : env\n env = (env == 'false') ? false : env\n set(this, element, env)\n }\n }\n for (let index = 0; index <" + " keys.length; index++) {\n const element = keys[index]\n let value = get(config, element).toString()\n if (value.startsWith('file:')) {\n try {\n set(config, element, fs.readFileSync(value.replace('file:', ''), 'utf8'))\n } catch (error) {\n console.error(error.message)\n }\n \n }\n }\n }\n config.reload()\n return config\n}"}},"schemaVersion":"1.0","thresholds":{"high":80,"low":60,"break":null}};
function updateTheme() {
document.body.style.backgroundColor = app.theme === 'dark' ? '#222' : '#fff';
}
app.addEventListener('theme-changed', updateTheme);
updateTheme();
</script>
</body>
</html>
\ No newline at end of file
{
"setting":"value",
"another": {
"setting":"avalue"
}
}
\ No newline at end of file
{
"setting":"overwritten",
"another": {
"more":"settings"
}
}
\ No newline at end of file
const Config = require('../../index')
let config = new Config()
console.log(JSON.stringify(config, undefined, 2))
\ No newline at end of file
{
"setting":"value",
"another": {
"setting":"avalue"
}
}
\ No newline at end of file
{
"setting":"overwritten",
"another": {
"more":"settings"
}
}
\ No newline at end of file
const Config = require('../../index')
let config = new Config()
console.log(JSON.stringify(config, undefined, 2))
\ No newline at end of file
{
"setting":"value",
"another": {
"setting":"avalue"
}
}
\ No newline at end of file
{
"setting":"overwritten",
"another": {
"more":"file:examples/files/setting_2.txt"
}
}
\ No newline at end of file
const Config = require('../../index')
let config = new Config()
console.log(JSON.stringify(config, undefined, 2))
\ No newline at end of file
some-new-value
\ No newline at end of file
some-other-value
\ No newline at end of file
{
"setting":"value",
"another": {
"setting":"avalue"
}
}
\ No newline at end of file
const Config = require('../../index')
let config = new Config()
console.log(JSON.stringify(config, undefined, 2))
\ No newline at end of file
{
"setting":"value",
"another": {
"setting":"avalue"
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment