diff options
Diffstat (limited to 'frontend')
58 files changed, 28609 insertions, 3259 deletions
diff --git a/frontend/.prettierrc b/frontend/.prettierrc new file mode 100644 index 0000000..1f4c4bb --- /dev/null +++ b/frontend/.prettierrc @@ -0,0 +1,7 @@ +{ + "semi": true, + "singleQuote": true, + "tabWidth": 2, + "trailingComma": "es5", + "printWidth": 100 +} diff --git a/frontend/README.md b/frontend/README.md index d2e7761..c987b94 100644 --- a/frontend/README.md +++ b/frontend/README.md @@ -40,15 +40,15 @@ export default defineConfig([ // other options... }, }, -]) +]); ``` You can also install [eslint-plugin-react-x](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-x) and [eslint-plugin-react-dom](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-dom) for React-specific lint rules: ```js // eslint.config.js -import reactX from 'eslint-plugin-react-x' -import reactDom from 'eslint-plugin-react-dom' +import reactX from 'eslint-plugin-react-x'; +import reactDom from 'eslint-plugin-react-dom'; export default defineConfig([ globalIgnores(['dist']), @@ -69,5 +69,5 @@ export default defineConfig([ // other options... }, }, -]) +]); ``` diff --git a/frontend/coverage/base.css b/frontend/coverage/base.css index f418035..8cd9700 100644 --- a/frontend/coverage/base.css +++ b/frontend/coverage/base.css @@ -1,71 +1,129 @@ -body, html { - margin:0; padding: 0; +body, +html { + margin: 0; + padding: 0; height: 100%; } body { - font-family: Helvetica Neue, Helvetica, Arial; - font-size: 14px; - color:#333; -} -.small { font-size: 12px; } -*, *:after, *:before { - -webkit-box-sizing:border-box; - -moz-box-sizing:border-box; - box-sizing:border-box; - } -h1 { font-size: 20px; margin: 0;} -h2 { font-size: 14px; } + font-family: + Helvetica Neue, + Helvetica, + Arial; + font-size: 14px; + color: #333; +} +.small { + font-size: 12px; +} +*, +*:after, +*:before { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +h1 { + font-size: 20px; + margin: 0; +} +h2 { + font-size: 14px; +} pre { - font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace; - margin: 0; - padding: 0; - -moz-tab-size: 2; - -o-tab-size: 2; - tab-size: 2; -} -a { color:#0074D9; text-decoration:none; } -a:hover { text-decoration:underline; } -.strong { font-weight: bold; } -.space-top1 { padding: 10px 0 0 0; } -.pad2y { padding: 20px 0; } -.pad1y { padding: 10px 0; } -.pad2x { padding: 0 20px; } -.pad2 { padding: 20px; } -.pad1 { padding: 10px; } -.space-left2 { padding-left:55px; } -.space-right2 { padding-right:20px; } -.center { text-align:center; } -.clearfix { display:block; } + font: + 12px/1.4 Consolas, + 'Liberation Mono', + Menlo, + Courier, + monospace; + margin: 0; + padding: 0; + -moz-tab-size: 2; + -o-tab-size: 2; + tab-size: 2; +} +a { + color: #0074d9; + text-decoration: none; +} +a:hover { + text-decoration: underline; +} +.strong { + font-weight: bold; +} +.space-top1 { + padding: 10px 0 0 0; +} +.pad2y { + padding: 20px 0; +} +.pad1y { + padding: 10px 0; +} +.pad2x { + padding: 0 20px; +} +.pad2 { + padding: 20px; +} +.pad1 { + padding: 10px; +} +.space-left2 { + padding-left: 55px; +} +.space-right2 { + padding-right: 20px; +} +.center { + text-align: center; +} +.clearfix { + display: block; +} .clearfix:after { - content:''; - display:block; - height:0; - clear:both; - visibility:hidden; + content: ''; + display: block; + height: 0; + clear: both; + visibility: hidden; +} +.fl { + float: left; +} +@media only screen and (max-width: 640px) { + .col3 { + width: 100%; + max-width: 100%; + } + .hide-mobile { + display: none !important; } -.fl { float: left; } -@media only screen and (max-width:640px) { - .col3 { width:100%; max-width:100%; } - .hide-mobile { display:none!important; } } .quiet { color: #7f7f7f; - color: rgba(0,0,0,0.5); + color: rgba(0, 0, 0, 0.5); +} +.quiet a { + opacity: 0.7; } -.quiet a { opacity: 0.7; } .fraction { font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 10px; color: #555; - background: #E8E8E8; + background: #e8e8e8; padding: 4px 5px; border-radius: 3px; vertical-align: middle; } -div.path a:link, div.path a:visited { color: #333; } +div.path a:link, +div.path a:visited { + color: #333; +} table.coverage { border-collapse: collapse; margin: 10px 0 0 0; @@ -78,140 +136,219 @@ table.coverage td { vertical-align: top; } table.coverage td.line-count { - text-align: right; - padding: 0 5px 0 20px; + text-align: right; + padding: 0 5px 0 20px; } table.coverage td.line-coverage { - text-align: right; - padding-right: 10px; - min-width:20px; + text-align: right; + padding-right: 10px; + min-width: 20px; } table.coverage td span.cline-any { - display: inline-block; - padding: 0 5px; - width: 100%; + display: inline-block; + padding: 0 5px; + width: 100%; } .missing-if-branch { - display: inline-block; - margin-right: 5px; - border-radius: 3px; - position: relative; - padding: 0 4px; - background: #333; - color: yellow; + display: inline-block; + margin-right: 5px; + border-radius: 3px; + position: relative; + padding: 0 4px; + background: #333; + color: yellow; } .skip-if-branch { - display: none; - margin-right: 10px; - position: relative; - padding: 0 4px; - background: #ccc; - color: white; + display: none; + margin-right: 10px; + position: relative; + padding: 0 4px; + background: #ccc; + color: white; } -.missing-if-branch .typ, .skip-if-branch .typ { - color: inherit !important; +.missing-if-branch .typ, +.skip-if-branch .typ { + color: inherit !important; } .coverage-summary { border-collapse: collapse; width: 100%; } -.coverage-summary tr { border-bottom: 1px solid #bbb; } -.keyline-all { border: 1px solid #ddd; } -.coverage-summary td, .coverage-summary th { padding: 10px; } -.coverage-summary tbody { border: 1px solid #bbb; } -.coverage-summary td { border-right: 1px solid #bbb; } -.coverage-summary td:last-child { border-right: none; } +.coverage-summary tr { + border-bottom: 1px solid #bbb; +} +.keyline-all { + border: 1px solid #ddd; +} +.coverage-summary td, +.coverage-summary th { + padding: 10px; +} +.coverage-summary tbody { + border: 1px solid #bbb; +} +.coverage-summary td { + border-right: 1px solid #bbb; +} +.coverage-summary td:last-child { + border-right: none; +} .coverage-summary th { text-align: left; font-weight: normal; white-space: nowrap; } -.coverage-summary th.file { border-right: none !important; } -.coverage-summary th.pct { } +.coverage-summary th.file { + border-right: none !important; +} +.coverage-summary th.pct { +} .coverage-summary th.pic, .coverage-summary th.abs, .coverage-summary td.pct, -.coverage-summary td.abs { text-align: right; } -.coverage-summary td.file { white-space: nowrap; } -.coverage-summary td.pic { min-width: 120px !important; } -.coverage-summary tfoot td { } +.coverage-summary td.abs { + text-align: right; +} +.coverage-summary td.file { + white-space: nowrap; +} +.coverage-summary td.pic { + min-width: 120px !important; +} +.coverage-summary tfoot td { +} .coverage-summary .sorter { - height: 10px; - width: 7px; - display: inline-block; - margin-left: 0.5em; - background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent; + height: 10px; + width: 7px; + display: inline-block; + margin-left: 0.5em; + background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent; } .coverage-summary .sorted .sorter { - background-position: 0 -20px; + background-position: 0 -20px; } .coverage-summary .sorted-desc .sorter { - background-position: 0 -10px; + background-position: 0 -10px; +} +.status-line { + height: 10px; } -.status-line { height: 10px; } /* yellow */ -.cbranch-no { background: yellow !important; color: #111; } +.cbranch-no { + background: yellow !important; + color: #111; +} /* dark red */ -.red.solid, .status-line.low, .low .cover-fill { background:#C21F39 } -.low .chart { border:1px solid #C21F39 } +.red.solid, +.status-line.low, +.low .cover-fill { + background: #c21f39; +} +.low .chart { + border: 1px solid #c21f39; +} .highlighted, -.highlighted .cstat-no, .highlighted .fstat-no, .highlighted .cbranch-no{ - background: #C21F39 !important; +.highlighted .cstat-no, +.highlighted .fstat-no, +.highlighted .cbranch-no { + background: #c21f39 !important; } /* medium red */ -.cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE } +.cstat-no, +.fstat-no, +.cbranch-no, +.cbranch-no { + background: #f6c6ce; +} /* light red */ -.low, .cline-no { background:#FCE1E5 } +.low, +.cline-no { + background: #fce1e5; +} /* light green */ -.high, .cline-yes { background:rgb(230,245,208) } +.high, +.cline-yes { + background: rgb(230, 245, 208); +} /* medium green */ -.cstat-yes { background:rgb(161,215,106) } +.cstat-yes { + background: rgb(161, 215, 106); +} /* dark green */ -.status-line.high, .high .cover-fill { background:rgb(77,146,33) } -.high .chart { border:1px solid rgb(77,146,33) } +.status-line.high, +.high .cover-fill { + background: rgb(77, 146, 33); +} +.high .chart { + border: 1px solid rgb(77, 146, 33); +} /* dark yellow (gold) */ -.status-line.medium, .medium .cover-fill { background: #f9cd0b; } -.medium .chart { border:1px solid #f9cd0b; } +.status-line.medium, +.medium .cover-fill { + background: #f9cd0b; +} +.medium .chart { + border: 1px solid #f9cd0b; +} /* light yellow */ -.medium { background: #fff4c2; } +.medium { + background: #fff4c2; +} -.cstat-skip { background: #ddd; color: #111; } -.fstat-skip { background: #ddd; color: #111 !important; } -.cbranch-skip { background: #ddd !important; color: #111; } +.cstat-skip { + background: #ddd; + color: #111; +} +.fstat-skip { + background: #ddd; + color: #111 !important; +} +.cbranch-skip { + background: #ddd !important; + color: #111; +} -span.cline-neutral { background: #eaeaea; } +span.cline-neutral { + background: #eaeaea; +} .coverage-summary td.empty { - opacity: .5; - padding-top: 4px; - padding-bottom: 4px; - line-height: 1; - color: #888; + opacity: 0.5; + padding-top: 4px; + padding-bottom: 4px; + line-height: 1; + color: #888; } -.cover-fill, .cover-empty { - display:inline-block; +.cover-fill, +.cover-empty { + display: inline-block; height: 12px; } .chart { line-height: 0; } .cover-empty { - background: white; + background: white; } .cover-full { - border-right: none !important; + border-right: none !important; } pre.prettyprint { - border: none !important; - padding: 0 !important; - margin: 0 !important; + border: none !important; + padding: 0 !important; + margin: 0 !important; +} +.com { + color: #999 !important; +} +.ignore-none { + color: #999; + font-weight: normal; } -.com { color: #999 !important; } -.ignore-none { color: #999; font-weight: normal; } .wrapper { min-height: 100%; @@ -219,6 +356,7 @@ pre.prettyprint { height: 100%; margin: 0 auto -48px; } -.footer, .push { +.footer, +.push { height: 48px; } diff --git a/frontend/coverage/block-navigation.js b/frontend/coverage/block-navigation.js index 530d1ed..05f7569 100644 --- a/frontend/coverage/block-navigation.js +++ b/frontend/coverage/block-navigation.js @@ -1,87 +1,82 @@ -/* eslint-disable */ + var jumpToCode = (function init() { - // Classes of code we would like to highlight in the file view - var missingCoverageClasses = ['.cbranch-no', '.cstat-no', '.fstat-no']; + // Classes of code we would like to highlight in the file view + var missingCoverageClasses = ['.cbranch-no', '.cstat-no', '.fstat-no']; - // Elements to highlight in the file listing view - var fileListingElements = ['td.pct.low']; + // Elements to highlight in the file listing view + var fileListingElements = ['td.pct.low']; - // We don't want to select elements that are direct descendants of another match - var notSelector = ':not(' + missingCoverageClasses.join('):not(') + ') > '; // becomes `:not(a):not(b) > ` + // We don't want to select elements that are direct descendants of another match + var notSelector = ':not(' + missingCoverageClasses.join('):not(') + ') > '; // becomes `:not(a):not(b) > ` - // Selector that finds elements on the page to which we can jump - var selector = - fileListingElements.join(', ') + - ', ' + - notSelector + - missingCoverageClasses.join(', ' + notSelector); // becomes `:not(a):not(b) > a, :not(a):not(b) > b` + // Selector that finds elements on the page to which we can jump + var selector = + fileListingElements.join(', ') + + ', ' + + notSelector + + missingCoverageClasses.join(', ' + notSelector); // becomes `:not(a):not(b) > a, :not(a):not(b) > b` - // The NodeList of matching elements - var missingCoverageElements = document.querySelectorAll(selector); + // The NodeList of matching elements + var missingCoverageElements = document.querySelectorAll(selector); - var currentIndex; + var currentIndex; - function toggleClass(index) { - missingCoverageElements - .item(currentIndex) - .classList.remove('highlighted'); - missingCoverageElements.item(index).classList.add('highlighted'); - } - - function makeCurrent(index) { - toggleClass(index); - currentIndex = index; - missingCoverageElements.item(index).scrollIntoView({ - behavior: 'smooth', - block: 'center', - inline: 'center' - }); - } + function toggleClass(index) { + missingCoverageElements.item(currentIndex).classList.remove('highlighted'); + missingCoverageElements.item(index).classList.add('highlighted'); + } - function goToPrevious() { - var nextIndex = 0; - if (typeof currentIndex !== 'number' || currentIndex === 0) { - nextIndex = missingCoverageElements.length - 1; - } else if (missingCoverageElements.length > 1) { - nextIndex = currentIndex - 1; - } + function makeCurrent(index) { + toggleClass(index); + currentIndex = index; + missingCoverageElements.item(index).scrollIntoView({ + behavior: 'smooth', + block: 'center', + inline: 'center', + }); + } - makeCurrent(nextIndex); + function goToPrevious() { + var nextIndex = 0; + if (typeof currentIndex !== 'number' || currentIndex === 0) { + nextIndex = missingCoverageElements.length - 1; + } else if (missingCoverageElements.length > 1) { + nextIndex = currentIndex - 1; } - function goToNext() { - var nextIndex = 0; + makeCurrent(nextIndex); + } - if ( - typeof currentIndex === 'number' && - currentIndex < missingCoverageElements.length - 1 - ) { - nextIndex = currentIndex + 1; - } + function goToNext() { + var nextIndex = 0; - makeCurrent(nextIndex); + if (typeof currentIndex === 'number' && currentIndex < missingCoverageElements.length - 1) { + nextIndex = currentIndex + 1; } - return function jump(event) { - if ( - document.getElementById('fileSearch') === document.activeElement && - document.activeElement != null - ) { - // if we're currently focused on the search input, we don't want to navigate - return; - } + makeCurrent(nextIndex); + } - switch (event.which) { - case 78: // n - case 74: // j - goToNext(); - break; - case 66: // b - case 75: // k - case 80: // p - goToPrevious(); - break; - } - }; + return function jump(event) { + if ( + document.getElementById('fileSearch') === document.activeElement && + document.activeElement != null + ) { + // if we're currently focused on the search input, we don't want to navigate + return; + } + + switch (event.which) { + case 78: // n + case 74: // j + goToNext(); + break; + case 66: // b + case 75: // k + case 80: // p + goToPrevious(); + break; + } + }; })(); window.addEventListener('keydown', jumpToCode); diff --git a/frontend/coverage/coverage-final.json b/frontend/coverage/coverage-final.json index 80fb28a..e46821b 100644 --- a/frontend/coverage/coverage-final.json +++ b/frontend/coverage/coverage-final.json @@ -1,13 +1,2240 @@ -{"/Users/adam/workspace/vibecode/neko/frontend/src/App.css": {"path":"/Users/adam/workspace/vibecode/neko/frontend/src/App.css","statementMap":{},"fnMap":{},"branchMap":{},"s":{},"f":{},"b":{},"meta":{"lastBranch":0,"lastFunction":0,"lastStatement":0,"seen":{}}} -,"/Users/adam/workspace/vibecode/neko/frontend/src/App.tsx": {"path":"/Users/adam/workspace/vibecode/neko/frontend/src/App.tsx","statementMap":{"0":{"start":{"line":8,"column":22},"end":{"line":8,"column":null}},"1":{"start":{"line":9,"column":8},"end":{"line":9,"column":null}},"2":{"start":{"line":11,"column":2},"end":{"line":21,"column":null}},"3":{"start":{"line":12,"column":4},"end":{"line":20,"column":null}},"4":{"start":{"line":14,"column":8},"end":{"line":18,"column":null}},"5":{"start":{"line":15,"column":10},"end":{"line":15,"column":null}},"6":{"start":{"line":17,"column":10},"end":{"line":17,"column":null}},"7":{"start":{"line":20,"column":19},"end":{"line":20,"column":33}},"8":{"start":{"line":23,"column":2},"end":{"line":25,"column":null}},"9":{"start":{"line":24,"column":4},"end":{"line":24,"column":null}},"10":{"start":{"line":27,"column":2},"end":{"line":29,"column":null}},"11":{"start":{"line":28,"column":4},"end":{"line":28,"column":null}},"12":{"start":{"line":31,"column":2},"end":{"line":31,"column":null}},"13":{"start":{"line":39,"column":8},"end":{"line":39,"column":null}},"14":{"start":{"line":40,"column":2},"end":{"line":68,"column":null}},"15":{"start":{"line":45,"column":33},"end":{"line":45,"column":56}},"16":{"start":{"line":48,"column":12},"end":{"line":49,"column":null}},"17":{"start":{"line":49,"column":26},"end":{"line":49,"column":60}},"18":{"start":{"line":73,"column":2},"end":{"line":86,"column":null}}},"fnMap":{"0":{"name":"RequireAuth","decl":{"start":{"line":7,"column":9},"end":{"line":7,"column":21}},"loc":{"start":{"line":7,"column":69},"end":{"line":32,"column":null}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":11,"column":12},"end":{"line":11,"column":18}},"loc":{"start":{"line":11,"column":18},"end":{"line":21,"column":5}},"line":11},"2":{"name":"(anonymous_2)","decl":{"start":{"line":13,"column":12},"end":{"line":13,"column":13}},"loc":{"start":{"line":13,"column":21},"end":{"line":19,"column":7}},"line":13},"3":{"name":"(anonymous_3)","decl":{"start":{"line":20,"column":13},"end":{"line":20,"column":19}},"loc":{"start":{"line":20,"column":19},"end":{"line":20,"column":33}},"line":20},"4":{"name":"Dashboard","decl":{"start":{"line":38,"column":9},"end":{"line":38,"column":21}},"loc":{"start":{"line":38,"column":21},"end":{"line":70,"column":null}},"line":38},"5":{"name":"(anonymous_5)","decl":{"start":{"line":45,"column":27},"end":{"line":45,"column":33}},"loc":{"start":{"line":45,"column":33},"end":{"line":45,"column":56}},"line":45},"6":{"name":"(anonymous_6)","decl":{"start":{"line":47,"column":27},"end":{"line":47,"column":33}},"loc":{"start":{"line":47,"column":33},"end":{"line":50,"column":13}},"line":47},"7":{"name":"(anonymous_7)","decl":{"start":{"line":49,"column":20},"end":{"line":49,"column":26}},"loc":{"start":{"line":49,"column":26},"end":{"line":49,"column":60}},"line":49},"8":{"name":"App","decl":{"start":{"line":72,"column":9},"end":{"line":72,"column":15}},"loc":{"start":{"line":72,"column":15},"end":{"line":88,"column":null}},"line":72}},"branchMap":{"0":{"loc":{"start":{"line":14,"column":8},"end":{"line":18,"column":null}},"type":"if","locations":[{"start":{"line":14,"column":8},"end":{"line":18,"column":null}},{"start":{"line":16,"column":15},"end":{"line":18,"column":null}}],"line":14},"1":{"loc":{"start":{"line":23,"column":2},"end":{"line":25,"column":null}},"type":"if","locations":[{"start":{"line":23,"column":2},"end":{"line":25,"column":null}},{"start":{},"end":{}}],"line":23},"2":{"loc":{"start":{"line":27,"column":2},"end":{"line":29,"column":null}},"type":"if","locations":[{"start":{"line":27,"column":2},"end":{"line":29,"column":null}},{"start":{},"end":{}}],"line":27}},"s":{"0":2,"1":2,"2":2,"3":1,"4":1,"5":1,"6":0,"7":0,"8":2,"9":1,"10":1,"11":0,"12":1,"13":1,"14":1,"15":0,"16":1,"17":1,"18":2},"f":{"0":2,"1":1,"2":1,"3":0,"4":1,"5":0,"6":1,"7":1,"8":2},"b":{"0":[1,0],"1":[1,1],"2":[0,1]},"meta":{"lastBranch":3,"lastFunction":9,"lastStatement":19,"seen":{"f:7:9:7:21":0,"s:8:22:8:Infinity":0,"s:9:8:9:Infinity":1,"s:11:2:21:Infinity":2,"f:11:12:11:18":1,"s:12:4:20:Infinity":3,"f:13:12:13:13":2,"b:14:8:18:Infinity:16:15:18:Infinity":0,"s:14:8:18:Infinity":4,"s:15:10:15:Infinity":5,"s:17:10:17:Infinity":6,"f:20:13:20:19":3,"s:20:19:20:33":7,"b:23:2:25:Infinity:undefined:undefined:undefined:undefined":1,"s:23:2:25:Infinity":8,"s:24:4:24:Infinity":9,"b:27:2:29:Infinity:undefined:undefined:undefined:undefined":2,"s:27:2:29:Infinity":10,"s:28:4:28:Infinity":11,"s:31:2:31:Infinity":12,"f:38:9:38:21":4,"s:39:8:39:Infinity":13,"s:40:2:68:Infinity":14,"f:45:27:45:33":5,"s:45:33:45:56":15,"f:47:27:47:33":6,"s:48:12:49:Infinity":16,"f:49:20:49:26":7,"s:49:26:49:60":17,"f:72:9:72:15":8,"s:73:2:86:Infinity":18}}} -,"/Users/adam/workspace/vibecode/neko/frontend/src/components/FeedItem.css": {"path":"/Users/adam/workspace/vibecode/neko/frontend/src/components/FeedItem.css","statementMap":{},"fnMap":{},"branchMap":{},"s":{},"f":{},"b":{},"meta":{"lastBranch":0,"lastFunction":0,"lastStatement":0,"seen":{}}} -,"/Users/adam/workspace/vibecode/neko/frontend/src/components/FeedItem.tsx": {"path":"/Users/adam/workspace/vibecode/neko/frontend/src/components/FeedItem.tsx","statementMap":{"0":{"start":{"line":10,"column":24},"end":{"line":10,"column":null}},"1":{"start":{"line":11,"column":30},"end":{"line":11,"column":null}},"2":{"start":{"line":14,"column":23},"end":{"line":16,"column":null}},"3":{"start":{"line":15,"column":8},"end":{"line":15,"column":null}},"4":{"start":{"line":18,"column":23},"end":{"line":52,"column":null}},"5":{"start":{"line":19,"column":8},"end":{"line":19,"column":null}},"6":{"start":{"line":21,"column":29},"end":{"line":21,"column":null}},"7":{"start":{"line":22,"column":8},"end":{"line":22,"column":null}},"8":{"start":{"line":24,"column":8},"end":{"line":51,"column":null}},"9":{"start":{"line":36,"column":16},"end":{"line":38,"column":null}},"10":{"start":{"line":37,"column":20},"end":{"line":37,"column":null}},"11":{"start":{"line":39,"column":16},"end":{"line":39,"column":null}},"12":{"start":{"line":44,"column":16},"end":{"line":44,"column":null}},"13":{"start":{"line":47,"column":16},"end":{"line":47,"column":null}},"14":{"start":{"line":49,"column":16},"end":{"line":49,"column":null}},"15":{"start":{"line":50,"column":16},"end":{"line":50,"column":null}},"16":{"start":{"line":54,"column":4},"end":{"line":82,"column":null}},"17":{"start":{"line":59,"column":24},"end":{"line":59,"column":null}},"18":{"start":{"line":60,"column":24},"end":{"line":60,"column":null}}},"fnMap":{"0":{"name":"FeedItem","decl":{"start":{"line":9,"column":24},"end":{"line":9,"column":33}},"loc":{"start":{"line":9,"column":71},"end":{"line":84,"column":null}},"line":9},"1":{"name":"(anonymous_1)","decl":{"start":{"line":14,"column":23},"end":{"line":14,"column":29}},"loc":{"start":{"line":14,"column":29},"end":{"line":16,"column":null}},"line":14},"2":{"name":"(anonymous_2)","decl":{"start":{"line":18,"column":23},"end":{"line":18,"column":24}},"loc":{"start":{"line":18,"column":42},"end":{"line":52,"column":null}},"line":18},"3":{"name":"(anonymous_3)","decl":{"start":{"line":35,"column":18},"end":{"line":35,"column":19}},"loc":{"start":{"line":35,"column":27},"end":{"line":40,"column":13}},"line":35},"4":{"name":"(anonymous_4)","decl":{"start":{"line":41,"column":18},"end":{"line":41,"column":24}},"loc":{"start":{"line":41,"column":24},"end":{"line":45,"column":13}},"line":41},"5":{"name":"(anonymous_5)","decl":{"start":{"line":46,"column":19},"end":{"line":46,"column":20}},"loc":{"start":{"line":46,"column":28},"end":{"line":51,"column":13}},"line":46},"6":{"name":"(anonymous_6)","decl":{"start":{"line":58,"column":29},"end":{"line":58,"column":30}},"loc":{"start":{"line":58,"column":36},"end":{"line":61,"column":null}},"line":58}},"branchMap":{"0":{"loc":{"start":{"line":36,"column":16},"end":{"line":38,"column":null}},"type":"if","locations":[{"start":{"line":36,"column":16},"end":{"line":38,"column":null}},{"start":{},"end":{}}],"line":36},"1":{"loc":{"start":{"line":55,"column":36},"end":{"line":55,"column":65}},"type":"cond-expr","locations":[{"start":{"line":55,"column":48},"end":{"line":55,"column":57}},{"start":{"line":55,"column":57},"end":{"line":55,"column":65}}],"line":55},"2":{"loc":{"start":{"line":55,"column":69},"end":{"line":55,"column":93}},"type":"cond-expr","locations":[{"start":{"line":55,"column":79},"end":{"line":55,"column":91}},{"start":{"line":55,"column":91},"end":{"line":55,"column":93}}],"line":55},"3":{"loc":{"start":{"line":62,"column":43},"end":{"line":62,"column":87}},"type":"cond-expr","locations":[{"start":{"line":62,"column":58},"end":{"line":62,"column":73}},{"start":{"line":62,"column":73},"end":{"line":62,"column":87}}],"line":62},"4":{"loc":{"start":{"line":63,"column":27},"end":{"line":63,"column":null}},"type":"cond-expr","locations":[{"start":{"line":63,"column":42},"end":{"line":63,"column":53}},{"start":{"line":63,"column":53},"end":{"line":63,"column":null}}],"line":63},"5":{"loc":{"start":{"line":65,"column":21},"end":{"line":65,"column":null}},"type":"cond-expr","locations":[{"start":{"line":65,"column":36},"end":{"line":65,"column":42}},{"start":{"line":65,"column":42},"end":{"line":65,"column":null}}],"line":65},"6":{"loc":{"start":{"line":68,"column":21},"end":{"line":68,"column":null}},"type":"binary-expr","locations":[{"start":{"line":68,"column":21},"end":{"line":68,"column":35}},{"start":{"line":68,"column":35},"end":{"line":68,"column":null}}],"line":68},"7":{"loc":{"start":{"line":74,"column":21},"end":{"line":74,"column":null}},"type":"binary-expr","locations":[{"start":{"line":74,"column":21},"end":{"line":74,"column":40}},{"start":{"line":74,"column":40},"end":{"line":74,"column":null}}],"line":74},"8":{"loc":{"start":{"line":79,"column":13},"end":{"line":80,"column":null}},"type":"binary-expr","locations":[{"start":{"line":79,"column":13},"end":{"line":79,"column":null}},{"start":{"line":80,"column":16},"end":{"line":80,"column":null}}],"line":79}},"s":{"0":21,"1":21,"2":21,"3":1,"4":21,"5":1,"6":1,"7":1,"8":1,"9":1,"10":0,"11":1,"12":1,"13":0,"14":0,"15":0,"16":21,"17":1,"18":1},"f":{"0":21,"1":1,"2":1,"3":1,"4":1,"5":0,"6":1},"b":{"0":[0,1],"1":[9,12],"2":[1,20],"3":[2,19],"4":[2,19],"5":[2,19],"6":[21,0],"7":[21,5],"8":[21,4]},"meta":{"lastBranch":9,"lastFunction":7,"lastStatement":19,"seen":{"f:9:24:9:33":0,"s:10:24:10:Infinity":0,"s:11:30:11:Infinity":1,"s:14:23:16:Infinity":2,"f:14:23:14:29":1,"s:15:8:15:Infinity":3,"s:18:23:52:Infinity":4,"f:18:23:18:24":2,"s:19:8:19:Infinity":5,"s:21:29:21:Infinity":6,"s:22:8:22:Infinity":7,"s:24:8:51:Infinity":8,"f:35:18:35:19":3,"b:36:16:38:Infinity:undefined:undefined:undefined:undefined":0,"s:36:16:38:Infinity":9,"s:37:20:37:Infinity":10,"s:39:16:39:Infinity":11,"f:41:18:41:24":4,"s:44:16:44:Infinity":12,"f:46:19:46:20":5,"s:47:16:47:Infinity":13,"s:49:16:49:Infinity":14,"s:50:16:50:Infinity":15,"s:54:4:82:Infinity":16,"b:55:48:55:57:55:57:55:65":1,"b:55:79:55:91:55:91:55:93":2,"f:58:29:58:30":6,"s:59:24:59:Infinity":17,"s:60:24:60:Infinity":18,"b:62:58:62:73:62:73:62:87":3,"b:63:42:63:53:63:53:63:Infinity":4,"b:65:36:65:42:65:42:65:Infinity":5,"b:68:21:68:35:68:35:68:Infinity":6,"b:74:21:74:40:74:40:74:Infinity":7,"b:79:13:79:Infinity:80:16:80:Infinity":8}}} -,"/Users/adam/workspace/vibecode/neko/frontend/src/components/FeedItems.css": {"path":"/Users/adam/workspace/vibecode/neko/frontend/src/components/FeedItems.css","statementMap":{},"fnMap":{},"branchMap":{},"s":{},"f":{},"b":{},"meta":{"lastBranch":0,"lastFunction":0,"lastStatement":0,"seen":{}}} -,"/Users/adam/workspace/vibecode/neko/frontend/src/components/FeedItems.tsx": {"path":"/Users/adam/workspace/vibecode/neko/frontend/src/components/FeedItems.tsx","statementMap":{"0":{"start":{"line":8,"column":28},"end":{"line":8,"column":null}},"1":{"start":{"line":9,"column":23},"end":{"line":9,"column":null}},"2":{"start":{"line":10,"column":21},"end":{"line":10,"column":null}},"3":{"start":{"line":12,"column":26},"end":{"line":12,"column":null}},"4":{"start":{"line":13,"column":30},"end":{"line":13,"column":null}},"5":{"start":{"line":14,"column":38},"end":{"line":14,"column":null}},"6":{"start":{"line":15,"column":30},"end":{"line":15,"column":null}},"7":{"start":{"line":16,"column":26},"end":{"line":16,"column":null}},"8":{"start":{"line":18,"column":23},"end":{"line":78,"column":null}},"9":{"start":{"line":19,"column":8},"end":{"line":24,"column":null}},"10":{"start":{"line":20,"column":12},"end":{"line":20,"column":null}},"11":{"start":{"line":22,"column":12},"end":{"line":22,"column":null}},"12":{"start":{"line":23,"column":12},"end":{"line":23,"column":null}},"13":{"start":{"line":25,"column":8},"end":{"line":25,"column":null}},"14":{"start":{"line":27,"column":18},"end":{"line":27,"column":null}},"15":{"start":{"line":28,"column":23},"end":{"line":28,"column":null}},"16":{"start":{"line":30,"column":8},"end":{"line":34,"column":null}},"17":{"start":{"line":31,"column":12},"end":{"line":31,"column":null}},"18":{"start":{"line":32,"column":8},"end":{"line":34,"column":null}},"19":{"start":{"line":33,"column":12},"end":{"line":33,"column":null}},"20":{"start":{"line":36,"column":8},"end":{"line":38,"column":null}},"21":{"start":{"line":37,"column":12},"end":{"line":37,"column":null}},"22":{"start":{"line":41,"column":8},"end":{"line":49,"column":null}},"23":{"start":{"line":42,"column":12},"end":{"line":42,"column":null}},"24":{"start":{"line":43,"column":8},"end":{"line":49,"column":null}},"25":{"start":{"line":44,"column":12},"end":{"line":44,"column":null}},"26":{"start":{"line":45,"column":12},"end":{"line":45,"column":null}},"27":{"start":{"line":48,"column":12},"end":{"line":48,"column":null}},"28":{"start":{"line":51,"column":28},"end":{"line":51,"column":null}},"29":{"start":{"line":52,"column":8},"end":{"line":54,"column":null}},"30":{"start":{"line":53,"column":12},"end":{"line":53,"column":null}},"31":{"start":{"line":56,"column":8},"end":{"line":77,"column":null}},"32":{"start":{"line":58,"column":16},"end":{"line":60,"column":null}},"33":{"start":{"line":59,"column":20},"end":{"line":59,"column":null}},"34":{"start":{"line":61,"column":16},"end":{"line":61,"column":null}},"35":{"start":{"line":64,"column":16},"end":{"line":68,"column":null}},"36":{"start":{"line":65,"column":20},"end":{"line":65,"column":null}},"37":{"start":{"line":65,"column":39},"end":{"line":65,"column":57}},"38":{"start":{"line":67,"column":20},"end":{"line":67,"column":null}},"39":{"start":{"line":69,"column":16},"end":{"line":69,"column":null}},"40":{"start":{"line":70,"column":16},"end":{"line":70,"column":null}},"41":{"start":{"line":71,"column":16},"end":{"line":71,"column":null}},"42":{"start":{"line":74,"column":16},"end":{"line":74,"column":null}},"43":{"start":{"line":75,"column":16},"end":{"line":75,"column":null}},"44":{"start":{"line":76,"column":16},"end":{"line":76,"column":null}},"45":{"start":{"line":80,"column":4},"end":{"line":82,"column":null}},"46":{"start":{"line":81,"column":8},"end":{"line":81,"column":null}},"47":{"start":{"line":84,"column":42},"end":{"line":84,"column":null}},"48":{"start":{"line":86,"column":4},"end":{"line":122,"column":null}},"49":{"start":{"line":87,"column":30},"end":{"line":118,"column":null}},"50":{"start":{"line":88,"column":12},"end":{"line":88,"column":null}},"51":{"start":{"line":88,"column":36},"end":{"line":88,"column":null}},"52":{"start":{"line":90,"column":12},"end":{"line":117,"column":null}},"53":{"start":{"line":91,"column":16},"end":{"line":101,"column":null}},"54":{"start":{"line":92,"column":38},"end":{"line":92,"column":null}},"55":{"start":{"line":93,"column":20},"end":{"line":99,"column":null}},"56":{"start":{"line":94,"column":37},"end":{"line":94,"column":null}},"57":{"start":{"line":95,"column":24},"end":{"line":97,"column":null}},"58":{"start":{"line":96,"column":28},"end":{"line":96,"column":null}},"59":{"start":{"line":98,"column":24},"end":{"line":98,"column":null}},"60":{"start":{"line":100,"column":20},"end":{"line":100,"column":null}},"61":{"start":{"line":102,"column":12},"end":{"line":117,"column":null}},"62":{"start":{"line":103,"column":16},"end":{"line":109,"column":null}},"63":{"start":{"line":104,"column":38},"end":{"line":104,"column":null}},"64":{"start":{"line":105,"column":20},"end":{"line":107,"column":null}},"65":{"start":{"line":106,"column":24},"end":{"line":106,"column":null}},"66":{"start":{"line":108,"column":20},"end":{"line":108,"column":null}},"67":{"start":{"line":110,"column":12},"end":{"line":117,"column":null}},"68":{"start":{"line":111,"column":16},"end":{"line":116,"column":null}},"69":{"start":{"line":112,"column":20},"end":{"line":114,"column":null}},"70":{"start":{"line":113,"column":24},"end":{"line":113,"column":null}},"71":{"start":{"line":115,"column":20},"end":{"line":115,"column":null}},"72":{"start":{"line":120,"column":8},"end":{"line":120,"column":null}},"73":{"start":{"line":121,"column":8},"end":{"line":121,"column":null}},"74":{"start":{"line":121,"column":21},"end":{"line":121,"column":null}},"75":{"start":{"line":124,"column":25},"end":{"line":129,"column":null}},"76":{"start":{"line":125,"column":24},"end":{"line":125,"column":null}},"77":{"start":{"line":126,"column":8},"end":{"line":128,"column":null}},"78":{"start":{"line":127,"column":12},"end":{"line":127,"column":null}},"79":{"start":{"line":131,"column":23},"end":{"line":141,"column":null}},"80":{"start":{"line":132,"column":28},"end":{"line":132,"column":null}},"81":{"start":{"line":134,"column":8},"end":{"line":134,"column":null}},"82":{"start":{"line":134,"column":32},"end":{"line":134,"column":92}},"83":{"start":{"line":134,"column":54},"end":{"line":134,"column":91}},"84":{"start":{"line":136,"column":8},"end":{"line":140,"column":null}},"85":{"start":{"line":140,"column":26},"end":{"line":140,"column":67}},"86":{"start":{"line":143,"column":23},"end":{"line":153,"column":null}},"87":{"start":{"line":144,"column":28},"end":{"line":144,"column":null}},"88":{"start":{"line":146,"column":8},"end":{"line":146,"column":null}},"89":{"start":{"line":146,"column":32},"end":{"line":146,"column":92}},"90":{"start":{"line":146,"column":54},"end":{"line":146,"column":91}},"91":{"start":{"line":148,"column":8},"end":{"line":152,"column":null}},"92":{"start":{"line":152,"column":26},"end":{"line":152,"column":69}},"93":{"start":{"line":155,"column":4},"end":{"line":191,"column":null}},"94":{"start":{"line":156,"column":25},"end":{"line":180,"column":null}},"95":{"start":{"line":158,"column":16},"end":{"line":177,"column":null}},"96":{"start":{"line":160,"column":20},"end":{"line":165,"column":null}},"97":{"start":{"line":161,"column":24},"end":{"line":163,"column":null}},"98":{"start":{"line":162,"column":28},"end":{"line":162,"column":null}},"99":{"start":{"line":164,"column":24},"end":{"line":164,"column":null}},"100":{"start":{"line":168,"column":20},"end":{"line":176,"column":null}},"101":{"start":{"line":169,"column":38},"end":{"line":169,"column":null}},"102":{"start":{"line":170,"column":24},"end":{"line":175,"column":null}},"103":{"start":{"line":171,"column":41},"end":{"line":171,"column":null}},"104":{"start":{"line":172,"column":28},"end":{"line":174,"column":null}},"105":{"start":{"line":173,"column":32},"end":{"line":173,"column":null}},"106":{"start":{"line":182,"column":8},"end":{"line":185,"column":null}},"107":{"start":{"line":183,"column":23},"end":{"line":183,"column":null}},"108":{"start":{"line":184,"column":12},"end":{"line":184,"column":null}},"109":{"start":{"line":184,"column":20},"end":{"line":184,"column":null}},"110":{"start":{"line":187,"column":25},"end":{"line":187,"column":null}},"111":{"start":{"line":188,"column":8},"end":{"line":188,"column":null}},"112":{"start":{"line":188,"column":22},"end":{"line":188,"column":null}},"113":{"start":{"line":190,"column":8},"end":{"line":190,"column":null}},"114":{"start":{"line":190,"column":21},"end":{"line":190,"column":null}},"115":{"start":{"line":193,"column":4},"end":{"line":193,"column":null}},"116":{"start":{"line":193,"column":17},"end":{"line":193,"column":null}},"117":{"start":{"line":194,"column":4},"end":{"line":194,"column":null}},"118":{"start":{"line":194,"column":15},"end":{"line":194,"column":null}},"119":{"start":{"line":197,"column":4},"end":{"line":221,"column":null}},"120":{"start":{"line":204,"column":24},"end":{"line":212,"column":null}},"121":{"start":{"line":209,"column":43},"end":{"line":209,"column":null}}},"fnMap":{"0":{"name":"FeedItems","decl":{"start":{"line":7,"column":24},"end":{"line":7,"column":36}},"loc":{"start":{"line":7,"column":36},"end":{"line":223,"column":null}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":18,"column":23},"end":{"line":18,"column":24}},"loc":{"start":{"line":18,"column":43},"end":{"line":78,"column":null}},"line":18},"2":{"name":"(anonymous_2)","decl":{"start":{"line":57,"column":18},"end":{"line":57,"column":19}},"loc":{"start":{"line":57,"column":27},"end":{"line":62,"column":13}},"line":57},"3":{"name":"(anonymous_3)","decl":{"start":{"line":63,"column":18},"end":{"line":63,"column":19}},"loc":{"start":{"line":63,"column":28},"end":{"line":72,"column":13}},"line":63},"4":{"name":"(anonymous_4)","decl":{"start":{"line":65,"column":29},"end":{"line":65,"column":30}},"loc":{"start":{"line":65,"column":39},"end":{"line":65,"column":57}},"line":65},"5":{"name":"(anonymous_5)","decl":{"start":{"line":73,"column":19},"end":{"line":73,"column":20}},"loc":{"start":{"line":73,"column":28},"end":{"line":77,"column":13}},"line":73},"6":{"name":"(anonymous_6)","decl":{"start":{"line":80,"column":14},"end":{"line":80,"column":20}},"loc":{"start":{"line":80,"column":20},"end":{"line":82,"column":7}},"line":80},"7":{"name":"(anonymous_7)","decl":{"start":{"line":86,"column":14},"end":{"line":86,"column":20}},"loc":{"start":{"line":86,"column":20},"end":{"line":122,"column":7}},"line":86},"8":{"name":"(anonymous_8)","decl":{"start":{"line":87,"column":30},"end":{"line":87,"column":31}},"loc":{"start":{"line":87,"column":52},"end":{"line":118,"column":null}},"line":87},"9":{"name":"(anonymous_9)","decl":{"start":{"line":91,"column":33},"end":{"line":91,"column":34}},"loc":{"start":{"line":91,"column":43},"end":{"line":101,"column":17}},"line":91},"10":{"name":"(anonymous_10)","decl":{"start":{"line":103,"column":33},"end":{"line":103,"column":34}},"loc":{"start":{"line":103,"column":43},"end":{"line":109,"column":17}},"line":103},"11":{"name":"(anonymous_11)","decl":{"start":{"line":111,"column":33},"end":{"line":111,"column":34}},"loc":{"start":{"line":111,"column":51},"end":{"line":116,"column":17}},"line":111},"12":{"name":"(anonymous_12)","decl":{"start":{"line":121,"column":15},"end":{"line":121,"column":21}},"loc":{"start":{"line":121,"column":21},"end":{"line":121,"column":null}},"line":121},"13":{"name":"(anonymous_13)","decl":{"start":{"line":124,"column":25},"end":{"line":124,"column":26}},"loc":{"start":{"line":124,"column":44},"end":{"line":129,"column":null}},"line":124},"14":{"name":"(anonymous_14)","decl":{"start":{"line":131,"column":23},"end":{"line":131,"column":24}},"loc":{"start":{"line":131,"column":39},"end":{"line":141,"column":null}},"line":131},"15":{"name":"(anonymous_15)","decl":{"start":{"line":134,"column":17},"end":{"line":134,"column":18}},"loc":{"start":{"line":134,"column":32},"end":{"line":134,"column":92}},"line":134},"16":{"name":"(anonymous_16)","decl":{"start":{"line":134,"column":46},"end":{"line":134,"column":47}},"loc":{"start":{"line":134,"column":54},"end":{"line":134,"column":91}},"line":134},"17":{"name":"(anonymous_17)","decl":{"start":{"line":140,"column":17},"end":{"line":140,"column":18}},"loc":{"start":{"line":140,"column":26},"end":{"line":140,"column":67}},"line":140},"18":{"name":"(anonymous_18)","decl":{"start":{"line":143,"column":23},"end":{"line":143,"column":24}},"loc":{"start":{"line":143,"column":39},"end":{"line":153,"column":null}},"line":143},"19":{"name":"(anonymous_19)","decl":{"start":{"line":146,"column":17},"end":{"line":146,"column":18}},"loc":{"start":{"line":146,"column":32},"end":{"line":146,"column":92}},"line":146},"20":{"name":"(anonymous_20)","decl":{"start":{"line":146,"column":46},"end":{"line":146,"column":47}},"loc":{"start":{"line":146,"column":54},"end":{"line":146,"column":91}},"line":146},"21":{"name":"(anonymous_21)","decl":{"start":{"line":152,"column":17},"end":{"line":152,"column":18}},"loc":{"start":{"line":152,"column":26},"end":{"line":152,"column":69}},"line":152},"22":{"name":"(anonymous_22)","decl":{"start":{"line":155,"column":14},"end":{"line":155,"column":20}},"loc":{"start":{"line":155,"column":20},"end":{"line":191,"column":7}},"line":155},"23":{"name":"(anonymous_23)","decl":{"start":{"line":157,"column":12},"end":{"line":157,"column":13}},"loc":{"start":{"line":157,"column":25},"end":{"line":178,"column":null}},"line":157},"24":{"name":"(anonymous_24)","decl":{"start":{"line":158,"column":32},"end":{"line":158,"column":33}},"loc":{"start":{"line":158,"column":43},"end":{"line":177,"column":17}},"line":158},"25":{"name":"(anonymous_25)","decl":{"start":{"line":182,"column":22},"end":{"line":182,"column":23}},"loc":{"start":{"line":182,"column":36},"end":{"line":185,"column":9}},"line":182},"26":{"name":"(anonymous_26)","decl":{"start":{"line":190,"column":15},"end":{"line":190,"column":21}},"loc":{"start":{"line":190,"column":21},"end":{"line":190,"column":null}},"line":190},"27":{"name":"(anonymous_27)","decl":{"start":{"line":203,"column":31},"end":{"line":203,"column":32}},"loc":{"start":{"line":204,"column":24},"end":{"line":212,"column":null}},"line":204},"28":{"name":"(anonymous_28)","decl":{"start":{"line":209,"column":37},"end":{"line":209,"column":43}},"loc":{"start":{"line":209,"column":43},"end":{"line":209,"column":null}},"line":209}},"branchMap":{"0":{"loc":{"start":{"line":10,"column":21},"end":{"line":10,"column":null}},"type":"binary-expr","locations":[{"start":{"line":10,"column":21},"end":{"line":10,"column":51}},{"start":{"line":10,"column":51},"end":{"line":10,"column":null}}],"line":10},"1":{"loc":{"start":{"line":19,"column":8},"end":{"line":24,"column":null}},"type":"if","locations":[{"start":{"line":19,"column":8},"end":{"line":24,"column":null}},{"start":{"line":21,"column":15},"end":{"line":24,"column":null}}],"line":19},"2":{"loc":{"start":{"line":30,"column":8},"end":{"line":34,"column":null}},"type":"if","locations":[{"start":{"line":30,"column":8},"end":{"line":34,"column":null}},{"start":{"line":32,"column":8},"end":{"line":34,"column":null}}],"line":30},"3":{"loc":{"start":{"line":32,"column":8},"end":{"line":34,"column":null}},"type":"if","locations":[{"start":{"line":32,"column":8},"end":{"line":34,"column":null}},{"start":{},"end":{}}],"line":32},"4":{"loc":{"start":{"line":36,"column":8},"end":{"line":38,"column":null}},"type":"if","locations":[{"start":{"line":36,"column":8},"end":{"line":38,"column":null}},{"start":{},"end":{}}],"line":36},"5":{"loc":{"start":{"line":41,"column":8},"end":{"line":49,"column":null}},"type":"if","locations":[{"start":{"line":41,"column":8},"end":{"line":49,"column":null}},{"start":{"line":43,"column":8},"end":{"line":49,"column":null}}],"line":41},"6":{"loc":{"start":{"line":43,"column":8},"end":{"line":49,"column":null}},"type":"if","locations":[{"start":{"line":43,"column":8},"end":{"line":49,"column":null}},{"start":{"line":46,"column":15},"end":{"line":49,"column":null}}],"line":43},"7":{"loc":{"start":{"line":52,"column":8},"end":{"line":54,"column":null}},"type":"if","locations":[{"start":{"line":52,"column":8},"end":{"line":54,"column":null}},{"start":{},"end":{}}],"line":52},"8":{"loc":{"start":{"line":58,"column":16},"end":{"line":60,"column":null}},"type":"if","locations":[{"start":{"line":58,"column":16},"end":{"line":60,"column":null}},{"start":{},"end":{}}],"line":58},"9":{"loc":{"start":{"line":64,"column":16},"end":{"line":68,"column":null}},"type":"if","locations":[{"start":{"line":64,"column":16},"end":{"line":68,"column":null}},{"start":{"line":66,"column":23},"end":{"line":68,"column":null}}],"line":64},"10":{"loc":{"start":{"line":88,"column":12},"end":{"line":88,"column":null}},"type":"if","locations":[{"start":{"line":88,"column":12},"end":{"line":88,"column":null}},{"start":{},"end":{}}],"line":88},"11":{"loc":{"start":{"line":90,"column":12},"end":{"line":117,"column":null}},"type":"if","locations":[{"start":{"line":90,"column":12},"end":{"line":117,"column":null}},{"start":{"line":102,"column":12},"end":{"line":117,"column":null}}],"line":90},"12":{"loc":{"start":{"line":93,"column":20},"end":{"line":99,"column":null}},"type":"if","locations":[{"start":{"line":93,"column":20},"end":{"line":99,"column":null}},{"start":{},"end":{}}],"line":93},"13":{"loc":{"start":{"line":95,"column":24},"end":{"line":97,"column":null}},"type":"if","locations":[{"start":{"line":95,"column":24},"end":{"line":97,"column":null}},{"start":{},"end":{}}],"line":95},"14":{"loc":{"start":{"line":102,"column":12},"end":{"line":117,"column":null}},"type":"if","locations":[{"start":{"line":102,"column":12},"end":{"line":117,"column":null}},{"start":{"line":110,"column":12},"end":{"line":117,"column":null}}],"line":102},"15":{"loc":{"start":{"line":105,"column":20},"end":{"line":107,"column":null}},"type":"if","locations":[{"start":{"line":105,"column":20},"end":{"line":107,"column":null}},{"start":{},"end":{}}],"line":105},"16":{"loc":{"start":{"line":110,"column":12},"end":{"line":117,"column":null}},"type":"if","locations":[{"start":{"line":110,"column":12},"end":{"line":117,"column":null}},{"start":{},"end":{}}],"line":110},"17":{"loc":{"start":{"line":112,"column":20},"end":{"line":114,"column":null}},"type":"if","locations":[{"start":{"line":112,"column":20},"end":{"line":114,"column":null}},{"start":{},"end":{}}],"line":112},"18":{"loc":{"start":{"line":112,"column":24},"end":{"line":112,"column":74}},"type":"binary-expr","locations":[{"start":{"line":112,"column":24},"end":{"line":112,"column":45}},{"start":{"line":112,"column":45},"end":{"line":112,"column":74}}],"line":112},"19":{"loc":{"start":{"line":126,"column":8},"end":{"line":128,"column":null}},"type":"if","locations":[{"start":{"line":126,"column":8},"end":{"line":128,"column":null}},{"start":{},"end":{}}],"line":126},"20":{"loc":{"start":{"line":134,"column":54},"end":{"line":134,"column":91}},"type":"cond-expr","locations":[{"start":{"line":134,"column":75},"end":{"line":134,"column":89}},{"start":{"line":134,"column":89},"end":{"line":134,"column":91}}],"line":134},"21":{"loc":{"start":{"line":146,"column":54},"end":{"line":146,"column":91}},"type":"cond-expr","locations":[{"start":{"line":146,"column":75},"end":{"line":146,"column":89}},{"start":{"line":146,"column":89},"end":{"line":146,"column":91}}],"line":146},"22":{"loc":{"start":{"line":160,"column":20},"end":{"line":165,"column":null}},"type":"if","locations":[{"start":{"line":160,"column":20},"end":{"line":165,"column":null}},{"start":{},"end":{}}],"line":160},"23":{"loc":{"start":{"line":161,"column":24},"end":{"line":163,"column":null}},"type":"if","locations":[{"start":{"line":161,"column":24},"end":{"line":163,"column":null}},{"start":{},"end":{}}],"line":161},"24":{"loc":{"start":{"line":161,"column":28},"end":{"line":161,"column":97}},"type":"binary-expr","locations":[{"start":{"line":161,"column":28},"end":{"line":161,"column":52}},{"start":{"line":161,"column":52},"end":{"line":161,"column":68}},{"start":{"line":161,"column":68},"end":{"line":161,"column":79}},{"start":{"line":161,"column":79},"end":{"line":161,"column":97}}],"line":161},"25":{"loc":{"start":{"line":168,"column":20},"end":{"line":176,"column":null}},"type":"if","locations":[{"start":{"line":168,"column":20},"end":{"line":176,"column":null}},{"start":{},"end":{}}],"line":168},"26":{"loc":{"start":{"line":168,"column":24},"end":{"line":168,"column":83}},"type":"binary-expr","locations":[{"start":{"line":168,"column":24},"end":{"line":168,"column":49}},{"start":{"line":168,"column":49},"end":{"line":168,"column":83}}],"line":168},"27":{"loc":{"start":{"line":170,"column":24},"end":{"line":175,"column":null}},"type":"if","locations":[{"start":{"line":170,"column":24},"end":{"line":175,"column":null}},{"start":{},"end":{}}],"line":170},"28":{"loc":{"start":{"line":170,"column":28},"end":{"line":170,"column":81}},"type":"binary-expr","locations":[{"start":{"line":170,"column":28},"end":{"line":170,"column":45}},{"start":{"line":170,"column":45},"end":{"line":170,"column":59}},{"start":{"line":170,"column":59},"end":{"line":170,"column":81}}],"line":170},"29":{"loc":{"start":{"line":172,"column":28},"end":{"line":174,"column":null}},"type":"if","locations":[{"start":{"line":172,"column":28},"end":{"line":174,"column":null}},{"start":{},"end":{}}],"line":172},"30":{"loc":{"start":{"line":184,"column":12},"end":{"line":184,"column":null}},"type":"if","locations":[{"start":{"line":184,"column":12},"end":{"line":184,"column":null}},{"start":{},"end":{}}],"line":184},"31":{"loc":{"start":{"line":188,"column":8},"end":{"line":188,"column":null}},"type":"if","locations":[{"start":{"line":188,"column":8},"end":{"line":188,"column":null}},{"start":{},"end":{}}],"line":188},"32":{"loc":{"start":{"line":193,"column":4},"end":{"line":193,"column":null}},"type":"if","locations":[{"start":{"line":193,"column":4},"end":{"line":193,"column":null}},{"start":{},"end":{}}],"line":193},"33":{"loc":{"start":{"line":194,"column":4},"end":{"line":194,"column":null}},"type":"if","locations":[{"start":{"line":194,"column":4},"end":{"line":194,"column":null}},{"start":{},"end":{}}],"line":194},"34":{"loc":{"start":{"line":199,"column":13},"end":{"line":219,"column":null}},"type":"cond-expr","locations":[{"start":{"line":200,"column":16},"end":{"line":200,"column":null}},{"start":{"line":202,"column":16},"end":{"line":219,"column":null}}],"line":199},"35":{"loc":{"start":{"line":208,"column":39},"end":{"line":208,"column":null}},"type":"cond-expr","locations":[{"start":{"line":208,"column":65},"end":{"line":208,"column":93}},{"start":{"line":208,"column":93},"end":{"line":208,"column":null}}],"line":208},"36":{"loc":{"start":{"line":214,"column":21},"end":{"line":217,"column":null}},"type":"binary-expr","locations":[{"start":{"line":214,"column":21},"end":{"line":214,"column":null}},{"start":{"line":215,"column":24},"end":{"line":217,"column":null}}],"line":214},"37":{"loc":{"start":{"line":216,"column":29},"end":{"line":216,"column":null}},"type":"cond-expr","locations":[{"start":{"line":216,"column":43},"end":{"line":216,"column":63}},{"start":{"line":216,"column":63},"end":{"line":216,"column":null}}],"line":216}},"s":{"0":27,"1":27,"2":27,"3":27,"4":27,"5":27,"6":27,"7":27,"8":27,"9":8,"10":1,"11":7,"12":7,"13":8,"14":8,"15":8,"16":8,"17":2,"18":6,"19":1,"20":8,"21":1,"22":8,"23":0,"24":8,"25":0,"26":0,"27":8,"28":8,"29":8,"30":8,"31":8,"32":7,"33":0,"34":7,"35":6,"36":1,"37":1,"38":5,"39":6,"40":6,"41":6,"42":1,"43":1,"44":1,"45":27,"46":7,"47":27,"48":27,"49":23,"50":3,"51":0,"52":3,"53":2,"54":2,"55":2,"56":2,"57":2,"58":1,"59":2,"60":2,"61":1,"62":0,"63":0,"64":0,"65":0,"66":0,"67":1,"68":1,"69":1,"70":1,"71":1,"72":23,"73":23,"74":23,"75":27,"76":2,"77":2,"78":2,"79":27,"80":2,"81":2,"82":2,"83":3,"84":2,"85":0,"86":27,"87":1,"88":1,"89":1,"90":2,"91":1,"92":0,"93":27,"94":24,"95":2,"96":2,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":24,"107":15,"108":15,"109":15,"110":24,"111":24,"112":10,"113":24,"114":24,"115":27,"116":13,"117":14,"118":14,"119":13,"120":21,"121":0},"f":{"0":27,"1":8,"2":7,"3":6,"4":1,"5":1,"6":7,"7":23,"8":3,"9":2,"10":0,"11":1,"12":23,"13":2,"14":2,"15":2,"16":3,"17":0,"18":1,"19":1,"20":2,"21":0,"22":24,"23":2,"24":2,"25":15,"26":24,"27":21,"28":0},"b":{"0":[27,27],"1":[1,7],"2":[2,6],"3":[1,5],"4":[1,7],"5":[0,8],"6":[0,8],"7":[8,0],"8":[0,7],"9":[1,5],"10":[0,3],"11":[2,1],"12":[2,0],"13":[1,1],"14":[0,1],"15":[0,0],"16":[1,0],"17":[1,0],"18":[1,1],"19":[2,0],"20":[2,1],"21":[1,1],"22":[1,1],"23":[1,0],"24":[1,1,1,1],"25":[1,0],"26":[1,1],"27":[1,0],"28":[1,1,1],"29":[1,0],"30":[15,0],"31":[10,14],"32":[13,14],"33":[1,13],"34":[0,13],"35":[5,16],"36":[13,13],"37":[1,12]},"meta":{"lastBranch":38,"lastFunction":29,"lastStatement":122,"seen":{"f:7:24:7:36":0,"s:8:28:8:Infinity":0,"s:9:23:9:Infinity":1,"s:10:21:10:Infinity":2,"b:10:21:10:51:10:51:10:Infinity":0,"s:12:26:12:Infinity":3,"s:13:30:13:Infinity":4,"s:14:38:14:Infinity":5,"s:15:30:15:Infinity":6,"s:16:26:16:Infinity":7,"s:18:23:78:Infinity":8,"f:18:23:18:24":1,"b:19:8:24:Infinity:21:15:24:Infinity":1,"s:19:8:24:Infinity":9,"s:20:12:20:Infinity":10,"s:22:12:22:Infinity":11,"s:23:12:23:Infinity":12,"s:25:8:25:Infinity":13,"s:27:18:27:Infinity":14,"s:28:23:28:Infinity":15,"b:30:8:34:Infinity:32:8:34:Infinity":2,"s:30:8:34:Infinity":16,"s:31:12:31:Infinity":17,"b:32:8:34:Infinity:undefined:undefined:undefined:undefined":3,"s:32:8:34:Infinity":18,"s:33:12:33:Infinity":19,"b:36:8:38:Infinity:undefined:undefined:undefined:undefined":4,"s:36:8:38:Infinity":20,"s:37:12:37:Infinity":21,"b:41:8:49:Infinity:43:8:49:Infinity":5,"s:41:8:49:Infinity":22,"s:42:12:42:Infinity":23,"b:43:8:49:Infinity:46:15:49:Infinity":6,"s:43:8:49:Infinity":24,"s:44:12:44:Infinity":25,"s:45:12:45:Infinity":26,"s:48:12:48:Infinity":27,"s:51:28:51:Infinity":28,"b:52:8:54:Infinity:undefined:undefined:undefined:undefined":7,"s:52:8:54:Infinity":29,"s:53:12:53:Infinity":30,"s:56:8:77:Infinity":31,"f:57:18:57:19":2,"b:58:16:60:Infinity:undefined:undefined:undefined:undefined":8,"s:58:16:60:Infinity":32,"s:59:20:59:Infinity":33,"s:61:16:61:Infinity":34,"f:63:18:63:19":3,"b:64:16:68:Infinity:66:23:68:Infinity":9,"s:64:16:68:Infinity":35,"s:65:20:65:Infinity":36,"f:65:29:65:30":4,"s:65:39:65:57":37,"s:67:20:67:Infinity":38,"s:69:16:69:Infinity":39,"s:70:16:70:Infinity":40,"s:71:16:71:Infinity":41,"f:73:19:73:20":5,"s:74:16:74:Infinity":42,"s:75:16:75:Infinity":43,"s:76:16:76:Infinity":44,"s:80:4:82:Infinity":45,"f:80:14:80:20":6,"s:81:8:81:Infinity":46,"s:84:42:84:Infinity":47,"s:86:4:122:Infinity":48,"f:86:14:86:20":7,"s:87:30:118:Infinity":49,"f:87:30:87:31":8,"b:88:12:88:Infinity:undefined:undefined:undefined:undefined":10,"s:88:12:88:Infinity":50,"s:88:36:88:Infinity":51,"b:90:12:117:Infinity:102:12:117:Infinity":11,"s:90:12:117:Infinity":52,"s:91:16:101:Infinity":53,"f:91:33:91:34":9,"s:92:38:92:Infinity":54,"b:93:20:99:Infinity:undefined:undefined:undefined:undefined":12,"s:93:20:99:Infinity":55,"s:94:37:94:Infinity":56,"b:95:24:97:Infinity:undefined:undefined:undefined:undefined":13,"s:95:24:97:Infinity":57,"s:96:28:96:Infinity":58,"s:98:24:98:Infinity":59,"s:100:20:100:Infinity":60,"b:102:12:117:Infinity:110:12:117:Infinity":14,"s:102:12:117:Infinity":61,"s:103:16:109:Infinity":62,"f:103:33:103:34":10,"s:104:38:104:Infinity":63,"b:105:20:107:Infinity:undefined:undefined:undefined:undefined":15,"s:105:20:107:Infinity":64,"s:106:24:106:Infinity":65,"s:108:20:108:Infinity":66,"b:110:12:117:Infinity:undefined:undefined:undefined:undefined":16,"s:110:12:117:Infinity":67,"s:111:16:116:Infinity":68,"f:111:33:111:34":11,"b:112:20:114:Infinity:undefined:undefined:undefined:undefined":17,"s:112:20:114:Infinity":69,"b:112:24:112:45:112:45:112:74":18,"s:113:24:113:Infinity":70,"s:115:20:115:Infinity":71,"s:120:8:120:Infinity":72,"s:121:8:121:Infinity":73,"f:121:15:121:21":12,"s:121:21:121:Infinity":74,"s:124:25:129:Infinity":75,"f:124:25:124:26":13,"s:125:24:125:Infinity":76,"b:126:8:128:Infinity:undefined:undefined:undefined:undefined":19,"s:126:8:128:Infinity":77,"s:127:12:127:Infinity":78,"s:131:23:141:Infinity":79,"f:131:23:131:24":14,"s:132:28:132:Infinity":80,"s:134:8:134:Infinity":81,"f:134:17:134:18":15,"s:134:32:134:92":82,"f:134:46:134:47":16,"s:134:54:134:91":83,"b:134:75:134:89:134:89:134:91":20,"s:136:8:140:Infinity":84,"f:140:17:140:18":17,"s:140:26:140:67":85,"s:143:23:153:Infinity":86,"f:143:23:143:24":18,"s:144:28:144:Infinity":87,"s:146:8:146:Infinity":88,"f:146:17:146:18":19,"s:146:32:146:92":89,"f:146:46:146:47":20,"s:146:54:146:91":90,"b:146:75:146:89:146:89:146:91":21,"s:148:8:152:Infinity":91,"f:152:17:152:18":21,"s:152:26:152:69":92,"s:155:4:191:Infinity":93,"f:155:14:155:20":22,"s:156:25:180:Infinity":94,"f:157:12:157:13":23,"s:158:16:177:Infinity":95,"f:158:32:158:33":24,"b:160:20:165:Infinity:undefined:undefined:undefined:undefined":22,"s:160:20:165:Infinity":96,"b:161:24:163:Infinity:undefined:undefined:undefined:undefined":23,"s:161:24:163:Infinity":97,"b:161:28:161:52:161:52:161:68:161:68:161:79:161:79:161:97":24,"s:162:28:162:Infinity":98,"s:164:24:164:Infinity":99,"b:168:20:176:Infinity:undefined:undefined:undefined:undefined":25,"s:168:20:176:Infinity":100,"b:168:24:168:49:168:49:168:83":26,"s:169:38:169:Infinity":101,"b:170:24:175:Infinity:undefined:undefined:undefined:undefined":27,"s:170:24:175:Infinity":102,"b:170:28:170:45:170:45:170:59:170:59:170:81":28,"s:171:41:171:Infinity":103,"b:172:28:174:Infinity:undefined:undefined:undefined:undefined":29,"s:172:28:174:Infinity":104,"s:173:32:173:Infinity":105,"s:182:8:185:Infinity":106,"f:182:22:182:23":25,"s:183:23:183:Infinity":107,"b:184:12:184:Infinity:undefined:undefined:undefined:undefined":30,"s:184:12:184:Infinity":108,"s:184:20:184:Infinity":109,"s:187:25:187:Infinity":110,"b:188:8:188:Infinity:undefined:undefined:undefined:undefined":31,"s:188:8:188:Infinity":111,"s:188:22:188:Infinity":112,"s:190:8:190:Infinity":113,"f:190:15:190:21":26,"s:190:21:190:Infinity":114,"b:193:4:193:Infinity:undefined:undefined:undefined:undefined":32,"s:193:4:193:Infinity":115,"s:193:17:193:Infinity":116,"b:194:4:194:Infinity:undefined:undefined:undefined:undefined":33,"s:194:4:194:Infinity":117,"s:194:15:194:Infinity":118,"s:197:4:221:Infinity":119,"b:200:16:200:Infinity:202:16:219:Infinity":34,"f:203:31:203:32":27,"s:204:24:212:Infinity":120,"b:208:65:208:93:208:93:208:Infinity":35,"f:209:37:209:43":28,"s:209:43:209:Infinity":121,"b:214:21:214:Infinity:215:24:217:Infinity":36,"b:216:43:216:63:216:63:216:Infinity":37}}} -,"/Users/adam/workspace/vibecode/neko/frontend/src/components/FeedList.css": {"path":"/Users/adam/workspace/vibecode/neko/frontend/src/components/FeedList.css","statementMap":{},"fnMap":{},"branchMap":{},"s":{},"f":{},"b":{},"meta":{"lastBranch":0,"lastFunction":0,"lastStatement":0,"seen":{}}} -,"/Users/adam/workspace/vibecode/neko/frontend/src/components/FeedList.tsx": {"path":"/Users/adam/workspace/vibecode/neko/frontend/src/components/FeedList.tsx","statementMap":{"0":{"start":{"line":7,"column":26},"end":{"line":7,"column":null}},"1":{"start":{"line":8,"column":24},"end":{"line":8,"column":null}},"2":{"start":{"line":9,"column":30},"end":{"line":9,"column":null}},"3":{"start":{"line":10,"column":26},"end":{"line":10,"column":null}},"4":{"start":{"line":12,"column":4},"end":{"line":32,"column":null}},"5":{"start":{"line":13,"column":8},"end":{"line":31,"column":null}},"6":{"start":{"line":15,"column":16},"end":{"line":15,"column":null}},"7":{"start":{"line":15,"column":29},"end":{"line":15,"column":null}},"8":{"start":{"line":16,"column":16},"end":{"line":16,"column":null}},"9":{"start":{"line":19,"column":16},"end":{"line":19,"column":null}},"10":{"start":{"line":19,"column":29},"end":{"line":19,"column":null}},"11":{"start":{"line":20,"column":16},"end":{"line":20,"column":null}},"12":{"start":{"line":24,"column":16},"end":{"line":24,"column":null}},"13":{"start":{"line":25,"column":16},"end":{"line":25,"column":null}},"14":{"start":{"line":26,"column":16},"end":{"line":26,"column":null}},"15":{"start":{"line":29,"column":16},"end":{"line":29,"column":null}},"16":{"start":{"line":30,"column":16},"end":{"line":30,"column":null}},"17":{"start":{"line":34,"column":4},"end":{"line":34,"column":null}},"18":{"start":{"line":34,"column":17},"end":{"line":34,"column":null}},"19":{"start":{"line":35,"column":4},"end":{"line":35,"column":null}},"20":{"start":{"line":35,"column":15},"end":{"line":35,"column":null}},"21":{"start":{"line":37,"column":4},"end":{"line":78,"column":null}},"22":{"start":{"line":53,"column":28},"end":{"line":58,"column":null}},"23":{"start":{"line":69,"column":28},"end":{"line":73,"column":null}}},"fnMap":{"0":{"name":"FeedList","decl":{"start":{"line":6,"column":24},"end":{"line":6,"column":35}},"loc":{"start":{"line":6,"column":35},"end":{"line":80,"column":null}},"line":6},"1":{"name":"(anonymous_1)","decl":{"start":{"line":12,"column":14},"end":{"line":12,"column":20}},"loc":{"start":{"line":12,"column":20},"end":{"line":32,"column":7}},"line":12},"2":{"name":"(anonymous_2)","decl":{"start":{"line":14,"column":37},"end":{"line":14,"column":44}},"loc":{"start":{"line":14,"column":44},"end":{"line":17,"column":13}},"line":14},"3":{"name":"(anonymous_3)","decl":{"start":{"line":18,"column":35},"end":{"line":18,"column":42}},"loc":{"start":{"line":18,"column":42},"end":{"line":21,"column":13}},"line":18},"4":{"name":"(anonymous_4)","decl":{"start":{"line":23,"column":18},"end":{"line":23,"column":19}},"loc":{"start":{"line":23,"column":45},"end":{"line":27,"column":13}},"line":23},"5":{"name":"(anonymous_5)","decl":{"start":{"line":28,"column":19},"end":{"line":28,"column":20}},"loc":{"start":{"line":28,"column":28},"end":{"line":31,"column":13}},"line":28},"6":{"name":"(anonymous_6)","decl":{"start":{"line":52,"column":35},"end":{"line":52,"column":36}},"loc":{"start":{"line":53,"column":28},"end":{"line":58,"column":null}},"line":53},"7":{"name":"(anonymous_7)","decl":{"start":{"line":68,"column":34},"end":{"line":68,"column":35}},"loc":{"start":{"line":69,"column":28},"end":{"line":73,"column":null}},"line":69}},"branchMap":{"0":{"loc":{"start":{"line":15,"column":16},"end":{"line":15,"column":null}},"type":"if","locations":[{"start":{"line":15,"column":16},"end":{"line":15,"column":null}},{"start":{},"end":{}}],"line":15},"1":{"loc":{"start":{"line":19,"column":16},"end":{"line":19,"column":null}},"type":"if","locations":[{"start":{"line":19,"column":16},"end":{"line":19,"column":null}},{"start":{},"end":{}}],"line":19},"2":{"loc":{"start":{"line":34,"column":4},"end":{"line":34,"column":null}},"type":"if","locations":[{"start":{"line":34,"column":4},"end":{"line":34,"column":null}},{"start":{},"end":{}}],"line":34},"3":{"loc":{"start":{"line":35,"column":4},"end":{"line":35,"column":null}},"type":"if","locations":[{"start":{"line":35,"column":4},"end":{"line":35,"column":null}},{"start":{},"end":{}}],"line":35},"4":{"loc":{"start":{"line":48,"column":17},"end":{"line":60,"column":null}},"type":"cond-expr","locations":[{"start":{"line":49,"column":20},"end":{"line":49,"column":null}},{"start":{"line":51,"column":20},"end":{"line":60,"column":null}}],"line":48},"5":{"loc":{"start":{"line":55,"column":37},"end":{"line":55,"column":null}},"type":"binary-expr","locations":[{"start":{"line":55,"column":37},"end":{"line":55,"column":51}},{"start":{"line":55,"column":51},"end":{"line":55,"column":null}}],"line":55},"6":{"loc":{"start":{"line":57,"column":33},"end":{"line":57,"column":null}},"type":"binary-expr","locations":[{"start":{"line":57,"column":33},"end":{"line":57,"column":50}},{"start":{"line":57,"column":50},"end":{"line":57,"column":null}}],"line":57},"7":{"loc":{"start":{"line":64,"column":13},"end":{"line":76,"column":null}},"type":"binary-expr","locations":[{"start":{"line":64,"column":13},"end":{"line":64,"column":21}},{"start":{"line":64,"column":21},"end":{"line":64,"column":null}},{"start":{"line":65,"column":16},"end":{"line":76,"column":null}}],"line":64}},"s":{"0":11,"1":11,"2":11,"3":11,"4":11,"5":6,"6":4,"7":0,"8":4,"9":4,"10":0,"11":4,"12":4,"13":4,"14":4,"15":1,"16":1,"17":11,"18":6,"19":5,"20":5,"21":4,"22":3,"23":3},"f":{"0":11,"1":6,"2":4,"3":4,"4":4,"5":1,"6":3,"7":3},"b":{"0":[0,4],"1":[0,4],"2":[6,5],"3":[1,4],"4":[2,2],"5":[3,0],"6":[3,3],"7":[11,4,2]},"meta":{"lastBranch":8,"lastFunction":8,"lastStatement":24,"seen":{"f:6:24:6:35":0,"s:7:26:7:Infinity":0,"s:8:24:8:Infinity":1,"s:9:30:9:Infinity":2,"s:10:26:10:Infinity":3,"s:12:4:32:Infinity":4,"f:12:14:12:20":1,"s:13:8:31:Infinity":5,"f:14:37:14:44":2,"b:15:16:15:Infinity:undefined:undefined:undefined:undefined":0,"s:15:16:15:Infinity":6,"s:15:29:15:Infinity":7,"s:16:16:16:Infinity":8,"f:18:35:18:42":3,"b:19:16:19:Infinity:undefined:undefined:undefined:undefined":1,"s:19:16:19:Infinity":9,"s:19:29:19:Infinity":10,"s:20:16:20:Infinity":11,"f:23:18:23:19":4,"s:24:16:24:Infinity":12,"s:25:16:25:Infinity":13,"s:26:16:26:Infinity":14,"f:28:19:28:20":5,"s:29:16:29:Infinity":15,"s:30:16:30:Infinity":16,"b:34:4:34:Infinity:undefined:undefined:undefined:undefined":2,"s:34:4:34:Infinity":17,"s:34:17:34:Infinity":18,"b:35:4:35:Infinity:undefined:undefined:undefined:undefined":3,"s:35:4:35:Infinity":19,"s:35:15:35:Infinity":20,"s:37:4:78:Infinity":21,"b:49:20:49:Infinity:51:20:60:Infinity":4,"f:52:35:52:36":6,"s:53:28:58:Infinity":22,"b:55:37:55:51:55:51:55:Infinity":5,"b:57:33:57:50:57:50:57:Infinity":6,"b:64:13:64:21:64:21:64:Infinity:65:16:76:Infinity":7,"f:68:34:68:35":7,"s:69:28:73:Infinity":23}}} -,"/Users/adam/workspace/vibecode/neko/frontend/src/components/Login.css": {"path":"/Users/adam/workspace/vibecode/neko/frontend/src/components/Login.css","statementMap":{},"fnMap":{},"branchMap":{},"s":{},"f":{},"b":{},"meta":{"lastBranch":0,"lastFunction":0,"lastStatement":0,"seen":{}}} -,"/Users/adam/workspace/vibecode/neko/frontend/src/components/Login.tsx": {"path":"/Users/adam/workspace/vibecode/neko/frontend/src/components/Login.tsx","statementMap":{"0":{"start":{"line":6,"column":32},"end":{"line":6,"column":null}},"1":{"start":{"line":7,"column":26},"end":{"line":7,"column":null}},"2":{"start":{"line":8,"column":10},"end":{"line":8,"column":null}},"3":{"start":{"line":10,"column":25},"end":{"line":33,"column":null}},"4":{"start":{"line":11,"column":8},"end":{"line":11,"column":null}},"5":{"start":{"line":12,"column":8},"end":{"line":12,"column":null}},"6":{"start":{"line":14,"column":8},"end":{"line":32,"column":null}},"7":{"start":{"line":16,"column":27},"end":{"line":16,"column":null}},"8":{"start":{"line":17,"column":12},"end":{"line":17,"column":null}},"9":{"start":{"line":19,"column":24},"end":{"line":22,"column":null}},"10":{"start":{"line":24,"column":12},"end":{"line":29,"column":null}},"11":{"start":{"line":25,"column":16},"end":{"line":25,"column":null}},"12":{"start":{"line":27,"column":29},"end":{"line":27,"column":null}},"13":{"start":{"line":28,"column":16},"end":{"line":28,"column":null}},"14":{"start":{"line":31,"column":12},"end":{"line":31,"column":null}},"15":{"start":{"line":35,"column":4},"end":{"line":52,"column":null}},"16":{"start":{"line":45,"column":41},"end":{"line":45,"column":null}}},"fnMap":{"0":{"name":"Login","decl":{"start":{"line":5,"column":24},"end":{"line":5,"column":32}},"loc":{"start":{"line":5,"column":32},"end":{"line":54,"column":null}},"line":5},"1":{"name":"(anonymous_1)","decl":{"start":{"line":10,"column":25},"end":{"line":10,"column":32}},"loc":{"start":{"line":10,"column":49},"end":{"line":33,"column":null}},"line":10},"2":{"name":"(anonymous_2)","decl":{"start":{"line":45,"column":34},"end":{"line":45,"column":35}},"loc":{"start":{"line":45,"column":41},"end":{"line":45,"column":null}},"line":45}},"branchMap":{"0":{"loc":{"start":{"line":24,"column":12},"end":{"line":29,"column":null}},"type":"if","locations":[{"start":{"line":24,"column":12},"end":{"line":29,"column":null}},{"start":{"line":26,"column":19},"end":{"line":29,"column":null}}],"line":24},"1":{"loc":{"start":{"line":28,"column":25},"end":{"line":28,"column":55}},"type":"binary-expr","locations":[{"start":{"line":28,"column":25},"end":{"line":28,"column":41}},{"start":{"line":28,"column":41},"end":{"line":28,"column":55}}],"line":28},"2":{"loc":{"start":{"line":49,"column":17},"end":{"line":49,"column":null}},"type":"binary-expr","locations":[{"start":{"line":49,"column":17},"end":{"line":49,"column":26}},{"start":{"line":49,"column":26},"end":{"line":49,"column":null}}],"line":49}},"s":{"0":14,"1":14,"2":14,"3":14,"4":3,"5":3,"6":3,"7":3,"8":3,"9":3,"10":2,"11":1,"12":1,"13":1,"14":1,"15":14,"16":3},"f":{"0":14,"1":3,"2":3},"b":{"0":[1,1],"1":[1,0],"2":[14,2]},"meta":{"lastBranch":3,"lastFunction":3,"lastStatement":17,"seen":{"f:5:24:5:32":0,"s:6:32:6:Infinity":0,"s:7:26:7:Infinity":1,"s:8:10:8:Infinity":2,"s:10:25:33:Infinity":3,"f:10:25:10:32":1,"s:11:8:11:Infinity":4,"s:12:8:12:Infinity":5,"s:14:8:32:Infinity":6,"s:16:27:16:Infinity":7,"s:17:12:17:Infinity":8,"s:19:24:22:Infinity":9,"b:24:12:29:Infinity:26:19:29:Infinity":0,"s:24:12:29:Infinity":10,"s:25:16:25:Infinity":11,"s:27:29:27:Infinity":12,"s:28:16:28:Infinity":13,"b:28:25:28:41:28:41:28:55":1,"s:31:12:31:Infinity":14,"s:35:4:52:Infinity":15,"f:45:34:45:35":2,"s:45:41:45:Infinity":16,"b:49:17:49:26:49:26:49:Infinity":2}}} -,"/Users/adam/workspace/vibecode/neko/frontend/src/components/Settings.css": {"path":"/Users/adam/workspace/vibecode/neko/frontend/src/components/Settings.css","statementMap":{},"fnMap":{},"branchMap":{},"s":{},"f":{},"b":{},"meta":{"lastBranch":0,"lastFunction":0,"lastStatement":0,"seen":{}}} -,"/Users/adam/workspace/vibecode/neko/frontend/src/components/Settings.tsx": {"path":"/Users/adam/workspace/vibecode/neko/frontend/src/components/Settings.tsx","statementMap":{"0":{"start":{"line":6,"column":26},"end":{"line":6,"column":null}},"1":{"start":{"line":7,"column":36},"end":{"line":7,"column":null}},"2":{"start":{"line":8,"column":30},"end":{"line":8,"column":null}},"3":{"start":{"line":9,"column":26},"end":{"line":9,"column":null}},"4":{"start":{"line":11,"column":4},"end":{"line":13,"column":null}},"5":{"start":{"line":12,"column":8},"end":{"line":12,"column":null}},"6":{"start":{"line":15,"column":23},"end":{"line":30,"column":null}},"7":{"start":{"line":16,"column":8},"end":{"line":16,"column":null}},"8":{"start":{"line":17,"column":8},"end":{"line":29,"column":null}},"9":{"start":{"line":19,"column":16},"end":{"line":19,"column":null}},"10":{"start":{"line":19,"column":29},"end":{"line":19,"column":null}},"11":{"start":{"line":20,"column":16},"end":{"line":20,"column":null}},"12":{"start":{"line":23,"column":16},"end":{"line":23,"column":null}},"13":{"start":{"line":24,"column":16},"end":{"line":24,"column":null}},"14":{"start":{"line":27,"column":16},"end":{"line":27,"column":null}},"15":{"start":{"line":28,"column":16},"end":{"line":28,"column":null}},"16":{"start":{"line":32,"column":26},"end":{"line":54,"column":null}},"17":{"start":{"line":33,"column":8},"end":{"line":33,"column":null}},"18":{"start":{"line":34,"column":8},"end":{"line":34,"column":null}},"19":{"start":{"line":34,"column":25},"end":{"line":34,"column":null}},"20":{"start":{"line":36,"column":8},"end":{"line":36,"column":null}},"21":{"start":{"line":37,"column":8},"end":{"line":53,"column":null}},"22":{"start":{"line":43,"column":16},"end":{"line":43,"column":null}},"23":{"start":{"line":43,"column":29},"end":{"line":43,"column":null}},"24":{"start":{"line":44,"column":16},"end":{"line":44,"column":null}},"25":{"start":{"line":47,"column":16},"end":{"line":47,"column":null}},"26":{"start":{"line":48,"column":16},"end":{"line":48,"column":null}},"27":{"start":{"line":51,"column":16},"end":{"line":51,"column":null}},"28":{"start":{"line":52,"column":16},"end":{"line":52,"column":null}},"29":{"start":{"line":56,"column":29},"end":{"line":72,"column":null}},"30":{"start":{"line":57,"column":8},"end":{"line":57,"column":null}},"31":{"start":{"line":57,"column":79},"end":{"line":57,"column":null}},"32":{"start":{"line":59,"column":8},"end":{"line":59,"column":null}},"33":{"start":{"line":60,"column":8},"end":{"line":71,"column":null}},"34":{"start":{"line":64,"column":16},"end":{"line":64,"column":null}},"35":{"start":{"line":64,"column":29},"end":{"line":64,"column":null}},"36":{"start":{"line":65,"column":16},"end":{"line":65,"column":null}},"37":{"start":{"line":65,"column":45},"end":{"line":65,"column":57}},"38":{"start":{"line":66,"column":16},"end":{"line":66,"column":null}},"39":{"start":{"line":69,"column":16},"end":{"line":69,"column":null}},"40":{"start":{"line":70,"column":16},"end":{"line":70,"column":null}},"41":{"start":{"line":74,"column":4},"end":{"line":119,"column":null}},"42":{"start":{"line":84,"column":41},"end":{"line":84,"column":null}},"43":{"start":{"line":102,"column":24},"end":{"line":115,"column":null}},"44":{"start":{"line":108,"column":47},"end":{"line":108,"column":null}}},"fnMap":{"0":{"name":"Settings","decl":{"start":{"line":5,"column":24},"end":{"line":5,"column":35}},"loc":{"start":{"line":5,"column":35},"end":{"line":121,"column":null}},"line":5},"1":{"name":"(anonymous_1)","decl":{"start":{"line":11,"column":14},"end":{"line":11,"column":20}},"loc":{"start":{"line":11,"column":20},"end":{"line":13,"column":7}},"line":11},"2":{"name":"(anonymous_2)","decl":{"start":{"line":15,"column":23},"end":{"line":15,"column":29}},"loc":{"start":{"line":15,"column":29},"end":{"line":30,"column":null}},"line":15},"3":{"name":"(anonymous_3)","decl":{"start":{"line":18,"column":18},"end":{"line":18,"column":19}},"loc":{"start":{"line":18,"column":27},"end":{"line":21,"column":13}},"line":18},"4":{"name":"(anonymous_4)","decl":{"start":{"line":22,"column":18},"end":{"line":22,"column":19}},"loc":{"start":{"line":22,"column":28},"end":{"line":25,"column":13}},"line":22},"5":{"name":"(anonymous_5)","decl":{"start":{"line":26,"column":19},"end":{"line":26,"column":20}},"loc":{"start":{"line":26,"column":28},"end":{"line":29,"column":13}},"line":26},"6":{"name":"(anonymous_6)","decl":{"start":{"line":32,"column":26},"end":{"line":32,"column":27}},"loc":{"start":{"line":32,"column":50},"end":{"line":54,"column":null}},"line":32},"7":{"name":"(anonymous_7)","decl":{"start":{"line":42,"column":18},"end":{"line":42,"column":19}},"loc":{"start":{"line":42,"column":27},"end":{"line":45,"column":13}},"line":42},"8":{"name":"(anonymous_8)","decl":{"start":{"line":46,"column":18},"end":{"line":46,"column":24}},"loc":{"start":{"line":46,"column":24},"end":{"line":49,"column":13}},"line":46},"9":{"name":"(anonymous_9)","decl":{"start":{"line":50,"column":19},"end":{"line":50,"column":20}},"loc":{"start":{"line":50,"column":28},"end":{"line":53,"column":13}},"line":50},"10":{"name":"(anonymous_10)","decl":{"start":{"line":56,"column":29},"end":{"line":56,"column":30}},"loc":{"start":{"line":56,"column":45},"end":{"line":72,"column":null}},"line":56},"11":{"name":"(anonymous_11)","decl":{"start":{"line":63,"column":18},"end":{"line":63,"column":19}},"loc":{"start":{"line":63,"column":27},"end":{"line":67,"column":13}},"line":63},"12":{"name":"(anonymous_12)","decl":{"start":{"line":65,"column":38},"end":{"line":65,"column":39}},"loc":{"start":{"line":65,"column":45},"end":{"line":65,"column":57}},"line":65},"13":{"name":"(anonymous_13)","decl":{"start":{"line":68,"column":19},"end":{"line":68,"column":20}},"loc":{"start":{"line":68,"column":28},"end":{"line":71,"column":13}},"line":68},"14":{"name":"(anonymous_14)","decl":{"start":{"line":84,"column":34},"end":{"line":84,"column":35}},"loc":{"start":{"line":84,"column":41},"end":{"line":84,"column":null}},"line":84},"15":{"name":"(anonymous_15)","decl":{"start":{"line":101,"column":31},"end":{"line":101,"column":32}},"loc":{"start":{"line":102,"column":24},"end":{"line":115,"column":null}},"line":102},"16":{"name":"(anonymous_16)","decl":{"start":{"line":108,"column":41},"end":{"line":108,"column":47}},"loc":{"start":{"line":108,"column":47},"end":{"line":108,"column":null}},"line":108}},"branchMap":{"0":{"loc":{"start":{"line":19,"column":16},"end":{"line":19,"column":null}},"type":"if","locations":[{"start":{"line":19,"column":16},"end":{"line":19,"column":null}},{"start":{},"end":{}}],"line":19},"1":{"loc":{"start":{"line":34,"column":8},"end":{"line":34,"column":null}},"type":"if","locations":[{"start":{"line":34,"column":8},"end":{"line":34,"column":null}},{"start":{},"end":{}}],"line":34},"2":{"loc":{"start":{"line":43,"column":16},"end":{"line":43,"column":null}},"type":"if","locations":[{"start":{"line":43,"column":16},"end":{"line":43,"column":null}},{"start":{},"end":{}}],"line":43},"3":{"loc":{"start":{"line":57,"column":8},"end":{"line":57,"column":null}},"type":"if","locations":[{"start":{"line":57,"column":8},"end":{"line":57,"column":null}},{"start":{},"end":{}}],"line":57},"4":{"loc":{"start":{"line":64,"column":16},"end":{"line":64,"column":null}},"type":"if","locations":[{"start":{"line":64,"column":16},"end":{"line":64,"column":null}},{"start":{},"end":{}}],"line":64},"5":{"loc":{"start":{"line":94,"column":17},"end":{"line":94,"column":null}},"type":"binary-expr","locations":[{"start":{"line":94,"column":17},"end":{"line":94,"column":26}},{"start":{"line":94,"column":26},"end":{"line":94,"column":null}}],"line":94},"6":{"loc":{"start":{"line":99,"column":17},"end":{"line":99,"column":null}},"type":"binary-expr","locations":[{"start":{"line":99,"column":17},"end":{"line":99,"column":28}},{"start":{"line":99,"column":28},"end":{"line":99,"column":null}}],"line":99},"7":{"loc":{"start":{"line":104,"column":62},"end":{"line":104,"column":89}},"type":"binary-expr","locations":[{"start":{"line":104,"column":62},"end":{"line":104,"column":76}},{"start":{"line":104,"column":76},"end":{"line":104,"column":89}}],"line":104}},"s":{"0":14,"1":14,"2":14,"3":14,"4":14,"5":3,"6":14,"7":4,"8":4,"9":4,"10":0,"11":4,"12":4,"13":4,"14":0,"15":0,"16":14,"17":1,"18":1,"19":0,"20":1,"21":1,"22":1,"23":0,"24":1,"25":1,"26":1,"27":0,"28":0,"29":14,"30":1,"31":0,"32":1,"33":1,"34":1,"35":0,"36":1,"37":1,"38":1,"39":0,"40":0,"41":14,"42":1,"43":5,"44":1},"f":{"0":14,"1":3,"2":4,"3":4,"4":4,"5":0,"6":1,"7":1,"8":1,"9":0,"10":1,"11":1,"12":1,"13":0,"14":1,"15":5,"16":1},"b":{"0":[0,4],"1":[0,1],"2":[0,1],"3":[0,1],"4":[0,1],"5":[14,0],"6":[14,5],"7":[5,0]},"meta":{"lastBranch":8,"lastFunction":17,"lastStatement":45,"seen":{"f:5:24:5:35":0,"s:6:26:6:Infinity":0,"s:7:36:7:Infinity":1,"s:8:30:8:Infinity":2,"s:9:26:9:Infinity":3,"s:11:4:13:Infinity":4,"f:11:14:11:20":1,"s:12:8:12:Infinity":5,"s:15:23:30:Infinity":6,"f:15:23:15:29":2,"s:16:8:16:Infinity":7,"s:17:8:29:Infinity":8,"f:18:18:18:19":3,"b:19:16:19:Infinity:undefined:undefined:undefined:undefined":0,"s:19:16:19:Infinity":9,"s:19:29:19:Infinity":10,"s:20:16:20:Infinity":11,"f:22:18:22:19":4,"s:23:16:23:Infinity":12,"s:24:16:24:Infinity":13,"f:26:19:26:20":5,"s:27:16:27:Infinity":14,"s:28:16:28:Infinity":15,"s:32:26:54:Infinity":16,"f:32:26:32:27":6,"s:33:8:33:Infinity":17,"b:34:8:34:Infinity:undefined:undefined:undefined:undefined":1,"s:34:8:34:Infinity":18,"s:34:25:34:Infinity":19,"s:36:8:36:Infinity":20,"s:37:8:53:Infinity":21,"f:42:18:42:19":7,"b:43:16:43:Infinity:undefined:undefined:undefined:undefined":2,"s:43:16:43:Infinity":22,"s:43:29:43:Infinity":23,"s:44:16:44:Infinity":24,"f:46:18:46:24":8,"s:47:16:47:Infinity":25,"s:48:16:48:Infinity":26,"f:50:19:50:20":9,"s:51:16:51:Infinity":27,"s:52:16:52:Infinity":28,"s:56:29:72:Infinity":29,"f:56:29:56:30":10,"b:57:8:57:Infinity:undefined:undefined:undefined:undefined":3,"s:57:8:57:Infinity":30,"s:57:79:57:Infinity":31,"s:59:8:59:Infinity":32,"s:60:8:71:Infinity":33,"f:63:18:63:19":11,"b:64:16:64:Infinity:undefined:undefined:undefined:undefined":4,"s:64:16:64:Infinity":34,"s:64:29:64:Infinity":35,"s:65:16:65:Infinity":36,"f:65:38:65:39":12,"s:65:45:65:57":37,"s:66:16:66:Infinity":38,"f:68:19:68:20":13,"s:69:16:69:Infinity":39,"s:70:16:70:Infinity":40,"s:74:4:119:Infinity":41,"f:84:34:84:35":14,"s:84:41:84:Infinity":42,"b:94:17:94:26:94:26:94:Infinity":5,"b:99:17:99:28:99:28:99:Infinity":6,"f:101:31:101:32":15,"s:102:24:115:Infinity":43,"b:104:62:104:76:104:76:104:89":7,"f:108:41:108:47":16,"s:108:47:108:Infinity":44}}} +{ + "/Users/adam/workspace/vibecode/neko/frontend/src/App.css": { + "path": "/Users/adam/workspace/vibecode/neko/frontend/src/App.css", + "statementMap": {}, + "fnMap": {}, + "branchMap": {}, + "s": {}, + "f": {}, + "b": {}, + "meta": { "lastBranch": 0, "lastFunction": 0, "lastStatement": 0, "seen": {} } + }, + "/Users/adam/workspace/vibecode/neko/frontend/src/App.tsx": { + "path": "/Users/adam/workspace/vibecode/neko/frontend/src/App.tsx", + "statementMap": { + "0": { "start": { "line": 8, "column": 22 }, "end": { "line": 8, "column": null } }, + "1": { "start": { "line": 9, "column": 8 }, "end": { "line": 9, "column": null } }, + "2": { "start": { "line": 11, "column": 2 }, "end": { "line": 21, "column": null } }, + "3": { "start": { "line": 12, "column": 4 }, "end": { "line": 20, "column": null } }, + "4": { "start": { "line": 14, "column": 8 }, "end": { "line": 18, "column": null } }, + "5": { "start": { "line": 15, "column": 10 }, "end": { "line": 15, "column": null } }, + "6": { "start": { "line": 17, "column": 10 }, "end": { "line": 17, "column": null } }, + "7": { "start": { "line": 20, "column": 19 }, "end": { "line": 20, "column": 33 } }, + "8": { "start": { "line": 23, "column": 2 }, "end": { "line": 25, "column": null } }, + "9": { "start": { "line": 24, "column": 4 }, "end": { "line": 24, "column": null } }, + "10": { "start": { "line": 27, "column": 2 }, "end": { "line": 29, "column": null } }, + "11": { "start": { "line": 28, "column": 4 }, "end": { "line": 28, "column": null } }, + "12": { "start": { "line": 31, "column": 2 }, "end": { "line": 31, "column": null } }, + "13": { "start": { "line": 39, "column": 8 }, "end": { "line": 39, "column": null } }, + "14": { "start": { "line": 40, "column": 2 }, "end": { "line": 68, "column": null } }, + "15": { "start": { "line": 45, "column": 33 }, "end": { "line": 45, "column": 56 } }, + "16": { "start": { "line": 48, "column": 12 }, "end": { "line": 49, "column": null } }, + "17": { "start": { "line": 49, "column": 26 }, "end": { "line": 49, "column": 60 } }, + "18": { "start": { "line": 73, "column": 2 }, "end": { "line": 86, "column": null } } + }, + "fnMap": { + "0": { + "name": "RequireAuth", + "decl": { "start": { "line": 7, "column": 9 }, "end": { "line": 7, "column": 21 } }, + "loc": { "start": { "line": 7, "column": 69 }, "end": { "line": 32, "column": null } }, + "line": 7 + }, + "1": { + "name": "(anonymous_1)", + "decl": { "start": { "line": 11, "column": 12 }, "end": { "line": 11, "column": 18 } }, + "loc": { "start": { "line": 11, "column": 18 }, "end": { "line": 21, "column": 5 } }, + "line": 11 + }, + "2": { + "name": "(anonymous_2)", + "decl": { "start": { "line": 13, "column": 12 }, "end": { "line": 13, "column": 13 } }, + "loc": { "start": { "line": 13, "column": 21 }, "end": { "line": 19, "column": 7 } }, + "line": 13 + }, + "3": { + "name": "(anonymous_3)", + "decl": { "start": { "line": 20, "column": 13 }, "end": { "line": 20, "column": 19 } }, + "loc": { "start": { "line": 20, "column": 19 }, "end": { "line": 20, "column": 33 } }, + "line": 20 + }, + "4": { + "name": "Dashboard", + "decl": { "start": { "line": 38, "column": 9 }, "end": { "line": 38, "column": 21 } }, + "loc": { "start": { "line": 38, "column": 21 }, "end": { "line": 70, "column": null } }, + "line": 38 + }, + "5": { + "name": "(anonymous_5)", + "decl": { "start": { "line": 45, "column": 27 }, "end": { "line": 45, "column": 33 } }, + "loc": { "start": { "line": 45, "column": 33 }, "end": { "line": 45, "column": 56 } }, + "line": 45 + }, + "6": { + "name": "(anonymous_6)", + "decl": { "start": { "line": 47, "column": 27 }, "end": { "line": 47, "column": 33 } }, + "loc": { "start": { "line": 47, "column": 33 }, "end": { "line": 50, "column": 13 } }, + "line": 47 + }, + "7": { + "name": "(anonymous_7)", + "decl": { "start": { "line": 49, "column": 20 }, "end": { "line": 49, "column": 26 } }, + "loc": { "start": { "line": 49, "column": 26 }, "end": { "line": 49, "column": 60 } }, + "line": 49 + }, + "8": { + "name": "App", + "decl": { "start": { "line": 72, "column": 9 }, "end": { "line": 72, "column": 15 } }, + "loc": { "start": { "line": 72, "column": 15 }, "end": { "line": 88, "column": null } }, + "line": 72 + } + }, + "branchMap": { + "0": { + "loc": { "start": { "line": 14, "column": 8 }, "end": { "line": 18, "column": null } }, + "type": "if", + "locations": [ + { "start": { "line": 14, "column": 8 }, "end": { "line": 18, "column": null } }, + { "start": { "line": 16, "column": 15 }, "end": { "line": 18, "column": null } } + ], + "line": 14 + }, + "1": { + "loc": { "start": { "line": 23, "column": 2 }, "end": { "line": 25, "column": null } }, + "type": "if", + "locations": [ + { "start": { "line": 23, "column": 2 }, "end": { "line": 25, "column": null } }, + { "start": {}, "end": {} } + ], + "line": 23 + }, + "2": { + "loc": { "start": { "line": 27, "column": 2 }, "end": { "line": 29, "column": null } }, + "type": "if", + "locations": [ + { "start": { "line": 27, "column": 2 }, "end": { "line": 29, "column": null } }, + { "start": {}, "end": {} } + ], + "line": 27 + } + }, + "s": { + "0": 2, + "1": 2, + "2": 2, + "3": 1, + "4": 1, + "5": 1, + "6": 0, + "7": 0, + "8": 2, + "9": 1, + "10": 1, + "11": 0, + "12": 1, + "13": 1, + "14": 1, + "15": 0, + "16": 1, + "17": 1, + "18": 2 + }, + "f": { "0": 2, "1": 1, "2": 1, "3": 0, "4": 1, "5": 0, "6": 1, "7": 1, "8": 2 }, + "b": { "0": [1, 0], "1": [1, 1], "2": [0, 1] }, + "meta": { + "lastBranch": 3, + "lastFunction": 9, + "lastStatement": 19, + "seen": { + "f:7:9:7:21": 0, + "s:8:22:8:Infinity": 0, + "s:9:8:9:Infinity": 1, + "s:11:2:21:Infinity": 2, + "f:11:12:11:18": 1, + "s:12:4:20:Infinity": 3, + "f:13:12:13:13": 2, + "b:14:8:18:Infinity:16:15:18:Infinity": 0, + "s:14:8:18:Infinity": 4, + "s:15:10:15:Infinity": 5, + "s:17:10:17:Infinity": 6, + "f:20:13:20:19": 3, + "s:20:19:20:33": 7, + "b:23:2:25:Infinity:undefined:undefined:undefined:undefined": 1, + "s:23:2:25:Infinity": 8, + "s:24:4:24:Infinity": 9, + "b:27:2:29:Infinity:undefined:undefined:undefined:undefined": 2, + "s:27:2:29:Infinity": 10, + "s:28:4:28:Infinity": 11, + "s:31:2:31:Infinity": 12, + "f:38:9:38:21": 4, + "s:39:8:39:Infinity": 13, + "s:40:2:68:Infinity": 14, + "f:45:27:45:33": 5, + "s:45:33:45:56": 15, + "f:47:27:47:33": 6, + "s:48:12:49:Infinity": 16, + "f:49:20:49:26": 7, + "s:49:26:49:60": 17, + "f:72:9:72:15": 8, + "s:73:2:86:Infinity": 18 + } + } + }, + "/Users/adam/workspace/vibecode/neko/frontend/src/components/FeedItem.css": { + "path": "/Users/adam/workspace/vibecode/neko/frontend/src/components/FeedItem.css", + "statementMap": {}, + "fnMap": {}, + "branchMap": {}, + "s": {}, + "f": {}, + "b": {}, + "meta": { "lastBranch": 0, "lastFunction": 0, "lastStatement": 0, "seen": {} } + }, + "/Users/adam/workspace/vibecode/neko/frontend/src/components/FeedItem.tsx": { + "path": "/Users/adam/workspace/vibecode/neko/frontend/src/components/FeedItem.tsx", + "statementMap": { + "0": { "start": { "line": 10, "column": 24 }, "end": { "line": 10, "column": null } }, + "1": { "start": { "line": 11, "column": 30 }, "end": { "line": 11, "column": null } }, + "2": { "start": { "line": 14, "column": 23 }, "end": { "line": 16, "column": null } }, + "3": { "start": { "line": 15, "column": 8 }, "end": { "line": 15, "column": null } }, + "4": { "start": { "line": 18, "column": 23 }, "end": { "line": 52, "column": null } }, + "5": { "start": { "line": 19, "column": 8 }, "end": { "line": 19, "column": null } }, + "6": { "start": { "line": 21, "column": 29 }, "end": { "line": 21, "column": null } }, + "7": { "start": { "line": 22, "column": 8 }, "end": { "line": 22, "column": null } }, + "8": { "start": { "line": 24, "column": 8 }, "end": { "line": 51, "column": null } }, + "9": { "start": { "line": 36, "column": 16 }, "end": { "line": 38, "column": null } }, + "10": { "start": { "line": 37, "column": 20 }, "end": { "line": 37, "column": null } }, + "11": { "start": { "line": 39, "column": 16 }, "end": { "line": 39, "column": null } }, + "12": { "start": { "line": 44, "column": 16 }, "end": { "line": 44, "column": null } }, + "13": { "start": { "line": 47, "column": 16 }, "end": { "line": 47, "column": null } }, + "14": { "start": { "line": 49, "column": 16 }, "end": { "line": 49, "column": null } }, + "15": { "start": { "line": 50, "column": 16 }, "end": { "line": 50, "column": null } }, + "16": { "start": { "line": 54, "column": 4 }, "end": { "line": 82, "column": null } }, + "17": { "start": { "line": 59, "column": 24 }, "end": { "line": 59, "column": null } }, + "18": { "start": { "line": 60, "column": 24 }, "end": { "line": 60, "column": null } } + }, + "fnMap": { + "0": { + "name": "FeedItem", + "decl": { "start": { "line": 9, "column": 24 }, "end": { "line": 9, "column": 33 } }, + "loc": { "start": { "line": 9, "column": 71 }, "end": { "line": 84, "column": null } }, + "line": 9 + }, + "1": { + "name": "(anonymous_1)", + "decl": { "start": { "line": 14, "column": 23 }, "end": { "line": 14, "column": 29 } }, + "loc": { "start": { "line": 14, "column": 29 }, "end": { "line": 16, "column": null } }, + "line": 14 + }, + "2": { + "name": "(anonymous_2)", + "decl": { "start": { "line": 18, "column": 23 }, "end": { "line": 18, "column": 24 } }, + "loc": { "start": { "line": 18, "column": 42 }, "end": { "line": 52, "column": null } }, + "line": 18 + }, + "3": { + "name": "(anonymous_3)", + "decl": { "start": { "line": 35, "column": 18 }, "end": { "line": 35, "column": 19 } }, + "loc": { "start": { "line": 35, "column": 27 }, "end": { "line": 40, "column": 13 } }, + "line": 35 + }, + "4": { + "name": "(anonymous_4)", + "decl": { "start": { "line": 41, "column": 18 }, "end": { "line": 41, "column": 24 } }, + "loc": { "start": { "line": 41, "column": 24 }, "end": { "line": 45, "column": 13 } }, + "line": 41 + }, + "5": { + "name": "(anonymous_5)", + "decl": { "start": { "line": 46, "column": 19 }, "end": { "line": 46, "column": 20 } }, + "loc": { "start": { "line": 46, "column": 28 }, "end": { "line": 51, "column": 13 } }, + "line": 46 + }, + "6": { + "name": "(anonymous_6)", + "decl": { "start": { "line": 58, "column": 29 }, "end": { "line": 58, "column": 30 } }, + "loc": { "start": { "line": 58, "column": 36 }, "end": { "line": 61, "column": null } }, + "line": 58 + } + }, + "branchMap": { + "0": { + "loc": { "start": { "line": 36, "column": 16 }, "end": { "line": 38, "column": null } }, + "type": "if", + "locations": [ + { "start": { "line": 36, "column": 16 }, "end": { "line": 38, "column": null } }, + { "start": {}, "end": {} } + ], + "line": 36 + }, + "1": { + "loc": { "start": { "line": 55, "column": 36 }, "end": { "line": 55, "column": 65 } }, + "type": "cond-expr", + "locations": [ + { "start": { "line": 55, "column": 48 }, "end": { "line": 55, "column": 57 } }, + { "start": { "line": 55, "column": 57 }, "end": { "line": 55, "column": 65 } } + ], + "line": 55 + }, + "2": { + "loc": { "start": { "line": 55, "column": 69 }, "end": { "line": 55, "column": 93 } }, + "type": "cond-expr", + "locations": [ + { "start": { "line": 55, "column": 79 }, "end": { "line": 55, "column": 91 } }, + { "start": { "line": 55, "column": 91 }, "end": { "line": 55, "column": 93 } } + ], + "line": 55 + }, + "3": { + "loc": { "start": { "line": 62, "column": 43 }, "end": { "line": 62, "column": 87 } }, + "type": "cond-expr", + "locations": [ + { "start": { "line": 62, "column": 58 }, "end": { "line": 62, "column": 73 } }, + { "start": { "line": 62, "column": 73 }, "end": { "line": 62, "column": 87 } } + ], + "line": 62 + }, + "4": { + "loc": { "start": { "line": 63, "column": 27 }, "end": { "line": 63, "column": null } }, + "type": "cond-expr", + "locations": [ + { "start": { "line": 63, "column": 42 }, "end": { "line": 63, "column": 53 } }, + { "start": { "line": 63, "column": 53 }, "end": { "line": 63, "column": null } } + ], + "line": 63 + }, + "5": { + "loc": { "start": { "line": 65, "column": 21 }, "end": { "line": 65, "column": null } }, + "type": "cond-expr", + "locations": [ + { "start": { "line": 65, "column": 36 }, "end": { "line": 65, "column": 42 } }, + { "start": { "line": 65, "column": 42 }, "end": { "line": 65, "column": null } } + ], + "line": 65 + }, + "6": { + "loc": { "start": { "line": 68, "column": 21 }, "end": { "line": 68, "column": null } }, + "type": "binary-expr", + "locations": [ + { "start": { "line": 68, "column": 21 }, "end": { "line": 68, "column": 35 } }, + { "start": { "line": 68, "column": 35 }, "end": { "line": 68, "column": null } } + ], + "line": 68 + }, + "7": { + "loc": { "start": { "line": 74, "column": 21 }, "end": { "line": 74, "column": null } }, + "type": "binary-expr", + "locations": [ + { "start": { "line": 74, "column": 21 }, "end": { "line": 74, "column": 40 } }, + { "start": { "line": 74, "column": 40 }, "end": { "line": 74, "column": null } } + ], + "line": 74 + }, + "8": { + "loc": { "start": { "line": 79, "column": 13 }, "end": { "line": 80, "column": null } }, + "type": "binary-expr", + "locations": [ + { "start": { "line": 79, "column": 13 }, "end": { "line": 79, "column": null } }, + { "start": { "line": 80, "column": 16 }, "end": { "line": 80, "column": null } } + ], + "line": 79 + } + }, + "s": { + "0": 21, + "1": 21, + "2": 21, + "3": 1, + "4": 21, + "5": 1, + "6": 1, + "7": 1, + "8": 1, + "9": 1, + "10": 0, + "11": 1, + "12": 1, + "13": 0, + "14": 0, + "15": 0, + "16": 21, + "17": 1, + "18": 1 + }, + "f": { "0": 21, "1": 1, "2": 1, "3": 1, "4": 1, "5": 0, "6": 1 }, + "b": { + "0": [0, 1], + "1": [9, 12], + "2": [1, 20], + "3": [2, 19], + "4": [2, 19], + "5": [2, 19], + "6": [21, 0], + "7": [21, 5], + "8": [21, 4] + }, + "meta": { + "lastBranch": 9, + "lastFunction": 7, + "lastStatement": 19, + "seen": { + "f:9:24:9:33": 0, + "s:10:24:10:Infinity": 0, + "s:11:30:11:Infinity": 1, + "s:14:23:16:Infinity": 2, + "f:14:23:14:29": 1, + "s:15:8:15:Infinity": 3, + "s:18:23:52:Infinity": 4, + "f:18:23:18:24": 2, + "s:19:8:19:Infinity": 5, + "s:21:29:21:Infinity": 6, + "s:22:8:22:Infinity": 7, + "s:24:8:51:Infinity": 8, + "f:35:18:35:19": 3, + "b:36:16:38:Infinity:undefined:undefined:undefined:undefined": 0, + "s:36:16:38:Infinity": 9, + "s:37:20:37:Infinity": 10, + "s:39:16:39:Infinity": 11, + "f:41:18:41:24": 4, + "s:44:16:44:Infinity": 12, + "f:46:19:46:20": 5, + "s:47:16:47:Infinity": 13, + "s:49:16:49:Infinity": 14, + "s:50:16:50:Infinity": 15, + "s:54:4:82:Infinity": 16, + "b:55:48:55:57:55:57:55:65": 1, + "b:55:79:55:91:55:91:55:93": 2, + "f:58:29:58:30": 6, + "s:59:24:59:Infinity": 17, + "s:60:24:60:Infinity": 18, + "b:62:58:62:73:62:73:62:87": 3, + "b:63:42:63:53:63:53:63:Infinity": 4, + "b:65:36:65:42:65:42:65:Infinity": 5, + "b:68:21:68:35:68:35:68:Infinity": 6, + "b:74:21:74:40:74:40:74:Infinity": 7, + "b:79:13:79:Infinity:80:16:80:Infinity": 8 + } + } + }, + "/Users/adam/workspace/vibecode/neko/frontend/src/components/FeedItems.css": { + "path": "/Users/adam/workspace/vibecode/neko/frontend/src/components/FeedItems.css", + "statementMap": {}, + "fnMap": {}, + "branchMap": {}, + "s": {}, + "f": {}, + "b": {}, + "meta": { "lastBranch": 0, "lastFunction": 0, "lastStatement": 0, "seen": {} } + }, + "/Users/adam/workspace/vibecode/neko/frontend/src/components/FeedItems.tsx": { + "path": "/Users/adam/workspace/vibecode/neko/frontend/src/components/FeedItems.tsx", + "statementMap": { + "0": { "start": { "line": 8, "column": 28 }, "end": { "line": 8, "column": null } }, + "1": { "start": { "line": 9, "column": 23 }, "end": { "line": 9, "column": null } }, + "2": { "start": { "line": 10, "column": 21 }, "end": { "line": 10, "column": null } }, + "3": { "start": { "line": 12, "column": 26 }, "end": { "line": 12, "column": null } }, + "4": { "start": { "line": 13, "column": 30 }, "end": { "line": 13, "column": null } }, + "5": { "start": { "line": 14, "column": 38 }, "end": { "line": 14, "column": null } }, + "6": { "start": { "line": 15, "column": 30 }, "end": { "line": 15, "column": null } }, + "7": { "start": { "line": 16, "column": 26 }, "end": { "line": 16, "column": null } }, + "8": { "start": { "line": 18, "column": 23 }, "end": { "line": 78, "column": null } }, + "9": { "start": { "line": 19, "column": 8 }, "end": { "line": 24, "column": null } }, + "10": { "start": { "line": 20, "column": 12 }, "end": { "line": 20, "column": null } }, + "11": { "start": { "line": 22, "column": 12 }, "end": { "line": 22, "column": null } }, + "12": { "start": { "line": 23, "column": 12 }, "end": { "line": 23, "column": null } }, + "13": { "start": { "line": 25, "column": 8 }, "end": { "line": 25, "column": null } }, + "14": { "start": { "line": 27, "column": 18 }, "end": { "line": 27, "column": null } }, + "15": { "start": { "line": 28, "column": 23 }, "end": { "line": 28, "column": null } }, + "16": { "start": { "line": 30, "column": 8 }, "end": { "line": 34, "column": null } }, + "17": { "start": { "line": 31, "column": 12 }, "end": { "line": 31, "column": null } }, + "18": { "start": { "line": 32, "column": 8 }, "end": { "line": 34, "column": null } }, + "19": { "start": { "line": 33, "column": 12 }, "end": { "line": 33, "column": null } }, + "20": { "start": { "line": 36, "column": 8 }, "end": { "line": 38, "column": null } }, + "21": { "start": { "line": 37, "column": 12 }, "end": { "line": 37, "column": null } }, + "22": { "start": { "line": 41, "column": 8 }, "end": { "line": 49, "column": null } }, + "23": { "start": { "line": 42, "column": 12 }, "end": { "line": 42, "column": null } }, + "24": { "start": { "line": 43, "column": 8 }, "end": { "line": 49, "column": null } }, + "25": { "start": { "line": 44, "column": 12 }, "end": { "line": 44, "column": null } }, + "26": { "start": { "line": 45, "column": 12 }, "end": { "line": 45, "column": null } }, + "27": { "start": { "line": 48, "column": 12 }, "end": { "line": 48, "column": null } }, + "28": { "start": { "line": 51, "column": 28 }, "end": { "line": 51, "column": null } }, + "29": { "start": { "line": 52, "column": 8 }, "end": { "line": 54, "column": null } }, + "30": { "start": { "line": 53, "column": 12 }, "end": { "line": 53, "column": null } }, + "31": { "start": { "line": 56, "column": 8 }, "end": { "line": 77, "column": null } }, + "32": { "start": { "line": 58, "column": 16 }, "end": { "line": 60, "column": null } }, + "33": { "start": { "line": 59, "column": 20 }, "end": { "line": 59, "column": null } }, + "34": { "start": { "line": 61, "column": 16 }, "end": { "line": 61, "column": null } }, + "35": { "start": { "line": 64, "column": 16 }, "end": { "line": 68, "column": null } }, + "36": { "start": { "line": 65, "column": 20 }, "end": { "line": 65, "column": null } }, + "37": { "start": { "line": 65, "column": 39 }, "end": { "line": 65, "column": 57 } }, + "38": { "start": { "line": 67, "column": 20 }, "end": { "line": 67, "column": null } }, + "39": { "start": { "line": 69, "column": 16 }, "end": { "line": 69, "column": null } }, + "40": { "start": { "line": 70, "column": 16 }, "end": { "line": 70, "column": null } }, + "41": { "start": { "line": 71, "column": 16 }, "end": { "line": 71, "column": null } }, + "42": { "start": { "line": 74, "column": 16 }, "end": { "line": 74, "column": null } }, + "43": { "start": { "line": 75, "column": 16 }, "end": { "line": 75, "column": null } }, + "44": { "start": { "line": 76, "column": 16 }, "end": { "line": 76, "column": null } }, + "45": { "start": { "line": 80, "column": 4 }, "end": { "line": 82, "column": null } }, + "46": { "start": { "line": 81, "column": 8 }, "end": { "line": 81, "column": null } }, + "47": { "start": { "line": 84, "column": 42 }, "end": { "line": 84, "column": null } }, + "48": { "start": { "line": 86, "column": 4 }, "end": { "line": 122, "column": null } }, + "49": { "start": { "line": 87, "column": 30 }, "end": { "line": 118, "column": null } }, + "50": { "start": { "line": 88, "column": 12 }, "end": { "line": 88, "column": null } }, + "51": { "start": { "line": 88, "column": 36 }, "end": { "line": 88, "column": null } }, + "52": { "start": { "line": 90, "column": 12 }, "end": { "line": 117, "column": null } }, + "53": { "start": { "line": 91, "column": 16 }, "end": { "line": 101, "column": null } }, + "54": { "start": { "line": 92, "column": 38 }, "end": { "line": 92, "column": null } }, + "55": { "start": { "line": 93, "column": 20 }, "end": { "line": 99, "column": null } }, + "56": { "start": { "line": 94, "column": 37 }, "end": { "line": 94, "column": null } }, + "57": { "start": { "line": 95, "column": 24 }, "end": { "line": 97, "column": null } }, + "58": { "start": { "line": 96, "column": 28 }, "end": { "line": 96, "column": null } }, + "59": { "start": { "line": 98, "column": 24 }, "end": { "line": 98, "column": null } }, + "60": { "start": { "line": 100, "column": 20 }, "end": { "line": 100, "column": null } }, + "61": { "start": { "line": 102, "column": 12 }, "end": { "line": 117, "column": null } }, + "62": { "start": { "line": 103, "column": 16 }, "end": { "line": 109, "column": null } }, + "63": { "start": { "line": 104, "column": 38 }, "end": { "line": 104, "column": null } }, + "64": { "start": { "line": 105, "column": 20 }, "end": { "line": 107, "column": null } }, + "65": { "start": { "line": 106, "column": 24 }, "end": { "line": 106, "column": null } }, + "66": { "start": { "line": 108, "column": 20 }, "end": { "line": 108, "column": null } }, + "67": { "start": { "line": 110, "column": 12 }, "end": { "line": 117, "column": null } }, + "68": { "start": { "line": 111, "column": 16 }, "end": { "line": 116, "column": null } }, + "69": { "start": { "line": 112, "column": 20 }, "end": { "line": 114, "column": null } }, + "70": { "start": { "line": 113, "column": 24 }, "end": { "line": 113, "column": null } }, + "71": { "start": { "line": 115, "column": 20 }, "end": { "line": 115, "column": null } }, + "72": { "start": { "line": 120, "column": 8 }, "end": { "line": 120, "column": null } }, + "73": { "start": { "line": 121, "column": 8 }, "end": { "line": 121, "column": null } }, + "74": { "start": { "line": 121, "column": 21 }, "end": { "line": 121, "column": null } }, + "75": { "start": { "line": 124, "column": 25 }, "end": { "line": 129, "column": null } }, + "76": { "start": { "line": 125, "column": 24 }, "end": { "line": 125, "column": null } }, + "77": { "start": { "line": 126, "column": 8 }, "end": { "line": 128, "column": null } }, + "78": { "start": { "line": 127, "column": 12 }, "end": { "line": 127, "column": null } }, + "79": { "start": { "line": 131, "column": 23 }, "end": { "line": 141, "column": null } }, + "80": { "start": { "line": 132, "column": 28 }, "end": { "line": 132, "column": null } }, + "81": { "start": { "line": 134, "column": 8 }, "end": { "line": 134, "column": null } }, + "82": { "start": { "line": 134, "column": 32 }, "end": { "line": 134, "column": 92 } }, + "83": { "start": { "line": 134, "column": 54 }, "end": { "line": 134, "column": 91 } }, + "84": { "start": { "line": 136, "column": 8 }, "end": { "line": 140, "column": null } }, + "85": { "start": { "line": 140, "column": 26 }, "end": { "line": 140, "column": 67 } }, + "86": { "start": { "line": 143, "column": 23 }, "end": { "line": 153, "column": null } }, + "87": { "start": { "line": 144, "column": 28 }, "end": { "line": 144, "column": null } }, + "88": { "start": { "line": 146, "column": 8 }, "end": { "line": 146, "column": null } }, + "89": { "start": { "line": 146, "column": 32 }, "end": { "line": 146, "column": 92 } }, + "90": { "start": { "line": 146, "column": 54 }, "end": { "line": 146, "column": 91 } }, + "91": { "start": { "line": 148, "column": 8 }, "end": { "line": 152, "column": null } }, + "92": { "start": { "line": 152, "column": 26 }, "end": { "line": 152, "column": 69 } }, + "93": { "start": { "line": 155, "column": 4 }, "end": { "line": 191, "column": null } }, + "94": { "start": { "line": 156, "column": 25 }, "end": { "line": 180, "column": null } }, + "95": { "start": { "line": 158, "column": 16 }, "end": { "line": 177, "column": null } }, + "96": { "start": { "line": 160, "column": 20 }, "end": { "line": 165, "column": null } }, + "97": { "start": { "line": 161, "column": 24 }, "end": { "line": 163, "column": null } }, + "98": { "start": { "line": 162, "column": 28 }, "end": { "line": 162, "column": null } }, + "99": { "start": { "line": 164, "column": 24 }, "end": { "line": 164, "column": null } }, + "100": { "start": { "line": 168, "column": 20 }, "end": { "line": 176, "column": null } }, + "101": { "start": { "line": 169, "column": 38 }, "end": { "line": 169, "column": null } }, + "102": { "start": { "line": 170, "column": 24 }, "end": { "line": 175, "column": null } }, + "103": { "start": { "line": 171, "column": 41 }, "end": { "line": 171, "column": null } }, + "104": { "start": { "line": 172, "column": 28 }, "end": { "line": 174, "column": null } }, + "105": { "start": { "line": 173, "column": 32 }, "end": { "line": 173, "column": null } }, + "106": { "start": { "line": 182, "column": 8 }, "end": { "line": 185, "column": null } }, + "107": { "start": { "line": 183, "column": 23 }, "end": { "line": 183, "column": null } }, + "108": { "start": { "line": 184, "column": 12 }, "end": { "line": 184, "column": null } }, + "109": { "start": { "line": 184, "column": 20 }, "end": { "line": 184, "column": null } }, + "110": { "start": { "line": 187, "column": 25 }, "end": { "line": 187, "column": null } }, + "111": { "start": { "line": 188, "column": 8 }, "end": { "line": 188, "column": null } }, + "112": { "start": { "line": 188, "column": 22 }, "end": { "line": 188, "column": null } }, + "113": { "start": { "line": 190, "column": 8 }, "end": { "line": 190, "column": null } }, + "114": { "start": { "line": 190, "column": 21 }, "end": { "line": 190, "column": null } }, + "115": { "start": { "line": 193, "column": 4 }, "end": { "line": 193, "column": null } }, + "116": { "start": { "line": 193, "column": 17 }, "end": { "line": 193, "column": null } }, + "117": { "start": { "line": 194, "column": 4 }, "end": { "line": 194, "column": null } }, + "118": { "start": { "line": 194, "column": 15 }, "end": { "line": 194, "column": null } }, + "119": { "start": { "line": 197, "column": 4 }, "end": { "line": 221, "column": null } }, + "120": { "start": { "line": 204, "column": 24 }, "end": { "line": 212, "column": null } }, + "121": { "start": { "line": 209, "column": 43 }, "end": { "line": 209, "column": null } } + }, + "fnMap": { + "0": { + "name": "FeedItems", + "decl": { "start": { "line": 7, "column": 24 }, "end": { "line": 7, "column": 36 } }, + "loc": { "start": { "line": 7, "column": 36 }, "end": { "line": 223, "column": null } }, + "line": 7 + }, + "1": { + "name": "(anonymous_1)", + "decl": { "start": { "line": 18, "column": 23 }, "end": { "line": 18, "column": 24 } }, + "loc": { "start": { "line": 18, "column": 43 }, "end": { "line": 78, "column": null } }, + "line": 18 + }, + "2": { + "name": "(anonymous_2)", + "decl": { "start": { "line": 57, "column": 18 }, "end": { "line": 57, "column": 19 } }, + "loc": { "start": { "line": 57, "column": 27 }, "end": { "line": 62, "column": 13 } }, + "line": 57 + }, + "3": { + "name": "(anonymous_3)", + "decl": { "start": { "line": 63, "column": 18 }, "end": { "line": 63, "column": 19 } }, + "loc": { "start": { "line": 63, "column": 28 }, "end": { "line": 72, "column": 13 } }, + "line": 63 + }, + "4": { + "name": "(anonymous_4)", + "decl": { "start": { "line": 65, "column": 29 }, "end": { "line": 65, "column": 30 } }, + "loc": { "start": { "line": 65, "column": 39 }, "end": { "line": 65, "column": 57 } }, + "line": 65 + }, + "5": { + "name": "(anonymous_5)", + "decl": { "start": { "line": 73, "column": 19 }, "end": { "line": 73, "column": 20 } }, + "loc": { "start": { "line": 73, "column": 28 }, "end": { "line": 77, "column": 13 } }, + "line": 73 + }, + "6": { + "name": "(anonymous_6)", + "decl": { "start": { "line": 80, "column": 14 }, "end": { "line": 80, "column": 20 } }, + "loc": { "start": { "line": 80, "column": 20 }, "end": { "line": 82, "column": 7 } }, + "line": 80 + }, + "7": { + "name": "(anonymous_7)", + "decl": { "start": { "line": 86, "column": 14 }, "end": { "line": 86, "column": 20 } }, + "loc": { "start": { "line": 86, "column": 20 }, "end": { "line": 122, "column": 7 } }, + "line": 86 + }, + "8": { + "name": "(anonymous_8)", + "decl": { "start": { "line": 87, "column": 30 }, "end": { "line": 87, "column": 31 } }, + "loc": { "start": { "line": 87, "column": 52 }, "end": { "line": 118, "column": null } }, + "line": 87 + }, + "9": { + "name": "(anonymous_9)", + "decl": { "start": { "line": 91, "column": 33 }, "end": { "line": 91, "column": 34 } }, + "loc": { "start": { "line": 91, "column": 43 }, "end": { "line": 101, "column": 17 } }, + "line": 91 + }, + "10": { + "name": "(anonymous_10)", + "decl": { "start": { "line": 103, "column": 33 }, "end": { "line": 103, "column": 34 } }, + "loc": { "start": { "line": 103, "column": 43 }, "end": { "line": 109, "column": 17 } }, + "line": 103 + }, + "11": { + "name": "(anonymous_11)", + "decl": { "start": { "line": 111, "column": 33 }, "end": { "line": 111, "column": 34 } }, + "loc": { "start": { "line": 111, "column": 51 }, "end": { "line": 116, "column": 17 } }, + "line": 111 + }, + "12": { + "name": "(anonymous_12)", + "decl": { "start": { "line": 121, "column": 15 }, "end": { "line": 121, "column": 21 } }, + "loc": { "start": { "line": 121, "column": 21 }, "end": { "line": 121, "column": null } }, + "line": 121 + }, + "13": { + "name": "(anonymous_13)", + "decl": { "start": { "line": 124, "column": 25 }, "end": { "line": 124, "column": 26 } }, + "loc": { "start": { "line": 124, "column": 44 }, "end": { "line": 129, "column": null } }, + "line": 124 + }, + "14": { + "name": "(anonymous_14)", + "decl": { "start": { "line": 131, "column": 23 }, "end": { "line": 131, "column": 24 } }, + "loc": { "start": { "line": 131, "column": 39 }, "end": { "line": 141, "column": null } }, + "line": 131 + }, + "15": { + "name": "(anonymous_15)", + "decl": { "start": { "line": 134, "column": 17 }, "end": { "line": 134, "column": 18 } }, + "loc": { "start": { "line": 134, "column": 32 }, "end": { "line": 134, "column": 92 } }, + "line": 134 + }, + "16": { + "name": "(anonymous_16)", + "decl": { "start": { "line": 134, "column": 46 }, "end": { "line": 134, "column": 47 } }, + "loc": { "start": { "line": 134, "column": 54 }, "end": { "line": 134, "column": 91 } }, + "line": 134 + }, + "17": { + "name": "(anonymous_17)", + "decl": { "start": { "line": 140, "column": 17 }, "end": { "line": 140, "column": 18 } }, + "loc": { "start": { "line": 140, "column": 26 }, "end": { "line": 140, "column": 67 } }, + "line": 140 + }, + "18": { + "name": "(anonymous_18)", + "decl": { "start": { "line": 143, "column": 23 }, "end": { "line": 143, "column": 24 } }, + "loc": { "start": { "line": 143, "column": 39 }, "end": { "line": 153, "column": null } }, + "line": 143 + }, + "19": { + "name": "(anonymous_19)", + "decl": { "start": { "line": 146, "column": 17 }, "end": { "line": 146, "column": 18 } }, + "loc": { "start": { "line": 146, "column": 32 }, "end": { "line": 146, "column": 92 } }, + "line": 146 + }, + "20": { + "name": "(anonymous_20)", + "decl": { "start": { "line": 146, "column": 46 }, "end": { "line": 146, "column": 47 } }, + "loc": { "start": { "line": 146, "column": 54 }, "end": { "line": 146, "column": 91 } }, + "line": 146 + }, + "21": { + "name": "(anonymous_21)", + "decl": { "start": { "line": 152, "column": 17 }, "end": { "line": 152, "column": 18 } }, + "loc": { "start": { "line": 152, "column": 26 }, "end": { "line": 152, "column": 69 } }, + "line": 152 + }, + "22": { + "name": "(anonymous_22)", + "decl": { "start": { "line": 155, "column": 14 }, "end": { "line": 155, "column": 20 } }, + "loc": { "start": { "line": 155, "column": 20 }, "end": { "line": 191, "column": 7 } }, + "line": 155 + }, + "23": { + "name": "(anonymous_23)", + "decl": { "start": { "line": 157, "column": 12 }, "end": { "line": 157, "column": 13 } }, + "loc": { "start": { "line": 157, "column": 25 }, "end": { "line": 178, "column": null } }, + "line": 157 + }, + "24": { + "name": "(anonymous_24)", + "decl": { "start": { "line": 158, "column": 32 }, "end": { "line": 158, "column": 33 } }, + "loc": { "start": { "line": 158, "column": 43 }, "end": { "line": 177, "column": 17 } }, + "line": 158 + }, + "25": { + "name": "(anonymous_25)", + "decl": { "start": { "line": 182, "column": 22 }, "end": { "line": 182, "column": 23 } }, + "loc": { "start": { "line": 182, "column": 36 }, "end": { "line": 185, "column": 9 } }, + "line": 182 + }, + "26": { + "name": "(anonymous_26)", + "decl": { "start": { "line": 190, "column": 15 }, "end": { "line": 190, "column": 21 } }, + "loc": { "start": { "line": 190, "column": 21 }, "end": { "line": 190, "column": null } }, + "line": 190 + }, + "27": { + "name": "(anonymous_27)", + "decl": { "start": { "line": 203, "column": 31 }, "end": { "line": 203, "column": 32 } }, + "loc": { "start": { "line": 204, "column": 24 }, "end": { "line": 212, "column": null } }, + "line": 204 + }, + "28": { + "name": "(anonymous_28)", + "decl": { "start": { "line": 209, "column": 37 }, "end": { "line": 209, "column": 43 } }, + "loc": { "start": { "line": 209, "column": 43 }, "end": { "line": 209, "column": null } }, + "line": 209 + } + }, + "branchMap": { + "0": { + "loc": { "start": { "line": 10, "column": 21 }, "end": { "line": 10, "column": null } }, + "type": "binary-expr", + "locations": [ + { "start": { "line": 10, "column": 21 }, "end": { "line": 10, "column": 51 } }, + { "start": { "line": 10, "column": 51 }, "end": { "line": 10, "column": null } } + ], + "line": 10 + }, + "1": { + "loc": { "start": { "line": 19, "column": 8 }, "end": { "line": 24, "column": null } }, + "type": "if", + "locations": [ + { "start": { "line": 19, "column": 8 }, "end": { "line": 24, "column": null } }, + { "start": { "line": 21, "column": 15 }, "end": { "line": 24, "column": null } } + ], + "line": 19 + }, + "2": { + "loc": { "start": { "line": 30, "column": 8 }, "end": { "line": 34, "column": null } }, + "type": "if", + "locations": [ + { "start": { "line": 30, "column": 8 }, "end": { "line": 34, "column": null } }, + { "start": { "line": 32, "column": 8 }, "end": { "line": 34, "column": null } } + ], + "line": 30 + }, + "3": { + "loc": { "start": { "line": 32, "column": 8 }, "end": { "line": 34, "column": null } }, + "type": "if", + "locations": [ + { "start": { "line": 32, "column": 8 }, "end": { "line": 34, "column": null } }, + { "start": {}, "end": {} } + ], + "line": 32 + }, + "4": { + "loc": { "start": { "line": 36, "column": 8 }, "end": { "line": 38, "column": null } }, + "type": "if", + "locations": [ + { "start": { "line": 36, "column": 8 }, "end": { "line": 38, "column": null } }, + { "start": {}, "end": {} } + ], + "line": 36 + }, + "5": { + "loc": { "start": { "line": 41, "column": 8 }, "end": { "line": 49, "column": null } }, + "type": "if", + "locations": [ + { "start": { "line": 41, "column": 8 }, "end": { "line": 49, "column": null } }, + { "start": { "line": 43, "column": 8 }, "end": { "line": 49, "column": null } } + ], + "line": 41 + }, + "6": { + "loc": { "start": { "line": 43, "column": 8 }, "end": { "line": 49, "column": null } }, + "type": "if", + "locations": [ + { "start": { "line": 43, "column": 8 }, "end": { "line": 49, "column": null } }, + { "start": { "line": 46, "column": 15 }, "end": { "line": 49, "column": null } } + ], + "line": 43 + }, + "7": { + "loc": { "start": { "line": 52, "column": 8 }, "end": { "line": 54, "column": null } }, + "type": "if", + "locations": [ + { "start": { "line": 52, "column": 8 }, "end": { "line": 54, "column": null } }, + { "start": {}, "end": {} } + ], + "line": 52 + }, + "8": { + "loc": { "start": { "line": 58, "column": 16 }, "end": { "line": 60, "column": null } }, + "type": "if", + "locations": [ + { "start": { "line": 58, "column": 16 }, "end": { "line": 60, "column": null } }, + { "start": {}, "end": {} } + ], + "line": 58 + }, + "9": { + "loc": { "start": { "line": 64, "column": 16 }, "end": { "line": 68, "column": null } }, + "type": "if", + "locations": [ + { "start": { "line": 64, "column": 16 }, "end": { "line": 68, "column": null } }, + { "start": { "line": 66, "column": 23 }, "end": { "line": 68, "column": null } } + ], + "line": 64 + }, + "10": { + "loc": { "start": { "line": 88, "column": 12 }, "end": { "line": 88, "column": null } }, + "type": "if", + "locations": [ + { "start": { "line": 88, "column": 12 }, "end": { "line": 88, "column": null } }, + { "start": {}, "end": {} } + ], + "line": 88 + }, + "11": { + "loc": { "start": { "line": 90, "column": 12 }, "end": { "line": 117, "column": null } }, + "type": "if", + "locations": [ + { "start": { "line": 90, "column": 12 }, "end": { "line": 117, "column": null } }, + { "start": { "line": 102, "column": 12 }, "end": { "line": 117, "column": null } } + ], + "line": 90 + }, + "12": { + "loc": { "start": { "line": 93, "column": 20 }, "end": { "line": 99, "column": null } }, + "type": "if", + "locations": [ + { "start": { "line": 93, "column": 20 }, "end": { "line": 99, "column": null } }, + { "start": {}, "end": {} } + ], + "line": 93 + }, + "13": { + "loc": { "start": { "line": 95, "column": 24 }, "end": { "line": 97, "column": null } }, + "type": "if", + "locations": [ + { "start": { "line": 95, "column": 24 }, "end": { "line": 97, "column": null } }, + { "start": {}, "end": {} } + ], + "line": 95 + }, + "14": { + "loc": { "start": { "line": 102, "column": 12 }, "end": { "line": 117, "column": null } }, + "type": "if", + "locations": [ + { "start": { "line": 102, "column": 12 }, "end": { "line": 117, "column": null } }, + { "start": { "line": 110, "column": 12 }, "end": { "line": 117, "column": null } } + ], + "line": 102 + }, + "15": { + "loc": { "start": { "line": 105, "column": 20 }, "end": { "line": 107, "column": null } }, + "type": "if", + "locations": [ + { "start": { "line": 105, "column": 20 }, "end": { "line": 107, "column": null } }, + { "start": {}, "end": {} } + ], + "line": 105 + }, + "16": { + "loc": { "start": { "line": 110, "column": 12 }, "end": { "line": 117, "column": null } }, + "type": "if", + "locations": [ + { "start": { "line": 110, "column": 12 }, "end": { "line": 117, "column": null } }, + { "start": {}, "end": {} } + ], + "line": 110 + }, + "17": { + "loc": { "start": { "line": 112, "column": 20 }, "end": { "line": 114, "column": null } }, + "type": "if", + "locations": [ + { "start": { "line": 112, "column": 20 }, "end": { "line": 114, "column": null } }, + { "start": {}, "end": {} } + ], + "line": 112 + }, + "18": { + "loc": { "start": { "line": 112, "column": 24 }, "end": { "line": 112, "column": 74 } }, + "type": "binary-expr", + "locations": [ + { "start": { "line": 112, "column": 24 }, "end": { "line": 112, "column": 45 } }, + { "start": { "line": 112, "column": 45 }, "end": { "line": 112, "column": 74 } } + ], + "line": 112 + }, + "19": { + "loc": { "start": { "line": 126, "column": 8 }, "end": { "line": 128, "column": null } }, + "type": "if", + "locations": [ + { "start": { "line": 126, "column": 8 }, "end": { "line": 128, "column": null } }, + { "start": {}, "end": {} } + ], + "line": 126 + }, + "20": { + "loc": { "start": { "line": 134, "column": 54 }, "end": { "line": 134, "column": 91 } }, + "type": "cond-expr", + "locations": [ + { "start": { "line": 134, "column": 75 }, "end": { "line": 134, "column": 89 } }, + { "start": { "line": 134, "column": 89 }, "end": { "line": 134, "column": 91 } } + ], + "line": 134 + }, + "21": { + "loc": { "start": { "line": 146, "column": 54 }, "end": { "line": 146, "column": 91 } }, + "type": "cond-expr", + "locations": [ + { "start": { "line": 146, "column": 75 }, "end": { "line": 146, "column": 89 } }, + { "start": { "line": 146, "column": 89 }, "end": { "line": 146, "column": 91 } } + ], + "line": 146 + }, + "22": { + "loc": { "start": { "line": 160, "column": 20 }, "end": { "line": 165, "column": null } }, + "type": "if", + "locations": [ + { "start": { "line": 160, "column": 20 }, "end": { "line": 165, "column": null } }, + { "start": {}, "end": {} } + ], + "line": 160 + }, + "23": { + "loc": { "start": { "line": 161, "column": 24 }, "end": { "line": 163, "column": null } }, + "type": "if", + "locations": [ + { "start": { "line": 161, "column": 24 }, "end": { "line": 163, "column": null } }, + { "start": {}, "end": {} } + ], + "line": 161 + }, + "24": { + "loc": { "start": { "line": 161, "column": 28 }, "end": { "line": 161, "column": 97 } }, + "type": "binary-expr", + "locations": [ + { "start": { "line": 161, "column": 28 }, "end": { "line": 161, "column": 52 } }, + { "start": { "line": 161, "column": 52 }, "end": { "line": 161, "column": 68 } }, + { "start": { "line": 161, "column": 68 }, "end": { "line": 161, "column": 79 } }, + { "start": { "line": 161, "column": 79 }, "end": { "line": 161, "column": 97 } } + ], + "line": 161 + }, + "25": { + "loc": { "start": { "line": 168, "column": 20 }, "end": { "line": 176, "column": null } }, + "type": "if", + "locations": [ + { "start": { "line": 168, "column": 20 }, "end": { "line": 176, "column": null } }, + { "start": {}, "end": {} } + ], + "line": 168 + }, + "26": { + "loc": { "start": { "line": 168, "column": 24 }, "end": { "line": 168, "column": 83 } }, + "type": "binary-expr", + "locations": [ + { "start": { "line": 168, "column": 24 }, "end": { "line": 168, "column": 49 } }, + { "start": { "line": 168, "column": 49 }, "end": { "line": 168, "column": 83 } } + ], + "line": 168 + }, + "27": { + "loc": { "start": { "line": 170, "column": 24 }, "end": { "line": 175, "column": null } }, + "type": "if", + "locations": [ + { "start": { "line": 170, "column": 24 }, "end": { "line": 175, "column": null } }, + { "start": {}, "end": {} } + ], + "line": 170 + }, + "28": { + "loc": { "start": { "line": 170, "column": 28 }, "end": { "line": 170, "column": 81 } }, + "type": "binary-expr", + "locations": [ + { "start": { "line": 170, "column": 28 }, "end": { "line": 170, "column": 45 } }, + { "start": { "line": 170, "column": 45 }, "end": { "line": 170, "column": 59 } }, + { "start": { "line": 170, "column": 59 }, "end": { "line": 170, "column": 81 } } + ], + "line": 170 + }, + "29": { + "loc": { "start": { "line": 172, "column": 28 }, "end": { "line": 174, "column": null } }, + "type": "if", + "locations": [ + { "start": { "line": 172, "column": 28 }, "end": { "line": 174, "column": null } }, + { "start": {}, "end": {} } + ], + "line": 172 + }, + "30": { + "loc": { "start": { "line": 184, "column": 12 }, "end": { "line": 184, "column": null } }, + "type": "if", + "locations": [ + { "start": { "line": 184, "column": 12 }, "end": { "line": 184, "column": null } }, + { "start": {}, "end": {} } + ], + "line": 184 + }, + "31": { + "loc": { "start": { "line": 188, "column": 8 }, "end": { "line": 188, "column": null } }, + "type": "if", + "locations": [ + { "start": { "line": 188, "column": 8 }, "end": { "line": 188, "column": null } }, + { "start": {}, "end": {} } + ], + "line": 188 + }, + "32": { + "loc": { "start": { "line": 193, "column": 4 }, "end": { "line": 193, "column": null } }, + "type": "if", + "locations": [ + { "start": { "line": 193, "column": 4 }, "end": { "line": 193, "column": null } }, + { "start": {}, "end": {} } + ], + "line": 193 + }, + "33": { + "loc": { "start": { "line": 194, "column": 4 }, "end": { "line": 194, "column": null } }, + "type": "if", + "locations": [ + { "start": { "line": 194, "column": 4 }, "end": { "line": 194, "column": null } }, + { "start": {}, "end": {} } + ], + "line": 194 + }, + "34": { + "loc": { "start": { "line": 199, "column": 13 }, "end": { "line": 219, "column": null } }, + "type": "cond-expr", + "locations": [ + { "start": { "line": 200, "column": 16 }, "end": { "line": 200, "column": null } }, + { "start": { "line": 202, "column": 16 }, "end": { "line": 219, "column": null } } + ], + "line": 199 + }, + "35": { + "loc": { "start": { "line": 208, "column": 39 }, "end": { "line": 208, "column": null } }, + "type": "cond-expr", + "locations": [ + { "start": { "line": 208, "column": 65 }, "end": { "line": 208, "column": 93 } }, + { "start": { "line": 208, "column": 93 }, "end": { "line": 208, "column": null } } + ], + "line": 208 + }, + "36": { + "loc": { "start": { "line": 214, "column": 21 }, "end": { "line": 217, "column": null } }, + "type": "binary-expr", + "locations": [ + { "start": { "line": 214, "column": 21 }, "end": { "line": 214, "column": null } }, + { "start": { "line": 215, "column": 24 }, "end": { "line": 217, "column": null } } + ], + "line": 214 + }, + "37": { + "loc": { "start": { "line": 216, "column": 29 }, "end": { "line": 216, "column": null } }, + "type": "cond-expr", + "locations": [ + { "start": { "line": 216, "column": 43 }, "end": { "line": 216, "column": 63 } }, + { "start": { "line": 216, "column": 63 }, "end": { "line": 216, "column": null } } + ], + "line": 216 + } + }, + "s": { + "0": 27, + "1": 27, + "2": 27, + "3": 27, + "4": 27, + "5": 27, + "6": 27, + "7": 27, + "8": 27, + "9": 8, + "10": 1, + "11": 7, + "12": 7, + "13": 8, + "14": 8, + "15": 8, + "16": 8, + "17": 2, + "18": 6, + "19": 1, + "20": 8, + "21": 1, + "22": 8, + "23": 0, + "24": 8, + "25": 0, + "26": 0, + "27": 8, + "28": 8, + "29": 8, + "30": 8, + "31": 8, + "32": 7, + "33": 0, + "34": 7, + "35": 6, + "36": 1, + "37": 1, + "38": 5, + "39": 6, + "40": 6, + "41": 6, + "42": 1, + "43": 1, + "44": 1, + "45": 27, + "46": 7, + "47": 27, + "48": 27, + "49": 23, + "50": 3, + "51": 0, + "52": 3, + "53": 2, + "54": 2, + "55": 2, + "56": 2, + "57": 2, + "58": 1, + "59": 2, + "60": 2, + "61": 1, + "62": 0, + "63": 0, + "64": 0, + "65": 0, + "66": 0, + "67": 1, + "68": 1, + "69": 1, + "70": 1, + "71": 1, + "72": 23, + "73": 23, + "74": 23, + "75": 27, + "76": 2, + "77": 2, + "78": 2, + "79": 27, + "80": 2, + "81": 2, + "82": 2, + "83": 3, + "84": 2, + "85": 0, + "86": 27, + "87": 1, + "88": 1, + "89": 1, + "90": 2, + "91": 1, + "92": 0, + "93": 27, + "94": 24, + "95": 2, + "96": 2, + "97": 1, + "98": 1, + "99": 1, + "100": 1, + "101": 1, + "102": 1, + "103": 1, + "104": 1, + "105": 1, + "106": 24, + "107": 15, + "108": 15, + "109": 15, + "110": 24, + "111": 24, + "112": 10, + "113": 24, + "114": 24, + "115": 27, + "116": 13, + "117": 14, + "118": 14, + "119": 13, + "120": 21, + "121": 0 + }, + "f": { + "0": 27, + "1": 8, + "2": 7, + "3": 6, + "4": 1, + "5": 1, + "6": 7, + "7": 23, + "8": 3, + "9": 2, + "10": 0, + "11": 1, + "12": 23, + "13": 2, + "14": 2, + "15": 2, + "16": 3, + "17": 0, + "18": 1, + "19": 1, + "20": 2, + "21": 0, + "22": 24, + "23": 2, + "24": 2, + "25": 15, + "26": 24, + "27": 21, + "28": 0 + }, + "b": { + "0": [27, 27], + "1": [1, 7], + "2": [2, 6], + "3": [1, 5], + "4": [1, 7], + "5": [0, 8], + "6": [0, 8], + "7": [8, 0], + "8": [0, 7], + "9": [1, 5], + "10": [0, 3], + "11": [2, 1], + "12": [2, 0], + "13": [1, 1], + "14": [0, 1], + "15": [0, 0], + "16": [1, 0], + "17": [1, 0], + "18": [1, 1], + "19": [2, 0], + "20": [2, 1], + "21": [1, 1], + "22": [1, 1], + "23": [1, 0], + "24": [1, 1, 1, 1], + "25": [1, 0], + "26": [1, 1], + "27": [1, 0], + "28": [1, 1, 1], + "29": [1, 0], + "30": [15, 0], + "31": [10, 14], + "32": [13, 14], + "33": [1, 13], + "34": [0, 13], + "35": [5, 16], + "36": [13, 13], + "37": [1, 12] + }, + "meta": { + "lastBranch": 38, + "lastFunction": 29, + "lastStatement": 122, + "seen": { + "f:7:24:7:36": 0, + "s:8:28:8:Infinity": 0, + "s:9:23:9:Infinity": 1, + "s:10:21:10:Infinity": 2, + "b:10:21:10:51:10:51:10:Infinity": 0, + "s:12:26:12:Infinity": 3, + "s:13:30:13:Infinity": 4, + "s:14:38:14:Infinity": 5, + "s:15:30:15:Infinity": 6, + "s:16:26:16:Infinity": 7, + "s:18:23:78:Infinity": 8, + "f:18:23:18:24": 1, + "b:19:8:24:Infinity:21:15:24:Infinity": 1, + "s:19:8:24:Infinity": 9, + "s:20:12:20:Infinity": 10, + "s:22:12:22:Infinity": 11, + "s:23:12:23:Infinity": 12, + "s:25:8:25:Infinity": 13, + "s:27:18:27:Infinity": 14, + "s:28:23:28:Infinity": 15, + "b:30:8:34:Infinity:32:8:34:Infinity": 2, + "s:30:8:34:Infinity": 16, + "s:31:12:31:Infinity": 17, + "b:32:8:34:Infinity:undefined:undefined:undefined:undefined": 3, + "s:32:8:34:Infinity": 18, + "s:33:12:33:Infinity": 19, + "b:36:8:38:Infinity:undefined:undefined:undefined:undefined": 4, + "s:36:8:38:Infinity": 20, + "s:37:12:37:Infinity": 21, + "b:41:8:49:Infinity:43:8:49:Infinity": 5, + "s:41:8:49:Infinity": 22, + "s:42:12:42:Infinity": 23, + "b:43:8:49:Infinity:46:15:49:Infinity": 6, + "s:43:8:49:Infinity": 24, + "s:44:12:44:Infinity": 25, + "s:45:12:45:Infinity": 26, + "s:48:12:48:Infinity": 27, + "s:51:28:51:Infinity": 28, + "b:52:8:54:Infinity:undefined:undefined:undefined:undefined": 7, + "s:52:8:54:Infinity": 29, + "s:53:12:53:Infinity": 30, + "s:56:8:77:Infinity": 31, + "f:57:18:57:19": 2, + "b:58:16:60:Infinity:undefined:undefined:undefined:undefined": 8, + "s:58:16:60:Infinity": 32, + "s:59:20:59:Infinity": 33, + "s:61:16:61:Infinity": 34, + "f:63:18:63:19": 3, + "b:64:16:68:Infinity:66:23:68:Infinity": 9, + "s:64:16:68:Infinity": 35, + "s:65:20:65:Infinity": 36, + "f:65:29:65:30": 4, + "s:65:39:65:57": 37, + "s:67:20:67:Infinity": 38, + "s:69:16:69:Infinity": 39, + "s:70:16:70:Infinity": 40, + "s:71:16:71:Infinity": 41, + "f:73:19:73:20": 5, + "s:74:16:74:Infinity": 42, + "s:75:16:75:Infinity": 43, + "s:76:16:76:Infinity": 44, + "s:80:4:82:Infinity": 45, + "f:80:14:80:20": 6, + "s:81:8:81:Infinity": 46, + "s:84:42:84:Infinity": 47, + "s:86:4:122:Infinity": 48, + "f:86:14:86:20": 7, + "s:87:30:118:Infinity": 49, + "f:87:30:87:31": 8, + "b:88:12:88:Infinity:undefined:undefined:undefined:undefined": 10, + "s:88:12:88:Infinity": 50, + "s:88:36:88:Infinity": 51, + "b:90:12:117:Infinity:102:12:117:Infinity": 11, + "s:90:12:117:Infinity": 52, + "s:91:16:101:Infinity": 53, + "f:91:33:91:34": 9, + "s:92:38:92:Infinity": 54, + "b:93:20:99:Infinity:undefined:undefined:undefined:undefined": 12, + "s:93:20:99:Infinity": 55, + "s:94:37:94:Infinity": 56, + "b:95:24:97:Infinity:undefined:undefined:undefined:undefined": 13, + "s:95:24:97:Infinity": 57, + "s:96:28:96:Infinity": 58, + "s:98:24:98:Infinity": 59, + "s:100:20:100:Infinity": 60, + "b:102:12:117:Infinity:110:12:117:Infinity": 14, + "s:102:12:117:Infinity": 61, + "s:103:16:109:Infinity": 62, + "f:103:33:103:34": 10, + "s:104:38:104:Infinity": 63, + "b:105:20:107:Infinity:undefined:undefined:undefined:undefined": 15, + "s:105:20:107:Infinity": 64, + "s:106:24:106:Infinity": 65, + "s:108:20:108:Infinity": 66, + "b:110:12:117:Infinity:undefined:undefined:undefined:undefined": 16, + "s:110:12:117:Infinity": 67, + "s:111:16:116:Infinity": 68, + "f:111:33:111:34": 11, + "b:112:20:114:Infinity:undefined:undefined:undefined:undefined": 17, + "s:112:20:114:Infinity": 69, + "b:112:24:112:45:112:45:112:74": 18, + "s:113:24:113:Infinity": 70, + "s:115:20:115:Infinity": 71, + "s:120:8:120:Infinity": 72, + "s:121:8:121:Infinity": 73, + "f:121:15:121:21": 12, + "s:121:21:121:Infinity": 74, + "s:124:25:129:Infinity": 75, + "f:124:25:124:26": 13, + "s:125:24:125:Infinity": 76, + "b:126:8:128:Infinity:undefined:undefined:undefined:undefined": 19, + "s:126:8:128:Infinity": 77, + "s:127:12:127:Infinity": 78, + "s:131:23:141:Infinity": 79, + "f:131:23:131:24": 14, + "s:132:28:132:Infinity": 80, + "s:134:8:134:Infinity": 81, + "f:134:17:134:18": 15, + "s:134:32:134:92": 82, + "f:134:46:134:47": 16, + "s:134:54:134:91": 83, + "b:134:75:134:89:134:89:134:91": 20, + "s:136:8:140:Infinity": 84, + "f:140:17:140:18": 17, + "s:140:26:140:67": 85, + "s:143:23:153:Infinity": 86, + "f:143:23:143:24": 18, + "s:144:28:144:Infinity": 87, + "s:146:8:146:Infinity": 88, + "f:146:17:146:18": 19, + "s:146:32:146:92": 89, + "f:146:46:146:47": 20, + "s:146:54:146:91": 90, + "b:146:75:146:89:146:89:146:91": 21, + "s:148:8:152:Infinity": 91, + "f:152:17:152:18": 21, + "s:152:26:152:69": 92, + "s:155:4:191:Infinity": 93, + "f:155:14:155:20": 22, + "s:156:25:180:Infinity": 94, + "f:157:12:157:13": 23, + "s:158:16:177:Infinity": 95, + "f:158:32:158:33": 24, + "b:160:20:165:Infinity:undefined:undefined:undefined:undefined": 22, + "s:160:20:165:Infinity": 96, + "b:161:24:163:Infinity:undefined:undefined:undefined:undefined": 23, + "s:161:24:163:Infinity": 97, + "b:161:28:161:52:161:52:161:68:161:68:161:79:161:79:161:97": 24, + "s:162:28:162:Infinity": 98, + "s:164:24:164:Infinity": 99, + "b:168:20:176:Infinity:undefined:undefined:undefined:undefined": 25, + "s:168:20:176:Infinity": 100, + "b:168:24:168:49:168:49:168:83": 26, + "s:169:38:169:Infinity": 101, + "b:170:24:175:Infinity:undefined:undefined:undefined:undefined": 27, + "s:170:24:175:Infinity": 102, + "b:170:28:170:45:170:45:170:59:170:59:170:81": 28, + "s:171:41:171:Infinity": 103, + "b:172:28:174:Infinity:undefined:undefined:undefined:undefined": 29, + "s:172:28:174:Infinity": 104, + "s:173:32:173:Infinity": 105, + "s:182:8:185:Infinity": 106, + "f:182:22:182:23": 25, + "s:183:23:183:Infinity": 107, + "b:184:12:184:Infinity:undefined:undefined:undefined:undefined": 30, + "s:184:12:184:Infinity": 108, + "s:184:20:184:Infinity": 109, + "s:187:25:187:Infinity": 110, + "b:188:8:188:Infinity:undefined:undefined:undefined:undefined": 31, + "s:188:8:188:Infinity": 111, + "s:188:22:188:Infinity": 112, + "s:190:8:190:Infinity": 113, + "f:190:15:190:21": 26, + "s:190:21:190:Infinity": 114, + "b:193:4:193:Infinity:undefined:undefined:undefined:undefined": 32, + "s:193:4:193:Infinity": 115, + "s:193:17:193:Infinity": 116, + "b:194:4:194:Infinity:undefined:undefined:undefined:undefined": 33, + "s:194:4:194:Infinity": 117, + "s:194:15:194:Infinity": 118, + "s:197:4:221:Infinity": 119, + "b:200:16:200:Infinity:202:16:219:Infinity": 34, + "f:203:31:203:32": 27, + "s:204:24:212:Infinity": 120, + "b:208:65:208:93:208:93:208:Infinity": 35, + "f:209:37:209:43": 28, + "s:209:43:209:Infinity": 121, + "b:214:21:214:Infinity:215:24:217:Infinity": 36, + "b:216:43:216:63:216:63:216:Infinity": 37 + } + } + }, + "/Users/adam/workspace/vibecode/neko/frontend/src/components/FeedList.css": { + "path": "/Users/adam/workspace/vibecode/neko/frontend/src/components/FeedList.css", + "statementMap": {}, + "fnMap": {}, + "branchMap": {}, + "s": {}, + "f": {}, + "b": {}, + "meta": { "lastBranch": 0, "lastFunction": 0, "lastStatement": 0, "seen": {} } + }, + "/Users/adam/workspace/vibecode/neko/frontend/src/components/FeedList.tsx": { + "path": "/Users/adam/workspace/vibecode/neko/frontend/src/components/FeedList.tsx", + "statementMap": { + "0": { "start": { "line": 7, "column": 26 }, "end": { "line": 7, "column": null } }, + "1": { "start": { "line": 8, "column": 24 }, "end": { "line": 8, "column": null } }, + "2": { "start": { "line": 9, "column": 30 }, "end": { "line": 9, "column": null } }, + "3": { "start": { "line": 10, "column": 26 }, "end": { "line": 10, "column": null } }, + "4": { "start": { "line": 12, "column": 4 }, "end": { "line": 32, "column": null } }, + "5": { "start": { "line": 13, "column": 8 }, "end": { "line": 31, "column": null } }, + "6": { "start": { "line": 15, "column": 16 }, "end": { "line": 15, "column": null } }, + "7": { "start": { "line": 15, "column": 29 }, "end": { "line": 15, "column": null } }, + "8": { "start": { "line": 16, "column": 16 }, "end": { "line": 16, "column": null } }, + "9": { "start": { "line": 19, "column": 16 }, "end": { "line": 19, "column": null } }, + "10": { "start": { "line": 19, "column": 29 }, "end": { "line": 19, "column": null } }, + "11": { "start": { "line": 20, "column": 16 }, "end": { "line": 20, "column": null } }, + "12": { "start": { "line": 24, "column": 16 }, "end": { "line": 24, "column": null } }, + "13": { "start": { "line": 25, "column": 16 }, "end": { "line": 25, "column": null } }, + "14": { "start": { "line": 26, "column": 16 }, "end": { "line": 26, "column": null } }, + "15": { "start": { "line": 29, "column": 16 }, "end": { "line": 29, "column": null } }, + "16": { "start": { "line": 30, "column": 16 }, "end": { "line": 30, "column": null } }, + "17": { "start": { "line": 34, "column": 4 }, "end": { "line": 34, "column": null } }, + "18": { "start": { "line": 34, "column": 17 }, "end": { "line": 34, "column": null } }, + "19": { "start": { "line": 35, "column": 4 }, "end": { "line": 35, "column": null } }, + "20": { "start": { "line": 35, "column": 15 }, "end": { "line": 35, "column": null } }, + "21": { "start": { "line": 37, "column": 4 }, "end": { "line": 78, "column": null } }, + "22": { "start": { "line": 53, "column": 28 }, "end": { "line": 58, "column": null } }, + "23": { "start": { "line": 69, "column": 28 }, "end": { "line": 73, "column": null } } + }, + "fnMap": { + "0": { + "name": "FeedList", + "decl": { "start": { "line": 6, "column": 24 }, "end": { "line": 6, "column": 35 } }, + "loc": { "start": { "line": 6, "column": 35 }, "end": { "line": 80, "column": null } }, + "line": 6 + }, + "1": { + "name": "(anonymous_1)", + "decl": { "start": { "line": 12, "column": 14 }, "end": { "line": 12, "column": 20 } }, + "loc": { "start": { "line": 12, "column": 20 }, "end": { "line": 32, "column": 7 } }, + "line": 12 + }, + "2": { + "name": "(anonymous_2)", + "decl": { "start": { "line": 14, "column": 37 }, "end": { "line": 14, "column": 44 } }, + "loc": { "start": { "line": 14, "column": 44 }, "end": { "line": 17, "column": 13 } }, + "line": 14 + }, + "3": { + "name": "(anonymous_3)", + "decl": { "start": { "line": 18, "column": 35 }, "end": { "line": 18, "column": 42 } }, + "loc": { "start": { "line": 18, "column": 42 }, "end": { "line": 21, "column": 13 } }, + "line": 18 + }, + "4": { + "name": "(anonymous_4)", + "decl": { "start": { "line": 23, "column": 18 }, "end": { "line": 23, "column": 19 } }, + "loc": { "start": { "line": 23, "column": 45 }, "end": { "line": 27, "column": 13 } }, + "line": 23 + }, + "5": { + "name": "(anonymous_5)", + "decl": { "start": { "line": 28, "column": 19 }, "end": { "line": 28, "column": 20 } }, + "loc": { "start": { "line": 28, "column": 28 }, "end": { "line": 31, "column": 13 } }, + "line": 28 + }, + "6": { + "name": "(anonymous_6)", + "decl": { "start": { "line": 52, "column": 35 }, "end": { "line": 52, "column": 36 } }, + "loc": { "start": { "line": 53, "column": 28 }, "end": { "line": 58, "column": null } }, + "line": 53 + }, + "7": { + "name": "(anonymous_7)", + "decl": { "start": { "line": 68, "column": 34 }, "end": { "line": 68, "column": 35 } }, + "loc": { "start": { "line": 69, "column": 28 }, "end": { "line": 73, "column": null } }, + "line": 69 + } + }, + "branchMap": { + "0": { + "loc": { "start": { "line": 15, "column": 16 }, "end": { "line": 15, "column": null } }, + "type": "if", + "locations": [ + { "start": { "line": 15, "column": 16 }, "end": { "line": 15, "column": null } }, + { "start": {}, "end": {} } + ], + "line": 15 + }, + "1": { + "loc": { "start": { "line": 19, "column": 16 }, "end": { "line": 19, "column": null } }, + "type": "if", + "locations": [ + { "start": { "line": 19, "column": 16 }, "end": { "line": 19, "column": null } }, + { "start": {}, "end": {} } + ], + "line": 19 + }, + "2": { + "loc": { "start": { "line": 34, "column": 4 }, "end": { "line": 34, "column": null } }, + "type": "if", + "locations": [ + { "start": { "line": 34, "column": 4 }, "end": { "line": 34, "column": null } }, + { "start": {}, "end": {} } + ], + "line": 34 + }, + "3": { + "loc": { "start": { "line": 35, "column": 4 }, "end": { "line": 35, "column": null } }, + "type": "if", + "locations": [ + { "start": { "line": 35, "column": 4 }, "end": { "line": 35, "column": null } }, + { "start": {}, "end": {} } + ], + "line": 35 + }, + "4": { + "loc": { "start": { "line": 48, "column": 17 }, "end": { "line": 60, "column": null } }, + "type": "cond-expr", + "locations": [ + { "start": { "line": 49, "column": 20 }, "end": { "line": 49, "column": null } }, + { "start": { "line": 51, "column": 20 }, "end": { "line": 60, "column": null } } + ], + "line": 48 + }, + "5": { + "loc": { "start": { "line": 55, "column": 37 }, "end": { "line": 55, "column": null } }, + "type": "binary-expr", + "locations": [ + { "start": { "line": 55, "column": 37 }, "end": { "line": 55, "column": 51 } }, + { "start": { "line": 55, "column": 51 }, "end": { "line": 55, "column": null } } + ], + "line": 55 + }, + "6": { + "loc": { "start": { "line": 57, "column": 33 }, "end": { "line": 57, "column": null } }, + "type": "binary-expr", + "locations": [ + { "start": { "line": 57, "column": 33 }, "end": { "line": 57, "column": 50 } }, + { "start": { "line": 57, "column": 50 }, "end": { "line": 57, "column": null } } + ], + "line": 57 + }, + "7": { + "loc": { "start": { "line": 64, "column": 13 }, "end": { "line": 76, "column": null } }, + "type": "binary-expr", + "locations": [ + { "start": { "line": 64, "column": 13 }, "end": { "line": 64, "column": 21 } }, + { "start": { "line": 64, "column": 21 }, "end": { "line": 64, "column": null } }, + { "start": { "line": 65, "column": 16 }, "end": { "line": 76, "column": null } } + ], + "line": 64 + } + }, + "s": { + "0": 11, + "1": 11, + "2": 11, + "3": 11, + "4": 11, + "5": 6, + "6": 4, + "7": 0, + "8": 4, + "9": 4, + "10": 0, + "11": 4, + "12": 4, + "13": 4, + "14": 4, + "15": 1, + "16": 1, + "17": 11, + "18": 6, + "19": 5, + "20": 5, + "21": 4, + "22": 3, + "23": 3 + }, + "f": { "0": 11, "1": 6, "2": 4, "3": 4, "4": 4, "5": 1, "6": 3, "7": 3 }, + "b": { + "0": [0, 4], + "1": [0, 4], + "2": [6, 5], + "3": [1, 4], + "4": [2, 2], + "5": [3, 0], + "6": [3, 3], + "7": [11, 4, 2] + }, + "meta": { + "lastBranch": 8, + "lastFunction": 8, + "lastStatement": 24, + "seen": { + "f:6:24:6:35": 0, + "s:7:26:7:Infinity": 0, + "s:8:24:8:Infinity": 1, + "s:9:30:9:Infinity": 2, + "s:10:26:10:Infinity": 3, + "s:12:4:32:Infinity": 4, + "f:12:14:12:20": 1, + "s:13:8:31:Infinity": 5, + "f:14:37:14:44": 2, + "b:15:16:15:Infinity:undefined:undefined:undefined:undefined": 0, + "s:15:16:15:Infinity": 6, + "s:15:29:15:Infinity": 7, + "s:16:16:16:Infinity": 8, + "f:18:35:18:42": 3, + "b:19:16:19:Infinity:undefined:undefined:undefined:undefined": 1, + "s:19:16:19:Infinity": 9, + "s:19:29:19:Infinity": 10, + "s:20:16:20:Infinity": 11, + "f:23:18:23:19": 4, + "s:24:16:24:Infinity": 12, + "s:25:16:25:Infinity": 13, + "s:26:16:26:Infinity": 14, + "f:28:19:28:20": 5, + "s:29:16:29:Infinity": 15, + "s:30:16:30:Infinity": 16, + "b:34:4:34:Infinity:undefined:undefined:undefined:undefined": 2, + "s:34:4:34:Infinity": 17, + "s:34:17:34:Infinity": 18, + "b:35:4:35:Infinity:undefined:undefined:undefined:undefined": 3, + "s:35:4:35:Infinity": 19, + "s:35:15:35:Infinity": 20, + "s:37:4:78:Infinity": 21, + "b:49:20:49:Infinity:51:20:60:Infinity": 4, + "f:52:35:52:36": 6, + "s:53:28:58:Infinity": 22, + "b:55:37:55:51:55:51:55:Infinity": 5, + "b:57:33:57:50:57:50:57:Infinity": 6, + "b:64:13:64:21:64:21:64:Infinity:65:16:76:Infinity": 7, + "f:68:34:68:35": 7, + "s:69:28:73:Infinity": 23 + } + } + }, + "/Users/adam/workspace/vibecode/neko/frontend/src/components/Login.css": { + "path": "/Users/adam/workspace/vibecode/neko/frontend/src/components/Login.css", + "statementMap": {}, + "fnMap": {}, + "branchMap": {}, + "s": {}, + "f": {}, + "b": {}, + "meta": { "lastBranch": 0, "lastFunction": 0, "lastStatement": 0, "seen": {} } + }, + "/Users/adam/workspace/vibecode/neko/frontend/src/components/Login.tsx": { + "path": "/Users/adam/workspace/vibecode/neko/frontend/src/components/Login.tsx", + "statementMap": { + "0": { "start": { "line": 6, "column": 32 }, "end": { "line": 6, "column": null } }, + "1": { "start": { "line": 7, "column": 26 }, "end": { "line": 7, "column": null } }, + "2": { "start": { "line": 8, "column": 10 }, "end": { "line": 8, "column": null } }, + "3": { "start": { "line": 10, "column": 25 }, "end": { "line": 33, "column": null } }, + "4": { "start": { "line": 11, "column": 8 }, "end": { "line": 11, "column": null } }, + "5": { "start": { "line": 12, "column": 8 }, "end": { "line": 12, "column": null } }, + "6": { "start": { "line": 14, "column": 8 }, "end": { "line": 32, "column": null } }, + "7": { "start": { "line": 16, "column": 27 }, "end": { "line": 16, "column": null } }, + "8": { "start": { "line": 17, "column": 12 }, "end": { "line": 17, "column": null } }, + "9": { "start": { "line": 19, "column": 24 }, "end": { "line": 22, "column": null } }, + "10": { "start": { "line": 24, "column": 12 }, "end": { "line": 29, "column": null } }, + "11": { "start": { "line": 25, "column": 16 }, "end": { "line": 25, "column": null } }, + "12": { "start": { "line": 27, "column": 29 }, "end": { "line": 27, "column": null } }, + "13": { "start": { "line": 28, "column": 16 }, "end": { "line": 28, "column": null } }, + "14": { "start": { "line": 31, "column": 12 }, "end": { "line": 31, "column": null } }, + "15": { "start": { "line": 35, "column": 4 }, "end": { "line": 52, "column": null } }, + "16": { "start": { "line": 45, "column": 41 }, "end": { "line": 45, "column": null } } + }, + "fnMap": { + "0": { + "name": "Login", + "decl": { "start": { "line": 5, "column": 24 }, "end": { "line": 5, "column": 32 } }, + "loc": { "start": { "line": 5, "column": 32 }, "end": { "line": 54, "column": null } }, + "line": 5 + }, + "1": { + "name": "(anonymous_1)", + "decl": { "start": { "line": 10, "column": 25 }, "end": { "line": 10, "column": 32 } }, + "loc": { "start": { "line": 10, "column": 49 }, "end": { "line": 33, "column": null } }, + "line": 10 + }, + "2": { + "name": "(anonymous_2)", + "decl": { "start": { "line": 45, "column": 34 }, "end": { "line": 45, "column": 35 } }, + "loc": { "start": { "line": 45, "column": 41 }, "end": { "line": 45, "column": null } }, + "line": 45 + } + }, + "branchMap": { + "0": { + "loc": { "start": { "line": 24, "column": 12 }, "end": { "line": 29, "column": null } }, + "type": "if", + "locations": [ + { "start": { "line": 24, "column": 12 }, "end": { "line": 29, "column": null } }, + { "start": { "line": 26, "column": 19 }, "end": { "line": 29, "column": null } } + ], + "line": 24 + }, + "1": { + "loc": { "start": { "line": 28, "column": 25 }, "end": { "line": 28, "column": 55 } }, + "type": "binary-expr", + "locations": [ + { "start": { "line": 28, "column": 25 }, "end": { "line": 28, "column": 41 } }, + { "start": { "line": 28, "column": 41 }, "end": { "line": 28, "column": 55 } } + ], + "line": 28 + }, + "2": { + "loc": { "start": { "line": 49, "column": 17 }, "end": { "line": 49, "column": null } }, + "type": "binary-expr", + "locations": [ + { "start": { "line": 49, "column": 17 }, "end": { "line": 49, "column": 26 } }, + { "start": { "line": 49, "column": 26 }, "end": { "line": 49, "column": null } } + ], + "line": 49 + } + }, + "s": { + "0": 14, + "1": 14, + "2": 14, + "3": 14, + "4": 3, + "5": 3, + "6": 3, + "7": 3, + "8": 3, + "9": 3, + "10": 2, + "11": 1, + "12": 1, + "13": 1, + "14": 1, + "15": 14, + "16": 3 + }, + "f": { "0": 14, "1": 3, "2": 3 }, + "b": { "0": [1, 1], "1": [1, 0], "2": [14, 2] }, + "meta": { + "lastBranch": 3, + "lastFunction": 3, + "lastStatement": 17, + "seen": { + "f:5:24:5:32": 0, + "s:6:32:6:Infinity": 0, + "s:7:26:7:Infinity": 1, + "s:8:10:8:Infinity": 2, + "s:10:25:33:Infinity": 3, + "f:10:25:10:32": 1, + "s:11:8:11:Infinity": 4, + "s:12:8:12:Infinity": 5, + "s:14:8:32:Infinity": 6, + "s:16:27:16:Infinity": 7, + "s:17:12:17:Infinity": 8, + "s:19:24:22:Infinity": 9, + "b:24:12:29:Infinity:26:19:29:Infinity": 0, + "s:24:12:29:Infinity": 10, + "s:25:16:25:Infinity": 11, + "s:27:29:27:Infinity": 12, + "s:28:16:28:Infinity": 13, + "b:28:25:28:41:28:41:28:55": 1, + "s:31:12:31:Infinity": 14, + "s:35:4:52:Infinity": 15, + "f:45:34:45:35": 2, + "s:45:41:45:Infinity": 16, + "b:49:17:49:26:49:26:49:Infinity": 2 + } + } + }, + "/Users/adam/workspace/vibecode/neko/frontend/src/components/Settings.css": { + "path": "/Users/adam/workspace/vibecode/neko/frontend/src/components/Settings.css", + "statementMap": {}, + "fnMap": {}, + "branchMap": {}, + "s": {}, + "f": {}, + "b": {}, + "meta": { "lastBranch": 0, "lastFunction": 0, "lastStatement": 0, "seen": {} } + }, + "/Users/adam/workspace/vibecode/neko/frontend/src/components/Settings.tsx": { + "path": "/Users/adam/workspace/vibecode/neko/frontend/src/components/Settings.tsx", + "statementMap": { + "0": { "start": { "line": 6, "column": 26 }, "end": { "line": 6, "column": null } }, + "1": { "start": { "line": 7, "column": 36 }, "end": { "line": 7, "column": null } }, + "2": { "start": { "line": 8, "column": 30 }, "end": { "line": 8, "column": null } }, + "3": { "start": { "line": 9, "column": 26 }, "end": { "line": 9, "column": null } }, + "4": { "start": { "line": 11, "column": 4 }, "end": { "line": 13, "column": null } }, + "5": { "start": { "line": 12, "column": 8 }, "end": { "line": 12, "column": null } }, + "6": { "start": { "line": 15, "column": 23 }, "end": { "line": 30, "column": null } }, + "7": { "start": { "line": 16, "column": 8 }, "end": { "line": 16, "column": null } }, + "8": { "start": { "line": 17, "column": 8 }, "end": { "line": 29, "column": null } }, + "9": { "start": { "line": 19, "column": 16 }, "end": { "line": 19, "column": null } }, + "10": { "start": { "line": 19, "column": 29 }, "end": { "line": 19, "column": null } }, + "11": { "start": { "line": 20, "column": 16 }, "end": { "line": 20, "column": null } }, + "12": { "start": { "line": 23, "column": 16 }, "end": { "line": 23, "column": null } }, + "13": { "start": { "line": 24, "column": 16 }, "end": { "line": 24, "column": null } }, + "14": { "start": { "line": 27, "column": 16 }, "end": { "line": 27, "column": null } }, + "15": { "start": { "line": 28, "column": 16 }, "end": { "line": 28, "column": null } }, + "16": { "start": { "line": 32, "column": 26 }, "end": { "line": 54, "column": null } }, + "17": { "start": { "line": 33, "column": 8 }, "end": { "line": 33, "column": null } }, + "18": { "start": { "line": 34, "column": 8 }, "end": { "line": 34, "column": null } }, + "19": { "start": { "line": 34, "column": 25 }, "end": { "line": 34, "column": null } }, + "20": { "start": { "line": 36, "column": 8 }, "end": { "line": 36, "column": null } }, + "21": { "start": { "line": 37, "column": 8 }, "end": { "line": 53, "column": null } }, + "22": { "start": { "line": 43, "column": 16 }, "end": { "line": 43, "column": null } }, + "23": { "start": { "line": 43, "column": 29 }, "end": { "line": 43, "column": null } }, + "24": { "start": { "line": 44, "column": 16 }, "end": { "line": 44, "column": null } }, + "25": { "start": { "line": 47, "column": 16 }, "end": { "line": 47, "column": null } }, + "26": { "start": { "line": 48, "column": 16 }, "end": { "line": 48, "column": null } }, + "27": { "start": { "line": 51, "column": 16 }, "end": { "line": 51, "column": null } }, + "28": { "start": { "line": 52, "column": 16 }, "end": { "line": 52, "column": null } }, + "29": { "start": { "line": 56, "column": 29 }, "end": { "line": 72, "column": null } }, + "30": { "start": { "line": 57, "column": 8 }, "end": { "line": 57, "column": null } }, + "31": { "start": { "line": 57, "column": 79 }, "end": { "line": 57, "column": null } }, + "32": { "start": { "line": 59, "column": 8 }, "end": { "line": 59, "column": null } }, + "33": { "start": { "line": 60, "column": 8 }, "end": { "line": 71, "column": null } }, + "34": { "start": { "line": 64, "column": 16 }, "end": { "line": 64, "column": null } }, + "35": { "start": { "line": 64, "column": 29 }, "end": { "line": 64, "column": null } }, + "36": { "start": { "line": 65, "column": 16 }, "end": { "line": 65, "column": null } }, + "37": { "start": { "line": 65, "column": 45 }, "end": { "line": 65, "column": 57 } }, + "38": { "start": { "line": 66, "column": 16 }, "end": { "line": 66, "column": null } }, + "39": { "start": { "line": 69, "column": 16 }, "end": { "line": 69, "column": null } }, + "40": { "start": { "line": 70, "column": 16 }, "end": { "line": 70, "column": null } }, + "41": { "start": { "line": 74, "column": 4 }, "end": { "line": 119, "column": null } }, + "42": { "start": { "line": 84, "column": 41 }, "end": { "line": 84, "column": null } }, + "43": { "start": { "line": 102, "column": 24 }, "end": { "line": 115, "column": null } }, + "44": { "start": { "line": 108, "column": 47 }, "end": { "line": 108, "column": null } } + }, + "fnMap": { + "0": { + "name": "Settings", + "decl": { "start": { "line": 5, "column": 24 }, "end": { "line": 5, "column": 35 } }, + "loc": { "start": { "line": 5, "column": 35 }, "end": { "line": 121, "column": null } }, + "line": 5 + }, + "1": { + "name": "(anonymous_1)", + "decl": { "start": { "line": 11, "column": 14 }, "end": { "line": 11, "column": 20 } }, + "loc": { "start": { "line": 11, "column": 20 }, "end": { "line": 13, "column": 7 } }, + "line": 11 + }, + "2": { + "name": "(anonymous_2)", + "decl": { "start": { "line": 15, "column": 23 }, "end": { "line": 15, "column": 29 } }, + "loc": { "start": { "line": 15, "column": 29 }, "end": { "line": 30, "column": null } }, + "line": 15 + }, + "3": { + "name": "(anonymous_3)", + "decl": { "start": { "line": 18, "column": 18 }, "end": { "line": 18, "column": 19 } }, + "loc": { "start": { "line": 18, "column": 27 }, "end": { "line": 21, "column": 13 } }, + "line": 18 + }, + "4": { + "name": "(anonymous_4)", + "decl": { "start": { "line": 22, "column": 18 }, "end": { "line": 22, "column": 19 } }, + "loc": { "start": { "line": 22, "column": 28 }, "end": { "line": 25, "column": 13 } }, + "line": 22 + }, + "5": { + "name": "(anonymous_5)", + "decl": { "start": { "line": 26, "column": 19 }, "end": { "line": 26, "column": 20 } }, + "loc": { "start": { "line": 26, "column": 28 }, "end": { "line": 29, "column": 13 } }, + "line": 26 + }, + "6": { + "name": "(anonymous_6)", + "decl": { "start": { "line": 32, "column": 26 }, "end": { "line": 32, "column": 27 } }, + "loc": { "start": { "line": 32, "column": 50 }, "end": { "line": 54, "column": null } }, + "line": 32 + }, + "7": { + "name": "(anonymous_7)", + "decl": { "start": { "line": 42, "column": 18 }, "end": { "line": 42, "column": 19 } }, + "loc": { "start": { "line": 42, "column": 27 }, "end": { "line": 45, "column": 13 } }, + "line": 42 + }, + "8": { + "name": "(anonymous_8)", + "decl": { "start": { "line": 46, "column": 18 }, "end": { "line": 46, "column": 24 } }, + "loc": { "start": { "line": 46, "column": 24 }, "end": { "line": 49, "column": 13 } }, + "line": 46 + }, + "9": { + "name": "(anonymous_9)", + "decl": { "start": { "line": 50, "column": 19 }, "end": { "line": 50, "column": 20 } }, + "loc": { "start": { "line": 50, "column": 28 }, "end": { "line": 53, "column": 13 } }, + "line": 50 + }, + "10": { + "name": "(anonymous_10)", + "decl": { "start": { "line": 56, "column": 29 }, "end": { "line": 56, "column": 30 } }, + "loc": { "start": { "line": 56, "column": 45 }, "end": { "line": 72, "column": null } }, + "line": 56 + }, + "11": { + "name": "(anonymous_11)", + "decl": { "start": { "line": 63, "column": 18 }, "end": { "line": 63, "column": 19 } }, + "loc": { "start": { "line": 63, "column": 27 }, "end": { "line": 67, "column": 13 } }, + "line": 63 + }, + "12": { + "name": "(anonymous_12)", + "decl": { "start": { "line": 65, "column": 38 }, "end": { "line": 65, "column": 39 } }, + "loc": { "start": { "line": 65, "column": 45 }, "end": { "line": 65, "column": 57 } }, + "line": 65 + }, + "13": { + "name": "(anonymous_13)", + "decl": { "start": { "line": 68, "column": 19 }, "end": { "line": 68, "column": 20 } }, + "loc": { "start": { "line": 68, "column": 28 }, "end": { "line": 71, "column": 13 } }, + "line": 68 + }, + "14": { + "name": "(anonymous_14)", + "decl": { "start": { "line": 84, "column": 34 }, "end": { "line": 84, "column": 35 } }, + "loc": { "start": { "line": 84, "column": 41 }, "end": { "line": 84, "column": null } }, + "line": 84 + }, + "15": { + "name": "(anonymous_15)", + "decl": { "start": { "line": 101, "column": 31 }, "end": { "line": 101, "column": 32 } }, + "loc": { "start": { "line": 102, "column": 24 }, "end": { "line": 115, "column": null } }, + "line": 102 + }, + "16": { + "name": "(anonymous_16)", + "decl": { "start": { "line": 108, "column": 41 }, "end": { "line": 108, "column": 47 } }, + "loc": { "start": { "line": 108, "column": 47 }, "end": { "line": 108, "column": null } }, + "line": 108 + } + }, + "branchMap": { + "0": { + "loc": { "start": { "line": 19, "column": 16 }, "end": { "line": 19, "column": null } }, + "type": "if", + "locations": [ + { "start": { "line": 19, "column": 16 }, "end": { "line": 19, "column": null } }, + { "start": {}, "end": {} } + ], + "line": 19 + }, + "1": { + "loc": { "start": { "line": 34, "column": 8 }, "end": { "line": 34, "column": null } }, + "type": "if", + "locations": [ + { "start": { "line": 34, "column": 8 }, "end": { "line": 34, "column": null } }, + { "start": {}, "end": {} } + ], + "line": 34 + }, + "2": { + "loc": { "start": { "line": 43, "column": 16 }, "end": { "line": 43, "column": null } }, + "type": "if", + "locations": [ + { "start": { "line": 43, "column": 16 }, "end": { "line": 43, "column": null } }, + { "start": {}, "end": {} } + ], + "line": 43 + }, + "3": { + "loc": { "start": { "line": 57, "column": 8 }, "end": { "line": 57, "column": null } }, + "type": "if", + "locations": [ + { "start": { "line": 57, "column": 8 }, "end": { "line": 57, "column": null } }, + { "start": {}, "end": {} } + ], + "line": 57 + }, + "4": { + "loc": { "start": { "line": 64, "column": 16 }, "end": { "line": 64, "column": null } }, + "type": "if", + "locations": [ + { "start": { "line": 64, "column": 16 }, "end": { "line": 64, "column": null } }, + { "start": {}, "end": {} } + ], + "line": 64 + }, + "5": { + "loc": { "start": { "line": 94, "column": 17 }, "end": { "line": 94, "column": null } }, + "type": "binary-expr", + "locations": [ + { "start": { "line": 94, "column": 17 }, "end": { "line": 94, "column": 26 } }, + { "start": { "line": 94, "column": 26 }, "end": { "line": 94, "column": null } } + ], + "line": 94 + }, + "6": { + "loc": { "start": { "line": 99, "column": 17 }, "end": { "line": 99, "column": null } }, + "type": "binary-expr", + "locations": [ + { "start": { "line": 99, "column": 17 }, "end": { "line": 99, "column": 28 } }, + { "start": { "line": 99, "column": 28 }, "end": { "line": 99, "column": null } } + ], + "line": 99 + }, + "7": { + "loc": { "start": { "line": 104, "column": 62 }, "end": { "line": 104, "column": 89 } }, + "type": "binary-expr", + "locations": [ + { "start": { "line": 104, "column": 62 }, "end": { "line": 104, "column": 76 } }, + { "start": { "line": 104, "column": 76 }, "end": { "line": 104, "column": 89 } } + ], + "line": 104 + } + }, + "s": { + "0": 14, + "1": 14, + "2": 14, + "3": 14, + "4": 14, + "5": 3, + "6": 14, + "7": 4, + "8": 4, + "9": 4, + "10": 0, + "11": 4, + "12": 4, + "13": 4, + "14": 0, + "15": 0, + "16": 14, + "17": 1, + "18": 1, + "19": 0, + "20": 1, + "21": 1, + "22": 1, + "23": 0, + "24": 1, + "25": 1, + "26": 1, + "27": 0, + "28": 0, + "29": 14, + "30": 1, + "31": 0, + "32": 1, + "33": 1, + "34": 1, + "35": 0, + "36": 1, + "37": 1, + "38": 1, + "39": 0, + "40": 0, + "41": 14, + "42": 1, + "43": 5, + "44": 1 + }, + "f": { + "0": 14, + "1": 3, + "2": 4, + "3": 4, + "4": 4, + "5": 0, + "6": 1, + "7": 1, + "8": 1, + "9": 0, + "10": 1, + "11": 1, + "12": 1, + "13": 0, + "14": 1, + "15": 5, + "16": 1 + }, + "b": { + "0": [0, 4], + "1": [0, 1], + "2": [0, 1], + "3": [0, 1], + "4": [0, 1], + "5": [14, 0], + "6": [14, 5], + "7": [5, 0] + }, + "meta": { + "lastBranch": 8, + "lastFunction": 17, + "lastStatement": 45, + "seen": { + "f:5:24:5:35": 0, + "s:6:26:6:Infinity": 0, + "s:7:36:7:Infinity": 1, + "s:8:30:8:Infinity": 2, + "s:9:26:9:Infinity": 3, + "s:11:4:13:Infinity": 4, + "f:11:14:11:20": 1, + "s:12:8:12:Infinity": 5, + "s:15:23:30:Infinity": 6, + "f:15:23:15:29": 2, + "s:16:8:16:Infinity": 7, + "s:17:8:29:Infinity": 8, + "f:18:18:18:19": 3, + "b:19:16:19:Infinity:undefined:undefined:undefined:undefined": 0, + "s:19:16:19:Infinity": 9, + "s:19:29:19:Infinity": 10, + "s:20:16:20:Infinity": 11, + "f:22:18:22:19": 4, + "s:23:16:23:Infinity": 12, + "s:24:16:24:Infinity": 13, + "f:26:19:26:20": 5, + "s:27:16:27:Infinity": 14, + "s:28:16:28:Infinity": 15, + "s:32:26:54:Infinity": 16, + "f:32:26:32:27": 6, + "s:33:8:33:Infinity": 17, + "b:34:8:34:Infinity:undefined:undefined:undefined:undefined": 1, + "s:34:8:34:Infinity": 18, + "s:34:25:34:Infinity": 19, + "s:36:8:36:Infinity": 20, + "s:37:8:53:Infinity": 21, + "f:42:18:42:19": 7, + "b:43:16:43:Infinity:undefined:undefined:undefined:undefined": 2, + "s:43:16:43:Infinity": 22, + "s:43:29:43:Infinity": 23, + "s:44:16:44:Infinity": 24, + "f:46:18:46:24": 8, + "s:47:16:47:Infinity": 25, + "s:48:16:48:Infinity": 26, + "f:50:19:50:20": 9, + "s:51:16:51:Infinity": 27, + "s:52:16:52:Infinity": 28, + "s:56:29:72:Infinity": 29, + "f:56:29:56:30": 10, + "b:57:8:57:Infinity:undefined:undefined:undefined:undefined": 3, + "s:57:8:57:Infinity": 30, + "s:57:79:57:Infinity": 31, + "s:59:8:59:Infinity": 32, + "s:60:8:71:Infinity": 33, + "f:63:18:63:19": 11, + "b:64:16:64:Infinity:undefined:undefined:undefined:undefined": 4, + "s:64:16:64:Infinity": 34, + "s:64:29:64:Infinity": 35, + "s:65:16:65:Infinity": 36, + "f:65:38:65:39": 12, + "s:65:45:65:57": 37, + "s:66:16:66:Infinity": 38, + "f:68:19:68:20": 13, + "s:69:16:69:Infinity": 39, + "s:70:16:70:Infinity": 40, + "s:74:4:119:Infinity": 41, + "f:84:34:84:35": 14, + "s:84:41:84:Infinity": 42, + "b:94:17:94:26:94:26:94:Infinity": 5, + "b:99:17:99:28:99:28:99:Infinity": 6, + "f:101:31:101:32": 15, + "s:102:24:115:Infinity": 43, + "b:104:62:104:76:104:76:104:89": 7, + "f:108:41:108:47": 16, + "s:108:47:108:Infinity": 44 + } + } + } } diff --git a/frontend/coverage/index.html b/frontend/coverage/index.html index 450975d..bd1150d 100644 --- a/frontend/coverage/index.html +++ b/frontend/coverage/index.html @@ -1,131 +1,141 @@ - <!doctype html> <html lang="en"> - -<head> + <head> <title>Code coverage report for All files</title> <meta charset="utf-8" /> <link rel="stylesheet" href="prettify.css" /> <link rel="stylesheet" href="base.css" /> <link rel="shortcut icon" type="image/x-icon" href="favicon.png" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> - <style type='text/css'> - .coverage-summary .sorter { - background-image: url(sort-arrow-sprite.png); - } + <style type="text/css"> + .coverage-summary .sorter { + background-image: url(sort-arrow-sprite.png); + } </style> -</head> - -<body> -<div class='wrapper'> - <div class='pad1'> + </head> + + <body> + <div class="wrapper"> + <div class="pad1"> <h1>All files</h1> - <div class='clearfix'> - - <div class='fl pad1y space-right2'> - <span class="strong">86.17% </span> - <span class="quiet">Statements</span> - <span class='fraction'>212/246</span> - </div> - - - <div class='fl pad1y space-right2'> - <span class="strong">76.76% </span> - <span class="quiet">Branches</span> - <span class='fraction'>109/142</span> - </div> - - - <div class='fl pad1y space-right2'> - <span class="strong">86.3% </span> - <span class="quiet">Functions</span> - <span class='fraction'>63/73</span> - </div> - - - <div class='fl pad1y space-right2'> - <span class="strong">88.39% </span> - <span class="quiet">Lines</span> - <span class='fraction'>198/224</span> - </div> - - + <div class="clearfix"> + <div class="fl pad1y space-right2"> + <span class="strong">86.17% </span> + <span class="quiet">Statements</span> + <span class="fraction">212/246</span> + </div> + + <div class="fl pad1y space-right2"> + <span class="strong">76.76% </span> + <span class="quiet">Branches</span> + <span class="fraction">109/142</span> + </div> + + <div class="fl pad1y space-right2"> + <span class="strong">86.3% </span> + <span class="quiet">Functions</span> + <span class="fraction">63/73</span> + </div> + + <div class="fl pad1y space-right2"> + <span class="strong">88.39% </span> + <span class="quiet">Lines</span> + <span class="fraction">198/224</span> + </div> </div> <p class="quiet"> - Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, + <em>p</em> or <em>k</em> for the previous block. </p> <template id="filterTemplate"> - <div class="quiet"> - Filter: - <input type="search" id="fileSearch"> - </div> + <div class="quiet"> + Filter: + <input type="search" id="fileSearch" /> + </div> </template> - </div> - <div class='status-line high'></div> - <div class="pad1"> -<table class="coverage-summary"> -<thead> -<tr> - <th data-col="file" data-fmt="html" data-html="true" class="file">File</th> - <th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th> - <th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th> - <th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th> - <th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th> - <th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th> - <th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th> - <th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th> - <th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th> - <th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th> -</tr> -</thead> -<tbody><tr> - <td class="file medium" data-value="src"><a href="src/index.html">src</a></td> - <td data-value="78.94" class="pic medium"> - <div class="chart"><div class="cover-fill" style="width: 78%"></div><div class="cover-empty" style="width: 22%"></div></div> - </td> - <td data-value="78.94" class="pct medium">78.94%</td> - <td data-value="19" class="abs medium">15/19</td> - <td data-value="66.66" class="pct medium">66.66%</td> - <td data-value="6" class="abs medium">4/6</td> - <td data-value="77.77" class="pct medium">77.77%</td> - <td data-value="9" class="abs medium">7/9</td> - <td data-value="78.94" class="pct medium">78.94%</td> - <td data-value="19" class="abs medium">15/19</td> - </tr> - -<tr> - <td class="file high" data-value="src/components"><a href="src/components/index.html">src/components</a></td> - <td data-value="86.78" class="pic high"> - <div class="chart"><div class="cover-fill" style="width: 86%"></div><div class="cover-empty" style="width: 14%"></div></div> - </td> - <td data-value="86.78" class="pct high">86.78%</td> - <td data-value="227" class="abs high">197/227</td> - <td data-value="77.2" class="pct medium">77.2%</td> - <td data-value="136" class="abs medium">105/136</td> - <td data-value="87.5" class="pct high">87.5%</td> - <td data-value="64" class="abs high">56/64</td> - <td data-value="89.26" class="pct high">89.26%</td> - <td data-value="205" class="abs high">183/205</td> - </tr> + </div> + <div class="status-line high"></div> + <div class="pad1"> + <table class="coverage-summary"> + <thead> + <tr> + <th data-col="file" data-fmt="html" data-html="true" class="file">File</th> + <th + data-col="pic" + data-type="number" + data-fmt="html" + data-html="true" + class="pic" + ></th> + <th data-col="statements" data-type="number" data-fmt="pct" class="pct"> + Statements + </th> + <th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th> + <th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th> + <th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th> + <th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th> + <th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th> + <th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th> + <th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th> + </tr> + </thead> + <tbody> + <tr> + <td class="file medium" data-value="src"><a href="src/index.html">src</a></td> + <td data-value="78.94" class="pic medium"> + <div class="chart"> + <div class="cover-fill" style="width: 78%"></div> + <div class="cover-empty" style="width: 22%"></div> + </div> + </td> + <td data-value="78.94" class="pct medium">78.94%</td> + <td data-value="19" class="abs medium">15/19</td> + <td data-value="66.66" class="pct medium">66.66%</td> + <td data-value="6" class="abs medium">4/6</td> + <td data-value="77.77" class="pct medium">77.77%</td> + <td data-value="9" class="abs medium">7/9</td> + <td data-value="78.94" class="pct medium">78.94%</td> + <td data-value="19" class="abs medium">15/19</td> + </tr> -</tbody> -</table> -</div> - <div class='push'></div><!-- for sticky footer --> - </div><!-- /wrapper --> - <div class='footer quiet pad2 space-top1 center small'> - Code coverage generated by - <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> - at 2026-02-13T21:49:58.924Z - </div> - <script src="prettify.js"></script> - <script> - window.onload = function () { - prettyPrint(); - }; - </script> - <script src="sorter.js"></script> - <script src="block-navigation.js"></script> - </body> + <tr> + <td class="file high" data-value="src/components"> + <a href="src/components/index.html">src/components</a> + </td> + <td data-value="86.78" class="pic high"> + <div class="chart"> + <div class="cover-fill" style="width: 86%"></div> + <div class="cover-empty" style="width: 14%"></div> + </div> + </td> + <td data-value="86.78" class="pct high">86.78%</td> + <td data-value="227" class="abs high">197/227</td> + <td data-value="77.2" class="pct medium">77.2%</td> + <td data-value="136" class="abs medium">105/136</td> + <td data-value="87.5" class="pct high">87.5%</td> + <td data-value="64" class="abs high">56/64</td> + <td data-value="89.26" class="pct high">89.26%</td> + <td data-value="205" class="abs high">183/205</td> + </tr> + </tbody> + </table> + </div> + <div class="push"></div> + <!-- for sticky footer --> + </div> + <!-- /wrapper --> + <div class="footer quiet pad2 space-top1 center small"> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at 2026-02-13T21:49:58.924Z + </div> + <script src="prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="sorter.js"></script> + <script src="block-navigation.js"></script> + </body> </html> -
\ No newline at end of file diff --git a/frontend/coverage/prettify.css b/frontend/coverage/prettify.css index b317a7c..006492c 100644 --- a/frontend/coverage/prettify.css +++ b/frontend/coverage/prettify.css @@ -1 +1,101 @@ -.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} +.pln { + color: #000; +} +@media screen { + .str { + color: #080; + } + .kwd { + color: #008; + } + .com { + color: #800; + } + .typ { + color: #606; + } + .lit { + color: #066; + } + .pun, + .opn, + .clo { + color: #660; + } + .tag { + color: #008; + } + .atn { + color: #606; + } + .atv { + color: #080; + } + .dec, + .var { + color: #606; + } + .fun { + color: red; + } +} +@media print, projection { + .str { + color: #060; + } + .kwd { + color: #006; + font-weight: bold; + } + .com { + color: #600; + font-style: italic; + } + .typ { + color: #404; + font-weight: bold; + } + .lit { + color: #044; + } + .pun, + .opn, + .clo { + color: #440; + } + .tag { + color: #006; + font-weight: bold; + } + .atn { + color: #404; + } + .atv { + color: #060; + } +} +pre.prettyprint { + padding: 2px; + border: 1px solid #888; +} +ol.linenums { + margin-top: 0; + margin-bottom: 0; +} +li.L0, +li.L1, +li.L2, +li.L3, +li.L5, +li.L6, +li.L7, +li.L8 { + list-style-type: none; +} +li.L1, +li.L3, +li.L5, +li.L7, +li.L9 { + background: #eee; +} diff --git a/frontend/coverage/prettify.js b/frontend/coverage/prettify.js index b322523..a318211 100644 --- a/frontend/coverage/prettify.js +++ b/frontend/coverage/prettify.js @@ -1,2 +1,937 @@ -/* eslint-disable */ -window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V<U;++V){var ae=Z[V];if(ae.ignoreCase){ac=true}else{if(/[a-z]/i.test(ae.source.replace(/\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi,""))){S=true;ac=false;break}}}var Y={b:8,t:9,n:10,v:11,f:12,r:13};function ab(ah){var ag=ah.charCodeAt(0);if(ag!==92){return ag}var af=ah.charAt(1);ag=Y[af];if(ag){return ag}else{if("0"<=af&&af<="7"){return parseInt(ah.substring(1),8)}else{if(af==="u"||af==="x"){return parseInt(ah.substring(2),16)}else{return ah.charCodeAt(1)}}}}function T(af){if(af<32){return(af<16?"\\x0":"\\x")+af.toString(16)}var ag=String.fromCharCode(af);if(ag==="\\"||ag==="-"||ag==="["||ag==="]"){ag="\\"+ag}return ag}function X(am){var aq=am.substring(1,am.length-1).match(new RegExp("\\\\u[0-9A-Fa-f]{4}|\\\\x[0-9A-Fa-f]{2}|\\\\[0-3][0-7]{0,2}|\\\\[0-7]{1,2}|\\\\[\\s\\S]|-|[^-\\\\]","g"));var ak=[];var af=[];var ao=aq[0]==="^";for(var ar=ao?1:0,aj=aq.length;ar<aj;++ar){var ah=aq[ar];if(/\\[bdsw]/i.test(ah)){ak.push(ah)}else{var ag=ab(ah);var al;if(ar+2<aj&&"-"===aq[ar+1]){al=ab(aq[ar+2]);ar+=2}else{al=ag}af.push([ag,al]);if(!(al<65||ag>122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;ar<af.length;++ar){var at=af[ar];if(at[0]<=ap[1]+1){ap[1]=Math.max(ap[1],at[1])}else{ai.push(ap=at)}}var an=["["];if(ao){an.push("^")}an.push.apply(an,ak);for(var ar=0;ar<ai.length;++ar){var at=ai[ar];an.push(T(at[0]));if(at[1]>at[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak<ah;++ak){var ag=aj[ak];if(ag==="("){++am}else{if("\\"===ag.charAt(0)){var af=+ag.substring(1);if(af&&af<=am){an[af]=-1}}}}for(var ak=1;ak<an.length;++ak){if(-1===an[ak]){an[ak]=++ad}}for(var ak=0,am=0;ak<ah;++ak){var ag=aj[ak];if(ag==="("){++am;if(an[am]===undefined){aj[ak]="(?:"}}else{if("\\"===ag.charAt(0)){var af=+ag.substring(1);if(af&&af<=am){aj[ak]="\\"+an[am]}}}}for(var ak=0,am=0;ak<ah;++ak){if("^"===aj[ak]&&"^"!==aj[ak+1]){aj[ak]=""}}if(al.ignoreCase&&S){for(var ak=0;ak<ah;++ak){var ag=aj[ak];var ai=ag.charAt(0);if(ag.length>=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V<U;++V){var ae=Z[V];if(ae.global||ae.multiline){throw new Error(""+ae)}aa.push("(?:"+W(ae)+")")}return new RegExp(aa.join("|"),ac?"gi":"g")}function a(V){var U=/(?:^|\s)nocode(?:\s|$)/;var X=[];var T=0;var Z=[];var W=0;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=document.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Y=S&&"pre"===S.substring(0,3);function aa(ab){switch(ab.nodeType){case 1:if(U.test(ab.className)){return}for(var ae=ab.firstChild;ae;ae=ae.nextSibling){aa(ae)}var ad=ab.nodeName;if("BR"===ad||"LI"===ad){X[W]="\n";Z[W<<1]=T++;Z[(W++<<1)|1]=ab}break;case 3:case 4:var ac=ab.nodeValue;if(ac.length){if(!Y){ac=ac.replace(/[ \t\r\n]+/g," ")}else{ac=ac.replace(/\r\n?/g,"\n")}X[W]=ac;Z[W<<1]=T;T+=ac.length;Z[(W++<<1)|1]=ab}break}}aa(V);return{sourceCode:X.join("").replace(/\n$/,""),spans:Z}}function B(S,U,W,T){if(!U){return}var V={sourceCode:U,basePos:S};W(V);T.push.apply(T,V.decorations)}var v=/\S/;function o(S){var V=undefined;for(var U=S.firstChild;U;U=U.nextSibling){var T=U.nodeType;V=(T===1)?(V?S:U):(T===3)?(v.test(U.nodeValue)?S:V):V}return V===S?undefined:V}function g(U,T){var S={};var V;(function(){var ad=U.concat(T);var ah=[];var ag={};for(var ab=0,Z=ad.length;ab<Z;++ab){var Y=ad[ab];var ac=Y[3];if(ac){for(var ae=ac.length;--ae>=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae<aq;++ae){var ag=an[ae];var ap=aj[ag];var ai=void 0;var am;if(typeof ap==="string"){am=false}else{var aa=S[ag.charAt(0)];if(aa){ai=ag.match(aa[1]);ap=aa[0]}else{for(var ao=0;ao<X;++ao){aa=T[ao];ai=ag.match(aa[1]);if(ai){ap=aa[0];break}}if(!ai){ap=F}}am=ap.length>=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y<W.length;++Y){ae(W[Y])}if(ag===(ag|0)){W[0].setAttribute("value",ag)}var aa=ac.createElement("OL");aa.className="linenums";var X=Math.max(0,((ag-1))|0)||0;for(var Y=0,T=W.length;Y<T;++Y){af=W[Y];af.className="L"+((Y+X)%10);if(!af.firstChild){af.appendChild(ac.createTextNode("\xA0"))}aa.appendChild(af)}V.appendChild(aa)}function D(ac){var aj=/\bMSIE\b/.test(navigator.userAgent);var am=/\n/g;var al=ac.sourceCode;var an=al.length;var V=0;var aa=ac.spans;var T=aa.length;var ah=0;var X=ac.decorations;var Y=X.length;var Z=0;X[Y]=an;var ar,aq;for(aq=ar=0;aq<Y;){if(X[aq]!==X[aq+2]){X[ar++]=X[aq++];X[ar++]=X[aq++]}else{aq+=2}}Y=ar;for(aq=ar=0;aq<Y;){var at=X[aq];var ab=X[aq+1];var W=aq+2;while(W+2<=Y&&X[W+1]===ab){W+=2}X[ar++]=at;X[ar++]=ab;aq=W}Y=X.length=ar;var ae=null;while(ah<T){var af=aa[ah];var S=aa[ah+2]||an;var ag=X[Z];var ap=X[Z+2]||an;var W=Math.min(S,ap);var ak=aa[ah+1];var U;if(ak.nodeType!==1&&(U=al.substring(V,W))){if(aj){U=U.replace(am,"\r")}ak.nodeValue=U;var ai=ak.ownerDocument;var ao=ai.createElement("SPAN");ao.className=X[Z+1];var ad=ak.parentNode;ad.replaceChild(ao,ak);ao.appendChild(ak);if(V<S){aa[ah+1]=ak=ai.createTextNode(al.substring(W,S));ad.insertBefore(ak,ao.nextSibling)}}V=W;if(V>=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*</.test(S)?"default-markup":"default-code"}return t[T]}c(K,["default-code"]);c(g([],[[F,/^[^<?]+/],[E,/^<!\w[^>]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa<ac.length;++aa){for(var Z=0,V=ac[aa].length;Z<V;++Z){T.push(ac[aa][Z])}}ac=null;var W=Date;if(!W.now){W={now:function(){return +(new Date)}}}var X=0;var S;var ab=/\blang(?:uage)?-([\w.]+)(?!\S)/;var ae=/\bprettyprint\b/;function U(){var ag=(window.PR_SHOULD_USE_CONTINUATION?W.now()+250:Infinity);for(;X<T.length&&W.now()<ag;X++){var aj=T[X];var ai=aj.className;if(ai.indexOf("prettyprint")>=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X<T.length){setTimeout(U,250)}else{if(ad){ad()}}}U()}window.prettyPrintOne=y;window.prettyPrint=b;window.PR={createSimpleLexer:g,registerLangHandler:c,sourceDecorator:i,PR_ATTRIB_NAME:P,PR_ATTRIB_VALUE:n,PR_COMMENT:j,PR_DECLARATION:E,PR_KEYWORD:z,PR_LITERAL:G,PR_NOCODE:N,PR_PLAIN:F,PR_PUNCTUATION:L,PR_SOURCE:J,PR_STRING:C,PR_TAG:m,PR_TYPE:O}})();PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_DECLARATION,/^<!\w[^>]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^<script\b[^>]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:<!--|-->)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]); + +window.PR_SHOULD_USE_CONTINUATION = true; +(function () { + var h = ['break,continue,do,else,for,if,return,while']; + var u = [ + h, + 'auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile', + ]; + var p = [ + u, + 'catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof', + ]; + var l = [ + p, + 'alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where', + ]; + var x = [ + p, + 'abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient', + ]; + var R = [ + x, + 'as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var', + ]; + var r = + 'all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes'; + var w = [p, 'debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN']; + var s = + 'caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END'; + var I = [ + h, + 'and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None', + ]; + var f = [ + h, + 'alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END', + ]; + var H = [h, 'case,done,elif,esac,eval,fi,function,in,local,set,then,until']; + var A = [l, R, w, s + I, f, H]; + var e = + /^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/; + var C = 'str'; + var z = 'kwd'; + var j = 'com'; + var O = 'typ'; + var G = 'lit'; + var L = 'pun'; + var F = 'pln'; + var m = 'tag'; + var E = 'dec'; + var J = 'src'; + var P = 'atn'; + var n = 'atv'; + var N = 'nocode'; + var M = + '(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*'; + function k(Z) { + var ad = 0; + var S = false; + var ac = false; + for (var V = 0, U = Z.length; V < U; ++V) { + var ae = Z[V]; + if (ae.ignoreCase) { + ac = true; + } else { + if (/[a-z]/i.test(ae.source.replace(/\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi, ''))) { + S = true; + ac = false; + break; + } + } + } + var Y = { b: 8, t: 9, n: 10, v: 11, f: 12, r: 13 }; + function ab(ah) { + var ag = ah.charCodeAt(0); + if (ag !== 92) { + return ag; + } + var af = ah.charAt(1); + ag = Y[af]; + if (ag) { + return ag; + } else { + if ('0' <= af && af <= '7') { + return parseInt(ah.substring(1), 8); + } else { + if (af === 'u' || af === 'x') { + return parseInt(ah.substring(2), 16); + } else { + return ah.charCodeAt(1); + } + } + } + } + function T(af) { + if (af < 32) { + return (af < 16 ? '\\x0' : '\\x') + af.toString(16); + } + var ag = String.fromCharCode(af); + if (ag === '\\' || ag === '-' || ag === '[' || ag === ']') { + ag = '\\' + ag; + } + return ag; + } + function X(am) { + var aq = am + .substring(1, am.length - 1) + .match( + new RegExp( + '\\\\u[0-9A-Fa-f]{4}|\\\\x[0-9A-Fa-f]{2}|\\\\[0-3][0-7]{0,2}|\\\\[0-7]{1,2}|\\\\[\\s\\S]|-|[^-\\\\]', + 'g' + ) + ); + var ak = []; + var af = []; + var ao = aq[0] === '^'; + for (var ar = ao ? 1 : 0, aj = aq.length; ar < aj; ++ar) { + var ah = aq[ar]; + if (/\\[bdsw]/i.test(ah)) { + ak.push(ah); + } else { + var ag = ab(ah); + var al; + if (ar + 2 < aj && '-' === aq[ar + 1]) { + al = ab(aq[ar + 2]); + ar += 2; + } else { + al = ag; + } + af.push([ag, al]); + if (!(al < 65 || ag > 122)) { + if (!(al < 65 || ag > 90)) { + af.push([Math.max(65, ag) | 32, Math.min(al, 90) | 32]); + } + if (!(al < 97 || ag > 122)) { + af.push([Math.max(97, ag) & ~32, Math.min(al, 122) & ~32]); + } + } + } + } + af.sort(function (av, au) { + return av[0] - au[0] || au[1] - av[1]; + }); + var ai = []; + var ap = [NaN, NaN]; + for (var ar = 0; ar < af.length; ++ar) { + var at = af[ar]; + if (at[0] <= ap[1] + 1) { + ap[1] = Math.max(ap[1], at[1]); + } else { + ai.push((ap = at)); + } + } + var an = ['[']; + if (ao) { + an.push('^'); + } + an.push.apply(an, ak); + for (var ar = 0; ar < ai.length; ++ar) { + var at = ai[ar]; + an.push(T(at[0])); + if (at[1] > at[0]) { + if (at[1] + 1 > at[0]) { + an.push('-'); + } + an.push(T(at[1])); + } + } + an.push(']'); + return an.join(''); + } + function W(al) { + var aj = al.source.match( + new RegExp( + '(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)', + 'g' + ) + ); + var ah = aj.length; + var an = []; + for (var ak = 0, am = 0; ak < ah; ++ak) { + var ag = aj[ak]; + if (ag === '(') { + ++am; + } else { + if ('\\' === ag.charAt(0)) { + var af = +ag.substring(1); + if (af && af <= am) { + an[af] = -1; + } + } + } + } + for (var ak = 1; ak < an.length; ++ak) { + if (-1 === an[ak]) { + an[ak] = ++ad; + } + } + for (var ak = 0, am = 0; ak < ah; ++ak) { + var ag = aj[ak]; + if (ag === '(') { + ++am; + if (an[am] === undefined) { + aj[ak] = '(?:'; + } + } else { + if ('\\' === ag.charAt(0)) { + var af = +ag.substring(1); + if (af && af <= am) { + aj[ak] = '\\' + an[am]; + } + } + } + } + for (var ak = 0, am = 0; ak < ah; ++ak) { + if ('^' === aj[ak] && '^' !== aj[ak + 1]) { + aj[ak] = ''; + } + } + if (al.ignoreCase && S) { + for (var ak = 0; ak < ah; ++ak) { + var ag = aj[ak]; + var ai = ag.charAt(0); + if (ag.length >= 2 && ai === '[') { + aj[ak] = X(ag); + } else { + if (ai !== '\\') { + aj[ak] = ag.replace(/[a-zA-Z]/g, function (ao) { + var ap = ao.charCodeAt(0); + return '[' + String.fromCharCode(ap & ~32, ap | 32) + ']'; + }); + } + } + } + } + return aj.join(''); + } + var aa = []; + for (var V = 0, U = Z.length; V < U; ++V) { + var ae = Z[V]; + if (ae.global || ae.multiline) { + throw new Error('' + ae); + } + aa.push('(?:' + W(ae) + ')'); + } + return new RegExp(aa.join('|'), ac ? 'gi' : 'g'); + } + function a(V) { + var U = /(?:^|\s)nocode(?:\s|$)/; + var X = []; + var T = 0; + var Z = []; + var W = 0; + var S; + if (V.currentStyle) { + S = V.currentStyle.whiteSpace; + } else { + if (window.getComputedStyle) { + S = document.defaultView.getComputedStyle(V, null).getPropertyValue('white-space'); + } + } + var Y = S && 'pre' === S.substring(0, 3); + function aa(ab) { + switch (ab.nodeType) { + case 1: + if (U.test(ab.className)) { + return; + } + for (var ae = ab.firstChild; ae; ae = ae.nextSibling) { + aa(ae); + } + var ad = ab.nodeName; + if ('BR' === ad || 'LI' === ad) { + X[W] = '\n'; + Z[W << 1] = T++; + Z[(W++ << 1) | 1] = ab; + } + break; + case 3: + case 4: + var ac = ab.nodeValue; + if (ac.length) { + if (!Y) { + ac = ac.replace(/[ \t\r\n]+/g, ' '); + } else { + ac = ac.replace(/\r\n?/g, '\n'); + } + X[W] = ac; + Z[W << 1] = T; + T += ac.length; + Z[(W++ << 1) | 1] = ab; + } + break; + } + } + aa(V); + return { sourceCode: X.join('').replace(/\n$/, ''), spans: Z }; + } + function B(S, U, W, T) { + if (!U) { + return; + } + var V = { sourceCode: U, basePos: S }; + W(V); + T.push.apply(T, V.decorations); + } + var v = /\S/; + function o(S) { + var V = undefined; + for (var U = S.firstChild; U; U = U.nextSibling) { + var T = U.nodeType; + V = T === 1 ? (V ? S : U) : T === 3 ? (v.test(U.nodeValue) ? S : V) : V; + } + return V === S ? undefined : V; + } + function g(U, T) { + var S = {}; + var V; + (function () { + var ad = U.concat(T); + var ah = []; + var ag = {}; + for (var ab = 0, Z = ad.length; ab < Z; ++ab) { + var Y = ad[ab]; + var ac = Y[3]; + if (ac) { + for (var ae = ac.length; --ae >= 0; ) { + S[ac.charAt(ae)] = Y; + } + } + var af = Y[1]; + var aa = '' + af; + if (!ag.hasOwnProperty(aa)) { + ah.push(af); + ag[aa] = null; + } + } + ah.push(/[\0-\uffff]/); + V = k(ah); + })(); + var X = T.length; + var W = function (ah) { + var Z = ah.sourceCode, + Y = ah.basePos; + var ad = [Y, F]; + var af = 0; + var an = Z.match(V) || []; + var aj = {}; + for (var ae = 0, aq = an.length; ae < aq; ++ae) { + var ag = an[ae]; + var ap = aj[ag]; + var ai = void 0; + var am; + if (typeof ap === 'string') { + am = false; + } else { + var aa = S[ag.charAt(0)]; + if (aa) { + ai = ag.match(aa[1]); + ap = aa[0]; + } else { + for (var ao = 0; ao < X; ++ao) { + aa = T[ao]; + ai = ag.match(aa[1]); + if (ai) { + ap = aa[0]; + break; + } + } + if (!ai) { + ap = F; + } + } + am = ap.length >= 5 && 'lang-' === ap.substring(0, 5); + if (am && !(ai && typeof ai[1] === 'string')) { + am = false; + ap = J; + } + if (!am) { + aj[ag] = ap; + } + } + var ab = af; + af += ag.length; + if (!am) { + ad.push(Y + ab, ap); + } else { + var al = ai[1]; + var ak = ag.indexOf(al); + var ac = ak + al.length; + if (ai[2]) { + ac = ag.length - ai[2].length; + ak = ac - al.length; + } + var ar = ap.substring(5); + B(Y + ab, ag.substring(0, ak), W, ad); + B(Y + ab + ak, al, q(ar, al), ad); + B(Y + ab + ac, ag.substring(ac), W, ad); + } + } + ah.decorations = ad; + }; + return W; + } + function i(T) { + var W = [], + S = []; + if (T.tripleQuotedStrings) { + W.push([ + C, + /^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/, + null, + '\'"', + ]); + } else { + if (T.multiLineStrings) { + W.push([ + C, + /^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/, + null, + '\'"`', + ]); + } else { + W.push([ + C, + /^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/, + null, + '"\'', + ]); + } + } + if (T.verbatimStrings) { + S.push([C, /^@\"(?:[^\"]|\"\")*(?:\"|$)/, null]); + } + var Y = T.hashComments; + if (Y) { + if (T.cStyleComments) { + if (Y > 1) { + W.push([j, /^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/, null, '#']); + } else { + W.push([ + j, + /^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/, + null, + '#', + ]); + } + S.push([C, /^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/, null]); + } else { + W.push([j, /^#[^\r\n]*/, null, '#']); + } + } + if (T.cStyleComments) { + S.push([j, /^\/\/[^\r\n]*/, null]); + S.push([j, /^\/\*[\s\S]*?(?:\*\/|$)/, null]); + } + if (T.regexLiterals) { + var X = + '/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/'; + S.push(['lang-regex', new RegExp('^' + M + '(' + X + ')')]); + } + var V = T.types; + if (V) { + S.push([O, V]); + } + var U = ('' + T.keywords).replace(/^ | $/g, ''); + if (U.length) { + S.push([z, new RegExp('^(?:' + U.replace(/[\s,]+/g, '|') + ')\\b'), null]); + } + W.push([F, /^\s+/, null, ' \r\n\t\xA0']); + S.push( + [G, /^@[a-z_$][a-z_$@0-9]*/i, null], + [O, /^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/, null], + [F, /^[a-z_$][a-z_$@0-9]*/i, null], + [ + G, + new RegExp( + '^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*', + 'i' + ), + null, + '0123456789', + ], + [F, /^\\[\s\S]?/, null], + [L, /^.[^\s\w\.$@\'\"\`\/\#\\]*/, null] + ); + return g(W, S); + } + var K = i({ + keywords: A, + hashComments: true, + cStyleComments: true, + multiLineStrings: true, + regexLiterals: true, + }); + function Q(V, ag) { + var U = /(?:^|\s)nocode(?:\s|$)/; + var ab = /\r\n?|\n/; + var ac = V.ownerDocument; + var S; + if (V.currentStyle) { + S = V.currentStyle.whiteSpace; + } else { + if (window.getComputedStyle) { + S = ac.defaultView.getComputedStyle(V, null).getPropertyValue('white-space'); + } + } + var Z = S && 'pre' === S.substring(0, 3); + var af = ac.createElement('LI'); + while (V.firstChild) { + af.appendChild(V.firstChild); + } + var W = [af]; + function ae(al) { + switch (al.nodeType) { + case 1: + if (U.test(al.className)) { + break; + } + if ('BR' === al.nodeName) { + ad(al); + if (al.parentNode) { + al.parentNode.removeChild(al); + } + } else { + for (var an = al.firstChild; an; an = an.nextSibling) { + ae(an); + } + } + break; + case 3: + case 4: + if (Z) { + var am = al.nodeValue; + var aj = am.match(ab); + if (aj) { + var ai = am.substring(0, aj.index); + al.nodeValue = ai; + var ah = am.substring(aj.index + aj[0].length); + if (ah) { + var ak = al.parentNode; + ak.insertBefore(ac.createTextNode(ah), al.nextSibling); + } + ad(al); + if (!ai) { + al.parentNode.removeChild(al); + } + } + } + break; + } + } + function ad(ak) { + while (!ak.nextSibling) { + ak = ak.parentNode; + if (!ak) { + return; + } + } + function ai(al, ar) { + var aq = ar ? al.cloneNode(false) : al; + var ao = al.parentNode; + if (ao) { + var ap = ai(ao, 1); + var an = al.nextSibling; + ap.appendChild(aq); + for (var am = an; am; am = an) { + an = am.nextSibling; + ap.appendChild(am); + } + } + return aq; + } + var ah = ai(ak.nextSibling, 0); + for (var aj; (aj = ah.parentNode) && aj.nodeType === 1; ) { + ah = aj; + } + W.push(ah); + } + for (var Y = 0; Y < W.length; ++Y) { + ae(W[Y]); + } + if (ag === (ag | 0)) { + W[0].setAttribute('value', ag); + } + var aa = ac.createElement('OL'); + aa.className = 'linenums'; + var X = Math.max(0, (ag - 1) | 0) || 0; + for (var Y = 0, T = W.length; Y < T; ++Y) { + af = W[Y]; + af.className = 'L' + ((Y + X) % 10); + if (!af.firstChild) { + af.appendChild(ac.createTextNode('\xA0')); + } + aa.appendChild(af); + } + V.appendChild(aa); + } + function D(ac) { + var aj = /\bMSIE\b/.test(navigator.userAgent); + var am = /\n/g; + var al = ac.sourceCode; + var an = al.length; + var V = 0; + var aa = ac.spans; + var T = aa.length; + var ah = 0; + var X = ac.decorations; + var Y = X.length; + var Z = 0; + X[Y] = an; + var ar, aq; + for (aq = ar = 0; aq < Y; ) { + if (X[aq] !== X[aq + 2]) { + X[ar++] = X[aq++]; + X[ar++] = X[aq++]; + } else { + aq += 2; + } + } + Y = ar; + for (aq = ar = 0; aq < Y; ) { + var at = X[aq]; + var ab = X[aq + 1]; + var W = aq + 2; + while (W + 2 <= Y && X[W + 1] === ab) { + W += 2; + } + X[ar++] = at; + X[ar++] = ab; + aq = W; + } + Y = X.length = ar; + var ae = null; + while (ah < T) { + var af = aa[ah]; + var S = aa[ah + 2] || an; + var ag = X[Z]; + var ap = X[Z + 2] || an; + var W = Math.min(S, ap); + var ak = aa[ah + 1]; + var U; + if (ak.nodeType !== 1 && (U = al.substring(V, W))) { + if (aj) { + U = U.replace(am, '\r'); + } + ak.nodeValue = U; + var ai = ak.ownerDocument; + var ao = ai.createElement('SPAN'); + ao.className = X[Z + 1]; + var ad = ak.parentNode; + ad.replaceChild(ao, ak); + ao.appendChild(ak); + if (V < S) { + aa[ah + 1] = ak = ai.createTextNode(al.substring(W, S)); + ad.insertBefore(ak, ao.nextSibling); + } + } + V = W; + if (V >= S) { + ah += 2; + } + if (V >= ap) { + Z += 2; + } + } + } + var t = {}; + function c(U, V) { + for (var S = V.length; --S >= 0; ) { + var T = V[S]; + if (!t.hasOwnProperty(T)) { + t[T] = U; + } else { + if (window.console) { + console.warn('cannot override language handler %s', T); + } + } + } + } + function q(T, S) { + if (!(T && t.hasOwnProperty(T))) { + T = /^\s*</.test(S) ? 'default-markup' : 'default-code'; + } + return t[T]; + } + c(K, ['default-code']); + c( + g( + [], + [ + [F, /^[^<?]+/], + [E, /^<!\w[^>]*(?:>|$)/], + [j, /^<\!--[\s\S]*?(?:-\->|$)/], + ['lang-', /^<\?([\s\S]+?)(?:\?>|$)/], + ['lang-', /^<%([\s\S]+?)(?:%>|$)/], + [L, /^(?:<[%?]|[%?]>)/], + ['lang-', /^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i], + ['lang-js', /^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i], + ['lang-css', /^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i], + ['lang-in.tag', /^(<\/?[a-z][^<>]*>)/i], + ] + ), + ['default-markup', 'htm', 'html', 'mxml', 'xhtml', 'xml', 'xsl'] + ); + c( + g( + [ + [F, /^[\s]+/, null, ' \t\r\n'], + [n, /^(?:\"[^\"]*\"?|\'[^\']*\'?)/, null, '"\''], + ], + [ + [m, /^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i], + [P, /^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i], + ['lang-uq.val', /^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/], + [L, /^[=<>\/]+/], + ['lang-js', /^on\w+\s*=\s*\"([^\"]+)\"/i], + ['lang-js', /^on\w+\s*=\s*\'([^\']+)\'/i], + ['lang-js', /^on\w+\s*=\s*([^\"\'>\s]+)/i], + ['lang-css', /^style\s*=\s*\"([^\"]+)\"/i], + ['lang-css', /^style\s*=\s*\'([^\']+)\'/i], + ['lang-css', /^style\s*=\s*([^\"\'>\s]+)/i], + ] + ), + ['in.tag'] + ); + c(g([], [[n, /^[\s\S]+/]]), ['uq.val']); + c(i({ keywords: l, hashComments: true, cStyleComments: true, types: e }), [ + 'c', + 'cc', + 'cpp', + 'cxx', + 'cyc', + 'm', + ]); + c(i({ keywords: 'null,true,false' }), ['json']); + c(i({ keywords: R, hashComments: true, cStyleComments: true, verbatimStrings: true, types: e }), [ + 'cs', + ]); + c(i({ keywords: x, cStyleComments: true }), ['java']); + c(i({ keywords: H, hashComments: true, multiLineStrings: true }), ['bsh', 'csh', 'sh']); + c(i({ keywords: I, hashComments: true, multiLineStrings: true, tripleQuotedStrings: true }), [ + 'cv', + 'py', + ]); + c(i({ keywords: s, hashComments: true, multiLineStrings: true, regexLiterals: true }), [ + 'perl', + 'pl', + 'pm', + ]); + c(i({ keywords: f, hashComments: true, multiLineStrings: true, regexLiterals: true }), ['rb']); + c(i({ keywords: w, cStyleComments: true, regexLiterals: true }), ['js']); + c( + i({ + keywords: r, + hashComments: 3, + cStyleComments: true, + multilineStrings: true, + tripleQuotedStrings: true, + regexLiterals: true, + }), + ['coffee'] + ); + c(g([], [[C, /^[\s\S]+/]]), ['regex']); + function d(V) { + var U = V.langExtension; + try { + var S = a(V.sourceNode); + var T = S.sourceCode; + V.sourceCode = T; + V.spans = S.spans; + V.basePos = 0; + q(U, T)(V); + D(V); + } catch (W) { + if ('console' in window) { + console.log(W && W.stack ? W.stack : W); + } + } + } + function y(W, V, U) { + var S = document.createElement('PRE'); + S.innerHTML = W; + if (U) { + Q(S, U); + } + var T = { langExtension: V, numberLines: U, sourceNode: S }; + d(T); + return S.innerHTML; + } + function b(ad) { + function Y(af) { + return document.getElementsByTagName(af); + } + var ac = [Y('pre'), Y('code'), Y('xmp')]; + var T = []; + for (var aa = 0; aa < ac.length; ++aa) { + for (var Z = 0, V = ac[aa].length; Z < V; ++Z) { + T.push(ac[aa][Z]); + } + } + ac = null; + var W = Date; + if (!W.now) { + W = { + now: function () { + return +new Date(); + }, + }; + } + var X = 0; + var S; + var ab = /\blang(?:uage)?-([\w.]+)(?!\S)/; + var ae = /\bprettyprint\b/; + function U() { + var ag = window.PR_SHOULD_USE_CONTINUATION ? W.now() + 250 : Infinity; + for (; X < T.length && W.now() < ag; X++) { + var aj = T[X]; + var ai = aj.className; + if (ai.indexOf('prettyprint') >= 0) { + var ah = ai.match(ab); + var am; + if (!ah && (am = o(aj)) && 'CODE' === am.tagName) { + ah = am.className.match(ab); + } + if (ah) { + ah = ah[1]; + } + var al = false; + for (var ak = aj.parentNode; ak; ak = ak.parentNode) { + if ( + (ak.tagName === 'pre' || ak.tagName === 'code' || ak.tagName === 'xmp') && + ak.className && + ak.className.indexOf('prettyprint') >= 0 + ) { + al = true; + break; + } + } + if (!al) { + var af = aj.className.match(/\blinenums\b(?::(\d+))?/); + af = af ? (af[1] && af[1].length ? +af[1] : true) : false; + if (af) { + Q(aj, af); + } + S = { langExtension: ah, sourceNode: aj, numberLines: af }; + d(S); + } + } + } + if (X < T.length) { + setTimeout(U, 250); + } else { + if (ad) { + ad(); + } + } + } + U(); + } + window.prettyPrintOne = y; + window.prettyPrint = b; + window.PR = { + createSimpleLexer: g, + registerLangHandler: c, + sourceDecorator: i, + PR_ATTRIB_NAME: P, + PR_ATTRIB_VALUE: n, + PR_COMMENT: j, + PR_DECLARATION: E, + PR_KEYWORD: z, + PR_LITERAL: G, + PR_NOCODE: N, + PR_PLAIN: F, + PR_PUNCTUATION: L, + PR_SOURCE: J, + PR_STRING: C, + PR_TAG: m, + PR_TYPE: O, + }; +})(); +PR.registerLangHandler( + PR.createSimpleLexer( + [], + [ + [PR.PR_DECLARATION, /^<!\w[^>]*(?:>|$)/], + [PR.PR_COMMENT, /^<\!--[\s\S]*?(?:-\->|$)/], + [PR.PR_PUNCTUATION, /^(?:<[%?]|[%?]>)/], + ['lang-', /^<\?([\s\S]+?)(?:\?>|$)/], + ['lang-', /^<%([\s\S]+?)(?:%>|$)/], + ['lang-', /^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i], + [ + 'lang-handlebars', + /^<script\b[^>]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i, + ], + ['lang-js', /^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i], + ['lang-css', /^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i], + ['lang-in.tag', /^(<\/?[a-z][^<>]*>)/i], + [PR.PR_DECLARATION, /^{{[#^>/]?\s*[\w.][^}]*}}/], + [PR.PR_DECLARATION, /^{{&?\s*[\w.][^}]*}}/], + [PR.PR_DECLARATION, /^{{{>?\s*[\w.][^}]*}}}/], + [PR.PR_COMMENT, /^{{![^}]*}}/], + ] + ), + ['handlebars', 'hbs'] +); +PR.registerLangHandler( + PR.createSimpleLexer( + [[PR.PR_PLAIN, /^[ \t\r\n\f]+/, null, ' \t\r\n\f']], + [ + [PR.PR_STRING, /^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/, null], + [PR.PR_STRING, /^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/, null], + ['lang-css-str', /^url\(([^\)\"\']*)\)/i], + [ + PR.PR_KEYWORD, + /^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i, + null, + ], + ['lang-css-kw', /^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i], + [PR.PR_COMMENT, /^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//], + [PR.PR_COMMENT, /^(?:<!--|-->)/], + [PR.PR_LITERAL, /^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i], + [PR.PR_LITERAL, /^#(?:[0-9a-f]{3}){1,2}/i], + [PR.PR_PLAIN, /^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i], + [PR.PR_PUNCTUATION, /^[^\s\w\'\"]+/], + ] + ), + ['css'] +); +PR.registerLangHandler( + PR.createSimpleLexer( + [], + [[PR.PR_KEYWORD, /^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]] + ), + ['css-kw'] +); +PR.registerLangHandler(PR.createSimpleLexer([], [[PR.PR_STRING, /^[^\)\"\']+/]]), ['css-str']); diff --git a/frontend/coverage/sorter.js b/frontend/coverage/sorter.js index 4ed70ae..c3fbef4 100644 --- a/frontend/coverage/sorter.js +++ b/frontend/coverage/sorter.js @@ -1,210 +1,205 @@ -/* eslint-disable */ -var addSorting = (function() { - 'use strict'; - var cols, - currentSort = { - index: 0, - desc: false - }; + +var addSorting = (function () { + 'use strict'; + var cols, + currentSort = { + index: 0, + desc: false, + }; - // returns the summary table element - function getTable() { - return document.querySelector('.coverage-summary'); - } - // returns the thead element of the summary table - function getTableHeader() { - return getTable().querySelector('thead tr'); - } - // returns the tbody element of the summary table - function getTableBody() { - return getTable().querySelector('tbody'); - } - // returns the th element for nth column - function getNthColumn(n) { - return getTableHeader().querySelectorAll('th')[n]; + // returns the summary table element + function getTable() { + return document.querySelector('.coverage-summary'); + } + // returns the thead element of the summary table + function getTableHeader() { + return getTable().querySelector('thead tr'); + } + // returns the tbody element of the summary table + function getTableBody() { + return getTable().querySelector('tbody'); + } + // returns the th element for nth column + function getNthColumn(n) { + return getTableHeader().querySelectorAll('th')[n]; + } + + function onFilterInput() { + const searchValue = document.getElementById('fileSearch').value; + const rows = document.getElementsByTagName('tbody')[0].children; + + // Try to create a RegExp from the searchValue. If it fails (invalid regex), + // it will be treated as a plain text search + let searchRegex; + try { + searchRegex = new RegExp(searchValue, 'i'); // 'i' for case-insensitive + } catch (error) { + searchRegex = null; } - function onFilterInput() { - const searchValue = document.getElementById('fileSearch').value; - const rows = document.getElementsByTagName('tbody')[0].children; - - // Try to create a RegExp from the searchValue. If it fails (invalid regex), - // it will be treated as a plain text search - let searchRegex; - try { - searchRegex = new RegExp(searchValue, 'i'); // 'i' for case-insensitive - } catch (error) { - searchRegex = null; - } + for (let i = 0; i < rows.length; i++) { + const row = rows[i]; + let isMatch = false; - for (let i = 0; i < rows.length; i++) { - const row = rows[i]; - let isMatch = false; - - if (searchRegex) { - // If a valid regex was created, use it for matching - isMatch = searchRegex.test(row.textContent); - } else { - // Otherwise, fall back to the original plain text search - isMatch = row.textContent - .toLowerCase() - .includes(searchValue.toLowerCase()); - } - - row.style.display = isMatch ? '' : 'none'; - } - } + if (searchRegex) { + // If a valid regex was created, use it for matching + isMatch = searchRegex.test(row.textContent); + } else { + // Otherwise, fall back to the original plain text search + isMatch = row.textContent.toLowerCase().includes(searchValue.toLowerCase()); + } - // loads the search box - function addSearchBox() { - var template = document.getElementById('filterTemplate'); - var templateClone = template.content.cloneNode(true); - templateClone.getElementById('fileSearch').oninput = onFilterInput; - template.parentElement.appendChild(templateClone); + row.style.display = isMatch ? '' : 'none'; } - - // loads all columns - function loadColumns() { - var colNodes = getTableHeader().querySelectorAll('th'), - colNode, - cols = [], - col, - i; - - for (i = 0; i < colNodes.length; i += 1) { - colNode = colNodes[i]; - col = { - key: colNode.getAttribute('data-col'), - sortable: !colNode.getAttribute('data-nosort'), - type: colNode.getAttribute('data-type') || 'string' - }; - cols.push(col); - if (col.sortable) { - col.defaultDescSort = col.type === 'number'; - colNode.innerHTML = - colNode.innerHTML + '<span class="sorter"></span>'; - } - } - return cols; + } + + // loads the search box + function addSearchBox() { + var template = document.getElementById('filterTemplate'); + var templateClone = template.content.cloneNode(true); + templateClone.getElementById('fileSearch').oninput = onFilterInput; + template.parentElement.appendChild(templateClone); + } + + // loads all columns + function loadColumns() { + var colNodes = getTableHeader().querySelectorAll('th'), + colNode, + cols = [], + col, + i; + + for (i = 0; i < colNodes.length; i += 1) { + colNode = colNodes[i]; + col = { + key: colNode.getAttribute('data-col'), + sortable: !colNode.getAttribute('data-nosort'), + type: colNode.getAttribute('data-type') || 'string', + }; + cols.push(col); + if (col.sortable) { + col.defaultDescSort = col.type === 'number'; + colNode.innerHTML = colNode.innerHTML + '<span class="sorter"></span>'; + } } - // attaches a data attribute to every tr element with an object - // of data values keyed by column name - function loadRowData(tableRow) { - var tableCols = tableRow.querySelectorAll('td'), - colNode, - col, - data = {}, - i, - val; - for (i = 0; i < tableCols.length; i += 1) { - colNode = tableCols[i]; - col = cols[i]; - val = colNode.getAttribute('data-value'); - if (col.type === 'number') { - val = Number(val); - } - data[col.key] = val; - } - return data; + return cols; + } + // attaches a data attribute to every tr element with an object + // of data values keyed by column name + function loadRowData(tableRow) { + var tableCols = tableRow.querySelectorAll('td'), + colNode, + col, + data = {}, + i, + val; + for (i = 0; i < tableCols.length; i += 1) { + colNode = tableCols[i]; + col = cols[i]; + val = colNode.getAttribute('data-value'); + if (col.type === 'number') { + val = Number(val); + } + data[col.key] = val; } - // loads all row data - function loadData() { - var rows = getTableBody().querySelectorAll('tr'), - i; - - for (i = 0; i < rows.length; i += 1) { - rows[i].data = loadRowData(rows[i]); - } + return data; + } + // loads all row data + function loadData() { + var rows = getTableBody().querySelectorAll('tr'), + i; + + for (i = 0; i < rows.length; i += 1) { + rows[i].data = loadRowData(rows[i]); } - // sorts the table using the data for the ith column - function sortByIndex(index, desc) { - var key = cols[index].key, - sorter = function(a, b) { - a = a.data[key]; - b = b.data[key]; - return a < b ? -1 : a > b ? 1 : 0; - }, - finalSorter = sorter, - tableBody = document.querySelector('.coverage-summary tbody'), - rowNodes = tableBody.querySelectorAll('tr'), - rows = [], - i; - - if (desc) { - finalSorter = function(a, b) { - return -1 * sorter(a, b); - }; - } - - for (i = 0; i < rowNodes.length; i += 1) { - rows.push(rowNodes[i]); - tableBody.removeChild(rowNodes[i]); - } - - rows.sort(finalSorter); - - for (i = 0; i < rows.length; i += 1) { - tableBody.appendChild(rows[i]); - } + } + // sorts the table using the data for the ith column + function sortByIndex(index, desc) { + var key = cols[index].key, + sorter = function (a, b) { + a = a.data[key]; + b = b.data[key]; + return a < b ? -1 : a > b ? 1 : 0; + }, + finalSorter = sorter, + tableBody = document.querySelector('.coverage-summary tbody'), + rowNodes = tableBody.querySelectorAll('tr'), + rows = [], + i; + + if (desc) { + finalSorter = function (a, b) { + return -1 * sorter(a, b); + }; } - // removes sort indicators for current column being sorted - function removeSortIndicators() { - var col = getNthColumn(currentSort.index), - cls = col.className; - cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, ''); - col.className = cls; + for (i = 0; i < rowNodes.length; i += 1) { + rows.push(rowNodes[i]); + tableBody.removeChild(rowNodes[i]); } - // adds sort indicators for current column being sorted - function addSortIndicators() { - getNthColumn(currentSort.index).className += currentSort.desc - ? ' sorted-desc' - : ' sorted'; + + rows.sort(finalSorter); + + for (i = 0; i < rows.length; i += 1) { + tableBody.appendChild(rows[i]); } - // adds event listeners for all sorter widgets - function enableUI() { - var i, - el, - ithSorter = function ithSorter(i) { - var col = cols[i]; - - return function() { - var desc = col.defaultDescSort; - - if (currentSort.index === i) { - desc = !currentSort.desc; - } - sortByIndex(i, desc); - removeSortIndicators(); - currentSort.index = i; - currentSort.desc = desc; - addSortIndicators(); - }; - }; - for (i = 0; i < cols.length; i += 1) { - if (cols[i].sortable) { - // add the click event handler on the th so users - // dont have to click on those tiny arrows - el = getNthColumn(i).querySelector('.sorter').parentElement; - if (el.addEventListener) { - el.addEventListener('click', ithSorter(i)); - } else { - el.attachEvent('onclick', ithSorter(i)); - } - } + } + // removes sort indicators for current column being sorted + function removeSortIndicators() { + var col = getNthColumn(currentSort.index), + cls = col.className; + + cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, ''); + col.className = cls; + } + // adds sort indicators for current column being sorted + function addSortIndicators() { + getNthColumn(currentSort.index).className += currentSort.desc ? ' sorted-desc' : ' sorted'; + } + // adds event listeners for all sorter widgets + function enableUI() { + var i, + el, + ithSorter = function ithSorter(i) { + var col = cols[i]; + + return function () { + var desc = col.defaultDescSort; + + if (currentSort.index === i) { + desc = !currentSort.desc; + } + sortByIndex(i, desc); + removeSortIndicators(); + currentSort.index = i; + currentSort.desc = desc; + addSortIndicators(); + }; + }; + for (i = 0; i < cols.length; i += 1) { + if (cols[i].sortable) { + // add the click event handler on the th so users + // dont have to click on those tiny arrows + el = getNthColumn(i).querySelector('.sorter').parentElement; + if (el.addEventListener) { + el.addEventListener('click', ithSorter(i)); + } else { + el.attachEvent('onclick', ithSorter(i)); } + } } - // adds sorting functionality to the UI - return function() { - if (!getTable()) { - return; - } - cols = loadColumns(); - loadData(); - addSearchBox(); - addSortIndicators(); - enableUI(); - }; + } + // adds sorting functionality to the UI + return function () { + if (!getTable()) { + return; + } + cols = loadColumns(); + loadData(); + addSearchBox(); + addSortIndicators(); + enableUI(); + }; })(); window.addEventListener('load', addSorting); diff --git a/frontend/coverage/src/App.css.html b/frontend/coverage/src/App.css.html index 213109e..a5aa753 100644 --- a/frontend/coverage/src/App.css.html +++ b/frontend/coverage/src/App.css.html @@ -1,68 +1,61 @@ - <!doctype html> <html lang="en"> - -<head> + <head> <title>Code coverage report for src/App.css</title> <meta charset="utf-8" /> <link rel="stylesheet" href="../prettify.css" /> <link rel="stylesheet" href="../base.css" /> <link rel="shortcut icon" type="image/x-icon" href="../favicon.png" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> - <style type='text/css'> - .coverage-summary .sorter { - background-image: url(../sort-arrow-sprite.png); - } + <style type="text/css"> + .coverage-summary .sorter { + background-image: url(../sort-arrow-sprite.png); + } </style> -</head> - -<body> -<div class='wrapper'> - <div class='pad1'> + </head> + + <body> + <div class="wrapper"> + <div class="pad1"> <h1><a href="../index.html">All files</a> / <a href="index.html">src</a> App.css</h1> - <div class='clearfix'> - - <div class='fl pad1y space-right2'> - <span class="strong">0% </span> - <span class="quiet">Statements</span> - <span class='fraction'>0/0</span> - </div> - - - <div class='fl pad1y space-right2'> - <span class="strong">0% </span> - <span class="quiet">Branches</span> - <span class='fraction'>0/0</span> - </div> - - - <div class='fl pad1y space-right2'> - <span class="strong">0% </span> - <span class="quiet">Functions</span> - <span class='fraction'>0/0</span> - </div> - - - <div class='fl pad1y space-right2'> - <span class="strong">0% </span> - <span class="quiet">Lines</span> - <span class='fraction'>0/0</span> - </div> - - + <div class="clearfix"> + <div class="fl pad1y space-right2"> + <span class="strong">0% </span> + <span class="quiet">Statements</span> + <span class="fraction">0/0</span> + </div> + + <div class="fl pad1y space-right2"> + <span class="strong">0% </span> + <span class="quiet">Branches</span> + <span class="fraction">0/0</span> + </div> + + <div class="fl pad1y space-right2"> + <span class="strong">0% </span> + <span class="quiet">Functions</span> + <span class="fraction">0/0</span> + </div> + + <div class="fl pad1y space-right2"> + <span class="strong">0% </span> + <span class="quiet">Lines</span> + <span class="fraction">0/0</span> + </div> </div> <p class="quiet"> - Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, + <em>p</em> or <em>k</em> for the previous block. </p> <template id="filterTemplate"> - <div class="quiet"> - Filter: - <input type="search" id="fileSearch"> - </div> + <div class="quiet"> + Filter: + <input type="search" id="fileSearch" /> + </div> </template> - </div> - <div class='status-line low'></div> - <pre><table class="coverage"> + </div> + <div class="status-line low"></div> + <pre><table class="coverage"> <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> <a name='L2'></a><a href='#L2'>2</a> <a name='L3'></a><a href='#L3'>3</a> @@ -374,21 +367,22 @@ body { border-color: rgba(255, 255, 255, 0.5); }</pre></td></tr></table></pre> - <div class='push'></div><!-- for sticky footer --> - </div><!-- /wrapper --> - <div class='footer quiet pad2 space-top1 center small'> - Code coverage generated by - <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> - at 2026-02-13T21:49:58.924Z - </div> - <script src="../prettify.js"></script> - <script> - window.onload = function () { - prettyPrint(); - }; - </script> - <script src="../sorter.js"></script> - <script src="../block-navigation.js"></script> - </body> + <div class="push"></div> + <!-- for sticky footer --> + </div> + <!-- /wrapper --> + <div class="footer quiet pad2 space-top1 center small"> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at 2026-02-13T21:49:58.924Z + </div> + <script src="../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../sorter.js"></script> + <script src="../block-navigation.js"></script> + </body> </html> -
\ No newline at end of file diff --git a/frontend/coverage/src/App.tsx.html b/frontend/coverage/src/App.tsx.html index 0d5195d..ed02366 100644 --- a/frontend/coverage/src/App.tsx.html +++ b/frontend/coverage/src/App.tsx.html @@ -1,68 +1,61 @@ - <!doctype html> <html lang="en"> - -<head> + <head> <title>Code coverage report for src/App.tsx</title> <meta charset="utf-8" /> <link rel="stylesheet" href="../prettify.css" /> <link rel="stylesheet" href="../base.css" /> <link rel="shortcut icon" type="image/x-icon" href="../favicon.png" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> - <style type='text/css'> - .coverage-summary .sorter { - background-image: url(../sort-arrow-sprite.png); - } + <style type="text/css"> + .coverage-summary .sorter { + background-image: url(../sort-arrow-sprite.png); + } </style> -</head> - -<body> -<div class='wrapper'> - <div class='pad1'> + </head> + + <body> + <div class="wrapper"> + <div class="pad1"> <h1><a href="../index.html">All files</a> / <a href="index.html">src</a> App.tsx</h1> - <div class='clearfix'> - - <div class='fl pad1y space-right2'> - <span class="strong">78.94% </span> - <span class="quiet">Statements</span> - <span class='fraction'>15/19</span> - </div> - - - <div class='fl pad1y space-right2'> - <span class="strong">66.66% </span> - <span class="quiet">Branches</span> - <span class='fraction'>4/6</span> - </div> - - - <div class='fl pad1y space-right2'> - <span class="strong">77.77% </span> - <span class="quiet">Functions</span> - <span class='fraction'>7/9</span> - </div> - - - <div class='fl pad1y space-right2'> - <span class="strong">78.94% </span> - <span class="quiet">Lines</span> - <span class='fraction'>15/19</span> - </div> - - + <div class="clearfix"> + <div class="fl pad1y space-right2"> + <span class="strong">78.94% </span> + <span class="quiet">Statements</span> + <span class="fraction">15/19</span> + </div> + + <div class="fl pad1y space-right2"> + <span class="strong">66.66% </span> + <span class="quiet">Branches</span> + <span class="fraction">4/6</span> + </div> + + <div class="fl pad1y space-right2"> + <span class="strong">77.77% </span> + <span class="quiet">Functions</span> + <span class="fraction">7/9</span> + </div> + + <div class="fl pad1y space-right2"> + <span class="strong">78.94% </span> + <span class="quiet">Lines</span> + <span class="fraction">15/19</span> + </div> </div> <p class="quiet"> - Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, + <em>p</em> or <em>k</em> for the previous block. </p> <template id="filterTemplate"> - <div class="quiet"> - Filter: - <input type="search" id="fileSearch"> - </div> + <div class="quiet"> + Filter: + <input type="search" id="fileSearch" /> + </div> </template> - </div> - <div class='status-line medium'></div> - <pre><table class="coverage"> + </div> + <div class="status-line medium"></div> + <pre><table class="coverage"> <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> <a name='L2'></a><a href='#L2'>2</a> <a name='L3'></a><a href='#L3'>3</a> @@ -335,21 +328,22 @@ function App() { export default App; </pre></td></tr></table></pre> - <div class='push'></div><!-- for sticky footer --> - </div><!-- /wrapper --> - <div class='footer quiet pad2 space-top1 center small'> - Code coverage generated by - <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> - at 2026-02-13T21:49:58.924Z - </div> - <script src="../prettify.js"></script> - <script> - window.onload = function () { - prettyPrint(); - }; - </script> - <script src="../sorter.js"></script> - <script src="../block-navigation.js"></script> - </body> + <div class="push"></div> + <!-- for sticky footer --> + </div> + <!-- /wrapper --> + <div class="footer quiet pad2 space-top1 center small"> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at 2026-02-13T21:49:58.924Z + </div> + <script src="../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../sorter.js"></script> + <script src="../block-navigation.js"></script> + </body> </html> -
\ No newline at end of file diff --git a/frontend/coverage/src/components/FeedItem.css.html b/frontend/coverage/src/components/FeedItem.css.html index dd239a3..f6fe1a3 100644 --- a/frontend/coverage/src/components/FeedItem.css.html +++ b/frontend/coverage/src/components/FeedItem.css.html @@ -1,68 +1,64 @@ - <!doctype html> <html lang="en"> - -<head> + <head> <title>Code coverage report for src/components/FeedItem.css</title> <meta charset="utf-8" /> <link rel="stylesheet" href="../../prettify.css" /> <link rel="stylesheet" href="../../base.css" /> <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> - <style type='text/css'> - .coverage-summary .sorter { - background-image: url(../../sort-arrow-sprite.png); - } + <style type="text/css"> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } </style> -</head> - -<body> -<div class='wrapper'> - <div class='pad1'> - <h1><a href="../../index.html">All files</a> / <a href="index.html">src/components</a> FeedItem.css</h1> - <div class='clearfix'> - - <div class='fl pad1y space-right2'> - <span class="strong">0% </span> - <span class="quiet">Statements</span> - <span class='fraction'>0/0</span> - </div> - - - <div class='fl pad1y space-right2'> - <span class="strong">0% </span> - <span class="quiet">Branches</span> - <span class='fraction'>0/0</span> - </div> - - - <div class='fl pad1y space-right2'> - <span class="strong">0% </span> - <span class="quiet">Functions</span> - <span class='fraction'>0/0</span> - </div> - - - <div class='fl pad1y space-right2'> - <span class="strong">0% </span> - <span class="quiet">Lines</span> - <span class='fraction'>0/0</span> - </div> - - + </head> + + <body> + <div class="wrapper"> + <div class="pad1"> + <h1> + <a href="../../index.html">All files</a> / + <a href="index.html">src/components</a> FeedItem.css + </h1> + <div class="clearfix"> + <div class="fl pad1y space-right2"> + <span class="strong">0% </span> + <span class="quiet">Statements</span> + <span class="fraction">0/0</span> + </div> + + <div class="fl pad1y space-right2"> + <span class="strong">0% </span> + <span class="quiet">Branches</span> + <span class="fraction">0/0</span> + </div> + + <div class="fl pad1y space-right2"> + <span class="strong">0% </span> + <span class="quiet">Functions</span> + <span class="fraction">0/0</span> + </div> + + <div class="fl pad1y space-right2"> + <span class="strong">0% </span> + <span class="quiet">Lines</span> + <span class="fraction">0/0</span> + </div> </div> <p class="quiet"> - Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, + <em>p</em> or <em>k</em> for the previous block. </p> <template id="filterTemplate"> - <div class="quiet"> - Filter: - <input type="search" id="fileSearch"> - </div> + <div class="quiet"> + Filter: + <input type="search" id="fileSearch" /> + </div> </template> - </div> - <div class='status-line low'></div> - <pre><table class="coverage"> + </div> + <div class="status-line low"></div> + <pre><table class="coverage"> <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> <a name='L2'></a><a href='#L2'>2</a> <a name='L3'></a><a href='#L3'>3</a> @@ -413,21 +409,22 @@ margin-left: 0; }</pre></td></tr></table></pre> - <div class='push'></div><!-- for sticky footer --> - </div><!-- /wrapper --> - <div class='footer quiet pad2 space-top1 center small'> - Code coverage generated by - <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> - at 2026-02-13T21:49:58.924Z - </div> - <script src="../../prettify.js"></script> - <script> - window.onload = function () { - prettyPrint(); - }; - </script> - <script src="../../sorter.js"></script> - <script src="../../block-navigation.js"></script> - </body> + <div class="push"></div> + <!-- for sticky footer --> + </div> + <!-- /wrapper --> + <div class="footer quiet pad2 space-top1 center small"> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at 2026-02-13T21:49:58.924Z + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> </html> -
\ No newline at end of file diff --git a/frontend/coverage/src/components/FeedItem.tsx.html b/frontend/coverage/src/components/FeedItem.tsx.html index f6b08e5..5512b78 100644 --- a/frontend/coverage/src/components/FeedItem.tsx.html +++ b/frontend/coverage/src/components/FeedItem.tsx.html @@ -1,68 +1,64 @@ - <!doctype html> <html lang="en"> - -<head> + <head> <title>Code coverage report for src/components/FeedItem.tsx</title> <meta charset="utf-8" /> <link rel="stylesheet" href="../../prettify.css" /> <link rel="stylesheet" href="../../base.css" /> <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> - <style type='text/css'> - .coverage-summary .sorter { - background-image: url(../../sort-arrow-sprite.png); - } + <style type="text/css"> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } </style> -</head> - -<body> -<div class='wrapper'> - <div class='pad1'> - <h1><a href="../../index.html">All files</a> / <a href="index.html">src/components</a> FeedItem.tsx</h1> - <div class='clearfix'> - - <div class='fl pad1y space-right2'> - <span class="strong">78.94% </span> - <span class="quiet">Statements</span> - <span class='fraction'>15/19</span> - </div> - - - <div class='fl pad1y space-right2'> - <span class="strong">88.88% </span> - <span class="quiet">Branches</span> - <span class='fraction'>16/18</span> - </div> - - - <div class='fl pad1y space-right2'> - <span class="strong">85.71% </span> - <span class="quiet">Functions</span> - <span class='fraction'>6/7</span> - </div> - - - <div class='fl pad1y space-right2'> - <span class="strong">78.94% </span> - <span class="quiet">Lines</span> - <span class='fraction'>15/19</span> - </div> - - + </head> + + <body> + <div class="wrapper"> + <div class="pad1"> + <h1> + <a href="../../index.html">All files</a> / + <a href="index.html">src/components</a> FeedItem.tsx + </h1> + <div class="clearfix"> + <div class="fl pad1y space-right2"> + <span class="strong">78.94% </span> + <span class="quiet">Statements</span> + <span class="fraction">15/19</span> + </div> + + <div class="fl pad1y space-right2"> + <span class="strong">88.88% </span> + <span class="quiet">Branches</span> + <span class="fraction">16/18</span> + </div> + + <div class="fl pad1y space-right2"> + <span class="strong">85.71% </span> + <span class="quiet">Functions</span> + <span class="fraction">6/7</span> + </div> + + <div class="fl pad1y space-right2"> + <span class="strong">78.94% </span> + <span class="quiet">Lines</span> + <span class="fraction">15/19</span> + </div> </div> <p class="quiet"> - Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, + <em>p</em> or <em>k</em> for the previous block. </p> <template id="filterTemplate"> - <div class="quiet"> - Filter: - <input type="search" id="fileSearch"> - </div> + <div class="quiet"> + Filter: + <input type="search" id="fileSearch" /> + </div> </template> - </div> - <div class='status-line medium'></div> - <pre><table class="coverage"> + </div> + <div class="status-line medium"></div> + <pre><table class="coverage"> <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> <a name='L2'></a><a href='#L2'>2</a> <a name='L3'></a><a href='#L3'>3</a> @@ -317,21 +313,22 @@ export default function FeedItem({ item: initialItem }: FeedItemProps) { } </pre></td></tr></table></pre> - <div class='push'></div><!-- for sticky footer --> - </div><!-- /wrapper --> - <div class='footer quiet pad2 space-top1 center small'> - Code coverage generated by - <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> - at 2026-02-13T21:49:58.924Z - </div> - <script src="../../prettify.js"></script> - <script> - window.onload = function () { - prettyPrint(); - }; - </script> - <script src="../../sorter.js"></script> - <script src="../../block-navigation.js"></script> - </body> + <div class="push"></div> + <!-- for sticky footer --> + </div> + <!-- /wrapper --> + <div class="footer quiet pad2 space-top1 center small"> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at 2026-02-13T21:49:58.924Z + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> </html> -
\ No newline at end of file diff --git a/frontend/coverage/src/components/FeedItems.css.html b/frontend/coverage/src/components/FeedItems.css.html index b5d2c41..0b1c77d 100644 --- a/frontend/coverage/src/components/FeedItems.css.html +++ b/frontend/coverage/src/components/FeedItems.css.html @@ -1,68 +1,64 @@ - <!doctype html> <html lang="en"> - -<head> + <head> <title>Code coverage report for src/components/FeedItems.css</title> <meta charset="utf-8" /> <link rel="stylesheet" href="../../prettify.css" /> <link rel="stylesheet" href="../../base.css" /> <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> - <style type='text/css'> - .coverage-summary .sorter { - background-image: url(../../sort-arrow-sprite.png); - } + <style type="text/css"> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } </style> -</head> - -<body> -<div class='wrapper'> - <div class='pad1'> - <h1><a href="../../index.html">All files</a> / <a href="index.html">src/components</a> FeedItems.css</h1> - <div class='clearfix'> - - <div class='fl pad1y space-right2'> - <span class="strong">0% </span> - <span class="quiet">Statements</span> - <span class='fraction'>0/0</span> - </div> - - - <div class='fl pad1y space-right2'> - <span class="strong">0% </span> - <span class="quiet">Branches</span> - <span class='fraction'>0/0</span> - </div> - - - <div class='fl pad1y space-right2'> - <span class="strong">0% </span> - <span class="quiet">Functions</span> - <span class='fraction'>0/0</span> - </div> - - - <div class='fl pad1y space-right2'> - <span class="strong">0% </span> - <span class="quiet">Lines</span> - <span class='fraction'>0/0</span> - </div> - - + </head> + + <body> + <div class="wrapper"> + <div class="pad1"> + <h1> + <a href="../../index.html">All files</a> / + <a href="index.html">src/components</a> FeedItems.css + </h1> + <div class="clearfix"> + <div class="fl pad1y space-right2"> + <span class="strong">0% </span> + <span class="quiet">Statements</span> + <span class="fraction">0/0</span> + </div> + + <div class="fl pad1y space-right2"> + <span class="strong">0% </span> + <span class="quiet">Branches</span> + <span class="fraction">0/0</span> + </div> + + <div class="fl pad1y space-right2"> + <span class="strong">0% </span> + <span class="quiet">Functions</span> + <span class="fraction">0/0</span> + </div> + + <div class="fl pad1y space-right2"> + <span class="strong">0% </span> + <span class="quiet">Lines</span> + <span class="fraction">0/0</span> + </div> </div> <p class="quiet"> - Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, + <em>p</em> or <em>k</em> for the previous block. </p> <template id="filterTemplate"> - <div class="quiet"> - Filter: - <input type="search" id="fileSearch"> - </div> + <div class="quiet"> + Filter: + <input type="search" id="fileSearch" /> + </div> </template> - </div> - <div class='status-line low'></div> - <pre><table class="coverage"> + </div> + <div class="status-line low"></div> + <pre><table class="coverage"> <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> <a name='L2'></a><a href='#L2'>2</a> <a name='L3'></a><a href='#L3'>3</a> @@ -155,21 +151,22 @@ min-height: 50px; }</pre></td></tr></table></pre> - <div class='push'></div><!-- for sticky footer --> - </div><!-- /wrapper --> - <div class='footer quiet pad2 space-top1 center small'> - Code coverage generated by - <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> - at 2026-02-13T21:49:58.924Z - </div> - <script src="../../prettify.js"></script> - <script> - window.onload = function () { - prettyPrint(); - }; - </script> - <script src="../../sorter.js"></script> - <script src="../../block-navigation.js"></script> - </body> + <div class="push"></div> + <!-- for sticky footer --> + </div> + <!-- /wrapper --> + <div class="footer quiet pad2 space-top1 center small"> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at 2026-02-13T21:49:58.924Z + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> </html> -
\ No newline at end of file diff --git a/frontend/coverage/src/components/FeedItems.tsx.html b/frontend/coverage/src/components/FeedItems.tsx.html index e0f73cf..e57acf9 100644 --- a/frontend/coverage/src/components/FeedItems.tsx.html +++ b/frontend/coverage/src/components/FeedItems.tsx.html @@ -1,68 +1,64 @@ - <!doctype html> <html lang="en"> - -<head> + <head> <title>Code coverage report for src/components/FeedItems.tsx</title> <meta charset="utf-8" /> <link rel="stylesheet" href="../../prettify.css" /> <link rel="stylesheet" href="../../base.css" /> <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> - <style type='text/css'> - .coverage-summary .sorter { - background-image: url(../../sort-arrow-sprite.png); - } + <style type="text/css"> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } </style> -</head> - -<body> -<div class='wrapper'> - <div class='pad1'> - <h1><a href="../../index.html">All files</a> / <a href="index.html">src/components</a> FeedItems.tsx</h1> - <div class='clearfix'> - - <div class='fl pad1y space-right2'> - <span class="strong">89.34% </span> - <span class="quiet">Statements</span> - <span class='fraction'>109/122</span> - </div> - - - <div class='fl pad1y space-right2'> - <span class="strong">77.21% </span> - <span class="quiet">Branches</span> - <span class='fraction'>61/79</span> - </div> - - - <div class='fl pad1y space-right2'> - <span class="strong">86.2% </span> - <span class="quiet">Functions</span> - <span class='fraction'>25/29</span> - </div> - - - <div class='fl pad1y space-right2'> - <span class="strong">89.09% </span> - <span class="quiet">Lines</span> - <span class='fraction'>98/110</span> - </div> - - + </head> + + <body> + <div class="wrapper"> + <div class="pad1"> + <h1> + <a href="../../index.html">All files</a> / + <a href="index.html">src/components</a> FeedItems.tsx + </h1> + <div class="clearfix"> + <div class="fl pad1y space-right2"> + <span class="strong">89.34% </span> + <span class="quiet">Statements</span> + <span class="fraction">109/122</span> + </div> + + <div class="fl pad1y space-right2"> + <span class="strong">77.21% </span> + <span class="quiet">Branches</span> + <span class="fraction">61/79</span> + </div> + + <div class="fl pad1y space-right2"> + <span class="strong">86.2% </span> + <span class="quiet">Functions</span> + <span class="fraction">25/29</span> + </div> + + <div class="fl pad1y space-right2"> + <span class="strong">89.09% </span> + <span class="quiet">Lines</span> + <span class="fraction">98/110</span> + </div> </div> <p class="quiet"> - Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, + <em>p</em> or <em>k</em> for the previous block. </p> <template id="filterTemplate"> - <div class="quiet"> - Filter: - <input type="search" id="fileSearch"> - </div> + <div class="quiet"> + Filter: + <input type="search" id="fileSearch" /> + </div> </template> - </div> - <div class='status-line high'></div> - <pre><table class="coverage"> + </div> + <div class="status-line high"></div> + <pre><table class="coverage"> <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> <a name='L2'></a><a href='#L2'>2</a> <a name='L3'></a><a href='#L3'>3</a> @@ -734,21 +730,22 @@ export default function FeedItems() { } </pre></td></tr></table></pre> - <div class='push'></div><!-- for sticky footer --> - </div><!-- /wrapper --> - <div class='footer quiet pad2 space-top1 center small'> - Code coverage generated by - <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> - at 2026-02-13T21:49:58.924Z - </div> - <script src="../../prettify.js"></script> - <script> - window.onload = function () { - prettyPrint(); - }; - </script> - <script src="../../sorter.js"></script> - <script src="../../block-navigation.js"></script> - </body> + <div class="push"></div> + <!-- for sticky footer --> + </div> + <!-- /wrapper --> + <div class="footer quiet pad2 space-top1 center small"> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at 2026-02-13T21:49:58.924Z + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> </html> -
\ No newline at end of file diff --git a/frontend/coverage/src/components/FeedList.css.html b/frontend/coverage/src/components/FeedList.css.html index ffaa1a9..fe60b9d 100644 --- a/frontend/coverage/src/components/FeedList.css.html +++ b/frontend/coverage/src/components/FeedList.css.html @@ -1,68 +1,64 @@ - <!doctype html> <html lang="en"> - -<head> + <head> <title>Code coverage report for src/components/FeedList.css</title> <meta charset="utf-8" /> <link rel="stylesheet" href="../../prettify.css" /> <link rel="stylesheet" href="../../base.css" /> <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> - <style type='text/css'> - .coverage-summary .sorter { - background-image: url(../../sort-arrow-sprite.png); - } + <style type="text/css"> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } </style> -</head> - -<body> -<div class='wrapper'> - <div class='pad1'> - <h1><a href="../../index.html">All files</a> / <a href="index.html">src/components</a> FeedList.css</h1> - <div class='clearfix'> - - <div class='fl pad1y space-right2'> - <span class="strong">0% </span> - <span class="quiet">Statements</span> - <span class='fraction'>0/0</span> - </div> - - - <div class='fl pad1y space-right2'> - <span class="strong">0% </span> - <span class="quiet">Branches</span> - <span class='fraction'>0/0</span> - </div> - - - <div class='fl pad1y space-right2'> - <span class="strong">0% </span> - <span class="quiet">Functions</span> - <span class='fraction'>0/0</span> - </div> - - - <div class='fl pad1y space-right2'> - <span class="strong">0% </span> - <span class="quiet">Lines</span> - <span class='fraction'>0/0</span> - </div> - - + </head> + + <body> + <div class="wrapper"> + <div class="pad1"> + <h1> + <a href="../../index.html">All files</a> / + <a href="index.html">src/components</a> FeedList.css + </h1> + <div class="clearfix"> + <div class="fl pad1y space-right2"> + <span class="strong">0% </span> + <span class="quiet">Statements</span> + <span class="fraction">0/0</span> + </div> + + <div class="fl pad1y space-right2"> + <span class="strong">0% </span> + <span class="quiet">Branches</span> + <span class="fraction">0/0</span> + </div> + + <div class="fl pad1y space-right2"> + <span class="strong">0% </span> + <span class="quiet">Functions</span> + <span class="fraction">0/0</span> + </div> + + <div class="fl pad1y space-right2"> + <span class="strong">0% </span> + <span class="quiet">Lines</span> + <span class="fraction">0/0</span> + </div> </div> <p class="quiet"> - Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, + <em>p</em> or <em>k</em> for the previous block. </p> <template id="filterTemplate"> - <div class="quiet"> - Filter: - <input type="search" id="fileSearch"> - </div> + <div class="quiet"> + Filter: + <input type="search" id="fileSearch" /> + </div> </template> - </div> - <div class='status-line low'></div> - <pre><table class="coverage"> + </div> + <div class="status-line low"></div> + <pre><table class="coverage"> <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> <a name='L2'></a><a href='#L2'>2</a> <a name='L3'></a><a href='#L3'>3</a> @@ -356,21 +352,22 @@ background-color: transparent; }</pre></td></tr></table></pre> - <div class='push'></div><!-- for sticky footer --> - </div><!-- /wrapper --> - <div class='footer quiet pad2 space-top1 center small'> - Code coverage generated by - <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> - at 2026-02-13T21:49:58.924Z - </div> - <script src="../../prettify.js"></script> - <script> - window.onload = function () { - prettyPrint(); - }; - </script> - <script src="../../sorter.js"></script> - <script src="../../block-navigation.js"></script> - </body> + <div class="push"></div> + <!-- for sticky footer --> + </div> + <!-- /wrapper --> + <div class="footer quiet pad2 space-top1 center small"> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at 2026-02-13T21:49:58.924Z + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> </html> -
\ No newline at end of file diff --git a/frontend/coverage/src/components/FeedList.tsx.html b/frontend/coverage/src/components/FeedList.tsx.html index b1b0a27..ba7d81f 100644 --- a/frontend/coverage/src/components/FeedList.tsx.html +++ b/frontend/coverage/src/components/FeedList.tsx.html @@ -1,68 +1,64 @@ - <!doctype html> <html lang="en"> - -<head> + <head> <title>Code coverage report for src/components/FeedList.tsx</title> <meta charset="utf-8" /> <link rel="stylesheet" href="../../prettify.css" /> <link rel="stylesheet" href="../../base.css" /> <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> - <style type='text/css'> - .coverage-summary .sorter { - background-image: url(../../sort-arrow-sprite.png); - } + <style type="text/css"> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } </style> -</head> - -<body> -<div class='wrapper'> - <div class='pad1'> - <h1><a href="../../index.html">All files</a> / <a href="index.html">src/components</a> FeedList.tsx</h1> - <div class='clearfix'> - - <div class='fl pad1y space-right2'> - <span class="strong">91.66% </span> - <span class="quiet">Statements</span> - <span class='fraction'>22/24</span> - </div> - - - <div class='fl pad1y space-right2'> - <span class="strong">82.35% </span> - <span class="quiet">Branches</span> - <span class='fraction'>14/17</span> - </div> - - - <div class='fl pad1y space-right2'> - <span class="strong">100% </span> - <span class="quiet">Functions</span> - <span class='fraction'>8/8</span> - </div> - - - <div class='fl pad1y space-right2'> - <span class="strong">100% </span> - <span class="quiet">Lines</span> - <span class='fraction'>20/20</span> - </div> - - + </head> + + <body> + <div class="wrapper"> + <div class="pad1"> + <h1> + <a href="../../index.html">All files</a> / + <a href="index.html">src/components</a> FeedList.tsx + </h1> + <div class="clearfix"> + <div class="fl pad1y space-right2"> + <span class="strong">91.66% </span> + <span class="quiet">Statements</span> + <span class="fraction">22/24</span> + </div> + + <div class="fl pad1y space-right2"> + <span class="strong">82.35% </span> + <span class="quiet">Branches</span> + <span class="fraction">14/17</span> + </div> + + <div class="fl pad1y space-right2"> + <span class="strong">100% </span> + <span class="quiet">Functions</span> + <span class="fraction">8/8</span> + </div> + + <div class="fl pad1y space-right2"> + <span class="strong">100% </span> + <span class="quiet">Lines</span> + <span class="fraction">20/20</span> + </div> </div> <p class="quiet"> - Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, + <em>p</em> or <em>k</em> for the previous block. </p> <template id="filterTemplate"> - <div class="quiet"> - Filter: - <input type="search" id="fileSearch"> - </div> + <div class="quiet"> + Filter: + <input type="search" id="fileSearch" /> + </div> </template> - </div> - <div class='status-line high'></div> - <pre><table class="coverage"> + </div> + <div class="status-line high"></div> + <pre><table class="coverage"> <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> <a name='L2'></a><a href='#L2'>2</a> <a name='L3'></a><a href='#L3'>3</a> @@ -305,21 +301,22 @@ export default function FeedList() { } </pre></td></tr></table></pre> - <div class='push'></div><!-- for sticky footer --> - </div><!-- /wrapper --> - <div class='footer quiet pad2 space-top1 center small'> - Code coverage generated by - <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> - at 2026-02-13T21:49:58.924Z - </div> - <script src="../../prettify.js"></script> - <script> - window.onload = function () { - prettyPrint(); - }; - </script> - <script src="../../sorter.js"></script> - <script src="../../block-navigation.js"></script> - </body> + <div class="push"></div> + <!-- for sticky footer --> + </div> + <!-- /wrapper --> + <div class="footer quiet pad2 space-top1 center small"> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at 2026-02-13T21:49:58.924Z + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> </html> -
\ No newline at end of file diff --git a/frontend/coverage/src/components/Login.css.html b/frontend/coverage/src/components/Login.css.html index 2b2fe0d..bb3654e 100644 --- a/frontend/coverage/src/components/Login.css.html +++ b/frontend/coverage/src/components/Login.css.html @@ -1,68 +1,64 @@ - <!doctype html> <html lang="en"> - -<head> + <head> <title>Code coverage report for src/components/Login.css</title> <meta charset="utf-8" /> <link rel="stylesheet" href="../../prettify.css" /> <link rel="stylesheet" href="../../base.css" /> <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> - <style type='text/css'> - .coverage-summary .sorter { - background-image: url(../../sort-arrow-sprite.png); - } + <style type="text/css"> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } </style> -</head> - -<body> -<div class='wrapper'> - <div class='pad1'> - <h1><a href="../../index.html">All files</a> / <a href="index.html">src/components</a> Login.css</h1> - <div class='clearfix'> - - <div class='fl pad1y space-right2'> - <span class="strong">0% </span> - <span class="quiet">Statements</span> - <span class='fraction'>0/0</span> - </div> - - - <div class='fl pad1y space-right2'> - <span class="strong">0% </span> - <span class="quiet">Branches</span> - <span class='fraction'>0/0</span> - </div> - - - <div class='fl pad1y space-right2'> - <span class="strong">0% </span> - <span class="quiet">Functions</span> - <span class='fraction'>0/0</span> - </div> - - - <div class='fl pad1y space-right2'> - <span class="strong">0% </span> - <span class="quiet">Lines</span> - <span class='fraction'>0/0</span> - </div> - - + </head> + + <body> + <div class="wrapper"> + <div class="pad1"> + <h1> + <a href="../../index.html">All files</a> / + <a href="index.html">src/components</a> Login.css + </h1> + <div class="clearfix"> + <div class="fl pad1y space-right2"> + <span class="strong">0% </span> + <span class="quiet">Statements</span> + <span class="fraction">0/0</span> + </div> + + <div class="fl pad1y space-right2"> + <span class="strong">0% </span> + <span class="quiet">Branches</span> + <span class="fraction">0/0</span> + </div> + + <div class="fl pad1y space-right2"> + <span class="strong">0% </span> + <span class="quiet">Functions</span> + <span class="fraction">0/0</span> + </div> + + <div class="fl pad1y space-right2"> + <span class="strong">0% </span> + <span class="quiet">Lines</span> + <span class="fraction">0/0</span> + </div> </div> <p class="quiet"> - Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, + <em>p</em> or <em>k</em> for the previous block. </p> <template id="filterTemplate"> - <div class="quiet"> - Filter: - <input type="search" id="fileSearch"> - </div> + <div class="quiet"> + Filter: + <input type="search" id="fileSearch" /> + </div> </template> - </div> - <div class='status-line low'></div> - <pre><table class="coverage"> + </div> + <div class="status-line low"></div> + <pre><table class="coverage"> <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> <a name='L2'></a><a href='#L2'>2</a> <a name='L3'></a><a href='#L3'>3</a> @@ -254,21 +250,22 @@ button[type="submit"]:hover { } </pre></td></tr></table></pre> - <div class='push'></div><!-- for sticky footer --> - </div><!-- /wrapper --> - <div class='footer quiet pad2 space-top1 center small'> - Code coverage generated by - <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> - at 2026-02-13T21:49:58.924Z - </div> - <script src="../../prettify.js"></script> - <script> - window.onload = function () { - prettyPrint(); - }; - </script> - <script src="../../sorter.js"></script> - <script src="../../block-navigation.js"></script> - </body> + <div class="push"></div> + <!-- for sticky footer --> + </div> + <!-- /wrapper --> + <div class="footer quiet pad2 space-top1 center small"> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at 2026-02-13T21:49:58.924Z + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> </html> -
\ No newline at end of file diff --git a/frontend/coverage/src/components/Login.tsx.html b/frontend/coverage/src/components/Login.tsx.html index 263fe57..f29e3cb 100644 --- a/frontend/coverage/src/components/Login.tsx.html +++ b/frontend/coverage/src/components/Login.tsx.html @@ -1,68 +1,64 @@ - <!doctype html> <html lang="en"> - -<head> + <head> <title>Code coverage report for src/components/Login.tsx</title> <meta charset="utf-8" /> <link rel="stylesheet" href="../../prettify.css" /> <link rel="stylesheet" href="../../base.css" /> <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> - <style type='text/css'> - .coverage-summary .sorter { - background-image: url(../../sort-arrow-sprite.png); - } + <style type="text/css"> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } </style> -</head> - -<body> -<div class='wrapper'> - <div class='pad1'> - <h1><a href="../../index.html">All files</a> / <a href="index.html">src/components</a> Login.tsx</h1> - <div class='clearfix'> - - <div class='fl pad1y space-right2'> - <span class="strong">100% </span> - <span class="quiet">Statements</span> - <span class='fraction'>17/17</span> - </div> - - - <div class='fl pad1y space-right2'> - <span class="strong">83.33% </span> - <span class="quiet">Branches</span> - <span class='fraction'>5/6</span> - </div> - - - <div class='fl pad1y space-right2'> - <span class="strong">100% </span> - <span class="quiet">Functions</span> - <span class='fraction'>3/3</span> - </div> - - - <div class='fl pad1y space-right2'> - <span class="strong">100% </span> - <span class="quiet">Lines</span> - <span class='fraction'>17/17</span> - </div> - - + </head> + + <body> + <div class="wrapper"> + <div class="pad1"> + <h1> + <a href="../../index.html">All files</a> / + <a href="index.html">src/components</a> Login.tsx + </h1> + <div class="clearfix"> + <div class="fl pad1y space-right2"> + <span class="strong">100% </span> + <span class="quiet">Statements</span> + <span class="fraction">17/17</span> + </div> + + <div class="fl pad1y space-right2"> + <span class="strong">83.33% </span> + <span class="quiet">Branches</span> + <span class="fraction">5/6</span> + </div> + + <div class="fl pad1y space-right2"> + <span class="strong">100% </span> + <span class="quiet">Functions</span> + <span class="fraction">3/3</span> + </div> + + <div class="fl pad1y space-right2"> + <span class="strong">100% </span> + <span class="quiet">Lines</span> + <span class="fraction">17/17</span> + </div> </div> <p class="quiet"> - Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, + <em>p</em> or <em>k</em> for the previous block. </p> <template id="filterTemplate"> - <div class="quiet"> - Filter: - <input type="search" id="fileSearch"> - </div> + <div class="quiet"> + Filter: + <input type="search" id="fileSearch" /> + </div> </template> - </div> - <div class='status-line high'></div> - <pre><table class="coverage"> + </div> + <div class="status-line high"></div> + <pre><table class="coverage"> <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> <a name='L2'></a><a href='#L2'>2</a> <a name='L3'></a><a href='#L3'>3</a> @@ -227,21 +223,22 @@ export default function Login() { } </pre></td></tr></table></pre> - <div class='push'></div><!-- for sticky footer --> - </div><!-- /wrapper --> - <div class='footer quiet pad2 space-top1 center small'> - Code coverage generated by - <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> - at 2026-02-13T21:49:58.924Z - </div> - <script src="../../prettify.js"></script> - <script> - window.onload = function () { - prettyPrint(); - }; - </script> - <script src="../../sorter.js"></script> - <script src="../../block-navigation.js"></script> - </body> + <div class="push"></div> + <!-- for sticky footer --> + </div> + <!-- /wrapper --> + <div class="footer quiet pad2 space-top1 center small"> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at 2026-02-13T21:49:58.924Z + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> </html> -
\ No newline at end of file diff --git a/frontend/coverage/src/components/Settings.css.html b/frontend/coverage/src/components/Settings.css.html index 428c9d2..6a1155e 100644 --- a/frontend/coverage/src/components/Settings.css.html +++ b/frontend/coverage/src/components/Settings.css.html @@ -1,68 +1,64 @@ - <!doctype html> <html lang="en"> - -<head> + <head> <title>Code coverage report for src/components/Settings.css</title> <meta charset="utf-8" /> <link rel="stylesheet" href="../../prettify.css" /> <link rel="stylesheet" href="../../base.css" /> <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> - <style type='text/css'> - .coverage-summary .sorter { - background-image: url(../../sort-arrow-sprite.png); - } + <style type="text/css"> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } </style> -</head> - -<body> -<div class='wrapper'> - <div class='pad1'> - <h1><a href="../../index.html">All files</a> / <a href="index.html">src/components</a> Settings.css</h1> - <div class='clearfix'> - - <div class='fl pad1y space-right2'> - <span class="strong">0% </span> - <span class="quiet">Statements</span> - <span class='fraction'>0/0</span> - </div> - - - <div class='fl pad1y space-right2'> - <span class="strong">0% </span> - <span class="quiet">Branches</span> - <span class='fraction'>0/0</span> - </div> - - - <div class='fl pad1y space-right2'> - <span class="strong">0% </span> - <span class="quiet">Functions</span> - <span class='fraction'>0/0</span> - </div> - - - <div class='fl pad1y space-right2'> - <span class="strong">0% </span> - <span class="quiet">Lines</span> - <span class='fraction'>0/0</span> - </div> - - + </head> + + <body> + <div class="wrapper"> + <div class="pad1"> + <h1> + <a href="../../index.html">All files</a> / + <a href="index.html">src/components</a> Settings.css + </h1> + <div class="clearfix"> + <div class="fl pad1y space-right2"> + <span class="strong">0% </span> + <span class="quiet">Statements</span> + <span class="fraction">0/0</span> + </div> + + <div class="fl pad1y space-right2"> + <span class="strong">0% </span> + <span class="quiet">Branches</span> + <span class="fraction">0/0</span> + </div> + + <div class="fl pad1y space-right2"> + <span class="strong">0% </span> + <span class="quiet">Functions</span> + <span class="fraction">0/0</span> + </div> + + <div class="fl pad1y space-right2"> + <span class="strong">0% </span> + <span class="quiet">Lines</span> + <span class="fraction">0/0</span> + </div> </div> <p class="quiet"> - Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, + <em>p</em> or <em>k</em> for the previous block. </p> <template id="filterTemplate"> - <div class="quiet"> - Filter: - <input type="search" id="fileSearch"> - </div> + <div class="quiet"> + Filter: + <input type="search" id="fileSearch" /> + </div> </template> - </div> - <div class='status-line low'></div> - <pre><table class="coverage"> + </div> + <div class="status-line low"></div> + <pre><table class="coverage"> <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> <a name='L2'></a><a href='#L2'>2</a> <a name='L3'></a><a href='#L3'>3</a> @@ -311,21 +307,22 @@ cursor: not-allowed; }</pre></td></tr></table></pre> - <div class='push'></div><!-- for sticky footer --> - </div><!-- /wrapper --> - <div class='footer quiet pad2 space-top1 center small'> - Code coverage generated by - <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> - at 2026-02-13T21:49:58.924Z - </div> - <script src="../../prettify.js"></script> - <script> - window.onload = function () { - prettyPrint(); - }; - </script> - <script src="../../sorter.js"></script> - <script src="../../block-navigation.js"></script> - </body> + <div class="push"></div> + <!-- for sticky footer --> + </div> + <!-- /wrapper --> + <div class="footer quiet pad2 space-top1 center small"> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at 2026-02-13T21:49:58.924Z + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> </html> -
\ No newline at end of file diff --git a/frontend/coverage/src/components/Settings.tsx.html b/frontend/coverage/src/components/Settings.tsx.html index 62ca241..df6d027 100644 --- a/frontend/coverage/src/components/Settings.tsx.html +++ b/frontend/coverage/src/components/Settings.tsx.html @@ -1,68 +1,64 @@ - <!doctype html> <html lang="en"> - -<head> + <head> <title>Code coverage report for src/components/Settings.tsx</title> <meta charset="utf-8" /> <link rel="stylesheet" href="../../prettify.css" /> <link rel="stylesheet" href="../../base.css" /> <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> - <style type='text/css'> - .coverage-summary .sorter { - background-image: url(../../sort-arrow-sprite.png); - } + <style type="text/css"> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } </style> -</head> - -<body> -<div class='wrapper'> - <div class='pad1'> - <h1><a href="../../index.html">All files</a> / <a href="index.html">src/components</a> Settings.tsx</h1> - <div class='clearfix'> - - <div class='fl pad1y space-right2'> - <span class="strong">75.55% </span> - <span class="quiet">Statements</span> - <span class='fraction'>34/45</span> - </div> - - - <div class='fl pad1y space-right2'> - <span class="strong">56.25% </span> - <span class="quiet">Branches</span> - <span class='fraction'>9/16</span> - </div> - - - <div class='fl pad1y space-right2'> - <span class="strong">82.35% </span> - <span class="quiet">Functions</span> - <span class='fraction'>14/17</span> - </div> - - - <div class='fl pad1y space-right2'> - <span class="strong">84.61% </span> - <span class="quiet">Lines</span> - <span class='fraction'>33/39</span> - </div> - - + </head> + + <body> + <div class="wrapper"> + <div class="pad1"> + <h1> + <a href="../../index.html">All files</a> / + <a href="index.html">src/components</a> Settings.tsx + </h1> + <div class="clearfix"> + <div class="fl pad1y space-right2"> + <span class="strong">75.55% </span> + <span class="quiet">Statements</span> + <span class="fraction">34/45</span> + </div> + + <div class="fl pad1y space-right2"> + <span class="strong">56.25% </span> + <span class="quiet">Branches</span> + <span class="fraction">9/16</span> + </div> + + <div class="fl pad1y space-right2"> + <span class="strong">82.35% </span> + <span class="quiet">Functions</span> + <span class="fraction">14/17</span> + </div> + + <div class="fl pad1y space-right2"> + <span class="strong">84.61% </span> + <span class="quiet">Lines</span> + <span class="fraction">33/39</span> + </div> </div> <p class="quiet"> - Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, + <em>p</em> or <em>k</em> for the previous block. </p> <template id="filterTemplate"> - <div class="quiet"> - Filter: - <input type="search" id="fileSearch"> - </div> + <div class="quiet"> + Filter: + <input type="search" id="fileSearch" /> + </div> </template> - </div> - <div class='status-line medium'></div> - <pre><table class="coverage"> + </div> + <div class="status-line medium"></div> + <pre><table class="coverage"> <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a> <a name='L2'></a><a href='#L2'>2</a> <a name='L3'></a><a href='#L3'>3</a> @@ -428,21 +424,22 @@ export default function Settings() { } </pre></td></tr></table></pre> - <div class='push'></div><!-- for sticky footer --> - </div><!-- /wrapper --> - <div class='footer quiet pad2 space-top1 center small'> - Code coverage generated by - <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> - at 2026-02-13T21:49:58.924Z - </div> - <script src="../../prettify.js"></script> - <script> - window.onload = function () { - prettyPrint(); - }; - </script> - <script src="../../sorter.js"></script> - <script src="../../block-navigation.js"></script> - </body> + <div class="push"></div> + <!-- for sticky footer --> + </div> + <!-- /wrapper --> + <div class="footer quiet pad2 space-top1 center small"> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at 2026-02-13T21:49:58.924Z + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> </html> -
\ No newline at end of file diff --git a/frontend/coverage/src/components/index.html b/frontend/coverage/src/components/index.html index 534e353..7e1a0b7 100644 --- a/frontend/coverage/src/components/index.html +++ b/frontend/coverage/src/components/index.html @@ -1,251 +1,303 @@ - <!doctype html> <html lang="en"> - -<head> + <head> <title>Code coverage report for src/components</title> <meta charset="utf-8" /> <link rel="stylesheet" href="../../prettify.css" /> <link rel="stylesheet" href="../../base.css" /> <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> - <style type='text/css'> - .coverage-summary .sorter { - background-image: url(../../sort-arrow-sprite.png); - } + <style type="text/css"> + .coverage-summary .sorter { + background-image: url(../../sort-arrow-sprite.png); + } </style> -</head> - -<body> -<div class='wrapper'> - <div class='pad1'> + </head> + + <body> + <div class="wrapper"> + <div class="pad1"> <h1><a href="../../index.html">All files</a> src/components</h1> - <div class='clearfix'> - - <div class='fl pad1y space-right2'> - <span class="strong">86.78% </span> - <span class="quiet">Statements</span> - <span class='fraction'>197/227</span> - </div> - - - <div class='fl pad1y space-right2'> - <span class="strong">77.2% </span> - <span class="quiet">Branches</span> - <span class='fraction'>105/136</span> - </div> - - - <div class='fl pad1y space-right2'> - <span class="strong">87.5% </span> - <span class="quiet">Functions</span> - <span class='fraction'>56/64</span> - </div> - - - <div class='fl pad1y space-right2'> - <span class="strong">89.26% </span> - <span class="quiet">Lines</span> - <span class='fraction'>183/205</span> - </div> - - + <div class="clearfix"> + <div class="fl pad1y space-right2"> + <span class="strong">86.78% </span> + <span class="quiet">Statements</span> + <span class="fraction">197/227</span> + </div> + + <div class="fl pad1y space-right2"> + <span class="strong">77.2% </span> + <span class="quiet">Branches</span> + <span class="fraction">105/136</span> + </div> + + <div class="fl pad1y space-right2"> + <span class="strong">87.5% </span> + <span class="quiet">Functions</span> + <span class="fraction">56/64</span> + </div> + + <div class="fl pad1y space-right2"> + <span class="strong">89.26% </span> + <span class="quiet">Lines</span> + <span class="fraction">183/205</span> + </div> </div> <p class="quiet"> - Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, + <em>p</em> or <em>k</em> for the previous block. </p> <template id="filterTemplate"> - <div class="quiet"> - Filter: - <input type="search" id="fileSearch"> - </div> + <div class="quiet"> + Filter: + <input type="search" id="fileSearch" /> + </div> </template> - </div> - <div class='status-line high'></div> - <div class="pad1"> -<table class="coverage-summary"> -<thead> -<tr> - <th data-col="file" data-fmt="html" data-html="true" class="file">File</th> - <th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th> - <th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th> - <th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th> - <th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th> - <th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th> - <th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th> - <th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th> - <th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th> - <th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th> -</tr> -</thead> -<tbody><tr> - <td class="file empty" data-value="FeedItem.css"><a href="FeedItem.css.html">FeedItem.css</a></td> - <td data-value="0" class="pic empty"> - <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div> - </td> - <td data-value="0" class="pct empty">0%</td> - <td data-value="0" class="abs empty">0/0</td> - <td data-value="0" class="pct empty">0%</td> - <td data-value="0" class="abs empty">0/0</td> - <td data-value="0" class="pct empty">0%</td> - <td data-value="0" class="abs empty">0/0</td> - <td data-value="0" class="pct empty">0%</td> - <td data-value="0" class="abs empty">0/0</td> - </tr> - -<tr> - <td class="file medium" data-value="FeedItem.tsx"><a href="FeedItem.tsx.html">FeedItem.tsx</a></td> - <td data-value="78.94" class="pic medium"> - <div class="chart"><div class="cover-fill" style="width: 78%"></div><div class="cover-empty" style="width: 22%"></div></div> - </td> - <td data-value="78.94" class="pct medium">78.94%</td> - <td data-value="19" class="abs medium">15/19</td> - <td data-value="88.88" class="pct high">88.88%</td> - <td data-value="18" class="abs high">16/18</td> - <td data-value="85.71" class="pct high">85.71%</td> - <td data-value="7" class="abs high">6/7</td> - <td data-value="78.94" class="pct medium">78.94%</td> - <td data-value="19" class="abs medium">15/19</td> - </tr> + </div> + <div class="status-line high"></div> + <div class="pad1"> + <table class="coverage-summary"> + <thead> + <tr> + <th data-col="file" data-fmt="html" data-html="true" class="file">File</th> + <th + data-col="pic" + data-type="number" + data-fmt="html" + data-html="true" + class="pic" + ></th> + <th data-col="statements" data-type="number" data-fmt="pct" class="pct"> + Statements + </th> + <th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th> + <th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th> + <th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th> + <th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th> + <th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th> + <th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th> + <th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th> + </tr> + </thead> + <tbody> + <tr> + <td class="file empty" data-value="FeedItem.css"> + <a href="FeedItem.css.html">FeedItem.css</a> + </td> + <td data-value="0" class="pic empty"> + <div class="chart"> + <div class="cover-fill" style="width: 0%"></div> + <div class="cover-empty" style="width: 100%"></div> + </div> + </td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + </tr> -<tr> - <td class="file empty" data-value="FeedItems.css"><a href="FeedItems.css.html">FeedItems.css</a></td> - <td data-value="0" class="pic empty"> - <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div> - </td> - <td data-value="0" class="pct empty">0%</td> - <td data-value="0" class="abs empty">0/0</td> - <td data-value="0" class="pct empty">0%</td> - <td data-value="0" class="abs empty">0/0</td> - <td data-value="0" class="pct empty">0%</td> - <td data-value="0" class="abs empty">0/0</td> - <td data-value="0" class="pct empty">0%</td> - <td data-value="0" class="abs empty">0/0</td> - </tr> + <tr> + <td class="file medium" data-value="FeedItem.tsx"> + <a href="FeedItem.tsx.html">FeedItem.tsx</a> + </td> + <td data-value="78.94" class="pic medium"> + <div class="chart"> + <div class="cover-fill" style="width: 78%"></div> + <div class="cover-empty" style="width: 22%"></div> + </div> + </td> + <td data-value="78.94" class="pct medium">78.94%</td> + <td data-value="19" class="abs medium">15/19</td> + <td data-value="88.88" class="pct high">88.88%</td> + <td data-value="18" class="abs high">16/18</td> + <td data-value="85.71" class="pct high">85.71%</td> + <td data-value="7" class="abs high">6/7</td> + <td data-value="78.94" class="pct medium">78.94%</td> + <td data-value="19" class="abs medium">15/19</td> + </tr> -<tr> - <td class="file high" data-value="FeedItems.tsx"><a href="FeedItems.tsx.html">FeedItems.tsx</a></td> - <td data-value="89.34" class="pic high"> - <div class="chart"><div class="cover-fill" style="width: 89%"></div><div class="cover-empty" style="width: 11%"></div></div> - </td> - <td data-value="89.34" class="pct high">89.34%</td> - <td data-value="122" class="abs high">109/122</td> - <td data-value="77.21" class="pct medium">77.21%</td> - <td data-value="79" class="abs medium">61/79</td> - <td data-value="86.2" class="pct high">86.2%</td> - <td data-value="29" class="abs high">25/29</td> - <td data-value="89.09" class="pct high">89.09%</td> - <td data-value="110" class="abs high">98/110</td> - </tr> + <tr> + <td class="file empty" data-value="FeedItems.css"> + <a href="FeedItems.css.html">FeedItems.css</a> + </td> + <td data-value="0" class="pic empty"> + <div class="chart"> + <div class="cover-fill" style="width: 0%"></div> + <div class="cover-empty" style="width: 100%"></div> + </div> + </td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + </tr> -<tr> - <td class="file empty" data-value="FeedList.css"><a href="FeedList.css.html">FeedList.css</a></td> - <td data-value="0" class="pic empty"> - <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div> - </td> - <td data-value="0" class="pct empty">0%</td> - <td data-value="0" class="abs empty">0/0</td> - <td data-value="0" class="pct empty">0%</td> - <td data-value="0" class="abs empty">0/0</td> - <td data-value="0" class="pct empty">0%</td> - <td data-value="0" class="abs empty">0/0</td> - <td data-value="0" class="pct empty">0%</td> - <td data-value="0" class="abs empty">0/0</td> - </tr> + <tr> + <td class="file high" data-value="FeedItems.tsx"> + <a href="FeedItems.tsx.html">FeedItems.tsx</a> + </td> + <td data-value="89.34" class="pic high"> + <div class="chart"> + <div class="cover-fill" style="width: 89%"></div> + <div class="cover-empty" style="width: 11%"></div> + </div> + </td> + <td data-value="89.34" class="pct high">89.34%</td> + <td data-value="122" class="abs high">109/122</td> + <td data-value="77.21" class="pct medium">77.21%</td> + <td data-value="79" class="abs medium">61/79</td> + <td data-value="86.2" class="pct high">86.2%</td> + <td data-value="29" class="abs high">25/29</td> + <td data-value="89.09" class="pct high">89.09%</td> + <td data-value="110" class="abs high">98/110</td> + </tr> -<tr> - <td class="file high" data-value="FeedList.tsx"><a href="FeedList.tsx.html">FeedList.tsx</a></td> - <td data-value="91.66" class="pic high"> - <div class="chart"><div class="cover-fill" style="width: 91%"></div><div class="cover-empty" style="width: 9%"></div></div> - </td> - <td data-value="91.66" class="pct high">91.66%</td> - <td data-value="24" class="abs high">22/24</td> - <td data-value="82.35" class="pct high">82.35%</td> - <td data-value="17" class="abs high">14/17</td> - <td data-value="100" class="pct high">100%</td> - <td data-value="8" class="abs high">8/8</td> - <td data-value="100" class="pct high">100%</td> - <td data-value="20" class="abs high">20/20</td> - </tr> + <tr> + <td class="file empty" data-value="FeedList.css"> + <a href="FeedList.css.html">FeedList.css</a> + </td> + <td data-value="0" class="pic empty"> + <div class="chart"> + <div class="cover-fill" style="width: 0%"></div> + <div class="cover-empty" style="width: 100%"></div> + </div> + </td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + </tr> -<tr> - <td class="file empty" data-value="Login.css"><a href="Login.css.html">Login.css</a></td> - <td data-value="0" class="pic empty"> - <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div> - </td> - <td data-value="0" class="pct empty">0%</td> - <td data-value="0" class="abs empty">0/0</td> - <td data-value="0" class="pct empty">0%</td> - <td data-value="0" class="abs empty">0/0</td> - <td data-value="0" class="pct empty">0%</td> - <td data-value="0" class="abs empty">0/0</td> - <td data-value="0" class="pct empty">0%</td> - <td data-value="0" class="abs empty">0/0</td> - </tr> + <tr> + <td class="file high" data-value="FeedList.tsx"> + <a href="FeedList.tsx.html">FeedList.tsx</a> + </td> + <td data-value="91.66" class="pic high"> + <div class="chart"> + <div class="cover-fill" style="width: 91%"></div> + <div class="cover-empty" style="width: 9%"></div> + </div> + </td> + <td data-value="91.66" class="pct high">91.66%</td> + <td data-value="24" class="abs high">22/24</td> + <td data-value="82.35" class="pct high">82.35%</td> + <td data-value="17" class="abs high">14/17</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="8" class="abs high">8/8</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="20" class="abs high">20/20</td> + </tr> -<tr> - <td class="file high" data-value="Login.tsx"><a href="Login.tsx.html">Login.tsx</a></td> - <td data-value="100" class="pic high"> - <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div> - </td> - <td data-value="100" class="pct high">100%</td> - <td data-value="17" class="abs high">17/17</td> - <td data-value="83.33" class="pct high">83.33%</td> - <td data-value="6" class="abs high">5/6</td> - <td data-value="100" class="pct high">100%</td> - <td data-value="3" class="abs high">3/3</td> - <td data-value="100" class="pct high">100%</td> - <td data-value="17" class="abs high">17/17</td> - </tr> + <tr> + <td class="file empty" data-value="Login.css"> + <a href="Login.css.html">Login.css</a> + </td> + <td data-value="0" class="pic empty"> + <div class="chart"> + <div class="cover-fill" style="width: 0%"></div> + <div class="cover-empty" style="width: 100%"></div> + </div> + </td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + </tr> -<tr> - <td class="file empty" data-value="Settings.css"><a href="Settings.css.html">Settings.css</a></td> - <td data-value="0" class="pic empty"> - <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div> - </td> - <td data-value="0" class="pct empty">0%</td> - <td data-value="0" class="abs empty">0/0</td> - <td data-value="0" class="pct empty">0%</td> - <td data-value="0" class="abs empty">0/0</td> - <td data-value="0" class="pct empty">0%</td> - <td data-value="0" class="abs empty">0/0</td> - <td data-value="0" class="pct empty">0%</td> - <td data-value="0" class="abs empty">0/0</td> - </tr> + <tr> + <td class="file high" data-value="Login.tsx"> + <a href="Login.tsx.html">Login.tsx</a> + </td> + <td data-value="100" class="pic high"> + <div class="chart"> + <div class="cover-fill cover-full" style="width: 100%"></div> + <div class="cover-empty" style="width: 0%"></div> + </div> + </td> + <td data-value="100" class="pct high">100%</td> + <td data-value="17" class="abs high">17/17</td> + <td data-value="83.33" class="pct high">83.33%</td> + <td data-value="6" class="abs high">5/6</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="3" class="abs high">3/3</td> + <td data-value="100" class="pct high">100%</td> + <td data-value="17" class="abs high">17/17</td> + </tr> -<tr> - <td class="file medium" data-value="Settings.tsx"><a href="Settings.tsx.html">Settings.tsx</a></td> - <td data-value="75.55" class="pic medium"> - <div class="chart"><div class="cover-fill" style="width: 75%"></div><div class="cover-empty" style="width: 25%"></div></div> - </td> - <td data-value="75.55" class="pct medium">75.55%</td> - <td data-value="45" class="abs medium">34/45</td> - <td data-value="56.25" class="pct medium">56.25%</td> - <td data-value="16" class="abs medium">9/16</td> - <td data-value="82.35" class="pct high">82.35%</td> - <td data-value="17" class="abs high">14/17</td> - <td data-value="84.61" class="pct high">84.61%</td> - <td data-value="39" class="abs high">33/39</td> - </tr> + <tr> + <td class="file empty" data-value="Settings.css"> + <a href="Settings.css.html">Settings.css</a> + </td> + <td data-value="0" class="pic empty"> + <div class="chart"> + <div class="cover-fill" style="width: 0%"></div> + <div class="cover-empty" style="width: 100%"></div> + </div> + </td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + </tr> -</tbody> -</table> -</div> - <div class='push'></div><!-- for sticky footer --> - </div><!-- /wrapper --> - <div class='footer quiet pad2 space-top1 center small'> - Code coverage generated by - <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> - at 2026-02-13T21:49:58.924Z - </div> - <script src="../../prettify.js"></script> - <script> - window.onload = function () { - prettyPrint(); - }; - </script> - <script src="../../sorter.js"></script> - <script src="../../block-navigation.js"></script> - </body> + <tr> + <td class="file medium" data-value="Settings.tsx"> + <a href="Settings.tsx.html">Settings.tsx</a> + </td> + <td data-value="75.55" class="pic medium"> + <div class="chart"> + <div class="cover-fill" style="width: 75%"></div> + <div class="cover-empty" style="width: 25%"></div> + </div> + </td> + <td data-value="75.55" class="pct medium">75.55%</td> + <td data-value="45" class="abs medium">34/45</td> + <td data-value="56.25" class="pct medium">56.25%</td> + <td data-value="16" class="abs medium">9/16</td> + <td data-value="82.35" class="pct high">82.35%</td> + <td data-value="17" class="abs high">14/17</td> + <td data-value="84.61" class="pct high">84.61%</td> + <td data-value="39" class="abs high">33/39</td> + </tr> + </tbody> + </table> + </div> + <div class="push"></div> + <!-- for sticky footer --> + </div> + <!-- /wrapper --> + <div class="footer quiet pad2 space-top1 center small"> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at 2026-02-13T21:49:58.924Z + </div> + <script src="../../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../../sorter.js"></script> + <script src="../../block-navigation.js"></script> + </body> </html> -
\ No newline at end of file diff --git a/frontend/coverage/src/index.html b/frontend/coverage/src/index.html index 023e9bb..14e9f51 100644 --- a/frontend/coverage/src/index.html +++ b/frontend/coverage/src/index.html @@ -1,131 +1,139 @@ - <!doctype html> <html lang="en"> - -<head> + <head> <title>Code coverage report for src</title> <meta charset="utf-8" /> <link rel="stylesheet" href="../prettify.css" /> <link rel="stylesheet" href="../base.css" /> <link rel="shortcut icon" type="image/x-icon" href="../favicon.png" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> - <style type='text/css'> - .coverage-summary .sorter { - background-image: url(../sort-arrow-sprite.png); - } + <style type="text/css"> + .coverage-summary .sorter { + background-image: url(../sort-arrow-sprite.png); + } </style> -</head> - -<body> -<div class='wrapper'> - <div class='pad1'> + </head> + + <body> + <div class="wrapper"> + <div class="pad1"> <h1><a href="../index.html">All files</a> src</h1> - <div class='clearfix'> - - <div class='fl pad1y space-right2'> - <span class="strong">78.94% </span> - <span class="quiet">Statements</span> - <span class='fraction'>15/19</span> - </div> - - - <div class='fl pad1y space-right2'> - <span class="strong">66.66% </span> - <span class="quiet">Branches</span> - <span class='fraction'>4/6</span> - </div> - - - <div class='fl pad1y space-right2'> - <span class="strong">77.77% </span> - <span class="quiet">Functions</span> - <span class='fraction'>7/9</span> - </div> - - - <div class='fl pad1y space-right2'> - <span class="strong">78.94% </span> - <span class="quiet">Lines</span> - <span class='fraction'>15/19</span> - </div> - - + <div class="clearfix"> + <div class="fl pad1y space-right2"> + <span class="strong">78.94% </span> + <span class="quiet">Statements</span> + <span class="fraction">15/19</span> + </div> + + <div class="fl pad1y space-right2"> + <span class="strong">66.66% </span> + <span class="quiet">Branches</span> + <span class="fraction">4/6</span> + </div> + + <div class="fl pad1y space-right2"> + <span class="strong">77.77% </span> + <span class="quiet">Functions</span> + <span class="fraction">7/9</span> + </div> + + <div class="fl pad1y space-right2"> + <span class="strong">78.94% </span> + <span class="quiet">Lines</span> + <span class="fraction">15/19</span> + </div> </div> <p class="quiet"> - Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block. + Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, + <em>p</em> or <em>k</em> for the previous block. </p> <template id="filterTemplate"> - <div class="quiet"> - Filter: - <input type="search" id="fileSearch"> - </div> + <div class="quiet"> + Filter: + <input type="search" id="fileSearch" /> + </div> </template> - </div> - <div class='status-line medium'></div> - <div class="pad1"> -<table class="coverage-summary"> -<thead> -<tr> - <th data-col="file" data-fmt="html" data-html="true" class="file">File</th> - <th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th> - <th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th> - <th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th> - <th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th> - <th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th> - <th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th> - <th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th> - <th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th> - <th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th> -</tr> -</thead> -<tbody><tr> - <td class="file empty" data-value="App.css"><a href="App.css.html">App.css</a></td> - <td data-value="0" class="pic empty"> - <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div> - </td> - <td data-value="0" class="pct empty">0%</td> - <td data-value="0" class="abs empty">0/0</td> - <td data-value="0" class="pct empty">0%</td> - <td data-value="0" class="abs empty">0/0</td> - <td data-value="0" class="pct empty">0%</td> - <td data-value="0" class="abs empty">0/0</td> - <td data-value="0" class="pct empty">0%</td> - <td data-value="0" class="abs empty">0/0</td> - </tr> - -<tr> - <td class="file medium" data-value="App.tsx"><a href="App.tsx.html">App.tsx</a></td> - <td data-value="78.94" class="pic medium"> - <div class="chart"><div class="cover-fill" style="width: 78%"></div><div class="cover-empty" style="width: 22%"></div></div> - </td> - <td data-value="78.94" class="pct medium">78.94%</td> - <td data-value="19" class="abs medium">15/19</td> - <td data-value="66.66" class="pct medium">66.66%</td> - <td data-value="6" class="abs medium">4/6</td> - <td data-value="77.77" class="pct medium">77.77%</td> - <td data-value="9" class="abs medium">7/9</td> - <td data-value="78.94" class="pct medium">78.94%</td> - <td data-value="19" class="abs medium">15/19</td> - </tr> + </div> + <div class="status-line medium"></div> + <div class="pad1"> + <table class="coverage-summary"> + <thead> + <tr> + <th data-col="file" data-fmt="html" data-html="true" class="file">File</th> + <th + data-col="pic" + data-type="number" + data-fmt="html" + data-html="true" + class="pic" + ></th> + <th data-col="statements" data-type="number" data-fmt="pct" class="pct"> + Statements + </th> + <th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th> + <th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th> + <th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th> + <th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th> + <th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th> + <th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th> + <th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th> + </tr> + </thead> + <tbody> + <tr> + <td class="file empty" data-value="App.css"><a href="App.css.html">App.css</a></td> + <td data-value="0" class="pic empty"> + <div class="chart"> + <div class="cover-fill" style="width: 0%"></div> + <div class="cover-empty" style="width: 100%"></div> + </div> + </td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + <td data-value="0" class="pct empty">0%</td> + <td data-value="0" class="abs empty">0/0</td> + </tr> -</tbody> -</table> -</div> - <div class='push'></div><!-- for sticky footer --> - </div><!-- /wrapper --> - <div class='footer quiet pad2 space-top1 center small'> - Code coverage generated by - <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> - at 2026-02-13T21:49:58.924Z - </div> - <script src="../prettify.js"></script> - <script> - window.onload = function () { - prettyPrint(); - }; - </script> - <script src="../sorter.js"></script> - <script src="../block-navigation.js"></script> - </body> + <tr> + <td class="file medium" data-value="App.tsx"><a href="App.tsx.html">App.tsx</a></td> + <td data-value="78.94" class="pic medium"> + <div class="chart"> + <div class="cover-fill" style="width: 78%"></div> + <div class="cover-empty" style="width: 22%"></div> + </div> + </td> + <td data-value="78.94" class="pct medium">78.94%</td> + <td data-value="19" class="abs medium">15/19</td> + <td data-value="66.66" class="pct medium">66.66%</td> + <td data-value="6" class="abs medium">4/6</td> + <td data-value="77.77" class="pct medium">77.77%</td> + <td data-value="9" class="abs medium">7/9</td> + <td data-value="78.94" class="pct medium">78.94%</td> + <td data-value="19" class="abs medium">15/19</td> + </tr> + </tbody> + </table> + </div> + <div class="push"></div> + <!-- for sticky footer --> + </div> + <!-- /wrapper --> + <div class="footer quiet pad2 space-top1 center small"> + Code coverage generated by + <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a> + at 2026-02-13T21:49:58.924Z + </div> + <script src="../prettify.js"></script> + <script> + window.onload = function () { + prettyPrint(); + }; + </script> + <script src="../sorter.js"></script> + <script src="../block-navigation.js"></script> + </body> </html> -
\ No newline at end of file diff --git a/frontend/eslint.config.js b/frontend/eslint.config.js index 5e6b472..043ab7a 100644 --- a/frontend/eslint.config.js +++ b/frontend/eslint.config.js @@ -1,23 +1,27 @@ -import js from '@eslint/js' -import globals from 'globals' -import reactHooks from 'eslint-plugin-react-hooks' -import reactRefresh from 'eslint-plugin-react-refresh' -import tseslint from 'typescript-eslint' -import { defineConfig, globalIgnores } from 'eslint/config' +import js from '@eslint/js'; +import globals from 'globals'; +import reactHooks from 'eslint-plugin-react-hooks'; +import reactRefresh from 'eslint-plugin-react-refresh'; +import tseslint from 'typescript-eslint'; +import eslintConfigPrettier from 'eslint-config-prettier'; -export default defineConfig([ - globalIgnores(['dist']), +export default tseslint.config( + { ignores: ['dist'] }, { + extends: [js.configs.recommended, ...tseslint.configs.recommended], files: ['**/*.{ts,tsx}'], - extends: [ - js.configs.recommended, - tseslint.configs.recommended, - reactHooks.configs.flat.recommended, - reactRefresh.configs.vite, - ], languageOptions: { ecmaVersion: 2020, globals: globals.browser, }, + plugins: { + 'react-hooks': reactHooks, + 'react-refresh': reactRefresh, + }, + rules: { + ...reactHooks.configs.recommended.rules, + 'react-refresh/only-export-components': ['warn', { allowConstantExport: true }], + }, }, -]) + eslintConfigPrettier +); diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 9414557..fda0116 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -23,10 +23,13 @@ "@vitejs/plugin-react": "^5.1.1", "@vitest/coverage-v8": "^4.0.18", "eslint": "^9.39.1", + "eslint-config-prettier": "^10.1.8", + "eslint-plugin-prettier": "^5.5.5", "eslint-plugin-react-hooks": "^7.0.1", "eslint-plugin-react-refresh": "^0.4.24", "globals": "^16.5.0", "jsdom": "^28.0.0", + "prettier": "^3.8.1", "typescript": "~5.9.3", "typescript-eslint": "^8.48.0", "vite": "^7.3.1", @@ -1174,6 +1177,18 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@pkgr/core": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.9.tgz", + "integrity": "sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/pkgr" + } + }, "node_modules/@playwright/test": { "version": "1.58.2", "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.58.2.tgz", @@ -2651,6 +2666,51 @@ } } }, + "node_modules/eslint-config-prettier": { + "version": "10.1.8", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.8.tgz", + "integrity": "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "funding": { + "url": "https://opencollective.com/eslint-config-prettier" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "5.5.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.5.tgz", + "integrity": "sha512-hscXkbqUZ2sPithAuLm5MXL+Wph+U7wHngPBv9OMWwlP8iaflyxpjTYZkmdgB4/vPIhemRlBEoLrH7UC1n7aUw==", + "dev": true, + "dependencies": { + "prettier-linter-helpers": "^1.0.1", + "synckit": "^0.11.12" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" + }, + "peerDependencies": { + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "eslint-config-prettier": ">= 7.0.0 <10.0.0 || >=10.1.0", + "prettier": ">=3.0.0" + }, + "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + } + } + }, "node_modules/eslint-plugin-react-hooks": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-7.0.1.tgz", @@ -2790,6 +2850,12 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true + }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -3568,6 +3634,33 @@ "node": ">= 0.8.0" } }, + "node_modules/prettier": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.8.1.tgz", + "integrity": "sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.1.tgz", + "integrity": "sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg==", + "dev": true, + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/pretty-format": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", @@ -3872,6 +3965,21 @@ "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", "dev": true }, + "node_modules/synckit": { + "version": "0.11.12", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.12.tgz", + "integrity": "sha512-Bh7QjT8/SuKUIfObSXNHNSK6WHo6J1tHCqJsuaFDP7gP0fkzSfTxI8y85JrppZ0h8l0maIgc2tfuZQ6/t3GtnQ==", + "dev": true, + "dependencies": { + "@pkgr/core": "^0.2.9" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/synckit" + } + }, "node_modules/tinybench": { "version": "2.9.0", "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", diff --git a/frontend/package.json b/frontend/package.json index e2f7c1c..e5475dd 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -6,7 +6,8 @@ "scripts": { "dev": "vite", "build": "tsc -b && vite build", - "lint": "eslint .", + "lint": "eslint . --max-warnings 0", + "format": "prettier --write .", "preview": "vite preview", "test": "vitest", "test:e2e": "playwright test", @@ -28,13 +29,16 @@ "@vitejs/plugin-react": "^5.1.1", "@vitest/coverage-v8": "^4.0.18", "eslint": "^9.39.1", + "eslint-config-prettier": "^10.1.8", + "eslint-plugin-prettier": "^5.5.5", "eslint-plugin-react-hooks": "^7.0.1", "eslint-plugin-react-refresh": "^0.4.24", "globals": "^16.5.0", "jsdom": "^28.0.0", + "prettier": "^3.8.1", "typescript": "~5.9.3", "typescript-eslint": "^8.48.0", "vite": "^7.3.1", "vitest": "^4.0.18" } -}
\ No newline at end of file +} diff --git a/frontend/playwright-report/index.html b/frontend/playwright-report/index.html index 4095719..1d408fd 100644 --- a/frontend/playwright-report/index.html +++ b/frontend/playwright-report/index.html @@ -1,85 +1,21807 @@ - - -<!DOCTYPE html> -<html style='scrollbar-gutter: stable both-edges;'> +<!doctype html> +<html style="scrollbar-gutter: stable both-edges"> <head> - <meta charset='UTF-8'> - <meta name='color-scheme' content='dark light'> - <meta name='viewport' content='width=device-width, initial-scale=1.0'> + <meta charset="UTF-8" /> + <meta name="color-scheme" content="dark light" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Playwright Test Report</title> - <script type="module">var NA=Object.defineProperty;var BA=(l,u,c)=>u in l?NA(l,u,{enumerable:!0,configurable:!0,writable:!0,value:c}):l[u]=c;var yn=(l,u,c)=>BA(l,typeof u!="symbol"?u+"":u,c);(function(){const u=document.createElement("link").relList;if(u&&u.supports&&u.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))f(r);new MutationObserver(r=>{for(const o of r)if(o.type==="childList")for(const h of o.addedNodes)h.tagName==="LINK"&&h.rel==="modulepreload"&&f(h)}).observe(document,{childList:!0,subtree:!0});function c(r){const o={};return r.integrity&&(o.integrity=r.integrity),r.referrerPolicy&&(o.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?o.credentials="include":r.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function f(r){if(r.ep)return;r.ep=!0;const o=c(r);fetch(r.href,o)}})();function UA(l){return l&&l.__esModule&&Object.prototype.hasOwnProperty.call(l,"default")?l.default:l}var Mf={exports:{}},Ei={};/** - * @license React - * react-jsx-runtime.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var D1;function QA(){if(D1)return Ei;D1=1;var l=Symbol.for("react.transitional.element"),u=Symbol.for("react.fragment");function c(f,r,o){var h=null;if(o!==void 0&&(h=""+o),r.key!==void 0&&(h=""+r.key),"key"in r){o={};for(var v in r)v!=="key"&&(o[v]=r[v])}else o=r;return r=o.ref,{$$typeof:l,type:f,key:h,ref:r!==void 0?r:null,props:o}}return Ei.Fragment=u,Ei.jsx=c,Ei.jsxs=c,Ei}var M1;function zA(){return M1||(M1=1,Mf.exports=QA()),Mf.exports}var m=zA();const YA=15,xt=0,bn=1,LA=2,ye=-2,Ut=-3,j1=-4,xn=-5,Me=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],L2=1440,GA=0,XA=4,VA=9,ZA=5,qA=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],IA=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],KA=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],kA=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,112,112],JA=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],FA=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],ta=15;function Wf(){const l=this;let u,c,f,r,o,h;function v(A,E,S,O,X,B,b,p,x,R,U){let Z,F,j,D,N,K,J,k,nt,P,st,it,H,_,$;P=0,N=S;do f[A[E+P]]++,P++,N--;while(N!==0);if(f[0]==S)return b[0]=-1,p[0]=0,xt;for(k=p[0],K=1;K<=ta&&f[K]===0;K++);for(J=K,k<K&&(k=K),N=ta;N!==0&&f[N]===0;N--);for(j=N,k>N&&(k=N),p[0]=k,_=1<<K;K<N;K++,_<<=1)if((_-=f[K])<0)return Ut;if((_-=f[N])<0)return Ut;for(f[N]+=_,h[1]=K=0,P=1,H=2;--N!==0;)h[H]=K+=f[P],H++,P++;N=0,P=0;do(K=A[E+P])!==0&&(U[h[K]++]=N),P++;while(++N<S);for(S=h[j],h[0]=N=0,P=0,D=-1,it=-k,o[0]=0,st=0,$=0;J<=j;J++)for(Z=f[J];Z--!==0;){for(;J>it+k;){if(D++,it+=k,$=j-it,$=$>k?k:$,(F=1<<(K=J-it))>Z+1&&(F-=Z+1,H=J,K<$))for(;++K<$&&!((F<<=1)<=f[++H]);)F-=f[H];if($=1<<K,R[0]+$>L2)return Ut;o[D]=st=R[0],R[0]+=$,D!==0?(h[D]=N,r[0]=K,r[1]=k,K=N>>>it-k,r[2]=st-o[D-1]-K,x.set(r,(o[D-1]+K)*3)):b[0]=st}for(r[1]=J-it,P>=S?r[0]=192:U[P]<O?(r[0]=U[P]<256?0:96,r[2]=U[P++]):(r[0]=B[U[P]-O]+16+64,r[2]=X[U[P++]-O]),F=1<<J-it,K=N>>>it;K<$;K+=F)x.set(r,(st+K)*3);for(K=1<<J-1;(N&K)!==0;K>>>=1)N^=K;for(N^=K,nt=(1<<it)-1;(N&nt)!=h[D];)D--,it-=k,nt=(1<<it)-1}return _!==0&&j!=1?xn:xt}function y(A){let E;for(u||(u=[],c=[],f=new Int32Array(ta+1),r=[],o=new Int32Array(ta),h=new Int32Array(ta+1)),c.length<A&&(c=[]),E=0;E<A;E++)c[E]=0;for(E=0;E<ta+1;E++)f[E]=0;for(E=0;E<3;E++)r[E]=0;o.set(f.subarray(0,ta),0),h.set(f.subarray(0,ta+1),0)}l.inflate_trees_bits=function(A,E,S,O,X){let B;return y(19),u[0]=0,B=v(A,0,19,19,null,null,S,E,O,u,c),B==Ut?X.msg="oversubscribed dynamic bit lengths tree":(B==xn||E[0]===0)&&(X.msg="incomplete dynamic bit lengths tree",B=Ut),B},l.inflate_trees_dynamic=function(A,E,S,O,X,B,b,p,x){let R;return y(288),u[0]=0,R=v(S,0,A,257,KA,kA,B,O,p,u,c),R!=xt||O[0]===0?(R==Ut?x.msg="oversubscribed literal/length tree":R!=j1&&(x.msg="incomplete literal/length tree",R=Ut),R):(y(288),R=v(S,A,E,0,JA,FA,b,X,p,u,c),R!=xt||X[0]===0&&A>257?(R==Ut?x.msg="oversubscribed distance tree":R==xn?(x.msg="incomplete distance tree",R=Ut):R!=j1&&(x.msg="empty distance tree with lengths",R=Ut),R):xt)}}Wf.inflate_trees_fixed=function(l,u,c,f){return l[0]=VA,u[0]=ZA,c[0]=qA,f[0]=IA,xt};const Pu=0,H1=1,N1=2,B1=3,U1=4,Q1=5,z1=6,jf=7,Y1=8,$u=9;function WA(){const l=this;let u,c=0,f,r=0,o=0,h=0,v=0,y=0,A=0,E=0,S,O=0,X,B=0;function b(p,x,R,U,Z,F,j,D){let N,K,J,k,nt,P,st,it,H,_,$,ht,tt,C,L,W;st=D.next_in_index,it=D.avail_in,nt=j.bitb,P=j.bitk,H=j.write,_=H<j.read?j.read-H-1:j.end-H,$=Me[p],ht=Me[x];do{for(;P<20;)it--,nt|=(D.read_byte(st++)&255)<<P,P+=8;if(N=nt&$,K=R,J=U,W=(J+N)*3,(k=K[W])===0){nt>>=K[W+1],P-=K[W+1],j.win[H++]=K[W+2],_--;continue}do{if(nt>>=K[W+1],P-=K[W+1],(k&16)!==0){for(k&=15,tt=K[W+2]+(nt&Me[k]),nt>>=k,P-=k;P<15;)it--,nt|=(D.read_byte(st++)&255)<<P,P+=8;N=nt&ht,K=Z,J=F,W=(J+N)*3,k=K[W];do if(nt>>=K[W+1],P-=K[W+1],(k&16)!==0){for(k&=15;P<k;)it--,nt|=(D.read_byte(st++)&255)<<P,P+=8;if(C=K[W+2]+(nt&Me[k]),nt>>=k,P-=k,_-=tt,H>=C)L=H-C,H-L>0&&2>H-L?(j.win[H++]=j.win[L++],j.win[H++]=j.win[L++],tt-=2):(j.win.set(j.win.subarray(L,L+2),H),H+=2,L+=2,tt-=2);else{L=H-C;do L+=j.end;while(L<0);if(k=j.end-L,tt>k){if(tt-=k,H-L>0&&k>H-L)do j.win[H++]=j.win[L++];while(--k!==0);else j.win.set(j.win.subarray(L,L+k),H),H+=k,L+=k,k=0;L=0}}if(H-L>0&&tt>H-L)do j.win[H++]=j.win[L++];while(--tt!==0);else j.win.set(j.win.subarray(L,L+tt),H),H+=tt,L+=tt,tt=0;break}else if((k&64)===0)N+=K[W+2],N+=nt&Me[k],W=(J+N)*3,k=K[W];else return D.msg="invalid distance code",tt=D.avail_in-it,tt=P>>3<tt?P>>3:tt,it+=tt,st-=tt,P-=tt<<3,j.bitb=nt,j.bitk=P,D.avail_in=it,D.total_in+=st-D.next_in_index,D.next_in_index=st,j.write=H,Ut;while(!0);break}if((k&64)===0){if(N+=K[W+2],N+=nt&Me[k],W=(J+N)*3,(k=K[W])===0){nt>>=K[W+1],P-=K[W+1],j.win[H++]=K[W+2],_--;break}}else return(k&32)!==0?(tt=D.avail_in-it,tt=P>>3<tt?P>>3:tt,it+=tt,st-=tt,P-=tt<<3,j.bitb=nt,j.bitk=P,D.avail_in=it,D.total_in+=st-D.next_in_index,D.next_in_index=st,j.write=H,bn):(D.msg="invalid literal/length code",tt=D.avail_in-it,tt=P>>3<tt?P>>3:tt,it+=tt,st-=tt,P-=tt<<3,j.bitb=nt,j.bitk=P,D.avail_in=it,D.total_in+=st-D.next_in_index,D.next_in_index=st,j.write=H,Ut)}while(!0)}while(_>=258&&it>=10);return tt=D.avail_in-it,tt=P>>3<tt?P>>3:tt,it+=tt,st-=tt,P-=tt<<3,j.bitb=nt,j.bitk=P,D.avail_in=it,D.total_in+=st-D.next_in_index,D.next_in_index=st,j.write=H,xt}l.init=function(p,x,R,U,Z,F){u=Pu,A=p,E=x,S=R,O=U,X=Z,B=F,f=null},l.proc=function(p,x,R){let U,Z,F,j=0,D=0,N=0,K,J,k,nt;for(N=x.next_in_index,K=x.avail_in,j=p.bitb,D=p.bitk,J=p.write,k=J<p.read?p.read-J-1:p.end-J;;)switch(u){case Pu:if(k>=258&&K>=10&&(p.bitb=j,p.bitk=D,x.avail_in=K,x.total_in+=N-x.next_in_index,x.next_in_index=N,p.write=J,R=b(A,E,S,O,X,B,p,x),N=x.next_in_index,K=x.avail_in,j=p.bitb,D=p.bitk,J=p.write,k=J<p.read?p.read-J-1:p.end-J,R!=xt)){u=R==bn?jf:$u;break}o=A,f=S,r=O,u=H1;case H1:for(U=o;D<U;){if(K!==0)R=xt;else return p.bitb=j,p.bitk=D,x.avail_in=K,x.total_in+=N-x.next_in_index,x.next_in_index=N,p.write=J,p.inflate_flush(x,R);K--,j|=(x.read_byte(N++)&255)<<D,D+=8}if(Z=(r+(j&Me[U]))*3,j>>>=f[Z+1],D-=f[Z+1],F=f[Z],F===0){h=f[Z+2],u=z1;break}if((F&16)!==0){v=F&15,c=f[Z+2],u=N1;break}if((F&64)===0){o=F,r=Z/3+f[Z+2];break}if((F&32)!==0){u=jf;break}return u=$u,x.msg="invalid literal/length code",R=Ut,p.bitb=j,p.bitk=D,x.avail_in=K,x.total_in+=N-x.next_in_index,x.next_in_index=N,p.write=J,p.inflate_flush(x,R);case N1:for(U=v;D<U;){if(K!==0)R=xt;else return p.bitb=j,p.bitk=D,x.avail_in=K,x.total_in+=N-x.next_in_index,x.next_in_index=N,p.write=J,p.inflate_flush(x,R);K--,j|=(x.read_byte(N++)&255)<<D,D+=8}c+=j&Me[U],j>>=U,D-=U,o=E,f=X,r=B,u=B1;case B1:for(U=o;D<U;){if(K!==0)R=xt;else return p.bitb=j,p.bitk=D,x.avail_in=K,x.total_in+=N-x.next_in_index,x.next_in_index=N,p.write=J,p.inflate_flush(x,R);K--,j|=(x.read_byte(N++)&255)<<D,D+=8}if(Z=(r+(j&Me[U]))*3,j>>=f[Z+1],D-=f[Z+1],F=f[Z],(F&16)!==0){v=F&15,y=f[Z+2],u=U1;break}if((F&64)===0){o=F,r=Z/3+f[Z+2];break}return u=$u,x.msg="invalid distance code",R=Ut,p.bitb=j,p.bitk=D,x.avail_in=K,x.total_in+=N-x.next_in_index,x.next_in_index=N,p.write=J,p.inflate_flush(x,R);case U1:for(U=v;D<U;){if(K!==0)R=xt;else return p.bitb=j,p.bitk=D,x.avail_in=K,x.total_in+=N-x.next_in_index,x.next_in_index=N,p.write=J,p.inflate_flush(x,R);K--,j|=(x.read_byte(N++)&255)<<D,D+=8}y+=j&Me[U],j>>=U,D-=U,u=Q1;case Q1:for(nt=J-y;nt<0;)nt+=p.end;for(;c!==0;){if(k===0&&(J==p.end&&p.read!==0&&(J=0,k=J<p.read?p.read-J-1:p.end-J),k===0&&(p.write=J,R=p.inflate_flush(x,R),J=p.write,k=J<p.read?p.read-J-1:p.end-J,J==p.end&&p.read!==0&&(J=0,k=J<p.read?p.read-J-1:p.end-J),k===0)))return p.bitb=j,p.bitk=D,x.avail_in=K,x.total_in+=N-x.next_in_index,x.next_in_index=N,p.write=J,p.inflate_flush(x,R);p.win[J++]=p.win[nt++],k--,nt==p.end&&(nt=0),c--}u=Pu;break;case z1:if(k===0&&(J==p.end&&p.read!==0&&(J=0,k=J<p.read?p.read-J-1:p.end-J),k===0&&(p.write=J,R=p.inflate_flush(x,R),J=p.write,k=J<p.read?p.read-J-1:p.end-J,J==p.end&&p.read!==0&&(J=0,k=J<p.read?p.read-J-1:p.end-J),k===0)))return p.bitb=j,p.bitk=D,x.avail_in=K,x.total_in+=N-x.next_in_index,x.next_in_index=N,p.write=J,p.inflate_flush(x,R);R=xt,p.win[J++]=h,k--,u=Pu;break;case jf:if(D>7&&(D-=8,K++,N--),p.write=J,R=p.inflate_flush(x,R),J=p.write,k=J<p.read?p.read-J-1:p.end-J,p.read!=p.write)return p.bitb=j,p.bitk=D,x.avail_in=K,x.total_in+=N-x.next_in_index,x.next_in_index=N,p.write=J,p.inflate_flush(x,R);u=Y1;case Y1:return R=bn,p.bitb=j,p.bitk=D,x.avail_in=K,x.total_in+=N-x.next_in_index,x.next_in_index=N,p.write=J,p.inflate_flush(x,R);case $u:return R=Ut,p.bitb=j,p.bitk=D,x.avail_in=K,x.total_in+=N-x.next_in_index,x.next_in_index=N,p.write=J,p.inflate_flush(x,R);default:return R=ye,p.bitb=j,p.bitk=D,x.avail_in=K,x.total_in+=N-x.next_in_index,x.next_in_index=N,p.write=J,p.inflate_flush(x,R)}},l.free=function(){}}const L1=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],bl=0,Hf=1,G1=2,X1=3,V1=4,Z1=5,tc=6,ec=7,q1=8,Da=9;function _A(l,u){const c=this;let f=bl,r=0,o=0,h=0,v;const y=[0],A=[0],E=new WA;let S=0,O=new Int32Array(L2*3);const X=0,B=new Wf;c.bitk=0,c.bitb=0,c.win=new Uint8Array(u),c.end=u,c.read=0,c.write=0,c.reset=function(b,p){p&&(p[0]=X),f==tc&&E.free(b),f=bl,c.bitk=0,c.bitb=0,c.read=c.write=0},c.reset(l,null),c.inflate_flush=function(b,p){let x,R,U;return R=b.next_out_index,U=c.read,x=(U<=c.write?c.write:c.end)-U,x>b.avail_out&&(x=b.avail_out),x!==0&&p==xn&&(p=xt),b.avail_out-=x,b.total_out+=x,b.next_out.set(c.win.subarray(U,U+x),R),R+=x,U+=x,U==c.end&&(U=0,c.write==c.end&&(c.write=0),x=c.write-U,x>b.avail_out&&(x=b.avail_out),x!==0&&p==xn&&(p=xt),b.avail_out-=x,b.total_out+=x,b.next_out.set(c.win.subarray(U,U+x),R),R+=x,U+=x),b.next_out_index=R,c.read=U,p},c.proc=function(b,p){let x,R,U,Z,F,j,D,N;for(Z=b.next_in_index,F=b.avail_in,R=c.bitb,U=c.bitk,j=c.write,D=j<c.read?c.read-j-1:c.end-j;;){let K,J,k,nt,P,st,it,H;switch(f){case bl:for(;U<3;){if(F!==0)p=xt;else return c.bitb=R,c.bitk=U,b.avail_in=F,b.total_in+=Z-b.next_in_index,b.next_in_index=Z,c.write=j,c.inflate_flush(b,p);F--,R|=(b.read_byte(Z++)&255)<<U,U+=8}switch(x=R&7,S=x&1,x>>>1){case 0:R>>>=3,U-=3,x=U&7,R>>>=x,U-=x,f=Hf;break;case 1:K=[],J=[],k=[[]],nt=[[]],Wf.inflate_trees_fixed(K,J,k,nt),E.init(K[0],J[0],k[0],0,nt[0],0),R>>>=3,U-=3,f=tc;break;case 2:R>>>=3,U-=3,f=X1;break;case 3:return R>>>=3,U-=3,f=Da,b.msg="invalid block type",p=Ut,c.bitb=R,c.bitk=U,b.avail_in=F,b.total_in+=Z-b.next_in_index,b.next_in_index=Z,c.write=j,c.inflate_flush(b,p)}break;case Hf:for(;U<32;){if(F!==0)p=xt;else return c.bitb=R,c.bitk=U,b.avail_in=F,b.total_in+=Z-b.next_in_index,b.next_in_index=Z,c.write=j,c.inflate_flush(b,p);F--,R|=(b.read_byte(Z++)&255)<<U,U+=8}if((~R>>>16&65535)!=(R&65535))return f=Da,b.msg="invalid stored block lengths",p=Ut,c.bitb=R,c.bitk=U,b.avail_in=F,b.total_in+=Z-b.next_in_index,b.next_in_index=Z,c.write=j,c.inflate_flush(b,p);r=R&65535,R=U=0,f=r!==0?G1:S!==0?ec:bl;break;case G1:if(F===0||D===0&&(j==c.end&&c.read!==0&&(j=0,D=j<c.read?c.read-j-1:c.end-j),D===0&&(c.write=j,p=c.inflate_flush(b,p),j=c.write,D=j<c.read?c.read-j-1:c.end-j,j==c.end&&c.read!==0&&(j=0,D=j<c.read?c.read-j-1:c.end-j),D===0)))return c.bitb=R,c.bitk=U,b.avail_in=F,b.total_in+=Z-b.next_in_index,b.next_in_index=Z,c.write=j,c.inflate_flush(b,p);if(p=xt,x=r,x>F&&(x=F),x>D&&(x=D),c.win.set(b.read_buf(Z,x),j),Z+=x,F-=x,j+=x,D-=x,(r-=x)!==0)break;f=S!==0?ec:bl;break;case X1:for(;U<14;){if(F!==0)p=xt;else return c.bitb=R,c.bitk=U,b.avail_in=F,b.total_in+=Z-b.next_in_index,b.next_in_index=Z,c.write=j,c.inflate_flush(b,p);F--,R|=(b.read_byte(Z++)&255)<<U,U+=8}if(o=x=R&16383,(x&31)>29||(x>>5&31)>29)return f=Da,b.msg="too many length or distance symbols",p=Ut,c.bitb=R,c.bitk=U,b.avail_in=F,b.total_in+=Z-b.next_in_index,b.next_in_index=Z,c.write=j,c.inflate_flush(b,p);if(x=258+(x&31)+(x>>5&31),!v||v.length<x)v=[];else for(N=0;N<x;N++)v[N]=0;R>>>=14,U-=14,h=0,f=V1;case V1:for(;h<4+(o>>>10);){for(;U<3;){if(F!==0)p=xt;else return c.bitb=R,c.bitk=U,b.avail_in=F,b.total_in+=Z-b.next_in_index,b.next_in_index=Z,c.write=j,c.inflate_flush(b,p);F--,R|=(b.read_byte(Z++)&255)<<U,U+=8}v[L1[h++]]=R&7,R>>>=3,U-=3}for(;h<19;)v[L1[h++]]=0;if(y[0]=7,x=B.inflate_trees_bits(v,y,A,O,b),x!=xt)return p=x,p==Ut&&(v=null,f=Da),c.bitb=R,c.bitk=U,b.avail_in=F,b.total_in+=Z-b.next_in_index,b.next_in_index=Z,c.write=j,c.inflate_flush(b,p);h=0,f=Z1;case Z1:for(;x=o,!(h>=258+(x&31)+(x>>5&31));){let _,$;for(x=y[0];U<x;){if(F!==0)p=xt;else return c.bitb=R,c.bitk=U,b.avail_in=F,b.total_in+=Z-b.next_in_index,b.next_in_index=Z,c.write=j,c.inflate_flush(b,p);F--,R|=(b.read_byte(Z++)&255)<<U,U+=8}if(x=O[(A[0]+(R&Me[x]))*3+1],$=O[(A[0]+(R&Me[x]))*3+2],$<16)R>>>=x,U-=x,v[h++]=$;else{for(N=$==18?7:$-14,_=$==18?11:3;U<x+N;){if(F!==0)p=xt;else return c.bitb=R,c.bitk=U,b.avail_in=F,b.total_in+=Z-b.next_in_index,b.next_in_index=Z,c.write=j,c.inflate_flush(b,p);F--,R|=(b.read_byte(Z++)&255)<<U,U+=8}if(R>>>=x,U-=x,_+=R&Me[N],R>>>=N,U-=N,N=h,x=o,N+_>258+(x&31)+(x>>5&31)||$==16&&N<1)return v=null,f=Da,b.msg="invalid bit length repeat",p=Ut,c.bitb=R,c.bitk=U,b.avail_in=F,b.total_in+=Z-b.next_in_index,b.next_in_index=Z,c.write=j,c.inflate_flush(b,p);$=$==16?v[N-1]:0;do v[N++]=$;while(--_!==0);h=N}}if(A[0]=-1,P=[],st=[],it=[],H=[],P[0]=9,st[0]=6,x=o,x=B.inflate_trees_dynamic(257+(x&31),1+(x>>5&31),v,P,st,it,H,O,b),x!=xt)return x==Ut&&(v=null,f=Da),p=x,c.bitb=R,c.bitk=U,b.avail_in=F,b.total_in+=Z-b.next_in_index,b.next_in_index=Z,c.write=j,c.inflate_flush(b,p);E.init(P[0],st[0],O,it[0],O,H[0]),f=tc;case tc:if(c.bitb=R,c.bitk=U,b.avail_in=F,b.total_in+=Z-b.next_in_index,b.next_in_index=Z,c.write=j,(p=E.proc(c,b,p))!=bn)return c.inflate_flush(b,p);if(p=xt,E.free(b),Z=b.next_in_index,F=b.avail_in,R=c.bitb,U=c.bitk,j=c.write,D=j<c.read?c.read-j-1:c.end-j,S===0){f=bl;break}f=ec;case ec:if(c.write=j,p=c.inflate_flush(b,p),j=c.write,D=j<c.read?c.read-j-1:c.end-j,c.read!=c.write)return c.bitb=R,c.bitk=U,b.avail_in=F,b.total_in+=Z-b.next_in_index,b.next_in_index=Z,c.write=j,c.inflate_flush(b,p);f=q1;case q1:return p=bn,c.bitb=R,c.bitk=U,b.avail_in=F,b.total_in+=Z-b.next_in_index,b.next_in_index=Z,c.write=j,c.inflate_flush(b,p);case Da:return p=Ut,c.bitb=R,c.bitk=U,b.avail_in=F,b.total_in+=Z-b.next_in_index,b.next_in_index=Z,c.write=j,c.inflate_flush(b,p);default:return p=ye,c.bitb=R,c.bitk=U,b.avail_in=F,b.total_in+=Z-b.next_in_index,b.next_in_index=Z,c.write=j,c.inflate_flush(b,p)}}},c.free=function(b){c.reset(b,null),c.win=null,O=null},c.set_dictionary=function(b,p,x){c.win.set(b.subarray(p,p+x),0),c.read=c.write=x},c.sync_point=function(){return f==Hf?1:0}}const PA=32,$A=8,t8=0,I1=1,K1=2,k1=3,J1=4,F1=5,Nf=6,pi=7,W1=12,ea=13,e8=[0,0,255,255];function n8(){const l=this;l.mode=0,l.method=0,l.was=[0],l.need=0,l.marker=0,l.wbits=0;function u(c){return!c||!c.istate?ye:(c.total_in=c.total_out=0,c.msg=null,c.istate.mode=pi,c.istate.blocks.reset(c,null),xt)}l.inflateEnd=function(c){return l.blocks&&l.blocks.free(c),l.blocks=null,xt},l.inflateInit=function(c,f){return c.msg=null,l.blocks=null,f<8||f>15?(l.inflateEnd(c),ye):(l.wbits=f,c.istate.blocks=new _A(c,1<<f),u(c),xt)},l.inflate=function(c,f){let r,o;if(!c||!c.istate||!c.next_in)return ye;const h=c.istate;for(f=f==XA?xn:xt,r=xn;;)switch(h.mode){case t8:if(c.avail_in===0)return r;if(r=f,c.avail_in--,c.total_in++,((h.method=c.read_byte(c.next_in_index++))&15)!=$A){h.mode=ea,c.msg="unknown compression method",h.marker=5;break}if((h.method>>4)+8>h.wbits){h.mode=ea,c.msg="invalid win size",h.marker=5;break}h.mode=I1;case I1:if(c.avail_in===0)return r;if(r=f,c.avail_in--,c.total_in++,o=c.read_byte(c.next_in_index++)&255,((h.method<<8)+o)%31!==0){h.mode=ea,c.msg="incorrect header check",h.marker=5;break}if((o&PA)===0){h.mode=pi;break}h.mode=K1;case K1:if(c.avail_in===0)return r;r=f,c.avail_in--,c.total_in++,h.need=(c.read_byte(c.next_in_index++)&255)<<24&4278190080,h.mode=k1;case k1:if(c.avail_in===0)return r;r=f,c.avail_in--,c.total_in++,h.need+=(c.read_byte(c.next_in_index++)&255)<<16&16711680,h.mode=J1;case J1:if(c.avail_in===0)return r;r=f,c.avail_in--,c.total_in++,h.need+=(c.read_byte(c.next_in_index++)&255)<<8&65280,h.mode=F1;case F1:return c.avail_in===0?r:(r=f,c.avail_in--,c.total_in++,h.need+=c.read_byte(c.next_in_index++)&255,h.mode=Nf,LA);case Nf:return h.mode=ea,c.msg="need dictionary",h.marker=0,ye;case pi:if(r=h.blocks.proc(c,r),r==Ut){h.mode=ea,h.marker=0;break}if(r==xt&&(r=f),r!=bn)return r;r=f,h.blocks.reset(c,h.was),h.mode=W1;case W1:return c.avail_in=0,bn;case ea:return Ut;default:return ye}},l.inflateSetDictionary=function(c,f,r){let o=0,h=r;if(!c||!c.istate||c.istate.mode!=Nf)return ye;const v=c.istate;return h>=1<<v.wbits&&(h=(1<<v.wbits)-1,o=r-h),v.blocks.set_dictionary(f,o,h),v.mode=pi,xt},l.inflateSync=function(c){let f,r,o,h,v;if(!c||!c.istate)return ye;const y=c.istate;if(y.mode!=ea&&(y.mode=ea,y.marker=0),(f=c.avail_in)===0)return xn;for(r=c.next_in_index,o=y.marker;f!==0&&o<4;)c.read_byte(r)==e8[o]?o++:c.read_byte(r)!==0?o=0:o=4-o,r++,f--;return c.total_in+=r-c.next_in_index,c.next_in_index=r,c.avail_in=f,y.marker=o,o!=4?Ut:(h=c.total_in,v=c.total_out,u(c),c.total_in=h,c.total_out=v,y.mode=pi,xt)},l.inflateSyncPoint=function(c){return!c||!c.istate||!c.istate.blocks?ye:c.istate.blocks.sync_point()}}function G2(){}G2.prototype={inflateInit(l){const u=this;return u.istate=new n8,l||(l=YA),u.istate.inflateInit(u,l)},inflate(l){const u=this;return u.istate?u.istate.inflate(u,l):ye},inflateEnd(){const l=this;if(!l.istate)return ye;const u=l.istate.inflateEnd(l);return l.istate=null,u},inflateSync(){const l=this;return l.istate?l.istate.inflateSync(l):ye},inflateSetDictionary(l,u){const c=this;return c.istate?c.istate.inflateSetDictionary(c,l,u):ye},read_byte(l){return this.next_in[l]},read_buf(l,u){return this.next_in.subarray(l,l+u)}};function a8(l){const u=this,c=new G2,f=l&&l.chunkSize?Math.floor(l.chunkSize*2):128*1024,r=GA,o=new Uint8Array(f);let h=!1;c.inflateInit(),c.next_out=o,u.append=function(v,y){const A=[];let E,S,O=0,X=0,B=0;if(v.length!==0){c.next_in_index=0,c.next_in=v,c.avail_in=v.length;do{if(c.next_out_index=0,c.avail_out=f,c.avail_in===0&&!h&&(c.next_in_index=0,h=!0),E=c.inflate(r),h&&E===xn){if(c.avail_in!==0)throw new Error("inflating: bad input")}else if(E!==xt&&E!==bn)throw new Error("inflating: "+c.msg);if((h||E===bn)&&c.avail_in===v.length)throw new Error("inflating: bad input");c.next_out_index&&(c.next_out_index===f?A.push(new Uint8Array(o)):A.push(o.subarray(0,c.next_out_index))),B+=c.next_out_index,y&&c.next_in_index>0&&c.next_in_index!=O&&(y(c.next_in_index),O=c.next_in_index)}while(c.avail_in>0||c.avail_out===0);return A.length>1?(S=new Uint8Array(B),A.forEach(function(b){S.set(b,X),X+=b.length})):S=A[0]?new Uint8Array(A[0]):new Uint8Array,S}},u.flush=function(){c.inflateEnd()}}const ja=4294967295,la=65535,l8=8,i8=0,u8=99,c8=67324752,X2=134695760,s8=X2,_1=33639248,f8=101010256,P1=101075792,r8=117853008,pn=22,Bf=20,Uf=56,o8=12,d8=20,$1=4,h8=1,m8=39169,g8=10,A8=1,v8=21589,y8=28789,E8=25461,p8=6534,t2=1,b8=6,e2=8,n2=2048,a2=16,x8=61440,S8=16384,T8=73,l2="/",Qf=30,C8=10,O8=14,w8=18,Jt=void 0,sa="undefined",Mi="function";class i2{constructor(u){return class extends TransformStream{constructor(c,f){const r=new u(f);super({transform(o,h){h.enqueue(r.append(o))},flush(o){const h=r.flush();h&&o.enqueue(h)}})}}}}const R8=64;let V2=2;try{typeof navigator!=sa&&navigator.hardwareConcurrency&&(V2=navigator.hardwareConcurrency)}catch{}const D8={chunkSize:512*1024,maxWorkers:V2,terminateWorkerTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,workerScripts:Jt,CompressionStreamNative:typeof CompressionStream!=sa&&CompressionStream,DecompressionStreamNative:typeof DecompressionStream!=sa&&DecompressionStream},ia=Object.assign({},D8);function Z2(){return ia}function M8(l){return Math.max(l.chunkSize,R8)}function q2(l){const{baseURL:u,chunkSize:c,maxWorkers:f,terminateWorkerTimeout:r,useCompressionStream:o,useWebWorkers:h,Deflate:v,Inflate:y,CompressionStream:A,DecompressionStream:E,workerScripts:S}=l;if(na("baseURL",u),na("chunkSize",c),na("maxWorkers",f),na("terminateWorkerTimeout",r),na("useCompressionStream",o),na("useWebWorkers",h),v&&(ia.CompressionStream=new i2(v)),y&&(ia.DecompressionStream=new i2(y)),na("CompressionStream",A),na("DecompressionStream",E),S!==Jt){const{deflate:O,inflate:X}=S;if((O||X)&&(ia.workerScripts||(ia.workerScripts={})),O){if(!Array.isArray(O))throw new Error("workerScripts.deflate must be an array");ia.workerScripts.deflate=O}if(X){if(!Array.isArray(X))throw new Error("workerScripts.inflate must be an array");ia.workerScripts.inflate=X}}}function na(l,u){u!==Jt&&(ia[l]=u)}function j8(){return"application/octet-stream"}const I2=[];for(let l=0;l<256;l++){let u=l;for(let c=0;c<8;c++)u&1?u=u>>>1^3988292384:u=u>>>1;I2[l]=u}class cc{constructor(u){this.crc=u||-1}append(u){let c=this.crc|0;for(let f=0,r=u.length|0;f<r;f++)c=c>>>8^I2[(c^u[f])&255];this.crc=c}get(){return~this.crc}}class K2 extends TransformStream{constructor(){let u;const c=new cc;super({transform(f,r){c.append(f),r.enqueue(f)},flush(){const f=new Uint8Array(4);new DataView(f.buffer).setUint32(0,c.get()),u.value=f}}),u=this}}function H8(l){if(typeof TextEncoder==sa){l=unescape(encodeURIComponent(l));const u=new Uint8Array(l.length);for(let c=0;c<u.length;c++)u[c]=l.charCodeAt(c);return u}else return new TextEncoder().encode(l)}const re={concat(l,u){if(l.length===0||u.length===0)return l.concat(u);const c=l[l.length-1],f=re.getPartial(c);return f===32?l.concat(u):re._shiftRight(u,f,c|0,l.slice(0,l.length-1))},bitLength(l){const u=l.length;if(u===0)return 0;const c=l[u-1];return(u-1)*32+re.getPartial(c)},clamp(l,u){if(l.length*32<u)return l;l=l.slice(0,Math.ceil(u/32));const c=l.length;return u=u&31,c>0&&u&&(l[c-1]=re.partial(u,l[c-1]&2147483648>>u-1,1)),l},partial(l,u,c){return l===32?u:(c?u|0:u<<32-l)+l*1099511627776},getPartial(l){return Math.round(l/1099511627776)||32},_shiftRight(l,u,c,f){for(f===void 0&&(f=[]);u>=32;u-=32)f.push(c),c=0;if(u===0)return f.concat(l);for(let h=0;h<l.length;h++)f.push(c|l[h]>>>u),c=l[h]<<32-u;const r=l.length?l[l.length-1]:0,o=re.getPartial(r);return f.push(re.partial(u+o&31,u+o>32?c:f.pop(),1)),f}},sc={bytes:{fromBits(l){const c=re.bitLength(l)/8,f=new Uint8Array(c);let r;for(let o=0;o<c;o++)(o&3)===0&&(r=l[o/4]),f[o]=r>>>24,r<<=8;return f},toBits(l){const u=[];let c,f=0;for(c=0;c<l.length;c++)f=f<<8|l[c],(c&3)===3&&(u.push(f),f=0);return c&3&&u.push(re.partial(8*(c&3),f)),u}}},k2={};k2.sha1=class{constructor(l){const u=this;u.blockSize=512,u._init=[1732584193,4023233417,2562383102,271733878,3285377520],u._key=[1518500249,1859775393,2400959708,3395469782],l?(u._h=l._h.slice(0),u._buffer=l._buffer.slice(0),u._length=l._length):u.reset()}reset(){const l=this;return l._h=l._init.slice(0),l._buffer=[],l._length=0,l}update(l){const u=this;typeof l=="string"&&(l=sc.utf8String.toBits(l));const c=u._buffer=re.concat(u._buffer,l),f=u._length,r=u._length=f+re.bitLength(l);if(r>9007199254740991)throw new Error("Cannot hash more than 2^53 - 1 bits");const o=new Uint32Array(c);let h=0;for(let v=u.blockSize+f-(u.blockSize+f&u.blockSize-1);v<=r;v+=u.blockSize)u._block(o.subarray(16*h,16*(h+1))),h+=1;return c.splice(0,16*h),u}finalize(){const l=this;let u=l._buffer;const c=l._h;u=re.concat(u,[re.partial(1,1)]);for(let f=u.length+2;f&15;f++)u.push(0);for(u.push(Math.floor(l._length/4294967296)),u.push(l._length|0);u.length;)l._block(u.splice(0,16));return l.reset(),c}_f(l,u,c,f){if(l<=19)return u&c|~u&f;if(l<=39)return u^c^f;if(l<=59)return u&c|u&f|c&f;if(l<=79)return u^c^f}_S(l,u){return u<<l|u>>>32-l}_block(l){const u=this,c=u._h,f=Array(80);for(let A=0;A<16;A++)f[A]=l[A];let r=c[0],o=c[1],h=c[2],v=c[3],y=c[4];for(let A=0;A<=79;A++){A>=16&&(f[A]=u._S(1,f[A-3]^f[A-8]^f[A-14]^f[A-16]));const E=u._S(5,r)+u._f(A,o,h,v)+y+f[A]+u._key[Math.floor(A/20)]|0;y=v,v=h,h=u._S(30,o),o=r,r=E}c[0]=c[0]+r|0,c[1]=c[1]+o|0,c[2]=c[2]+h|0,c[3]=c[3]+v|0,c[4]=c[4]+y|0}};const J2={};J2.aes=class{constructor(l){const u=this;u._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],u._tables[0][0][0]||u._precompute();const c=u._tables[0][4],f=u._tables[1],r=l.length;let o,h,v,y=1;if(r!==4&&r!==6&&r!==8)throw new Error("invalid aes key size");for(u._key=[h=l.slice(0),v=[]],o=r;o<4*r+28;o++){let A=h[o-1];(o%r===0||r===8&&o%r===4)&&(A=c[A>>>24]<<24^c[A>>16&255]<<16^c[A>>8&255]<<8^c[A&255],o%r===0&&(A=A<<8^A>>>24^y<<24,y=y<<1^(y>>7)*283)),h[o]=h[o-r]^A}for(let A=0;o;A++,o--){const E=h[A&3?o:o-4];o<=4||A<4?v[A]=E:v[A]=f[0][c[E>>>24]]^f[1][c[E>>16&255]]^f[2][c[E>>8&255]]^f[3][c[E&255]]}}encrypt(l){return this._crypt(l,0)}decrypt(l){return this._crypt(l,1)}_precompute(){const l=this._tables[0],u=this._tables[1],c=l[4],f=u[4],r=[],o=[];let h,v,y,A;for(let E=0;E<256;E++)o[(r[E]=E<<1^(E>>7)*283)^E]=E;for(let E=h=0;!c[E];E^=v||1,h=o[h]||1){let S=h^h<<1^h<<2^h<<3^h<<4;S=S>>8^S&255^99,c[E]=S,f[S]=E,A=r[y=r[v=r[E]]];let O=A*16843009^y*65537^v*257^E*16843008,X=r[S]*257^S*16843008;for(let B=0;B<4;B++)l[B][E]=X=X<<24^X>>>8,u[B][S]=O=O<<24^O>>>8}for(let E=0;E<5;E++)l[E]=l[E].slice(0),u[E]=u[E].slice(0)}_crypt(l,u){if(l.length!==4)throw new Error("invalid aes block size");const c=this._key[u],f=c.length/4-2,r=[0,0,0,0],o=this._tables[u],h=o[0],v=o[1],y=o[2],A=o[3],E=o[4];let S=l[0]^c[0],O=l[u?3:1]^c[1],X=l[2]^c[2],B=l[u?1:3]^c[3],b=4,p,x,R;for(let U=0;U<f;U++)p=h[S>>>24]^v[O>>16&255]^y[X>>8&255]^A[B&255]^c[b],x=h[O>>>24]^v[X>>16&255]^y[B>>8&255]^A[S&255]^c[b+1],R=h[X>>>24]^v[B>>16&255]^y[S>>8&255]^A[O&255]^c[b+2],B=h[B>>>24]^v[S>>16&255]^y[O>>8&255]^A[X&255]^c[b+3],b+=4,S=p,O=x,X=R;for(let U=0;U<4;U++)r[u?3&-U:U]=E[S>>>24]<<24^E[O>>16&255]<<16^E[X>>8&255]<<8^E[B&255]^c[b++],p=S,S=O,O=X,X=B,B=p;return r}};const N8={getRandomValues(l){const u=new Uint32Array(l.buffer),c=f=>{let r=987654321;const o=4294967295;return function(){return r=36969*(r&65535)+(r>>16)&o,f=18e3*(f&65535)+(f>>16)&o,(((r<<16)+f&o)/4294967296+.5)*(Math.random()>.5?1:-1)}};for(let f=0,r;f<l.length;f+=4){const o=c((r||Math.random())*4294967296);r=o()*987654071,u[f/4]=o()*4294967296|0}return l}},F2={};F2.ctrGladman=class{constructor(l,u){this._prf=l,this._initIv=u,this._iv=u}reset(){this._iv=this._initIv}update(l){return this.calculate(this._prf,l,this._iv)}incWord(l){if((l>>24&255)===255){let u=l>>16&255,c=l>>8&255,f=l&255;u===255?(u=0,c===255?(c=0,f===255?f=0:++f):++c):++u,l=0,l+=u<<16,l+=c<<8,l+=f}else l+=1<<24;return l}incCounter(l){(l[0]=this.incWord(l[0]))===0&&(l[1]=this.incWord(l[1]))}calculate(l,u,c){let f;if(!(f=u.length))return[];const r=re.bitLength(u);for(let o=0;o<f;o+=4){this.incCounter(c);const h=l.encrypt(c);u[o]^=h[0],u[o+1]^=h[1],u[o+2]^=h[2],u[o+3]^=h[3]}return re.clamp(u,r)}};const Ha={importKey(l){return new Ha.hmacSha1(sc.bytes.toBits(l))},pbkdf2(l,u,c,f){if(c=c||1e4,f<0||c<0)throw new Error("invalid params to pbkdf2");const r=(f>>5)+1<<2;let o,h,v,y,A;const E=new ArrayBuffer(r),S=new DataView(E);let O=0;const X=re;for(u=sc.bytes.toBits(u),A=1;O<(r||1);A++){for(o=h=l.encrypt(X.concat(u,[A])),v=1;v<c;v++)for(h=l.encrypt(h),y=0;y<h.length;y++)o[y]^=h[y];for(v=0;O<(r||1)&&v<o.length;v++)S.setInt32(O,o[v]),O+=4}return E.slice(0,f/8)}};Ha.hmacSha1=class{constructor(l){const u=this,c=u._hash=k2.sha1,f=[[],[]];u._baseHash=[new c,new c];const r=u._baseHash[0].blockSize/32;l.length>r&&(l=new c().update(l).finalize());for(let o=0;o<r;o++)f[0][o]=l[o]^909522486,f[1][o]=l[o]^1549556828;u._baseHash[0].update(f[0]),u._baseHash[1].update(f[1]),u._resultHash=new c(u._baseHash[0])}reset(){const l=this;l._resultHash=new l._hash(l._baseHash[0]),l._updated=!1}update(l){const u=this;u._updated=!0,u._resultHash.update(l)}digest(){const l=this,u=l._resultHash.finalize(),c=new l._hash(l._baseHash[1]).update(u).finalize();return l.reset(),c}encrypt(l){if(this._updated)throw new Error("encrypt on already updated hmac called!");return this.update(l),this.digest(l)}};const B8=typeof crypto!=sa&&typeof crypto.getRandomValues==Mi,rr="Invalid password",or="Invalid signature",dr="zipjs-abort-check-password";function W2(l){return B8?crypto.getRandomValues(l):N8.getRandomValues(l)}const xl=16,U8="raw",_2={name:"PBKDF2"},Q8={name:"HMAC"},z8="SHA-1",Y8=Object.assign({hash:Q8},_2),_f=Object.assign({iterations:1e3,hash:{name:z8}},_2),L8=["deriveBits"],Ci=[8,12,16],bi=[16,24,32],aa=10,G8=[0,0,0,0],oc=typeof crypto!=sa,ji=oc&&crypto.subtle,P2=oc&&typeof ji!=sa,Pe=sc.bytes,X8=J2.aes,V8=F2.ctrGladman,Z8=Ha.hmacSha1;let u2=oc&&P2&&typeof ji.importKey==Mi,c2=oc&&P2&&typeof ji.deriveBits==Mi;class q8 extends TransformStream{constructor({password:u,rawPassword:c,signed:f,encryptionStrength:r,checkPasswordOnly:o}){super({start(){Object.assign(this,{ready:new Promise(h=>this.resolveReady=h),password:eh(u,c),signed:f,strength:r-1,pending:new Uint8Array})},async transform(h,v){const y=this,{password:A,strength:E,resolveReady:S,ready:O}=y;A?(await K8(y,E,A,Xe(h,0,Ci[E]+2)),h=Xe(h,Ci[E]+2),o?v.error(new Error(dr)):S()):await O;const X=new Uint8Array(h.length-aa-(h.length-aa)%xl);v.enqueue($2(y,h,X,0,aa,!0))},async flush(h){const{signed:v,ctr:y,hmac:A,pending:E,ready:S}=this;if(A&&y){await S;const O=Xe(E,0,E.length-aa),X=Xe(E,E.length-aa);let B=new Uint8Array;if(O.length){const b=wi(Pe,O);A.update(b);const p=y.update(b);B=Oi(Pe,p)}if(v){const b=Xe(Oi(Pe,A.digest()),0,aa);for(let p=0;p<aa;p++)if(b[p]!=X[p])throw new Error(or)}h.enqueue(B)}}})}}class I8 extends TransformStream{constructor({password:u,rawPassword:c,encryptionStrength:f}){let r;super({start(){Object.assign(this,{ready:new Promise(o=>this.resolveReady=o),password:eh(u,c),strength:f-1,pending:new Uint8Array})},async transform(o,h){const v=this,{password:y,strength:A,resolveReady:E,ready:S}=v;let O=new Uint8Array;y?(O=await k8(v,A,y),E()):await S;const X=new Uint8Array(O.length+o.length-o.length%xl);X.set(O,0),h.enqueue($2(v,o,X,O.length,0))},async flush(o){const{ctr:h,hmac:v,pending:y,ready:A}=this;if(v&&h){await A;let E=new Uint8Array;if(y.length){const S=h.update(wi(Pe,y));v.update(S),E=Oi(Pe,S)}r.signature=Oi(Pe,v.digest()).slice(0,aa),o.enqueue(hr(E,r.signature))}}}),r=this}}function $2(l,u,c,f,r,o){const{ctr:h,hmac:v,pending:y}=l,A=u.length-r;y.length&&(u=hr(y,u),c=W8(c,A-A%xl));let E;for(E=0;E<=A-xl;E+=xl){const S=wi(Pe,Xe(u,E,E+xl));o&&v.update(S);const O=h.update(S);o||v.update(O),c.set(Oi(Pe,O),E+f)}return l.pending=Xe(u,E),c}async function K8(l,u,c,f){const r=await th(l,u,c,Xe(f,0,Ci[u])),o=Xe(f,Ci[u]);if(r[0]!=o[0]||r[1]!=o[1])throw new Error(rr)}async function k8(l,u,c){const f=W2(new Uint8Array(Ci[u])),r=await th(l,u,c,f);return hr(f,r)}async function th(l,u,c,f){l.password=null;const r=await J8(U8,c,Y8,!1,L8),o=await F8(Object.assign({salt:f},_f),r,8*(bi[u]*2+2)),h=new Uint8Array(o),v=wi(Pe,Xe(h,0,bi[u])),y=wi(Pe,Xe(h,bi[u],bi[u]*2)),A=Xe(h,bi[u]*2);return Object.assign(l,{keys:{key:v,authentication:y,passwordVerification:A},ctr:new V8(new X8(v),Array.from(G8)),hmac:new Z8(y)}),A}async function J8(l,u,c,f,r){if(u2)try{return await ji.importKey(l,u,c,f,r)}catch{return u2=!1,Ha.importKey(u)}else return Ha.importKey(u)}async function F8(l,u,c){if(c2)try{return await ji.deriveBits(l,u,c)}catch{return c2=!1,Ha.pbkdf2(u,l.salt,_f.iterations,c)}else return Ha.pbkdf2(u,l.salt,_f.iterations,c)}function eh(l,u){return u===Jt?H8(l):u}function hr(l,u){let c=l;return l.length+u.length&&(c=new Uint8Array(l.length+u.length),c.set(l,0),c.set(u,l.length)),c}function W8(l,u){if(u&&u>l.length){const c=l;l=new Uint8Array(u),l.set(c,0)}return l}function Xe(l,u,c){return l.subarray(u,c)}function Oi(l,u){return l.fromBits(u)}function wi(l,u){return l.toBits(u)}const Ti=12;class _8 extends TransformStream{constructor({password:u,passwordVerification:c,checkPasswordOnly:f}){super({start(){Object.assign(this,{password:u,passwordVerification:c}),nh(this,u)},transform(r,o){const h=this;if(h.password){const v=s2(h,r.subarray(0,Ti));if(h.password=null,v.at(-1)!=h.passwordVerification)throw new Error(rr);r=r.subarray(Ti)}f?o.error(new Error(dr)):o.enqueue(s2(h,r))}})}}class P8 extends TransformStream{constructor({password:u,passwordVerification:c}){super({start(){Object.assign(this,{password:u,passwordVerification:c}),nh(this,u)},transform(f,r){const o=this;let h,v;if(o.password){o.password=null;const y=W2(new Uint8Array(Ti));y[Ti-1]=o.passwordVerification,h=new Uint8Array(f.length+y.length),h.set(f2(o,y),0),v=Ti}else h=new Uint8Array(f.length),v=0;h.set(f2(o,f),v),r.enqueue(h)}})}}function s2(l,u){const c=new Uint8Array(u.length);for(let f=0;f<u.length;f++)c[f]=ah(l)^u[f],mr(l,c[f]);return c}function f2(l,u){const c=new Uint8Array(u.length);for(let f=0;f<u.length;f++)c[f]=ah(l)^u[f],mr(l,u[f]);return c}function nh(l,u){const c=[305419896,591751049,878082192];Object.assign(l,{keys:c,crcKey0:new cc(c[0]),crcKey2:new cc(c[2])});for(let f=0;f<u.length;f++)mr(l,u.charCodeAt(f))}function mr(l,u){let[c,f,r]=l.keys;l.crcKey0.append([u]),c=~l.crcKey0.get(),f=r2(Math.imul(r2(f+lh(c)),134775813)+1),l.crcKey2.append([f>>>24]),r=~l.crcKey2.get(),l.keys=[c,f,r]}function ah(l){const u=l.keys[2]|2;return lh(Math.imul(u,u^1)>>>8)}function lh(l){return l&255}function r2(l){return l&4294967295}const gr="Invalid uncompressed size",o2="deflate-raw";class $8 extends TransformStream{constructor(u,{chunkSize:c,CompressionStream:f,CompressionStreamNative:r}){super({});const{compressed:o,encrypted:h,useCompressionStream:v,zipCrypto:y,signed:A,level:E}=u,S=this;let O,X,B=super.readable;(!h||y)&&A&&(O=new K2,B=Sn(B,O)),o&&(B=uh(B,v,{level:E,chunkSize:c},r,f)),h&&(y?B=Sn(B,new P8(u)):(X=new I8(u),B=Sn(B,X))),ih(S,B,()=>{let b;h&&!y&&(b=X.signature),(!h||y)&&A&&(b=new DataView(O.value.buffer).getUint32(0)),S.signature=b})}}class t3 extends TransformStream{constructor(u,{chunkSize:c,DecompressionStream:f,DecompressionStreamNative:r}){super({});const{zipCrypto:o,encrypted:h,signed:v,signature:y,compressed:A,useCompressionStream:E}=u;let S,O,X=super.readable;h&&(o?X=Sn(X,new _8(u)):(O=new q8(u),X=Sn(X,O))),A&&(X=uh(X,E,{chunkSize:c},r,f)),(!h||o)&&v&&(S=new K2,X=Sn(X,S)),ih(this,X,()=>{if((!h||o)&&v){const B=new DataView(S.value.buffer);if(y!=B.getUint32(0,!1))throw new Error(or)}})}}function ih(l,u,c){u=Sn(u,new TransformStream({flush:c})),Object.defineProperty(l,"readable",{get(){return u}})}function uh(l,u,c,f,r){try{const o=u&&f?f:r;l=Sn(l,new o(o2,c))}catch(o){if(u)l=Sn(l,new r(o2,c));else throw o}return l}function Sn(l,u){return l.pipeThrough(u)}const e3="message",n3="start",a3="pull",d2="data",l3="ack",h2="close",i3="deflate",ch="inflate";class u3 extends TransformStream{constructor(u,c){super({});const f=this,{codecType:r}=u;let o;r.startsWith(i3)?o=$8:r.startsWith(ch)&&(o=t3),f.outputSize=0;let h=0;const v=new o(u,c),y=super.readable,A=new TransformStream({transform(S,O){S&&S.length&&(h+=S.length,O.enqueue(S))},flush(){Object.assign(f,{inputSize:h})}}),E=new TransformStream({transform(S,O){if(S&&S.length&&(O.enqueue(S),f.outputSize+=S.length,u.outputSize&&f.outputSize>u.outputSize))throw new Error(gr)},flush(){const{signature:S}=v;Object.assign(f,{signature:S,inputSize:h})}});Object.defineProperty(f,"readable",{get(){return y.pipeThrough(A).pipeThrough(v).pipeThrough(E)}})}}class c3 extends TransformStream{constructor(u){let c;super({transform:f,flush(r){c&&c.length&&r.enqueue(c)}});function f(r,o){if(c){const h=new Uint8Array(c.length+r.length);h.set(c),h.set(r,c.length),r=h,c=null}r.length>u?(o.enqueue(r.slice(0,u)),f(r.slice(u),o)):c=r}}}let sh=typeof Worker!=sa;class zf{constructor(u,{readable:c,writable:f},{options:r,config:o,streamOptions:h,useWebWorkers:v,transferStreams:y,scripts:A},E){const{signal:S}=h;return Object.assign(u,{busy:!0,readable:c.pipeThrough(new c3(o.chunkSize)).pipeThrough(new s3(h),{signal:S}),writable:f,options:Object.assign({},r),scripts:A,transferStreams:y,terminate(){return new Promise(O=>{const{worker:X,busy:B}=u;X?(B?u.resolveTerminated=O:(X.terminate(),O()),u.interface=null):O()})},onTaskFinished(){const{resolveTerminated:O}=u;O&&(u.resolveTerminated=null,u.terminated=!0,u.worker.terminate(),O()),u.busy=!1,E(u)}}),(v&&sh?f3:fh)(u,o)}}class s3 extends TransformStream{constructor({onstart:u,onprogress:c,size:f,onend:r}){let o=0;super({async start(){u&&await Yf(u,f)},async transform(h,v){o+=h.length,c&&await Yf(c,o,f),v.enqueue(h)},async flush(){r&&await Yf(r,o)}})}}async function Yf(l,...u){try{await l(...u)}catch{}}function fh(l,u){return{run:()=>r3(l,u)}}function f3(l,u){const{baseURL:c,chunkSize:f}=u;if(!l.interface){let r;try{r=h3(l.scripts[0],c,l)}catch{return sh=!1,fh(l,u)}Object.assign(l,{worker:r,interface:{run:()=>o3(l,{chunkSize:f})}})}return l.interface}async function r3({options:l,readable:u,writable:c,onTaskFinished:f},r){let o;try{o=new u3(l,r),await u.pipeThrough(o).pipeTo(c,{preventClose:!0,preventAbort:!0});const{signature:h,inputSize:v,outputSize:y}=o;return{signature:h,inputSize:v,outputSize:y}}catch(h){throw o&&(h.outputSize=o.outputSize),h}finally{f()}}async function o3(l,u){let c,f;const r=new Promise((O,X)=>{c=O,f=X});Object.assign(l,{reader:null,writer:null,resolveResult:c,rejectResult:f,result:r});const{readable:o,options:h,scripts:v}=l,{writable:y,closed:A}=d3(l.writable),E=lc({type:n3,scripts:v.slice(1),options:h,config:u,readable:o,writable:y},l);E||Object.assign(l,{reader:o.getReader(),writer:y.getWriter()});const S=await r;return E||await y.getWriter().close(),await A,S}function d3(l){let u;const c=new Promise(r=>u=r);return{writable:new WritableStream({async write(r){const o=l.getWriter();await o.ready,await o.write(r),o.releaseLock()},close(){u()},abort(r){return l.getWriter().abort(r)}}),closed:c}}let m2=!0,g2=!0;function h3(l,u,c){const f={type:"module"};let r,o;typeof l==Mi&&(l=l());try{r=new URL(l,u)}catch{r=l}if(m2)try{o=new Worker(r)}catch{m2=!1,o=new Worker(r,f)}else o=new Worker(r,f);return o.addEventListener(e3,h=>m3(h,c)),o}function lc(l,{worker:u,writer:c,onTaskFinished:f,transferStreams:r}){try{const{value:o,readable:h,writable:v}=l,y=[];if(o&&(o.byteLength<o.buffer.byteLength?l.value=o.buffer.slice(0,o.byteLength):l.value=o.buffer,y.push(l.value)),r&&g2?(h&&y.push(h),v&&y.push(v)):l.readable=l.writable=null,y.length)try{return u.postMessage(l,y),!0}catch{g2=!1,l.readable=l.writable=null,u.postMessage(l)}else u.postMessage(l)}catch(o){throw c&&c.releaseLock(),f(),o}}async function m3({data:l},u){const{type:c,value:f,messageId:r,result:o,error:h}=l,{reader:v,writer:y,resolveResult:A,rejectResult:E,onTaskFinished:S}=u;try{if(h){const{message:X,stack:B,code:b,name:p,outputSize:x}=h,R=new Error(X);Object.assign(R,{stack:B,code:b,name:p,outputSize:x}),O(R)}else{if(c==a3){const{value:X,done:B}=await v.read();lc({type:d2,value:X,done:B,messageId:r},u)}c==d2&&(await y.ready,await y.write(new Uint8Array(f)),lc({type:l3,messageId:r},u)),c==h2&&O(null,o)}}catch(X){lc({type:h2,messageId:r},u),O(X)}function O(X,B){X?E(X):A(B),y&&y.releaseLock(),S()}}let ua=[];const Lf=[];let A2=0;async function g3(l,u){const{options:c,config:f}=u,{transferStreams:r,useWebWorkers:o,useCompressionStream:h,codecType:v,compressed:y,signed:A,encrypted:E}=c,{workerScripts:S,maxWorkers:O}=f;u.transferStreams=r||r===Jt;const X=!y&&!A&&!E&&!u.transferStreams;return u.useWebWorkers=!X&&(o||o===Jt&&f.useWebWorkers),u.scripts=u.useWebWorkers&&S?S[v]:[],c.useCompressionStream=h||h===Jt&&f.useCompressionStream,(await B()).run();async function B(){const p=ua.find(x=>!x.busy);if(p)return Pf(p),new zf(p,l,u,b);if(ua.length<O){const x={indexWorker:A2};return A2++,ua.push(x),new zf(x,l,u,b)}else return new Promise(x=>Lf.push({resolve:x,stream:l,workerOptions:u}))}function b(p){if(Lf.length){const[{resolve:x,stream:R,workerOptions:U}]=Lf.splice(0,1);x(new zf(p,R,U,b))}else p.worker?(Pf(p),A3(p,u)):ua=ua.filter(x=>x!=p)}}function A3(l,u){const{config:c}=u,{terminateWorkerTimeout:f}=c;Number.isFinite(f)&&f>=0&&(l.terminated?l.terminated=!1:l.terminateTimeout=setTimeout(async()=>{ua=ua.filter(r=>r!=l);try{await l.terminate()}catch{}},f))}function Pf(l){const{terminateTimeout:u}=l;u&&(clearTimeout(u),l.terminateTimeout=null)}async function v3(){await Promise.allSettled(ua.map(l=>(Pf(l),l.terminate())))}const rh="HTTP error ",Hi="HTTP Range not supported",oh="Writer iterator completed too soon",dh="Writer not initialized",y3="text/plain",E3="Content-Length",p3="Content-Range",b3="Accept-Ranges",x3="Range",S3="Content-Type",T3="HEAD",Ar="GET",hh="bytes",C3=64*1024,vr="writable";class dc{constructor(){this.size=0}init(){this.initialized=!0}}class fa extends dc{get readable(){const u=this,{chunkSize:c=C3}=u,f=new ReadableStream({start(){this.chunkOffset=0},async pull(r){const{offset:o=0,size:h,diskNumberStart:v}=f,{chunkOffset:y}=this,A=h===Jt?c:Math.min(c,h-y),E=await Pt(u,o+y,A,v);r.enqueue(E),y+c>h||h===Jt&&!E.length&&A?r.close():this.chunkOffset+=c}});return f}}class yr extends dc{constructor(){super();const u=this,c=new WritableStream({write(f){if(!u.initialized)throw new Error(dh);return u.writeUint8Array(f)}});Object.defineProperty(u,vr,{get(){return c}})}writeUint8Array(){}}class O3 extends fa{constructor(u){super();let c=u.length;for(;u.charAt(c-1)=="=";)c--;const f=u.indexOf(",")+1;Object.assign(this,{dataURI:u,dataStart:f,size:Math.floor((c-f)*.75)})}readUint8Array(u,c){const{dataStart:f,dataURI:r}=this,o=new Uint8Array(c),h=Math.floor(u/3)*4,v=atob(r.substring(h+f,Math.ceil((u+c)/3)*4+f)),y=u-Math.floor(h/4)*3;let A=0;for(let E=y;E<y+c&&E<v.length;E++)o[E-y]=v.charCodeAt(E),A++;return A<o.length?o.subarray(0,A):o}}class w3 extends yr{constructor(u){super(),Object.assign(this,{data:"data:"+(u||"")+";base64,",pending:[]})}writeUint8Array(u){const c=this;let f=0,r=c.pending;const o=c.pending.length;for(c.pending="",f=0;f<Math.floor((o+u.length)/3)*3-o;f++)r+=String.fromCharCode(u[f]);for(;f<u.length;f++)c.pending+=String.fromCharCode(u[f]);r.length&&(r.length>2?c.data+=btoa(r):c.pending+=r)}getData(){return this.data+btoa(this.pending)}}class Er extends fa{constructor(u){super(),Object.assign(this,{blob:u,size:u.size})}async readUint8Array(u,c){const f=this,r=u+c;let h=await(u||r<f.size?f.blob.slice(u,r):f.blob).arrayBuffer();return h.byteLength>c&&(h=h.slice(u,r)),new Uint8Array(h)}}class mh extends dc{constructor(u){super();const c=this,f=new TransformStream,r=[];u&&r.push([S3,u]),Object.defineProperty(c,vr,{get(){return f.writable}}),c.blob=new Response(f.readable,{headers:r}).blob()}getData(){return this.blob}}class R3 extends Er{constructor(u){super(new Blob([u],{type:y3}))}}class D3 extends mh{constructor(u){super(u),Object.assign(this,{encoding:u,utf8:!u||u.toLowerCase()=="utf-8"})}async getData(){const{encoding:u,utf8:c}=this,f=await super.getData();if(f.text&&c)return f.text();{const r=new FileReader;return new Promise((o,h)=>{Object.assign(r,{onload:({target:v})=>o(v.result),onerror:()=>h(r.error)}),r.readAsText(f,u)})}}}class M3 extends fa{constructor(u,c){super(),gh(this,u,c)}async init(){await Ah(this,$f,v2),super.init()}readUint8Array(u,c){return vh(this,u,c,$f,v2)}}class j3 extends fa{constructor(u,c){super(),gh(this,u,c)}async init(){await Ah(this,tr,y2),super.init()}readUint8Array(u,c){return vh(this,u,c,tr,y2)}}function gh(l,u,c){const{preventHeadRequest:f,useRangeHeader:r,forceRangeRequests:o,combineSizeEocd:h}=c;c=Object.assign({},c),delete c.preventHeadRequest,delete c.useRangeHeader,delete c.forceRangeRequests,delete c.combineSizeEocd,delete c.useXHR,Object.assign(l,{url:u,options:c,preventHeadRequest:f,useRangeHeader:r,forceRangeRequests:o,combineSizeEocd:h})}async function Ah(l,u,c){const{url:f,preventHeadRequest:r,useRangeHeader:o,forceRangeRequests:h,combineSizeEocd:v}=l;if(U3(f)&&(o||h)&&(typeof r>"u"||r)){const y=await u(Ar,l,yh(l,v?-pn:void 0));if(!h&&y.headers.get(b3)!=hh)throw new Error(Hi);{v&&(l.eocdCache=new Uint8Array(await y.arrayBuffer()));let A;const E=y.headers.get(p3);if(E){const S=E.trim().split(/\s*\/\s*/);if(S.length){const O=S[1];O&&O!="*"&&(A=Number(O))}}A===Jt?await E2(l,u,c):l.size=A}}else await E2(l,u,c)}async function vh(l,u,c,f,r){const{useRangeHeader:o,forceRangeRequests:h,eocdCache:v,size:y,options:A}=l;if(o||h){if(v&&u==y-pn&&c==pn)return v;if(u>=y)return new Uint8Array;{u+c>y&&(c=y-u);const E=await f(Ar,l,yh(l,u,c));if(E.status!=206)throw new Error(Hi);return new Uint8Array(await E.arrayBuffer())}}else{const{data:E}=l;return E||await r(l,A),new Uint8Array(l.data.subarray(u,u+c))}}function yh(l,u=0,c=1){return Object.assign({},pr(l),{[x3]:hh+"="+(u<0?u:u+"-"+(u+c-1))})}function pr({options:l}){const{headers:u}=l;if(u)return Symbol.iterator in u?Object.fromEntries(u):u}async function v2(l){await Eh(l,$f)}async function y2(l){await Eh(l,tr)}async function Eh(l,u){const c=await u(Ar,l,pr(l));l.data=new Uint8Array(await c.arrayBuffer()),l.size||(l.size=l.data.length)}async function E2(l,u,c){if(l.preventHeadRequest)await c(l,l.options);else{const r=(await u(T3,l,pr(l))).headers.get(E3);r?l.size=Number(r):await c(l,l.options)}}async function $f(l,{options:u,url:c},f){const r=await fetch(c,Object.assign({},u,{method:l,headers:f}));if(r.status<400)return r;throw r.status==416?new Error(Hi):new Error(rh+(r.statusText||r.status))}function tr(l,{url:u},c){return new Promise((f,r)=>{const o=new XMLHttpRequest;if(o.addEventListener("load",()=>{if(o.status<400){const h=[];o.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach(v=>{const y=v.trim().split(/\s*:\s*/);y[0]=y[0].trim().replace(/^[a-z]|-[a-z]/g,A=>A.toUpperCase()),h.push(y)}),f({status:o.status,arrayBuffer:()=>o.response,headers:new Map(h)})}else r(o.status==416?new Error(Hi):new Error(rh+(o.statusText||o.status)))},!1),o.addEventListener("error",h=>r(h.detail?h.detail.error:new Error("Network error")),!1),o.open(l,u),c)for(const h of Object.entries(c))o.setRequestHeader(h[0],h[1]);o.responseType="arraybuffer",o.send()})}class ph extends fa{constructor(u,c={}){super(),Object.assign(this,{url:u,reader:c.useXHR?new j3(u,c):new M3(u,c)})}set size(u){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}readUint8Array(u,c){return this.reader.readUint8Array(u,c)}}class H3 extends ph{constructor(u,c={}){c.useRangeHeader=!0,super(u,c)}}class N3 extends fa{constructor(u){super(),u=new Uint8Array(u.buffer,u.byteOffset,u.byteLength),Object.assign(this,{array:u,size:u.length})}readUint8Array(u,c){return this.array.slice(u,u+c)}}class B3 extends yr{init(u=0){Object.assign(this,{offset:0,array:new Uint8Array(u)}),super.init()}writeUint8Array(u){const c=this;if(c.offset+u.length>c.array.length){const f=c.array;c.array=new Uint8Array(f.length+u.length),c.array.set(f)}c.array.set(u,c.offset),c.offset+=u.length}getData(){return this.array}}class br extends fa{constructor(u){super(),this.readers=u}async init(){const u=this,{readers:c}=u;u.lastDiskNumber=0,u.lastDiskOffset=0,await Promise.all(c.map(async(f,r)=>{await f.init(),r!=c.length-1&&(u.lastDiskOffset+=f.size),u.size+=f.size})),super.init()}async readUint8Array(u,c,f=0){const r=this,{readers:o}=this;let h,v=f;v==-1&&(v=o.length-1);let y=u;for(;o[v]&&y>=o[v].size;)y-=o[v].size,v++;const A=o[v];if(A){const E=A.size;if(y+c<=E)h=await Pt(A,y,c);else{const S=E-y;h=new Uint8Array(c);const O=await Pt(A,y,S);h.set(O,0);const X=await r.readUint8Array(u+S,c-S,f);h.set(X,S),O.length+X.length<c&&(h=h.subarray(0,O.length+X.length))}}else h=new Uint8Array;return r.lastDiskNumber=Math.max(v,r.lastDiskNumber),h}}class fc extends dc{constructor(u,c=4294967295){super();const f=this;Object.assign(f,{diskNumber:0,diskOffset:0,size:0,maxSize:c,availableSize:c});let r,o,h;const v=new WritableStream({async write(E){const{availableSize:S}=f;if(h)E.length>=S?(await y(E.subarray(0,S)),await A(),f.diskOffset+=r.size,f.diskNumber++,h=null,await this.write(E.subarray(S))):await y(E);else{const{value:O,done:X}=await u.next();if(X&&!O)throw new Error(oh);r=O,r.size=0,r.maxSize&&(f.maxSize=r.maxSize),f.availableSize=f.maxSize,await Ri(r),o=O.writable,h=o.getWriter(),await this.write(E)}},async close(){await h.ready,await A()}});Object.defineProperty(f,vr,{get(){return v}});async function y(E){const S=E.length;S&&(await h.ready,await h.write(E),r.size+=S,f.size+=S,f.availableSize-=S)}async function A(){await h.close()}}}class bh{constructor(u){return Array.isArray(u)&&(u=new br(u)),u instanceof ReadableStream&&(u={readable:u}),u}}class xh{constructor(u){return u.writable===Jt&&typeof u.next==Mi&&(u=new fc(u)),u instanceof WritableStream&&(u={writable:u}),u.size===Jt&&(u.size=0),u instanceof fc||Object.assign(u,{diskNumber:0,diskOffset:0,availableSize:1/0,maxSize:1/0}),u}}function U3(l){const{baseURL:u}=Z2(),{protocol:c}=new URL(l,u);return c=="http:"||c=="https:"}async function Ri(l,u){if(l.init&&!l.initialized)await l.init(u);else return Promise.resolve()}function Pt(l,u,c,f){return l.readUint8Array(u,c,f)}const Q3=br,z3=fc,Sh="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split(""),Y3=Sh.length==256;function L3(l){if(Y3){let u="";for(let c=0;c<l.length;c++)u+=Sh[l[c]];return u}else return new TextDecoder().decode(l)}function ic(l,u){return u&&u.trim().toLowerCase()=="cp437"?L3(l):new TextDecoder(u).decode(l)}const Th="filename",Ch="rawFilename",Oh="comment",wh="rawComment",Rh="uncompressedSize",Dh="compressedSize",Mh="offset",er="diskNumberStart",nr="lastModDate",ar="rawLastModDate",jh="lastAccessDate",G3="rawLastAccessDate",Hh="creationDate",X3="rawCreationDate",V3="internalFileAttribute",Z3="internalFileAttributes",q3="externalFileAttribute",I3="externalFileAttributes",K3="msDosCompatible",k3="zip64",J3="encrypted",F3="version",W3="versionMadeBy",_3="zipCrypto",P3="directory",$3="executable",t5="compressionMethod",e5="signature",n5="extraField",a5=[Th,Ch,Dh,Rh,nr,ar,Oh,wh,jh,Hh,Mh,er,er,V3,Z3,q3,I3,K3,k3,J3,F3,W3,_3,P3,$3,t5,e5,n5,"bitFlag","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class p2{constructor(u){a5.forEach(c=>this[c]=u[c])}}const l5="filenameEncoding",i5="commentEncoding",u5="decodeText",c5="extractPrependedData",s5="extractAppendedData",f5="password",r5="rawPassword",o5="passThrough",d5="signal",h5="checkPasswordOnly",m5="checkOverlappingEntryOnly",g5="checkOverlappingEntry",A5="checkSignature",v5="useWebWorkers",y5="useCompressionStream",E5="transferStreams",p5="preventClose",uc="File format is not recognized",Nh="End of central directory not found",Bh="End of Zip64 central directory locator not found",Uh="Central directory header not found",Qh="Local file header not found",zh="Zip64 extra field not found",Yh="File contains encrypted entry",Lh="Encryption method not supported",lr="Compression method not supported",ir="Split zip file",Gh="Overlapping entry found",b2="utf-8",x2="cp437",b5=[[Rh,ja],[Dh,ja],[Mh,ja],[er,la]],x5={[la]:{getValue:Bt,bytes:4},[ja]:{getValue:Tl,bytes:8}};class Xh{constructor(u,c={}){Object.assign(this,{reader:new bh(u),options:c,config:Z2(),readRanges:[]})}async*getEntriesGenerator(u={}){const c=this;let{reader:f}=c;const{config:r}=c;if(await Ri(f),(f.size===Jt||!f.readUint8Array)&&(f=new Er(await new Response(f.readable).blob()),await Ri(f)),f.size<pn)throw new Error(uc);f.chunkSize=M8(r);const o=await M5(f,f8,f.size,pn,la*16);if(!o){const J=await Pt(f,0,4),k=Yt(J);throw Bt(k)==X2?new Error(ir):new Error(Nh)}const h=Yt(o);let v=Bt(h,12),y=Bt(h,16);const A=o.offset,E=$t(h,20),S=A+pn+E;let O=$t(h,4);const X=f.lastDiskNumber||0;let B=$t(h,6),b=$t(h,8),p=0,x=0;if(y==ja||v==ja||b==la||B==la){const J=await Pt(f,o.offset-Bf,Bf),k=Yt(J);if(Bt(k,0)==r8){y=Tl(k,8);let nt=await Pt(f,y,Uf,-1),P=Yt(nt);const st=o.offset-Bf-Uf;if(Bt(P,0)!=P1&&y!=st){const it=y;y=st,y>it&&(p=y-it),nt=await Pt(f,y,Uf,-1),P=Yt(nt)}if(Bt(P,0)!=P1)throw new Error(Bh);O==la&&(O=Bt(P,16)),B==la&&(B=Bt(P,20)),b==la&&(b=Tl(P,32)),v==ja&&(v=Tl(P,40)),y-=v}}if(y>=f.size&&(p=f.size-y-v-pn,y=f.size-v-pn),X!=O)throw new Error(ir);if(y<0)throw new Error(uc);let R=0,U=await Pt(f,y,v,B),Z=Yt(U);if(v){const J=o.offset-v;if(Bt(Z,R)!=_1&&y!=J){const k=y;y=J,y>k&&(p+=y-k),U=await Pt(f,y,v,B),Z=Yt(U)}}const F=o.offset-y-(f.lastDiskOffset||0);if(v!=F&&F>=0&&(v=F,U=await Pt(f,y,v,B),Z=Yt(U)),y<0||y>=f.size)throw new Error(uc);const j=ie(c,u,l5),D=ie(c,u,i5);for(let J=0;J<b;J++){const k=new T5(f,r,c.options);if(Bt(Z,R)!=_1)throw new Error(Uh);Vh(k,Z,R+6);const nt=!!k.bitFlag.languageEncodingFlag,P=R+46,st=P+k.filenameLength,it=st+k.extraFieldLength,H=$t(Z,R+4),_=H>>8==0,$=H>>8==3,ht=U.subarray(P,st),tt=$t(Z,R+32),C=it+tt,L=U.subarray(it,C),W=nt,et=nt,rt=Bt(Z,R+38),ot=_&&(Sl(Z,R+38)&a2)==a2||$&&(rt>>16&x8)==S8||ht.length&&ht.at(-1)==l2.charCodeAt(0),gt=$&&(rt>>16&T8)!=0,Ft=Bt(Z,R+42)+p;Object.assign(k,{versionMadeBy:H,msDosCompatible:_,compressedSize:0,uncompressedSize:0,commentLength:tt,directory:ot,offset:Ft,diskNumberStart:$t(Z,R+34),internalFileAttributes:$t(Z,R+36),externalFileAttributes:rt,rawFilename:ht,filenameUTF8:W,commentUTF8:et,rawExtraField:U.subarray(st,it),executable:gt}),k.internalFileAttribute=k.internalFileAttributes,k.externalFileAttribute=k.externalFileAttributes;const Qt=ie(c,u,u5)||ic,On=W?b2:j||x2,ra=et?b2:D||x2;let wn=Qt(ht,On);wn===Jt&&(wn=ic(ht,On));let Ba=Qt(L,ra);Ba===Jt&&(Ba=ic(L,ra)),Object.assign(k,{rawComment:L,filename:wn,comment:Ba,directory:ot||wn.endsWith(l2)}),x=Math.max(Ft,x),Zh(k,k,Z,R+6),k.zipCrypto=k.encrypted&&!k.extraFieldAES;const Ee=new p2(k);Ee.getData=(Rn,Qa)=>k.getData(Rn,Ee,c.readRanges,Qa),Ee.arrayBuffer=async Rn=>{const Qa=new TransformStream,[Bi]=await Promise.all([new Response(Qa.readable).arrayBuffer(),k.getData(Qa,Ee,c.readRanges,Rn)]);return Bi},R=C;const{onprogress:Ua}=u;if(Ua)try{await Ua(J+1,b,new p2(k))}catch{}yield Ee}const N=ie(c,u,c5),K=ie(c,u,s5);return N&&(c.prependedData=x>0?await Pt(f,0,x):new Uint8Array),c.comment=E?await Pt(f,A+pn,E):new Uint8Array,K&&(c.appendedData=S<f.size?await Pt(f,S,f.size-S):new Uint8Array),!0}async getEntries(u={}){const c=[];for await(const f of this.getEntriesGenerator(u))c.push(f);return c}async close(){}}class S5{constructor(u={}){const{readable:c,writable:f}=new TransformStream,r=new Xh(c,u).getEntriesGenerator();this.readable=new ReadableStream({async pull(o){const{done:h,value:v}=await r.next();if(h)return o.close();const y={...v,readable:(function(){const{readable:A,writable:E}=new TransformStream;if(v.getData)return v.getData(E),A})()};delete y.getData,o.enqueue(y)}}),this.writable=f}}class T5{constructor(u,c,f){Object.assign(this,{reader:u,config:c,options:f})}async getData(u,c,f,r={}){const o=this,{reader:h,offset:v,diskNumberStart:y,extraFieldAES:A,extraFieldZip64:E,compressionMethod:S,config:O,bitFlag:X,signature:B,rawLastModDate:b,uncompressedSize:p,compressedSize:x}=o,{dataDescriptor:R}=X,U=c.localDirectory={},Z=await Pt(h,v,Qf,y),F=Yt(Z);let j=ie(o,r,f5),D=ie(o,r,r5);const N=ie(o,r,o5);if(j=j&&j.length&&j,D=D&&D.length&&D,A&&A.originalCompressionMethod!=u8)throw new Error(lr);if(S!=i8&&S!=l8&&!N)throw new Error(lr);if(Bt(F,0)!=c8)throw new Error(Qh);Vh(U,F,4);const{extraFieldLength:K,filenameLength:J,lastAccessDate:k,creationDate:nt}=U;U.rawExtraField=K?await Pt(h,v+Qf+J,K,y):new Uint8Array,Zh(o,U,F,4,!0),Object.assign(c,{lastAccessDate:k,creationDate:nt});const P=o.encrypted&&U.encrypted&&!N,st=P&&!A;if(N||(c.zipCrypto=st),P){if(!st&&A.strength===Jt)throw new Error(Lh);if(!j&&!D)throw new Error(Yh)}const it=v+Qf+J+K,H=x,_=h.readable;Object.assign(_,{diskNumberStart:y,offset:it,size:H});const $=ie(o,r,d5),ht=ie(o,r,h5);let tt=ie(o,r,g5);const C=ie(o,r,m5);C&&(tt=!0);const{onstart:L,onprogress:W,onend:et}=r,rt={options:{codecType:ch,password:j,rawPassword:D,zipCrypto:st,encryptionStrength:A&&A.strength,signed:ie(o,r,A5)&&!N,passwordVerification:st&&(R?b>>>8&255:B>>>24&255),outputSize:p,signature:B,compressed:S!=0&&!N,encrypted:o.encrypted&&!N,useWebWorkers:ie(o,r,v5),useCompressionStream:ie(o,r,y5),transferStreams:ie(o,r,E5),checkPasswordOnly:ht},config:O,streamOptions:{signal:$,size:H,onstart:L,onprogress:W,onend:et}};tt&&await D5({reader:h,fileEntry:c,offset:v,diskNumberStart:y,signature:B,compressedSize:x,uncompressedSize:p,dataOffset:it,dataDescriptor:R||U.bitFlag.dataDescriptor,extraFieldZip64:E||U.extraFieldZip64,readRanges:f});let ot;try{if(!C){ht&&(u=new WritableStream),u=new xh(u),await Ri(u,N?x:p),{writable:ot}=u;const{outputSize:gt}=await g3({readable:_,writable:ot},rt);if(u.size+=gt,gt!=(N?x:p))throw new Error(gr)}}catch(gt){if(gt.outputSize!==Jt&&(u.size+=gt.outputSize),!ht||gt.message!=dr)throw gt}finally{!ie(o,r,p5)&&ot&&!ot.locked&&await ot.getWriter().close()}return ht||C?Jt:u.getData?u.getData():ot}}function Vh(l,u,c){const f=l.rawBitFlag=$t(u,c+2),r=(f&t2)==t2,o=Bt(u,c+6);Object.assign(l,{encrypted:r,version:$t(u,c),bitFlag:{level:(f&b8)>>1,dataDescriptor:(f&e2)==e2,languageEncodingFlag:(f&n2)==n2},rawLastModDate:o,lastModDate:j5(o),filenameLength:$t(u,c+22),extraFieldLength:$t(u,c+24)})}function Zh(l,u,c,f,r){const{rawExtraField:o}=u,h=u.extraField=new Map,v=Yt(new Uint8Array(o));let y=0;try{for(;y<o.length;){const x=$t(v,y),R=$t(v,y+2);h.set(x,{type:x,data:o.slice(y+4,y+4+R)}),y+=4+R}}catch{}const A=$t(c,f+4);Object.assign(u,{signature:Bt(c,f+C8),compressedSize:Bt(c,f+O8),uncompressedSize:Bt(c,f+w8)});const E=h.get(h8);E&&(C5(E,u),u.extraFieldZip64=E);const S=h.get(y8);S&&(S2(S,Th,Ch,u,l),u.extraFieldUnicodePath=S);const O=h.get(E8);O&&(S2(O,Oh,wh,u,l),u.extraFieldUnicodeComment=O);const X=h.get(m8);X?(O5(X,u,A),u.extraFieldAES=X):u.compressionMethod=A;const B=h.get(g8);B&&(w5(B,u),u.extraFieldNTFS=B);const b=h.get(v8);b&&(R5(b,u,r),u.extraFieldExtendedTimestamp=b);const p=h.get(p8);p&&(u.extraFieldUSDZ=p)}function C5(l,u){u.zip64=!0;const c=Yt(l.data),f=b5.filter(([r,o])=>u[r]==o);for(let r=0,o=0;r<f.length;r++){const[h,v]=f[r];if(u[h]==v){const y=x5[v];u[h]=l[h]=y.getValue(c,o),o+=y.bytes}else if(l[h])throw new Error(zh)}}function S2(l,u,c,f,r){const o=Yt(l.data),h=new cc;h.append(r[c]);const v=Yt(new Uint8Array(4));v.setUint32(0,h.get(),!0);const y=Bt(o,1);Object.assign(l,{version:Sl(o,0),[u]:ic(l.data.subarray(5)),valid:!r.bitFlag.languageEncodingFlag&&y==Bt(v,0)}),l.valid&&(f[u]=l[u],f[u+"UTF8"]=!0)}function O5(l,u,c){const f=Yt(l.data),r=Sl(f,4);Object.assign(l,{vendorVersion:Sl(f,0),vendorId:Sl(f,2),strength:r,originalCompressionMethod:c,compressionMethod:$t(f,5)}),u.compressionMethod=l.compressionMethod}function w5(l,u){const c=Yt(l.data);let f=4,r;try{for(;f<l.data.length&&!r;){const o=$t(c,f),h=$t(c,f+2);o==A8&&(r=l.data.slice(f+4,f+4+h)),f+=4+h}}catch{}try{if(r&&r.length==24){const o=Yt(r),h=o.getBigUint64(0,!0),v=o.getBigUint64(8,!0),y=o.getBigUint64(16,!0);Object.assign(l,{rawLastModDate:h,rawLastAccessDate:v,rawCreationDate:y});const A=Gf(h),E=Gf(v),S=Gf(y),O={lastModDate:A,lastAccessDate:E,creationDate:S};Object.assign(l,O),Object.assign(u,O)}}catch{}}function R5(l,u,c){const f=Yt(l.data),r=Sl(f,0),o=[],h=[];c?((r&1)==1&&(o.push(nr),h.push(ar)),(r&2)==2&&(o.push(jh),h.push(G3)),(r&4)==4&&(o.push(Hh),h.push(X3))):l.data.length>=5&&(o.push(nr),h.push(ar));let v=1;o.forEach((y,A)=>{if(l.data.length>=v+4){const E=Bt(f,v);u[y]=l[y]=new Date(E*1e3);const S=h[A];l[S]=E}v+=4})}async function D5({reader:l,fileEntry:u,offset:c,diskNumberStart:f,signature:r,compressedSize:o,uncompressedSize:h,dataOffset:v,dataDescriptor:y,extraFieldZip64:A,readRanges:E}){let S=0;if(f)for(let B=0;B<f;B++){const b=l.readers[B];S+=b.size}let O=0;if(y&&(A?O=d8:O=o8),O){const B=await Pt(l,v+o,O+$1,f);if(Bt(Yt(B),0)==s8){const p=Bt(Yt(B),4);let x,R;A?(x=Tl(Yt(B),8),R=Tl(Yt(B),16)):(x=Bt(Yt(B),8),R=Bt(Yt(B),12)),(u.encrypted&&!u.zipCrypto||p==r)&&x==o&&R==h&&(O+=$1)}}const X={start:S+c,end:S+v+o+O,fileEntry:u};for(const B of E)if(B.fileEntry!=u&&X.start>=B.start&&X.start<B.end){const b=new Error(Gh);throw b.overlappingEntry=B.fileEntry,b}E.push(X)}async function M5(l,u,c,f,r){const o=new Uint8Array(4),h=Yt(o);H5(h,0,u);const v=f+r;return await y(f)||await y(Math.min(v,c));async function y(A){const E=c-A,S=await Pt(l,E,A);for(let O=S.length-f;O>=0;O--)if(S[O]==o[0]&&S[O+1]==o[1]&&S[O+2]==o[2]&&S[O+3]==o[3])return{offset:E+O,buffer:S.slice(O,O+f).buffer}}}function ie(l,u,c){return u[c]===Jt?l.options[c]:u[c]}function j5(l){const u=(l&4294901760)>>16,c=l&65535;try{return new Date(1980+((u&65024)>>9),((u&480)>>5)-1,u&31,(c&63488)>>11,(c&2016)>>5,(c&31)*2,0)}catch{}}function Gf(l){return new Date(Number(l/BigInt(1e4)-BigInt(116444736e5)))}function Sl(l,u){return l.getUint8(u)}function $t(l,u){return l.getUint16(u,!0)}function Bt(l,u){return l.getUint32(u,!0)}function Tl(l,u){return Number(l.getBigUint64(u,!0))}function H5(l,u,c){l.setUint32(u,c,!0)}function Yt(l){return new DataView(l.buffer)}q2({Inflate:a8});const N5=Object.freeze(Object.defineProperty({__proto__:null,BlobReader:Er,BlobWriter:mh,Data64URIReader:O3,Data64URIWriter:w3,ERR_BAD_FORMAT:uc,ERR_CENTRAL_DIRECTORY_NOT_FOUND:Uh,ERR_ENCRYPTED:Yh,ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND:Bh,ERR_EOCDR_NOT_FOUND:Nh,ERR_EXTRAFIELD_ZIP64_NOT_FOUND:zh,ERR_HTTP_RANGE:Hi,ERR_INVALID_PASSWORD:rr,ERR_INVALID_SIGNATURE:or,ERR_INVALID_UNCOMPRESSED_SIZE:gr,ERR_ITERATOR_COMPLETED_TOO_SOON:oh,ERR_LOCAL_FILE_HEADER_NOT_FOUND:Qh,ERR_OVERLAPPING_ENTRY:Gh,ERR_SPLIT_ZIP_FILE:ir,ERR_UNSUPPORTED_COMPRESSION:lr,ERR_UNSUPPORTED_ENCRYPTION:Lh,ERR_WRITER_NOT_INITIALIZED:dh,GenericReader:bh,GenericWriter:xh,HttpRangeReader:H3,HttpReader:ph,Reader:fa,SplitDataReader:br,SplitDataWriter:fc,SplitZipReader:Q3,SplitZipWriter:z3,TextReader:R3,TextWriter:D3,Uint8ArrayReader:N3,Uint8ArrayWriter:B3,Writer:yr,ZipReader:Xh,ZipReaderStream:S5,configure:q2,getMimeType:j8,initStream:Ri,readUint8Array:Pt,terminateWorkers:v3},Symbol.toStringTag,{value:"Module"}));var Xf={exports:{}},dt={};/** - * @license React - * react.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var T2;function B5(){if(T2)return dt;T2=1;var l=Symbol.for("react.transitional.element"),u=Symbol.for("react.portal"),c=Symbol.for("react.fragment"),f=Symbol.for("react.strict_mode"),r=Symbol.for("react.profiler"),o=Symbol.for("react.consumer"),h=Symbol.for("react.context"),v=Symbol.for("react.forward_ref"),y=Symbol.for("react.suspense"),A=Symbol.for("react.memo"),E=Symbol.for("react.lazy"),S=Symbol.for("react.activity"),O=Symbol.iterator;function X(C){return C===null||typeof C!="object"?null:(C=O&&C[O]||C["@@iterator"],typeof C=="function"?C:null)}var B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},b=Object.assign,p={};function x(C,L,W){this.props=C,this.context=L,this.refs=p,this.updater=W||B}x.prototype.isReactComponent={},x.prototype.setState=function(C,L){if(typeof C!="object"&&typeof C!="function"&&C!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,C,L,"setState")},x.prototype.forceUpdate=function(C){this.updater.enqueueForceUpdate(this,C,"forceUpdate")};function R(){}R.prototype=x.prototype;function U(C,L,W){this.props=C,this.context=L,this.refs=p,this.updater=W||B}var Z=U.prototype=new R;Z.constructor=U,b(Z,x.prototype),Z.isPureReactComponent=!0;var F=Array.isArray;function j(){}var D={H:null,A:null,T:null,S:null},N=Object.prototype.hasOwnProperty;function K(C,L,W){var et=W.ref;return{$$typeof:l,type:C,key:L,ref:et!==void 0?et:null,props:W}}function J(C,L){return K(C.type,L,C.props)}function k(C){return typeof C=="object"&&C!==null&&C.$$typeof===l}function nt(C){var L={"=":"=0",":":"=2"};return"$"+C.replace(/[=:]/g,function(W){return L[W]})}var P=/\/+/g;function st(C,L){return typeof C=="object"&&C!==null&&C.key!=null?nt(""+C.key):L.toString(36)}function it(C){switch(C.status){case"fulfilled":return C.value;case"rejected":throw C.reason;default:switch(typeof C.status=="string"?C.then(j,j):(C.status="pending",C.then(function(L){C.status==="pending"&&(C.status="fulfilled",C.value=L)},function(L){C.status==="pending"&&(C.status="rejected",C.reason=L)})),C.status){case"fulfilled":return C.value;case"rejected":throw C.reason}}throw C}function H(C,L,W,et,rt){var ot=typeof C;(ot==="undefined"||ot==="boolean")&&(C=null);var gt=!1;if(C===null)gt=!0;else switch(ot){case"bigint":case"string":case"number":gt=!0;break;case"object":switch(C.$$typeof){case l:case u:gt=!0;break;case E:return gt=C._init,H(gt(C._payload),L,W,et,rt)}}if(gt)return rt=rt(C),gt=et===""?"."+st(C,0):et,F(rt)?(W="",gt!=null&&(W=gt.replace(P,"$&/")+"/"),H(rt,L,W,"",function(On){return On})):rt!=null&&(k(rt)&&(rt=J(rt,W+(rt.key==null||C&&C.key===rt.key?"":(""+rt.key).replace(P,"$&/")+"/")+gt)),L.push(rt)),1;gt=0;var Ft=et===""?".":et+":";if(F(C))for(var Qt=0;Qt<C.length;Qt++)et=C[Qt],ot=Ft+st(et,Qt),gt+=H(et,L,W,ot,rt);else if(Qt=X(C),typeof Qt=="function")for(C=Qt.call(C),Qt=0;!(et=C.next()).done;)et=et.value,ot=Ft+st(et,Qt++),gt+=H(et,L,W,ot,rt);else if(ot==="object"){if(typeof C.then=="function")return H(it(C),L,W,et,rt);throw L=String(C),Error("Objects are not valid as a React child (found: "+(L==="[object Object]"?"object with keys {"+Object.keys(C).join(", ")+"}":L)+"). If you meant to render a collection of children, use an array instead.")}return gt}function _(C,L,W){if(C==null)return C;var et=[],rt=0;return H(C,et,"","",function(ot){return L.call(W,ot,rt++)}),et}function $(C){if(C._status===-1){var L=C._result;L=L(),L.then(function(W){(C._status===0||C._status===-1)&&(C._status=1,C._result=W)},function(W){(C._status===0||C._status===-1)&&(C._status=2,C._result=W)}),C._status===-1&&(C._status=0,C._result=L)}if(C._status===1)return C._result.default;throw C._result}var ht=typeof reportError=="function"?reportError:function(C){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var L=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof C=="object"&&C!==null&&typeof C.message=="string"?String(C.message):String(C),error:C});if(!window.dispatchEvent(L))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",C);return}console.error(C)},tt={map:_,forEach:function(C,L,W){_(C,function(){L.apply(this,arguments)},W)},count:function(C){var L=0;return _(C,function(){L++}),L},toArray:function(C){return _(C,function(L){return L})||[]},only:function(C){if(!k(C))throw Error("React.Children.only expected to receive a single React element child.");return C}};return dt.Activity=S,dt.Children=tt,dt.Component=x,dt.Fragment=c,dt.Profiler=r,dt.PureComponent=U,dt.StrictMode=f,dt.Suspense=y,dt.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=D,dt.__COMPILER_RUNTIME={__proto__:null,c:function(C){return D.H.useMemoCache(C)}},dt.cache=function(C){return function(){return C.apply(null,arguments)}},dt.cacheSignal=function(){return null},dt.cloneElement=function(C,L,W){if(C==null)throw Error("The argument must be a React element, but you passed "+C+".");var et=b({},C.props),rt=C.key;if(L!=null)for(ot in L.key!==void 0&&(rt=""+L.key),L)!N.call(L,ot)||ot==="key"||ot==="__self"||ot==="__source"||ot==="ref"&&L.ref===void 0||(et[ot]=L[ot]);var ot=arguments.length-2;if(ot===1)et.children=W;else if(1<ot){for(var gt=Array(ot),Ft=0;Ft<ot;Ft++)gt[Ft]=arguments[Ft+2];et.children=gt}return K(C.type,rt,et)},dt.createContext=function(C){return C={$$typeof:h,_currentValue:C,_currentValue2:C,_threadCount:0,Provider:null,Consumer:null},C.Provider=C,C.Consumer={$$typeof:o,_context:C},C},dt.createElement=function(C,L,W){var et,rt={},ot=null;if(L!=null)for(et in L.key!==void 0&&(ot=""+L.key),L)N.call(L,et)&&et!=="key"&&et!=="__self"&&et!=="__source"&&(rt[et]=L[et]);var gt=arguments.length-2;if(gt===1)rt.children=W;else if(1<gt){for(var Ft=Array(gt),Qt=0;Qt<gt;Qt++)Ft[Qt]=arguments[Qt+2];rt.children=Ft}if(C&&C.defaultProps)for(et in gt=C.defaultProps,gt)rt[et]===void 0&&(rt[et]=gt[et]);return K(C,ot,rt)},dt.createRef=function(){return{current:null}},dt.forwardRef=function(C){return{$$typeof:v,render:C}},dt.isValidElement=k,dt.lazy=function(C){return{$$typeof:E,_payload:{_status:-1,_result:C},_init:$}},dt.memo=function(C,L){return{$$typeof:A,type:C,compare:L===void 0?null:L}},dt.startTransition=function(C){var L=D.T,W={};D.T=W;try{var et=C(),rt=D.S;rt!==null&&rt(W,et),typeof et=="object"&&et!==null&&typeof et.then=="function"&&et.then(j,ht)}catch(ot){ht(ot)}finally{L!==null&&W.types!==null&&(L.types=W.types),D.T=L}},dt.unstable_useCacheRefresh=function(){return D.H.useCacheRefresh()},dt.use=function(C){return D.H.use(C)},dt.useActionState=function(C,L,W){return D.H.useActionState(C,L,W)},dt.useCallback=function(C,L){return D.H.useCallback(C,L)},dt.useContext=function(C){return D.H.useContext(C)},dt.useDebugValue=function(){},dt.useDeferredValue=function(C,L){return D.H.useDeferredValue(C,L)},dt.useEffect=function(C,L){return D.H.useEffect(C,L)},dt.useEffectEvent=function(C){return D.H.useEffectEvent(C)},dt.useId=function(){return D.H.useId()},dt.useImperativeHandle=function(C,L,W){return D.H.useImperativeHandle(C,L,W)},dt.useInsertionEffect=function(C,L){return D.H.useInsertionEffect(C,L)},dt.useLayoutEffect=function(C,L){return D.H.useLayoutEffect(C,L)},dt.useMemo=function(C,L){return D.H.useMemo(C,L)},dt.useOptimistic=function(C,L){return D.H.useOptimistic(C,L)},dt.useReducer=function(C,L,W){return D.H.useReducer(C,L,W)},dt.useRef=function(C){return D.H.useRef(C)},dt.useState=function(C){return D.H.useState(C)},dt.useSyncExternalStore=function(C,L,W){return D.H.useSyncExternalStore(C,L,W)},dt.useTransition=function(){return D.H.useTransition()},dt.version="19.2.1",dt}var C2;function xr(){return C2||(C2=1,Xf.exports=B5()),Xf.exports}var ct=xr();const ue=UA(ct);var Vf={exports:{}},xi={},Zf={exports:{}},qf={};/** - * @license React - * scheduler.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var O2;function U5(){return O2||(O2=1,(function(l){function u(H,_){var $=H.length;H.push(_);t:for(;0<$;){var ht=$-1>>>1,tt=H[ht];if(0<r(tt,_))H[ht]=_,H[$]=tt,$=ht;else break t}}function c(H){return H.length===0?null:H[0]}function f(H){if(H.length===0)return null;var _=H[0],$=H.pop();if($!==_){H[0]=$;t:for(var ht=0,tt=H.length,C=tt>>>1;ht<C;){var L=2*(ht+1)-1,W=H[L],et=L+1,rt=H[et];if(0>r(W,$))et<tt&&0>r(rt,W)?(H[ht]=rt,H[et]=$,ht=et):(H[ht]=W,H[L]=$,ht=L);else if(et<tt&&0>r(rt,$))H[ht]=rt,H[et]=$,ht=et;else break t}}return _}function r(H,_){var $=H.sortIndex-_.sortIndex;return $!==0?$:H.id-_.id}if(l.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var o=performance;l.unstable_now=function(){return o.now()}}else{var h=Date,v=h.now();l.unstable_now=function(){return h.now()-v}}var y=[],A=[],E=1,S=null,O=3,X=!1,B=!1,b=!1,p=!1,x=typeof setTimeout=="function"?setTimeout:null,R=typeof clearTimeout=="function"?clearTimeout:null,U=typeof setImmediate<"u"?setImmediate:null;function Z(H){for(var _=c(A);_!==null;){if(_.callback===null)f(A);else if(_.startTime<=H)f(A),_.sortIndex=_.expirationTime,u(y,_);else break;_=c(A)}}function F(H){if(b=!1,Z(H),!B)if(c(y)!==null)B=!0,j||(j=!0,nt());else{var _=c(A);_!==null&&it(F,_.startTime-H)}}var j=!1,D=-1,N=5,K=-1;function J(){return p?!0:!(l.unstable_now()-K<N)}function k(){if(p=!1,j){var H=l.unstable_now();K=H;var _=!0;try{t:{B=!1,b&&(b=!1,R(D),D=-1),X=!0;var $=O;try{e:{for(Z(H),S=c(y);S!==null&&!(S.expirationTime>H&&J());){var ht=S.callback;if(typeof ht=="function"){S.callback=null,O=S.priorityLevel;var tt=ht(S.expirationTime<=H);if(H=l.unstable_now(),typeof tt=="function"){S.callback=tt,Z(H),_=!0;break e}S===c(y)&&f(y),Z(H)}else f(y);S=c(y)}if(S!==null)_=!0;else{var C=c(A);C!==null&&it(F,C.startTime-H),_=!1}}break t}finally{S=null,O=$,X=!1}_=void 0}}finally{_?nt():j=!1}}}var nt;if(typeof U=="function")nt=function(){U(k)};else if(typeof MessageChannel<"u"){var P=new MessageChannel,st=P.port2;P.port1.onmessage=k,nt=function(){st.postMessage(null)}}else nt=function(){x(k,0)};function it(H,_){D=x(function(){H(l.unstable_now())},_)}l.unstable_IdlePriority=5,l.unstable_ImmediatePriority=1,l.unstable_LowPriority=4,l.unstable_NormalPriority=3,l.unstable_Profiling=null,l.unstable_UserBlockingPriority=2,l.unstable_cancelCallback=function(H){H.callback=null},l.unstable_forceFrameRate=function(H){0>H||125<H?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):N=0<H?Math.floor(1e3/H):5},l.unstable_getCurrentPriorityLevel=function(){return O},l.unstable_next=function(H){switch(O){case 1:case 2:case 3:var _=3;break;default:_=O}var $=O;O=_;try{return H()}finally{O=$}},l.unstable_requestPaint=function(){p=!0},l.unstable_runWithPriority=function(H,_){switch(H){case 1:case 2:case 3:case 4:case 5:break;default:H=3}var $=O;O=H;try{return _()}finally{O=$}},l.unstable_scheduleCallback=function(H,_,$){var ht=l.unstable_now();switch(typeof $=="object"&&$!==null?($=$.delay,$=typeof $=="number"&&0<$?ht+$:ht):$=ht,H){case 1:var tt=-1;break;case 2:tt=250;break;case 5:tt=1073741823;break;case 4:tt=1e4;break;default:tt=5e3}return tt=$+tt,H={id:E++,callback:_,priorityLevel:H,startTime:$,expirationTime:tt,sortIndex:-1},$>ht?(H.sortIndex=$,u(A,H),c(y)===null&&H===c(A)&&(b?(R(D),D=-1):b=!0,it(F,$-ht))):(H.sortIndex=tt,u(y,H),B||X||(B=!0,j||(j=!0,nt()))),H},l.unstable_shouldYield=J,l.unstable_wrapCallback=function(H){var _=O;return function(){var $=O;O=_;try{return H.apply(this,arguments)}finally{O=$}}}})(qf)),qf}var w2;function Q5(){return w2||(w2=1,Zf.exports=U5()),Zf.exports}var If={exports:{}},ce={};/** - * @license React - * react-dom.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var R2;function z5(){if(R2)return ce;R2=1;var l=xr();function u(y){var A="https://react.dev/errors/"+y;if(1<arguments.length){A+="?args[]="+encodeURIComponent(arguments[1]);for(var E=2;E<arguments.length;E++)A+="&args[]="+encodeURIComponent(arguments[E])}return"Minified React error #"+y+"; visit "+A+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function c(){}var f={d:{f:c,r:function(){throw Error(u(522))},D:c,C:c,L:c,m:c,X:c,S:c,M:c},p:0,findDOMNode:null},r=Symbol.for("react.portal");function o(y,A,E){var S=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:r,key:S==null?null:""+S,children:y,containerInfo:A,implementation:E}}var h=l.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function v(y,A){if(y==="font")return"";if(typeof A=="string")return A==="use-credentials"?A:""}return ce.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=f,ce.createPortal=function(y,A){var E=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!A||A.nodeType!==1&&A.nodeType!==9&&A.nodeType!==11)throw Error(u(299));return o(y,A,null,E)},ce.flushSync=function(y){var A=h.T,E=f.p;try{if(h.T=null,f.p=2,y)return y()}finally{h.T=A,f.p=E,f.d.f()}},ce.preconnect=function(y,A){typeof y=="string"&&(A?(A=A.crossOrigin,A=typeof A=="string"?A==="use-credentials"?A:"":void 0):A=null,f.d.C(y,A))},ce.prefetchDNS=function(y){typeof y=="string"&&f.d.D(y)},ce.preinit=function(y,A){if(typeof y=="string"&&A&&typeof A.as=="string"){var E=A.as,S=v(E,A.crossOrigin),O=typeof A.integrity=="string"?A.integrity:void 0,X=typeof A.fetchPriority=="string"?A.fetchPriority:void 0;E==="style"?f.d.S(y,typeof A.precedence=="string"?A.precedence:void 0,{crossOrigin:S,integrity:O,fetchPriority:X}):E==="script"&&f.d.X(y,{crossOrigin:S,integrity:O,fetchPriority:X,nonce:typeof A.nonce=="string"?A.nonce:void 0})}},ce.preinitModule=function(y,A){if(typeof y=="string")if(typeof A=="object"&&A!==null){if(A.as==null||A.as==="script"){var E=v(A.as,A.crossOrigin);f.d.M(y,{crossOrigin:E,integrity:typeof A.integrity=="string"?A.integrity:void 0,nonce:typeof A.nonce=="string"?A.nonce:void 0})}}else A==null&&f.d.M(y)},ce.preload=function(y,A){if(typeof y=="string"&&typeof A=="object"&&A!==null&&typeof A.as=="string"){var E=A.as,S=v(E,A.crossOrigin);f.d.L(y,E,{crossOrigin:S,integrity:typeof A.integrity=="string"?A.integrity:void 0,nonce:typeof A.nonce=="string"?A.nonce:void 0,type:typeof A.type=="string"?A.type:void 0,fetchPriority:typeof A.fetchPriority=="string"?A.fetchPriority:void 0,referrerPolicy:typeof A.referrerPolicy=="string"?A.referrerPolicy:void 0,imageSrcSet:typeof A.imageSrcSet=="string"?A.imageSrcSet:void 0,imageSizes:typeof A.imageSizes=="string"?A.imageSizes:void 0,media:typeof A.media=="string"?A.media:void 0})}},ce.preloadModule=function(y,A){if(typeof y=="string")if(A){var E=v(A.as,A.crossOrigin);f.d.m(y,{as:typeof A.as=="string"&&A.as!=="script"?A.as:void 0,crossOrigin:E,integrity:typeof A.integrity=="string"?A.integrity:void 0})}else f.d.m(y)},ce.requestFormReset=function(y){f.d.r(y)},ce.unstable_batchedUpdates=function(y,A){return y(A)},ce.useFormState=function(y,A,E){return h.H.useFormState(y,A,E)},ce.useFormStatus=function(){return h.H.useHostTransitionStatus()},ce.version="19.2.1",ce}var D2;function Y5(){if(D2)return If.exports;D2=1;function l(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(l)}catch(u){console.error(u)}}return l(),If.exports=z5(),If.exports}/** - * @license React - * react-dom-client.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var M2;function L5(){if(M2)return xi;M2=1;var l=Q5(),u=xr(),c=Y5();function f(t){var e="https://react.dev/errors/"+t;if(1<arguments.length){e+="?args[]="+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)e+="&args[]="+encodeURIComponent(arguments[n])}return"Minified React error #"+t+"; visit "+e+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function r(t){return!(!t||t.nodeType!==1&&t.nodeType!==9&&t.nodeType!==11)}function o(t){var e=t,n=t;if(t.alternate)for(;e.return;)e=e.return;else{t=e;do e=t,(e.flags&4098)!==0&&(n=e.return),t=e.return;while(t)}return e.tag===3?n:null}function h(t){if(t.tag===13){var e=t.memoizedState;if(e===null&&(t=t.alternate,t!==null&&(e=t.memoizedState)),e!==null)return e.dehydrated}return null}function v(t){if(t.tag===31){var e=t.memoizedState;if(e===null&&(t=t.alternate,t!==null&&(e=t.memoizedState)),e!==null)return e.dehydrated}return null}function y(t){if(o(t)!==t)throw Error(f(188))}function A(t){var e=t.alternate;if(!e){if(e=o(t),e===null)throw Error(f(188));return e!==t?null:t}for(var n=t,a=e;;){var i=n.return;if(i===null)break;var s=i.alternate;if(s===null){if(a=i.return,a!==null){n=a;continue}break}if(i.child===s.child){for(s=i.child;s;){if(s===n)return y(i),t;if(s===a)return y(i),e;s=s.sibling}throw Error(f(188))}if(n.return!==a.return)n=i,a=s;else{for(var d=!1,g=i.child;g;){if(g===n){d=!0,n=i,a=s;break}if(g===a){d=!0,a=i,n=s;break}g=g.sibling}if(!d){for(g=s.child;g;){if(g===n){d=!0,n=s,a=i;break}if(g===a){d=!0,a=s,n=i;break}g=g.sibling}if(!d)throw Error(f(189))}}if(n.alternate!==a)throw Error(f(190))}if(n.tag!==3)throw Error(f(188));return n.stateNode.current===n?t:e}function E(t){var e=t.tag;if(e===5||e===26||e===27||e===6)return t;for(t=t.child;t!==null;){if(e=E(t),e!==null)return e;t=t.sibling}return null}var S=Object.assign,O=Symbol.for("react.element"),X=Symbol.for("react.transitional.element"),B=Symbol.for("react.portal"),b=Symbol.for("react.fragment"),p=Symbol.for("react.strict_mode"),x=Symbol.for("react.profiler"),R=Symbol.for("react.consumer"),U=Symbol.for("react.context"),Z=Symbol.for("react.forward_ref"),F=Symbol.for("react.suspense"),j=Symbol.for("react.suspense_list"),D=Symbol.for("react.memo"),N=Symbol.for("react.lazy"),K=Symbol.for("react.activity"),J=Symbol.for("react.memo_cache_sentinel"),k=Symbol.iterator;function nt(t){return t===null||typeof t!="object"?null:(t=k&&t[k]||t["@@iterator"],typeof t=="function"?t:null)}var P=Symbol.for("react.client.reference");function st(t){if(t==null)return null;if(typeof t=="function")return t.$$typeof===P?null:t.displayName||t.name||null;if(typeof t=="string")return t;switch(t){case b:return"Fragment";case x:return"Profiler";case p:return"StrictMode";case F:return"Suspense";case j:return"SuspenseList";case K:return"Activity"}if(typeof t=="object")switch(t.$$typeof){case B:return"Portal";case U:return t.displayName||"Context";case R:return(t._context.displayName||"Context")+".Consumer";case Z:var e=t.render;return t=t.displayName,t||(t=e.displayName||e.name||"",t=t!==""?"ForwardRef("+t+")":"ForwardRef"),t;case D:return e=t.displayName||null,e!==null?e:st(t.type)||"Memo";case N:e=t._payload,t=t._init;try{return st(t(e))}catch{}}return null}var it=Array.isArray,H=u.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,_=c.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,$={pending:!1,data:null,method:null,action:null},ht=[],tt=-1;function C(t){return{current:t}}function L(t){0>tt||(t.current=ht[tt],ht[tt]=null,tt--)}function W(t,e){tt++,ht[tt]=t.current,t.current=e}var et=C(null),rt=C(null),ot=C(null),gt=C(null);function Ft(t,e){switch(W(ot,e),W(rt,t),W(et,null),e.nodeType){case 9:case 11:t=(t=e.documentElement)&&(t=t.namespaceURI)?Pd(t):0;break;default:if(t=e.tagName,e=e.namespaceURI)e=Pd(e),t=$d(e,t);else switch(t){case"svg":t=1;break;case"math":t=2;break;default:t=0}}L(et),W(et,t)}function Qt(){L(et),L(rt),L(ot)}function On(t){t.memoizedState!==null&&W(gt,t);var e=et.current,n=$d(e,t.type);e!==n&&(W(rt,t),W(et,n))}function ra(t){rt.current===t&&(L(et),L(rt)),gt.current===t&&(L(gt),gi._currentValue=$)}var wn,Ba;function Ee(t){if(wn===void 0)try{throw Error()}catch(n){var e=n.stack.trim().match(/\n( *(at )?)/);wn=e&&e[1]||"",Ba=-1<n.stack.indexOf(` - at`)?" (<anonymous>)":-1<n.stack.indexOf("@")?"@unknown:0:0":""}return` -`+wn+t+Ba}var Ua=!1;function Rn(t,e){if(!t||Ua)return"";Ua=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var a={DetermineComponentFrameRoot:function(){try{if(e){var I=function(){throw Error()};if(Object.defineProperty(I.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(I,[])}catch(G){var Y=G}Reflect.construct(t,[],I)}else{try{I.call()}catch(G){Y=G}t.call(I.prototype)}}else{try{throw Error()}catch(G){Y=G}(I=t())&&typeof I.catch=="function"&&I.catch(function(){})}}catch(G){if(G&&Y&&typeof G.stack=="string")return[G.stack,Y.stack]}return[null,null]}};a.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var i=Object.getOwnPropertyDescriptor(a.DetermineComponentFrameRoot,"name");i&&i.configurable&&Object.defineProperty(a.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var s=a.DetermineComponentFrameRoot(),d=s[0],g=s[1];if(d&&g){var T=d.split(` -`),z=g.split(` -`);for(i=a=0;a<T.length&&!T[a].includes("DetermineComponentFrameRoot");)a++;for(;i<z.length&&!z[i].includes("DetermineComponentFrameRoot");)i++;if(a===T.length||i===z.length)for(a=T.length-1,i=z.length-1;1<=a&&0<=i&&T[a]!==z[i];)i--;for(;1<=a&&0<=i;a--,i--)if(T[a]!==z[i]){if(a!==1||i!==1)do if(a--,i--,0>i||T[a]!==z[i]){var V=` -`+T[a].replace(" at new "," at ");return t.displayName&&V.includes("<anonymous>")&&(V=V.replace("<anonymous>",t.displayName)),V}while(1<=a&&0<=i);break}}}finally{Ua=!1,Error.prepareStackTrace=n}return(n=t?t.displayName||t.name:"")?Ee(n):""}function Qa(t,e){switch(t.tag){case 26:case 27:case 5:return Ee(t.type);case 16:return Ee("Lazy");case 13:return t.child!==e&&e!==null?Ee("Suspense Fallback"):Ee("Suspense");case 19:return Ee("SuspenseList");case 0:case 15:return Rn(t.type,!1);case 11:return Rn(t.type.render,!1);case 1:return Rn(t.type,!0);case 31:return Ee("Activity");default:return""}}function Bi(t){try{var e="",n=null;do e+=Qa(t,n),n=t,t=t.return;while(t);return e}catch(a){return` -Error generating stack: `+a.message+` -`+a.stack}}var mc=Object.prototype.hasOwnProperty,gc=l.unstable_scheduleCallback,Ac=l.unstable_cancelCallback,om=l.unstable_shouldYield,dm=l.unstable_requestPaint,pe=l.unstable_now,hm=l.unstable_getCurrentPriorityLevel,Dr=l.unstable_ImmediatePriority,Mr=l.unstable_UserBlockingPriority,Ui=l.unstable_NormalPriority,mm=l.unstable_LowPriority,jr=l.unstable_IdlePriority,gm=l.log,Am=l.unstable_setDisableYieldValue,wl=null,be=null;function Dn(t){if(typeof gm=="function"&&Am(t),be&&typeof be.setStrictMode=="function")try{be.setStrictMode(wl,t)}catch{}}var xe=Math.clz32?Math.clz32:Em,vm=Math.log,ym=Math.LN2;function Em(t){return t>>>=0,t===0?32:31-(vm(t)/ym|0)|0}var Qi=256,zi=262144,Yi=4194304;function oa(t){var e=t&42;if(e!==0)return e;switch(t&-t){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return t&261888;case 262144:case 524288:case 1048576:case 2097152:return t&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return t&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return t}}function Li(t,e,n){var a=t.pendingLanes;if(a===0)return 0;var i=0,s=t.suspendedLanes,d=t.pingedLanes;t=t.warmLanes;var g=a&134217727;return g!==0?(a=g&~s,a!==0?i=oa(a):(d&=g,d!==0?i=oa(d):n||(n=g&~t,n!==0&&(i=oa(n))))):(g=a&~s,g!==0?i=oa(g):d!==0?i=oa(d):n||(n=a&~t,n!==0&&(i=oa(n)))),i===0?0:e!==0&&e!==i&&(e&s)===0&&(s=i&-i,n=e&-e,s>=n||s===32&&(n&4194048)!==0)?e:i}function Rl(t,e){return(t.pendingLanes&~(t.suspendedLanes&~t.pingedLanes)&e)===0}function pm(t,e){switch(t){case 1:case 2:case 4:case 8:case 64:return e+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Hr(){var t=Yi;return Yi<<=1,(Yi&62914560)===0&&(Yi=4194304),t}function vc(t){for(var e=[],n=0;31>n;n++)e.push(t);return e}function Dl(t,e){t.pendingLanes|=e,e!==268435456&&(t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0)}function bm(t,e,n,a,i,s){var d=t.pendingLanes;t.pendingLanes=n,t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0,t.expiredLanes&=n,t.entangledLanes&=n,t.errorRecoveryDisabledLanes&=n,t.shellSuspendCounter=0;var g=t.entanglements,T=t.expirationTimes,z=t.hiddenUpdates;for(n=d&~n;0<n;){var V=31-xe(n),I=1<<V;g[V]=0,T[V]=-1;var Y=z[V];if(Y!==null)for(z[V]=null,V=0;V<Y.length;V++){var G=Y[V];G!==null&&(G.lane&=-536870913)}n&=~I}a!==0&&Nr(t,a,0),s!==0&&i===0&&t.tag!==0&&(t.suspendedLanes|=s&~(d&~e))}function Nr(t,e,n){t.pendingLanes|=e,t.suspendedLanes&=~e;var a=31-xe(e);t.entangledLanes|=e,t.entanglements[a]=t.entanglements[a]|1073741824|n&261930}function Br(t,e){var n=t.entangledLanes|=e;for(t=t.entanglements;n;){var a=31-xe(n),i=1<<a;i&e|t[a]&e&&(t[a]|=e),n&=~i}}function Ur(t,e){var n=e&-e;return n=(n&42)!==0?1:yc(n),(n&(t.suspendedLanes|e))!==0?0:n}function yc(t){switch(t){case 2:t=1;break;case 8:t=4;break;case 32:t=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:t=128;break;case 268435456:t=134217728;break;default:t=0}return t}function Ec(t){return t&=-t,2<t?8<t?(t&134217727)!==0?32:268435456:8:2}function Qr(){var t=_.p;return t!==0?t:(t=window.event,t===void 0?32:x1(t.type))}function zr(t,e){var n=_.p;try{return _.p=t,e()}finally{_.p=n}}var Mn=Math.random().toString(36).slice(2),te="__reactFiber$"+Mn,oe="__reactProps$"+Mn,za="__reactContainer$"+Mn,pc="__reactEvents$"+Mn,xm="__reactListeners$"+Mn,Sm="__reactHandles$"+Mn,Yr="__reactResources$"+Mn,Ml="__reactMarker$"+Mn;function bc(t){delete t[te],delete t[oe],delete t[pc],delete t[xm],delete t[Sm]}function Ya(t){var e=t[te];if(e)return e;for(var n=t.parentNode;n;){if(e=n[za]||n[te]){if(n=e.alternate,e.child!==null||n!==null&&n.child!==null)for(t=u1(t);t!==null;){if(n=t[te])return n;t=u1(t)}return e}t=n,n=t.parentNode}return null}function La(t){if(t=t[te]||t[za]){var e=t.tag;if(e===5||e===6||e===13||e===31||e===26||e===27||e===3)return t}return null}function jl(t){var e=t.tag;if(e===5||e===26||e===27||e===6)return t.stateNode;throw Error(f(33))}function Ga(t){var e=t[Yr];return e||(e=t[Yr]={hoistableStyles:new Map,hoistableScripts:new Map}),e}function Wt(t){t[Ml]=!0}var Lr=new Set,Gr={};function da(t,e){Xa(t,e),Xa(t+"Capture",e)}function Xa(t,e){for(Gr[t]=e,t=0;t<e.length;t++)Lr.add(e[t])}var Tm=RegExp("^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),Xr={},Vr={};function Cm(t){return mc.call(Vr,t)?!0:mc.call(Xr,t)?!1:Tm.test(t)?Vr[t]=!0:(Xr[t]=!0,!1)}function Gi(t,e,n){if(Cm(e))if(n===null)t.removeAttribute(e);else{switch(typeof n){case"undefined":case"function":case"symbol":t.removeAttribute(e);return;case"boolean":var a=e.toLowerCase().slice(0,5);if(a!=="data-"&&a!=="aria-"){t.removeAttribute(e);return}}t.setAttribute(e,""+n)}}function Xi(t,e,n){if(n===null)t.removeAttribute(e);else{switch(typeof n){case"undefined":case"function":case"symbol":case"boolean":t.removeAttribute(e);return}t.setAttribute(e,""+n)}}function $e(t,e,n,a){if(a===null)t.removeAttribute(n);else{switch(typeof a){case"undefined":case"function":case"symbol":case"boolean":t.removeAttribute(n);return}t.setAttributeNS(e,n,""+a)}}function je(t){switch(typeof t){case"bigint":case"boolean":case"number":case"string":case"undefined":return t;case"object":return t;default:return""}}function Zr(t){var e=t.type;return(t=t.nodeName)&&t.toLowerCase()==="input"&&(e==="checkbox"||e==="radio")}function Om(t,e,n){var a=Object.getOwnPropertyDescriptor(t.constructor.prototype,e);if(!t.hasOwnProperty(e)&&typeof a<"u"&&typeof a.get=="function"&&typeof a.set=="function"){var i=a.get,s=a.set;return Object.defineProperty(t,e,{configurable:!0,get:function(){return i.call(this)},set:function(d){n=""+d,s.call(this,d)}}),Object.defineProperty(t,e,{enumerable:a.enumerable}),{getValue:function(){return n},setValue:function(d){n=""+d},stopTracking:function(){t._valueTracker=null,delete t[e]}}}}function xc(t){if(!t._valueTracker){var e=Zr(t)?"checked":"value";t._valueTracker=Om(t,e,""+t[e])}}function qr(t){if(!t)return!1;var e=t._valueTracker;if(!e)return!0;var n=e.getValue(),a="";return t&&(a=Zr(t)?t.checked?"true":"false":t.value),t=a,t!==n?(e.setValue(t),!0):!1}function Vi(t){if(t=t||(typeof document<"u"?document:void 0),typeof t>"u")return null;try{return t.activeElement||t.body}catch{return t.body}}var wm=/[\n"\\]/g;function He(t){return t.replace(wm,function(e){return"\\"+e.charCodeAt(0).toString(16)+" "})}function Sc(t,e,n,a,i,s,d,g){t.name="",d!=null&&typeof d!="function"&&typeof d!="symbol"&&typeof d!="boolean"?t.type=d:t.removeAttribute("type"),e!=null?d==="number"?(e===0&&t.value===""||t.value!=e)&&(t.value=""+je(e)):t.value!==""+je(e)&&(t.value=""+je(e)):d!=="submit"&&d!=="reset"||t.removeAttribute("value"),e!=null?Tc(t,d,je(e)):n!=null?Tc(t,d,je(n)):a!=null&&t.removeAttribute("value"),i==null&&s!=null&&(t.defaultChecked=!!s),i!=null&&(t.checked=i&&typeof i!="function"&&typeof i!="symbol"),g!=null&&typeof g!="function"&&typeof g!="symbol"&&typeof g!="boolean"?t.name=""+je(g):t.removeAttribute("name")}function Ir(t,e,n,a,i,s,d,g){if(s!=null&&typeof s!="function"&&typeof s!="symbol"&&typeof s!="boolean"&&(t.type=s),e!=null||n!=null){if(!(s!=="submit"&&s!=="reset"||e!=null)){xc(t);return}n=n!=null?""+je(n):"",e=e!=null?""+je(e):n,g||e===t.value||(t.value=e),t.defaultValue=e}a=a??i,a=typeof a!="function"&&typeof a!="symbol"&&!!a,t.checked=g?t.checked:!!a,t.defaultChecked=!!a,d!=null&&typeof d!="function"&&typeof d!="symbol"&&typeof d!="boolean"&&(t.name=d),xc(t)}function Tc(t,e,n){e==="number"&&Vi(t.ownerDocument)===t||t.defaultValue===""+n||(t.defaultValue=""+n)}function Va(t,e,n,a){if(t=t.options,e){e={};for(var i=0;i<n.length;i++)e["$"+n[i]]=!0;for(n=0;n<t.length;n++)i=e.hasOwnProperty("$"+t[n].value),t[n].selected!==i&&(t[n].selected=i),i&&a&&(t[n].defaultSelected=!0)}else{for(n=""+je(n),e=null,i=0;i<t.length;i++){if(t[i].value===n){t[i].selected=!0,a&&(t[i].defaultSelected=!0);return}e!==null||t[i].disabled||(e=t[i])}e!==null&&(e.selected=!0)}}function Kr(t,e,n){if(e!=null&&(e=""+je(e),e!==t.value&&(t.value=e),n==null)){t.defaultValue!==e&&(t.defaultValue=e);return}t.defaultValue=n!=null?""+je(n):""}function kr(t,e,n,a){if(e==null){if(a!=null){if(n!=null)throw Error(f(92));if(it(a)){if(1<a.length)throw Error(f(93));a=a[0]}n=a}n==null&&(n=""),e=n}n=je(e),t.defaultValue=n,a=t.textContent,a===n&&a!==""&&a!==null&&(t.value=a),xc(t)}function Za(t,e){if(e){var n=t.firstChild;if(n&&n===t.lastChild&&n.nodeType===3){n.nodeValue=e;return}}t.textContent=e}var Rm=new Set("animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(" "));function Jr(t,e,n){var a=e.indexOf("--")===0;n==null||typeof n=="boolean"||n===""?a?t.setProperty(e,""):e==="float"?t.cssFloat="":t[e]="":a?t.setProperty(e,n):typeof n!="number"||n===0||Rm.has(e)?e==="float"?t.cssFloat=n:t[e]=(""+n).trim():t[e]=n+"px"}function Fr(t,e,n){if(e!=null&&typeof e!="object")throw Error(f(62));if(t=t.style,n!=null){for(var a in n)!n.hasOwnProperty(a)||e!=null&&e.hasOwnProperty(a)||(a.indexOf("--")===0?t.setProperty(a,""):a==="float"?t.cssFloat="":t[a]="");for(var i in e)a=e[i],e.hasOwnProperty(i)&&n[i]!==a&&Jr(t,i,a)}else for(var s in e)e.hasOwnProperty(s)&&Jr(t,s,e[s])}function Cc(t){if(t.indexOf("-")===-1)return!1;switch(t){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Dm=new Map([["acceptCharset","accept-charset"],["htmlFor","for"],["httpEquiv","http-equiv"],["crossOrigin","crossorigin"],["accentHeight","accent-height"],["alignmentBaseline","alignment-baseline"],["arabicForm","arabic-form"],["baselineShift","baseline-shift"],["capHeight","cap-height"],["clipPath","clip-path"],["clipRule","clip-rule"],["colorInterpolation","color-interpolation"],["colorInterpolationFilters","color-interpolation-filters"],["colorProfile","color-profile"],["colorRendering","color-rendering"],["dominantBaseline","dominant-baseline"],["enableBackground","enable-background"],["fillOpacity","fill-opacity"],["fillRule","fill-rule"],["floodColor","flood-color"],["floodOpacity","flood-opacity"],["fontFamily","font-family"],["fontSize","font-size"],["fontSizeAdjust","font-size-adjust"],["fontStretch","font-stretch"],["fontStyle","font-style"],["fontVariant","font-variant"],["fontWeight","font-weight"],["glyphName","glyph-name"],["glyphOrientationHorizontal","glyph-orientation-horizontal"],["glyphOrientationVertical","glyph-orientation-vertical"],["horizAdvX","horiz-adv-x"],["horizOriginX","horiz-origin-x"],["imageRendering","image-rendering"],["letterSpacing","letter-spacing"],["lightingColor","lighting-color"],["markerEnd","marker-end"],["markerMid","marker-mid"],["markerStart","marker-start"],["overlinePosition","overline-position"],["overlineThickness","overline-thickness"],["paintOrder","paint-order"],["panose-1","panose-1"],["pointerEvents","pointer-events"],["renderingIntent","rendering-intent"],["shapeRendering","shape-rendering"],["stopColor","stop-color"],["stopOpacity","stop-opacity"],["strikethroughPosition","strikethrough-position"],["strikethroughThickness","strikethrough-thickness"],["strokeDasharray","stroke-dasharray"],["strokeDashoffset","stroke-dashoffset"],["strokeLinecap","stroke-linecap"],["strokeLinejoin","stroke-linejoin"],["strokeMiterlimit","stroke-miterlimit"],["strokeOpacity","stroke-opacity"],["strokeWidth","stroke-width"],["textAnchor","text-anchor"],["textDecoration","text-decoration"],["textRendering","text-rendering"],["transformOrigin","transform-origin"],["underlinePosition","underline-position"],["underlineThickness","underline-thickness"],["unicodeBidi","unicode-bidi"],["unicodeRange","unicode-range"],["unitsPerEm","units-per-em"],["vAlphabetic","v-alphabetic"],["vHanging","v-hanging"],["vIdeographic","v-ideographic"],["vMathematical","v-mathematical"],["vectorEffect","vector-effect"],["vertAdvY","vert-adv-y"],["vertOriginX","vert-origin-x"],["vertOriginY","vert-origin-y"],["wordSpacing","word-spacing"],["writingMode","writing-mode"],["xmlnsXlink","xmlns:xlink"],["xHeight","x-height"]]),Mm=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function Zi(t){return Mm.test(""+t)?"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')":t}function tn(){}var Oc=null;function wc(t){return t=t.target||t.srcElement||window,t.correspondingUseElement&&(t=t.correspondingUseElement),t.nodeType===3?t.parentNode:t}var qa=null,Ia=null;function Wr(t){var e=La(t);if(e&&(t=e.stateNode)){var n=t[oe]||null;t:switch(t=e.stateNode,e.type){case"input":if(Sc(t,n.value,n.defaultValue,n.defaultValue,n.checked,n.defaultChecked,n.type,n.name),e=n.name,n.type==="radio"&&e!=null){for(n=t;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll('input[name="'+He(""+e)+'"][type="radio"]'),e=0;e<n.length;e++){var a=n[e];if(a!==t&&a.form===t.form){var i=a[oe]||null;if(!i)throw Error(f(90));Sc(a,i.value,i.defaultValue,i.defaultValue,i.checked,i.defaultChecked,i.type,i.name)}}for(e=0;e<n.length;e++)a=n[e],a.form===t.form&&qr(a)}break t;case"textarea":Kr(t,n.value,n.defaultValue);break t;case"select":e=n.value,e!=null&&Va(t,!!n.multiple,e,!1)}}}var Rc=!1;function _r(t,e,n){if(Rc)return t(e,n);Rc=!0;try{var a=t(e);return a}finally{if(Rc=!1,(qa!==null||Ia!==null)&&(Mu(),qa&&(e=qa,t=Ia,Ia=qa=null,Wr(e),t)))for(e=0;e<t.length;e++)Wr(t[e])}}function Hl(t,e){var n=t.stateNode;if(n===null)return null;var a=n[oe]||null;if(a===null)return null;n=a[e];t:switch(e){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(a=!a.disabled)||(t=t.type,a=!(t==="button"||t==="input"||t==="select"||t==="textarea")),t=!a;break t;default:t=!1}if(t)return null;if(n&&typeof n!="function")throw Error(f(231,e,typeof n));return n}var en=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Dc=!1;if(en)try{var Nl={};Object.defineProperty(Nl,"passive",{get:function(){Dc=!0}}),window.addEventListener("test",Nl,Nl),window.removeEventListener("test",Nl,Nl)}catch{Dc=!1}var jn=null,Mc=null,qi=null;function Pr(){if(qi)return qi;var t,e=Mc,n=e.length,a,i="value"in jn?jn.value:jn.textContent,s=i.length;for(t=0;t<n&&e[t]===i[t];t++);var d=n-t;for(a=1;a<=d&&e[n-a]===i[s-a];a++);return qi=i.slice(t,1<a?1-a:void 0)}function Ii(t){var e=t.keyCode;return"charCode"in t?(t=t.charCode,t===0&&e===13&&(t=13)):t=e,t===10&&(t=13),32<=t||t===13?t:0}function Ki(){return!0}function $r(){return!1}function de(t){function e(n,a,i,s,d){this._reactName=n,this._targetInst=i,this.type=a,this.nativeEvent=s,this.target=d,this.currentTarget=null;for(var g in t)t.hasOwnProperty(g)&&(n=t[g],this[g]=n?n(s):s[g]);return this.isDefaultPrevented=(s.defaultPrevented!=null?s.defaultPrevented:s.returnValue===!1)?Ki:$r,this.isPropagationStopped=$r,this}return S(e.prototype,{preventDefault:function(){this.defaultPrevented=!0;var n=this.nativeEvent;n&&(n.preventDefault?n.preventDefault():typeof n.returnValue!="unknown"&&(n.returnValue=!1),this.isDefaultPrevented=Ki)},stopPropagation:function(){var n=this.nativeEvent;n&&(n.stopPropagation?n.stopPropagation():typeof n.cancelBubble!="unknown"&&(n.cancelBubble=!0),this.isPropagationStopped=Ki)},persist:function(){},isPersistent:Ki}),e}var ha={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(t){return t.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},ki=de(ha),Bl=S({},ha,{view:0,detail:0}),jm=de(Bl),jc,Hc,Ul,Ji=S({},Bl,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Bc,button:0,buttons:0,relatedTarget:function(t){return t.relatedTarget===void 0?t.fromElement===t.srcElement?t.toElement:t.fromElement:t.relatedTarget},movementX:function(t){return"movementX"in t?t.movementX:(t!==Ul&&(Ul&&t.type==="mousemove"?(jc=t.screenX-Ul.screenX,Hc=t.screenY-Ul.screenY):Hc=jc=0,Ul=t),jc)},movementY:function(t){return"movementY"in t?t.movementY:Hc}}),to=de(Ji),Hm=S({},Ji,{dataTransfer:0}),Nm=de(Hm),Bm=S({},Bl,{relatedTarget:0}),Nc=de(Bm),Um=S({},ha,{animationName:0,elapsedTime:0,pseudoElement:0}),Qm=de(Um),zm=S({},ha,{clipboardData:function(t){return"clipboardData"in t?t.clipboardData:window.clipboardData}}),Ym=de(zm),Lm=S({},ha,{data:0}),eo=de(Lm),Gm={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},Xm={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Vm={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Zm(t){var e=this.nativeEvent;return e.getModifierState?e.getModifierState(t):(t=Vm[t])?!!e[t]:!1}function Bc(){return Zm}var qm=S({},Bl,{key:function(t){if(t.key){var e=Gm[t.key]||t.key;if(e!=="Unidentified")return e}return t.type==="keypress"?(t=Ii(t),t===13?"Enter":String.fromCharCode(t)):t.type==="keydown"||t.type==="keyup"?Xm[t.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Bc,charCode:function(t){return t.type==="keypress"?Ii(t):0},keyCode:function(t){return t.type==="keydown"||t.type==="keyup"?t.keyCode:0},which:function(t){return t.type==="keypress"?Ii(t):t.type==="keydown"||t.type==="keyup"?t.keyCode:0}}),Im=de(qm),Km=S({},Ji,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),no=de(Km),km=S({},Bl,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Bc}),Jm=de(km),Fm=S({},ha,{propertyName:0,elapsedTime:0,pseudoElement:0}),Wm=de(Fm),_m=S({},Ji,{deltaX:function(t){return"deltaX"in t?t.deltaX:"wheelDeltaX"in t?-t.wheelDeltaX:0},deltaY:function(t){return"deltaY"in t?t.deltaY:"wheelDeltaY"in t?-t.wheelDeltaY:"wheelDelta"in t?-t.wheelDelta:0},deltaZ:0,deltaMode:0}),Pm=de(_m),$m=S({},ha,{newState:0,oldState:0}),tg=de($m),eg=[9,13,27,32],Uc=en&&"CompositionEvent"in window,Ql=null;en&&"documentMode"in document&&(Ql=document.documentMode);var ng=en&&"TextEvent"in window&&!Ql,ao=en&&(!Uc||Ql&&8<Ql&&11>=Ql),lo=" ",io=!1;function uo(t,e){switch(t){case"keyup":return eg.indexOf(e.keyCode)!==-1;case"keydown":return e.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function co(t){return t=t.detail,typeof t=="object"&&"data"in t?t.data:null}var Ka=!1;function ag(t,e){switch(t){case"compositionend":return co(e);case"keypress":return e.which!==32?null:(io=!0,lo);case"textInput":return t=e.data,t===lo&&io?null:t;default:return null}}function lg(t,e){if(Ka)return t==="compositionend"||!Uc&&uo(t,e)?(t=Pr(),qi=Mc=jn=null,Ka=!1,t):null;switch(t){case"paste":return null;case"keypress":if(!(e.ctrlKey||e.altKey||e.metaKey)||e.ctrlKey&&e.altKey){if(e.char&&1<e.char.length)return e.char;if(e.which)return String.fromCharCode(e.which)}return null;case"compositionend":return ao&&e.locale!=="ko"?null:e.data;default:return null}}var ig={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function so(t){var e=t&&t.nodeName&&t.nodeName.toLowerCase();return e==="input"?!!ig[t.type]:e==="textarea"}function fo(t,e,n,a){qa?Ia?Ia.push(a):Ia=[a]:qa=a,e=zu(e,"onChange"),0<e.length&&(n=new ki("onChange","change",null,n,a),t.push({event:n,listeners:e}))}var zl=null,Yl=null;function ug(t){Kd(t,0)}function Fi(t){var e=jl(t);if(qr(e))return t}function ro(t,e){if(t==="change")return e}var oo=!1;if(en){var Qc;if(en){var zc="oninput"in document;if(!zc){var ho=document.createElement("div");ho.setAttribute("oninput","return;"),zc=typeof ho.oninput=="function"}Qc=zc}else Qc=!1;oo=Qc&&(!document.documentMode||9<document.documentMode)}function mo(){zl&&(zl.detachEvent("onpropertychange",go),Yl=zl=null)}function go(t){if(t.propertyName==="value"&&Fi(Yl)){var e=[];fo(e,Yl,t,wc(t)),_r(ug,e)}}function cg(t,e,n){t==="focusin"?(mo(),zl=e,Yl=n,zl.attachEvent("onpropertychange",go)):t==="focusout"&&mo()}function sg(t){if(t==="selectionchange"||t==="keyup"||t==="keydown")return Fi(Yl)}function fg(t,e){if(t==="click")return Fi(e)}function rg(t,e){if(t==="input"||t==="change")return Fi(e)}function og(t,e){return t===e&&(t!==0||1/t===1/e)||t!==t&&e!==e}var Se=typeof Object.is=="function"?Object.is:og;function Ll(t,e){if(Se(t,e))return!0;if(typeof t!="object"||t===null||typeof e!="object"||e===null)return!1;var n=Object.keys(t),a=Object.keys(e);if(n.length!==a.length)return!1;for(a=0;a<n.length;a++){var i=n[a];if(!mc.call(e,i)||!Se(t[i],e[i]))return!1}return!0}function Ao(t){for(;t&&t.firstChild;)t=t.firstChild;return t}function vo(t,e){var n=Ao(t);t=0;for(var a;n;){if(n.nodeType===3){if(a=t+n.textContent.length,t<=e&&a>=e)return{node:n,offset:e-t};t=a}t:{for(;n;){if(n.nextSibling){n=n.nextSibling;break t}n=n.parentNode}n=void 0}n=Ao(n)}}function yo(t,e){return t&&e?t===e?!0:t&&t.nodeType===3?!1:e&&e.nodeType===3?yo(t,e.parentNode):"contains"in t?t.contains(e):t.compareDocumentPosition?!!(t.compareDocumentPosition(e)&16):!1:!1}function Eo(t){t=t!=null&&t.ownerDocument!=null&&t.ownerDocument.defaultView!=null?t.ownerDocument.defaultView:window;for(var e=Vi(t.document);e instanceof t.HTMLIFrameElement;){try{var n=typeof e.contentWindow.location.href=="string"}catch{n=!1}if(n)t=e.contentWindow;else break;e=Vi(t.document)}return e}function Yc(t){var e=t&&t.nodeName&&t.nodeName.toLowerCase();return e&&(e==="input"&&(t.type==="text"||t.type==="search"||t.type==="tel"||t.type==="url"||t.type==="password")||e==="textarea"||t.contentEditable==="true")}var dg=en&&"documentMode"in document&&11>=document.documentMode,ka=null,Lc=null,Gl=null,Gc=!1;function po(t,e,n){var a=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Gc||ka==null||ka!==Vi(a)||(a=ka,"selectionStart"in a&&Yc(a)?a={start:a.selectionStart,end:a.selectionEnd}:(a=(a.ownerDocument&&a.ownerDocument.defaultView||window).getSelection(),a={anchorNode:a.anchorNode,anchorOffset:a.anchorOffset,focusNode:a.focusNode,focusOffset:a.focusOffset}),Gl&&Ll(Gl,a)||(Gl=a,a=zu(Lc,"onSelect"),0<a.length&&(e=new ki("onSelect","select",null,e,n),t.push({event:e,listeners:a}),e.target=ka)))}function ma(t,e){var n={};return n[t.toLowerCase()]=e.toLowerCase(),n["Webkit"+t]="webkit"+e,n["Moz"+t]="moz"+e,n}var Ja={animationend:ma("Animation","AnimationEnd"),animationiteration:ma("Animation","AnimationIteration"),animationstart:ma("Animation","AnimationStart"),transitionrun:ma("Transition","TransitionRun"),transitionstart:ma("Transition","TransitionStart"),transitioncancel:ma("Transition","TransitionCancel"),transitionend:ma("Transition","TransitionEnd")},Xc={},bo={};en&&(bo=document.createElement("div").style,"AnimationEvent"in window||(delete Ja.animationend.animation,delete Ja.animationiteration.animation,delete Ja.animationstart.animation),"TransitionEvent"in window||delete Ja.transitionend.transition);function ga(t){if(Xc[t])return Xc[t];if(!Ja[t])return t;var e=Ja[t],n;for(n in e)if(e.hasOwnProperty(n)&&n in bo)return Xc[t]=e[n];return t}var xo=ga("animationend"),So=ga("animationiteration"),To=ga("animationstart"),hg=ga("transitionrun"),mg=ga("transitionstart"),gg=ga("transitioncancel"),Co=ga("transitionend"),Oo=new Map,Vc="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");Vc.push("scrollEnd");function qe(t,e){Oo.set(t,e),da(e,[t])}var Wi=typeof reportError=="function"?reportError:function(t){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var e=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof t=="object"&&t!==null&&typeof t.message=="string"?String(t.message):String(t),error:t});if(!window.dispatchEvent(e))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",t);return}console.error(t)},Ne=[],Fa=0,Zc=0;function _i(){for(var t=Fa,e=Zc=Fa=0;e<t;){var n=Ne[e];Ne[e++]=null;var a=Ne[e];Ne[e++]=null;var i=Ne[e];Ne[e++]=null;var s=Ne[e];if(Ne[e++]=null,a!==null&&i!==null){var d=a.pending;d===null?i.next=i:(i.next=d.next,d.next=i),a.pending=i}s!==0&&wo(n,i,s)}}function Pi(t,e,n,a){Ne[Fa++]=t,Ne[Fa++]=e,Ne[Fa++]=n,Ne[Fa++]=a,Zc|=a,t.lanes|=a,t=t.alternate,t!==null&&(t.lanes|=a)}function qc(t,e,n,a){return Pi(t,e,n,a),$i(t)}function Aa(t,e){return Pi(t,null,null,e),$i(t)}function wo(t,e,n){t.lanes|=n;var a=t.alternate;a!==null&&(a.lanes|=n);for(var i=!1,s=t.return;s!==null;)s.childLanes|=n,a=s.alternate,a!==null&&(a.childLanes|=n),s.tag===22&&(t=s.stateNode,t===null||t._visibility&1||(i=!0)),t=s,s=s.return;return t.tag===3?(s=t.stateNode,i&&e!==null&&(i=31-xe(n),t=s.hiddenUpdates,a=t[i],a===null?t[i]=[e]:a.push(e),e.lane=n|536870912),s):null}function $i(t){if(50<si)throw si=0,$s=null,Error(f(185));for(var e=t.return;e!==null;)t=e,e=t.return;return t.tag===3?t.stateNode:null}var Wa={};function Ag(t,e,n,a){this.tag=t,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=e,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=a,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Te(t,e,n,a){return new Ag(t,e,n,a)}function Ic(t){return t=t.prototype,!(!t||!t.isReactComponent)}function nn(t,e){var n=t.alternate;return n===null?(n=Te(t.tag,e,t.key,t.mode),n.elementType=t.elementType,n.type=t.type,n.stateNode=t.stateNode,n.alternate=t,t.alternate=n):(n.pendingProps=e,n.type=t.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=t.flags&65011712,n.childLanes=t.childLanes,n.lanes=t.lanes,n.child=t.child,n.memoizedProps=t.memoizedProps,n.memoizedState=t.memoizedState,n.updateQueue=t.updateQueue,e=t.dependencies,n.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext},n.sibling=t.sibling,n.index=t.index,n.ref=t.ref,n.refCleanup=t.refCleanup,n}function Ro(t,e){t.flags&=65011714;var n=t.alternate;return n===null?(t.childLanes=0,t.lanes=e,t.child=null,t.subtreeFlags=0,t.memoizedProps=null,t.memoizedState=null,t.updateQueue=null,t.dependencies=null,t.stateNode=null):(t.childLanes=n.childLanes,t.lanes=n.lanes,t.child=n.child,t.subtreeFlags=0,t.deletions=null,t.memoizedProps=n.memoizedProps,t.memoizedState=n.memoizedState,t.updateQueue=n.updateQueue,t.type=n.type,e=n.dependencies,t.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext}),t}function tu(t,e,n,a,i,s){var d=0;if(a=t,typeof t=="function")Ic(t)&&(d=1);else if(typeof t=="string")d=bA(t,n,et.current)?26:t==="html"||t==="head"||t==="body"?27:5;else t:switch(t){case K:return t=Te(31,n,e,i),t.elementType=K,t.lanes=s,t;case b:return va(n.children,i,s,e);case p:d=8,i|=24;break;case x:return t=Te(12,n,e,i|2),t.elementType=x,t.lanes=s,t;case F:return t=Te(13,n,e,i),t.elementType=F,t.lanes=s,t;case j:return t=Te(19,n,e,i),t.elementType=j,t.lanes=s,t;default:if(typeof t=="object"&&t!==null)switch(t.$$typeof){case U:d=10;break t;case R:d=9;break t;case Z:d=11;break t;case D:d=14;break t;case N:d=16,a=null;break t}d=29,n=Error(f(130,t===null?"null":typeof t,"")),a=null}return e=Te(d,n,e,i),e.elementType=t,e.type=a,e.lanes=s,e}function va(t,e,n,a){return t=Te(7,t,a,e),t.lanes=n,t}function Kc(t,e,n){return t=Te(6,t,null,e),t.lanes=n,t}function Do(t){var e=Te(18,null,null,0);return e.stateNode=t,e}function kc(t,e,n){return e=Te(4,t.children!==null?t.children:[],t.key,e),e.lanes=n,e.stateNode={containerInfo:t.containerInfo,pendingChildren:null,implementation:t.implementation},e}var Mo=new WeakMap;function Be(t,e){if(typeof t=="object"&&t!==null){var n=Mo.get(t);return n!==void 0?n:(e={value:t,source:e,stack:Bi(e)},Mo.set(t,e),e)}return{value:t,source:e,stack:Bi(e)}}var _a=[],Pa=0,eu=null,Xl=0,Ue=[],Qe=0,Hn=null,Je=1,Fe="";function an(t,e){_a[Pa++]=Xl,_a[Pa++]=eu,eu=t,Xl=e}function jo(t,e,n){Ue[Qe++]=Je,Ue[Qe++]=Fe,Ue[Qe++]=Hn,Hn=t;var a=Je;t=Fe;var i=32-xe(a)-1;a&=~(1<<i),n+=1;var s=32-xe(e)+i;if(30<s){var d=i-i%5;s=(a&(1<<d)-1).toString(32),a>>=d,i-=d,Je=1<<32-xe(e)+i|n<<i|a,Fe=s+t}else Je=1<<s|n<<i|a,Fe=t}function Jc(t){t.return!==null&&(an(t,1),jo(t,1,0))}function Fc(t){for(;t===eu;)eu=_a[--Pa],_a[Pa]=null,Xl=_a[--Pa],_a[Pa]=null;for(;t===Hn;)Hn=Ue[--Qe],Ue[Qe]=null,Fe=Ue[--Qe],Ue[Qe]=null,Je=Ue[--Qe],Ue[Qe]=null}function Ho(t,e){Ue[Qe++]=Je,Ue[Qe++]=Fe,Ue[Qe++]=Hn,Je=e.id,Fe=e.overflow,Hn=t}var ee=null,Ht=null,bt=!1,Nn=null,ze=!1,Wc=Error(f(519));function Bn(t){var e=Error(f(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?"text":"HTML",""));throw Vl(Be(e,t)),Wc}function No(t){var e=t.stateNode,n=t.type,a=t.memoizedProps;switch(e[te]=t,e[oe]=a,n){case"dialog":yt("cancel",e),yt("close",e);break;case"iframe":case"object":case"embed":yt("load",e);break;case"video":case"audio":for(n=0;n<ri.length;n++)yt(ri[n],e);break;case"source":yt("error",e);break;case"img":case"image":case"link":yt("error",e),yt("load",e);break;case"details":yt("toggle",e);break;case"input":yt("invalid",e),Ir(e,a.value,a.defaultValue,a.checked,a.defaultChecked,a.type,a.name,!0);break;case"select":yt("invalid",e);break;case"textarea":yt("invalid",e),kr(e,a.value,a.defaultValue,a.children)}n=a.children,typeof n!="string"&&typeof n!="number"&&typeof n!="bigint"||e.textContent===""+n||a.suppressHydrationWarning===!0||Wd(e.textContent,n)?(a.popover!=null&&(yt("beforetoggle",e),yt("toggle",e)),a.onScroll!=null&&yt("scroll",e),a.onScrollEnd!=null&&yt("scrollend",e),a.onClick!=null&&(e.onclick=tn),e=!0):e=!1,e||Bn(t,!0)}function Bo(t){for(ee=t.return;ee;)switch(ee.tag){case 5:case 31:case 13:ze=!1;return;case 27:case 3:ze=!0;return;default:ee=ee.return}}function $a(t){if(t!==ee)return!1;if(!bt)return Bo(t),bt=!0,!1;var e=t.tag,n;if((n=e!==3&&e!==27)&&((n=e===5)&&(n=t.type,n=!(n!=="form"&&n!=="button")||gf(t.type,t.memoizedProps)),n=!n),n&&Ht&&Bn(t),Bo(t),e===13){if(t=t.memoizedState,t=t!==null?t.dehydrated:null,!t)throw Error(f(317));Ht=i1(t)}else if(e===31){if(t=t.memoizedState,t=t!==null?t.dehydrated:null,!t)throw Error(f(317));Ht=i1(t)}else e===27?(e=Ht,Jn(t.type)?(t=pf,pf=null,Ht=t):Ht=e):Ht=ee?Le(t.stateNode.nextSibling):null;return!0}function ya(){Ht=ee=null,bt=!1}function _c(){var t=Nn;return t!==null&&(Ae===null?Ae=t:Ae.push.apply(Ae,t),Nn=null),t}function Vl(t){Nn===null?Nn=[t]:Nn.push(t)}var Pc=C(null),Ea=null,ln=null;function Un(t,e,n){W(Pc,e._currentValue),e._currentValue=n}function un(t){t._currentValue=Pc.current,L(Pc)}function $c(t,e,n){for(;t!==null;){var a=t.alternate;if((t.childLanes&e)!==e?(t.childLanes|=e,a!==null&&(a.childLanes|=e)):a!==null&&(a.childLanes&e)!==e&&(a.childLanes|=e),t===n)break;t=t.return}}function ts(t,e,n,a){var i=t.child;for(i!==null&&(i.return=t);i!==null;){var s=i.dependencies;if(s!==null){var d=i.child;s=s.firstContext;t:for(;s!==null;){var g=s;s=i;for(var T=0;T<e.length;T++)if(g.context===e[T]){s.lanes|=n,g=s.alternate,g!==null&&(g.lanes|=n),$c(s.return,n,t),a||(d=null);break t}s=g.next}}else if(i.tag===18){if(d=i.return,d===null)throw Error(f(341));d.lanes|=n,s=d.alternate,s!==null&&(s.lanes|=n),$c(d,n,t),d=null}else d=i.child;if(d!==null)d.return=i;else for(d=i;d!==null;){if(d===t){d=null;break}if(i=d.sibling,i!==null){i.return=d.return,d=i;break}d=d.return}i=d}}function tl(t,e,n,a){t=null;for(var i=e,s=!1;i!==null;){if(!s){if((i.flags&524288)!==0)s=!0;else if((i.flags&262144)!==0)break}if(i.tag===10){var d=i.alternate;if(d===null)throw Error(f(387));if(d=d.memoizedProps,d!==null){var g=i.type;Se(i.pendingProps.value,d.value)||(t!==null?t.push(g):t=[g])}}else if(i===gt.current){if(d=i.alternate,d===null)throw Error(f(387));d.memoizedState.memoizedState!==i.memoizedState.memoizedState&&(t!==null?t.push(gi):t=[gi])}i=i.return}t!==null&&ts(e,t,n,a),e.flags|=262144}function nu(t){for(t=t.firstContext;t!==null;){if(!Se(t.context._currentValue,t.memoizedValue))return!0;t=t.next}return!1}function pa(t){Ea=t,ln=null,t=t.dependencies,t!==null&&(t.firstContext=null)}function ne(t){return Uo(Ea,t)}function au(t,e){return Ea===null&&pa(t),Uo(t,e)}function Uo(t,e){var n=e._currentValue;if(e={context:e,memoizedValue:n,next:null},ln===null){if(t===null)throw Error(f(308));ln=e,t.dependencies={lanes:0,firstContext:e},t.flags|=524288}else ln=ln.next=e;return n}var vg=typeof AbortController<"u"?AbortController:function(){var t=[],e=this.signal={aborted:!1,addEventListener:function(n,a){t.push(a)}};this.abort=function(){e.aborted=!0,t.forEach(function(n){return n()})}},yg=l.unstable_scheduleCallback,Eg=l.unstable_NormalPriority,Zt={$$typeof:U,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function es(){return{controller:new vg,data:new Map,refCount:0}}function Zl(t){t.refCount--,t.refCount===0&&yg(Eg,function(){t.controller.abort()})}var ql=null,ns=0,el=0,nl=null;function pg(t,e){if(ql===null){var n=ql=[];ns=0,el=uf(),nl={status:"pending",value:void 0,then:function(a){n.push(a)}}}return ns++,e.then(Qo,Qo),e}function Qo(){if(--ns===0&&ql!==null){nl!==null&&(nl.status="fulfilled");var t=ql;ql=null,el=0,nl=null;for(var e=0;e<t.length;e++)(0,t[e])()}}function bg(t,e){var n=[],a={status:"pending",value:null,reason:null,then:function(i){n.push(i)}};return t.then(function(){a.status="fulfilled",a.value=e;for(var i=0;i<n.length;i++)(0,n[i])(e)},function(i){for(a.status="rejected",a.reason=i,i=0;i<n.length;i++)(0,n[i])(void 0)}),a}var zo=H.S;H.S=function(t,e){pd=pe(),typeof e=="object"&&e!==null&&typeof e.then=="function"&&pg(t,e),zo!==null&&zo(t,e)};var ba=C(null);function as(){var t=ba.current;return t!==null?t:jt.pooledCache}function lu(t,e){e===null?W(ba,ba.current):W(ba,e.pool)}function Yo(){var t=as();return t===null?null:{parent:Zt._currentValue,pool:t}}var al=Error(f(460)),ls=Error(f(474)),iu=Error(f(542)),uu={then:function(){}};function Lo(t){return t=t.status,t==="fulfilled"||t==="rejected"}function Go(t,e,n){switch(n=t[n],n===void 0?t.push(e):n!==e&&(e.then(tn,tn),e=n),e.status){case"fulfilled":return e.value;case"rejected":throw t=e.reason,Vo(t),t;default:if(typeof e.status=="string")e.then(tn,tn);else{if(t=jt,t!==null&&100<t.shellSuspendCounter)throw Error(f(482));t=e,t.status="pending",t.then(function(a){if(e.status==="pending"){var i=e;i.status="fulfilled",i.value=a}},function(a){if(e.status==="pending"){var i=e;i.status="rejected",i.reason=a}})}switch(e.status){case"fulfilled":return e.value;case"rejected":throw t=e.reason,Vo(t),t}throw Sa=e,al}}function xa(t){try{var e=t._init;return e(t._payload)}catch(n){throw n!==null&&typeof n=="object"&&typeof n.then=="function"?(Sa=n,al):n}}var Sa=null;function Xo(){if(Sa===null)throw Error(f(459));var t=Sa;return Sa=null,t}function Vo(t){if(t===al||t===iu)throw Error(f(483))}var ll=null,Il=0;function cu(t){var e=Il;return Il+=1,ll===null&&(ll=[]),Go(ll,t,e)}function Kl(t,e){e=e.props.ref,t.ref=e!==void 0?e:null}function su(t,e){throw e.$$typeof===O?Error(f(525)):(t=Object.prototype.toString.call(e),Error(f(31,t==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":t)))}function Zo(t){function e(M,w){if(t){var Q=M.deletions;Q===null?(M.deletions=[w],M.flags|=16):Q.push(w)}}function n(M,w){if(!t)return null;for(;w!==null;)e(M,w),w=w.sibling;return null}function a(M){for(var w=new Map;M!==null;)M.key!==null?w.set(M.key,M):w.set(M.index,M),M=M.sibling;return w}function i(M,w){return M=nn(M,w),M.index=0,M.sibling=null,M}function s(M,w,Q){return M.index=Q,t?(Q=M.alternate,Q!==null?(Q=Q.index,Q<w?(M.flags|=67108866,w):Q):(M.flags|=67108866,w)):(M.flags|=1048576,w)}function d(M){return t&&M.alternate===null&&(M.flags|=67108866),M}function g(M,w,Q,q){return w===null||w.tag!==6?(w=Kc(Q,M.mode,q),w.return=M,w):(w=i(w,Q),w.return=M,w)}function T(M,w,Q,q){var ut=Q.type;return ut===b?V(M,w,Q.props.children,q,Q.key):w!==null&&(w.elementType===ut||typeof ut=="object"&&ut!==null&&ut.$$typeof===N&&xa(ut)===w.type)?(w=i(w,Q.props),Kl(w,Q),w.return=M,w):(w=tu(Q.type,Q.key,Q.props,null,M.mode,q),Kl(w,Q),w.return=M,w)}function z(M,w,Q,q){return w===null||w.tag!==4||w.stateNode.containerInfo!==Q.containerInfo||w.stateNode.implementation!==Q.implementation?(w=kc(Q,M.mode,q),w.return=M,w):(w=i(w,Q.children||[]),w.return=M,w)}function V(M,w,Q,q,ut){return w===null||w.tag!==7?(w=va(Q,M.mode,q,ut),w.return=M,w):(w=i(w,Q),w.return=M,w)}function I(M,w,Q){if(typeof w=="string"&&w!==""||typeof w=="number"||typeof w=="bigint")return w=Kc(""+w,M.mode,Q),w.return=M,w;if(typeof w=="object"&&w!==null){switch(w.$$typeof){case X:return Q=tu(w.type,w.key,w.props,null,M.mode,Q),Kl(Q,w),Q.return=M,Q;case B:return w=kc(w,M.mode,Q),w.return=M,w;case N:return w=xa(w),I(M,w,Q)}if(it(w)||nt(w))return w=va(w,M.mode,Q,null),w.return=M,w;if(typeof w.then=="function")return I(M,cu(w),Q);if(w.$$typeof===U)return I(M,au(M,w),Q);su(M,w)}return null}function Y(M,w,Q,q){var ut=w!==null?w.key:null;if(typeof Q=="string"&&Q!==""||typeof Q=="number"||typeof Q=="bigint")return ut!==null?null:g(M,w,""+Q,q);if(typeof Q=="object"&&Q!==null){switch(Q.$$typeof){case X:return Q.key===ut?T(M,w,Q,q):null;case B:return Q.key===ut?z(M,w,Q,q):null;case N:return Q=xa(Q),Y(M,w,Q,q)}if(it(Q)||nt(Q))return ut!==null?null:V(M,w,Q,q,null);if(typeof Q.then=="function")return Y(M,w,cu(Q),q);if(Q.$$typeof===U)return Y(M,w,au(M,Q),q);su(M,Q)}return null}function G(M,w,Q,q,ut){if(typeof q=="string"&&q!==""||typeof q=="number"||typeof q=="bigint")return M=M.get(Q)||null,g(w,M,""+q,ut);if(typeof q=="object"&&q!==null){switch(q.$$typeof){case X:return M=M.get(q.key===null?Q:q.key)||null,T(w,M,q,ut);case B:return M=M.get(q.key===null?Q:q.key)||null,z(w,M,q,ut);case N:return q=xa(q),G(M,w,Q,q,ut)}if(it(q)||nt(q))return M=M.get(Q)||null,V(w,M,q,ut,null);if(typeof q.then=="function")return G(M,w,Q,cu(q),ut);if(q.$$typeof===U)return G(M,w,Q,au(w,q),ut);su(w,q)}return null}function at(M,w,Q,q){for(var ut=null,St=null,lt=w,At=w=0,pt=null;lt!==null&&At<Q.length;At++){lt.index>At?(pt=lt,lt=null):pt=lt.sibling;var Tt=Y(M,lt,Q[At],q);if(Tt===null){lt===null&&(lt=pt);break}t&<&&Tt.alternate===null&&e(M,lt),w=s(Tt,w,At),St===null?ut=Tt:St.sibling=Tt,St=Tt,lt=pt}if(At===Q.length)return n(M,lt),bt&&an(M,At),ut;if(lt===null){for(;At<Q.length;At++)lt=I(M,Q[At],q),lt!==null&&(w=s(lt,w,At),St===null?ut=lt:St.sibling=lt,St=lt);return bt&&an(M,At),ut}for(lt=a(lt);At<Q.length;At++)pt=G(lt,M,At,Q[At],q),pt!==null&&(t&&pt.alternate!==null&<.delete(pt.key===null?At:pt.key),w=s(pt,w,At),St===null?ut=pt:St.sibling=pt,St=pt);return t&<.forEach(function($n){return e(M,$n)}),bt&&an(M,At),ut}function ft(M,w,Q,q){if(Q==null)throw Error(f(151));for(var ut=null,St=null,lt=w,At=w=0,pt=null,Tt=Q.next();lt!==null&&!Tt.done;At++,Tt=Q.next()){lt.index>At?(pt=lt,lt=null):pt=lt.sibling;var $n=Y(M,lt,Tt.value,q);if($n===null){lt===null&&(lt=pt);break}t&<&&$n.alternate===null&&e(M,lt),w=s($n,w,At),St===null?ut=$n:St.sibling=$n,St=$n,lt=pt}if(Tt.done)return n(M,lt),bt&&an(M,At),ut;if(lt===null){for(;!Tt.done;At++,Tt=Q.next())Tt=I(M,Tt.value,q),Tt!==null&&(w=s(Tt,w,At),St===null?ut=Tt:St.sibling=Tt,St=Tt);return bt&&an(M,At),ut}for(lt=a(lt);!Tt.done;At++,Tt=Q.next())Tt=G(lt,M,At,Tt.value,q),Tt!==null&&(t&&Tt.alternate!==null&<.delete(Tt.key===null?At:Tt.key),w=s(Tt,w,At),St===null?ut=Tt:St.sibling=Tt,St=Tt);return t&<.forEach(function(HA){return e(M,HA)}),bt&&an(M,At),ut}function Mt(M,w,Q,q){if(typeof Q=="object"&&Q!==null&&Q.type===b&&Q.key===null&&(Q=Q.props.children),typeof Q=="object"&&Q!==null){switch(Q.$$typeof){case X:t:{for(var ut=Q.key;w!==null;){if(w.key===ut){if(ut=Q.type,ut===b){if(w.tag===7){n(M,w.sibling),q=i(w,Q.props.children),q.return=M,M=q;break t}}else if(w.elementType===ut||typeof ut=="object"&&ut!==null&&ut.$$typeof===N&&xa(ut)===w.type){n(M,w.sibling),q=i(w,Q.props),Kl(q,Q),q.return=M,M=q;break t}n(M,w);break}else e(M,w);w=w.sibling}Q.type===b?(q=va(Q.props.children,M.mode,q,Q.key),q.return=M,M=q):(q=tu(Q.type,Q.key,Q.props,null,M.mode,q),Kl(q,Q),q.return=M,M=q)}return d(M);case B:t:{for(ut=Q.key;w!==null;){if(w.key===ut)if(w.tag===4&&w.stateNode.containerInfo===Q.containerInfo&&w.stateNode.implementation===Q.implementation){n(M,w.sibling),q=i(w,Q.children||[]),q.return=M,M=q;break t}else{n(M,w);break}else e(M,w);w=w.sibling}q=kc(Q,M.mode,q),q.return=M,M=q}return d(M);case N:return Q=xa(Q),Mt(M,w,Q,q)}if(it(Q))return at(M,w,Q,q);if(nt(Q)){if(ut=nt(Q),typeof ut!="function")throw Error(f(150));return Q=ut.call(Q),ft(M,w,Q,q)}if(typeof Q.then=="function")return Mt(M,w,cu(Q),q);if(Q.$$typeof===U)return Mt(M,w,au(M,Q),q);su(M,Q)}return typeof Q=="string"&&Q!==""||typeof Q=="number"||typeof Q=="bigint"?(Q=""+Q,w!==null&&w.tag===6?(n(M,w.sibling),q=i(w,Q),q.return=M,M=q):(n(M,w),q=Kc(Q,M.mode,q),q.return=M,M=q),d(M)):n(M,w)}return function(M,w,Q,q){try{Il=0;var ut=Mt(M,w,Q,q);return ll=null,ut}catch(lt){if(lt===al||lt===iu)throw lt;var St=Te(29,lt,null,M.mode);return St.lanes=q,St.return=M,St}finally{}}}var Ta=Zo(!0),qo=Zo(!1),Qn=!1;function is(t){t.updateQueue={baseState:t.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function us(t,e){t=t.updateQueue,e.updateQueue===t&&(e.updateQueue={baseState:t.baseState,firstBaseUpdate:t.firstBaseUpdate,lastBaseUpdate:t.lastBaseUpdate,shared:t.shared,callbacks:null})}function zn(t){return{lane:t,tag:0,payload:null,callback:null,next:null}}function Yn(t,e,n){var a=t.updateQueue;if(a===null)return null;if(a=a.shared,(Ct&2)!==0){var i=a.pending;return i===null?e.next=e:(e.next=i.next,i.next=e),a.pending=e,e=$i(t),wo(t,null,n),e}return Pi(t,a,e,n),$i(t)}function kl(t,e,n){if(e=e.updateQueue,e!==null&&(e=e.shared,(n&4194048)!==0)){var a=e.lanes;a&=t.pendingLanes,n|=a,e.lanes=n,Br(t,n)}}function cs(t,e){var n=t.updateQueue,a=t.alternate;if(a!==null&&(a=a.updateQueue,n===a)){var i=null,s=null;if(n=n.firstBaseUpdate,n!==null){do{var d={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};s===null?i=s=d:s=s.next=d,n=n.next}while(n!==null);s===null?i=s=e:s=s.next=e}else i=s=e;n={baseState:a.baseState,firstBaseUpdate:i,lastBaseUpdate:s,shared:a.shared,callbacks:a.callbacks},t.updateQueue=n;return}t=n.lastBaseUpdate,t===null?n.firstBaseUpdate=e:t.next=e,n.lastBaseUpdate=e}var ss=!1;function Jl(){if(ss){var t=nl;if(t!==null)throw t}}function Fl(t,e,n,a){ss=!1;var i=t.updateQueue;Qn=!1;var s=i.firstBaseUpdate,d=i.lastBaseUpdate,g=i.shared.pending;if(g!==null){i.shared.pending=null;var T=g,z=T.next;T.next=null,d===null?s=z:d.next=z,d=T;var V=t.alternate;V!==null&&(V=V.updateQueue,g=V.lastBaseUpdate,g!==d&&(g===null?V.firstBaseUpdate=z:g.next=z,V.lastBaseUpdate=T))}if(s!==null){var I=i.baseState;d=0,V=z=T=null,g=s;do{var Y=g.lane&-536870913,G=Y!==g.lane;if(G?(Et&Y)===Y:(a&Y)===Y){Y!==0&&Y===el&&(ss=!0),V!==null&&(V=V.next={lane:0,tag:g.tag,payload:g.payload,callback:null,next:null});t:{var at=t,ft=g;Y=e;var Mt=n;switch(ft.tag){case 1:if(at=ft.payload,typeof at=="function"){I=at.call(Mt,I,Y);break t}I=at;break t;case 3:at.flags=at.flags&-65537|128;case 0:if(at=ft.payload,Y=typeof at=="function"?at.call(Mt,I,Y):at,Y==null)break t;I=S({},I,Y);break t;case 2:Qn=!0}}Y=g.callback,Y!==null&&(t.flags|=64,G&&(t.flags|=8192),G=i.callbacks,G===null?i.callbacks=[Y]:G.push(Y))}else G={lane:Y,tag:g.tag,payload:g.payload,callback:g.callback,next:null},V===null?(z=V=G,T=I):V=V.next=G,d|=Y;if(g=g.next,g===null){if(g=i.shared.pending,g===null)break;G=g,g=G.next,G.next=null,i.lastBaseUpdate=G,i.shared.pending=null}}while(!0);V===null&&(T=I),i.baseState=T,i.firstBaseUpdate=z,i.lastBaseUpdate=V,s===null&&(i.shared.lanes=0),Zn|=d,t.lanes=d,t.memoizedState=I}}function Io(t,e){if(typeof t!="function")throw Error(f(191,t));t.call(e)}function Ko(t,e){var n=t.callbacks;if(n!==null)for(t.callbacks=null,t=0;t<n.length;t++)Io(n[t],e)}var il=C(null),fu=C(0);function ko(t,e){t=gn,W(fu,t),W(il,e),gn=t|e.baseLanes}function fs(){W(fu,gn),W(il,il.current)}function rs(){gn=fu.current,L(il),L(fu)}var Ce=C(null),Ye=null;function Ln(t){var e=t.alternate;W(Xt,Xt.current&1),W(Ce,t),Ye===null&&(e===null||il.current!==null||e.memoizedState!==null)&&(Ye=t)}function os(t){W(Xt,Xt.current),W(Ce,t),Ye===null&&(Ye=t)}function Jo(t){t.tag===22?(W(Xt,Xt.current),W(Ce,t),Ye===null&&(Ye=t)):Gn()}function Gn(){W(Xt,Xt.current),W(Ce,Ce.current)}function Oe(t){L(Ce),Ye===t&&(Ye=null),L(Xt)}var Xt=C(0);function ru(t){for(var e=t;e!==null;){if(e.tag===13){var n=e.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||yf(n)||Ef(n)))return e}else if(e.tag===19&&(e.memoizedProps.revealOrder==="forwards"||e.memoizedProps.revealOrder==="backwards"||e.memoizedProps.revealOrder==="unstable_legacy-backwards"||e.memoizedProps.revealOrder==="together")){if((e.flags&128)!==0)return e}else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break;for(;e.sibling===null;){if(e.return===null||e.return===t)return null;e=e.return}e.sibling.return=e.return,e=e.sibling}return null}var cn=0,mt=null,Rt=null,qt=null,ou=!1,ul=!1,Ca=!1,du=0,Wl=0,cl=null,xg=0;function Lt(){throw Error(f(321))}function ds(t,e){if(e===null)return!1;for(var n=0;n<e.length&&n<t.length;n++)if(!Se(t[n],e[n]))return!1;return!0}function hs(t,e,n,a,i,s){return cn=s,mt=e,e.memoizedState=null,e.updateQueue=null,e.lanes=0,H.H=t===null||t.memoizedState===null?j0:Rs,Ca=!1,s=n(a,i),Ca=!1,ul&&(s=Wo(e,n,a,i)),Fo(t),s}function Fo(t){H.H=$l;var e=Rt!==null&&Rt.next!==null;if(cn=0,qt=Rt=mt=null,ou=!1,Wl=0,cl=null,e)throw Error(f(300));t===null||It||(t=t.dependencies,t!==null&&nu(t)&&(It=!0))}function Wo(t,e,n,a){mt=t;var i=0;do{if(ul&&(cl=null),Wl=0,ul=!1,25<=i)throw Error(f(301));if(i+=1,qt=Rt=null,t.updateQueue!=null){var s=t.updateQueue;s.lastEffect=null,s.events=null,s.stores=null,s.memoCache!=null&&(s.memoCache.index=0)}H.H=H0,s=e(n,a)}while(ul);return s}function Sg(){var t=H.H,e=t.useState()[0];return e=typeof e.then=="function"?_l(e):e,t=t.useState()[0],(Rt!==null?Rt.memoizedState:null)!==t&&(mt.flags|=1024),e}function ms(){var t=du!==0;return du=0,t}function gs(t,e,n){e.updateQueue=t.updateQueue,e.flags&=-2053,t.lanes&=~n}function As(t){if(ou){for(t=t.memoizedState;t!==null;){var e=t.queue;e!==null&&(e.pending=null),t=t.next}ou=!1}cn=0,qt=Rt=mt=null,ul=!1,Wl=du=0,cl=null}function fe(){var t={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return qt===null?mt.memoizedState=qt=t:qt=qt.next=t,qt}function Vt(){if(Rt===null){var t=mt.alternate;t=t!==null?t.memoizedState:null}else t=Rt.next;var e=qt===null?mt.memoizedState:qt.next;if(e!==null)qt=e,Rt=t;else{if(t===null)throw mt.alternate===null?Error(f(467)):Error(f(310));Rt=t,t={memoizedState:Rt.memoizedState,baseState:Rt.baseState,baseQueue:Rt.baseQueue,queue:Rt.queue,next:null},qt===null?mt.memoizedState=qt=t:qt=qt.next=t}return qt}function hu(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function _l(t){var e=Wl;return Wl+=1,cl===null&&(cl=[]),t=Go(cl,t,e),e=mt,(qt===null?e.memoizedState:qt.next)===null&&(e=e.alternate,H.H=e===null||e.memoizedState===null?j0:Rs),t}function mu(t){if(t!==null&&typeof t=="object"){if(typeof t.then=="function")return _l(t);if(t.$$typeof===U)return ne(t)}throw Error(f(438,String(t)))}function vs(t){var e=null,n=mt.updateQueue;if(n!==null&&(e=n.memoCache),e==null){var a=mt.alternate;a!==null&&(a=a.updateQueue,a!==null&&(a=a.memoCache,a!=null&&(e={data:a.data.map(function(i){return i.slice()}),index:0})))}if(e==null&&(e={data:[],index:0}),n===null&&(n=hu(),mt.updateQueue=n),n.memoCache=e,n=e.data[e.index],n===void 0)for(n=e.data[e.index]=Array(t),a=0;a<t;a++)n[a]=J;return e.index++,n}function sn(t,e){return typeof e=="function"?e(t):e}function gu(t){var e=Vt();return ys(e,Rt,t)}function ys(t,e,n){var a=t.queue;if(a===null)throw Error(f(311));a.lastRenderedReducer=n;var i=t.baseQueue,s=a.pending;if(s!==null){if(i!==null){var d=i.next;i.next=s.next,s.next=d}e.baseQueue=i=s,a.pending=null}if(s=t.baseState,i===null)t.memoizedState=s;else{e=i.next;var g=d=null,T=null,z=e,V=!1;do{var I=z.lane&-536870913;if(I!==z.lane?(Et&I)===I:(cn&I)===I){var Y=z.revertLane;if(Y===0)T!==null&&(T=T.next={lane:0,revertLane:0,gesture:null,action:z.action,hasEagerState:z.hasEagerState,eagerState:z.eagerState,next:null}),I===el&&(V=!0);else if((cn&Y)===Y){z=z.next,Y===el&&(V=!0);continue}else I={lane:0,revertLane:z.revertLane,gesture:null,action:z.action,hasEagerState:z.hasEagerState,eagerState:z.eagerState,next:null},T===null?(g=T=I,d=s):T=T.next=I,mt.lanes|=Y,Zn|=Y;I=z.action,Ca&&n(s,I),s=z.hasEagerState?z.eagerState:n(s,I)}else Y={lane:I,revertLane:z.revertLane,gesture:z.gesture,action:z.action,hasEagerState:z.hasEagerState,eagerState:z.eagerState,next:null},T===null?(g=T=Y,d=s):T=T.next=Y,mt.lanes|=I,Zn|=I;z=z.next}while(z!==null&&z!==e);if(T===null?d=s:T.next=g,!Se(s,t.memoizedState)&&(It=!0,V&&(n=nl,n!==null)))throw n;t.memoizedState=s,t.baseState=d,t.baseQueue=T,a.lastRenderedState=s}return i===null&&(a.lanes=0),[t.memoizedState,a.dispatch]}function Es(t){var e=Vt(),n=e.queue;if(n===null)throw Error(f(311));n.lastRenderedReducer=t;var a=n.dispatch,i=n.pending,s=e.memoizedState;if(i!==null){n.pending=null;var d=i=i.next;do s=t(s,d.action),d=d.next;while(d!==i);Se(s,e.memoizedState)||(It=!0),e.memoizedState=s,e.baseQueue===null&&(e.baseState=s),n.lastRenderedState=s}return[s,a]}function _o(t,e,n){var a=mt,i=Vt(),s=bt;if(s){if(n===void 0)throw Error(f(407));n=n()}else n=e();var d=!Se((Rt||i).memoizedState,n);if(d&&(i.memoizedState=n,It=!0),i=i.queue,xs(t0.bind(null,a,i,t),[t]),i.getSnapshot!==e||d||qt!==null&&qt.memoizedState.tag&1){if(a.flags|=2048,sl(9,{destroy:void 0},$o.bind(null,a,i,n,e),null),jt===null)throw Error(f(349));s||(cn&127)!==0||Po(a,e,n)}return n}function Po(t,e,n){t.flags|=16384,t={getSnapshot:e,value:n},e=mt.updateQueue,e===null?(e=hu(),mt.updateQueue=e,e.stores=[t]):(n=e.stores,n===null?e.stores=[t]:n.push(t))}function $o(t,e,n,a){e.value=n,e.getSnapshot=a,e0(e)&&n0(t)}function t0(t,e,n){return n(function(){e0(e)&&n0(t)})}function e0(t){var e=t.getSnapshot;t=t.value;try{var n=e();return!Se(t,n)}catch{return!0}}function n0(t){var e=Aa(t,2);e!==null&&ve(e,t,2)}function ps(t){var e=fe();if(typeof t=="function"){var n=t;if(t=n(),Ca){Dn(!0);try{n()}finally{Dn(!1)}}}return e.memoizedState=e.baseState=t,e.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:sn,lastRenderedState:t},e}function a0(t,e,n,a){return t.baseState=n,ys(t,Rt,typeof a=="function"?a:sn)}function Tg(t,e,n,a,i){if(yu(t))throw Error(f(485));if(t=e.action,t!==null){var s={payload:i,action:t,next:null,isTransition:!0,status:"pending",value:null,reason:null,listeners:[],then:function(d){s.listeners.push(d)}};H.T!==null?n(!0):s.isTransition=!1,a(s),n=e.pending,n===null?(s.next=e.pending=s,l0(e,s)):(s.next=n.next,e.pending=n.next=s)}}function l0(t,e){var n=e.action,a=e.payload,i=t.state;if(e.isTransition){var s=H.T,d={};H.T=d;try{var g=n(i,a),T=H.S;T!==null&&T(d,g),i0(t,e,g)}catch(z){bs(t,e,z)}finally{s!==null&&d.types!==null&&(s.types=d.types),H.T=s}}else try{s=n(i,a),i0(t,e,s)}catch(z){bs(t,e,z)}}function i0(t,e,n){n!==null&&typeof n=="object"&&typeof n.then=="function"?n.then(function(a){u0(t,e,a)},function(a){return bs(t,e,a)}):u0(t,e,n)}function u0(t,e,n){e.status="fulfilled",e.value=n,c0(e),t.state=n,e=t.pending,e!==null&&(n=e.next,n===e?t.pending=null:(n=n.next,e.next=n,l0(t,n)))}function bs(t,e,n){var a=t.pending;if(t.pending=null,a!==null){a=a.next;do e.status="rejected",e.reason=n,c0(e),e=e.next;while(e!==a)}t.action=null}function c0(t){t=t.listeners;for(var e=0;e<t.length;e++)(0,t[e])()}function s0(t,e){return e}function f0(t,e){if(bt){var n=jt.formState;if(n!==null){t:{var a=mt;if(bt){if(Ht){e:{for(var i=Ht,s=ze;i.nodeType!==8;){if(!s){i=null;break e}if(i=Le(i.nextSibling),i===null){i=null;break e}}s=i.data,i=s==="F!"||s==="F"?i:null}if(i){Ht=Le(i.nextSibling),a=i.data==="F!";break t}}Bn(a)}a=!1}a&&(e=n[0])}}return n=fe(),n.memoizedState=n.baseState=e,a={pending:null,lanes:0,dispatch:null,lastRenderedReducer:s0,lastRenderedState:e},n.queue=a,n=R0.bind(null,mt,a),a.dispatch=n,a=ps(!1),s=ws.bind(null,mt,!1,a.queue),a=fe(),i={state:e,dispatch:null,action:t,pending:null},a.queue=i,n=Tg.bind(null,mt,i,s,n),i.dispatch=n,a.memoizedState=t,[e,n,!1]}function r0(t){var e=Vt();return o0(e,Rt,t)}function o0(t,e,n){if(e=ys(t,e,s0)[0],t=gu(sn)[0],typeof e=="object"&&e!==null&&typeof e.then=="function")try{var a=_l(e)}catch(d){throw d===al?iu:d}else a=e;e=Vt();var i=e.queue,s=i.dispatch;return n!==e.memoizedState&&(mt.flags|=2048,sl(9,{destroy:void 0},Cg.bind(null,i,n),null)),[a,s,t]}function Cg(t,e){t.action=e}function d0(t){var e=Vt(),n=Rt;if(n!==null)return o0(e,n,t);Vt(),e=e.memoizedState,n=Vt();var a=n.queue.dispatch;return n.memoizedState=t,[e,a,!1]}function sl(t,e,n,a){return t={tag:t,create:n,deps:a,inst:e,next:null},e=mt.updateQueue,e===null&&(e=hu(),mt.updateQueue=e),n=e.lastEffect,n===null?e.lastEffect=t.next=t:(a=n.next,n.next=t,t.next=a,e.lastEffect=t),t}function h0(){return Vt().memoizedState}function Au(t,e,n,a){var i=fe();mt.flags|=t,i.memoizedState=sl(1|e,{destroy:void 0},n,a===void 0?null:a)}function vu(t,e,n,a){var i=Vt();a=a===void 0?null:a;var s=i.memoizedState.inst;Rt!==null&&a!==null&&ds(a,Rt.memoizedState.deps)?i.memoizedState=sl(e,s,n,a):(mt.flags|=t,i.memoizedState=sl(1|e,s,n,a))}function m0(t,e){Au(8390656,8,t,e)}function xs(t,e){vu(2048,8,t,e)}function Og(t){mt.flags|=4;var e=mt.updateQueue;if(e===null)e=hu(),mt.updateQueue=e,e.events=[t];else{var n=e.events;n===null?e.events=[t]:n.push(t)}}function g0(t){var e=Vt().memoizedState;return Og({ref:e,nextImpl:t}),function(){if((Ct&2)!==0)throw Error(f(440));return e.impl.apply(void 0,arguments)}}function A0(t,e){return vu(4,2,t,e)}function v0(t,e){return vu(4,4,t,e)}function y0(t,e){if(typeof e=="function"){t=t();var n=e(t);return function(){typeof n=="function"?n():e(null)}}if(e!=null)return t=t(),e.current=t,function(){e.current=null}}function E0(t,e,n){n=n!=null?n.concat([t]):null,vu(4,4,y0.bind(null,e,t),n)}function Ss(){}function p0(t,e){var n=Vt();e=e===void 0?null:e;var a=n.memoizedState;return e!==null&&ds(e,a[1])?a[0]:(n.memoizedState=[t,e],t)}function b0(t,e){var n=Vt();e=e===void 0?null:e;var a=n.memoizedState;if(e!==null&&ds(e,a[1]))return a[0];if(a=t(),Ca){Dn(!0);try{t()}finally{Dn(!1)}}return n.memoizedState=[a,e],a}function Ts(t,e,n){return n===void 0||(cn&1073741824)!==0&&(Et&261930)===0?t.memoizedState=e:(t.memoizedState=n,t=xd(),mt.lanes|=t,Zn|=t,n)}function x0(t,e,n,a){return Se(n,e)?n:il.current!==null?(t=Ts(t,n,a),Se(t,e)||(It=!0),t):(cn&42)===0||(cn&1073741824)!==0&&(Et&261930)===0?(It=!0,t.memoizedState=n):(t=xd(),mt.lanes|=t,Zn|=t,e)}function S0(t,e,n,a,i){var s=_.p;_.p=s!==0&&8>s?s:8;var d=H.T,g={};H.T=g,ws(t,!1,e,n);try{var T=i(),z=H.S;if(z!==null&&z(g,T),T!==null&&typeof T=="object"&&typeof T.then=="function"){var V=bg(T,a);Pl(t,e,V,De(t))}else Pl(t,e,a,De(t))}catch(I){Pl(t,e,{then:function(){},status:"rejected",reason:I},De())}finally{_.p=s,d!==null&&g.types!==null&&(d.types=g.types),H.T=d}}function wg(){}function Cs(t,e,n,a){if(t.tag!==5)throw Error(f(476));var i=T0(t).queue;S0(t,i,e,$,n===null?wg:function(){return C0(t),n(a)})}function T0(t){var e=t.memoizedState;if(e!==null)return e;e={memoizedState:$,baseState:$,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:sn,lastRenderedState:$},next:null};var n={};return e.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:sn,lastRenderedState:n},next:null},t.memoizedState=e,t=t.alternate,t!==null&&(t.memoizedState=e),e}function C0(t){var e=T0(t);e.next===null&&(e=t.alternate.memoizedState),Pl(t,e.next.queue,{},De())}function Os(){return ne(gi)}function O0(){return Vt().memoizedState}function w0(){return Vt().memoizedState}function Rg(t){for(var e=t.return;e!==null;){switch(e.tag){case 24:case 3:var n=De();t=zn(n);var a=Yn(e,t,n);a!==null&&(ve(a,e,n),kl(a,e,n)),e={cache:es()},t.payload=e;return}e=e.return}}function Dg(t,e,n){var a=De();n={lane:a,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},yu(t)?D0(e,n):(n=qc(t,e,n,a),n!==null&&(ve(n,t,a),M0(n,e,a)))}function R0(t,e,n){var a=De();Pl(t,e,n,a)}function Pl(t,e,n,a){var i={lane:a,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(yu(t))D0(e,i);else{var s=t.alternate;if(t.lanes===0&&(s===null||s.lanes===0)&&(s=e.lastRenderedReducer,s!==null))try{var d=e.lastRenderedState,g=s(d,n);if(i.hasEagerState=!0,i.eagerState=g,Se(g,d))return Pi(t,e,i,0),jt===null&&_i(),!1}catch{}finally{}if(n=qc(t,e,i,a),n!==null)return ve(n,t,a),M0(n,e,a),!0}return!1}function ws(t,e,n,a){if(a={lane:2,revertLane:uf(),gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null},yu(t)){if(e)throw Error(f(479))}else e=qc(t,n,a,2),e!==null&&ve(e,t,2)}function yu(t){var e=t.alternate;return t===mt||e!==null&&e===mt}function D0(t,e){ul=ou=!0;var n=t.pending;n===null?e.next=e:(e.next=n.next,n.next=e),t.pending=e}function M0(t,e,n){if((n&4194048)!==0){var a=e.lanes;a&=t.pendingLanes,n|=a,e.lanes=n,Br(t,n)}}var $l={readContext:ne,use:mu,useCallback:Lt,useContext:Lt,useEffect:Lt,useImperativeHandle:Lt,useLayoutEffect:Lt,useInsertionEffect:Lt,useMemo:Lt,useReducer:Lt,useRef:Lt,useState:Lt,useDebugValue:Lt,useDeferredValue:Lt,useTransition:Lt,useSyncExternalStore:Lt,useId:Lt,useHostTransitionStatus:Lt,useFormState:Lt,useActionState:Lt,useOptimistic:Lt,useMemoCache:Lt,useCacheRefresh:Lt};$l.useEffectEvent=Lt;var j0={readContext:ne,use:mu,useCallback:function(t,e){return fe().memoizedState=[t,e===void 0?null:e],t},useContext:ne,useEffect:m0,useImperativeHandle:function(t,e,n){n=n!=null?n.concat([t]):null,Au(4194308,4,y0.bind(null,e,t),n)},useLayoutEffect:function(t,e){return Au(4194308,4,t,e)},useInsertionEffect:function(t,e){Au(4,2,t,e)},useMemo:function(t,e){var n=fe();e=e===void 0?null:e;var a=t();if(Ca){Dn(!0);try{t()}finally{Dn(!1)}}return n.memoizedState=[a,e],a},useReducer:function(t,e,n){var a=fe();if(n!==void 0){var i=n(e);if(Ca){Dn(!0);try{n(e)}finally{Dn(!1)}}}else i=e;return a.memoizedState=a.baseState=i,t={pending:null,lanes:0,dispatch:null,lastRenderedReducer:t,lastRenderedState:i},a.queue=t,t=t.dispatch=Dg.bind(null,mt,t),[a.memoizedState,t]},useRef:function(t){var e=fe();return t={current:t},e.memoizedState=t},useState:function(t){t=ps(t);var e=t.queue,n=R0.bind(null,mt,e);return e.dispatch=n,[t.memoizedState,n]},useDebugValue:Ss,useDeferredValue:function(t,e){var n=fe();return Ts(n,t,e)},useTransition:function(){var t=ps(!1);return t=S0.bind(null,mt,t.queue,!0,!1),fe().memoizedState=t,[!1,t]},useSyncExternalStore:function(t,e,n){var a=mt,i=fe();if(bt){if(n===void 0)throw Error(f(407));n=n()}else{if(n=e(),jt===null)throw Error(f(349));(Et&127)!==0||Po(a,e,n)}i.memoizedState=n;var s={value:n,getSnapshot:e};return i.queue=s,m0(t0.bind(null,a,s,t),[t]),a.flags|=2048,sl(9,{destroy:void 0},$o.bind(null,a,s,n,e),null),n},useId:function(){var t=fe(),e=jt.identifierPrefix;if(bt){var n=Fe,a=Je;n=(a&~(1<<32-xe(a)-1)).toString(32)+n,e="_"+e+"R_"+n,n=du++,0<n&&(e+="H"+n.toString(32)),e+="_"}else n=xg++,e="_"+e+"r_"+n.toString(32)+"_";return t.memoizedState=e},useHostTransitionStatus:Os,useFormState:f0,useActionState:f0,useOptimistic:function(t){var e=fe();e.memoizedState=e.baseState=t;var n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return e.queue=n,e=ws.bind(null,mt,!0,n),n.dispatch=e,[t,e]},useMemoCache:vs,useCacheRefresh:function(){return fe().memoizedState=Rg.bind(null,mt)},useEffectEvent:function(t){var e=fe(),n={impl:t};return e.memoizedState=n,function(){if((Ct&2)!==0)throw Error(f(440));return n.impl.apply(void 0,arguments)}}},Rs={readContext:ne,use:mu,useCallback:p0,useContext:ne,useEffect:xs,useImperativeHandle:E0,useInsertionEffect:A0,useLayoutEffect:v0,useMemo:b0,useReducer:gu,useRef:h0,useState:function(){return gu(sn)},useDebugValue:Ss,useDeferredValue:function(t,e){var n=Vt();return x0(n,Rt.memoizedState,t,e)},useTransition:function(){var t=gu(sn)[0],e=Vt().memoizedState;return[typeof t=="boolean"?t:_l(t),e]},useSyncExternalStore:_o,useId:O0,useHostTransitionStatus:Os,useFormState:r0,useActionState:r0,useOptimistic:function(t,e){var n=Vt();return a0(n,Rt,t,e)},useMemoCache:vs,useCacheRefresh:w0};Rs.useEffectEvent=g0;var H0={readContext:ne,use:mu,useCallback:p0,useContext:ne,useEffect:xs,useImperativeHandle:E0,useInsertionEffect:A0,useLayoutEffect:v0,useMemo:b0,useReducer:Es,useRef:h0,useState:function(){return Es(sn)},useDebugValue:Ss,useDeferredValue:function(t,e){var n=Vt();return Rt===null?Ts(n,t,e):x0(n,Rt.memoizedState,t,e)},useTransition:function(){var t=Es(sn)[0],e=Vt().memoizedState;return[typeof t=="boolean"?t:_l(t),e]},useSyncExternalStore:_o,useId:O0,useHostTransitionStatus:Os,useFormState:d0,useActionState:d0,useOptimistic:function(t,e){var n=Vt();return Rt!==null?a0(n,Rt,t,e):(n.baseState=t,[t,n.queue.dispatch])},useMemoCache:vs,useCacheRefresh:w0};H0.useEffectEvent=g0;function Ds(t,e,n,a){e=t.memoizedState,n=n(a,e),n=n==null?e:S({},e,n),t.memoizedState=n,t.lanes===0&&(t.updateQueue.baseState=n)}var Ms={enqueueSetState:function(t,e,n){t=t._reactInternals;var a=De(),i=zn(a);i.payload=e,n!=null&&(i.callback=n),e=Yn(t,i,a),e!==null&&(ve(e,t,a),kl(e,t,a))},enqueueReplaceState:function(t,e,n){t=t._reactInternals;var a=De(),i=zn(a);i.tag=1,i.payload=e,n!=null&&(i.callback=n),e=Yn(t,i,a),e!==null&&(ve(e,t,a),kl(e,t,a))},enqueueForceUpdate:function(t,e){t=t._reactInternals;var n=De(),a=zn(n);a.tag=2,e!=null&&(a.callback=e),e=Yn(t,a,n),e!==null&&(ve(e,t,n),kl(e,t,n))}};function N0(t,e,n,a,i,s,d){return t=t.stateNode,typeof t.shouldComponentUpdate=="function"?t.shouldComponentUpdate(a,s,d):e.prototype&&e.prototype.isPureReactComponent?!Ll(n,a)||!Ll(i,s):!0}function B0(t,e,n,a){t=e.state,typeof e.componentWillReceiveProps=="function"&&e.componentWillReceiveProps(n,a),typeof e.UNSAFE_componentWillReceiveProps=="function"&&e.UNSAFE_componentWillReceiveProps(n,a),e.state!==t&&Ms.enqueueReplaceState(e,e.state,null)}function Oa(t,e){var n=e;if("ref"in e){n={};for(var a in e)a!=="ref"&&(n[a]=e[a])}if(t=t.defaultProps){n===e&&(n=S({},n));for(var i in t)n[i]===void 0&&(n[i]=t[i])}return n}function U0(t){Wi(t)}function Q0(t){console.error(t)}function z0(t){Wi(t)}function Eu(t,e){try{var n=t.onUncaughtError;n(e.value,{componentStack:e.stack})}catch(a){setTimeout(function(){throw a})}}function Y0(t,e,n){try{var a=t.onCaughtError;a(n.value,{componentStack:n.stack,errorBoundary:e.tag===1?e.stateNode:null})}catch(i){setTimeout(function(){throw i})}}function js(t,e,n){return n=zn(n),n.tag=3,n.payload={element:null},n.callback=function(){Eu(t,e)},n}function L0(t){return t=zn(t),t.tag=3,t}function G0(t,e,n,a){var i=n.type.getDerivedStateFromError;if(typeof i=="function"){var s=a.value;t.payload=function(){return i(s)},t.callback=function(){Y0(e,n,a)}}var d=n.stateNode;d!==null&&typeof d.componentDidCatch=="function"&&(t.callback=function(){Y0(e,n,a),typeof i!="function"&&(qn===null?qn=new Set([this]):qn.add(this));var g=a.stack;this.componentDidCatch(a.value,{componentStack:g!==null?g:""})})}function Mg(t,e,n,a,i){if(n.flags|=32768,a!==null&&typeof a=="object"&&typeof a.then=="function"){if(e=n.alternate,e!==null&&tl(e,n,i,!0),n=Ce.current,n!==null){switch(n.tag){case 31:case 13:return Ye===null?ju():n.alternate===null&&Gt===0&&(Gt=3),n.flags&=-257,n.flags|=65536,n.lanes=i,a===uu?n.flags|=16384:(e=n.updateQueue,e===null?n.updateQueue=new Set([a]):e.add(a),nf(t,a,i)),!1;case 22:return n.flags|=65536,a===uu?n.flags|=16384:(e=n.updateQueue,e===null?(e={transitions:null,markerInstances:null,retryQueue:new Set([a])},n.updateQueue=e):(n=e.retryQueue,n===null?e.retryQueue=new Set([a]):n.add(a)),nf(t,a,i)),!1}throw Error(f(435,n.tag))}return nf(t,a,i),ju(),!1}if(bt)return e=Ce.current,e!==null?((e.flags&65536)===0&&(e.flags|=256),e.flags|=65536,e.lanes=i,a!==Wc&&(t=Error(f(422),{cause:a}),Vl(Be(t,n)))):(a!==Wc&&(e=Error(f(423),{cause:a}),Vl(Be(e,n))),t=t.current.alternate,t.flags|=65536,i&=-i,t.lanes|=i,a=Be(a,n),i=js(t.stateNode,a,i),cs(t,i),Gt!==4&&(Gt=2)),!1;var s=Error(f(520),{cause:a});if(s=Be(s,n),ci===null?ci=[s]:ci.push(s),Gt!==4&&(Gt=2),e===null)return!0;a=Be(a,n),n=e;do{switch(n.tag){case 3:return n.flags|=65536,t=i&-i,n.lanes|=t,t=js(n.stateNode,a,t),cs(n,t),!1;case 1:if(e=n.type,s=n.stateNode,(n.flags&128)===0&&(typeof e.getDerivedStateFromError=="function"||s!==null&&typeof s.componentDidCatch=="function"&&(qn===null||!qn.has(s))))return n.flags|=65536,i&=-i,n.lanes|=i,i=L0(i),G0(i,t,n,a),cs(n,i),!1}n=n.return}while(n!==null);return!1}var Hs=Error(f(461)),It=!1;function ae(t,e,n,a){e.child=t===null?qo(e,null,n,a):Ta(e,t.child,n,a)}function X0(t,e,n,a,i){n=n.render;var s=e.ref;if("ref"in a){var d={};for(var g in a)g!=="ref"&&(d[g]=a[g])}else d=a;return pa(e),a=hs(t,e,n,d,s,i),g=ms(),t!==null&&!It?(gs(t,e,i),fn(t,e,i)):(bt&&g&&Jc(e),e.flags|=1,ae(t,e,a,i),e.child)}function V0(t,e,n,a,i){if(t===null){var s=n.type;return typeof s=="function"&&!Ic(s)&&s.defaultProps===void 0&&n.compare===null?(e.tag=15,e.type=s,Z0(t,e,s,a,i)):(t=tu(n.type,null,a,e,e.mode,i),t.ref=e.ref,t.return=e,e.child=t)}if(s=t.child,!Gs(t,i)){var d=s.memoizedProps;if(n=n.compare,n=n!==null?n:Ll,n(d,a)&&t.ref===e.ref)return fn(t,e,i)}return e.flags|=1,t=nn(s,a),t.ref=e.ref,t.return=e,e.child=t}function Z0(t,e,n,a,i){if(t!==null){var s=t.memoizedProps;if(Ll(s,a)&&t.ref===e.ref)if(It=!1,e.pendingProps=a=s,Gs(t,i))(t.flags&131072)!==0&&(It=!0);else return e.lanes=t.lanes,fn(t,e,i)}return Ns(t,e,n,a,i)}function q0(t,e,n,a){var i=a.children,s=t!==null?t.memoizedState:null;if(t===null&&e.stateNode===null&&(e.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),a.mode==="hidden"){if((e.flags&128)!==0){if(s=s!==null?s.baseLanes|n:n,t!==null){for(a=e.child=t.child,i=0;a!==null;)i=i|a.lanes|a.childLanes,a=a.sibling;a=i&~s}else a=0,e.child=null;return I0(t,e,s,n,a)}if((n&536870912)!==0)e.memoizedState={baseLanes:0,cachePool:null},t!==null&&lu(e,s!==null?s.cachePool:null),s!==null?ko(e,s):fs(),Jo(e);else return a=e.lanes=536870912,I0(t,e,s!==null?s.baseLanes|n:n,n,a)}else s!==null?(lu(e,s.cachePool),ko(e,s),Gn(),e.memoizedState=null):(t!==null&&lu(e,null),fs(),Gn());return ae(t,e,i,n),e.child}function ti(t,e){return t!==null&&t.tag===22||e.stateNode!==null||(e.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),e.sibling}function I0(t,e,n,a,i){var s=as();return s=s===null?null:{parent:Zt._currentValue,pool:s},e.memoizedState={baseLanes:n,cachePool:s},t!==null&&lu(e,null),fs(),Jo(e),t!==null&&tl(t,e,a,!0),e.childLanes=i,null}function pu(t,e){return e=xu({mode:e.mode,children:e.children},t.mode),e.ref=t.ref,t.child=e,e.return=t,e}function K0(t,e,n){return Ta(e,t.child,null,n),t=pu(e,e.pendingProps),t.flags|=2,Oe(e),e.memoizedState=null,t}function jg(t,e,n){var a=e.pendingProps,i=(e.flags&128)!==0;if(e.flags&=-129,t===null){if(bt){if(a.mode==="hidden")return t=pu(e,a),e.lanes=536870912,ti(null,t);if(os(e),(t=Ht)?(t=l1(t,ze),t=t!==null&&t.data==="&"?t:null,t!==null&&(e.memoizedState={dehydrated:t,treeContext:Hn!==null?{id:Je,overflow:Fe}:null,retryLane:536870912,hydrationErrors:null},n=Do(t),n.return=e,e.child=n,ee=e,Ht=null)):t=null,t===null)throw Bn(e);return e.lanes=536870912,null}return pu(e,a)}var s=t.memoizedState;if(s!==null){var d=s.dehydrated;if(os(e),i)if(e.flags&256)e.flags&=-257,e=K0(t,e,n);else if(e.memoizedState!==null)e.child=t.child,e.flags|=128,e=null;else throw Error(f(558));else if(It||tl(t,e,n,!1),i=(n&t.childLanes)!==0,It||i){if(a=jt,a!==null&&(d=Ur(a,n),d!==0&&d!==s.retryLane))throw s.retryLane=d,Aa(t,d),ve(a,t,d),Hs;ju(),e=K0(t,e,n)}else t=s.treeContext,Ht=Le(d.nextSibling),ee=e,bt=!0,Nn=null,ze=!1,t!==null&&Ho(e,t),e=pu(e,a),e.flags|=4096;return e}return t=nn(t.child,{mode:a.mode,children:a.children}),t.ref=e.ref,e.child=t,t.return=e,t}function bu(t,e){var n=e.ref;if(n===null)t!==null&&t.ref!==null&&(e.flags|=4194816);else{if(typeof n!="function"&&typeof n!="object")throw Error(f(284));(t===null||t.ref!==n)&&(e.flags|=4194816)}}function Ns(t,e,n,a,i){return pa(e),n=hs(t,e,n,a,void 0,i),a=ms(),t!==null&&!It?(gs(t,e,i),fn(t,e,i)):(bt&&a&&Jc(e),e.flags|=1,ae(t,e,n,i),e.child)}function k0(t,e,n,a,i,s){return pa(e),e.updateQueue=null,n=Wo(e,a,n,i),Fo(t),a=ms(),t!==null&&!It?(gs(t,e,s),fn(t,e,s)):(bt&&a&&Jc(e),e.flags|=1,ae(t,e,n,s),e.child)}function J0(t,e,n,a,i){if(pa(e),e.stateNode===null){var s=Wa,d=n.contextType;typeof d=="object"&&d!==null&&(s=ne(d)),s=new n(a,s),e.memoizedState=s.state!==null&&s.state!==void 0?s.state:null,s.updater=Ms,e.stateNode=s,s._reactInternals=e,s=e.stateNode,s.props=a,s.state=e.memoizedState,s.refs={},is(e),d=n.contextType,s.context=typeof d=="object"&&d!==null?ne(d):Wa,s.state=e.memoizedState,d=n.getDerivedStateFromProps,typeof d=="function"&&(Ds(e,n,d,a),s.state=e.memoizedState),typeof n.getDerivedStateFromProps=="function"||typeof s.getSnapshotBeforeUpdate=="function"||typeof s.UNSAFE_componentWillMount!="function"&&typeof s.componentWillMount!="function"||(d=s.state,typeof s.componentWillMount=="function"&&s.componentWillMount(),typeof s.UNSAFE_componentWillMount=="function"&&s.UNSAFE_componentWillMount(),d!==s.state&&Ms.enqueueReplaceState(s,s.state,null),Fl(e,a,s,i),Jl(),s.state=e.memoizedState),typeof s.componentDidMount=="function"&&(e.flags|=4194308),a=!0}else if(t===null){s=e.stateNode;var g=e.memoizedProps,T=Oa(n,g);s.props=T;var z=s.context,V=n.contextType;d=Wa,typeof V=="object"&&V!==null&&(d=ne(V));var I=n.getDerivedStateFromProps;V=typeof I=="function"||typeof s.getSnapshotBeforeUpdate=="function",g=e.pendingProps!==g,V||typeof s.UNSAFE_componentWillReceiveProps!="function"&&typeof s.componentWillReceiveProps!="function"||(g||z!==d)&&B0(e,s,a,d),Qn=!1;var Y=e.memoizedState;s.state=Y,Fl(e,a,s,i),Jl(),z=e.memoizedState,g||Y!==z||Qn?(typeof I=="function"&&(Ds(e,n,I,a),z=e.memoizedState),(T=Qn||N0(e,n,T,a,Y,z,d))?(V||typeof s.UNSAFE_componentWillMount!="function"&&typeof s.componentWillMount!="function"||(typeof s.componentWillMount=="function"&&s.componentWillMount(),typeof s.UNSAFE_componentWillMount=="function"&&s.UNSAFE_componentWillMount()),typeof s.componentDidMount=="function"&&(e.flags|=4194308)):(typeof s.componentDidMount=="function"&&(e.flags|=4194308),e.memoizedProps=a,e.memoizedState=z),s.props=a,s.state=z,s.context=d,a=T):(typeof s.componentDidMount=="function"&&(e.flags|=4194308),a=!1)}else{s=e.stateNode,us(t,e),d=e.memoizedProps,V=Oa(n,d),s.props=V,I=e.pendingProps,Y=s.context,z=n.contextType,T=Wa,typeof z=="object"&&z!==null&&(T=ne(z)),g=n.getDerivedStateFromProps,(z=typeof g=="function"||typeof s.getSnapshotBeforeUpdate=="function")||typeof s.UNSAFE_componentWillReceiveProps!="function"&&typeof s.componentWillReceiveProps!="function"||(d!==I||Y!==T)&&B0(e,s,a,T),Qn=!1,Y=e.memoizedState,s.state=Y,Fl(e,a,s,i),Jl();var G=e.memoizedState;d!==I||Y!==G||Qn||t!==null&&t.dependencies!==null&&nu(t.dependencies)?(typeof g=="function"&&(Ds(e,n,g,a),G=e.memoizedState),(V=Qn||N0(e,n,V,a,Y,G,T)||t!==null&&t.dependencies!==null&&nu(t.dependencies))?(z||typeof s.UNSAFE_componentWillUpdate!="function"&&typeof s.componentWillUpdate!="function"||(typeof s.componentWillUpdate=="function"&&s.componentWillUpdate(a,G,T),typeof s.UNSAFE_componentWillUpdate=="function"&&s.UNSAFE_componentWillUpdate(a,G,T)),typeof s.componentDidUpdate=="function"&&(e.flags|=4),typeof s.getSnapshotBeforeUpdate=="function"&&(e.flags|=1024)):(typeof s.componentDidUpdate!="function"||d===t.memoizedProps&&Y===t.memoizedState||(e.flags|=4),typeof s.getSnapshotBeforeUpdate!="function"||d===t.memoizedProps&&Y===t.memoizedState||(e.flags|=1024),e.memoizedProps=a,e.memoizedState=G),s.props=a,s.state=G,s.context=T,a=V):(typeof s.componentDidUpdate!="function"||d===t.memoizedProps&&Y===t.memoizedState||(e.flags|=4),typeof s.getSnapshotBeforeUpdate!="function"||d===t.memoizedProps&&Y===t.memoizedState||(e.flags|=1024),a=!1)}return s=a,bu(t,e),a=(e.flags&128)!==0,s||a?(s=e.stateNode,n=a&&typeof n.getDerivedStateFromError!="function"?null:s.render(),e.flags|=1,t!==null&&a?(e.child=Ta(e,t.child,null,i),e.child=Ta(e,null,n,i)):ae(t,e,n,i),e.memoizedState=s.state,t=e.child):t=fn(t,e,i),t}function F0(t,e,n,a){return ya(),e.flags|=256,ae(t,e,n,a),e.child}var Bs={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function Us(t){return{baseLanes:t,cachePool:Yo()}}function Qs(t,e,n){return t=t!==null?t.childLanes&~n:0,e&&(t|=Re),t}function W0(t,e,n){var a=e.pendingProps,i=!1,s=(e.flags&128)!==0,d;if((d=s)||(d=t!==null&&t.memoizedState===null?!1:(Xt.current&2)!==0),d&&(i=!0,e.flags&=-129),d=(e.flags&32)!==0,e.flags&=-33,t===null){if(bt){if(i?Ln(e):Gn(),(t=Ht)?(t=l1(t,ze),t=t!==null&&t.data!=="&"?t:null,t!==null&&(e.memoizedState={dehydrated:t,treeContext:Hn!==null?{id:Je,overflow:Fe}:null,retryLane:536870912,hydrationErrors:null},n=Do(t),n.return=e,e.child=n,ee=e,Ht=null)):t=null,t===null)throw Bn(e);return Ef(t)?e.lanes=32:e.lanes=536870912,null}var g=a.children;return a=a.fallback,i?(Gn(),i=e.mode,g=xu({mode:"hidden",children:g},i),a=va(a,i,n,null),g.return=e,a.return=e,g.sibling=a,e.child=g,a=e.child,a.memoizedState=Us(n),a.childLanes=Qs(t,d,n),e.memoizedState=Bs,ti(null,a)):(Ln(e),zs(e,g))}var T=t.memoizedState;if(T!==null&&(g=T.dehydrated,g!==null)){if(s)e.flags&256?(Ln(e),e.flags&=-257,e=Ys(t,e,n)):e.memoizedState!==null?(Gn(),e.child=t.child,e.flags|=128,e=null):(Gn(),g=a.fallback,i=e.mode,a=xu({mode:"visible",children:a.children},i),g=va(g,i,n,null),g.flags|=2,a.return=e,g.return=e,a.sibling=g,e.child=a,Ta(e,t.child,null,n),a=e.child,a.memoizedState=Us(n),a.childLanes=Qs(t,d,n),e.memoizedState=Bs,e=ti(null,a));else if(Ln(e),Ef(g)){if(d=g.nextSibling&&g.nextSibling.dataset,d)var z=d.dgst;d=z,a=Error(f(419)),a.stack="",a.digest=d,Vl({value:a,source:null,stack:null}),e=Ys(t,e,n)}else if(It||tl(t,e,n,!1),d=(n&t.childLanes)!==0,It||d){if(d=jt,d!==null&&(a=Ur(d,n),a!==0&&a!==T.retryLane))throw T.retryLane=a,Aa(t,a),ve(d,t,a),Hs;yf(g)||ju(),e=Ys(t,e,n)}else yf(g)?(e.flags|=192,e.child=t.child,e=null):(t=T.treeContext,Ht=Le(g.nextSibling),ee=e,bt=!0,Nn=null,ze=!1,t!==null&&Ho(e,t),e=zs(e,a.children),e.flags|=4096);return e}return i?(Gn(),g=a.fallback,i=e.mode,T=t.child,z=T.sibling,a=nn(T,{mode:"hidden",children:a.children}),a.subtreeFlags=T.subtreeFlags&65011712,z!==null?g=nn(z,g):(g=va(g,i,n,null),g.flags|=2),g.return=e,a.return=e,a.sibling=g,e.child=a,ti(null,a),a=e.child,g=t.child.memoizedState,g===null?g=Us(n):(i=g.cachePool,i!==null?(T=Zt._currentValue,i=i.parent!==T?{parent:T,pool:T}:i):i=Yo(),g={baseLanes:g.baseLanes|n,cachePool:i}),a.memoizedState=g,a.childLanes=Qs(t,d,n),e.memoizedState=Bs,ti(t.child,a)):(Ln(e),n=t.child,t=n.sibling,n=nn(n,{mode:"visible",children:a.children}),n.return=e,n.sibling=null,t!==null&&(d=e.deletions,d===null?(e.deletions=[t],e.flags|=16):d.push(t)),e.child=n,e.memoizedState=null,n)}function zs(t,e){return e=xu({mode:"visible",children:e},t.mode),e.return=t,t.child=e}function xu(t,e){return t=Te(22,t,null,e),t.lanes=0,t}function Ys(t,e,n){return Ta(e,t.child,null,n),t=zs(e,e.pendingProps.children),t.flags|=2,e.memoizedState=null,t}function _0(t,e,n){t.lanes|=e;var a=t.alternate;a!==null&&(a.lanes|=e),$c(t.return,e,n)}function Ls(t,e,n,a,i,s){var d=t.memoizedState;d===null?t.memoizedState={isBackwards:e,rendering:null,renderingStartTime:0,last:a,tail:n,tailMode:i,treeForkCount:s}:(d.isBackwards=e,d.rendering=null,d.renderingStartTime=0,d.last=a,d.tail=n,d.tailMode=i,d.treeForkCount=s)}function P0(t,e,n){var a=e.pendingProps,i=a.revealOrder,s=a.tail;a=a.children;var d=Xt.current,g=(d&2)!==0;if(g?(d=d&1|2,e.flags|=128):d&=1,W(Xt,d),ae(t,e,a,n),a=bt?Xl:0,!g&&t!==null&&(t.flags&128)!==0)t:for(t=e.child;t!==null;){if(t.tag===13)t.memoizedState!==null&&_0(t,n,e);else if(t.tag===19)_0(t,n,e);else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break t;for(;t.sibling===null;){if(t.return===null||t.return===e)break t;t=t.return}t.sibling.return=t.return,t=t.sibling}switch(i){case"forwards":for(n=e.child,i=null;n!==null;)t=n.alternate,t!==null&&ru(t)===null&&(i=n),n=n.sibling;n=i,n===null?(i=e.child,e.child=null):(i=n.sibling,n.sibling=null),Ls(e,!1,i,n,s,a);break;case"backwards":case"unstable_legacy-backwards":for(n=null,i=e.child,e.child=null;i!==null;){if(t=i.alternate,t!==null&&ru(t)===null){e.child=i;break}t=i.sibling,i.sibling=n,n=i,i=t}Ls(e,!0,n,null,s,a);break;case"together":Ls(e,!1,null,null,void 0,a);break;default:e.memoizedState=null}return e.child}function fn(t,e,n){if(t!==null&&(e.dependencies=t.dependencies),Zn|=e.lanes,(n&e.childLanes)===0)if(t!==null){if(tl(t,e,n,!1),(n&e.childLanes)===0)return null}else return null;if(t!==null&&e.child!==t.child)throw Error(f(153));if(e.child!==null){for(t=e.child,n=nn(t,t.pendingProps),e.child=n,n.return=e;t.sibling!==null;)t=t.sibling,n=n.sibling=nn(t,t.pendingProps),n.return=e;n.sibling=null}return e.child}function Gs(t,e){return(t.lanes&e)!==0?!0:(t=t.dependencies,!!(t!==null&&nu(t)))}function Hg(t,e,n){switch(e.tag){case 3:Ft(e,e.stateNode.containerInfo),Un(e,Zt,t.memoizedState.cache),ya();break;case 27:case 5:On(e);break;case 4:Ft(e,e.stateNode.containerInfo);break;case 10:Un(e,e.type,e.memoizedProps.value);break;case 31:if(e.memoizedState!==null)return e.flags|=128,os(e),null;break;case 13:var a=e.memoizedState;if(a!==null)return a.dehydrated!==null?(Ln(e),e.flags|=128,null):(n&e.child.childLanes)!==0?W0(t,e,n):(Ln(e),t=fn(t,e,n),t!==null?t.sibling:null);Ln(e);break;case 19:var i=(t.flags&128)!==0;if(a=(n&e.childLanes)!==0,a||(tl(t,e,n,!1),a=(n&e.childLanes)!==0),i){if(a)return P0(t,e,n);e.flags|=128}if(i=e.memoizedState,i!==null&&(i.rendering=null,i.tail=null,i.lastEffect=null),W(Xt,Xt.current),a)break;return null;case 22:return e.lanes=0,q0(t,e,n,e.pendingProps);case 24:Un(e,Zt,t.memoizedState.cache)}return fn(t,e,n)}function $0(t,e,n){if(t!==null)if(t.memoizedProps!==e.pendingProps)It=!0;else{if(!Gs(t,n)&&(e.flags&128)===0)return It=!1,Hg(t,e,n);It=(t.flags&131072)!==0}else It=!1,bt&&(e.flags&1048576)!==0&&jo(e,Xl,e.index);switch(e.lanes=0,e.tag){case 16:t:{var a=e.pendingProps;if(t=xa(e.elementType),e.type=t,typeof t=="function")Ic(t)?(a=Oa(t,a),e.tag=1,e=J0(null,e,t,a,n)):(e.tag=0,e=Ns(null,e,t,a,n));else{if(t!=null){var i=t.$$typeof;if(i===Z){e.tag=11,e=X0(null,e,t,a,n);break t}else if(i===D){e.tag=14,e=V0(null,e,t,a,n);break t}}throw e=st(t)||t,Error(f(306,e,""))}}return e;case 0:return Ns(t,e,e.type,e.pendingProps,n);case 1:return a=e.type,i=Oa(a,e.pendingProps),J0(t,e,a,i,n);case 3:t:{if(Ft(e,e.stateNode.containerInfo),t===null)throw Error(f(387));a=e.pendingProps;var s=e.memoizedState;i=s.element,us(t,e),Fl(e,a,null,n);var d=e.memoizedState;if(a=d.cache,Un(e,Zt,a),a!==s.cache&&ts(e,[Zt],n,!0),Jl(),a=d.element,s.isDehydrated)if(s={element:a,isDehydrated:!1,cache:d.cache},e.updateQueue.baseState=s,e.memoizedState=s,e.flags&256){e=F0(t,e,a,n);break t}else if(a!==i){i=Be(Error(f(424)),e),Vl(i),e=F0(t,e,a,n);break t}else{switch(t=e.stateNode.containerInfo,t.nodeType){case 9:t=t.body;break;default:t=t.nodeName==="HTML"?t.ownerDocument.body:t}for(Ht=Le(t.firstChild),ee=e,bt=!0,Nn=null,ze=!0,n=qo(e,null,a,n),e.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling}else{if(ya(),a===i){e=fn(t,e,n);break t}ae(t,e,a,n)}e=e.child}return e;case 26:return bu(t,e),t===null?(n=r1(e.type,null,e.pendingProps,null))?e.memoizedState=n:bt||(n=e.type,t=e.pendingProps,a=Yu(ot.current).createElement(n),a[te]=e,a[oe]=t,le(a,n,t),Wt(a),e.stateNode=a):e.memoizedState=r1(e.type,t.memoizedProps,e.pendingProps,t.memoizedState),null;case 27:return On(e),t===null&&bt&&(a=e.stateNode=c1(e.type,e.pendingProps,ot.current),ee=e,ze=!0,i=Ht,Jn(e.type)?(pf=i,Ht=Le(a.firstChild)):Ht=i),ae(t,e,e.pendingProps.children,n),bu(t,e),t===null&&(e.flags|=4194304),e.child;case 5:return t===null&&bt&&((i=a=Ht)&&(a=sA(a,e.type,e.pendingProps,ze),a!==null?(e.stateNode=a,ee=e,Ht=Le(a.firstChild),ze=!1,i=!0):i=!1),i||Bn(e)),On(e),i=e.type,s=e.pendingProps,d=t!==null?t.memoizedProps:null,a=s.children,gf(i,s)?a=null:d!==null&&gf(i,d)&&(e.flags|=32),e.memoizedState!==null&&(i=hs(t,e,Sg,null,null,n),gi._currentValue=i),bu(t,e),ae(t,e,a,n),e.child;case 6:return t===null&&bt&&((t=n=Ht)&&(n=fA(n,e.pendingProps,ze),n!==null?(e.stateNode=n,ee=e,Ht=null,t=!0):t=!1),t||Bn(e)),null;case 13:return W0(t,e,n);case 4:return Ft(e,e.stateNode.containerInfo),a=e.pendingProps,t===null?e.child=Ta(e,null,a,n):ae(t,e,a,n),e.child;case 11:return X0(t,e,e.type,e.pendingProps,n);case 7:return ae(t,e,e.pendingProps,n),e.child;case 8:return ae(t,e,e.pendingProps.children,n),e.child;case 12:return ae(t,e,e.pendingProps.children,n),e.child;case 10:return a=e.pendingProps,Un(e,e.type,a.value),ae(t,e,a.children,n),e.child;case 9:return i=e.type._context,a=e.pendingProps.children,pa(e),i=ne(i),a=a(i),e.flags|=1,ae(t,e,a,n),e.child;case 14:return V0(t,e,e.type,e.pendingProps,n);case 15:return Z0(t,e,e.type,e.pendingProps,n);case 19:return P0(t,e,n);case 31:return jg(t,e,n);case 22:return q0(t,e,n,e.pendingProps);case 24:return pa(e),a=ne(Zt),t===null?(i=as(),i===null&&(i=jt,s=es(),i.pooledCache=s,s.refCount++,s!==null&&(i.pooledCacheLanes|=n),i=s),e.memoizedState={parent:a,cache:i},is(e),Un(e,Zt,i)):((t.lanes&n)!==0&&(us(t,e),Fl(e,null,null,n),Jl()),i=t.memoizedState,s=e.memoizedState,i.parent!==a?(i={parent:a,cache:a},e.memoizedState=i,e.lanes===0&&(e.memoizedState=e.updateQueue.baseState=i),Un(e,Zt,a)):(a=s.cache,Un(e,Zt,a),a!==i.cache&&ts(e,[Zt],n,!0))),ae(t,e,e.pendingProps.children,n),e.child;case 29:throw e.pendingProps}throw Error(f(156,e.tag))}function rn(t){t.flags|=4}function Xs(t,e,n,a,i){if((e=(t.mode&32)!==0)&&(e=!1),e){if(t.flags|=16777216,(i&335544128)===i)if(t.stateNode.complete)t.flags|=8192;else if(Od())t.flags|=8192;else throw Sa=uu,ls}else t.flags&=-16777217}function td(t,e){if(e.type!=="stylesheet"||(e.state.loading&4)!==0)t.flags&=-16777217;else if(t.flags|=16777216,!g1(e))if(Od())t.flags|=8192;else throw Sa=uu,ls}function Su(t,e){e!==null&&(t.flags|=4),t.flags&16384&&(e=t.tag!==22?Hr():536870912,t.lanes|=e,dl|=e)}function ei(t,e){if(!bt)switch(t.tailMode){case"hidden":e=t.tail;for(var n=null;e!==null;)e.alternate!==null&&(n=e),e=e.sibling;n===null?t.tail=null:n.sibling=null;break;case"collapsed":n=t.tail;for(var a=null;n!==null;)n.alternate!==null&&(a=n),n=n.sibling;a===null?e||t.tail===null?t.tail=null:t.tail.sibling=null:a.sibling=null}}function Nt(t){var e=t.alternate!==null&&t.alternate.child===t.child,n=0,a=0;if(e)for(var i=t.child;i!==null;)n|=i.lanes|i.childLanes,a|=i.subtreeFlags&65011712,a|=i.flags&65011712,i.return=t,i=i.sibling;else for(i=t.child;i!==null;)n|=i.lanes|i.childLanes,a|=i.subtreeFlags,a|=i.flags,i.return=t,i=i.sibling;return t.subtreeFlags|=a,t.childLanes=n,e}function Ng(t,e,n){var a=e.pendingProps;switch(Fc(e),e.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Nt(e),null;case 1:return Nt(e),null;case 3:return n=e.stateNode,a=null,t!==null&&(a=t.memoizedState.cache),e.memoizedState.cache!==a&&(e.flags|=2048),un(Zt),Qt(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(t===null||t.child===null)&&($a(e)?rn(e):t===null||t.memoizedState.isDehydrated&&(e.flags&256)===0||(e.flags|=1024,_c())),Nt(e),null;case 26:var i=e.type,s=e.memoizedState;return t===null?(rn(e),s!==null?(Nt(e),td(e,s)):(Nt(e),Xs(e,i,null,a,n))):s?s!==t.memoizedState?(rn(e),Nt(e),td(e,s)):(Nt(e),e.flags&=-16777217):(t=t.memoizedProps,t!==a&&rn(e),Nt(e),Xs(e,i,t,a,n)),null;case 27:if(ra(e),n=ot.current,i=e.type,t!==null&&e.stateNode!=null)t.memoizedProps!==a&&rn(e);else{if(!a){if(e.stateNode===null)throw Error(f(166));return Nt(e),null}t=et.current,$a(e)?No(e):(t=c1(i,a,n),e.stateNode=t,rn(e))}return Nt(e),null;case 5:if(ra(e),i=e.type,t!==null&&e.stateNode!=null)t.memoizedProps!==a&&rn(e);else{if(!a){if(e.stateNode===null)throw Error(f(166));return Nt(e),null}if(s=et.current,$a(e))No(e);else{var d=Yu(ot.current);switch(s){case 1:s=d.createElementNS("http://www.w3.org/2000/svg",i);break;case 2:s=d.createElementNS("http://www.w3.org/1998/Math/MathML",i);break;default:switch(i){case"svg":s=d.createElementNS("http://www.w3.org/2000/svg",i);break;case"math":s=d.createElementNS("http://www.w3.org/1998/Math/MathML",i);break;case"script":s=d.createElement("div"),s.innerHTML="<script><\/script>",s=s.removeChild(s.firstChild);break;case"select":s=typeof a.is=="string"?d.createElement("select",{is:a.is}):d.createElement("select"),a.multiple?s.multiple=!0:a.size&&(s.size=a.size);break;default:s=typeof a.is=="string"?d.createElement(i,{is:a.is}):d.createElement(i)}}s[te]=e,s[oe]=a;t:for(d=e.child;d!==null;){if(d.tag===5||d.tag===6)s.appendChild(d.stateNode);else if(d.tag!==4&&d.tag!==27&&d.child!==null){d.child.return=d,d=d.child;continue}if(d===e)break t;for(;d.sibling===null;){if(d.return===null||d.return===e)break t;d=d.return}d.sibling.return=d.return,d=d.sibling}e.stateNode=s;t:switch(le(s,i,a),i){case"button":case"input":case"select":case"textarea":a=!!a.autoFocus;break t;case"img":a=!0;break t;default:a=!1}a&&rn(e)}}return Nt(e),Xs(e,e.type,t===null?null:t.memoizedProps,e.pendingProps,n),null;case 6:if(t&&e.stateNode!=null)t.memoizedProps!==a&&rn(e);else{if(typeof a!="string"&&e.stateNode===null)throw Error(f(166));if(t=ot.current,$a(e)){if(t=e.stateNode,n=e.memoizedProps,a=null,i=ee,i!==null)switch(i.tag){case 27:case 5:a=i.memoizedProps}t[te]=e,t=!!(t.nodeValue===n||a!==null&&a.suppressHydrationWarning===!0||Wd(t.nodeValue,n)),t||Bn(e,!0)}else t=Yu(t).createTextNode(a),t[te]=e,e.stateNode=t}return Nt(e),null;case 31:if(n=e.memoizedState,t===null||t.memoizedState!==null){if(a=$a(e),n!==null){if(t===null){if(!a)throw Error(f(318));if(t=e.memoizedState,t=t!==null?t.dehydrated:null,!t)throw Error(f(557));t[te]=e}else ya(),(e.flags&128)===0&&(e.memoizedState=null),e.flags|=4;Nt(e),t=!1}else n=_c(),t!==null&&t.memoizedState!==null&&(t.memoizedState.hydrationErrors=n),t=!0;if(!t)return e.flags&256?(Oe(e),e):(Oe(e),null);if((e.flags&128)!==0)throw Error(f(558))}return Nt(e),null;case 13:if(a=e.memoizedState,t===null||t.memoizedState!==null&&t.memoizedState.dehydrated!==null){if(i=$a(e),a!==null&&a.dehydrated!==null){if(t===null){if(!i)throw Error(f(318));if(i=e.memoizedState,i=i!==null?i.dehydrated:null,!i)throw Error(f(317));i[te]=e}else ya(),(e.flags&128)===0&&(e.memoizedState=null),e.flags|=4;Nt(e),i=!1}else i=_c(),t!==null&&t.memoizedState!==null&&(t.memoizedState.hydrationErrors=i),i=!0;if(!i)return e.flags&256?(Oe(e),e):(Oe(e),null)}return Oe(e),(e.flags&128)!==0?(e.lanes=n,e):(n=a!==null,t=t!==null&&t.memoizedState!==null,n&&(a=e.child,i=null,a.alternate!==null&&a.alternate.memoizedState!==null&&a.alternate.memoizedState.cachePool!==null&&(i=a.alternate.memoizedState.cachePool.pool),s=null,a.memoizedState!==null&&a.memoizedState.cachePool!==null&&(s=a.memoizedState.cachePool.pool),s!==i&&(a.flags|=2048)),n!==t&&n&&(e.child.flags|=8192),Su(e,e.updateQueue),Nt(e),null);case 4:return Qt(),t===null&&rf(e.stateNode.containerInfo),Nt(e),null;case 10:return un(e.type),Nt(e),null;case 19:if(L(Xt),a=e.memoizedState,a===null)return Nt(e),null;if(i=(e.flags&128)!==0,s=a.rendering,s===null)if(i)ei(a,!1);else{if(Gt!==0||t!==null&&(t.flags&128)!==0)for(t=e.child;t!==null;){if(s=ru(t),s!==null){for(e.flags|=128,ei(a,!1),t=s.updateQueue,e.updateQueue=t,Su(e,t),e.subtreeFlags=0,t=n,n=e.child;n!==null;)Ro(n,t),n=n.sibling;return W(Xt,Xt.current&1|2),bt&&an(e,a.treeForkCount),e.child}t=t.sibling}a.tail!==null&&pe()>Ru&&(e.flags|=128,i=!0,ei(a,!1),e.lanes=4194304)}else{if(!i)if(t=ru(s),t!==null){if(e.flags|=128,i=!0,t=t.updateQueue,e.updateQueue=t,Su(e,t),ei(a,!0),a.tail===null&&a.tailMode==="hidden"&&!s.alternate&&!bt)return Nt(e),null}else 2*pe()-a.renderingStartTime>Ru&&n!==536870912&&(e.flags|=128,i=!0,ei(a,!1),e.lanes=4194304);a.isBackwards?(s.sibling=e.child,e.child=s):(t=a.last,t!==null?t.sibling=s:e.child=s,a.last=s)}return a.tail!==null?(t=a.tail,a.rendering=t,a.tail=t.sibling,a.renderingStartTime=pe(),t.sibling=null,n=Xt.current,W(Xt,i?n&1|2:n&1),bt&&an(e,a.treeForkCount),t):(Nt(e),null);case 22:case 23:return Oe(e),rs(),a=e.memoizedState!==null,t!==null?t.memoizedState!==null!==a&&(e.flags|=8192):a&&(e.flags|=8192),a?(n&536870912)!==0&&(e.flags&128)===0&&(Nt(e),e.subtreeFlags&6&&(e.flags|=8192)):Nt(e),n=e.updateQueue,n!==null&&Su(e,n.retryQueue),n=null,t!==null&&t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(n=t.memoizedState.cachePool.pool),a=null,e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(a=e.memoizedState.cachePool.pool),a!==n&&(e.flags|=2048),t!==null&&L(ba),null;case 24:return n=null,t!==null&&(n=t.memoizedState.cache),e.memoizedState.cache!==n&&(e.flags|=2048),un(Zt),Nt(e),null;case 25:return null;case 30:return null}throw Error(f(156,e.tag))}function Bg(t,e){switch(Fc(e),e.tag){case 1:return t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 3:return un(Zt),Qt(),t=e.flags,(t&65536)!==0&&(t&128)===0?(e.flags=t&-65537|128,e):null;case 26:case 27:case 5:return ra(e),null;case 31:if(e.memoizedState!==null){if(Oe(e),e.alternate===null)throw Error(f(340));ya()}return t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 13:if(Oe(e),t=e.memoizedState,t!==null&&t.dehydrated!==null){if(e.alternate===null)throw Error(f(340));ya()}return t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 19:return L(Xt),null;case 4:return Qt(),null;case 10:return un(e.type),null;case 22:case 23:return Oe(e),rs(),t!==null&&L(ba),t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 24:return un(Zt),null;case 25:return null;default:return null}}function ed(t,e){switch(Fc(e),e.tag){case 3:un(Zt),Qt();break;case 26:case 27:case 5:ra(e);break;case 4:Qt();break;case 31:e.memoizedState!==null&&Oe(e);break;case 13:Oe(e);break;case 19:L(Xt);break;case 10:un(e.type);break;case 22:case 23:Oe(e),rs(),t!==null&&L(ba);break;case 24:un(Zt)}}function ni(t,e){try{var n=e.updateQueue,a=n!==null?n.lastEffect:null;if(a!==null){var i=a.next;n=i;do{if((n.tag&t)===t){a=void 0;var s=n.create,d=n.inst;a=s(),d.destroy=a}n=n.next}while(n!==i)}}catch(g){wt(e,e.return,g)}}function Xn(t,e,n){try{var a=e.updateQueue,i=a!==null?a.lastEffect:null;if(i!==null){var s=i.next;a=s;do{if((a.tag&t)===t){var d=a.inst,g=d.destroy;if(g!==void 0){d.destroy=void 0,i=e;var T=n,z=g;try{z()}catch(V){wt(i,T,V)}}}a=a.next}while(a!==s)}}catch(V){wt(e,e.return,V)}}function nd(t){var e=t.updateQueue;if(e!==null){var n=t.stateNode;try{Ko(e,n)}catch(a){wt(t,t.return,a)}}}function ad(t,e,n){n.props=Oa(t.type,t.memoizedProps),n.state=t.memoizedState;try{n.componentWillUnmount()}catch(a){wt(t,e,a)}}function ai(t,e){try{var n=t.ref;if(n!==null){switch(t.tag){case 26:case 27:case 5:var a=t.stateNode;break;case 30:a=t.stateNode;break;default:a=t.stateNode}typeof n=="function"?t.refCleanup=n(a):n.current=a}}catch(i){wt(t,e,i)}}function We(t,e){var n=t.ref,a=t.refCleanup;if(n!==null)if(typeof a=="function")try{a()}catch(i){wt(t,e,i)}finally{t.refCleanup=null,t=t.alternate,t!=null&&(t.refCleanup=null)}else if(typeof n=="function")try{n(null)}catch(i){wt(t,e,i)}else n.current=null}function ld(t){var e=t.type,n=t.memoizedProps,a=t.stateNode;try{t:switch(e){case"button":case"input":case"select":case"textarea":n.autoFocus&&a.focus();break t;case"img":n.src?a.src=n.src:n.srcSet&&(a.srcset=n.srcSet)}}catch(i){wt(t,t.return,i)}}function Vs(t,e,n){try{var a=t.stateNode;nA(a,t.type,n,e),a[oe]=e}catch(i){wt(t,t.return,i)}}function id(t){return t.tag===5||t.tag===3||t.tag===26||t.tag===27&&Jn(t.type)||t.tag===4}function Zs(t){t:for(;;){for(;t.sibling===null;){if(t.return===null||id(t.return))return null;t=t.return}for(t.sibling.return=t.return,t=t.sibling;t.tag!==5&&t.tag!==6&&t.tag!==18;){if(t.tag===27&&Jn(t.type)||t.flags&2||t.child===null||t.tag===4)continue t;t.child.return=t,t=t.child}if(!(t.flags&2))return t.stateNode}}function qs(t,e,n){var a=t.tag;if(a===5||a===6)t=t.stateNode,e?(n.nodeType===9?n.body:n.nodeName==="HTML"?n.ownerDocument.body:n).insertBefore(t,e):(e=n.nodeType===9?n.body:n.nodeName==="HTML"?n.ownerDocument.body:n,e.appendChild(t),n=n._reactRootContainer,n!=null||e.onclick!==null||(e.onclick=tn));else if(a!==4&&(a===27&&Jn(t.type)&&(n=t.stateNode,e=null),t=t.child,t!==null))for(qs(t,e,n),t=t.sibling;t!==null;)qs(t,e,n),t=t.sibling}function Tu(t,e,n){var a=t.tag;if(a===5||a===6)t=t.stateNode,e?n.insertBefore(t,e):n.appendChild(t);else if(a!==4&&(a===27&&Jn(t.type)&&(n=t.stateNode),t=t.child,t!==null))for(Tu(t,e,n),t=t.sibling;t!==null;)Tu(t,e,n),t=t.sibling}function ud(t){var e=t.stateNode,n=t.memoizedProps;try{for(var a=t.type,i=e.attributes;i.length;)e.removeAttributeNode(i[0]);le(e,a,n),e[te]=t,e[oe]=n}catch(s){wt(t,t.return,s)}}var on=!1,Kt=!1,Is=!1,cd=typeof WeakSet=="function"?WeakSet:Set,_t=null;function Ug(t,e){if(t=t.containerInfo,hf=Iu,t=Eo(t),Yc(t)){if("selectionStart"in t)var n={start:t.selectionStart,end:t.selectionEnd};else t:{n=(n=t.ownerDocument)&&n.defaultView||window;var a=n.getSelection&&n.getSelection();if(a&&a.rangeCount!==0){n=a.anchorNode;var i=a.anchorOffset,s=a.focusNode;a=a.focusOffset;try{n.nodeType,s.nodeType}catch{n=null;break t}var d=0,g=-1,T=-1,z=0,V=0,I=t,Y=null;e:for(;;){for(var G;I!==n||i!==0&&I.nodeType!==3||(g=d+i),I!==s||a!==0&&I.nodeType!==3||(T=d+a),I.nodeType===3&&(d+=I.nodeValue.length),(G=I.firstChild)!==null;)Y=I,I=G;for(;;){if(I===t)break e;if(Y===n&&++z===i&&(g=d),Y===s&&++V===a&&(T=d),(G=I.nextSibling)!==null)break;I=Y,Y=I.parentNode}I=G}n=g===-1||T===-1?null:{start:g,end:T}}else n=null}n=n||{start:0,end:0}}else n=null;for(mf={focusedElem:t,selectionRange:n},Iu=!1,_t=e;_t!==null;)if(e=_t,t=e.child,(e.subtreeFlags&1028)!==0&&t!==null)t.return=e,_t=t;else for(;_t!==null;){switch(e=_t,s=e.alternate,t=e.flags,e.tag){case 0:if((t&4)!==0&&(t=e.updateQueue,t=t!==null?t.events:null,t!==null))for(n=0;n<t.length;n++)i=t[n],i.ref.impl=i.nextImpl;break;case 11:case 15:break;case 1:if((t&1024)!==0&&s!==null){t=void 0,n=e,i=s.memoizedProps,s=s.memoizedState,a=n.stateNode;try{var at=Oa(n.type,i);t=a.getSnapshotBeforeUpdate(at,s),a.__reactInternalSnapshotBeforeUpdate=t}catch(ft){wt(n,n.return,ft)}}break;case 3:if((t&1024)!==0){if(t=e.stateNode.containerInfo,n=t.nodeType,n===9)vf(t);else if(n===1)switch(t.nodeName){case"HEAD":case"HTML":case"BODY":vf(t);break;default:t.textContent=""}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if((t&1024)!==0)throw Error(f(163))}if(t=e.sibling,t!==null){t.return=e.return,_t=t;break}_t=e.return}}function sd(t,e,n){var a=n.flags;switch(n.tag){case 0:case 11:case 15:hn(t,n),a&4&&ni(5,n);break;case 1:if(hn(t,n),a&4)if(t=n.stateNode,e===null)try{t.componentDidMount()}catch(d){wt(n,n.return,d)}else{var i=Oa(n.type,e.memoizedProps);e=e.memoizedState;try{t.componentDidUpdate(i,e,t.__reactInternalSnapshotBeforeUpdate)}catch(d){wt(n,n.return,d)}}a&64&&nd(n),a&512&&ai(n,n.return);break;case 3:if(hn(t,n),a&64&&(t=n.updateQueue,t!==null)){if(e=null,n.child!==null)switch(n.child.tag){case 27:case 5:e=n.child.stateNode;break;case 1:e=n.child.stateNode}try{Ko(t,e)}catch(d){wt(n,n.return,d)}}break;case 27:e===null&&a&4&&ud(n);case 26:case 5:hn(t,n),e===null&&a&4&&ld(n),a&512&&ai(n,n.return);break;case 12:hn(t,n);break;case 31:hn(t,n),a&4&&od(t,n);break;case 13:hn(t,n),a&4&&dd(t,n),a&64&&(t=n.memoizedState,t!==null&&(t=t.dehydrated,t!==null&&(n=qg.bind(null,n),rA(t,n))));break;case 22:if(a=n.memoizedState!==null||on,!a){e=e!==null&&e.memoizedState!==null||Kt,i=on;var s=Kt;on=a,(Kt=e)&&!s?mn(t,n,(n.subtreeFlags&8772)!==0):hn(t,n),on=i,Kt=s}break;case 30:break;default:hn(t,n)}}function fd(t){var e=t.alternate;e!==null&&(t.alternate=null,fd(e)),t.child=null,t.deletions=null,t.sibling=null,t.tag===5&&(e=t.stateNode,e!==null&&bc(e)),t.stateNode=null,t.return=null,t.dependencies=null,t.memoizedProps=null,t.memoizedState=null,t.pendingProps=null,t.stateNode=null,t.updateQueue=null}var zt=null,he=!1;function dn(t,e,n){for(n=n.child;n!==null;)rd(t,e,n),n=n.sibling}function rd(t,e,n){if(be&&typeof be.onCommitFiberUnmount=="function")try{be.onCommitFiberUnmount(wl,n)}catch{}switch(n.tag){case 26:Kt||We(n,e),dn(t,e,n),n.memoizedState?n.memoizedState.count--:n.stateNode&&(n=n.stateNode,n.parentNode.removeChild(n));break;case 27:Kt||We(n,e);var a=zt,i=he;Jn(n.type)&&(zt=n.stateNode,he=!1),dn(t,e,n),di(n.stateNode),zt=a,he=i;break;case 5:Kt||We(n,e);case 6:if(a=zt,i=he,zt=null,dn(t,e,n),zt=a,he=i,zt!==null)if(he)try{(zt.nodeType===9?zt.body:zt.nodeName==="HTML"?zt.ownerDocument.body:zt).removeChild(n.stateNode)}catch(s){wt(n,e,s)}else try{zt.removeChild(n.stateNode)}catch(s){wt(n,e,s)}break;case 18:zt!==null&&(he?(t=zt,n1(t.nodeType===9?t.body:t.nodeName==="HTML"?t.ownerDocument.body:t,n.stateNode),pl(t)):n1(zt,n.stateNode));break;case 4:a=zt,i=he,zt=n.stateNode.containerInfo,he=!0,dn(t,e,n),zt=a,he=i;break;case 0:case 11:case 14:case 15:Xn(2,n,e),Kt||Xn(4,n,e),dn(t,e,n);break;case 1:Kt||(We(n,e),a=n.stateNode,typeof a.componentWillUnmount=="function"&&ad(n,e,a)),dn(t,e,n);break;case 21:dn(t,e,n);break;case 22:Kt=(a=Kt)||n.memoizedState!==null,dn(t,e,n),Kt=a;break;default:dn(t,e,n)}}function od(t,e){if(e.memoizedState===null&&(t=e.alternate,t!==null&&(t=t.memoizedState,t!==null))){t=t.dehydrated;try{pl(t)}catch(n){wt(e,e.return,n)}}}function dd(t,e){if(e.memoizedState===null&&(t=e.alternate,t!==null&&(t=t.memoizedState,t!==null&&(t=t.dehydrated,t!==null))))try{pl(t)}catch(n){wt(e,e.return,n)}}function Qg(t){switch(t.tag){case 31:case 13:case 19:var e=t.stateNode;return e===null&&(e=t.stateNode=new cd),e;case 22:return t=t.stateNode,e=t._retryCache,e===null&&(e=t._retryCache=new cd),e;default:throw Error(f(435,t.tag))}}function Cu(t,e){var n=Qg(t);e.forEach(function(a){if(!n.has(a)){n.add(a);var i=Ig.bind(null,t,a);a.then(i,i)}})}function me(t,e){var n=e.deletions;if(n!==null)for(var a=0;a<n.length;a++){var i=n[a],s=t,d=e,g=d;t:for(;g!==null;){switch(g.tag){case 27:if(Jn(g.type)){zt=g.stateNode,he=!1;break t}break;case 5:zt=g.stateNode,he=!1;break t;case 3:case 4:zt=g.stateNode.containerInfo,he=!0;break t}g=g.return}if(zt===null)throw Error(f(160));rd(s,d,i),zt=null,he=!1,s=i.alternate,s!==null&&(s.return=null),i.return=null}if(e.subtreeFlags&13886)for(e=e.child;e!==null;)hd(e,t),e=e.sibling}var Ie=null;function hd(t,e){var n=t.alternate,a=t.flags;switch(t.tag){case 0:case 11:case 14:case 15:me(e,t),ge(t),a&4&&(Xn(3,t,t.return),ni(3,t),Xn(5,t,t.return));break;case 1:me(e,t),ge(t),a&512&&(Kt||n===null||We(n,n.return)),a&64&&on&&(t=t.updateQueue,t!==null&&(a=t.callbacks,a!==null&&(n=t.shared.hiddenCallbacks,t.shared.hiddenCallbacks=n===null?a:n.concat(a))));break;case 26:var i=Ie;if(me(e,t),ge(t),a&512&&(Kt||n===null||We(n,n.return)),a&4){var s=n!==null?n.memoizedState:null;if(a=t.memoizedState,n===null)if(a===null)if(t.stateNode===null){t:{a=t.type,n=t.memoizedProps,i=i.ownerDocument||i;e:switch(a){case"title":s=i.getElementsByTagName("title")[0],(!s||s[Ml]||s[te]||s.namespaceURI==="http://www.w3.org/2000/svg"||s.hasAttribute("itemprop"))&&(s=i.createElement(a),i.head.insertBefore(s,i.querySelector("head > title"))),le(s,a,n),s[te]=t,Wt(s),a=s;break t;case"link":var d=h1("link","href",i).get(a+(n.href||""));if(d){for(var g=0;g<d.length;g++)if(s=d[g],s.getAttribute("href")===(n.href==null||n.href===""?null:n.href)&&s.getAttribute("rel")===(n.rel==null?null:n.rel)&&s.getAttribute("title")===(n.title==null?null:n.title)&&s.getAttribute("crossorigin")===(n.crossOrigin==null?null:n.crossOrigin)){d.splice(g,1);break e}}s=i.createElement(a),le(s,a,n),i.head.appendChild(s);break;case"meta":if(d=h1("meta","content",i).get(a+(n.content||""))){for(g=0;g<d.length;g++)if(s=d[g],s.getAttribute("content")===(n.content==null?null:""+n.content)&&s.getAttribute("name")===(n.name==null?null:n.name)&&s.getAttribute("property")===(n.property==null?null:n.property)&&s.getAttribute("http-equiv")===(n.httpEquiv==null?null:n.httpEquiv)&&s.getAttribute("charset")===(n.charSet==null?null:n.charSet)){d.splice(g,1);break e}}s=i.createElement(a),le(s,a,n),i.head.appendChild(s);break;default:throw Error(f(468,a))}s[te]=t,Wt(s),a=s}t.stateNode=a}else m1(i,t.type,t.stateNode);else t.stateNode=d1(i,a,t.memoizedProps);else s!==a?(s===null?n.stateNode!==null&&(n=n.stateNode,n.parentNode.removeChild(n)):s.count--,a===null?m1(i,t.type,t.stateNode):d1(i,a,t.memoizedProps)):a===null&&t.stateNode!==null&&Vs(t,t.memoizedProps,n.memoizedProps)}break;case 27:me(e,t),ge(t),a&512&&(Kt||n===null||We(n,n.return)),n!==null&&a&4&&Vs(t,t.memoizedProps,n.memoizedProps);break;case 5:if(me(e,t),ge(t),a&512&&(Kt||n===null||We(n,n.return)),t.flags&32){i=t.stateNode;try{Za(i,"")}catch(at){wt(t,t.return,at)}}a&4&&t.stateNode!=null&&(i=t.memoizedProps,Vs(t,i,n!==null?n.memoizedProps:i)),a&1024&&(Is=!0);break;case 6:if(me(e,t),ge(t),a&4){if(t.stateNode===null)throw Error(f(162));a=t.memoizedProps,n=t.stateNode;try{n.nodeValue=a}catch(at){wt(t,t.return,at)}}break;case 3:if(Xu=null,i=Ie,Ie=Lu(e.containerInfo),me(e,t),Ie=i,ge(t),a&4&&n!==null&&n.memoizedState.isDehydrated)try{pl(e.containerInfo)}catch(at){wt(t,t.return,at)}Is&&(Is=!1,md(t));break;case 4:a=Ie,Ie=Lu(t.stateNode.containerInfo),me(e,t),ge(t),Ie=a;break;case 12:me(e,t),ge(t);break;case 31:me(e,t),ge(t),a&4&&(a=t.updateQueue,a!==null&&(t.updateQueue=null,Cu(t,a)));break;case 13:me(e,t),ge(t),t.child.flags&8192&&t.memoizedState!==null!=(n!==null&&n.memoizedState!==null)&&(wu=pe()),a&4&&(a=t.updateQueue,a!==null&&(t.updateQueue=null,Cu(t,a)));break;case 22:i=t.memoizedState!==null;var T=n!==null&&n.memoizedState!==null,z=on,V=Kt;if(on=z||i,Kt=V||T,me(e,t),Kt=V,on=z,ge(t),a&8192)t:for(e=t.stateNode,e._visibility=i?e._visibility&-2:e._visibility|1,i&&(n===null||T||on||Kt||wa(t)),n=null,e=t;;){if(e.tag===5||e.tag===26){if(n===null){T=n=e;try{if(s=T.stateNode,i)d=s.style,typeof d.setProperty=="function"?d.setProperty("display","none","important"):d.display="none";else{g=T.stateNode;var I=T.memoizedProps.style,Y=I!=null&&I.hasOwnProperty("display")?I.display:null;g.style.display=Y==null||typeof Y=="boolean"?"":(""+Y).trim()}}catch(at){wt(T,T.return,at)}}}else if(e.tag===6){if(n===null){T=e;try{T.stateNode.nodeValue=i?"":T.memoizedProps}catch(at){wt(T,T.return,at)}}}else if(e.tag===18){if(n===null){T=e;try{var G=T.stateNode;i?a1(G,!0):a1(T.stateNode,!1)}catch(at){wt(T,T.return,at)}}}else if((e.tag!==22&&e.tag!==23||e.memoizedState===null||e===t)&&e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break t;for(;e.sibling===null;){if(e.return===null||e.return===t)break t;n===e&&(n=null),e=e.return}n===e&&(n=null),e.sibling.return=e.return,e=e.sibling}a&4&&(a=t.updateQueue,a!==null&&(n=a.retryQueue,n!==null&&(a.retryQueue=null,Cu(t,n))));break;case 19:me(e,t),ge(t),a&4&&(a=t.updateQueue,a!==null&&(t.updateQueue=null,Cu(t,a)));break;case 30:break;case 21:break;default:me(e,t),ge(t)}}function ge(t){var e=t.flags;if(e&2){try{for(var n,a=t.return;a!==null;){if(id(a)){n=a;break}a=a.return}if(n==null)throw Error(f(160));switch(n.tag){case 27:var i=n.stateNode,s=Zs(t);Tu(t,s,i);break;case 5:var d=n.stateNode;n.flags&32&&(Za(d,""),n.flags&=-33);var g=Zs(t);Tu(t,g,d);break;case 3:case 4:var T=n.stateNode.containerInfo,z=Zs(t);qs(t,z,T);break;default:throw Error(f(161))}}catch(V){wt(t,t.return,V)}t.flags&=-3}e&4096&&(t.flags&=-4097)}function md(t){if(t.subtreeFlags&1024)for(t=t.child;t!==null;){var e=t;md(e),e.tag===5&&e.flags&1024&&e.stateNode.reset(),t=t.sibling}}function hn(t,e){if(e.subtreeFlags&8772)for(e=e.child;e!==null;)sd(t,e.alternate,e),e=e.sibling}function wa(t){for(t=t.child;t!==null;){var e=t;switch(e.tag){case 0:case 11:case 14:case 15:Xn(4,e,e.return),wa(e);break;case 1:We(e,e.return);var n=e.stateNode;typeof n.componentWillUnmount=="function"&&ad(e,e.return,n),wa(e);break;case 27:di(e.stateNode);case 26:case 5:We(e,e.return),wa(e);break;case 22:e.memoizedState===null&&wa(e);break;case 30:wa(e);break;default:wa(e)}t=t.sibling}}function mn(t,e,n){for(n=n&&(e.subtreeFlags&8772)!==0,e=e.child;e!==null;){var a=e.alternate,i=t,s=e,d=s.flags;switch(s.tag){case 0:case 11:case 15:mn(i,s,n),ni(4,s);break;case 1:if(mn(i,s,n),a=s,i=a.stateNode,typeof i.componentDidMount=="function")try{i.componentDidMount()}catch(z){wt(a,a.return,z)}if(a=s,i=a.updateQueue,i!==null){var g=a.stateNode;try{var T=i.shared.hiddenCallbacks;if(T!==null)for(i.shared.hiddenCallbacks=null,i=0;i<T.length;i++)Io(T[i],g)}catch(z){wt(a,a.return,z)}}n&&d&64&&nd(s),ai(s,s.return);break;case 27:ud(s);case 26:case 5:mn(i,s,n),n&&a===null&&d&4&&ld(s),ai(s,s.return);break;case 12:mn(i,s,n);break;case 31:mn(i,s,n),n&&d&4&&od(i,s);break;case 13:mn(i,s,n),n&&d&4&&dd(i,s);break;case 22:s.memoizedState===null&&mn(i,s,n),ai(s,s.return);break;case 30:break;default:mn(i,s,n)}e=e.sibling}}function Ks(t,e){var n=null;t!==null&&t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(n=t.memoizedState.cachePool.pool),t=null,e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(t=e.memoizedState.cachePool.pool),t!==n&&(t!=null&&t.refCount++,n!=null&&Zl(n))}function ks(t,e){t=null,e.alternate!==null&&(t=e.alternate.memoizedState.cache),e=e.memoizedState.cache,e!==t&&(e.refCount++,t!=null&&Zl(t))}function Ke(t,e,n,a){if(e.subtreeFlags&10256)for(e=e.child;e!==null;)gd(t,e,n,a),e=e.sibling}function gd(t,e,n,a){var i=e.flags;switch(e.tag){case 0:case 11:case 15:Ke(t,e,n,a),i&2048&&ni(9,e);break;case 1:Ke(t,e,n,a);break;case 3:Ke(t,e,n,a),i&2048&&(t=null,e.alternate!==null&&(t=e.alternate.memoizedState.cache),e=e.memoizedState.cache,e!==t&&(e.refCount++,t!=null&&Zl(t)));break;case 12:if(i&2048){Ke(t,e,n,a),t=e.stateNode;try{var s=e.memoizedProps,d=s.id,g=s.onPostCommit;typeof g=="function"&&g(d,e.alternate===null?"mount":"update",t.passiveEffectDuration,-0)}catch(T){wt(e,e.return,T)}}else Ke(t,e,n,a);break;case 31:Ke(t,e,n,a);break;case 13:Ke(t,e,n,a);break;case 23:break;case 22:s=e.stateNode,d=e.alternate,e.memoizedState!==null?s._visibility&2?Ke(t,e,n,a):li(t,e):s._visibility&2?Ke(t,e,n,a):(s._visibility|=2,fl(t,e,n,a,(e.subtreeFlags&10256)!==0||!1)),i&2048&&Ks(d,e);break;case 24:Ke(t,e,n,a),i&2048&&ks(e.alternate,e);break;default:Ke(t,e,n,a)}}function fl(t,e,n,a,i){for(i=i&&((e.subtreeFlags&10256)!==0||!1),e=e.child;e!==null;){var s=t,d=e,g=n,T=a,z=d.flags;switch(d.tag){case 0:case 11:case 15:fl(s,d,g,T,i),ni(8,d);break;case 23:break;case 22:var V=d.stateNode;d.memoizedState!==null?V._visibility&2?fl(s,d,g,T,i):li(s,d):(V._visibility|=2,fl(s,d,g,T,i)),i&&z&2048&&Ks(d.alternate,d);break;case 24:fl(s,d,g,T,i),i&&z&2048&&ks(d.alternate,d);break;default:fl(s,d,g,T,i)}e=e.sibling}}function li(t,e){if(e.subtreeFlags&10256)for(e=e.child;e!==null;){var n=t,a=e,i=a.flags;switch(a.tag){case 22:li(n,a),i&2048&&Ks(a.alternate,a);break;case 24:li(n,a),i&2048&&ks(a.alternate,a);break;default:li(n,a)}e=e.sibling}}var ii=8192;function rl(t,e,n){if(t.subtreeFlags&ii)for(t=t.child;t!==null;)Ad(t,e,n),t=t.sibling}function Ad(t,e,n){switch(t.tag){case 26:rl(t,e,n),t.flags&ii&&t.memoizedState!==null&&xA(n,Ie,t.memoizedState,t.memoizedProps);break;case 5:rl(t,e,n);break;case 3:case 4:var a=Ie;Ie=Lu(t.stateNode.containerInfo),rl(t,e,n),Ie=a;break;case 22:t.memoizedState===null&&(a=t.alternate,a!==null&&a.memoizedState!==null?(a=ii,ii=16777216,rl(t,e,n),ii=a):rl(t,e,n));break;default:rl(t,e,n)}}function vd(t){var e=t.alternate;if(e!==null&&(t=e.child,t!==null)){e.child=null;do e=t.sibling,t.sibling=null,t=e;while(t!==null)}}function ui(t){var e=t.deletions;if((t.flags&16)!==0){if(e!==null)for(var n=0;n<e.length;n++){var a=e[n];_t=a,Ed(a,t)}vd(t)}if(t.subtreeFlags&10256)for(t=t.child;t!==null;)yd(t),t=t.sibling}function yd(t){switch(t.tag){case 0:case 11:case 15:ui(t),t.flags&2048&&Xn(9,t,t.return);break;case 3:ui(t);break;case 12:ui(t);break;case 22:var e=t.stateNode;t.memoizedState!==null&&e._visibility&2&&(t.return===null||t.return.tag!==13)?(e._visibility&=-3,Ou(t)):ui(t);break;default:ui(t)}}function Ou(t){var e=t.deletions;if((t.flags&16)!==0){if(e!==null)for(var n=0;n<e.length;n++){var a=e[n];_t=a,Ed(a,t)}vd(t)}for(t=t.child;t!==null;){switch(e=t,e.tag){case 0:case 11:case 15:Xn(8,e,e.return),Ou(e);break;case 22:n=e.stateNode,n._visibility&2&&(n._visibility&=-3,Ou(e));break;default:Ou(e)}t=t.sibling}}function Ed(t,e){for(;_t!==null;){var n=_t;switch(n.tag){case 0:case 11:case 15:Xn(8,n,e);break;case 23:case 22:if(n.memoizedState!==null&&n.memoizedState.cachePool!==null){var a=n.memoizedState.cachePool.pool;a!=null&&a.refCount++}break;case 24:Zl(n.memoizedState.cache)}if(a=n.child,a!==null)a.return=n,_t=a;else t:for(n=t;_t!==null;){a=_t;var i=a.sibling,s=a.return;if(fd(a),a===n){_t=null;break t}if(i!==null){i.return=s,_t=i;break t}_t=s}}}var zg={getCacheForType:function(t){var e=ne(Zt),n=e.data.get(t);return n===void 0&&(n=t(),e.data.set(t,n)),n},cacheSignal:function(){return ne(Zt).controller.signal}},Yg=typeof WeakMap=="function"?WeakMap:Map,Ct=0,jt=null,vt=null,Et=0,Ot=0,we=null,Vn=!1,ol=!1,Js=!1,gn=0,Gt=0,Zn=0,Ra=0,Fs=0,Re=0,dl=0,ci=null,Ae=null,Ws=!1,wu=0,pd=0,Ru=1/0,Du=null,qn=null,kt=0,In=null,hl=null,An=0,_s=0,Ps=null,bd=null,si=0,$s=null;function De(){return(Ct&2)!==0&&Et!==0?Et&-Et:H.T!==null?uf():Qr()}function xd(){if(Re===0)if((Et&536870912)===0||bt){var t=zi;zi<<=1,(zi&3932160)===0&&(zi=262144),Re=t}else Re=536870912;return t=Ce.current,t!==null&&(t.flags|=32),Re}function ve(t,e,n){(t===jt&&(Ot===2||Ot===9)||t.cancelPendingCommit!==null)&&(ml(t,0),Kn(t,Et,Re,!1)),Dl(t,n),((Ct&2)===0||t!==jt)&&(t===jt&&((Ct&2)===0&&(Ra|=n),Gt===4&&Kn(t,Et,Re,!1)),_e(t))}function Sd(t,e,n){if((Ct&6)!==0)throw Error(f(327));var a=!n&&(e&127)===0&&(e&t.expiredLanes)===0||Rl(t,e),i=a?Xg(t,e):ef(t,e,!0),s=a;do{if(i===0){ol&&!a&&Kn(t,e,0,!1);break}else{if(n=t.current.alternate,s&&!Lg(n)){i=ef(t,e,!1),s=!1;continue}if(i===2){if(s=e,t.errorRecoveryDisabledLanes&s)var d=0;else d=t.pendingLanes&-536870913,d=d!==0?d:d&536870912?536870912:0;if(d!==0){e=d;t:{var g=t;i=ci;var T=g.current.memoizedState.isDehydrated;if(T&&(ml(g,d).flags|=256),d=ef(g,d,!1),d!==2){if(Js&&!T){g.errorRecoveryDisabledLanes|=s,Ra|=s,i=4;break t}s=Ae,Ae=i,s!==null&&(Ae===null?Ae=s:Ae.push.apply(Ae,s))}i=d}if(s=!1,i!==2)continue}}if(i===1){ml(t,0),Kn(t,e,0,!0);break}t:{switch(a=t,s=i,s){case 0:case 1:throw Error(f(345));case 4:if((e&4194048)!==e)break;case 6:Kn(a,e,Re,!Vn);break t;case 2:Ae=null;break;case 3:case 5:break;default:throw Error(f(329))}if((e&62914560)===e&&(i=wu+300-pe(),10<i)){if(Kn(a,e,Re,!Vn),Li(a,0,!0)!==0)break t;An=e,a.timeoutHandle=t1(Td.bind(null,a,n,Ae,Du,Ws,e,Re,Ra,dl,Vn,s,"Throttled",-0,0),i);break t}Td(a,n,Ae,Du,Ws,e,Re,Ra,dl,Vn,s,null,-0,0)}}break}while(!0);_e(t)}function Td(t,e,n,a,i,s,d,g,T,z,V,I,Y,G){if(t.timeoutHandle=-1,I=e.subtreeFlags,I&8192||(I&16785408)===16785408){I={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:tn},Ad(e,s,I);var at=(s&62914560)===s?wu-pe():(s&4194048)===s?pd-pe():0;if(at=SA(I,at),at!==null){An=s,t.cancelPendingCommit=at(Hd.bind(null,t,e,s,n,a,i,d,g,T,V,I,null,Y,G)),Kn(t,s,d,!z);return}}Hd(t,e,s,n,a,i,d,g,T)}function Lg(t){for(var e=t;;){var n=e.tag;if((n===0||n===11||n===15)&&e.flags&16384&&(n=e.updateQueue,n!==null&&(n=n.stores,n!==null)))for(var a=0;a<n.length;a++){var i=n[a],s=i.getSnapshot;i=i.value;try{if(!Se(s(),i))return!1}catch{return!1}}if(n=e.child,e.subtreeFlags&16384&&n!==null)n.return=e,e=n;else{if(e===t)break;for(;e.sibling===null;){if(e.return===null||e.return===t)return!0;e=e.return}e.sibling.return=e.return,e=e.sibling}}return!0}function Kn(t,e,n,a){e&=~Fs,e&=~Ra,t.suspendedLanes|=e,t.pingedLanes&=~e,a&&(t.warmLanes|=e),a=t.expirationTimes;for(var i=e;0<i;){var s=31-xe(i),d=1<<s;a[s]=-1,i&=~d}n!==0&&Nr(t,n,e)}function Mu(){return(Ct&6)===0?(fi(0),!1):!0}function tf(){if(vt!==null){if(Ot===0)var t=vt.return;else t=vt,ln=Ea=null,As(t),ll=null,Il=0,t=vt;for(;t!==null;)ed(t.alternate,t),t=t.return;vt=null}}function ml(t,e){var n=t.timeoutHandle;n!==-1&&(t.timeoutHandle=-1,iA(n)),n=t.cancelPendingCommit,n!==null&&(t.cancelPendingCommit=null,n()),An=0,tf(),jt=t,vt=n=nn(t.current,null),Et=e,Ot=0,we=null,Vn=!1,ol=Rl(t,e),Js=!1,dl=Re=Fs=Ra=Zn=Gt=0,Ae=ci=null,Ws=!1,(e&8)!==0&&(e|=e&32);var a=t.entangledLanes;if(a!==0)for(t=t.entanglements,a&=e;0<a;){var i=31-xe(a),s=1<<i;e|=t[i],a&=~s}return gn=e,_i(),n}function Cd(t,e){mt=null,H.H=$l,e===al||e===iu?(e=Xo(),Ot=3):e===ls?(e=Xo(),Ot=4):Ot=e===Hs?8:e!==null&&typeof e=="object"&&typeof e.then=="function"?6:1,we=e,vt===null&&(Gt=1,Eu(t,Be(e,t.current)))}function Od(){var t=Ce.current;return t===null?!0:(Et&4194048)===Et?Ye===null:(Et&62914560)===Et||(Et&536870912)!==0?t===Ye:!1}function wd(){var t=H.H;return H.H=$l,t===null?$l:t}function Rd(){var t=H.A;return H.A=zg,t}function ju(){Gt=4,Vn||(Et&4194048)!==Et&&Ce.current!==null||(ol=!0),(Zn&134217727)===0&&(Ra&134217727)===0||jt===null||Kn(jt,Et,Re,!1)}function ef(t,e,n){var a=Ct;Ct|=2;var i=wd(),s=Rd();(jt!==t||Et!==e)&&(Du=null,ml(t,e)),e=!1;var d=Gt;t:do try{if(Ot!==0&&vt!==null){var g=vt,T=we;switch(Ot){case 8:tf(),d=6;break t;case 3:case 2:case 9:case 6:Ce.current===null&&(e=!0);var z=Ot;if(Ot=0,we=null,gl(t,g,T,z),n&&ol){d=0;break t}break;default:z=Ot,Ot=0,we=null,gl(t,g,T,z)}}Gg(),d=Gt;break}catch(V){Cd(t,V)}while(!0);return e&&t.shellSuspendCounter++,ln=Ea=null,Ct=a,H.H=i,H.A=s,vt===null&&(jt=null,Et=0,_i()),d}function Gg(){for(;vt!==null;)Dd(vt)}function Xg(t,e){var n=Ct;Ct|=2;var a=wd(),i=Rd();jt!==t||Et!==e?(Du=null,Ru=pe()+500,ml(t,e)):ol=Rl(t,e);t:do try{if(Ot!==0&&vt!==null){e=vt;var s=we;e:switch(Ot){case 1:Ot=0,we=null,gl(t,e,s,1);break;case 2:case 9:if(Lo(s)){Ot=0,we=null,Md(e);break}e=function(){Ot!==2&&Ot!==9||jt!==t||(Ot=7),_e(t)},s.then(e,e);break t;case 3:Ot=7;break t;case 4:Ot=5;break t;case 7:Lo(s)?(Ot=0,we=null,Md(e)):(Ot=0,we=null,gl(t,e,s,7));break;case 5:var d=null;switch(vt.tag){case 26:d=vt.memoizedState;case 5:case 27:var g=vt;if(d?g1(d):g.stateNode.complete){Ot=0,we=null;var T=g.sibling;if(T!==null)vt=T;else{var z=g.return;z!==null?(vt=z,Hu(z)):vt=null}break e}}Ot=0,we=null,gl(t,e,s,5);break;case 6:Ot=0,we=null,gl(t,e,s,6);break;case 8:tf(),Gt=6;break t;default:throw Error(f(462))}}Vg();break}catch(V){Cd(t,V)}while(!0);return ln=Ea=null,H.H=a,H.A=i,Ct=n,vt!==null?0:(jt=null,Et=0,_i(),Gt)}function Vg(){for(;vt!==null&&!om();)Dd(vt)}function Dd(t){var e=$0(t.alternate,t,gn);t.memoizedProps=t.pendingProps,e===null?Hu(t):vt=e}function Md(t){var e=t,n=e.alternate;switch(e.tag){case 15:case 0:e=k0(n,e,e.pendingProps,e.type,void 0,Et);break;case 11:e=k0(n,e,e.pendingProps,e.type.render,e.ref,Et);break;case 5:As(e);default:ed(n,e),e=vt=Ro(e,gn),e=$0(n,e,gn)}t.memoizedProps=t.pendingProps,e===null?Hu(t):vt=e}function gl(t,e,n,a){ln=Ea=null,As(e),ll=null,Il=0;var i=e.return;try{if(Mg(t,i,e,n,Et)){Gt=1,Eu(t,Be(n,t.current)),vt=null;return}}catch(s){if(i!==null)throw vt=i,s;Gt=1,Eu(t,Be(n,t.current)),vt=null;return}e.flags&32768?(bt||a===1?t=!0:ol||(Et&536870912)!==0?t=!1:(Vn=t=!0,(a===2||a===9||a===3||a===6)&&(a=Ce.current,a!==null&&a.tag===13&&(a.flags|=16384))),jd(e,t)):Hu(e)}function Hu(t){var e=t;do{if((e.flags&32768)!==0){jd(e,Vn);return}t=e.return;var n=Ng(e.alternate,e,gn);if(n!==null){vt=n;return}if(e=e.sibling,e!==null){vt=e;return}vt=e=t}while(e!==null);Gt===0&&(Gt=5)}function jd(t,e){do{var n=Bg(t.alternate,t);if(n!==null){n.flags&=32767,vt=n;return}if(n=t.return,n!==null&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!e&&(t=t.sibling,t!==null)){vt=t;return}vt=t=n}while(t!==null);Gt=6,vt=null}function Hd(t,e,n,a,i,s,d,g,T){t.cancelPendingCommit=null;do Nu();while(kt!==0);if((Ct&6)!==0)throw Error(f(327));if(e!==null){if(e===t.current)throw Error(f(177));if(s=e.lanes|e.childLanes,s|=Zc,bm(t,n,s,d,g,T),t===jt&&(vt=jt=null,Et=0),hl=e,In=t,An=n,_s=s,Ps=i,bd=a,(e.subtreeFlags&10256)!==0||(e.flags&10256)!==0?(t.callbackNode=null,t.callbackPriority=0,Kg(Ui,function(){return zd(),null})):(t.callbackNode=null,t.callbackPriority=0),a=(e.flags&13878)!==0,(e.subtreeFlags&13878)!==0||a){a=H.T,H.T=null,i=_.p,_.p=2,d=Ct,Ct|=4;try{Ug(t,e,n)}finally{Ct=d,_.p=i,H.T=a}}kt=1,Nd(),Bd(),Ud()}}function Nd(){if(kt===1){kt=0;var t=In,e=hl,n=(e.flags&13878)!==0;if((e.subtreeFlags&13878)!==0||n){n=H.T,H.T=null;var a=_.p;_.p=2;var i=Ct;Ct|=4;try{hd(e,t);var s=mf,d=Eo(t.containerInfo),g=s.focusedElem,T=s.selectionRange;if(d!==g&&g&&g.ownerDocument&&yo(g.ownerDocument.documentElement,g)){if(T!==null&&Yc(g)){var z=T.start,V=T.end;if(V===void 0&&(V=z),"selectionStart"in g)g.selectionStart=z,g.selectionEnd=Math.min(V,g.value.length);else{var I=g.ownerDocument||document,Y=I&&I.defaultView||window;if(Y.getSelection){var G=Y.getSelection(),at=g.textContent.length,ft=Math.min(T.start,at),Mt=T.end===void 0?ft:Math.min(T.end,at);!G.extend&&ft>Mt&&(d=Mt,Mt=ft,ft=d);var M=vo(g,ft),w=vo(g,Mt);if(M&&w&&(G.rangeCount!==1||G.anchorNode!==M.node||G.anchorOffset!==M.offset||G.focusNode!==w.node||G.focusOffset!==w.offset)){var Q=I.createRange();Q.setStart(M.node,M.offset),G.removeAllRanges(),ft>Mt?(G.addRange(Q),G.extend(w.node,w.offset)):(Q.setEnd(w.node,w.offset),G.addRange(Q))}}}}for(I=[],G=g;G=G.parentNode;)G.nodeType===1&&I.push({element:G,left:G.scrollLeft,top:G.scrollTop});for(typeof g.focus=="function"&&g.focus(),g=0;g<I.length;g++){var q=I[g];q.element.scrollLeft=q.left,q.element.scrollTop=q.top}}Iu=!!hf,mf=hf=null}finally{Ct=i,_.p=a,H.T=n}}t.current=e,kt=2}}function Bd(){if(kt===2){kt=0;var t=In,e=hl,n=(e.flags&8772)!==0;if((e.subtreeFlags&8772)!==0||n){n=H.T,H.T=null;var a=_.p;_.p=2;var i=Ct;Ct|=4;try{sd(t,e.alternate,e)}finally{Ct=i,_.p=a,H.T=n}}kt=3}}function Ud(){if(kt===4||kt===3){kt=0,dm();var t=In,e=hl,n=An,a=bd;(e.subtreeFlags&10256)!==0||(e.flags&10256)!==0?kt=5:(kt=0,hl=In=null,Qd(t,t.pendingLanes));var i=t.pendingLanes;if(i===0&&(qn=null),Ec(n),e=e.stateNode,be&&typeof be.onCommitFiberRoot=="function")try{be.onCommitFiberRoot(wl,e,void 0,(e.current.flags&128)===128)}catch{}if(a!==null){e=H.T,i=_.p,_.p=2,H.T=null;try{for(var s=t.onRecoverableError,d=0;d<a.length;d++){var g=a[d];s(g.value,{componentStack:g.stack})}}finally{H.T=e,_.p=i}}(An&3)!==0&&Nu(),_e(t),i=t.pendingLanes,(n&261930)!==0&&(i&42)!==0?t===$s?si++:(si=0,$s=t):si=0,fi(0)}}function Qd(t,e){(t.pooledCacheLanes&=e)===0&&(e=t.pooledCache,e!=null&&(t.pooledCache=null,Zl(e)))}function Nu(){return Nd(),Bd(),Ud(),zd()}function zd(){if(kt!==5)return!1;var t=In,e=_s;_s=0;var n=Ec(An),a=H.T,i=_.p;try{_.p=32>n?32:n,H.T=null,n=Ps,Ps=null;var s=In,d=An;if(kt=0,hl=In=null,An=0,(Ct&6)!==0)throw Error(f(331));var g=Ct;if(Ct|=4,yd(s.current),gd(s,s.current,d,n),Ct=g,fi(0,!1),be&&typeof be.onPostCommitFiberRoot=="function")try{be.onPostCommitFiberRoot(wl,s)}catch{}return!0}finally{_.p=i,H.T=a,Qd(t,e)}}function Yd(t,e,n){e=Be(n,e),e=js(t.stateNode,e,2),t=Yn(t,e,2),t!==null&&(Dl(t,2),_e(t))}function wt(t,e,n){if(t.tag===3)Yd(t,t,n);else for(;e!==null;){if(e.tag===3){Yd(e,t,n);break}else if(e.tag===1){var a=e.stateNode;if(typeof e.type.getDerivedStateFromError=="function"||typeof a.componentDidCatch=="function"&&(qn===null||!qn.has(a))){t=Be(n,t),n=L0(2),a=Yn(e,n,2),a!==null&&(G0(n,a,e,t),Dl(a,2),_e(a));break}}e=e.return}}function nf(t,e,n){var a=t.pingCache;if(a===null){a=t.pingCache=new Yg;var i=new Set;a.set(e,i)}else i=a.get(e),i===void 0&&(i=new Set,a.set(e,i));i.has(n)||(Js=!0,i.add(n),t=Zg.bind(null,t,e,n),e.then(t,t))}function Zg(t,e,n){var a=t.pingCache;a!==null&&a.delete(e),t.pingedLanes|=t.suspendedLanes&n,t.warmLanes&=~n,jt===t&&(Et&n)===n&&(Gt===4||Gt===3&&(Et&62914560)===Et&&300>pe()-wu?(Ct&2)===0&&ml(t,0):Fs|=n,dl===Et&&(dl=0)),_e(t)}function Ld(t,e){e===0&&(e=Hr()),t=Aa(t,e),t!==null&&(Dl(t,e),_e(t))}function qg(t){var e=t.memoizedState,n=0;e!==null&&(n=e.retryLane),Ld(t,n)}function Ig(t,e){var n=0;switch(t.tag){case 31:case 13:var a=t.stateNode,i=t.memoizedState;i!==null&&(n=i.retryLane);break;case 19:a=t.stateNode;break;case 22:a=t.stateNode._retryCache;break;default:throw Error(f(314))}a!==null&&a.delete(e),Ld(t,n)}function Kg(t,e){return gc(t,e)}var Bu=null,Al=null,af=!1,Uu=!1,lf=!1,kn=0;function _e(t){t!==Al&&t.next===null&&(Al===null?Bu=Al=t:Al=Al.next=t),Uu=!0,af||(af=!0,Jg())}function fi(t,e){if(!lf&&Uu){lf=!0;do for(var n=!1,a=Bu;a!==null;){if(t!==0){var i=a.pendingLanes;if(i===0)var s=0;else{var d=a.suspendedLanes,g=a.pingedLanes;s=(1<<31-xe(42|t)+1)-1,s&=i&~(d&~g),s=s&201326741?s&201326741|1:s?s|2:0}s!==0&&(n=!0,Zd(a,s))}else s=Et,s=Li(a,a===jt?s:0,a.cancelPendingCommit!==null||a.timeoutHandle!==-1),(s&3)===0||Rl(a,s)||(n=!0,Zd(a,s));a=a.next}while(n);lf=!1}}function kg(){Gd()}function Gd(){Uu=af=!1;var t=0;kn!==0&&lA()&&(t=kn);for(var e=pe(),n=null,a=Bu;a!==null;){var i=a.next,s=Xd(a,e);s===0?(a.next=null,n===null?Bu=i:n.next=i,i===null&&(Al=n)):(n=a,(t!==0||(s&3)!==0)&&(Uu=!0)),a=i}kt!==0&&kt!==5||fi(t),kn!==0&&(kn=0)}function Xd(t,e){for(var n=t.suspendedLanes,a=t.pingedLanes,i=t.expirationTimes,s=t.pendingLanes&-62914561;0<s;){var d=31-xe(s),g=1<<d,T=i[d];T===-1?((g&n)===0||(g&a)!==0)&&(i[d]=pm(g,e)):T<=e&&(t.expiredLanes|=g),s&=~g}if(e=jt,n=Et,n=Li(t,t===e?n:0,t.cancelPendingCommit!==null||t.timeoutHandle!==-1),a=t.callbackNode,n===0||t===e&&(Ot===2||Ot===9)||t.cancelPendingCommit!==null)return a!==null&&a!==null&&Ac(a),t.callbackNode=null,t.callbackPriority=0;if((n&3)===0||Rl(t,n)){if(e=n&-n,e===t.callbackPriority)return e;switch(a!==null&&Ac(a),Ec(n)){case 2:case 8:n=Mr;break;case 32:n=Ui;break;case 268435456:n=jr;break;default:n=Ui}return a=Vd.bind(null,t),n=gc(n,a),t.callbackPriority=e,t.callbackNode=n,e}return a!==null&&a!==null&&Ac(a),t.callbackPriority=2,t.callbackNode=null,2}function Vd(t,e){if(kt!==0&&kt!==5)return t.callbackNode=null,t.callbackPriority=0,null;var n=t.callbackNode;if(Nu()&&t.callbackNode!==n)return null;var a=Et;return a=Li(t,t===jt?a:0,t.cancelPendingCommit!==null||t.timeoutHandle!==-1),a===0?null:(Sd(t,a,e),Xd(t,pe()),t.callbackNode!=null&&t.callbackNode===n?Vd.bind(null,t):null)}function Zd(t,e){if(Nu())return null;Sd(t,e,!0)}function Jg(){uA(function(){(Ct&6)!==0?gc(Dr,kg):Gd()})}function uf(){if(kn===0){var t=el;t===0&&(t=Qi,Qi<<=1,(Qi&261888)===0&&(Qi=256)),kn=t}return kn}function qd(t){return t==null||typeof t=="symbol"||typeof t=="boolean"?null:typeof t=="function"?t:Zi(""+t)}function Id(t,e){var n=e.ownerDocument.createElement("input");return n.name=e.name,n.value=e.value,t.id&&n.setAttribute("form",t.id),e.parentNode.insertBefore(n,e),t=new FormData(t),n.parentNode.removeChild(n),t}function Fg(t,e,n,a,i){if(e==="submit"&&n&&n.stateNode===i){var s=qd((i[oe]||null).action),d=a.submitter;d&&(e=(e=d[oe]||null)?qd(e.formAction):d.getAttribute("formAction"),e!==null&&(s=e,d=null));var g=new ki("action","action",null,a,i);t.push({event:g,listeners:[{instance:null,listener:function(){if(a.defaultPrevented){if(kn!==0){var T=d?Id(i,d):new FormData(i);Cs(n,{pending:!0,data:T,method:i.method,action:s},null,T)}}else typeof s=="function"&&(g.preventDefault(),T=d?Id(i,d):new FormData(i),Cs(n,{pending:!0,data:T,method:i.method,action:s},s,T))},currentTarget:i}]})}}for(var cf=0;cf<Vc.length;cf++){var sf=Vc[cf],Wg=sf.toLowerCase(),_g=sf[0].toUpperCase()+sf.slice(1);qe(Wg,"on"+_g)}qe(xo,"onAnimationEnd"),qe(So,"onAnimationIteration"),qe(To,"onAnimationStart"),qe("dblclick","onDoubleClick"),qe("focusin","onFocus"),qe("focusout","onBlur"),qe(hg,"onTransitionRun"),qe(mg,"onTransitionStart"),qe(gg,"onTransitionCancel"),qe(Co,"onTransitionEnd"),Xa("onMouseEnter",["mouseout","mouseover"]),Xa("onMouseLeave",["mouseout","mouseover"]),Xa("onPointerEnter",["pointerout","pointerover"]),Xa("onPointerLeave",["pointerout","pointerover"]),da("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),da("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),da("onBeforeInput",["compositionend","keypress","textInput","paste"]),da("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),da("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),da("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var ri="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Pg=new Set("beforetoggle cancel close invalid load scroll scrollend toggle".split(" ").concat(ri));function Kd(t,e){e=(e&4)!==0;for(var n=0;n<t.length;n++){var a=t[n],i=a.event;a=a.listeners;t:{var s=void 0;if(e)for(var d=a.length-1;0<=d;d--){var g=a[d],T=g.instance,z=g.currentTarget;if(g=g.listener,T!==s&&i.isPropagationStopped())break t;s=g,i.currentTarget=z;try{s(i)}catch(V){Wi(V)}i.currentTarget=null,s=T}else for(d=0;d<a.length;d++){if(g=a[d],T=g.instance,z=g.currentTarget,g=g.listener,T!==s&&i.isPropagationStopped())break t;s=g,i.currentTarget=z;try{s(i)}catch(V){Wi(V)}i.currentTarget=null,s=T}}}}function yt(t,e){var n=e[pc];n===void 0&&(n=e[pc]=new Set);var a=t+"__bubble";n.has(a)||(kd(e,t,2,!1),n.add(a))}function ff(t,e,n){var a=0;e&&(a|=4),kd(n,t,a,e)}var Qu="_reactListening"+Math.random().toString(36).slice(2);function rf(t){if(!t[Qu]){t[Qu]=!0,Lr.forEach(function(n){n!=="selectionchange"&&(Pg.has(n)||ff(n,!1,t),ff(n,!0,t))});var e=t.nodeType===9?t:t.ownerDocument;e===null||e[Qu]||(e[Qu]=!0,ff("selectionchange",!1,e))}}function kd(t,e,n,a){switch(x1(e)){case 2:var i=OA;break;case 8:i=wA;break;default:i=Cf}n=i.bind(null,e,n,t),i=void 0,!Dc||e!=="touchstart"&&e!=="touchmove"&&e!=="wheel"||(i=!0),a?i!==void 0?t.addEventListener(e,n,{capture:!0,passive:i}):t.addEventListener(e,n,!0):i!==void 0?t.addEventListener(e,n,{passive:i}):t.addEventListener(e,n,!1)}function of(t,e,n,a,i){var s=a;if((e&1)===0&&(e&2)===0&&a!==null)t:for(;;){if(a===null)return;var d=a.tag;if(d===3||d===4){var g=a.stateNode.containerInfo;if(g===i)break;if(d===4)for(d=a.return;d!==null;){var T=d.tag;if((T===3||T===4)&&d.stateNode.containerInfo===i)return;d=d.return}for(;g!==null;){if(d=Ya(g),d===null)return;if(T=d.tag,T===5||T===6||T===26||T===27){a=s=d;continue t}g=g.parentNode}}a=a.return}_r(function(){var z=s,V=wc(n),I=[];t:{var Y=Oo.get(t);if(Y!==void 0){var G=ki,at=t;switch(t){case"keypress":if(Ii(n)===0)break t;case"keydown":case"keyup":G=Im;break;case"focusin":at="focus",G=Nc;break;case"focusout":at="blur",G=Nc;break;case"beforeblur":case"afterblur":G=Nc;break;case"click":if(n.button===2)break t;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":G=to;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":G=Nm;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":G=Jm;break;case xo:case So:case To:G=Qm;break;case Co:G=Wm;break;case"scroll":case"scrollend":G=jm;break;case"wheel":G=Pm;break;case"copy":case"cut":case"paste":G=Ym;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":G=no;break;case"toggle":case"beforetoggle":G=tg}var ft=(e&4)!==0,Mt=!ft&&(t==="scroll"||t==="scrollend"),M=ft?Y!==null?Y+"Capture":null:Y;ft=[];for(var w=z,Q;w!==null;){var q=w;if(Q=q.stateNode,q=q.tag,q!==5&&q!==26&&q!==27||Q===null||M===null||(q=Hl(w,M),q!=null&&ft.push(oi(w,q,Q))),Mt)break;w=w.return}0<ft.length&&(Y=new G(Y,at,null,n,V),I.push({event:Y,listeners:ft}))}}if((e&7)===0){t:{if(Y=t==="mouseover"||t==="pointerover",G=t==="mouseout"||t==="pointerout",Y&&n!==Oc&&(at=n.relatedTarget||n.fromElement)&&(Ya(at)||at[za]))break t;if((G||Y)&&(Y=V.window===V?V:(Y=V.ownerDocument)?Y.defaultView||Y.parentWindow:window,G?(at=n.relatedTarget||n.toElement,G=z,at=at?Ya(at):null,at!==null&&(Mt=o(at),ft=at.tag,at!==Mt||ft!==5&&ft!==27&&ft!==6)&&(at=null)):(G=null,at=z),G!==at)){if(ft=to,q="onMouseLeave",M="onMouseEnter",w="mouse",(t==="pointerout"||t==="pointerover")&&(ft=no,q="onPointerLeave",M="onPointerEnter",w="pointer"),Mt=G==null?Y:jl(G),Q=at==null?Y:jl(at),Y=new ft(q,w+"leave",G,n,V),Y.target=Mt,Y.relatedTarget=Q,q=null,Ya(V)===z&&(ft=new ft(M,w+"enter",at,n,V),ft.target=Q,ft.relatedTarget=Mt,q=ft),Mt=q,G&&at)e:{for(ft=$g,M=G,w=at,Q=0,q=M;q;q=ft(q))Q++;q=0;for(var ut=w;ut;ut=ft(ut))q++;for(;0<Q-q;)M=ft(M),Q--;for(;0<q-Q;)w=ft(w),q--;for(;Q--;){if(M===w||w!==null&&M===w.alternate){ft=M;break e}M=ft(M),w=ft(w)}ft=null}else ft=null;G!==null&&Jd(I,Y,G,ft,!1),at!==null&&Mt!==null&&Jd(I,Mt,at,ft,!0)}}t:{if(Y=z?jl(z):window,G=Y.nodeName&&Y.nodeName.toLowerCase(),G==="select"||G==="input"&&Y.type==="file")var St=ro;else if(so(Y))if(oo)St=rg;else{St=sg;var lt=cg}else G=Y.nodeName,!G||G.toLowerCase()!=="input"||Y.type!=="checkbox"&&Y.type!=="radio"?z&&Cc(z.elementType)&&(St=ro):St=fg;if(St&&(St=St(t,z))){fo(I,St,n,V);break t}lt&<(t,Y,z),t==="focusout"&&z&&Y.type==="number"&&z.memoizedProps.value!=null&&Tc(Y,"number",Y.value)}switch(lt=z?jl(z):window,t){case"focusin":(so(lt)||lt.contentEditable==="true")&&(ka=lt,Lc=z,Gl=null);break;case"focusout":Gl=Lc=ka=null;break;case"mousedown":Gc=!0;break;case"contextmenu":case"mouseup":case"dragend":Gc=!1,po(I,n,V);break;case"selectionchange":if(dg)break;case"keydown":case"keyup":po(I,n,V)}var At;if(Uc)t:{switch(t){case"compositionstart":var pt="onCompositionStart";break t;case"compositionend":pt="onCompositionEnd";break t;case"compositionupdate":pt="onCompositionUpdate";break t}pt=void 0}else Ka?uo(t,n)&&(pt="onCompositionEnd"):t==="keydown"&&n.keyCode===229&&(pt="onCompositionStart");pt&&(ao&&n.locale!=="ko"&&(Ka||pt!=="onCompositionStart"?pt==="onCompositionEnd"&&Ka&&(At=Pr()):(jn=V,Mc="value"in jn?jn.value:jn.textContent,Ka=!0)),lt=zu(z,pt),0<lt.length&&(pt=new eo(pt,t,null,n,V),I.push({event:pt,listeners:lt}),At?pt.data=At:(At=co(n),At!==null&&(pt.data=At)))),(At=ng?ag(t,n):lg(t,n))&&(pt=zu(z,"onBeforeInput"),0<pt.length&&(lt=new eo("onBeforeInput","beforeinput",null,n,V),I.push({event:lt,listeners:pt}),lt.data=At)),Fg(I,t,z,n,V)}Kd(I,e)})}function oi(t,e,n){return{instance:t,listener:e,currentTarget:n}}function zu(t,e){for(var n=e+"Capture",a=[];t!==null;){var i=t,s=i.stateNode;if(i=i.tag,i!==5&&i!==26&&i!==27||s===null||(i=Hl(t,n),i!=null&&a.unshift(oi(t,i,s)),i=Hl(t,e),i!=null&&a.push(oi(t,i,s))),t.tag===3)return a;t=t.return}return[]}function $g(t){if(t===null)return null;do t=t.return;while(t&&t.tag!==5&&t.tag!==27);return t||null}function Jd(t,e,n,a,i){for(var s=e._reactName,d=[];n!==null&&n!==a;){var g=n,T=g.alternate,z=g.stateNode;if(g=g.tag,T!==null&&T===a)break;g!==5&&g!==26&&g!==27||z===null||(T=z,i?(z=Hl(n,s),z!=null&&d.unshift(oi(n,z,T))):i||(z=Hl(n,s),z!=null&&d.push(oi(n,z,T)))),n=n.return}d.length!==0&&t.push({event:e,listeners:d})}var tA=/\r\n?/g,eA=/\u0000|\uFFFD/g;function Fd(t){return(typeof t=="string"?t:""+t).replace(tA,` -`).replace(eA,"")}function Wd(t,e){return e=Fd(e),Fd(t)===e}function Dt(t,e,n,a,i,s){switch(n){case"children":typeof a=="string"?e==="body"||e==="textarea"&&a===""||Za(t,a):(typeof a=="number"||typeof a=="bigint")&&e!=="body"&&Za(t,""+a);break;case"className":Xi(t,"class",a);break;case"tabIndex":Xi(t,"tabindex",a);break;case"dir":case"role":case"viewBox":case"width":case"height":Xi(t,n,a);break;case"style":Fr(t,a,s);break;case"data":if(e!=="object"){Xi(t,"data",a);break}case"src":case"href":if(a===""&&(e!=="a"||n!=="href")){t.removeAttribute(n);break}if(a==null||typeof a=="function"||typeof a=="symbol"||typeof a=="boolean"){t.removeAttribute(n);break}a=Zi(""+a),t.setAttribute(n,a);break;case"action":case"formAction":if(typeof a=="function"){t.setAttribute(n,"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')");break}else typeof s=="function"&&(n==="formAction"?(e!=="input"&&Dt(t,e,"name",i.name,i,null),Dt(t,e,"formEncType",i.formEncType,i,null),Dt(t,e,"formMethod",i.formMethod,i,null),Dt(t,e,"formTarget",i.formTarget,i,null)):(Dt(t,e,"encType",i.encType,i,null),Dt(t,e,"method",i.method,i,null),Dt(t,e,"target",i.target,i,null)));if(a==null||typeof a=="symbol"||typeof a=="boolean"){t.removeAttribute(n);break}a=Zi(""+a),t.setAttribute(n,a);break;case"onClick":a!=null&&(t.onclick=tn);break;case"onScroll":a!=null&&yt("scroll",t);break;case"onScrollEnd":a!=null&&yt("scrollend",t);break;case"dangerouslySetInnerHTML":if(a!=null){if(typeof a!="object"||!("__html"in a))throw Error(f(61));if(n=a.__html,n!=null){if(i.children!=null)throw Error(f(60));t.innerHTML=n}}break;case"multiple":t.multiple=a&&typeof a!="function"&&typeof a!="symbol";break;case"muted":t.muted=a&&typeof a!="function"&&typeof a!="symbol";break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":break;case"autoFocus":break;case"xlinkHref":if(a==null||typeof a=="function"||typeof a=="boolean"||typeof a=="symbol"){t.removeAttribute("xlink:href");break}n=Zi(""+a),t.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",n);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":a!=null&&typeof a!="function"&&typeof a!="symbol"?t.setAttribute(n,""+a):t.removeAttribute(n);break;case"inert":case"allowFullScreen":case"async":case"autoPlay":case"controls":case"default":case"defer":case"disabled":case"disablePictureInPicture":case"disableRemotePlayback":case"formNoValidate":case"hidden":case"loop":case"noModule":case"noValidate":case"open":case"playsInline":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"itemScope":a&&typeof a!="function"&&typeof a!="symbol"?t.setAttribute(n,""):t.removeAttribute(n);break;case"capture":case"download":a===!0?t.setAttribute(n,""):a!==!1&&a!=null&&typeof a!="function"&&typeof a!="symbol"?t.setAttribute(n,a):t.removeAttribute(n);break;case"cols":case"rows":case"size":case"span":a!=null&&typeof a!="function"&&typeof a!="symbol"&&!isNaN(a)&&1<=a?t.setAttribute(n,a):t.removeAttribute(n);break;case"rowSpan":case"start":a==null||typeof a=="function"||typeof a=="symbol"||isNaN(a)?t.removeAttribute(n):t.setAttribute(n,a);break;case"popover":yt("beforetoggle",t),yt("toggle",t),Gi(t,"popover",a);break;case"xlinkActuate":$e(t,"http://www.w3.org/1999/xlink","xlink:actuate",a);break;case"xlinkArcrole":$e(t,"http://www.w3.org/1999/xlink","xlink:arcrole",a);break;case"xlinkRole":$e(t,"http://www.w3.org/1999/xlink","xlink:role",a);break;case"xlinkShow":$e(t,"http://www.w3.org/1999/xlink","xlink:show",a);break;case"xlinkTitle":$e(t,"http://www.w3.org/1999/xlink","xlink:title",a);break;case"xlinkType":$e(t,"http://www.w3.org/1999/xlink","xlink:type",a);break;case"xmlBase":$e(t,"http://www.w3.org/XML/1998/namespace","xml:base",a);break;case"xmlLang":$e(t,"http://www.w3.org/XML/1998/namespace","xml:lang",a);break;case"xmlSpace":$e(t,"http://www.w3.org/XML/1998/namespace","xml:space",a);break;case"is":Gi(t,"is",a);break;case"innerText":case"textContent":break;default:(!(2<n.length)||n[0]!=="o"&&n[0]!=="O"||n[1]!=="n"&&n[1]!=="N")&&(n=Dm.get(n)||n,Gi(t,n,a))}}function df(t,e,n,a,i,s){switch(n){case"style":Fr(t,a,s);break;case"dangerouslySetInnerHTML":if(a!=null){if(typeof a!="object"||!("__html"in a))throw Error(f(61));if(n=a.__html,n!=null){if(i.children!=null)throw Error(f(60));t.innerHTML=n}}break;case"children":typeof a=="string"?Za(t,a):(typeof a=="number"||typeof a=="bigint")&&Za(t,""+a);break;case"onScroll":a!=null&&yt("scroll",t);break;case"onScrollEnd":a!=null&&yt("scrollend",t);break;case"onClick":a!=null&&(t.onclick=tn);break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"innerHTML":case"ref":break;case"innerText":case"textContent":break;default:if(!Gr.hasOwnProperty(n))t:{if(n[0]==="o"&&n[1]==="n"&&(i=n.endsWith("Capture"),e=n.slice(2,i?n.length-7:void 0),s=t[oe]||null,s=s!=null?s[n]:null,typeof s=="function"&&t.removeEventListener(e,s,i),typeof a=="function")){typeof s!="function"&&s!==null&&(n in t?t[n]=null:t.hasAttribute(n)&&t.removeAttribute(n)),t.addEventListener(e,a,i);break t}n in t?t[n]=a:a===!0?t.setAttribute(n,""):Gi(t,n,a)}}}function le(t,e,n){switch(e){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"img":yt("error",t),yt("load",t);var a=!1,i=!1,s;for(s in n)if(n.hasOwnProperty(s)){var d=n[s];if(d!=null)switch(s){case"src":a=!0;break;case"srcSet":i=!0;break;case"children":case"dangerouslySetInnerHTML":throw Error(f(137,e));default:Dt(t,e,s,d,n,null)}}i&&Dt(t,e,"srcSet",n.srcSet,n,null),a&&Dt(t,e,"src",n.src,n,null);return;case"input":yt("invalid",t);var g=s=d=i=null,T=null,z=null;for(a in n)if(n.hasOwnProperty(a)){var V=n[a];if(V!=null)switch(a){case"name":i=V;break;case"type":d=V;break;case"checked":T=V;break;case"defaultChecked":z=V;break;case"value":s=V;break;case"defaultValue":g=V;break;case"children":case"dangerouslySetInnerHTML":if(V!=null)throw Error(f(137,e));break;default:Dt(t,e,a,V,n,null)}}Ir(t,s,g,T,z,d,i,!1);return;case"select":yt("invalid",t),a=d=s=null;for(i in n)if(n.hasOwnProperty(i)&&(g=n[i],g!=null))switch(i){case"value":s=g;break;case"defaultValue":d=g;break;case"multiple":a=g;default:Dt(t,e,i,g,n,null)}e=s,n=d,t.multiple=!!a,e!=null?Va(t,!!a,e,!1):n!=null&&Va(t,!!a,n,!0);return;case"textarea":yt("invalid",t),s=i=a=null;for(d in n)if(n.hasOwnProperty(d)&&(g=n[d],g!=null))switch(d){case"value":a=g;break;case"defaultValue":i=g;break;case"children":s=g;break;case"dangerouslySetInnerHTML":if(g!=null)throw Error(f(91));break;default:Dt(t,e,d,g,n,null)}kr(t,a,i,s);return;case"option":for(T in n)if(n.hasOwnProperty(T)&&(a=n[T],a!=null))switch(T){case"selected":t.selected=a&&typeof a!="function"&&typeof a!="symbol";break;default:Dt(t,e,T,a,n,null)}return;case"dialog":yt("beforetoggle",t),yt("toggle",t),yt("cancel",t),yt("close",t);break;case"iframe":case"object":yt("load",t);break;case"video":case"audio":for(a=0;a<ri.length;a++)yt(ri[a],t);break;case"image":yt("error",t),yt("load",t);break;case"details":yt("toggle",t);break;case"embed":case"source":case"link":yt("error",t),yt("load",t);case"area":case"base":case"br":case"col":case"hr":case"keygen":case"meta":case"param":case"track":case"wbr":case"menuitem":for(z in n)if(n.hasOwnProperty(z)&&(a=n[z],a!=null))switch(z){case"children":case"dangerouslySetInnerHTML":throw Error(f(137,e));default:Dt(t,e,z,a,n,null)}return;default:if(Cc(e)){for(V in n)n.hasOwnProperty(V)&&(a=n[V],a!==void 0&&df(t,e,V,a,n,void 0));return}}for(g in n)n.hasOwnProperty(g)&&(a=n[g],a!=null&&Dt(t,e,g,a,n,null))}function nA(t,e,n,a){switch(e){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"input":var i=null,s=null,d=null,g=null,T=null,z=null,V=null;for(G in n){var I=n[G];if(n.hasOwnProperty(G)&&I!=null)switch(G){case"checked":break;case"value":break;case"defaultValue":T=I;default:a.hasOwnProperty(G)||Dt(t,e,G,null,a,I)}}for(var Y in a){var G=a[Y];if(I=n[Y],a.hasOwnProperty(Y)&&(G!=null||I!=null))switch(Y){case"type":s=G;break;case"name":i=G;break;case"checked":z=G;break;case"defaultChecked":V=G;break;case"value":d=G;break;case"defaultValue":g=G;break;case"children":case"dangerouslySetInnerHTML":if(G!=null)throw Error(f(137,e));break;default:G!==I&&Dt(t,e,Y,G,a,I)}}Sc(t,d,g,T,z,V,s,i);return;case"select":G=d=g=Y=null;for(s in n)if(T=n[s],n.hasOwnProperty(s)&&T!=null)switch(s){case"value":break;case"multiple":G=T;default:a.hasOwnProperty(s)||Dt(t,e,s,null,a,T)}for(i in a)if(s=a[i],T=n[i],a.hasOwnProperty(i)&&(s!=null||T!=null))switch(i){case"value":Y=s;break;case"defaultValue":g=s;break;case"multiple":d=s;default:s!==T&&Dt(t,e,i,s,a,T)}e=g,n=d,a=G,Y!=null?Va(t,!!n,Y,!1):!!a!=!!n&&(e!=null?Va(t,!!n,e,!0):Va(t,!!n,n?[]:"",!1));return;case"textarea":G=Y=null;for(g in n)if(i=n[g],n.hasOwnProperty(g)&&i!=null&&!a.hasOwnProperty(g))switch(g){case"value":break;case"children":break;default:Dt(t,e,g,null,a,i)}for(d in a)if(i=a[d],s=n[d],a.hasOwnProperty(d)&&(i!=null||s!=null))switch(d){case"value":Y=i;break;case"defaultValue":G=i;break;case"children":break;case"dangerouslySetInnerHTML":if(i!=null)throw Error(f(91));break;default:i!==s&&Dt(t,e,d,i,a,s)}Kr(t,Y,G);return;case"option":for(var at in n)if(Y=n[at],n.hasOwnProperty(at)&&Y!=null&&!a.hasOwnProperty(at))switch(at){case"selected":t.selected=!1;break;default:Dt(t,e,at,null,a,Y)}for(T in a)if(Y=a[T],G=n[T],a.hasOwnProperty(T)&&Y!==G&&(Y!=null||G!=null))switch(T){case"selected":t.selected=Y&&typeof Y!="function"&&typeof Y!="symbol";break;default:Dt(t,e,T,Y,a,G)}return;case"img":case"link":case"area":case"base":case"br":case"col":case"embed":case"hr":case"keygen":case"meta":case"param":case"source":case"track":case"wbr":case"menuitem":for(var ft in n)Y=n[ft],n.hasOwnProperty(ft)&&Y!=null&&!a.hasOwnProperty(ft)&&Dt(t,e,ft,null,a,Y);for(z in a)if(Y=a[z],G=n[z],a.hasOwnProperty(z)&&Y!==G&&(Y!=null||G!=null))switch(z){case"children":case"dangerouslySetInnerHTML":if(Y!=null)throw Error(f(137,e));break;default:Dt(t,e,z,Y,a,G)}return;default:if(Cc(e)){for(var Mt in n)Y=n[Mt],n.hasOwnProperty(Mt)&&Y!==void 0&&!a.hasOwnProperty(Mt)&&df(t,e,Mt,void 0,a,Y);for(V in a)Y=a[V],G=n[V],!a.hasOwnProperty(V)||Y===G||Y===void 0&&G===void 0||df(t,e,V,Y,a,G);return}}for(var M in n)Y=n[M],n.hasOwnProperty(M)&&Y!=null&&!a.hasOwnProperty(M)&&Dt(t,e,M,null,a,Y);for(I in a)Y=a[I],G=n[I],!a.hasOwnProperty(I)||Y===G||Y==null&&G==null||Dt(t,e,I,Y,a,G)}function _d(t){switch(t){case"css":case"script":case"font":case"img":case"image":case"input":case"link":return!0;default:return!1}}function aA(){if(typeof performance.getEntriesByType=="function"){for(var t=0,e=0,n=performance.getEntriesByType("resource"),a=0;a<n.length;a++){var i=n[a],s=i.transferSize,d=i.initiatorType,g=i.duration;if(s&&g&&_d(d)){for(d=0,g=i.responseEnd,a+=1;a<n.length;a++){var T=n[a],z=T.startTime;if(z>g)break;var V=T.transferSize,I=T.initiatorType;V&&_d(I)&&(T=T.responseEnd,d+=V*(T<g?1:(g-z)/(T-z)))}if(--a,e+=8*(s+d)/(i.duration/1e3),t++,10<t)break}}if(0<t)return e/t/1e6}return navigator.connection&&(t=navigator.connection.downlink,typeof t=="number")?t:5}var hf=null,mf=null;function Yu(t){return t.nodeType===9?t:t.ownerDocument}function Pd(t){switch(t){case"http://www.w3.org/2000/svg":return 1;case"http://www.w3.org/1998/Math/MathML":return 2;default:return 0}}function $d(t,e){if(t===0)switch(e){case"svg":return 1;case"math":return 2;default:return 0}return t===1&&e==="foreignObject"?0:t}function gf(t,e){return t==="textarea"||t==="noscript"||typeof e.children=="string"||typeof e.children=="number"||typeof e.children=="bigint"||typeof e.dangerouslySetInnerHTML=="object"&&e.dangerouslySetInnerHTML!==null&&e.dangerouslySetInnerHTML.__html!=null}var Af=null;function lA(){var t=window.event;return t&&t.type==="popstate"?t===Af?!1:(Af=t,!0):(Af=null,!1)}var t1=typeof setTimeout=="function"?setTimeout:void 0,iA=typeof clearTimeout=="function"?clearTimeout:void 0,e1=typeof Promise=="function"?Promise:void 0,uA=typeof queueMicrotask=="function"?queueMicrotask:typeof e1<"u"?function(t){return e1.resolve(null).then(t).catch(cA)}:t1;function cA(t){setTimeout(function(){throw t})}function Jn(t){return t==="head"}function n1(t,e){var n=e,a=0;do{var i=n.nextSibling;if(t.removeChild(n),i&&i.nodeType===8)if(n=i.data,n==="/$"||n==="/&"){if(a===0){t.removeChild(i),pl(e);return}a--}else if(n==="$"||n==="$?"||n==="$~"||n==="$!"||n==="&")a++;else if(n==="html")di(t.ownerDocument.documentElement);else if(n==="head"){n=t.ownerDocument.head,di(n);for(var s=n.firstChild;s;){var d=s.nextSibling,g=s.nodeName;s[Ml]||g==="SCRIPT"||g==="STYLE"||g==="LINK"&&s.rel.toLowerCase()==="stylesheet"||n.removeChild(s),s=d}}else n==="body"&&di(t.ownerDocument.body);n=i}while(n);pl(e)}function a1(t,e){var n=t;t=0;do{var a=n.nextSibling;if(n.nodeType===1?e?(n._stashedDisplay=n.style.display,n.style.display="none"):(n.style.display=n._stashedDisplay||"",n.getAttribute("style")===""&&n.removeAttribute("style")):n.nodeType===3&&(e?(n._stashedText=n.nodeValue,n.nodeValue=""):n.nodeValue=n._stashedText||""),a&&a.nodeType===8)if(n=a.data,n==="/$"){if(t===0)break;t--}else n!=="$"&&n!=="$?"&&n!=="$~"&&n!=="$!"||t++;n=a}while(n)}function vf(t){var e=t.firstChild;for(e&&e.nodeType===10&&(e=e.nextSibling);e;){var n=e;switch(e=e.nextSibling,n.nodeName){case"HTML":case"HEAD":case"BODY":vf(n),bc(n);continue;case"SCRIPT":case"STYLE":continue;case"LINK":if(n.rel.toLowerCase()==="stylesheet")continue}t.removeChild(n)}}function sA(t,e,n,a){for(;t.nodeType===1;){var i=n;if(t.nodeName.toLowerCase()!==e.toLowerCase()){if(!a&&(t.nodeName!=="INPUT"||t.type!=="hidden"))break}else if(a){if(!t[Ml])switch(e){case"meta":if(!t.hasAttribute("itemprop"))break;return t;case"link":if(s=t.getAttribute("rel"),s==="stylesheet"&&t.hasAttribute("data-precedence"))break;if(s!==i.rel||t.getAttribute("href")!==(i.href==null||i.href===""?null:i.href)||t.getAttribute("crossorigin")!==(i.crossOrigin==null?null:i.crossOrigin)||t.getAttribute("title")!==(i.title==null?null:i.title))break;return t;case"style":if(t.hasAttribute("data-precedence"))break;return t;case"script":if(s=t.getAttribute("src"),(s!==(i.src==null?null:i.src)||t.getAttribute("type")!==(i.type==null?null:i.type)||t.getAttribute("crossorigin")!==(i.crossOrigin==null?null:i.crossOrigin))&&s&&t.hasAttribute("async")&&!t.hasAttribute("itemprop"))break;return t;default:return t}}else if(e==="input"&&t.type==="hidden"){var s=i.name==null?null:""+i.name;if(i.type==="hidden"&&t.getAttribute("name")===s)return t}else return t;if(t=Le(t.nextSibling),t===null)break}return null}function fA(t,e,n){if(e==="")return null;for(;t.nodeType!==3;)if((t.nodeType!==1||t.nodeName!=="INPUT"||t.type!=="hidden")&&!n||(t=Le(t.nextSibling),t===null))return null;return t}function l1(t,e){for(;t.nodeType!==8;)if((t.nodeType!==1||t.nodeName!=="INPUT"||t.type!=="hidden")&&!e||(t=Le(t.nextSibling),t===null))return null;return t}function yf(t){return t.data==="$?"||t.data==="$~"}function Ef(t){return t.data==="$!"||t.data==="$?"&&t.ownerDocument.readyState!=="loading"}function rA(t,e){var n=t.ownerDocument;if(t.data==="$~")t._reactRetry=e;else if(t.data!=="$?"||n.readyState!=="loading")e();else{var a=function(){e(),n.removeEventListener("DOMContentLoaded",a)};n.addEventListener("DOMContentLoaded",a),t._reactRetry=a}}function Le(t){for(;t!=null;t=t.nextSibling){var e=t.nodeType;if(e===1||e===3)break;if(e===8){if(e=t.data,e==="$"||e==="$!"||e==="$?"||e==="$~"||e==="&"||e==="F!"||e==="F")break;if(e==="/$"||e==="/&")return null}}return t}var pf=null;function i1(t){t=t.nextSibling;for(var e=0;t;){if(t.nodeType===8){var n=t.data;if(n==="/$"||n==="/&"){if(e===0)return Le(t.nextSibling);e--}else n!=="$"&&n!=="$!"&&n!=="$?"&&n!=="$~"&&n!=="&"||e++}t=t.nextSibling}return null}function u1(t){t=t.previousSibling;for(var e=0;t;){if(t.nodeType===8){var n=t.data;if(n==="$"||n==="$!"||n==="$?"||n==="$~"||n==="&"){if(e===0)return t;e--}else n!=="/$"&&n!=="/&"||e++}t=t.previousSibling}return null}function c1(t,e,n){switch(e=Yu(n),t){case"html":if(t=e.documentElement,!t)throw Error(f(452));return t;case"head":if(t=e.head,!t)throw Error(f(453));return t;case"body":if(t=e.body,!t)throw Error(f(454));return t;default:throw Error(f(451))}}function di(t){for(var e=t.attributes;e.length;)t.removeAttributeNode(e[0]);bc(t)}var Ge=new Map,s1=new Set;function Lu(t){return typeof t.getRootNode=="function"?t.getRootNode():t.nodeType===9?t:t.ownerDocument}var vn=_.d;_.d={f:oA,r:dA,D:hA,C:mA,L:gA,m:AA,X:yA,S:vA,M:EA};function oA(){var t=vn.f(),e=Mu();return t||e}function dA(t){var e=La(t);e!==null&&e.tag===5&&e.type==="form"?C0(e):vn.r(t)}var vl=typeof document>"u"?null:document;function f1(t,e,n){var a=vl;if(a&&typeof e=="string"&&e){var i=He(e);i='link[rel="'+t+'"][href="'+i+'"]',typeof n=="string"&&(i+='[crossorigin="'+n+'"]'),s1.has(i)||(s1.add(i),t={rel:t,crossOrigin:n,href:e},a.querySelector(i)===null&&(e=a.createElement("link"),le(e,"link",t),Wt(e),a.head.appendChild(e)))}}function hA(t){vn.D(t),f1("dns-prefetch",t,null)}function mA(t,e){vn.C(t,e),f1("preconnect",t,e)}function gA(t,e,n){vn.L(t,e,n);var a=vl;if(a&&t&&e){var i='link[rel="preload"][as="'+He(e)+'"]';e==="image"&&n&&n.imageSrcSet?(i+='[imagesrcset="'+He(n.imageSrcSet)+'"]',typeof n.imageSizes=="string"&&(i+='[imagesizes="'+He(n.imageSizes)+'"]')):i+='[href="'+He(t)+'"]';var s=i;switch(e){case"style":s=yl(t);break;case"script":s=El(t)}Ge.has(s)||(t=S({rel:"preload",href:e==="image"&&n&&n.imageSrcSet?void 0:t,as:e},n),Ge.set(s,t),a.querySelector(i)!==null||e==="style"&&a.querySelector(hi(s))||e==="script"&&a.querySelector(mi(s))||(e=a.createElement("link"),le(e,"link",t),Wt(e),a.head.appendChild(e)))}}function AA(t,e){vn.m(t,e);var n=vl;if(n&&t){var a=e&&typeof e.as=="string"?e.as:"script",i='link[rel="modulepreload"][as="'+He(a)+'"][href="'+He(t)+'"]',s=i;switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":s=El(t)}if(!Ge.has(s)&&(t=S({rel:"modulepreload",href:t},e),Ge.set(s,t),n.querySelector(i)===null)){switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(n.querySelector(mi(s)))return}a=n.createElement("link"),le(a,"link",t),Wt(a),n.head.appendChild(a)}}}function vA(t,e,n){vn.S(t,e,n);var a=vl;if(a&&t){var i=Ga(a).hoistableStyles,s=yl(t);e=e||"default";var d=i.get(s);if(!d){var g={loading:0,preload:null};if(d=a.querySelector(hi(s)))g.loading=5;else{t=S({rel:"stylesheet",href:t,"data-precedence":e},n),(n=Ge.get(s))&&bf(t,n);var T=d=a.createElement("link");Wt(T),le(T,"link",t),T._p=new Promise(function(z,V){T.onload=z,T.onerror=V}),T.addEventListener("load",function(){g.loading|=1}),T.addEventListener("error",function(){g.loading|=2}),g.loading|=4,Gu(d,e,a)}d={type:"stylesheet",instance:d,count:1,state:g},i.set(s,d)}}}function yA(t,e){vn.X(t,e);var n=vl;if(n&&t){var a=Ga(n).hoistableScripts,i=El(t),s=a.get(i);s||(s=n.querySelector(mi(i)),s||(t=S({src:t,async:!0},e),(e=Ge.get(i))&&xf(t,e),s=n.createElement("script"),Wt(s),le(s,"link",t),n.head.appendChild(s)),s={type:"script",instance:s,count:1,state:null},a.set(i,s))}}function EA(t,e){vn.M(t,e);var n=vl;if(n&&t){var a=Ga(n).hoistableScripts,i=El(t),s=a.get(i);s||(s=n.querySelector(mi(i)),s||(t=S({src:t,async:!0,type:"module"},e),(e=Ge.get(i))&&xf(t,e),s=n.createElement("script"),Wt(s),le(s,"link",t),n.head.appendChild(s)),s={type:"script",instance:s,count:1,state:null},a.set(i,s))}}function r1(t,e,n,a){var i=(i=ot.current)?Lu(i):null;if(!i)throw Error(f(446));switch(t){case"meta":case"title":return null;case"style":return typeof n.precedence=="string"&&typeof n.href=="string"?(e=yl(n.href),n=Ga(i).hoistableStyles,a=n.get(e),a||(a={type:"style",instance:null,count:0,state:null},n.set(e,a)),a):{type:"void",instance:null,count:0,state:null};case"link":if(n.rel==="stylesheet"&&typeof n.href=="string"&&typeof n.precedence=="string"){t=yl(n.href);var s=Ga(i).hoistableStyles,d=s.get(t);if(d||(i=i.ownerDocument||i,d={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},s.set(t,d),(s=i.querySelector(hi(t)))&&!s._p&&(d.instance=s,d.state.loading=5),Ge.has(t)||(n={rel:"preload",as:"style",href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},Ge.set(t,n),s||pA(i,t,n,d.state))),e&&a===null)throw Error(f(528,""));return d}if(e&&a!==null)throw Error(f(529,""));return null;case"script":return e=n.async,n=n.src,typeof n=="string"&&e&&typeof e!="function"&&typeof e!="symbol"?(e=El(n),n=Ga(i).hoistableScripts,a=n.get(e),a||(a={type:"script",instance:null,count:0,state:null},n.set(e,a)),a):{type:"void",instance:null,count:0,state:null};default:throw Error(f(444,t))}}function yl(t){return'href="'+He(t)+'"'}function hi(t){return'link[rel="stylesheet"]['+t+"]"}function o1(t){return S({},t,{"data-precedence":t.precedence,precedence:null})}function pA(t,e,n,a){t.querySelector('link[rel="preload"][as="style"]['+e+"]")?a.loading=1:(e=t.createElement("link"),a.preload=e,e.addEventListener("load",function(){return a.loading|=1}),e.addEventListener("error",function(){return a.loading|=2}),le(e,"link",n),Wt(e),t.head.appendChild(e))}function El(t){return'[src="'+He(t)+'"]'}function mi(t){return"script[async]"+t}function d1(t,e,n){if(e.count++,e.instance===null)switch(e.type){case"style":var a=t.querySelector('style[data-href~="'+He(n.href)+'"]');if(a)return e.instance=a,Wt(a),a;var i=S({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return a=(t.ownerDocument||t).createElement("style"),Wt(a),le(a,"style",i),Gu(a,n.precedence,t),e.instance=a;case"stylesheet":i=yl(n.href);var s=t.querySelector(hi(i));if(s)return e.state.loading|=4,e.instance=s,Wt(s),s;a=o1(n),(i=Ge.get(i))&&bf(a,i),s=(t.ownerDocument||t).createElement("link"),Wt(s);var d=s;return d._p=new Promise(function(g,T){d.onload=g,d.onerror=T}),le(s,"link",a),e.state.loading|=4,Gu(s,n.precedence,t),e.instance=s;case"script":return s=El(n.src),(i=t.querySelector(mi(s)))?(e.instance=i,Wt(i),i):(a=n,(i=Ge.get(s))&&(a=S({},n),xf(a,i)),t=t.ownerDocument||t,i=t.createElement("script"),Wt(i),le(i,"link",a),t.head.appendChild(i),e.instance=i);case"void":return null;default:throw Error(f(443,e.type))}else e.type==="stylesheet"&&(e.state.loading&4)===0&&(a=e.instance,e.state.loading|=4,Gu(a,n.precedence,t));return e.instance}function Gu(t,e,n){for(var a=n.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),i=a.length?a[a.length-1]:null,s=i,d=0;d<a.length;d++){var g=a[d];if(g.dataset.precedence===e)s=g;else if(s!==i)break}s?s.parentNode.insertBefore(t,s.nextSibling):(e=n.nodeType===9?n.head:n,e.insertBefore(t,e.firstChild))}function bf(t,e){t.crossOrigin==null&&(t.crossOrigin=e.crossOrigin),t.referrerPolicy==null&&(t.referrerPolicy=e.referrerPolicy),t.title==null&&(t.title=e.title)}function xf(t,e){t.crossOrigin==null&&(t.crossOrigin=e.crossOrigin),t.referrerPolicy==null&&(t.referrerPolicy=e.referrerPolicy),t.integrity==null&&(t.integrity=e.integrity)}var Xu=null;function h1(t,e,n){if(Xu===null){var a=new Map,i=Xu=new Map;i.set(n,a)}else i=Xu,a=i.get(n),a||(a=new Map,i.set(n,a));if(a.has(t))return a;for(a.set(t,null),n=n.getElementsByTagName(t),i=0;i<n.length;i++){var s=n[i];if(!(s[Ml]||s[te]||t==="link"&&s.getAttribute("rel")==="stylesheet")&&s.namespaceURI!=="http://www.w3.org/2000/svg"){var d=s.getAttribute(e)||"";d=t+d;var g=a.get(d);g?g.push(s):a.set(d,[s])}}return a}function m1(t,e,n){t=t.ownerDocument||t,t.head.insertBefore(n,e==="title"?t.querySelector("head > title"):null)}function bA(t,e,n){if(n===1||e.itemProp!=null)return!1;switch(t){case"meta":case"title":return!0;case"style":if(typeof e.precedence!="string"||typeof e.href!="string"||e.href==="")break;return!0;case"link":if(typeof e.rel!="string"||typeof e.href!="string"||e.href===""||e.onLoad||e.onError)break;switch(e.rel){case"stylesheet":return t=e.disabled,typeof e.precedence=="string"&&t==null;default:return!0}case"script":if(e.async&&typeof e.async!="function"&&typeof e.async!="symbol"&&!e.onLoad&&!e.onError&&e.src&&typeof e.src=="string")return!0}return!1}function g1(t){return!(t.type==="stylesheet"&&(t.state.loading&3)===0)}function xA(t,e,n,a){if(n.type==="stylesheet"&&(typeof a.media!="string"||matchMedia(a.media).matches!==!1)&&(n.state.loading&4)===0){if(n.instance===null){var i=yl(a.href),s=e.querySelector(hi(i));if(s){e=s._p,e!==null&&typeof e=="object"&&typeof e.then=="function"&&(t.count++,t=Vu.bind(t),e.then(t,t)),n.state.loading|=4,n.instance=s,Wt(s);return}s=e.ownerDocument||e,a=o1(a),(i=Ge.get(i))&&bf(a,i),s=s.createElement("link"),Wt(s);var d=s;d._p=new Promise(function(g,T){d.onload=g,d.onerror=T}),le(s,"link",a),n.instance=s}t.stylesheets===null&&(t.stylesheets=new Map),t.stylesheets.set(n,e),(e=n.state.preload)&&(n.state.loading&3)===0&&(t.count++,n=Vu.bind(t),e.addEventListener("load",n),e.addEventListener("error",n))}}var Sf=0;function SA(t,e){return t.stylesheets&&t.count===0&&qu(t,t.stylesheets),0<t.count||0<t.imgCount?function(n){var a=setTimeout(function(){if(t.stylesheets&&qu(t,t.stylesheets),t.unsuspend){var s=t.unsuspend;t.unsuspend=null,s()}},6e4+e);0<t.imgBytes&&Sf===0&&(Sf=62500*aA());var i=setTimeout(function(){if(t.waitingForImages=!1,t.count===0&&(t.stylesheets&&qu(t,t.stylesheets),t.unsuspend)){var s=t.unsuspend;t.unsuspend=null,s()}},(t.imgBytes>Sf?50:800)+e);return t.unsuspend=n,function(){t.unsuspend=null,clearTimeout(a),clearTimeout(i)}}:null}function Vu(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)qu(this,this.stylesheets);else if(this.unsuspend){var t=this.unsuspend;this.unsuspend=null,t()}}}var Zu=null;function qu(t,e){t.stylesheets=null,t.unsuspend!==null&&(t.count++,Zu=new Map,e.forEach(TA,t),Zu=null,Vu.call(t))}function TA(t,e){if(!(e.state.loading&4)){var n=Zu.get(t);if(n)var a=n.get(null);else{n=new Map,Zu.set(t,n);for(var i=t.querySelectorAll("link[data-precedence],style[data-precedence]"),s=0;s<i.length;s++){var d=i[s];(d.nodeName==="LINK"||d.getAttribute("media")!=="not all")&&(n.set(d.dataset.precedence,d),a=d)}a&&n.set(null,a)}i=e.instance,d=i.getAttribute("data-precedence"),s=n.get(d)||a,s===a&&n.set(null,i),n.set(d,i),this.count++,a=Vu.bind(this),i.addEventListener("load",a),i.addEventListener("error",a),s?s.parentNode.insertBefore(i,s.nextSibling):(t=t.nodeType===9?t.head:t,t.insertBefore(i,t.firstChild)),e.state.loading|=4}}var gi={$$typeof:U,Provider:null,Consumer:null,_currentValue:$,_currentValue2:$,_threadCount:0};function CA(t,e,n,a,i,s,d,g,T){this.tag=1,this.containerInfo=t,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=vc(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=vc(0),this.hiddenUpdates=vc(null),this.identifierPrefix=a,this.onUncaughtError=i,this.onCaughtError=s,this.onRecoverableError=d,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=T,this.incompleteTransitions=new Map}function A1(t,e,n,a,i,s,d,g,T,z,V,I){return t=new CA(t,e,n,d,T,z,V,I,g),e=1,s===!0&&(e|=24),s=Te(3,null,null,e),t.current=s,s.stateNode=t,e=es(),e.refCount++,t.pooledCache=e,e.refCount++,s.memoizedState={element:a,isDehydrated:n,cache:e},is(s),t}function v1(t){return t?(t=Wa,t):Wa}function y1(t,e,n,a,i,s){i=v1(i),a.context===null?a.context=i:a.pendingContext=i,a=zn(e),a.payload={element:n},s=s===void 0?null:s,s!==null&&(a.callback=s),n=Yn(t,a,e),n!==null&&(ve(n,t,e),kl(n,t,e))}function E1(t,e){if(t=t.memoizedState,t!==null&&t.dehydrated!==null){var n=t.retryLane;t.retryLane=n!==0&&n<e?n:e}}function Tf(t,e){E1(t,e),(t=t.alternate)&&E1(t,e)}function p1(t){if(t.tag===13||t.tag===31){var e=Aa(t,67108864);e!==null&&ve(e,t,67108864),Tf(t,67108864)}}function b1(t){if(t.tag===13||t.tag===31){var e=De();e=yc(e);var n=Aa(t,e);n!==null&&ve(n,t,e),Tf(t,e)}}var Iu=!0;function OA(t,e,n,a){var i=H.T;H.T=null;var s=_.p;try{_.p=2,Cf(t,e,n,a)}finally{_.p=s,H.T=i}}function wA(t,e,n,a){var i=H.T;H.T=null;var s=_.p;try{_.p=8,Cf(t,e,n,a)}finally{_.p=s,H.T=i}}function Cf(t,e,n,a){if(Iu){var i=Of(a);if(i===null)of(t,e,a,Ku,n),S1(t,a);else if(DA(i,t,e,n,a))a.stopPropagation();else if(S1(t,a),e&4&&-1<RA.indexOf(t)){for(;i!==null;){var s=La(i);if(s!==null)switch(s.tag){case 3:if(s=s.stateNode,s.current.memoizedState.isDehydrated){var d=oa(s.pendingLanes);if(d!==0){var g=s;for(g.pendingLanes|=2,g.entangledLanes|=2;d;){var T=1<<31-xe(d);g.entanglements[1]|=T,d&=~T}_e(s),(Ct&6)===0&&(Ru=pe()+500,fi(0))}}break;case 31:case 13:g=Aa(s,2),g!==null&&ve(g,s,2),Mu(),Tf(s,2)}if(s=Of(a),s===null&&of(t,e,a,Ku,n),s===i)break;i=s}i!==null&&a.stopPropagation()}else of(t,e,a,null,n)}}function Of(t){return t=wc(t),wf(t)}var Ku=null;function wf(t){if(Ku=null,t=Ya(t),t!==null){var e=o(t);if(e===null)t=null;else{var n=e.tag;if(n===13){if(t=h(e),t!==null)return t;t=null}else if(n===31){if(t=v(e),t!==null)return t;t=null}else if(n===3){if(e.stateNode.current.memoizedState.isDehydrated)return e.tag===3?e.stateNode.containerInfo:null;t=null}else e!==t&&(t=null)}}return Ku=t,null}function x1(t){switch(t){case"beforetoggle":case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"toggle":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 2;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 8;case"message":switch(hm()){case Dr:return 2;case Mr:return 8;case Ui:case mm:return 32;case jr:return 268435456;default:return 32}default:return 32}}var Rf=!1,Fn=null,Wn=null,_n=null,Ai=new Map,vi=new Map,Pn=[],RA="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset".split(" ");function S1(t,e){switch(t){case"focusin":case"focusout":Fn=null;break;case"dragenter":case"dragleave":Wn=null;break;case"mouseover":case"mouseout":_n=null;break;case"pointerover":case"pointerout":Ai.delete(e.pointerId);break;case"gotpointercapture":case"lostpointercapture":vi.delete(e.pointerId)}}function yi(t,e,n,a,i,s){return t===null||t.nativeEvent!==s?(t={blockedOn:e,domEventName:n,eventSystemFlags:a,nativeEvent:s,targetContainers:[i]},e!==null&&(e=La(e),e!==null&&p1(e)),t):(t.eventSystemFlags|=a,e=t.targetContainers,i!==null&&e.indexOf(i)===-1&&e.push(i),t)}function DA(t,e,n,a,i){switch(e){case"focusin":return Fn=yi(Fn,t,e,n,a,i),!0;case"dragenter":return Wn=yi(Wn,t,e,n,a,i),!0;case"mouseover":return _n=yi(_n,t,e,n,a,i),!0;case"pointerover":var s=i.pointerId;return Ai.set(s,yi(Ai.get(s)||null,t,e,n,a,i)),!0;case"gotpointercapture":return s=i.pointerId,vi.set(s,yi(vi.get(s)||null,t,e,n,a,i)),!0}return!1}function T1(t){var e=Ya(t.target);if(e!==null){var n=o(e);if(n!==null){if(e=n.tag,e===13){if(e=h(n),e!==null){t.blockedOn=e,zr(t.priority,function(){b1(n)});return}}else if(e===31){if(e=v(n),e!==null){t.blockedOn=e,zr(t.priority,function(){b1(n)});return}}else if(e===3&&n.stateNode.current.memoizedState.isDehydrated){t.blockedOn=n.tag===3?n.stateNode.containerInfo:null;return}}}t.blockedOn=null}function ku(t){if(t.blockedOn!==null)return!1;for(var e=t.targetContainers;0<e.length;){var n=Of(t.nativeEvent);if(n===null){n=t.nativeEvent;var a=new n.constructor(n.type,n);Oc=a,n.target.dispatchEvent(a),Oc=null}else return e=La(n),e!==null&&p1(e),t.blockedOn=n,!1;e.shift()}return!0}function C1(t,e,n){ku(t)&&n.delete(e)}function MA(){Rf=!1,Fn!==null&&ku(Fn)&&(Fn=null),Wn!==null&&ku(Wn)&&(Wn=null),_n!==null&&ku(_n)&&(_n=null),Ai.forEach(C1),vi.forEach(C1)}function Ju(t,e){t.blockedOn===e&&(t.blockedOn=null,Rf||(Rf=!0,l.unstable_scheduleCallback(l.unstable_NormalPriority,MA)))}var Fu=null;function O1(t){Fu!==t&&(Fu=t,l.unstable_scheduleCallback(l.unstable_NormalPriority,function(){Fu===t&&(Fu=null);for(var e=0;e<t.length;e+=3){var n=t[e],a=t[e+1],i=t[e+2];if(typeof a!="function"){if(wf(a||n)===null)continue;break}var s=La(n);s!==null&&(t.splice(e,3),e-=3,Cs(s,{pending:!0,data:i,method:n.method,action:a},a,i))}}))}function pl(t){function e(T){return Ju(T,t)}Fn!==null&&Ju(Fn,t),Wn!==null&&Ju(Wn,t),_n!==null&&Ju(_n,t),Ai.forEach(e),vi.forEach(e);for(var n=0;n<Pn.length;n++){var a=Pn[n];a.blockedOn===t&&(a.blockedOn=null)}for(;0<Pn.length&&(n=Pn[0],n.blockedOn===null);)T1(n),n.blockedOn===null&&Pn.shift();if(n=(t.ownerDocument||t).$$reactFormReplay,n!=null)for(a=0;a<n.length;a+=3){var i=n[a],s=n[a+1],d=i[oe]||null;if(typeof s=="function")d||O1(n);else if(d){var g=null;if(s&&s.hasAttribute("formAction")){if(i=s,d=s[oe]||null)g=d.formAction;else if(wf(i)!==null)continue}else g=d.action;typeof g=="function"?n[a+1]=g:(n.splice(a,3),a-=3),O1(n)}}}function w1(){function t(s){s.canIntercept&&s.info==="react-transition"&&s.intercept({handler:function(){return new Promise(function(d){return i=d})},focusReset:"manual",scroll:"manual"})}function e(){i!==null&&(i(),i=null),a||setTimeout(n,20)}function n(){if(!a&&!navigation.transition){var s=navigation.currentEntry;s&&s.url!=null&&navigation.navigate(s.url,{state:s.getState(),info:"react-transition",history:"replace"})}}if(typeof navigation=="object"){var a=!1,i=null;return navigation.addEventListener("navigate",t),navigation.addEventListener("navigatesuccess",e),navigation.addEventListener("navigateerror",e),setTimeout(n,100),function(){a=!0,navigation.removeEventListener("navigate",t),navigation.removeEventListener("navigatesuccess",e),navigation.removeEventListener("navigateerror",e),i!==null&&(i(),i=null)}}}function Df(t){this._internalRoot=t}Wu.prototype.render=Df.prototype.render=function(t){var e=this._internalRoot;if(e===null)throw Error(f(409));var n=e.current,a=De();y1(n,a,t,e,null,null)},Wu.prototype.unmount=Df.prototype.unmount=function(){var t=this._internalRoot;if(t!==null){this._internalRoot=null;var e=t.containerInfo;y1(t.current,2,null,t,null,null),Mu(),e[za]=null}};function Wu(t){this._internalRoot=t}Wu.prototype.unstable_scheduleHydration=function(t){if(t){var e=Qr();t={blockedOn:null,target:t,priority:e};for(var n=0;n<Pn.length&&e!==0&&e<Pn[n].priority;n++);Pn.splice(n,0,t),n===0&&T1(t)}};var R1=u.version;if(R1!=="19.2.1")throw Error(f(527,R1,"19.2.1"));_.findDOMNode=function(t){var e=t._reactInternals;if(e===void 0)throw typeof t.render=="function"?Error(f(188)):(t=Object.keys(t).join(","),Error(f(268,t)));return t=A(e),t=t!==null?E(t):null,t=t===null?null:t.stateNode,t};var jA={bundleType:0,version:"19.2.1",rendererPackageName:"react-dom",currentDispatcherRef:H,reconcilerVersion:"19.2.1"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var _u=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!_u.isDisabled&&_u.supportsFiber)try{wl=_u.inject(jA),be=_u}catch{}}return xi.createRoot=function(t,e){if(!r(t))throw Error(f(299));var n=!1,a="",i=U0,s=Q0,d=z0;return e!=null&&(e.unstable_strictMode===!0&&(n=!0),e.identifierPrefix!==void 0&&(a=e.identifierPrefix),e.onUncaughtError!==void 0&&(i=e.onUncaughtError),e.onCaughtError!==void 0&&(s=e.onCaughtError),e.onRecoverableError!==void 0&&(d=e.onRecoverableError)),e=A1(t,1,!1,null,null,n,a,null,i,s,d,w1),t[za]=e.current,rf(t),new Df(e)},xi.hydrateRoot=function(t,e,n){if(!r(t))throw Error(f(299));var a=!1,i="",s=U0,d=Q0,g=z0,T=null;return n!=null&&(n.unstable_strictMode===!0&&(a=!0),n.identifierPrefix!==void 0&&(i=n.identifierPrefix),n.onUncaughtError!==void 0&&(s=n.onUncaughtError),n.onCaughtError!==void 0&&(d=n.onCaughtError),n.onRecoverableError!==void 0&&(g=n.onRecoverableError),n.formState!==void 0&&(T=n.formState)),e=A1(t,1,!0,e,n??null,a,i,T,s,d,g,w1),e.context=v1(null),n=e.current,a=De(),a=yc(a),i=zn(a),i.callback=null,Yn(n,i,a),n=a,e.current.lanes=n,Dl(e,n),_e(e),t[za]=e.current,rf(t),new Wu(e)},xi.version="19.2.1",xi}var j2;function G5(){if(j2)return Vf.exports;j2=1;function l(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(l)}catch(u){console.error(u)}}return l(),Vf.exports=L5(),Vf.exports}var X5=G5();class rc{constructor(){yn(this,"project",[]);yn(this,"status",[]);yn(this,"text",[]);yn(this,"labels",[]);yn(this,"annotations",[])}empty(){return this.project.length+this.status.length+this.text.length+this.labels.length+this.annotations.length===0}static parse(u){const c=rc.tokenize(u),f=new Set,r=new Set,o=[],h=new Set,v=new Set;for(let A of c){const E=A.startsWith("!");if(E&&(A=A.slice(1)),A.startsWith("p:")){f.add({name:A.slice(2),not:E});continue}if(A.startsWith("s:")){r.add({name:A.slice(2),not:E});continue}if(A.startsWith("@")){h.add({name:A,not:E});continue}if(A.startsWith("annot:")){v.add({name:A.slice(6),not:E});continue}o.push({name:A.toLowerCase(),not:E})}const y=new rc;return y.text=o,y.project=[...f],y.status=[...r],y.labels=[...h],y.annotations=[...v],y}static tokenize(u){const c=[];let f,r=[];for(let o=0;o<u.length;++o){const h=u[o];if(f&&h==="\\"&&u[o+1]===f){r.push(f),++o;continue}if(h==='"'||h==="'"){f===h?(c.push(r.join("").toLowerCase()),r=[],f=void 0):f?r.push(h):f=h;continue}if(f){r.push(h);continue}if(h===" "){r.length&&(c.push(r.join("").toLowerCase()),r=[]);continue}r.push(h)}return r.length&&c.push(r.join("").toLowerCase()),c}matches(u){const c=V5(u);if(this.project.length&&!!!this.project.find(r=>{const o=c.project.includes(r.name);return r.not?!o:o}))return!1;if(this.status.length){if(!!!this.status.find(r=>{const o=c.status.includes(r.name);return r.not?!o:o}))return!1}else if(c.status==="skipped")return!1;return!(this.text.length&&!this.text.every(r=>{if(c.text.includes(r.name))return!r.not;const[o,h,v]=r.name.split(":");return c.file.includes(o)&&c.line===h&&(v===void 0||c.column===v)?!r.not:!!r.not})||this.labels.length&&!this.labels.every(r=>{const o=c.labels.includes(r.name);return r.not?!o:o})||this.annotations.length&&!this.annotations.every(r=>{const o=c.annotations.some(h=>h.includes(r.name));return r.not?!o:o}))}}const H2=Symbol("searchValues");function V5(l){const u=l[H2];if(u)return u;let c="passed";l.outcome==="unexpected"&&(c="failed"),l.outcome==="flaky"&&(c="flaky"),l.outcome==="skipped"&&(c="skipped");const f={text:(c+" "+l.projectName+" "+l.tags.join(" ")+" "+l.location.file+" "+l.path.join(" ")+" "+l.title).toLowerCase(),project:l.projectName.toLowerCase(),status:c,file:l.location.file,line:String(l.location.line),column:String(l.location.column),labels:l.tags.map(r=>r.toLowerCase()),annotations:l.annotations.map(r=>{var o;return r.type.toLowerCase()+"="+((o=r.description)==null?void 0:o.toLocaleLowerCase())})};return l[H2]=f,f}const Z5=/("[^"]*"|"[^"]*$|\S+)/g;function Na(l,u,c){const f=new URLSearchParams(l),o=[...(l.get("q")??"").matchAll(Z5)].map(y=>{const A=y[0];return A.startsWith('"')&&A.endsWith('"')&&A.length>1?A.slice(1,A.length-1):A});if(c)return f.set("q",N2(o.includes(u)?o.filter(y=>y!==u):[...o,u])),"#?"+f;let h;u.startsWith("s:")&&(h="s:"),u.startsWith("p:")&&(h="p:"),u.startsWith("@")&&(h="@");const v=o.filter(y=>!y.startsWith(h));return v.push(u),f.set("q",N2(v)),"#?"+f}function N2(l){return l.map(u=>/\s/.test(u)?`"${u}"`:u).join(" ").trim()}const q5=()=>m.jsx("span",{className:"octicon",style:{width:16,height:16}}),I5=()=>m.jsx("svg",{"aria-hidden":"true",height:"16",viewBox:"0 0 16 16",version:"1.1",width:"16","data-view-component":"true",className:"octicon subnav-search-icon",children:m.jsx("path",{fillRule:"evenodd",d:"M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"})}),Ni=()=>m.jsx("svg",{"aria-hidden":"true",height:"16",viewBox:"0 0 16 16",version:"1.1",width:"16",className:"octicon color-fg-muted",children:m.jsx("path",{fillRule:"evenodd",d:"M12.78 6.22a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06 0L3.22 7.28a.75.75 0 011.06-1.06L8 9.94l3.72-3.72a.75.75 0 011.06 0z"})}),Cl=()=>m.jsx("svg",{"aria-hidden":"true",height:"16",viewBox:"0 0 16 16",version:"1.1",width:"16","data-view-component":"true",className:"octicon color-fg-muted",children:m.jsx("path",{fillRule:"evenodd",d:"M6.22 3.22a.75.75 0 011.06 0l4.25 4.25a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06-1.06L9.94 8 6.22 4.28a.75.75 0 010-1.06z"})}),qh=()=>m.jsx("svg",{"aria-hidden":"true",height:"16",viewBox:"0 0 16 16",version:"1.1",width:"16","data-view-component":"true",className:"octicon color-text-warning",children:m.jsx("path",{fillRule:"evenodd",d:"M8.22 1.754a.25.25 0 00-.44 0L1.698 13.132a.25.25 0 00.22.368h12.164a.25.25 0 00.22-.368L8.22 1.754zm-1.763-.707c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0114.082 15H1.918a1.75 1.75 0 01-1.543-2.575L6.457 1.047zM9 11a1 1 0 11-2 0 1 1 0 012 0zm-.25-5.25a.75.75 0 00-1.5 0v2.5a.75.75 0 001.5 0v-2.5z"})}),Ih=()=>m.jsx("svg",{"aria-hidden":"true",height:"16",viewBox:"0 0 16 16",version:"1.1",width:"16","data-view-component":"true",className:"octicon color-fg-muted",children:m.jsx("path",{fillRule:"evenodd",d:"M3.5 1.75a.25.25 0 01.25-.25h3a.75.75 0 000 1.5h.5a.75.75 0 000-1.5h2.086a.25.25 0 01.177.073l2.914 2.914a.25.25 0 01.073.177v8.586a.25.25 0 01-.25.25h-.5a.75.75 0 000 1.5h.5A1.75 1.75 0 0014 13.25V4.664c0-.464-.184-.909-.513-1.237L10.573.513A1.75 1.75 0 009.336 0H3.75A1.75 1.75 0 002 1.75v11.5c0 .649.353 1.214.874 1.515a.75.75 0 10.752-1.298.25.25 0 01-.126-.217V1.75zM8.75 3a.75.75 0 000 1.5h.5a.75.75 0 000-1.5h-.5zM6 5.25a.75.75 0 01.75-.75h.5a.75.75 0 010 1.5h-.5A.75.75 0 016 5.25zm2 1.5A.75.75 0 018.75 6h.5a.75.75 0 010 1.5h-.5A.75.75 0 018 6.75zm-1.25.75a.75.75 0 000 1.5h.5a.75.75 0 000-1.5h-.5zM8 9.75A.75.75 0 018.75 9h.5a.75.75 0 010 1.5h-.5A.75.75 0 018 9.75zm-.75.75a1.75 1.75 0 00-1.75 1.75v3c0 .414.336.75.75.75h2.5a.75.75 0 00.75-.75v-3a1.75 1.75 0 00-1.75-1.75h-.5zM7 12.25a.25.25 0 01.25-.25h.5a.25.25 0 01.25.25v2.25H7v-2.25z"})}),Kh=()=>m.jsx("svg",{className:"octicon color-text-danger",viewBox:"0 0 16 16",version:"1.1",width:"16",height:"16","aria-hidden":"true",children:m.jsx("path",{fillRule:"evenodd",d:"M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"})}),kh=()=>m.jsx("svg",{"aria-hidden":"true",height:"16",viewBox:"0 0 16 16",version:"1.1",width:"16","data-view-component":"true",className:"octicon color-icon-success",children:m.jsx("path",{fillRule:"evenodd",d:"M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"})}),Jh=()=>m.jsx("svg",{"aria-hidden":"true",height:"16",viewBox:"0 0 16 16",version:"1.1",width:"16","data-view-component":"true",className:"octicon octicon-clock color-text-danger",children:m.jsx("path",{fillRule:"evenodd",d:"M5.75.75A.75.75 0 016.5 0h3a.75.75 0 010 1.5h-.75v1l-.001.041a6.718 6.718 0 013.464 1.435l.007-.006.75-.75a.75.75 0 111.06 1.06l-.75.75-.006.007a6.75 6.75 0 11-10.548 0L2.72 5.03l-.75-.75a.75.75 0 011.06-1.06l.75.75.007.006A6.718 6.718 0 017.25 2.541a.756.756 0 010-.041v-1H6.5a.75.75 0 01-.75-.75zM8 14.5A5.25 5.25 0 108 4a5.25 5.25 0 000 10.5zm.389-6.7l1.33-1.33a.75.75 0 111.061 1.06L9.45 8.861A1.502 1.502 0 018 10.75a1.5 1.5 0 11.389-2.95z"})}),K5=()=>m.jsx("svg",{"aria-hidden":"true",viewBox:"0 0 16 16",width:"16",height:"16","data-view-component":"true",className:"octicon color-fg-muted",children:m.jsx("path",{d:"M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm9.78-2.22-5.5 5.5a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734l5.5-5.5a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"})}),k5=()=>m.jsx("svg",{className:"octicon",viewBox:"0 0 48 48",version:"1.1",width:"20",height:"20","aria-hidden":"true",children:m.jsx("path",{xmlns:"http://www.w3.org/2000/svg",d:"M11.85 32H36.2l-7.35-9.95-6.55 8.7-4.6-6.45ZM7 40q-1.2 0-2.1-.9Q4 38.2 4 37V11q0-1.2.9-2.1Q5.8 8 7 8h34q1.2 0 2.1.9.9.9.9 2.1v26q0 1.2-.9 2.1-.9.9-2.1.9Zm0-29v26-26Zm34 26V11H7v26Z"})}),J5=()=>m.jsx("svg",{className:"octicon",viewBox:"0 0 48 48",version:"1.1",width:"20",height:"20","aria-hidden":"true",children:m.jsx("path",{xmlns:"http://www.w3.org/2000/svg",d:"m19.6 32.35 13-8.45-13-8.45ZM7 40q-1.2 0-2.1-.9Q4 38.2 4 37V11q0-1.2.9-2.1Q5.8 8 7 8h34q1.2 0 2.1.9.9.9.9 2.1v26q0 1.2-.9 2.1-.9.9-2.1.9Zm0-3h34V11H7v26Zm0 0V11v26Z"})}),F5=()=>m.jsx("svg",{className:"octicon",viewBox:"0 0 48 48",version:"1.1",width:"20",height:"20","aria-hidden":"true",children:m.jsx("path",{xmlns:"http://www.w3.org/2000/svg",d:"M7 37h9.35V11H7v26Zm12.35 0h9.3V11h-9.3v26Zm12.3 0H41V11h-9.35v26ZM7 40q-1.2 0-2.1-.9Q4 38.2 4 37V11q0-1.2.9-2.1Q5.8 8 7 8h34q1.2 0 2.1.9.9.9.9 2.1v26q0 1.2-.9 2.1-.9.9-2.1.9Z"})}),W5=()=>m.jsxs("svg",{className:"octicon",viewBox:"0 0 16 16",width:"16",height:"16","aria-hidden":"true",children:[m.jsx("path",{d:"M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"}),m.jsx("path",{d:"M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"})]}),_5=()=>m.jsx("svg",{className:"octicon octicon-settings",viewBox:"0 0 16 16",width:"16",height:"16","aria-hidden":"true",children:m.jsx("path",{d:"M8 0a8.2 8.2 0 0 1 .701.031C9.444.095 9.99.645 10.16 1.29l.288 1.107c.018.066.079.158.212.224.231.114.454.243.668.386.123.082.233.09.299.071l1.103-.303c.644-.176 1.392.021 1.82.63.27.385.506.792.704 1.218.315.675.111 1.422-.364 1.891l-.814.806c-.049.048-.098.147-.088.294.016.257.016.515 0 .772-.01.147.038.246.088.294l.814.806c.475.469.679 1.216.364 1.891a7.977 7.977 0 0 1-.704 1.217c-.428.61-1.176.807-1.82.63l-1.102-.302c-.067-.019-.177-.011-.3.071a5.909 5.909 0 0 1-.668.386c-.133.066-.194.158-.211.224l-.29 1.106c-.168.646-.715 1.196-1.458 1.26a8.006 8.006 0 0 1-1.402 0c-.743-.064-1.289-.614-1.458-1.26l-.289-1.106c-.018-.066-.079-.158-.212-.224a5.738 5.738 0 0 1-.668-.386c-.123-.082-.233-.09-.299-.071l-1.103.303c-.644.176-1.392-.021-1.82-.63a8.12 8.12 0 0 1-.704-1.218c-.315-.675-.111-1.422.363-1.891l.815-.806c.05-.048.098-.147.088-.294a6.214 6.214 0 0 1 0-.772c.01-.147-.038-.246-.088-.294l-.815-.806C.635 6.045.431 5.298.746 4.623a7.92 7.92 0 0 1 .704-1.217c.428-.61 1.176-.807 1.82-.63l1.102.302c.067.019.177.011.3-.071.214-.143.437-.272.668-.386.133-.066.194-.158.211-.224l.29-1.106C6.009.645 6.556.095 7.299.03 7.53.01 7.764 0 8 0Zm-.571 1.525c-.036.003-.108.036-.137.146l-.289 1.105c-.147.561-.549.967-.998 1.189-.173.086-.34.183-.5.29-.417.278-.97.423-1.529.27l-1.103-.303c-.109-.03-.175.016-.195.045-.22.312-.412.644-.573.99-.014.031-.021.11.059.19l.815.806c.411.406.562.957.53 1.456a4.709 4.709 0 0 0 0 .582c.032.499-.119 1.05-.53 1.456l-.815.806c-.081.08-.073.159-.059.19.162.346.353.677.573.989.02.03.085.076.195.046l1.102-.303c.56-.153 1.113-.008 1.53.27.161.107.328.204.501.29.447.222.85.629.997 1.189l.289 1.105c.029.109.101.143.137.146a6.6 6.6 0 0 0 1.142 0c.036-.003.108-.036.137-.146l.289-1.105c.147-.561.549-.967.998-1.189.173-.086.34-.183.5-.29.417-.278.97-.423 1.529-.27l1.103.303c.109.029.175-.016.195-.045.22-.313.411-.644.573-.99.014-.031.021-.11-.059-.19l-.815-.806c-.411-.406-.562-.957-.53-1.456a4.709 4.709 0 0 0 0-.582c-.032-.499.119-1.05.53-1.456l.815-.806c.081-.08.073-.159.059-.19a6.464 6.464 0 0 0-.573-.989c-.02-.03-.085-.076-.195-.046l-1.102.303c-.56.153-1.113.008-1.53-.27a4.44 4.44 0 0 0-.501-.29c-.447-.222-.85-.629-.997-1.189l-.289-1.105c-.029-.11-.101-.143-.137-.146a6.6 6.6 0 0 0-1.142 0ZM11 8a3 3 0 1 1-6 0 3 3 0 0 1 6 0ZM9.5 8a1.5 1.5 0 1 0-3.001.001A1.5 1.5 0 0 0 9.5 8Z"})}),Fh=({value:l})=>{const[u,c]=ct.useState("copy"),f=ct.useCallback(()=>{navigator.clipboard.writeText(l).then(()=>{c("check"),setTimeout(()=>{c("copy")},3e3)},()=>{c("cross")})},[l]),r=u==="check"?kh():u==="cross"?Kh():W5();return m.jsx("button",{className:"copy-icon",title:"Copy to clipboard","aria-label":"Copy to clipboard",onClick:f,children:r})},Sr=({children:l,value:u})=>m.jsxs("span",{className:"copy-value-container",children:[l,m.jsx("span",{className:"copy-button-container",children:m.jsx(Fh,{value:u})})]});function P5(l,u,c,f){const[r,o]=ue.useState(c);return ue.useEffect(()=>{let h=!1;return l().then(v=>{h||o(v)}),()=>{h=!0}},u),r}function Wh(){const l=ue.useRef(null),[u]=ur(l);return[u,l]}function ur(l){const[u,c]=ue.useState(new DOMRect(0,0,10,10)),f=ue.useCallback(()=>{const r=l==null?void 0:l.current;r&&c(r.getBoundingClientRect())},[l]);return ue.useLayoutEffect(()=>{const r=l==null?void 0:l.current;if(!r)return;f();const o=new ResizeObserver(f);return o.observe(r),window.addEventListener("resize",f),()=>{o.disconnect(),window.removeEventListener("resize",f)}},[f,l]),[u,f]}function _h(l,u){u=Ma.getObject(l,u);const[c,f]=ue.useState(u),r=ue.useCallback(o=>{Ma.setObject(l,o)},[l,f]);return ue.useEffect(()=>{{const o=()=>f(Ma.getObject(l,u));return Ma.onChangeEmitter.addEventListener(l,o),()=>Ma.onChangeEmitter.removeEventListener(l,o)}},[u,l]),[c,r]}class $5{constructor(){this.onChangeEmitter=new EventTarget}getString(u,c){return localStorage[u]||c}setString(u,c){var f;localStorage[u]=c,this.onChangeEmitter.dispatchEvent(new Event(u)),(f=window.saveSettings)==null||f.call(window)}getObject(u,c){if(!localStorage[u])return c;try{return JSON.parse(localStorage[u])}catch{return c}}setObject(u,c){var f;localStorage[u]=JSON.stringify(c),this.onChangeEmitter.dispatchEvent(new Event(u)),(f=window.saveSettings)==null||f.call(window)}}const Ma=new $5;function Ze(...l){return l.filter(Boolean).join(" ")}const B2="\\u0000-\\u0020\\u007f-\\u009f",tv=new RegExp("(?:[a-zA-Z][a-zA-Z0-9+.-]{2,}:\\/\\/|www\\.)[^\\s"+B2+'"]{2,}[^\\s'+B2+`"')}\\],:;.!?]`,"ug");function ev(){const[l,u]=ue.useState(!1),c=ue.useCallback(()=>{const f=[];return u(r=>(f.push(setTimeout(()=>u(!1),1e3)),r?(f.push(setTimeout(()=>u(!0),50)),!1):!0)),()=>f.forEach(clearTimeout)},[u]);return[l,c]}function Di(l){const u=[];let c=0,f;for(;(f=tv.exec(l))!==null;){const o=l.substring(c,f.index);o&&u.push(o);const h=f[0];u.push(nv(h)),c=f.index+h.length}const r=l.substring(c);return r&&u.push(r),u}function nv(l){let u=l;return u.startsWith("www.")&&(u="https://"+u),m.jsx("a",{href:u,target:"_blank",rel:"noopener noreferrer",children:l})}const av=({summary:l,children:u,className:c,style:f})=>{const[r,o]=ue.useState(!1),h=v=>{o(v.currentTarget.open)};return m.jsxs("details",{style:f,className:c,onToggle:h,children:[m.jsxs("summary",{className:"expandable-summary",children:[r?Ni():Cl(),l]}),u]})};function Ol(l){if(!isFinite(l))return"-";if(l===0)return"0ms";if(l<1e3)return l.toFixed(0)+"ms";const u=l/1e3;if(u<60)return u.toFixed(1)+"s";const c=u/60;if(c<60)return c.toFixed(1)+"m";const f=c/60;return f<24?f.toFixed(1)+"h":(f/24).toFixed(1)+"d"}function lv(l){let u=0;for(let c=0;c<l.length;c++)u=l.charCodeAt(c)+((u<<8)-u);return Math.abs(u%6)}function Ve(l){if(!l)return l;try{const u=new URL(l,window.location.href);if(u.origin===window.location.origin){for(const[c,f]of new URLSearchParams(window.location.search))u.searchParams.append(c,f);return u.toString()}return l}catch{return l}}const Ph=({label:l,href:u,onClick:c,colorIndex:f,trimAtSymbolPrefix:r})=>{const o=m.jsx("span",{className:Ze("label","label-color-"+(f!==void 0?f:lv(l))),onClick:c?h=>c(h,l):void 0,children:r&&l.startsWith("@")?l.slice(1):l});return u?m.jsx("a",{className:"label-anchor",href:Ve(u),children:o}):o},$h=({projectNames:l,activeProjectName:u,otherLabels:c,style:f})=>(l.length>0&&!!u||c.length>0)&&m.jsxs("span",{className:"label-row",style:f??{},children:[m.jsx(uv,{projectNames:l,projectName:u}),m.jsx(iv,{labels:c})]}),iv=({labels:l})=>{const u=se(),c=ct.useCallback((f,r)=>{const o=new URLSearchParams(u);f.preventDefault(),o.has("testId")&&o.delete("speedboard"),o.delete("testId"),ca(Na(o,r,f.metaKey||f.ctrlKey))},[u]);return m.jsx(m.Fragment,{children:l.map(f=>m.jsx(Ph,{label:f,trimAtSymbolPrefix:!0,onClick:c},f))})};function ca(l){window.history.pushState({},"",l);const u=new PopStateEvent("popstate");window.dispatchEvent(u)}const Kf=({predicate:l,children:u})=>l(se())?u:null,Tn=({click:l,ctrlClick:u,children:c,...f})=>m.jsx("a",{...f,style:{textDecoration:"none",color:"var(--color-fg-default)",cursor:"pointer"},onClick:r=>{l&&(r.preventDefault(),ca(Ve((r.metaKey||r.ctrlKey)&&u||l)))},children:c}),Tr=({className:l,...u})=>m.jsx(Tn,{...u,className:Ze("link-badge",u.dim&&"link-badge-dim",l)}),uv=({projectNames:l,projectName:u})=>{const c=new URLSearchParams(se());return c.has("testId")&&c.delete("speedboard"),c.delete("testId"),m.jsx(Tn,{click:Na(c,`p:${u}`,!1),ctrlClick:Na(c,`p:${u}`,!0),children:m.jsx(Ph,{label:u,colorIndex:l.indexOf(u)%6})})},nc=({attachment:l,result:u,href:c,linkName:f,openInNewTab:r})=>{const[o,h]=ev();Cr("attachment-"+u.attachments.indexOf(l),h);const v=m.jsxs("span",{children:[l.contentType===fv?qh():Ih(),l.path&&(r?m.jsx("a",{href:Ve(c||l.path),target:"_blank",rel:"noreferrer",children:f||l.name}):m.jsx("a",{href:Ve(c||l.path),download:sv(l),children:f||l.name})),!l.path&&(r?m.jsx("a",{href:URL.createObjectURL(new Blob([l.body],{type:l.contentType})),target:"_blank",rel:"noreferrer",onClick:y=>y.stopPropagation(),children:l.name}):m.jsx("span",{children:Di(l.name)}))]});return l.body?m.jsx(av,{style:{lineHeight:"32px"},className:Ze(o&&"attachment-flash"),summary:v,children:m.jsxs("div",{className:"attachment-body",children:[m.jsx(Fh,{value:l.body}),Di(l.body)]})}):m.jsxs("div",{style:{lineHeight:"32px",whiteSpace:"nowrap",paddingLeft:4},className:Ze(o&&"attachment-flash"),children:[m.jsx("span",{style:{visibility:"hidden"},children:Cl()}),v]})},tm=({test:l,trailingSeparator:u,dim:c})=>{const f=l.results.map(r=>r.attachments.filter(o=>o.name==="trace")).filter(r=>r.length>0)[0];if(f)return m.jsxs(m.Fragment,{children:[m.jsxs(Tr,{href:Ve(nm(f)),title:"View Trace",className:"button trace-link",dim:c,children:[F5(),m.jsx("span",{children:"View Trace"})]}),u&&m.jsx("div",{className:"trace-link-separator",children:"|"})]})},em=ct.createContext(new URLSearchParams(window.location.hash.slice(1)));function se(){return ct.useContext(em)}const cv=({children:l})=>{const[u,c]=ct.useState(new URLSearchParams(window.location.hash.slice(1)));return ct.useEffect(()=>{const f=()=>c(new URLSearchParams(window.location.hash.slice(1)));return window.addEventListener("popstate",f),()=>window.removeEventListener("popstate",f)},[]),m.jsx(em.Provider,{value:u,children:l})};function sv(l){if(l.name.includes(".")||!l.path)return l.name;const u=l.path.indexOf(".");return u===-1?l.name:l.name+l.path.slice(u,l.path.length)}function nm(l){return`trace/index.html?${l.map((u,c)=>`trace=${new URL(u.path,window.location.href)}`).join("&")}`}const fv="x-playwright/missing";function Cr(l,u){const c=se(),f=rv(l);ct.useEffect(()=>{if(f)return u()},[f,u,c])}function rv(l){const u=se().get("anchor");return u===null||typeof l>"u"?!1:typeof l=="string"?l===u:Array.isArray(l)?l.includes(u):l(u)}function Si({id:l,children:u}){const c=ct.useRef(null),f=ct.useCallback(()=>{var r;(r=c.current)==null||r.scrollIntoView({block:"start",inline:"start"})},[]);return Cr(l,f),m.jsx("div",{ref:c,children:u})}function Cn({test:l,result:u,anchor:c},f){const r=new URLSearchParams(f);return l&&r.set("testId",l.testId),l&&u&&r.set("run",""+l.results.indexOf(u)),c&&r.set("anchor",c),"#?"+r}function hc(l){switch(l){case"failed":case"unexpected":return Kh();case"passed":case"expected":return kh();case"timedOut":return Jh();case"flaky":return qh();case"skipped":case"interrupted":return K5()}}const ov=({className:l,style:u,open:c,isModal:f,minWidth:r,verticalOffset:o,requestClose:h,anchor:v,dataTestId:y,children:A})=>{const E=ct.useRef(null),[S,O]=ct.useState(0),[X]=ur(E),[B,b]=ur(v),p=v?dv(X,B,o):void 0;return ct.useEffect(()=>{const x=U=>{!E.current||!(U.target instanceof Node)||E.current.contains(U.target)||h==null||h()},R=U=>{U.key==="Escape"&&(h==null||h())};return c?(document.addEventListener("mousedown",x),document.addEventListener("keydown",R),()=>{document.removeEventListener("mousedown",x),document.removeEventListener("keydown",R)}):()=>{}},[c,h]),ct.useLayoutEffect(()=>b(),[c,b]),ct.useEffect(()=>{const x=()=>O(R=>R+1);return window.addEventListener("resize",x),()=>{window.removeEventListener("resize",x)}},[]),ct.useLayoutEffect(()=>{E.current&&(c?f?E.current.showModal():E.current.show():E.current.close())},[c,f]),m.jsx("dialog",{ref:E,style:{position:"fixed",margin:p?0:void 0,zIndex:110,top:p==null?void 0:p.top,left:p==null?void 0:p.left,minWidth:r||0,...u},className:l,"data-testid":y,children:A})};function dv(l,u,c=4,f=4){let r=Math.max(f,u.left);r+l.width>window.innerWidth-f&&(r=window.innerWidth-l.width-f);let o=Math.max(0,u.bottom)+c;return o+l.height>window.innerHeight-c&&(Math.max(0,u.top)>l.height+c?o=Math.max(0,u.top)-l.height-c:o=window.innerHeight-c-l.height),{left:r,top:o}}const hv="system",am="theme",mv=[{label:"Dark mode",value:"dark-mode"},{label:"Light mode",value:"light-mode"},{label:"System",value:"system"}],lm=window.matchMedia("(prefers-color-scheme: dark)");function gv(){document.playwrightThemeInitialized||(document.playwrightThemeInitialized=!0,document.defaultView.addEventListener("focus",l=>{l.target.document.nodeType===Node.DOCUMENT_NODE&&document.body.classList.remove("inactive")},!1),document.defaultView.addEventListener("blur",l=>{document.body.classList.add("inactive")},!1),cr(sr()),lm.addEventListener("change",()=>{cr(sr())}))}const Av=new Set;function cr(l){const u=vv(),c=l==="system"?lm.matches?"dark-mode":"light-mode":l;if(u!==c){u&&document.documentElement.classList.remove(u),document.documentElement.classList.add(c);for(const f of Av)f(c)}}function sr(){return Ma.getString(am,hv)}function vv(){return document.documentElement.classList.contains("dark-mode")?"dark-mode":document.documentElement.classList.contains("light-mode")?"light-mode":null}function yv(){const[l,u]=ue.useState(sr());return ue.useEffect(()=>{Ma.setString(am,l),cr(l)},[l]),[l,u]}const Or=({title:l,leftSuperHeader:u,rightSuperHeader:c})=>m.jsxs("div",{className:"header-view",children:[m.jsxs("div",{className:"hbox header-superheader",children:[u,m.jsx("div",{style:{flex:"auto"}}),c]}),l&&m.jsx("div",{className:"header-title",children:Di(l)})]}),Ev=({stats:l,filterText:u,setFilterText:c})=>{const f=se().get("q");return ct.useEffect(()=>{c(f?`${f.trim()} `:"")},[f,c]),m.jsx(m.Fragment,{children:m.jsxs("div",{className:"pt-3",children:[m.jsx("div",{className:"header-view-status-container ml-2 pl-2 d-flex",children:m.jsx(pv,{stats:l})}),m.jsxs("form",{className:"subnav-search",onSubmit:r=>{r.preventDefault();const o=new URL(window.location.href),h=new URLSearchParams(o.hash.slice(1)),v=new FormData(r.target).get("q"),y=new URLSearchParams({q:v});h.has("speedboard")&&y.set("speedboard",""),y.toString()&&(o.hash="?"+y.toString()),ca(o)},children:[I5(),m.jsx("input",{name:"q",spellCheck:!1,className:"form-control subnav-search-input input-contrast width-full","aria-label":"Search tests",placeholder:"Search tests",value:u,onChange:r=>{c(r.target.value)}})]})]})})},pv=({stats:l})=>{const u=se().has("speedboard");return m.jsxs("nav",{children:[m.jsxs(Tn,{className:"subnav-item",href:"#?",children:[m.jsx("span",{className:"subnav-item-label",children:"All"}),m.jsx("span",{className:"d-inline counter",children:l.total-l.skipped})]}),m.jsx(ac,{token:"passed",count:l.expected}),m.jsx(ac,{token:"failed",count:l.unexpected}),m.jsx(ac,{token:"flaky",count:l.flaky}),m.jsx(ac,{token:"skipped",count:l.skipped}),m.jsx(Tn,{className:"subnav-item",href:"#?speedboard",title:"Speedboard","aria-selected":u,children:Jh()}),m.jsx(bv,{})]})},ac=({token:l,count:u})=>{const c=new URLSearchParams(se());c.delete("speedboard"),c.delete("testId");const f=`s:${l}`,r=Na(c,f,!1),o=Na(c,f,!0),h=l.charAt(0).toUpperCase()+l.slice(1);return m.jsxs(Tn,{className:"subnav-item",href:r,click:r,ctrlClick:o,children:[u>0&&hc(l),m.jsx("span",{className:"subnav-item-label",children:h}),m.jsx("span",{className:"d-inline counter",children:u})]})},bv=()=>{const l=ct.useRef(null),[u,c]=ct.useState(!1),[f,r]=yv(),[o,h]=_h("mergeFiles",!1);return m.jsxs(m.Fragment,{children:[m.jsx("div",{role:"button",ref:l,style:{cursor:"pointer"},className:"subnav-item",title:"Settings",onClick:v=>{c(!u),v.preventDefault()},onMouseDown:xv,children:_5()}),m.jsxs(ov,{open:u,minWidth:150,verticalOffset:4,requestClose:()=>c(!1),anchor:l,dataTestId:"settings-dialog",children:[m.jsxs("label",{className:"header-setting-theme",children:["Theme:",m.jsx("select",{value:f,onChange:v=>r(v.target.value),children:mv.map(v=>m.jsx("option",{value:v.value,children:v.label},v.value))})]}),m.jsxs("label",{style:{cursor:"pointer",display:"flex",alignItems:"center",gap:4},children:[m.jsx("input",{type:"checkbox",checked:o,onChange:()=>h(!o)}),"Merge files"]})]})]})},xv=l=>{l.stopPropagation(),l.preventDefault()},Sv=({tabs:l,selectedTab:u,setSelectedTab:c})=>{const f=ct.useId();return m.jsx("div",{className:"tabbed-pane",children:m.jsxs("div",{className:"vbox",children:[m.jsx("div",{className:"hbox",style:{flex:"none"},children:m.jsx("div",{className:"tabbed-pane-tab-strip",role:"tablist",children:l.map(r=>m.jsx("div",{className:Ze("tabbed-pane-tab-element",u===r.id&&"selected"),onClick:()=>c(r.id),id:`${f}-${r.id}`,role:"tab","aria-selected":u===r.id,children:m.jsx("div",{className:"tabbed-pane-tab-label",children:r.title})},r.id))})}),l.map(r=>{if(u===r.id)return m.jsx("div",{className:"tab-content",role:"tabpanel","aria-labelledby":`${f}-${r.id}`,children:r.render()},r.id)})]})})},im=({header:l,footer:u,expanded:c,setExpanded:f,children:r,noInsets:o,dataTestId:h})=>{const v=ct.useId();return m.jsxs("div",{className:"chip","data-testid":h,children:[m.jsxs("div",{role:"button","aria-expanded":!!c,"aria-controls":v,className:Ze("chip-header",f&&" expanded-"+c),onClick:()=>f==null?void 0:f(!c),title:typeof l=="string"?l:void 0,children:[f?c?m.jsx(Ni,{}):m.jsx(Cl,{}):m.jsx(q5,{}),l]}),(!f||c)&&m.jsxs("div",{id:v,role:"region",className:Ze("chip-body",o&&"chip-body-no-insets"),children:[r,u&&m.jsx("div",{className:"chip-footer",children:u})]})]})},ke=({header:l,initialExpanded:u,noInsets:c,children:f,dataTestId:r,revealOnAnchorId:o})=>{const[h,v]=ct.useState(u??!0),y=ct.useCallback(()=>v(!0),[]);return Cr(o,y),m.jsx(im,{header:l,expanded:h,setExpanded:v,noInsets:c,dataTestId:r,children:f})},Tv=({title:l,loadChildren:u,onClick:c,expandByDefault:f,depth:r,style:o,flash:h})=>{const[v,y]=ct.useState(f||!1);return m.jsxs("div",{role:"treeitem",className:Ze("tree-item",h&&"yellow-flash"),style:o,children:[m.jsxs("div",{className:"tree-item-title",style:{paddingLeft:r*22+4},onClick:()=>{c==null||c(),y(!v)},children:[u&&!!v&&Ni(),u&&!v&&Cl(),!u&&m.jsx("span",{style:{visibility:"hidden"},children:Cl()}),l]}),v&&(u==null?void 0:u())]})},Cv="data:image/png;base64,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",Ov=({cursor:l,onPaneMouseMove:u,onPaneMouseUp:c,onPaneDoubleClick:f})=>(ue.useEffect(()=>{const r=document.createElement("div");return r.style.position="fixed",r.style.top="0",r.style.right="0",r.style.bottom="0",r.style.left="0",r.style.zIndex="9999",r.style.cursor=l,document.body.appendChild(r),u&&r.addEventListener("mousemove",u),c&&r.addEventListener("mouseup",c),f&&document.body.addEventListener("dblclick",f),()=>{u&&r.removeEventListener("mousemove",u),c&&r.removeEventListener("mouseup",c),f&&document.body.removeEventListener("dblclick",f),document.body.removeChild(r)}},[l,u,c,f]),m.jsx(m.Fragment,{})),wv={position:"absolute",top:0,right:0,bottom:0,left:0},Rv=({orientation:l,offsets:u,setOffsets:c,resizerColor:f,resizerWidth:r,minColumnWidth:o})=>{const h=o||0,[v,y]=ue.useState(null),[A,E]=Wh(),S={position:"absolute",right:l==="horizontal"?void 0:0,bottom:l==="horizontal"?0:void 0,width:l==="horizontal"?7:void 0,height:l==="horizontal"?void 0:7,borderTopWidth:l==="horizontal"?void 0:(7-r)/2,borderRightWidth:l==="horizontal"?(7-r)/2:void 0,borderBottomWidth:l==="horizontal"?void 0:(7-r)/2,borderLeftWidth:l==="horizontal"?(7-r)/2:void 0,borderColor:"transparent",borderStyle:"solid",cursor:l==="horizontal"?"ew-resize":"ns-resize"};return m.jsxs("div",{style:{position:"absolute",top:0,right:0,bottom:0,left:-(7-r)/2,zIndex:100,pointerEvents:"none"},ref:E,children:[!!v&&m.jsx(Ov,{cursor:l==="horizontal"?"ew-resize":"ns-resize",onPaneMouseUp:()=>y(null),onPaneMouseMove:O=>{if(!O.buttons)y(null);else if(v){const X=l==="horizontal"?O.clientX-v.clientX:O.clientY-v.clientY,B=v.offset+X,b=v.index>0?u[v.index-1]:0,p=l==="horizontal"?A.width:A.height,x=Math.min(Math.max(b+h,B),p-h)-u[v.index];for(let R=v.index;R<u.length;++R)u[R]=u[R]+x;c([...u])}}}),u.map((O,X)=>m.jsx("div",{style:{...S,top:l==="horizontal"?0:O,left:l==="horizontal"?O:0,pointerEvents:"initial"},onMouseDown:B=>y({clientX:B.clientX,clientY:B.clientY,offset:O,index:X}),children:m.jsx("div",{style:{...wv,background:f}})},X))]})};async function kf(l){const u=new Image;return l&&(u.src=l,await new Promise((c,f)=>{u.onload=c,u.onerror=c})),u}const fr={backgroundImage:`linear-gradient(45deg, #80808020 25%, transparent 25%), + <script type="module"> + var NA = Object.defineProperty; + var BA = (l, u, c) => + u in l + ? NA(l, u, { enumerable: !0, configurable: !0, writable: !0, value: c }) + : (l[u] = c); + var yn = (l, u, c) => BA(l, typeof u != 'symbol' ? u + '' : u, c); + (function () { + const u = document.createElement('link').relList; + if (u && u.supports && u.supports('modulepreload')) return; + for (const r of document.querySelectorAll('link[rel="modulepreload"]')) f(r); + new MutationObserver((r) => { + for (const o of r) + if (o.type === 'childList') + for (const h of o.addedNodes) + h.tagName === 'LINK' && h.rel === 'modulepreload' && f(h); + }).observe(document, { childList: !0, subtree: !0 }); + function c(r) { + const o = {}; + return ( + r.integrity && (o.integrity = r.integrity), + r.referrerPolicy && (o.referrerPolicy = r.referrerPolicy), + r.crossOrigin === 'use-credentials' + ? (o.credentials = 'include') + : r.crossOrigin === 'anonymous' + ? (o.credentials = 'omit') + : (o.credentials = 'same-origin'), + o + ); + } + function f(r) { + if (r.ep) return; + r.ep = !0; + const o = c(r); + fetch(r.href, o); + } + })(); + function UA(l) { + return l && l.__esModule && Object.prototype.hasOwnProperty.call(l, 'default') + ? l.default + : l; + } + var Mf = { exports: {} }, + Ei = {}; + /** + * @license React + * react-jsx-runtime.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ var D1; + function QA() { + if (D1) return Ei; + D1 = 1; + var l = Symbol.for('react.transitional.element'), + u = Symbol.for('react.fragment'); + function c(f, r, o) { + var h = null; + if ((o !== void 0 && (h = '' + o), r.key !== void 0 && (h = '' + r.key), 'key' in r)) { + o = {}; + for (var v in r) v !== 'key' && (o[v] = r[v]); + } else o = r; + return ( + (r = o.ref), + { $$typeof: l, type: f, key: h, ref: r !== void 0 ? r : null, props: o } + ); + } + return ((Ei.Fragment = u), (Ei.jsx = c), (Ei.jsxs = c), Ei); + } + var M1; + function zA() { + return (M1 || ((M1 = 1), (Mf.exports = QA())), Mf.exports); + } + var m = zA(); + const YA = 15, + xt = 0, + bn = 1, + LA = 2, + ye = -2, + Ut = -3, + j1 = -4, + xn = -5, + Me = [0, 1, 3, 7, 15, 31, 63, 127, 255, 511, 1023, 2047, 4095, 8191, 16383, 32767, 65535], + L2 = 1440, + GA = 0, + XA = 4, + VA = 9, + ZA = 5, + qA = [ + 96, 7, 256, 0, 8, 80, 0, 8, 16, 84, 8, 115, 82, 7, 31, 0, 8, 112, 0, 8, 48, 0, 9, 192, 80, + 7, 10, 0, 8, 96, 0, 8, 32, 0, 9, 160, 0, 8, 0, 0, 8, 128, 0, 8, 64, 0, 9, 224, 80, 7, 6, + 0, 8, 88, 0, 8, 24, 0, 9, 144, 83, 7, 59, 0, 8, 120, 0, 8, 56, 0, 9, 208, 81, 7, 17, 0, 8, + 104, 0, 8, 40, 0, 9, 176, 0, 8, 8, 0, 8, 136, 0, 8, 72, 0, 9, 240, 80, 7, 4, 0, 8, 84, 0, + 8, 20, 85, 8, 227, 83, 7, 43, 0, 8, 116, 0, 8, 52, 0, 9, 200, 81, 7, 13, 0, 8, 100, 0, 8, + 36, 0, 9, 168, 0, 8, 4, 0, 8, 132, 0, 8, 68, 0, 9, 232, 80, 7, 8, 0, 8, 92, 0, 8, 28, 0, + 9, 152, 84, 7, 83, 0, 8, 124, 0, 8, 60, 0, 9, 216, 82, 7, 23, 0, 8, 108, 0, 8, 44, 0, 9, + 184, 0, 8, 12, 0, 8, 140, 0, 8, 76, 0, 9, 248, 80, 7, 3, 0, 8, 82, 0, 8, 18, 85, 8, 163, + 83, 7, 35, 0, 8, 114, 0, 8, 50, 0, 9, 196, 81, 7, 11, 0, 8, 98, 0, 8, 34, 0, 9, 164, 0, 8, + 2, 0, 8, 130, 0, 8, 66, 0, 9, 228, 80, 7, 7, 0, 8, 90, 0, 8, 26, 0, 9, 148, 84, 7, 67, 0, + 8, 122, 0, 8, 58, 0, 9, 212, 82, 7, 19, 0, 8, 106, 0, 8, 42, 0, 9, 180, 0, 8, 10, 0, 8, + 138, 0, 8, 74, 0, 9, 244, 80, 7, 5, 0, 8, 86, 0, 8, 22, 192, 8, 0, 83, 7, 51, 0, 8, 118, + 0, 8, 54, 0, 9, 204, 81, 7, 15, 0, 8, 102, 0, 8, 38, 0, 9, 172, 0, 8, 6, 0, 8, 134, 0, 8, + 70, 0, 9, 236, 80, 7, 9, 0, 8, 94, 0, 8, 30, 0, 9, 156, 84, 7, 99, 0, 8, 126, 0, 8, 62, 0, + 9, 220, 82, 7, 27, 0, 8, 110, 0, 8, 46, 0, 9, 188, 0, 8, 14, 0, 8, 142, 0, 8, 78, 0, 9, + 252, 96, 7, 256, 0, 8, 81, 0, 8, 17, 85, 8, 131, 82, 7, 31, 0, 8, 113, 0, 8, 49, 0, 9, + 194, 80, 7, 10, 0, 8, 97, 0, 8, 33, 0, 9, 162, 0, 8, 1, 0, 8, 129, 0, 8, 65, 0, 9, 226, + 80, 7, 6, 0, 8, 89, 0, 8, 25, 0, 9, 146, 83, 7, 59, 0, 8, 121, 0, 8, 57, 0, 9, 210, 81, 7, + 17, 0, 8, 105, 0, 8, 41, 0, 9, 178, 0, 8, 9, 0, 8, 137, 0, 8, 73, 0, 9, 242, 80, 7, 4, 0, + 8, 85, 0, 8, 21, 80, 8, 258, 83, 7, 43, 0, 8, 117, 0, 8, 53, 0, 9, 202, 81, 7, 13, 0, 8, + 101, 0, 8, 37, 0, 9, 170, 0, 8, 5, 0, 8, 133, 0, 8, 69, 0, 9, 234, 80, 7, 8, 0, 8, 93, 0, + 8, 29, 0, 9, 154, 84, 7, 83, 0, 8, 125, 0, 8, 61, 0, 9, 218, 82, 7, 23, 0, 8, 109, 0, 8, + 45, 0, 9, 186, 0, 8, 13, 0, 8, 141, 0, 8, 77, 0, 9, 250, 80, 7, 3, 0, 8, 83, 0, 8, 19, 85, + 8, 195, 83, 7, 35, 0, 8, 115, 0, 8, 51, 0, 9, 198, 81, 7, 11, 0, 8, 99, 0, 8, 35, 0, 9, + 166, 0, 8, 3, 0, 8, 131, 0, 8, 67, 0, 9, 230, 80, 7, 7, 0, 8, 91, 0, 8, 27, 0, 9, 150, 84, + 7, 67, 0, 8, 123, 0, 8, 59, 0, 9, 214, 82, 7, 19, 0, 8, 107, 0, 8, 43, 0, 9, 182, 0, 8, + 11, 0, 8, 139, 0, 8, 75, 0, 9, 246, 80, 7, 5, 0, 8, 87, 0, 8, 23, 192, 8, 0, 83, 7, 51, 0, + 8, 119, 0, 8, 55, 0, 9, 206, 81, 7, 15, 0, 8, 103, 0, 8, 39, 0, 9, 174, 0, 8, 7, 0, 8, + 135, 0, 8, 71, 0, 9, 238, 80, 7, 9, 0, 8, 95, 0, 8, 31, 0, 9, 158, 84, 7, 99, 0, 8, 127, + 0, 8, 63, 0, 9, 222, 82, 7, 27, 0, 8, 111, 0, 8, 47, 0, 9, 190, 0, 8, 15, 0, 8, 143, 0, 8, + 79, 0, 9, 254, 96, 7, 256, 0, 8, 80, 0, 8, 16, 84, 8, 115, 82, 7, 31, 0, 8, 112, 0, 8, 48, + 0, 9, 193, 80, 7, 10, 0, 8, 96, 0, 8, 32, 0, 9, 161, 0, 8, 0, 0, 8, 128, 0, 8, 64, 0, 9, + 225, 80, 7, 6, 0, 8, 88, 0, 8, 24, 0, 9, 145, 83, 7, 59, 0, 8, 120, 0, 8, 56, 0, 9, 209, + 81, 7, 17, 0, 8, 104, 0, 8, 40, 0, 9, 177, 0, 8, 8, 0, 8, 136, 0, 8, 72, 0, 9, 241, 80, 7, + 4, 0, 8, 84, 0, 8, 20, 85, 8, 227, 83, 7, 43, 0, 8, 116, 0, 8, 52, 0, 9, 201, 81, 7, 13, + 0, 8, 100, 0, 8, 36, 0, 9, 169, 0, 8, 4, 0, 8, 132, 0, 8, 68, 0, 9, 233, 80, 7, 8, 0, 8, + 92, 0, 8, 28, 0, 9, 153, 84, 7, 83, 0, 8, 124, 0, 8, 60, 0, 9, 217, 82, 7, 23, 0, 8, 108, + 0, 8, 44, 0, 9, 185, 0, 8, 12, 0, 8, 140, 0, 8, 76, 0, 9, 249, 80, 7, 3, 0, 8, 82, 0, 8, + 18, 85, 8, 163, 83, 7, 35, 0, 8, 114, 0, 8, 50, 0, 9, 197, 81, 7, 11, 0, 8, 98, 0, 8, 34, + 0, 9, 165, 0, 8, 2, 0, 8, 130, 0, 8, 66, 0, 9, 229, 80, 7, 7, 0, 8, 90, 0, 8, 26, 0, 9, + 149, 84, 7, 67, 0, 8, 122, 0, 8, 58, 0, 9, 213, 82, 7, 19, 0, 8, 106, 0, 8, 42, 0, 9, 181, + 0, 8, 10, 0, 8, 138, 0, 8, 74, 0, 9, 245, 80, 7, 5, 0, 8, 86, 0, 8, 22, 192, 8, 0, 83, 7, + 51, 0, 8, 118, 0, 8, 54, 0, 9, 205, 81, 7, 15, 0, 8, 102, 0, 8, 38, 0, 9, 173, 0, 8, 6, 0, + 8, 134, 0, 8, 70, 0, 9, 237, 80, 7, 9, 0, 8, 94, 0, 8, 30, 0, 9, 157, 84, 7, 99, 0, 8, + 126, 0, 8, 62, 0, 9, 221, 82, 7, 27, 0, 8, 110, 0, 8, 46, 0, 9, 189, 0, 8, 14, 0, 8, 142, + 0, 8, 78, 0, 9, 253, 96, 7, 256, 0, 8, 81, 0, 8, 17, 85, 8, 131, 82, 7, 31, 0, 8, 113, 0, + 8, 49, 0, 9, 195, 80, 7, 10, 0, 8, 97, 0, 8, 33, 0, 9, 163, 0, 8, 1, 0, 8, 129, 0, 8, 65, + 0, 9, 227, 80, 7, 6, 0, 8, 89, 0, 8, 25, 0, 9, 147, 83, 7, 59, 0, 8, 121, 0, 8, 57, 0, 9, + 211, 81, 7, 17, 0, 8, 105, 0, 8, 41, 0, 9, 179, 0, 8, 9, 0, 8, 137, 0, 8, 73, 0, 9, 243, + 80, 7, 4, 0, 8, 85, 0, 8, 21, 80, 8, 258, 83, 7, 43, 0, 8, 117, 0, 8, 53, 0, 9, 203, 81, + 7, 13, 0, 8, 101, 0, 8, 37, 0, 9, 171, 0, 8, 5, 0, 8, 133, 0, 8, 69, 0, 9, 235, 80, 7, 8, + 0, 8, 93, 0, 8, 29, 0, 9, 155, 84, 7, 83, 0, 8, 125, 0, 8, 61, 0, 9, 219, 82, 7, 23, 0, 8, + 109, 0, 8, 45, 0, 9, 187, 0, 8, 13, 0, 8, 141, 0, 8, 77, 0, 9, 251, 80, 7, 3, 0, 8, 83, 0, + 8, 19, 85, 8, 195, 83, 7, 35, 0, 8, 115, 0, 8, 51, 0, 9, 199, 81, 7, 11, 0, 8, 99, 0, 8, + 35, 0, 9, 167, 0, 8, 3, 0, 8, 131, 0, 8, 67, 0, 9, 231, 80, 7, 7, 0, 8, 91, 0, 8, 27, 0, + 9, 151, 84, 7, 67, 0, 8, 123, 0, 8, 59, 0, 9, 215, 82, 7, 19, 0, 8, 107, 0, 8, 43, 0, 9, + 183, 0, 8, 11, 0, 8, 139, 0, 8, 75, 0, 9, 247, 80, 7, 5, 0, 8, 87, 0, 8, 23, 192, 8, 0, + 83, 7, 51, 0, 8, 119, 0, 8, 55, 0, 9, 207, 81, 7, 15, 0, 8, 103, 0, 8, 39, 0, 9, 175, 0, + 8, 7, 0, 8, 135, 0, 8, 71, 0, 9, 239, 80, 7, 9, 0, 8, 95, 0, 8, 31, 0, 9, 159, 84, 7, 99, + 0, 8, 127, 0, 8, 63, 0, 9, 223, 82, 7, 27, 0, 8, 111, 0, 8, 47, 0, 9, 191, 0, 8, 15, 0, 8, + 143, 0, 8, 79, 0, 9, 255, + ], + IA = [ + 80, 5, 1, 87, 5, 257, 83, 5, 17, 91, 5, 4097, 81, 5, 5, 89, 5, 1025, 85, 5, 65, 93, 5, + 16385, 80, 5, 3, 88, 5, 513, 84, 5, 33, 92, 5, 8193, 82, 5, 9, 90, 5, 2049, 86, 5, 129, + 192, 5, 24577, 80, 5, 2, 87, 5, 385, 83, 5, 25, 91, 5, 6145, 81, 5, 7, 89, 5, 1537, 85, 5, + 97, 93, 5, 24577, 80, 5, 4, 88, 5, 769, 84, 5, 49, 92, 5, 12289, 82, 5, 13, 90, 5, 3073, + 86, 5, 193, 192, 5, 24577, + ], + KA = [ + 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, + 131, 163, 195, 227, 258, 0, 0, + ], + kA = [ + 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, + 112, 112, + ], + JA = [ + 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, + 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577, + ], + FA = [ + 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, + 13, 13, + ], + ta = 15; + function Wf() { + const l = this; + let u, c, f, r, o, h; + function v(A, E, S, O, X, B, b, p, x, R, U) { + let Z, F, j, D, N, K, J, k, nt, P, st, it, H, _, $; + ((P = 0), (N = S)); + do (f[A[E + P]]++, P++, N--); + while (N !== 0); + if (f[0] == S) return ((b[0] = -1), (p[0] = 0), xt); + for (k = p[0], K = 1; K <= ta && f[K] === 0; K++); + for (J = K, k < K && (k = K), N = ta; N !== 0 && f[N] === 0; N--); + for (j = N, k > N && (k = N), p[0] = k, _ = 1 << K; K < N; K++, _ <<= 1) + if ((_ -= f[K]) < 0) return Ut; + if ((_ -= f[N]) < 0) return Ut; + for (f[N] += _, h[1] = K = 0, P = 1, H = 2; --N !== 0; ) ((h[H] = K += f[P]), H++, P++); + ((N = 0), (P = 0)); + do ((K = A[E + P]) !== 0 && (U[h[K]++] = N), P++); + while (++N < S); + for (S = h[j], h[0] = N = 0, P = 0, D = -1, it = -k, o[0] = 0, st = 0, $ = 0; J <= j; J++) + for (Z = f[J]; Z-- !== 0; ) { + for (; J > it + k; ) { + if ( + (D++, + (it += k), + ($ = j - it), + ($ = $ > k ? k : $), + (F = 1 << (K = J - it)) > Z + 1 && ((F -= Z + 1), (H = J), K < $)) + ) + for (; ++K < $ && !((F <<= 1) <= f[++H]); ) F -= f[H]; + if ((($ = 1 << K), R[0] + $ > L2)) return Ut; + ((o[D] = st = R[0]), + (R[0] += $), + D !== 0 + ? ((h[D] = N), + (r[0] = K), + (r[1] = k), + (K = N >>> (it - k)), + (r[2] = st - o[D - 1] - K), + x.set(r, (o[D - 1] + K) * 3)) + : (b[0] = st)); + } + for ( + r[1] = J - it, + P >= S + ? (r[0] = 192) + : U[P] < O + ? ((r[0] = U[P] < 256 ? 0 : 96), (r[2] = U[P++])) + : ((r[0] = B[U[P] - O] + 16 + 64), (r[2] = X[U[P++] - O])), + F = 1 << (J - it), + K = N >>> it; + K < $; + K += F + ) + x.set(r, (st + K) * 3); + for (K = 1 << (J - 1); (N & K) !== 0; K >>>= 1) N ^= K; + for (N ^= K, nt = (1 << it) - 1; (N & nt) != h[D]; ) + (D--, (it -= k), (nt = (1 << it) - 1)); + } + return _ !== 0 && j != 1 ? xn : xt; + } + function y(A) { + let E; + for ( + u || + ((u = []), + (c = []), + (f = new Int32Array(ta + 1)), + (r = []), + (o = new Int32Array(ta)), + (h = new Int32Array(ta + 1))), + c.length < A && (c = []), + E = 0; + E < A; + E++ + ) + c[E] = 0; + for (E = 0; E < ta + 1; E++) f[E] = 0; + for (E = 0; E < 3; E++) r[E] = 0; + (o.set(f.subarray(0, ta), 0), h.set(f.subarray(0, ta + 1), 0)); + } + ((l.inflate_trees_bits = function (A, E, S, O, X) { + let B; + return ( + y(19), + (u[0] = 0), + (B = v(A, 0, 19, 19, null, null, S, E, O, u, c)), + B == Ut + ? (X.msg = 'oversubscribed dynamic bit lengths tree') + : (B == xn || E[0] === 0) && + ((X.msg = 'incomplete dynamic bit lengths tree'), (B = Ut)), + B + ); + }), + (l.inflate_trees_dynamic = function (A, E, S, O, X, B, b, p, x) { + let R; + return ( + y(288), + (u[0] = 0), + (R = v(S, 0, A, 257, KA, kA, B, O, p, u, c)), + R != xt || O[0] === 0 + ? (R == Ut + ? (x.msg = 'oversubscribed literal/length tree') + : R != j1 && ((x.msg = 'incomplete literal/length tree'), (R = Ut)), + R) + : (y(288), + (R = v(S, A, E, 0, JA, FA, b, X, p, u, c)), + R != xt || (X[0] === 0 && A > 257) + ? (R == Ut + ? (x.msg = 'oversubscribed distance tree') + : R == xn + ? ((x.msg = 'incomplete distance tree'), (R = Ut)) + : R != j1 && ((x.msg = 'empty distance tree with lengths'), (R = Ut)), + R) + : xt) + ); + })); + } + Wf.inflate_trees_fixed = function (l, u, c, f) { + return ((l[0] = VA), (u[0] = ZA), (c[0] = qA), (f[0] = IA), xt); + }; + const Pu = 0, + H1 = 1, + N1 = 2, + B1 = 3, + U1 = 4, + Q1 = 5, + z1 = 6, + jf = 7, + Y1 = 8, + $u = 9; + function WA() { + const l = this; + let u, + c = 0, + f, + r = 0, + o = 0, + h = 0, + v = 0, + y = 0, + A = 0, + E = 0, + S, + O = 0, + X, + B = 0; + function b(p, x, R, U, Z, F, j, D) { + let N, K, J, k, nt, P, st, it, H, _, $, ht, tt, C, L, W; + ((st = D.next_in_index), + (it = D.avail_in), + (nt = j.bitb), + (P = j.bitk), + (H = j.write), + (_ = H < j.read ? j.read - H - 1 : j.end - H), + ($ = Me[p]), + (ht = Me[x])); + do { + for (; P < 20; ) (it--, (nt |= (D.read_byte(st++) & 255) << P), (P += 8)); + if (((N = nt & $), (K = R), (J = U), (W = (J + N) * 3), (k = K[W]) === 0)) { + ((nt >>= K[W + 1]), (P -= K[W + 1]), (j.win[H++] = K[W + 2]), _--); + continue; + } + do { + if (((nt >>= K[W + 1]), (P -= K[W + 1]), (k & 16) !== 0)) { + for (k &= 15, tt = K[W + 2] + (nt & Me[k]), nt >>= k, P -= k; P < 15; ) + (it--, (nt |= (D.read_byte(st++) & 255) << P), (P += 8)); + ((N = nt & ht), (K = Z), (J = F), (W = (J + N) * 3), (k = K[W])); + do + if (((nt >>= K[W + 1]), (P -= K[W + 1]), (k & 16) !== 0)) { + for (k &= 15; P < k; ) (it--, (nt |= (D.read_byte(st++) & 255) << P), (P += 8)); + if (((C = K[W + 2] + (nt & Me[k])), (nt >>= k), (P -= k), (_ -= tt), H >= C)) + ((L = H - C), + H - L > 0 && 2 > H - L + ? ((j.win[H++] = j.win[L++]), (j.win[H++] = j.win[L++]), (tt -= 2)) + : (j.win.set(j.win.subarray(L, L + 2), H), + (H += 2), + (L += 2), + (tt -= 2))); + else { + L = H - C; + do L += j.end; + while (L < 0); + if (((k = j.end - L), tt > k)) { + if (((tt -= k), H - L > 0 && k > H - L)) + do j.win[H++] = j.win[L++]; + while (--k !== 0); + else (j.win.set(j.win.subarray(L, L + k), H), (H += k), (L += k), (k = 0)); + L = 0; + } + } + if (H - L > 0 && tt > H - L) + do j.win[H++] = j.win[L++]; + while (--tt !== 0); + else (j.win.set(j.win.subarray(L, L + tt), H), (H += tt), (L += tt), (tt = 0)); + break; + } else if ((k & 64) === 0) + ((N += K[W + 2]), (N += nt & Me[k]), (W = (J + N) * 3), (k = K[W])); + else + return ( + (D.msg = 'invalid distance code'), + (tt = D.avail_in - it), + (tt = P >> 3 < tt ? P >> 3 : tt), + (it += tt), + (st -= tt), + (P -= tt << 3), + (j.bitb = nt), + (j.bitk = P), + (D.avail_in = it), + (D.total_in += st - D.next_in_index), + (D.next_in_index = st), + (j.write = H), + Ut + ); + while (!0); + break; + } + if ((k & 64) === 0) { + if (((N += K[W + 2]), (N += nt & Me[k]), (W = (J + N) * 3), (k = K[W]) === 0)) { + ((nt >>= K[W + 1]), (P -= K[W + 1]), (j.win[H++] = K[W + 2]), _--); + break; + } + } else + return (k & 32) !== 0 + ? ((tt = D.avail_in - it), + (tt = P >> 3 < tt ? P >> 3 : tt), + (it += tt), + (st -= tt), + (P -= tt << 3), + (j.bitb = nt), + (j.bitk = P), + (D.avail_in = it), + (D.total_in += st - D.next_in_index), + (D.next_in_index = st), + (j.write = H), + bn) + : ((D.msg = 'invalid literal/length code'), + (tt = D.avail_in - it), + (tt = P >> 3 < tt ? P >> 3 : tt), + (it += tt), + (st -= tt), + (P -= tt << 3), + (j.bitb = nt), + (j.bitk = P), + (D.avail_in = it), + (D.total_in += st - D.next_in_index), + (D.next_in_index = st), + (j.write = H), + Ut); + } while (!0); + } while (_ >= 258 && it >= 10); + return ( + (tt = D.avail_in - it), + (tt = P >> 3 < tt ? P >> 3 : tt), + (it += tt), + (st -= tt), + (P -= tt << 3), + (j.bitb = nt), + (j.bitk = P), + (D.avail_in = it), + (D.total_in += st - D.next_in_index), + (D.next_in_index = st), + (j.write = H), + xt + ); + } + ((l.init = function (p, x, R, U, Z, F) { + ((u = Pu), (A = p), (E = x), (S = R), (O = U), (X = Z), (B = F), (f = null)); + }), + (l.proc = function (p, x, R) { + let U, + Z, + F, + j = 0, + D = 0, + N = 0, + K, + J, + k, + nt; + for ( + N = x.next_in_index, + K = x.avail_in, + j = p.bitb, + D = p.bitk, + J = p.write, + k = J < p.read ? p.read - J - 1 : p.end - J; + ; + ) + switch (u) { + case Pu: + if ( + k >= 258 && + K >= 10 && + ((p.bitb = j), + (p.bitk = D), + (x.avail_in = K), + (x.total_in += N - x.next_in_index), + (x.next_in_index = N), + (p.write = J), + (R = b(A, E, S, O, X, B, p, x)), + (N = x.next_in_index), + (K = x.avail_in), + (j = p.bitb), + (D = p.bitk), + (J = p.write), + (k = J < p.read ? p.read - J - 1 : p.end - J), + R != xt) + ) { + u = R == bn ? jf : $u; + break; + } + ((o = A), (f = S), (r = O), (u = H1)); + case H1: + for (U = o; D < U; ) { + if (K !== 0) R = xt; + else + return ( + (p.bitb = j), + (p.bitk = D), + (x.avail_in = K), + (x.total_in += N - x.next_in_index), + (x.next_in_index = N), + (p.write = J), + p.inflate_flush(x, R) + ); + (K--, (j |= (x.read_byte(N++) & 255) << D), (D += 8)); + } + if ( + ((Z = (r + (j & Me[U])) * 3), + (j >>>= f[Z + 1]), + (D -= f[Z + 1]), + (F = f[Z]), + F === 0) + ) { + ((h = f[Z + 2]), (u = z1)); + break; + } + if ((F & 16) !== 0) { + ((v = F & 15), (c = f[Z + 2]), (u = N1)); + break; + } + if ((F & 64) === 0) { + ((o = F), (r = Z / 3 + f[Z + 2])); + break; + } + if ((F & 32) !== 0) { + u = jf; + break; + } + return ( + (u = $u), + (x.msg = 'invalid literal/length code'), + (R = Ut), + (p.bitb = j), + (p.bitk = D), + (x.avail_in = K), + (x.total_in += N - x.next_in_index), + (x.next_in_index = N), + (p.write = J), + p.inflate_flush(x, R) + ); + case N1: + for (U = v; D < U; ) { + if (K !== 0) R = xt; + else + return ( + (p.bitb = j), + (p.bitk = D), + (x.avail_in = K), + (x.total_in += N - x.next_in_index), + (x.next_in_index = N), + (p.write = J), + p.inflate_flush(x, R) + ); + (K--, (j |= (x.read_byte(N++) & 255) << D), (D += 8)); + } + ((c += j & Me[U]), (j >>= U), (D -= U), (o = E), (f = X), (r = B), (u = B1)); + case B1: + for (U = o; D < U; ) { + if (K !== 0) R = xt; + else + return ( + (p.bitb = j), + (p.bitk = D), + (x.avail_in = K), + (x.total_in += N - x.next_in_index), + (x.next_in_index = N), + (p.write = J), + p.inflate_flush(x, R) + ); + (K--, (j |= (x.read_byte(N++) & 255) << D), (D += 8)); + } + if ( + ((Z = (r + (j & Me[U])) * 3), + (j >>= f[Z + 1]), + (D -= f[Z + 1]), + (F = f[Z]), + (F & 16) !== 0) + ) { + ((v = F & 15), (y = f[Z + 2]), (u = U1)); + break; + } + if ((F & 64) === 0) { + ((o = F), (r = Z / 3 + f[Z + 2])); + break; + } + return ( + (u = $u), + (x.msg = 'invalid distance code'), + (R = Ut), + (p.bitb = j), + (p.bitk = D), + (x.avail_in = K), + (x.total_in += N - x.next_in_index), + (x.next_in_index = N), + (p.write = J), + p.inflate_flush(x, R) + ); + case U1: + for (U = v; D < U; ) { + if (K !== 0) R = xt; + else + return ( + (p.bitb = j), + (p.bitk = D), + (x.avail_in = K), + (x.total_in += N - x.next_in_index), + (x.next_in_index = N), + (p.write = J), + p.inflate_flush(x, R) + ); + (K--, (j |= (x.read_byte(N++) & 255) << D), (D += 8)); + } + ((y += j & Me[U]), (j >>= U), (D -= U), (u = Q1)); + case Q1: + for (nt = J - y; nt < 0; ) nt += p.end; + for (; c !== 0; ) { + if ( + k === 0 && + (J == p.end && + p.read !== 0 && + ((J = 0), (k = J < p.read ? p.read - J - 1 : p.end - J)), + k === 0 && + ((p.write = J), + (R = p.inflate_flush(x, R)), + (J = p.write), + (k = J < p.read ? p.read - J - 1 : p.end - J), + J == p.end && + p.read !== 0 && + ((J = 0), (k = J < p.read ? p.read - J - 1 : p.end - J)), + k === 0)) + ) + return ( + (p.bitb = j), + (p.bitk = D), + (x.avail_in = K), + (x.total_in += N - x.next_in_index), + (x.next_in_index = N), + (p.write = J), + p.inflate_flush(x, R) + ); + ((p.win[J++] = p.win[nt++]), k--, nt == p.end && (nt = 0), c--); + } + u = Pu; + break; + case z1: + if ( + k === 0 && + (J == p.end && + p.read !== 0 && + ((J = 0), (k = J < p.read ? p.read - J - 1 : p.end - J)), + k === 0 && + ((p.write = J), + (R = p.inflate_flush(x, R)), + (J = p.write), + (k = J < p.read ? p.read - J - 1 : p.end - J), + J == p.end && + p.read !== 0 && + ((J = 0), (k = J < p.read ? p.read - J - 1 : p.end - J)), + k === 0)) + ) + return ( + (p.bitb = j), + (p.bitk = D), + (x.avail_in = K), + (x.total_in += N - x.next_in_index), + (x.next_in_index = N), + (p.write = J), + p.inflate_flush(x, R) + ); + ((R = xt), (p.win[J++] = h), k--, (u = Pu)); + break; + case jf: + if ( + (D > 7 && ((D -= 8), K++, N--), + (p.write = J), + (R = p.inflate_flush(x, R)), + (J = p.write), + (k = J < p.read ? p.read - J - 1 : p.end - J), + p.read != p.write) + ) + return ( + (p.bitb = j), + (p.bitk = D), + (x.avail_in = K), + (x.total_in += N - x.next_in_index), + (x.next_in_index = N), + (p.write = J), + p.inflate_flush(x, R) + ); + u = Y1; + case Y1: + return ( + (R = bn), + (p.bitb = j), + (p.bitk = D), + (x.avail_in = K), + (x.total_in += N - x.next_in_index), + (x.next_in_index = N), + (p.write = J), + p.inflate_flush(x, R) + ); + case $u: + return ( + (R = Ut), + (p.bitb = j), + (p.bitk = D), + (x.avail_in = K), + (x.total_in += N - x.next_in_index), + (x.next_in_index = N), + (p.write = J), + p.inflate_flush(x, R) + ); + default: + return ( + (R = ye), + (p.bitb = j), + (p.bitk = D), + (x.avail_in = K), + (x.total_in += N - x.next_in_index), + (x.next_in_index = N), + (p.write = J), + p.inflate_flush(x, R) + ); + } + }), + (l.free = function () {})); + } + const L1 = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15], + bl = 0, + Hf = 1, + G1 = 2, + X1 = 3, + V1 = 4, + Z1 = 5, + tc = 6, + ec = 7, + q1 = 8, + Da = 9; + function _A(l, u) { + const c = this; + let f = bl, + r = 0, + o = 0, + h = 0, + v; + const y = [0], + A = [0], + E = new WA(); + let S = 0, + O = new Int32Array(L2 * 3); + const X = 0, + B = new Wf(); + ((c.bitk = 0), + (c.bitb = 0), + (c.win = new Uint8Array(u)), + (c.end = u), + (c.read = 0), + (c.write = 0), + (c.reset = function (b, p) { + (p && (p[0] = X), + f == tc && E.free(b), + (f = bl), + (c.bitk = 0), + (c.bitb = 0), + (c.read = c.write = 0)); + }), + c.reset(l, null), + (c.inflate_flush = function (b, p) { + let x, R, U; + return ( + (R = b.next_out_index), + (U = c.read), + (x = (U <= c.write ? c.write : c.end) - U), + x > b.avail_out && (x = b.avail_out), + x !== 0 && p == xn && (p = xt), + (b.avail_out -= x), + (b.total_out += x), + b.next_out.set(c.win.subarray(U, U + x), R), + (R += x), + (U += x), + U == c.end && + ((U = 0), + c.write == c.end && (c.write = 0), + (x = c.write - U), + x > b.avail_out && (x = b.avail_out), + x !== 0 && p == xn && (p = xt), + (b.avail_out -= x), + (b.total_out += x), + b.next_out.set(c.win.subarray(U, U + x), R), + (R += x), + (U += x)), + (b.next_out_index = R), + (c.read = U), + p + ); + }), + (c.proc = function (b, p) { + let x, R, U, Z, F, j, D, N; + for ( + Z = b.next_in_index, + F = b.avail_in, + R = c.bitb, + U = c.bitk, + j = c.write, + D = j < c.read ? c.read - j - 1 : c.end - j; + ; + ) { + let K, J, k, nt, P, st, it, H; + switch (f) { + case bl: + for (; U < 3; ) { + if (F !== 0) p = xt; + else + return ( + (c.bitb = R), + (c.bitk = U), + (b.avail_in = F), + (b.total_in += Z - b.next_in_index), + (b.next_in_index = Z), + (c.write = j), + c.inflate_flush(b, p) + ); + (F--, (R |= (b.read_byte(Z++) & 255) << U), (U += 8)); + } + switch (((x = R & 7), (S = x & 1), x >>> 1)) { + case 0: + ((R >>>= 3), (U -= 3), (x = U & 7), (R >>>= x), (U -= x), (f = Hf)); + break; + case 1: + ((K = []), + (J = []), + (k = [[]]), + (nt = [[]]), + Wf.inflate_trees_fixed(K, J, k, nt), + E.init(K[0], J[0], k[0], 0, nt[0], 0), + (R >>>= 3), + (U -= 3), + (f = tc)); + break; + case 2: + ((R >>>= 3), (U -= 3), (f = X1)); + break; + case 3: + return ( + (R >>>= 3), + (U -= 3), + (f = Da), + (b.msg = 'invalid block type'), + (p = Ut), + (c.bitb = R), + (c.bitk = U), + (b.avail_in = F), + (b.total_in += Z - b.next_in_index), + (b.next_in_index = Z), + (c.write = j), + c.inflate_flush(b, p) + ); + } + break; + case Hf: + for (; U < 32; ) { + if (F !== 0) p = xt; + else + return ( + (c.bitb = R), + (c.bitk = U), + (b.avail_in = F), + (b.total_in += Z - b.next_in_index), + (b.next_in_index = Z), + (c.write = j), + c.inflate_flush(b, p) + ); + (F--, (R |= (b.read_byte(Z++) & 255) << U), (U += 8)); + } + if (((~R >>> 16) & 65535) != (R & 65535)) + return ( + (f = Da), + (b.msg = 'invalid stored block lengths'), + (p = Ut), + (c.bitb = R), + (c.bitk = U), + (b.avail_in = F), + (b.total_in += Z - b.next_in_index), + (b.next_in_index = Z), + (c.write = j), + c.inflate_flush(b, p) + ); + ((r = R & 65535), (R = U = 0), (f = r !== 0 ? G1 : S !== 0 ? ec : bl)); + break; + case G1: + if ( + F === 0 || + (D === 0 && + (j == c.end && + c.read !== 0 && + ((j = 0), (D = j < c.read ? c.read - j - 1 : c.end - j)), + D === 0 && + ((c.write = j), + (p = c.inflate_flush(b, p)), + (j = c.write), + (D = j < c.read ? c.read - j - 1 : c.end - j), + j == c.end && + c.read !== 0 && + ((j = 0), (D = j < c.read ? c.read - j - 1 : c.end - j)), + D === 0))) + ) + return ( + (c.bitb = R), + (c.bitk = U), + (b.avail_in = F), + (b.total_in += Z - b.next_in_index), + (b.next_in_index = Z), + (c.write = j), + c.inflate_flush(b, p) + ); + if ( + ((p = xt), + (x = r), + x > F && (x = F), + x > D && (x = D), + c.win.set(b.read_buf(Z, x), j), + (Z += x), + (F -= x), + (j += x), + (D -= x), + (r -= x) !== 0) + ) + break; + f = S !== 0 ? ec : bl; + break; + case X1: + for (; U < 14; ) { + if (F !== 0) p = xt; + else + return ( + (c.bitb = R), + (c.bitk = U), + (b.avail_in = F), + (b.total_in += Z - b.next_in_index), + (b.next_in_index = Z), + (c.write = j), + c.inflate_flush(b, p) + ); + (F--, (R |= (b.read_byte(Z++) & 255) << U), (U += 8)); + } + if (((o = x = R & 16383), (x & 31) > 29 || ((x >> 5) & 31) > 29)) + return ( + (f = Da), + (b.msg = 'too many length or distance symbols'), + (p = Ut), + (c.bitb = R), + (c.bitk = U), + (b.avail_in = F), + (b.total_in += Z - b.next_in_index), + (b.next_in_index = Z), + (c.write = j), + c.inflate_flush(b, p) + ); + if (((x = 258 + (x & 31) + ((x >> 5) & 31)), !v || v.length < x)) v = []; + else for (N = 0; N < x; N++) v[N] = 0; + ((R >>>= 14), (U -= 14), (h = 0), (f = V1)); + case V1: + for (; h < 4 + (o >>> 10); ) { + for (; U < 3; ) { + if (F !== 0) p = xt; + else + return ( + (c.bitb = R), + (c.bitk = U), + (b.avail_in = F), + (b.total_in += Z - b.next_in_index), + (b.next_in_index = Z), + (c.write = j), + c.inflate_flush(b, p) + ); + (F--, (R |= (b.read_byte(Z++) & 255) << U), (U += 8)); + } + ((v[L1[h++]] = R & 7), (R >>>= 3), (U -= 3)); + } + for (; h < 19; ) v[L1[h++]] = 0; + if (((y[0] = 7), (x = B.inflate_trees_bits(v, y, A, O, b)), x != xt)) + return ( + (p = x), + p == Ut && ((v = null), (f = Da)), + (c.bitb = R), + (c.bitk = U), + (b.avail_in = F), + (b.total_in += Z - b.next_in_index), + (b.next_in_index = Z), + (c.write = j), + c.inflate_flush(b, p) + ); + ((h = 0), (f = Z1)); + case Z1: + for (; (x = o), !(h >= 258 + (x & 31) + ((x >> 5) & 31)); ) { + let _, $; + for (x = y[0]; U < x; ) { + if (F !== 0) p = xt; + else + return ( + (c.bitb = R), + (c.bitk = U), + (b.avail_in = F), + (b.total_in += Z - b.next_in_index), + (b.next_in_index = Z), + (c.write = j), + c.inflate_flush(b, p) + ); + (F--, (R |= (b.read_byte(Z++) & 255) << U), (U += 8)); + } + if ( + ((x = O[(A[0] + (R & Me[x])) * 3 + 1]), + ($ = O[(A[0] + (R & Me[x])) * 3 + 2]), + $ < 16) + ) + ((R >>>= x), (U -= x), (v[h++] = $)); + else { + for (N = $ == 18 ? 7 : $ - 14, _ = $ == 18 ? 11 : 3; U < x + N; ) { + if (F !== 0) p = xt; + else + return ( + (c.bitb = R), + (c.bitk = U), + (b.avail_in = F), + (b.total_in += Z - b.next_in_index), + (b.next_in_index = Z), + (c.write = j), + c.inflate_flush(b, p) + ); + (F--, (R |= (b.read_byte(Z++) & 255) << U), (U += 8)); + } + if ( + ((R >>>= x), + (U -= x), + (_ += R & Me[N]), + (R >>>= N), + (U -= N), + (N = h), + (x = o), + N + _ > 258 + (x & 31) + ((x >> 5) & 31) || ($ == 16 && N < 1)) + ) + return ( + (v = null), + (f = Da), + (b.msg = 'invalid bit length repeat'), + (p = Ut), + (c.bitb = R), + (c.bitk = U), + (b.avail_in = F), + (b.total_in += Z - b.next_in_index), + (b.next_in_index = Z), + (c.write = j), + c.inflate_flush(b, p) + ); + $ = $ == 16 ? v[N - 1] : 0; + do v[N++] = $; + while (--_ !== 0); + h = N; + } + } + if ( + ((A[0] = -1), + (P = []), + (st = []), + (it = []), + (H = []), + (P[0] = 9), + (st[0] = 6), + (x = o), + (x = B.inflate_trees_dynamic( + 257 + (x & 31), + 1 + ((x >> 5) & 31), + v, + P, + st, + it, + H, + O, + b + )), + x != xt) + ) + return ( + x == Ut && ((v = null), (f = Da)), + (p = x), + (c.bitb = R), + (c.bitk = U), + (b.avail_in = F), + (b.total_in += Z - b.next_in_index), + (b.next_in_index = Z), + (c.write = j), + c.inflate_flush(b, p) + ); + (E.init(P[0], st[0], O, it[0], O, H[0]), (f = tc)); + case tc: + if ( + ((c.bitb = R), + (c.bitk = U), + (b.avail_in = F), + (b.total_in += Z - b.next_in_index), + (b.next_in_index = Z), + (c.write = j), + (p = E.proc(c, b, p)) != bn) + ) + return c.inflate_flush(b, p); + if ( + ((p = xt), + E.free(b), + (Z = b.next_in_index), + (F = b.avail_in), + (R = c.bitb), + (U = c.bitk), + (j = c.write), + (D = j < c.read ? c.read - j - 1 : c.end - j), + S === 0) + ) { + f = bl; + break; + } + f = ec; + case ec: + if ( + ((c.write = j), + (p = c.inflate_flush(b, p)), + (j = c.write), + (D = j < c.read ? c.read - j - 1 : c.end - j), + c.read != c.write) + ) + return ( + (c.bitb = R), + (c.bitk = U), + (b.avail_in = F), + (b.total_in += Z - b.next_in_index), + (b.next_in_index = Z), + (c.write = j), + c.inflate_flush(b, p) + ); + f = q1; + case q1: + return ( + (p = bn), + (c.bitb = R), + (c.bitk = U), + (b.avail_in = F), + (b.total_in += Z - b.next_in_index), + (b.next_in_index = Z), + (c.write = j), + c.inflate_flush(b, p) + ); + case Da: + return ( + (p = Ut), + (c.bitb = R), + (c.bitk = U), + (b.avail_in = F), + (b.total_in += Z - b.next_in_index), + (b.next_in_index = Z), + (c.write = j), + c.inflate_flush(b, p) + ); + default: + return ( + (p = ye), + (c.bitb = R), + (c.bitk = U), + (b.avail_in = F), + (b.total_in += Z - b.next_in_index), + (b.next_in_index = Z), + (c.write = j), + c.inflate_flush(b, p) + ); + } + } + }), + (c.free = function (b) { + (c.reset(b, null), (c.win = null), (O = null)); + }), + (c.set_dictionary = function (b, p, x) { + (c.win.set(b.subarray(p, p + x), 0), (c.read = c.write = x)); + }), + (c.sync_point = function () { + return f == Hf ? 1 : 0; + })); + } + const PA = 32, + $A = 8, + t8 = 0, + I1 = 1, + K1 = 2, + k1 = 3, + J1 = 4, + F1 = 5, + Nf = 6, + pi = 7, + W1 = 12, + ea = 13, + e8 = [0, 0, 255, 255]; + function n8() { + const l = this; + ((l.mode = 0), (l.method = 0), (l.was = [0]), (l.need = 0), (l.marker = 0), (l.wbits = 0)); + function u(c) { + return !c || !c.istate + ? ye + : ((c.total_in = c.total_out = 0), + (c.msg = null), + (c.istate.mode = pi), + c.istate.blocks.reset(c, null), + xt); + } + ((l.inflateEnd = function (c) { + return (l.blocks && l.blocks.free(c), (l.blocks = null), xt); + }), + (l.inflateInit = function (c, f) { + return ( + (c.msg = null), + (l.blocks = null), + f < 8 || f > 15 + ? (l.inflateEnd(c), ye) + : ((l.wbits = f), (c.istate.blocks = new _A(c, 1 << f)), u(c), xt) + ); + }), + (l.inflate = function (c, f) { + let r, o; + if (!c || !c.istate || !c.next_in) return ye; + const h = c.istate; + for (f = f == XA ? xn : xt, r = xn; ; ) + switch (h.mode) { + case t8: + if (c.avail_in === 0) return r; + if ( + ((r = f), + c.avail_in--, + c.total_in++, + ((h.method = c.read_byte(c.next_in_index++)) & 15) != $A) + ) { + ((h.mode = ea), (c.msg = 'unknown compression method'), (h.marker = 5)); + break; + } + if ((h.method >> 4) + 8 > h.wbits) { + ((h.mode = ea), (c.msg = 'invalid win size'), (h.marker = 5)); + break; + } + h.mode = I1; + case I1: + if (c.avail_in === 0) return r; + if ( + ((r = f), + c.avail_in--, + c.total_in++, + (o = c.read_byte(c.next_in_index++) & 255), + ((h.method << 8) + o) % 31 !== 0) + ) { + ((h.mode = ea), (c.msg = 'incorrect header check'), (h.marker = 5)); + break; + } + if ((o & PA) === 0) { + h.mode = pi; + break; + } + h.mode = K1; + case K1: + if (c.avail_in === 0) return r; + ((r = f), + c.avail_in--, + c.total_in++, + (h.need = ((c.read_byte(c.next_in_index++) & 255) << 24) & 4278190080), + (h.mode = k1)); + case k1: + if (c.avail_in === 0) return r; + ((r = f), + c.avail_in--, + c.total_in++, + (h.need += ((c.read_byte(c.next_in_index++) & 255) << 16) & 16711680), + (h.mode = J1)); + case J1: + if (c.avail_in === 0) return r; + ((r = f), + c.avail_in--, + c.total_in++, + (h.need += ((c.read_byte(c.next_in_index++) & 255) << 8) & 65280), + (h.mode = F1)); + case F1: + return c.avail_in === 0 + ? r + : ((r = f), + c.avail_in--, + c.total_in++, + (h.need += c.read_byte(c.next_in_index++) & 255), + (h.mode = Nf), + LA); + case Nf: + return ((h.mode = ea), (c.msg = 'need dictionary'), (h.marker = 0), ye); + case pi: + if (((r = h.blocks.proc(c, r)), r == Ut)) { + ((h.mode = ea), (h.marker = 0)); + break; + } + if ((r == xt && (r = f), r != bn)) return r; + ((r = f), h.blocks.reset(c, h.was), (h.mode = W1)); + case W1: + return ((c.avail_in = 0), bn); + case ea: + return Ut; + default: + return ye; + } + }), + (l.inflateSetDictionary = function (c, f, r) { + let o = 0, + h = r; + if (!c || !c.istate || c.istate.mode != Nf) return ye; + const v = c.istate; + return ( + h >= 1 << v.wbits && ((h = (1 << v.wbits) - 1), (o = r - h)), + v.blocks.set_dictionary(f, o, h), + (v.mode = pi), + xt + ); + }), + (l.inflateSync = function (c) { + let f, r, o, h, v; + if (!c || !c.istate) return ye; + const y = c.istate; + if ((y.mode != ea && ((y.mode = ea), (y.marker = 0)), (f = c.avail_in) === 0)) + return xn; + for (r = c.next_in_index, o = y.marker; f !== 0 && o < 4; ) + (c.read_byte(r) == e8[o] ? o++ : c.read_byte(r) !== 0 ? (o = 0) : (o = 4 - o), + r++, + f--); + return ( + (c.total_in += r - c.next_in_index), + (c.next_in_index = r), + (c.avail_in = f), + (y.marker = o), + o != 4 + ? Ut + : ((h = c.total_in), + (v = c.total_out), + u(c), + (c.total_in = h), + (c.total_out = v), + (y.mode = pi), + xt) + ); + }), + (l.inflateSyncPoint = function (c) { + return !c || !c.istate || !c.istate.blocks ? ye : c.istate.blocks.sync_point(); + })); + } + function G2() {} + G2.prototype = { + inflateInit(l) { + const u = this; + return ((u.istate = new n8()), l || (l = YA), u.istate.inflateInit(u, l)); + }, + inflate(l) { + const u = this; + return u.istate ? u.istate.inflate(u, l) : ye; + }, + inflateEnd() { + const l = this; + if (!l.istate) return ye; + const u = l.istate.inflateEnd(l); + return ((l.istate = null), u); + }, + inflateSync() { + const l = this; + return l.istate ? l.istate.inflateSync(l) : ye; + }, + inflateSetDictionary(l, u) { + const c = this; + return c.istate ? c.istate.inflateSetDictionary(c, l, u) : ye; + }, + read_byte(l) { + return this.next_in[l]; + }, + read_buf(l, u) { + return this.next_in.subarray(l, l + u); + }, + }; + function a8(l) { + const u = this, + c = new G2(), + f = l && l.chunkSize ? Math.floor(l.chunkSize * 2) : 128 * 1024, + r = GA, + o = new Uint8Array(f); + let h = !1; + (c.inflateInit(), + (c.next_out = o), + (u.append = function (v, y) { + const A = []; + let E, + S, + O = 0, + X = 0, + B = 0; + if (v.length !== 0) { + ((c.next_in_index = 0), (c.next_in = v), (c.avail_in = v.length)); + do { + if ( + ((c.next_out_index = 0), + (c.avail_out = f), + c.avail_in === 0 && !h && ((c.next_in_index = 0), (h = !0)), + (E = c.inflate(r)), + h && E === xn) + ) { + if (c.avail_in !== 0) throw new Error('inflating: bad input'); + } else if (E !== xt && E !== bn) throw new Error('inflating: ' + c.msg); + if ((h || E === bn) && c.avail_in === v.length) + throw new Error('inflating: bad input'); + (c.next_out_index && + (c.next_out_index === f + ? A.push(new Uint8Array(o)) + : A.push(o.subarray(0, c.next_out_index))), + (B += c.next_out_index), + y && + c.next_in_index > 0 && + c.next_in_index != O && + (y(c.next_in_index), (O = c.next_in_index))); + } while (c.avail_in > 0 || c.avail_out === 0); + return ( + A.length > 1 + ? ((S = new Uint8Array(B)), + A.forEach(function (b) { + (S.set(b, X), (X += b.length)); + })) + : (S = A[0] ? new Uint8Array(A[0]) : new Uint8Array()), + S + ); + } + }), + (u.flush = function () { + c.inflateEnd(); + })); + } + const ja = 4294967295, + la = 65535, + l8 = 8, + i8 = 0, + u8 = 99, + c8 = 67324752, + X2 = 134695760, + s8 = X2, + _1 = 33639248, + f8 = 101010256, + P1 = 101075792, + r8 = 117853008, + pn = 22, + Bf = 20, + Uf = 56, + o8 = 12, + d8 = 20, + $1 = 4, + h8 = 1, + m8 = 39169, + g8 = 10, + A8 = 1, + v8 = 21589, + y8 = 28789, + E8 = 25461, + p8 = 6534, + t2 = 1, + b8 = 6, + e2 = 8, + n2 = 2048, + a2 = 16, + x8 = 61440, + S8 = 16384, + T8 = 73, + l2 = '/', + Qf = 30, + C8 = 10, + O8 = 14, + w8 = 18, + Jt = void 0, + sa = 'undefined', + Mi = 'function'; + class i2 { + constructor(u) { + return class extends TransformStream { + constructor(c, f) { + const r = new u(f); + super({ + transform(o, h) { + h.enqueue(r.append(o)); + }, + flush(o) { + const h = r.flush(); + h && o.enqueue(h); + }, + }); + } + }; + } + } + const R8 = 64; + let V2 = 2; + try { + typeof navigator != sa && + navigator.hardwareConcurrency && + (V2 = navigator.hardwareConcurrency); + } catch {} + const D8 = { + chunkSize: 512 * 1024, + maxWorkers: V2, + terminateWorkerTimeout: 5e3, + useWebWorkers: !0, + useCompressionStream: !0, + workerScripts: Jt, + CompressionStreamNative: typeof CompressionStream != sa && CompressionStream, + DecompressionStreamNative: typeof DecompressionStream != sa && DecompressionStream, + }, + ia = Object.assign({}, D8); + function Z2() { + return ia; + } + function M8(l) { + return Math.max(l.chunkSize, R8); + } + function q2(l) { + const { + baseURL: u, + chunkSize: c, + maxWorkers: f, + terminateWorkerTimeout: r, + useCompressionStream: o, + useWebWorkers: h, + Deflate: v, + Inflate: y, + CompressionStream: A, + DecompressionStream: E, + workerScripts: S, + } = l; + if ( + (na('baseURL', u), + na('chunkSize', c), + na('maxWorkers', f), + na('terminateWorkerTimeout', r), + na('useCompressionStream', o), + na('useWebWorkers', h), + v && (ia.CompressionStream = new i2(v)), + y && (ia.DecompressionStream = new i2(y)), + na('CompressionStream', A), + na('DecompressionStream', E), + S !== Jt) + ) { + const { deflate: O, inflate: X } = S; + if (((O || X) && (ia.workerScripts || (ia.workerScripts = {})), O)) { + if (!Array.isArray(O)) throw new Error('workerScripts.deflate must be an array'); + ia.workerScripts.deflate = O; + } + if (X) { + if (!Array.isArray(X)) throw new Error('workerScripts.inflate must be an array'); + ia.workerScripts.inflate = X; + } + } + } + function na(l, u) { + u !== Jt && (ia[l] = u); + } + function j8() { + return 'application/octet-stream'; + } + const I2 = []; + for (let l = 0; l < 256; l++) { + let u = l; + for (let c = 0; c < 8; c++) u & 1 ? (u = (u >>> 1) ^ 3988292384) : (u = u >>> 1); + I2[l] = u; + } + class cc { + constructor(u) { + this.crc = u || -1; + } + append(u) { + let c = this.crc | 0; + for (let f = 0, r = u.length | 0; f < r; f++) c = (c >>> 8) ^ I2[(c ^ u[f]) & 255]; + this.crc = c; + } + get() { + return ~this.crc; + } + } + class K2 extends TransformStream { + constructor() { + let u; + const c = new cc(); + (super({ + transform(f, r) { + (c.append(f), r.enqueue(f)); + }, + flush() { + const f = new Uint8Array(4); + (new DataView(f.buffer).setUint32(0, c.get()), (u.value = f)); + }, + }), + (u = this)); + } + } + function H8(l) { + if (typeof TextEncoder == sa) { + l = unescape(encodeURIComponent(l)); + const u = new Uint8Array(l.length); + for (let c = 0; c < u.length; c++) u[c] = l.charCodeAt(c); + return u; + } else return new TextEncoder().encode(l); + } + const re = { + concat(l, u) { + if (l.length === 0 || u.length === 0) return l.concat(u); + const c = l[l.length - 1], + f = re.getPartial(c); + return f === 32 ? l.concat(u) : re._shiftRight(u, f, c | 0, l.slice(0, l.length - 1)); + }, + bitLength(l) { + const u = l.length; + if (u === 0) return 0; + const c = l[u - 1]; + return (u - 1) * 32 + re.getPartial(c); + }, + clamp(l, u) { + if (l.length * 32 < u) return l; + l = l.slice(0, Math.ceil(u / 32)); + const c = l.length; + return ( + (u = u & 31), + c > 0 && u && (l[c - 1] = re.partial(u, l[c - 1] & (2147483648 >> (u - 1)), 1)), + l + ); + }, + partial(l, u, c) { + return l === 32 ? u : (c ? u | 0 : u << (32 - l)) + l * 1099511627776; + }, + getPartial(l) { + return Math.round(l / 1099511627776) || 32; + }, + _shiftRight(l, u, c, f) { + for (f === void 0 && (f = []); u >= 32; u -= 32) (f.push(c), (c = 0)); + if (u === 0) return f.concat(l); + for (let h = 0; h < l.length; h++) (f.push(c | (l[h] >>> u)), (c = l[h] << (32 - u))); + const r = l.length ? l[l.length - 1] : 0, + o = re.getPartial(r); + return (f.push(re.partial((u + o) & 31, u + o > 32 ? c : f.pop(), 1)), f); + }, + }, + sc = { + bytes: { + fromBits(l) { + const c = re.bitLength(l) / 8, + f = new Uint8Array(c); + let r; + for (let o = 0; o < c; o++) + ((o & 3) === 0 && (r = l[o / 4]), (f[o] = r >>> 24), (r <<= 8)); + return f; + }, + toBits(l) { + const u = []; + let c, + f = 0; + for (c = 0; c < l.length; c++) + ((f = (f << 8) | l[c]), (c & 3) === 3 && (u.push(f), (f = 0))); + return (c & 3 && u.push(re.partial(8 * (c & 3), f)), u); + }, + }, + }, + k2 = {}; + k2.sha1 = class { + constructor(l) { + const u = this; + ((u.blockSize = 512), + (u._init = [1732584193, 4023233417, 2562383102, 271733878, 3285377520]), + (u._key = [1518500249, 1859775393, 2400959708, 3395469782]), + l + ? ((u._h = l._h.slice(0)), (u._buffer = l._buffer.slice(0)), (u._length = l._length)) + : u.reset()); + } + reset() { + const l = this; + return ((l._h = l._init.slice(0)), (l._buffer = []), (l._length = 0), l); + } + update(l) { + const u = this; + typeof l == 'string' && (l = sc.utf8String.toBits(l)); + const c = (u._buffer = re.concat(u._buffer, l)), + f = u._length, + r = (u._length = f + re.bitLength(l)); + if (r > 9007199254740991) throw new Error('Cannot hash more than 2^53 - 1 bits'); + const o = new Uint32Array(c); + let h = 0; + for ( + let v = u.blockSize + f - ((u.blockSize + f) & (u.blockSize - 1)); + v <= r; + v += u.blockSize + ) + (u._block(o.subarray(16 * h, 16 * (h + 1))), (h += 1)); + return (c.splice(0, 16 * h), u); + } + finalize() { + const l = this; + let u = l._buffer; + const c = l._h; + u = re.concat(u, [re.partial(1, 1)]); + for (let f = u.length + 2; f & 15; f++) u.push(0); + for (u.push(Math.floor(l._length / 4294967296)), u.push(l._length | 0); u.length; ) + l._block(u.splice(0, 16)); + return (l.reset(), c); + } + _f(l, u, c, f) { + if (l <= 19) return (u & c) | (~u & f); + if (l <= 39) return u ^ c ^ f; + if (l <= 59) return (u & c) | (u & f) | (c & f); + if (l <= 79) return u ^ c ^ f; + } + _S(l, u) { + return (u << l) | (u >>> (32 - l)); + } + _block(l) { + const u = this, + c = u._h, + f = Array(80); + for (let A = 0; A < 16; A++) f[A] = l[A]; + let r = c[0], + o = c[1], + h = c[2], + v = c[3], + y = c[4]; + for (let A = 0; A <= 79; A++) { + A >= 16 && (f[A] = u._S(1, f[A - 3] ^ f[A - 8] ^ f[A - 14] ^ f[A - 16])); + const E = (u._S(5, r) + u._f(A, o, h, v) + y + f[A] + u._key[Math.floor(A / 20)]) | 0; + ((y = v), (v = h), (h = u._S(30, o)), (o = r), (r = E)); + } + ((c[0] = (c[0] + r) | 0), + (c[1] = (c[1] + o) | 0), + (c[2] = (c[2] + h) | 0), + (c[3] = (c[3] + v) | 0), + (c[4] = (c[4] + y) | 0)); + } + }; + const J2 = {}; + J2.aes = class { + constructor(l) { + const u = this; + ((u._tables = [ + [[], [], [], [], []], + [[], [], [], [], []], + ]), + u._tables[0][0][0] || u._precompute()); + const c = u._tables[0][4], + f = u._tables[1], + r = l.length; + let o, + h, + v, + y = 1; + if (r !== 4 && r !== 6 && r !== 8) throw new Error('invalid aes key size'); + for (u._key = [(h = l.slice(0)), (v = [])], o = r; o < 4 * r + 28; o++) { + let A = h[o - 1]; + ((o % r === 0 || (r === 8 && o % r === 4)) && + ((A = + (c[A >>> 24] << 24) ^ + (c[(A >> 16) & 255] << 16) ^ + (c[(A >> 8) & 255] << 8) ^ + c[A & 255]), + o % r === 0 && + ((A = (A << 8) ^ (A >>> 24) ^ (y << 24)), (y = (y << 1) ^ ((y >> 7) * 283)))), + (h[o] = h[o - r] ^ A)); + } + for (let A = 0; o; A++, o--) { + const E = h[A & 3 ? o : o - 4]; + o <= 4 || A < 4 + ? (v[A] = E) + : (v[A] = + f[0][c[E >>> 24]] ^ + f[1][c[(E >> 16) & 255]] ^ + f[2][c[(E >> 8) & 255]] ^ + f[3][c[E & 255]]); + } + } + encrypt(l) { + return this._crypt(l, 0); + } + decrypt(l) { + return this._crypt(l, 1); + } + _precompute() { + const l = this._tables[0], + u = this._tables[1], + c = l[4], + f = u[4], + r = [], + o = []; + let h, v, y, A; + for (let E = 0; E < 256; E++) o[(r[E] = (E << 1) ^ ((E >> 7) * 283)) ^ E] = E; + for (let E = (h = 0); !c[E]; E ^= v || 1, h = o[h] || 1) { + let S = h ^ (h << 1) ^ (h << 2) ^ (h << 3) ^ (h << 4); + ((S = (S >> 8) ^ (S & 255) ^ 99), (c[E] = S), (f[S] = E), (A = r[(y = r[(v = r[E])])])); + let O = (A * 16843009) ^ (y * 65537) ^ (v * 257) ^ (E * 16843008), + X = (r[S] * 257) ^ (S * 16843008); + for (let B = 0; B < 4; B++) + ((l[B][E] = X = (X << 24) ^ (X >>> 8)), (u[B][S] = O = (O << 24) ^ (O >>> 8))); + } + for (let E = 0; E < 5; E++) ((l[E] = l[E].slice(0)), (u[E] = u[E].slice(0))); + } + _crypt(l, u) { + if (l.length !== 4) throw new Error('invalid aes block size'); + const c = this._key[u], + f = c.length / 4 - 2, + r = [0, 0, 0, 0], + o = this._tables[u], + h = o[0], + v = o[1], + y = o[2], + A = o[3], + E = o[4]; + let S = l[0] ^ c[0], + O = l[u ? 3 : 1] ^ c[1], + X = l[2] ^ c[2], + B = l[u ? 1 : 3] ^ c[3], + b = 4, + p, + x, + R; + for (let U = 0; U < f; U++) + ((p = h[S >>> 24] ^ v[(O >> 16) & 255] ^ y[(X >> 8) & 255] ^ A[B & 255] ^ c[b]), + (x = h[O >>> 24] ^ v[(X >> 16) & 255] ^ y[(B >> 8) & 255] ^ A[S & 255] ^ c[b + 1]), + (R = h[X >>> 24] ^ v[(B >> 16) & 255] ^ y[(S >> 8) & 255] ^ A[O & 255] ^ c[b + 2]), + (B = h[B >>> 24] ^ v[(S >> 16) & 255] ^ y[(O >> 8) & 255] ^ A[X & 255] ^ c[b + 3]), + (b += 4), + (S = p), + (O = x), + (X = R)); + for (let U = 0; U < 4; U++) + ((r[u ? 3 & -U : U] = + (E[S >>> 24] << 24) ^ + (E[(O >> 16) & 255] << 16) ^ + (E[(X >> 8) & 255] << 8) ^ + E[B & 255] ^ + c[b++]), + (p = S), + (S = O), + (O = X), + (X = B), + (B = p)); + return r; + } + }; + const N8 = { + getRandomValues(l) { + const u = new Uint32Array(l.buffer), + c = (f) => { + let r = 987654321; + const o = 4294967295; + return function () { + return ( + (r = (36969 * (r & 65535) + (r >> 16)) & o), + (f = (18e3 * (f & 65535) + (f >> 16)) & o), + ((((r << 16) + f) & o) / 4294967296 + 0.5) * (Math.random() > 0.5 ? 1 : -1) + ); + }; + }; + for (let f = 0, r; f < l.length; f += 4) { + const o = c((r || Math.random()) * 4294967296); + ((r = o() * 987654071), (u[f / 4] = (o() * 4294967296) | 0)); + } + return l; + }, + }, + F2 = {}; + F2.ctrGladman = class { + constructor(l, u) { + ((this._prf = l), (this._initIv = u), (this._iv = u)); + } + reset() { + this._iv = this._initIv; + } + update(l) { + return this.calculate(this._prf, l, this._iv); + } + incWord(l) { + if (((l >> 24) & 255) === 255) { + let u = (l >> 16) & 255, + c = (l >> 8) & 255, + f = l & 255; + (u === 255 ? ((u = 0), c === 255 ? ((c = 0), f === 255 ? (f = 0) : ++f) : ++c) : ++u, + (l = 0), + (l += u << 16), + (l += c << 8), + (l += f)); + } else l += 1 << 24; + return l; + } + incCounter(l) { + (l[0] = this.incWord(l[0])) === 0 && (l[1] = this.incWord(l[1])); + } + calculate(l, u, c) { + let f; + if (!(f = u.length)) return []; + const r = re.bitLength(u); + for (let o = 0; o < f; o += 4) { + this.incCounter(c); + const h = l.encrypt(c); + ((u[o] ^= h[0]), (u[o + 1] ^= h[1]), (u[o + 2] ^= h[2]), (u[o + 3] ^= h[3])); + } + return re.clamp(u, r); + } + }; + const Ha = { + importKey(l) { + return new Ha.hmacSha1(sc.bytes.toBits(l)); + }, + pbkdf2(l, u, c, f) { + if (((c = c || 1e4), f < 0 || c < 0)) throw new Error('invalid params to pbkdf2'); + const r = ((f >> 5) + 1) << 2; + let o, h, v, y, A; + const E = new ArrayBuffer(r), + S = new DataView(E); + let O = 0; + const X = re; + for (u = sc.bytes.toBits(u), A = 1; O < (r || 1); A++) { + for (o = h = l.encrypt(X.concat(u, [A])), v = 1; v < c; v++) + for (h = l.encrypt(h), y = 0; y < h.length; y++) o[y] ^= h[y]; + for (v = 0; O < (r || 1) && v < o.length; v++) (S.setInt32(O, o[v]), (O += 4)); + } + return E.slice(0, f / 8); + }, + }; + Ha.hmacSha1 = class { + constructor(l) { + const u = this, + c = (u._hash = k2.sha1), + f = [[], []]; + u._baseHash = [new c(), new c()]; + const r = u._baseHash[0].blockSize / 32; + l.length > r && (l = new c().update(l).finalize()); + for (let o = 0; o < r; o++) ((f[0][o] = l[o] ^ 909522486), (f[1][o] = l[o] ^ 1549556828)); + (u._baseHash[0].update(f[0]), + u._baseHash[1].update(f[1]), + (u._resultHash = new c(u._baseHash[0]))); + } + reset() { + const l = this; + ((l._resultHash = new l._hash(l._baseHash[0])), (l._updated = !1)); + } + update(l) { + const u = this; + ((u._updated = !0), u._resultHash.update(l)); + } + digest() { + const l = this, + u = l._resultHash.finalize(), + c = new l._hash(l._baseHash[1]).update(u).finalize(); + return (l.reset(), c); + } + encrypt(l) { + if (this._updated) throw new Error('encrypt on already updated hmac called!'); + return (this.update(l), this.digest(l)); + } + }; + const B8 = typeof crypto != sa && typeof crypto.getRandomValues == Mi, + rr = 'Invalid password', + or = 'Invalid signature', + dr = 'zipjs-abort-check-password'; + function W2(l) { + return B8 ? crypto.getRandomValues(l) : N8.getRandomValues(l); + } + const xl = 16, + U8 = 'raw', + _2 = { name: 'PBKDF2' }, + Q8 = { name: 'HMAC' }, + z8 = 'SHA-1', + Y8 = Object.assign({ hash: Q8 }, _2), + _f = Object.assign({ iterations: 1e3, hash: { name: z8 } }, _2), + L8 = ['deriveBits'], + Ci = [8, 12, 16], + bi = [16, 24, 32], + aa = 10, + G8 = [0, 0, 0, 0], + oc = typeof crypto != sa, + ji = oc && crypto.subtle, + P2 = oc && typeof ji != sa, + Pe = sc.bytes, + X8 = J2.aes, + V8 = F2.ctrGladman, + Z8 = Ha.hmacSha1; + let u2 = oc && P2 && typeof ji.importKey == Mi, + c2 = oc && P2 && typeof ji.deriveBits == Mi; + class q8 extends TransformStream { + constructor({ + password: u, + rawPassword: c, + signed: f, + encryptionStrength: r, + checkPasswordOnly: o, + }) { + super({ + start() { + Object.assign(this, { + ready: new Promise((h) => (this.resolveReady = h)), + password: eh(u, c), + signed: f, + strength: r - 1, + pending: new Uint8Array(), + }); + }, + async transform(h, v) { + const y = this, + { password: A, strength: E, resolveReady: S, ready: O } = y; + A + ? (await K8(y, E, A, Xe(h, 0, Ci[E] + 2)), + (h = Xe(h, Ci[E] + 2)), + o ? v.error(new Error(dr)) : S()) + : await O; + const X = new Uint8Array(h.length - aa - ((h.length - aa) % xl)); + v.enqueue($2(y, h, X, 0, aa, !0)); + }, + async flush(h) { + const { signed: v, ctr: y, hmac: A, pending: E, ready: S } = this; + if (A && y) { + await S; + const O = Xe(E, 0, E.length - aa), + X = Xe(E, E.length - aa); + let B = new Uint8Array(); + if (O.length) { + const b = wi(Pe, O); + A.update(b); + const p = y.update(b); + B = Oi(Pe, p); + } + if (v) { + const b = Xe(Oi(Pe, A.digest()), 0, aa); + for (let p = 0; p < aa; p++) if (b[p] != X[p]) throw new Error(or); + } + h.enqueue(B); + } + }, + }); + } + } + class I8 extends TransformStream { + constructor({ password: u, rawPassword: c, encryptionStrength: f }) { + let r; + (super({ + start() { + Object.assign(this, { + ready: new Promise((o) => (this.resolveReady = o)), + password: eh(u, c), + strength: f - 1, + pending: new Uint8Array(), + }); + }, + async transform(o, h) { + const v = this, + { password: y, strength: A, resolveReady: E, ready: S } = v; + let O = new Uint8Array(); + y ? ((O = await k8(v, A, y)), E()) : await S; + const X = new Uint8Array(O.length + o.length - (o.length % xl)); + (X.set(O, 0), h.enqueue($2(v, o, X, O.length, 0))); + }, + async flush(o) { + const { ctr: h, hmac: v, pending: y, ready: A } = this; + if (v && h) { + await A; + let E = new Uint8Array(); + if (y.length) { + const S = h.update(wi(Pe, y)); + (v.update(S), (E = Oi(Pe, S))); + } + ((r.signature = Oi(Pe, v.digest()).slice(0, aa)), o.enqueue(hr(E, r.signature))); + } + }, + }), + (r = this)); + } + } + function $2(l, u, c, f, r, o) { + const { ctr: h, hmac: v, pending: y } = l, + A = u.length - r; + y.length && ((u = hr(y, u)), (c = W8(c, A - (A % xl)))); + let E; + for (E = 0; E <= A - xl; E += xl) { + const S = wi(Pe, Xe(u, E, E + xl)); + o && v.update(S); + const O = h.update(S); + (o || v.update(O), c.set(Oi(Pe, O), E + f)); + } + return ((l.pending = Xe(u, E)), c); + } + async function K8(l, u, c, f) { + const r = await th(l, u, c, Xe(f, 0, Ci[u])), + o = Xe(f, Ci[u]); + if (r[0] != o[0] || r[1] != o[1]) throw new Error(rr); + } + async function k8(l, u, c) { + const f = W2(new Uint8Array(Ci[u])), + r = await th(l, u, c, f); + return hr(f, r); + } + async function th(l, u, c, f) { + l.password = null; + const r = await J8(U8, c, Y8, !1, L8), + o = await F8(Object.assign({ salt: f }, _f), r, 8 * (bi[u] * 2 + 2)), + h = new Uint8Array(o), + v = wi(Pe, Xe(h, 0, bi[u])), + y = wi(Pe, Xe(h, bi[u], bi[u] * 2)), + A = Xe(h, bi[u] * 2); + return ( + Object.assign(l, { + keys: { key: v, authentication: y, passwordVerification: A }, + ctr: new V8(new X8(v), Array.from(G8)), + hmac: new Z8(y), + }), + A + ); + } + async function J8(l, u, c, f, r) { + if (u2) + try { + return await ji.importKey(l, u, c, f, r); + } catch { + return ((u2 = !1), Ha.importKey(u)); + } + else return Ha.importKey(u); + } + async function F8(l, u, c) { + if (c2) + try { + return await ji.deriveBits(l, u, c); + } catch { + return ((c2 = !1), Ha.pbkdf2(u, l.salt, _f.iterations, c)); + } + else return Ha.pbkdf2(u, l.salt, _f.iterations, c); + } + function eh(l, u) { + return u === Jt ? H8(l) : u; + } + function hr(l, u) { + let c = l; + return ( + l.length + u.length && + ((c = new Uint8Array(l.length + u.length)), c.set(l, 0), c.set(u, l.length)), + c + ); + } + function W8(l, u) { + if (u && u > l.length) { + const c = l; + ((l = new Uint8Array(u)), l.set(c, 0)); + } + return l; + } + function Xe(l, u, c) { + return l.subarray(u, c); + } + function Oi(l, u) { + return l.fromBits(u); + } + function wi(l, u) { + return l.toBits(u); + } + const Ti = 12; + class _8 extends TransformStream { + constructor({ password: u, passwordVerification: c, checkPasswordOnly: f }) { + super({ + start() { + (Object.assign(this, { password: u, passwordVerification: c }), nh(this, u)); + }, + transform(r, o) { + const h = this; + if (h.password) { + const v = s2(h, r.subarray(0, Ti)); + if (((h.password = null), v.at(-1) != h.passwordVerification)) throw new Error(rr); + r = r.subarray(Ti); + } + f ? o.error(new Error(dr)) : o.enqueue(s2(h, r)); + }, + }); + } + } + class P8 extends TransformStream { + constructor({ password: u, passwordVerification: c }) { + super({ + start() { + (Object.assign(this, { password: u, passwordVerification: c }), nh(this, u)); + }, + transform(f, r) { + const o = this; + let h, v; + if (o.password) { + o.password = null; + const y = W2(new Uint8Array(Ti)); + ((y[Ti - 1] = o.passwordVerification), + (h = new Uint8Array(f.length + y.length)), + h.set(f2(o, y), 0), + (v = Ti)); + } else ((h = new Uint8Array(f.length)), (v = 0)); + (h.set(f2(o, f), v), r.enqueue(h)); + }, + }); + } + } + function s2(l, u) { + const c = new Uint8Array(u.length); + for (let f = 0; f < u.length; f++) ((c[f] = ah(l) ^ u[f]), mr(l, c[f])); + return c; + } + function f2(l, u) { + const c = new Uint8Array(u.length); + for (let f = 0; f < u.length; f++) ((c[f] = ah(l) ^ u[f]), mr(l, u[f])); + return c; + } + function nh(l, u) { + const c = [305419896, 591751049, 878082192]; + Object.assign(l, { keys: c, crcKey0: new cc(c[0]), crcKey2: new cc(c[2]) }); + for (let f = 0; f < u.length; f++) mr(l, u.charCodeAt(f)); + } + function mr(l, u) { + let [c, f, r] = l.keys; + (l.crcKey0.append([u]), + (c = ~l.crcKey0.get()), + (f = r2(Math.imul(r2(f + lh(c)), 134775813) + 1)), + l.crcKey2.append([f >>> 24]), + (r = ~l.crcKey2.get()), + (l.keys = [c, f, r])); + } + function ah(l) { + const u = l.keys[2] | 2; + return lh(Math.imul(u, u ^ 1) >>> 8); + } + function lh(l) { + return l & 255; + } + function r2(l) { + return l & 4294967295; + } + const gr = 'Invalid uncompressed size', + o2 = 'deflate-raw'; + class $8 extends TransformStream { + constructor(u, { chunkSize: c, CompressionStream: f, CompressionStreamNative: r }) { + super({}); + const { + compressed: o, + encrypted: h, + useCompressionStream: v, + zipCrypto: y, + signed: A, + level: E, + } = u, + S = this; + let O, + X, + B = super.readable; + ((!h || y) && A && ((O = new K2()), (B = Sn(B, O))), + o && (B = uh(B, v, { level: E, chunkSize: c }, r, f)), + h && (y ? (B = Sn(B, new P8(u))) : ((X = new I8(u)), (B = Sn(B, X)))), + ih(S, B, () => { + let b; + (h && !y && (b = X.signature), + (!h || y) && A && (b = new DataView(O.value.buffer).getUint32(0)), + (S.signature = b)); + })); + } + } + class t3 extends TransformStream { + constructor(u, { chunkSize: c, DecompressionStream: f, DecompressionStreamNative: r }) { + super({}); + const { + zipCrypto: o, + encrypted: h, + signed: v, + signature: y, + compressed: A, + useCompressionStream: E, + } = u; + let S, + O, + X = super.readable; + (h && (o ? (X = Sn(X, new _8(u))) : ((O = new q8(u)), (X = Sn(X, O)))), + A && (X = uh(X, E, { chunkSize: c }, r, f)), + (!h || o) && v && ((S = new K2()), (X = Sn(X, S))), + ih(this, X, () => { + if ((!h || o) && v) { + const B = new DataView(S.value.buffer); + if (y != B.getUint32(0, !1)) throw new Error(or); + } + })); + } + } + function ih(l, u, c) { + ((u = Sn(u, new TransformStream({ flush: c }))), + Object.defineProperty(l, 'readable', { + get() { + return u; + }, + })); + } + function uh(l, u, c, f, r) { + try { + const o = u && f ? f : r; + l = Sn(l, new o(o2, c)); + } catch (o) { + if (u) l = Sn(l, new r(o2, c)); + else throw o; + } + return l; + } + function Sn(l, u) { + return l.pipeThrough(u); + } + const e3 = 'message', + n3 = 'start', + a3 = 'pull', + d2 = 'data', + l3 = 'ack', + h2 = 'close', + i3 = 'deflate', + ch = 'inflate'; + class u3 extends TransformStream { + constructor(u, c) { + super({}); + const f = this, + { codecType: r } = u; + let o; + (r.startsWith(i3) ? (o = $8) : r.startsWith(ch) && (o = t3), (f.outputSize = 0)); + let h = 0; + const v = new o(u, c), + y = super.readable, + A = new TransformStream({ + transform(S, O) { + S && S.length && ((h += S.length), O.enqueue(S)); + }, + flush() { + Object.assign(f, { inputSize: h }); + }, + }), + E = new TransformStream({ + transform(S, O) { + if ( + S && + S.length && + (O.enqueue(S), + (f.outputSize += S.length), + u.outputSize && f.outputSize > u.outputSize) + ) + throw new Error(gr); + }, + flush() { + const { signature: S } = v; + Object.assign(f, { signature: S, inputSize: h }); + }, + }); + Object.defineProperty(f, 'readable', { + get() { + return y.pipeThrough(A).pipeThrough(v).pipeThrough(E); + }, + }); + } + } + class c3 extends TransformStream { + constructor(u) { + let c; + super({ + transform: f, + flush(r) { + c && c.length && r.enqueue(c); + }, + }); + function f(r, o) { + if (c) { + const h = new Uint8Array(c.length + r.length); + (h.set(c), h.set(r, c.length), (r = h), (c = null)); + } + r.length > u ? (o.enqueue(r.slice(0, u)), f(r.slice(u), o)) : (c = r); + } + } + } + let sh = typeof Worker != sa; + class zf { + constructor( + u, + { readable: c, writable: f }, + { + options: r, + config: o, + streamOptions: h, + useWebWorkers: v, + transferStreams: y, + scripts: A, + }, + E + ) { + const { signal: S } = h; + return ( + Object.assign(u, { + busy: !0, + readable: c.pipeThrough(new c3(o.chunkSize)).pipeThrough(new s3(h), { signal: S }), + writable: f, + options: Object.assign({}, r), + scripts: A, + transferStreams: y, + terminate() { + return new Promise((O) => { + const { worker: X, busy: B } = u; + X + ? (B ? (u.resolveTerminated = O) : (X.terminate(), O()), (u.interface = null)) + : O(); + }); + }, + onTaskFinished() { + const { resolveTerminated: O } = u; + (O && + ((u.resolveTerminated = null), (u.terminated = !0), u.worker.terminate(), O()), + (u.busy = !1), + E(u)); + }, + }), + (v && sh ? f3 : fh)(u, o) + ); + } + } + class s3 extends TransformStream { + constructor({ onstart: u, onprogress: c, size: f, onend: r }) { + let o = 0; + super({ + async start() { + u && (await Yf(u, f)); + }, + async transform(h, v) { + ((o += h.length), c && (await Yf(c, o, f)), v.enqueue(h)); + }, + async flush() { + r && (await Yf(r, o)); + }, + }); + } + } + async function Yf(l, ...u) { + try { + await l(...u); + } catch {} + } + function fh(l, u) { + return { run: () => r3(l, u) }; + } + function f3(l, u) { + const { baseURL: c, chunkSize: f } = u; + if (!l.interface) { + let r; + try { + r = h3(l.scripts[0], c, l); + } catch { + return ((sh = !1), fh(l, u)); + } + Object.assign(l, { worker: r, interface: { run: () => o3(l, { chunkSize: f }) } }); + } + return l.interface; + } + async function r3({ options: l, readable: u, writable: c, onTaskFinished: f }, r) { + let o; + try { + ((o = new u3(l, r)), + await u.pipeThrough(o).pipeTo(c, { preventClose: !0, preventAbort: !0 })); + const { signature: h, inputSize: v, outputSize: y } = o; + return { signature: h, inputSize: v, outputSize: y }; + } catch (h) { + throw (o && (h.outputSize = o.outputSize), h); + } finally { + f(); + } + } + async function o3(l, u) { + let c, f; + const r = new Promise((O, X) => { + ((c = O), (f = X)); + }); + Object.assign(l, { + reader: null, + writer: null, + resolveResult: c, + rejectResult: f, + result: r, + }); + const { readable: o, options: h, scripts: v } = l, + { writable: y, closed: A } = d3(l.writable), + E = lc( + { type: n3, scripts: v.slice(1), options: h, config: u, readable: o, writable: y }, + l + ); + E || Object.assign(l, { reader: o.getReader(), writer: y.getWriter() }); + const S = await r; + return (E || (await y.getWriter().close()), await A, S); + } + function d3(l) { + let u; + const c = new Promise((r) => (u = r)); + return { + writable: new WritableStream({ + async write(r) { + const o = l.getWriter(); + (await o.ready, await o.write(r), o.releaseLock()); + }, + close() { + u(); + }, + abort(r) { + return l.getWriter().abort(r); + }, + }), + closed: c, + }; + } + let m2 = !0, + g2 = !0; + function h3(l, u, c) { + const f = { type: 'module' }; + let r, o; + typeof l == Mi && (l = l()); + try { + r = new URL(l, u); + } catch { + r = l; + } + if (m2) + try { + o = new Worker(r); + } catch { + ((m2 = !1), (o = new Worker(r, f))); + } + else o = new Worker(r, f); + return (o.addEventListener(e3, (h) => m3(h, c)), o); + } + function lc(l, { worker: u, writer: c, onTaskFinished: f, transferStreams: r }) { + try { + const { value: o, readable: h, writable: v } = l, + y = []; + if ( + (o && + (o.byteLength < o.buffer.byteLength + ? (l.value = o.buffer.slice(0, o.byteLength)) + : (l.value = o.buffer), + y.push(l.value)), + r && g2 ? (h && y.push(h), v && y.push(v)) : (l.readable = l.writable = null), + y.length) + ) + try { + return (u.postMessage(l, y), !0); + } catch { + ((g2 = !1), (l.readable = l.writable = null), u.postMessage(l)); + } + else u.postMessage(l); + } catch (o) { + throw (c && c.releaseLock(), f(), o); + } + } + async function m3({ data: l }, u) { + const { type: c, value: f, messageId: r, result: o, error: h } = l, + { reader: v, writer: y, resolveResult: A, rejectResult: E, onTaskFinished: S } = u; + try { + if (h) { + const { message: X, stack: B, code: b, name: p, outputSize: x } = h, + R = new Error(X); + (Object.assign(R, { stack: B, code: b, name: p, outputSize: x }), O(R)); + } else { + if (c == a3) { + const { value: X, done: B } = await v.read(); + lc({ type: d2, value: X, done: B, messageId: r }, u); + } + (c == d2 && + (await y.ready, await y.write(new Uint8Array(f)), lc({ type: l3, messageId: r }, u)), + c == h2 && O(null, o)); + } + } catch (X) { + (lc({ type: h2, messageId: r }, u), O(X)); + } + function O(X, B) { + (X ? E(X) : A(B), y && y.releaseLock(), S()); + } + } + let ua = []; + const Lf = []; + let A2 = 0; + async function g3(l, u) { + const { options: c, config: f } = u, + { + transferStreams: r, + useWebWorkers: o, + useCompressionStream: h, + codecType: v, + compressed: y, + signed: A, + encrypted: E, + } = c, + { workerScripts: S, maxWorkers: O } = f; + u.transferStreams = r || r === Jt; + const X = !y && !A && !E && !u.transferStreams; + return ( + (u.useWebWorkers = !X && (o || (o === Jt && f.useWebWorkers))), + (u.scripts = u.useWebWorkers && S ? S[v] : []), + (c.useCompressionStream = h || (h === Jt && f.useCompressionStream)), + (await B()).run() + ); + async function B() { + const p = ua.find((x) => !x.busy); + if (p) return (Pf(p), new zf(p, l, u, b)); + if (ua.length < O) { + const x = { indexWorker: A2 }; + return (A2++, ua.push(x), new zf(x, l, u, b)); + } else return new Promise((x) => Lf.push({ resolve: x, stream: l, workerOptions: u })); + } + function b(p) { + if (Lf.length) { + const [{ resolve: x, stream: R, workerOptions: U }] = Lf.splice(0, 1); + x(new zf(p, R, U, b)); + } else p.worker ? (Pf(p), A3(p, u)) : (ua = ua.filter((x) => x != p)); + } + } + function A3(l, u) { + const { config: c } = u, + { terminateWorkerTimeout: f } = c; + Number.isFinite(f) && + f >= 0 && + (l.terminated + ? (l.terminated = !1) + : (l.terminateTimeout = setTimeout(async () => { + ua = ua.filter((r) => r != l); + try { + await l.terminate(); + } catch {} + }, f))); + } + function Pf(l) { + const { terminateTimeout: u } = l; + u && (clearTimeout(u), (l.terminateTimeout = null)); + } + async function v3() { + await Promise.allSettled(ua.map((l) => (Pf(l), l.terminate()))); + } + const rh = 'HTTP error ', + Hi = 'HTTP Range not supported', + oh = 'Writer iterator completed too soon', + dh = 'Writer not initialized', + y3 = 'text/plain', + E3 = 'Content-Length', + p3 = 'Content-Range', + b3 = 'Accept-Ranges', + x3 = 'Range', + S3 = 'Content-Type', + T3 = 'HEAD', + Ar = 'GET', + hh = 'bytes', + C3 = 64 * 1024, + vr = 'writable'; + class dc { + constructor() { + this.size = 0; + } + init() { + this.initialized = !0; + } + } + class fa extends dc { + get readable() { + const u = this, + { chunkSize: c = C3 } = u, + f = new ReadableStream({ + start() { + this.chunkOffset = 0; + }, + async pull(r) { + const { offset: o = 0, size: h, diskNumberStart: v } = f, + { chunkOffset: y } = this, + A = h === Jt ? c : Math.min(c, h - y), + E = await Pt(u, o + y, A, v); + (r.enqueue(E), + y + c > h || (h === Jt && !E.length && A) ? r.close() : (this.chunkOffset += c)); + }, + }); + return f; + } + } + class yr extends dc { + constructor() { + super(); + const u = this, + c = new WritableStream({ + write(f) { + if (!u.initialized) throw new Error(dh); + return u.writeUint8Array(f); + }, + }); + Object.defineProperty(u, vr, { + get() { + return c; + }, + }); + } + writeUint8Array() {} + } + class O3 extends fa { + constructor(u) { + super(); + let c = u.length; + for (; u.charAt(c - 1) == '='; ) c--; + const f = u.indexOf(',') + 1; + Object.assign(this, { dataURI: u, dataStart: f, size: Math.floor((c - f) * 0.75) }); + } + readUint8Array(u, c) { + const { dataStart: f, dataURI: r } = this, + o = new Uint8Array(c), + h = Math.floor(u / 3) * 4, + v = atob(r.substring(h + f, Math.ceil((u + c) / 3) * 4 + f)), + y = u - Math.floor(h / 4) * 3; + let A = 0; + for (let E = y; E < y + c && E < v.length; E++) ((o[E - y] = v.charCodeAt(E)), A++); + return A < o.length ? o.subarray(0, A) : o; + } + } + class w3 extends yr { + constructor(u) { + (super(), Object.assign(this, { data: 'data:' + (u || '') + ';base64,', pending: [] })); + } + writeUint8Array(u) { + const c = this; + let f = 0, + r = c.pending; + const o = c.pending.length; + for (c.pending = '', f = 0; f < Math.floor((o + u.length) / 3) * 3 - o; f++) + r += String.fromCharCode(u[f]); + for (; f < u.length; f++) c.pending += String.fromCharCode(u[f]); + r.length && (r.length > 2 ? (c.data += btoa(r)) : (c.pending += r)); + } + getData() { + return this.data + btoa(this.pending); + } + } + class Er extends fa { + constructor(u) { + (super(), Object.assign(this, { blob: u, size: u.size })); + } + async readUint8Array(u, c) { + const f = this, + r = u + c; + let h = await (u || r < f.size ? f.blob.slice(u, r) : f.blob).arrayBuffer(); + return (h.byteLength > c && (h = h.slice(u, r)), new Uint8Array(h)); + } + } + class mh extends dc { + constructor(u) { + super(); + const c = this, + f = new TransformStream(), + r = []; + (u && r.push([S3, u]), + Object.defineProperty(c, vr, { + get() { + return f.writable; + }, + }), + (c.blob = new Response(f.readable, { headers: r }).blob())); + } + getData() { + return this.blob; + } + } + class R3 extends Er { + constructor(u) { + super(new Blob([u], { type: y3 })); + } + } + class D3 extends mh { + constructor(u) { + (super(u), Object.assign(this, { encoding: u, utf8: !u || u.toLowerCase() == 'utf-8' })); + } + async getData() { + const { encoding: u, utf8: c } = this, + f = await super.getData(); + if (f.text && c) return f.text(); + { + const r = new FileReader(); + return new Promise((o, h) => { + (Object.assign(r, { + onload: ({ target: v }) => o(v.result), + onerror: () => h(r.error), + }), + r.readAsText(f, u)); + }); + } + } + } + class M3 extends fa { + constructor(u, c) { + (super(), gh(this, u, c)); + } + async init() { + (await Ah(this, $f, v2), super.init()); + } + readUint8Array(u, c) { + return vh(this, u, c, $f, v2); + } + } + class j3 extends fa { + constructor(u, c) { + (super(), gh(this, u, c)); + } + async init() { + (await Ah(this, tr, y2), super.init()); + } + readUint8Array(u, c) { + return vh(this, u, c, tr, y2); + } + } + function gh(l, u, c) { + const { + preventHeadRequest: f, + useRangeHeader: r, + forceRangeRequests: o, + combineSizeEocd: h, + } = c; + ((c = Object.assign({}, c)), + delete c.preventHeadRequest, + delete c.useRangeHeader, + delete c.forceRangeRequests, + delete c.combineSizeEocd, + delete c.useXHR, + Object.assign(l, { + url: u, + options: c, + preventHeadRequest: f, + useRangeHeader: r, + forceRangeRequests: o, + combineSizeEocd: h, + })); + } + async function Ah(l, u, c) { + const { + url: f, + preventHeadRequest: r, + useRangeHeader: o, + forceRangeRequests: h, + combineSizeEocd: v, + } = l; + if (U3(f) && (o || h) && (typeof r > 'u' || r)) { + const y = await u(Ar, l, yh(l, v ? -pn : void 0)); + if (!h && y.headers.get(b3) != hh) throw new Error(Hi); + { + v && (l.eocdCache = new Uint8Array(await y.arrayBuffer())); + let A; + const E = y.headers.get(p3); + if (E) { + const S = E.trim().split(/\s*\/\s*/); + if (S.length) { + const O = S[1]; + O && O != '*' && (A = Number(O)); + } + } + A === Jt ? await E2(l, u, c) : (l.size = A); + } + } else await E2(l, u, c); + } + async function vh(l, u, c, f, r) { + const { useRangeHeader: o, forceRangeRequests: h, eocdCache: v, size: y, options: A } = l; + if (o || h) { + if (v && u == y - pn && c == pn) return v; + if (u >= y) return new Uint8Array(); + { + u + c > y && (c = y - u); + const E = await f(Ar, l, yh(l, u, c)); + if (E.status != 206) throw new Error(Hi); + return new Uint8Array(await E.arrayBuffer()); + } + } else { + const { data: E } = l; + return (E || (await r(l, A)), new Uint8Array(l.data.subarray(u, u + c))); + } + } + function yh(l, u = 0, c = 1) { + return Object.assign({}, pr(l), { [x3]: hh + '=' + (u < 0 ? u : u + '-' + (u + c - 1)) }); + } + function pr({ options: l }) { + const { headers: u } = l; + if (u) return Symbol.iterator in u ? Object.fromEntries(u) : u; + } + async function v2(l) { + await Eh(l, $f); + } + async function y2(l) { + await Eh(l, tr); + } + async function Eh(l, u) { + const c = await u(Ar, l, pr(l)); + ((l.data = new Uint8Array(await c.arrayBuffer())), l.size || (l.size = l.data.length)); + } + async function E2(l, u, c) { + if (l.preventHeadRequest) await c(l, l.options); + else { + const r = (await u(T3, l, pr(l))).headers.get(E3); + r ? (l.size = Number(r)) : await c(l, l.options); + } + } + async function $f(l, { options: u, url: c }, f) { + const r = await fetch(c, Object.assign({}, u, { method: l, headers: f })); + if (r.status < 400) return r; + throw r.status == 416 ? new Error(Hi) : new Error(rh + (r.statusText || r.status)); + } + function tr(l, { url: u }, c) { + return new Promise((f, r) => { + const o = new XMLHttpRequest(); + if ( + (o.addEventListener( + 'load', + () => { + if (o.status < 400) { + const h = []; + (o + .getAllResponseHeaders() + .trim() + .split(/[\r\n]+/) + .forEach((v) => { + const y = v.trim().split(/\s*:\s*/); + ((y[0] = y[0].trim().replace(/^[a-z]|-[a-z]/g, (A) => A.toUpperCase())), + h.push(y)); + }), + f({ status: o.status, arrayBuffer: () => o.response, headers: new Map(h) })); + } else + r(o.status == 416 ? new Error(Hi) : new Error(rh + (o.statusText || o.status))); + }, + !1 + ), + o.addEventListener( + 'error', + (h) => r(h.detail ? h.detail.error : new Error('Network error')), + !1 + ), + o.open(l, u), + c) + ) + for (const h of Object.entries(c)) o.setRequestHeader(h[0], h[1]); + ((o.responseType = 'arraybuffer'), o.send()); + }); + } + class ph extends fa { + constructor(u, c = {}) { + (super(), + Object.assign(this, { url: u, reader: c.useXHR ? new j3(u, c) : new M3(u, c) })); + } + set size(u) {} + get size() { + return this.reader.size; + } + async init() { + (await this.reader.init(), super.init()); + } + readUint8Array(u, c) { + return this.reader.readUint8Array(u, c); + } + } + class H3 extends ph { + constructor(u, c = {}) { + ((c.useRangeHeader = !0), super(u, c)); + } + } + class N3 extends fa { + constructor(u) { + (super(), + (u = new Uint8Array(u.buffer, u.byteOffset, u.byteLength)), + Object.assign(this, { array: u, size: u.length })); + } + readUint8Array(u, c) { + return this.array.slice(u, u + c); + } + } + class B3 extends yr { + init(u = 0) { + (Object.assign(this, { offset: 0, array: new Uint8Array(u) }), super.init()); + } + writeUint8Array(u) { + const c = this; + if (c.offset + u.length > c.array.length) { + const f = c.array; + ((c.array = new Uint8Array(f.length + u.length)), c.array.set(f)); + } + (c.array.set(u, c.offset), (c.offset += u.length)); + } + getData() { + return this.array; + } + } + class br extends fa { + constructor(u) { + (super(), (this.readers = u)); + } + async init() { + const u = this, + { readers: c } = u; + ((u.lastDiskNumber = 0), + (u.lastDiskOffset = 0), + await Promise.all( + c.map(async (f, r) => { + (await f.init(), + r != c.length - 1 && (u.lastDiskOffset += f.size), + (u.size += f.size)); + }) + ), + super.init()); + } + async readUint8Array(u, c, f = 0) { + const r = this, + { readers: o } = this; + let h, + v = f; + v == -1 && (v = o.length - 1); + let y = u; + for (; o[v] && y >= o[v].size; ) ((y -= o[v].size), v++); + const A = o[v]; + if (A) { + const E = A.size; + if (y + c <= E) h = await Pt(A, y, c); + else { + const S = E - y; + h = new Uint8Array(c); + const O = await Pt(A, y, S); + h.set(O, 0); + const X = await r.readUint8Array(u + S, c - S, f); + (h.set(X, S), O.length + X.length < c && (h = h.subarray(0, O.length + X.length))); + } + } else h = new Uint8Array(); + return ((r.lastDiskNumber = Math.max(v, r.lastDiskNumber)), h); + } + } + class fc extends dc { + constructor(u, c = 4294967295) { + super(); + const f = this; + Object.assign(f, { diskNumber: 0, diskOffset: 0, size: 0, maxSize: c, availableSize: c }); + let r, o, h; + const v = new WritableStream({ + async write(E) { + const { availableSize: S } = f; + if (h) + E.length >= S + ? (await y(E.subarray(0, S)), + await A(), + (f.diskOffset += r.size), + f.diskNumber++, + (h = null), + await this.write(E.subarray(S))) + : await y(E); + else { + const { value: O, done: X } = await u.next(); + if (X && !O) throw new Error(oh); + ((r = O), + (r.size = 0), + r.maxSize && (f.maxSize = r.maxSize), + (f.availableSize = f.maxSize), + await Ri(r), + (o = O.writable), + (h = o.getWriter()), + await this.write(E)); + } + }, + async close() { + (await h.ready, await A()); + }, + }); + Object.defineProperty(f, vr, { + get() { + return v; + }, + }); + async function y(E) { + const S = E.length; + S && + (await h.ready, + await h.write(E), + (r.size += S), + (f.size += S), + (f.availableSize -= S)); + } + async function A() { + await h.close(); + } + } + } + class bh { + constructor(u) { + return ( + Array.isArray(u) && (u = new br(u)), + u instanceof ReadableStream && (u = { readable: u }), + u + ); + } + } + class xh { + constructor(u) { + return ( + u.writable === Jt && typeof u.next == Mi && (u = new fc(u)), + u instanceof WritableStream && (u = { writable: u }), + u.size === Jt && (u.size = 0), + u instanceof fc || + Object.assign(u, { + diskNumber: 0, + diskOffset: 0, + availableSize: 1 / 0, + maxSize: 1 / 0, + }), + u + ); + } + } + function U3(l) { + const { baseURL: u } = Z2(), + { protocol: c } = new URL(l, u); + return c == 'http:' || c == 'https:'; + } + async function Ri(l, u) { + if (l.init && !l.initialized) await l.init(u); + else return Promise.resolve(); + } + function Pt(l, u, c, f) { + return l.readUint8Array(u, c, f); + } + const Q3 = br, + z3 = fc, + Sh = + '\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ '.split( + '' + ), + Y3 = Sh.length == 256; + function L3(l) { + if (Y3) { + let u = ''; + for (let c = 0; c < l.length; c++) u += Sh[l[c]]; + return u; + } else return new TextDecoder().decode(l); + } + function ic(l, u) { + return u && u.trim().toLowerCase() == 'cp437' ? L3(l) : new TextDecoder(u).decode(l); + } + const Th = 'filename', + Ch = 'rawFilename', + Oh = 'comment', + wh = 'rawComment', + Rh = 'uncompressedSize', + Dh = 'compressedSize', + Mh = 'offset', + er = 'diskNumberStart', + nr = 'lastModDate', + ar = 'rawLastModDate', + jh = 'lastAccessDate', + G3 = 'rawLastAccessDate', + Hh = 'creationDate', + X3 = 'rawCreationDate', + V3 = 'internalFileAttribute', + Z3 = 'internalFileAttributes', + q3 = 'externalFileAttribute', + I3 = 'externalFileAttributes', + K3 = 'msDosCompatible', + k3 = 'zip64', + J3 = 'encrypted', + F3 = 'version', + W3 = 'versionMadeBy', + _3 = 'zipCrypto', + P3 = 'directory', + $3 = 'executable', + t5 = 'compressionMethod', + e5 = 'signature', + n5 = 'extraField', + a5 = [ + Th, + Ch, + Dh, + Rh, + nr, + ar, + Oh, + wh, + jh, + Hh, + Mh, + er, + er, + V3, + Z3, + q3, + I3, + K3, + k3, + J3, + F3, + W3, + _3, + P3, + $3, + t5, + e5, + n5, + 'bitFlag', + 'filenameUTF8', + 'commentUTF8', + 'rawExtraField', + 'extraFieldZip64', + 'extraFieldUnicodePath', + 'extraFieldUnicodeComment', + 'extraFieldAES', + 'extraFieldNTFS', + 'extraFieldExtendedTimestamp', + ]; + class p2 { + constructor(u) { + a5.forEach((c) => (this[c] = u[c])); + } + } + const l5 = 'filenameEncoding', + i5 = 'commentEncoding', + u5 = 'decodeText', + c5 = 'extractPrependedData', + s5 = 'extractAppendedData', + f5 = 'password', + r5 = 'rawPassword', + o5 = 'passThrough', + d5 = 'signal', + h5 = 'checkPasswordOnly', + m5 = 'checkOverlappingEntryOnly', + g5 = 'checkOverlappingEntry', + A5 = 'checkSignature', + v5 = 'useWebWorkers', + y5 = 'useCompressionStream', + E5 = 'transferStreams', + p5 = 'preventClose', + uc = 'File format is not recognized', + Nh = 'End of central directory not found', + Bh = 'End of Zip64 central directory locator not found', + Uh = 'Central directory header not found', + Qh = 'Local file header not found', + zh = 'Zip64 extra field not found', + Yh = 'File contains encrypted entry', + Lh = 'Encryption method not supported', + lr = 'Compression method not supported', + ir = 'Split zip file', + Gh = 'Overlapping entry found', + b2 = 'utf-8', + x2 = 'cp437', + b5 = [ + [Rh, ja], + [Dh, ja], + [Mh, ja], + [er, la], + ], + x5 = { [la]: { getValue: Bt, bytes: 4 }, [ja]: { getValue: Tl, bytes: 8 } }; + class Xh { + constructor(u, c = {}) { + Object.assign(this, { reader: new bh(u), options: c, config: Z2(), readRanges: [] }); + } + async *getEntriesGenerator(u = {}) { + const c = this; + let { reader: f } = c; + const { config: r } = c; + if ( + (await Ri(f), + (f.size === Jt || !f.readUint8Array) && + ((f = new Er(await new Response(f.readable).blob())), await Ri(f)), + f.size < pn) + ) + throw new Error(uc); + f.chunkSize = M8(r); + const o = await M5(f, f8, f.size, pn, la * 16); + if (!o) { + const J = await Pt(f, 0, 4), + k = Yt(J); + throw Bt(k) == X2 ? new Error(ir) : new Error(Nh); + } + const h = Yt(o); + let v = Bt(h, 12), + y = Bt(h, 16); + const A = o.offset, + E = $t(h, 20), + S = A + pn + E; + let O = $t(h, 4); + const X = f.lastDiskNumber || 0; + let B = $t(h, 6), + b = $t(h, 8), + p = 0, + x = 0; + if (y == ja || v == ja || b == la || B == la) { + const J = await Pt(f, o.offset - Bf, Bf), + k = Yt(J); + if (Bt(k, 0) == r8) { + y = Tl(k, 8); + let nt = await Pt(f, y, Uf, -1), + P = Yt(nt); + const st = o.offset - Bf - Uf; + if (Bt(P, 0) != P1 && y != st) { + const it = y; + ((y = st), y > it && (p = y - it), (nt = await Pt(f, y, Uf, -1)), (P = Yt(nt))); + } + if (Bt(P, 0) != P1) throw new Error(Bh); + (O == la && (O = Bt(P, 16)), + B == la && (B = Bt(P, 20)), + b == la && (b = Tl(P, 32)), + v == ja && (v = Tl(P, 40)), + (y -= v)); + } + } + if ((y >= f.size && ((p = f.size - y - v - pn), (y = f.size - v - pn)), X != O)) + throw new Error(ir); + if (y < 0) throw new Error(uc); + let R = 0, + U = await Pt(f, y, v, B), + Z = Yt(U); + if (v) { + const J = o.offset - v; + if (Bt(Z, R) != _1 && y != J) { + const k = y; + ((y = J), y > k && (p += y - k), (U = await Pt(f, y, v, B)), (Z = Yt(U))); + } + } + const F = o.offset - y - (f.lastDiskOffset || 0); + if ( + (v != F && F >= 0 && ((v = F), (U = await Pt(f, y, v, B)), (Z = Yt(U))), + y < 0 || y >= f.size) + ) + throw new Error(uc); + const j = ie(c, u, l5), + D = ie(c, u, i5); + for (let J = 0; J < b; J++) { + const k = new T5(f, r, c.options); + if (Bt(Z, R) != _1) throw new Error(Uh); + Vh(k, Z, R + 6); + const nt = !!k.bitFlag.languageEncodingFlag, + P = R + 46, + st = P + k.filenameLength, + it = st + k.extraFieldLength, + H = $t(Z, R + 4), + _ = H >> 8 == 0, + $ = H >> 8 == 3, + ht = U.subarray(P, st), + tt = $t(Z, R + 32), + C = it + tt, + L = U.subarray(it, C), + W = nt, + et = nt, + rt = Bt(Z, R + 38), + ot = + (_ && (Sl(Z, R + 38) & a2) == a2) || + ($ && ((rt >> 16) & x8) == S8) || + (ht.length && ht.at(-1) == l2.charCodeAt(0)), + gt = $ && ((rt >> 16) & T8) != 0, + Ft = Bt(Z, R + 42) + p; + (Object.assign(k, { + versionMadeBy: H, + msDosCompatible: _, + compressedSize: 0, + uncompressedSize: 0, + commentLength: tt, + directory: ot, + offset: Ft, + diskNumberStart: $t(Z, R + 34), + internalFileAttributes: $t(Z, R + 36), + externalFileAttributes: rt, + rawFilename: ht, + filenameUTF8: W, + commentUTF8: et, + rawExtraField: U.subarray(st, it), + executable: gt, + }), + (k.internalFileAttribute = k.internalFileAttributes), + (k.externalFileAttribute = k.externalFileAttributes)); + const Qt = ie(c, u, u5) || ic, + On = W ? b2 : j || x2, + ra = et ? b2 : D || x2; + let wn = Qt(ht, On); + wn === Jt && (wn = ic(ht, On)); + let Ba = Qt(L, ra); + (Ba === Jt && (Ba = ic(L, ra)), + Object.assign(k, { + rawComment: L, + filename: wn, + comment: Ba, + directory: ot || wn.endsWith(l2), + }), + (x = Math.max(Ft, x)), + Zh(k, k, Z, R + 6), + (k.zipCrypto = k.encrypted && !k.extraFieldAES)); + const Ee = new p2(k); + ((Ee.getData = (Rn, Qa) => k.getData(Rn, Ee, c.readRanges, Qa)), + (Ee.arrayBuffer = async (Rn) => { + const Qa = new TransformStream(), + [Bi] = await Promise.all([ + new Response(Qa.readable).arrayBuffer(), + k.getData(Qa, Ee, c.readRanges, Rn), + ]); + return Bi; + }), + (R = C)); + const { onprogress: Ua } = u; + if (Ua) + try { + await Ua(J + 1, b, new p2(k)); + } catch {} + yield Ee; + } + const N = ie(c, u, c5), + K = ie(c, u, s5); + return ( + N && (c.prependedData = x > 0 ? await Pt(f, 0, x) : new Uint8Array()), + (c.comment = E ? await Pt(f, A + pn, E) : new Uint8Array()), + K && (c.appendedData = S < f.size ? await Pt(f, S, f.size - S) : new Uint8Array()), + !0 + ); + } + async getEntries(u = {}) { + const c = []; + for await (const f of this.getEntriesGenerator(u)) c.push(f); + return c; + } + async close() {} + } + class S5 { + constructor(u = {}) { + const { readable: c, writable: f } = new TransformStream(), + r = new Xh(c, u).getEntriesGenerator(); + ((this.readable = new ReadableStream({ + async pull(o) { + const { done: h, value: v } = await r.next(); + if (h) return o.close(); + const y = { + ...v, + readable: (function () { + const { readable: A, writable: E } = new TransformStream(); + if (v.getData) return (v.getData(E), A); + })(), + }; + (delete y.getData, o.enqueue(y)); + }, + })), + (this.writable = f)); + } + } + class T5 { + constructor(u, c, f) { + Object.assign(this, { reader: u, config: c, options: f }); + } + async getData(u, c, f, r = {}) { + const o = this, + { + reader: h, + offset: v, + diskNumberStart: y, + extraFieldAES: A, + extraFieldZip64: E, + compressionMethod: S, + config: O, + bitFlag: X, + signature: B, + rawLastModDate: b, + uncompressedSize: p, + compressedSize: x, + } = o, + { dataDescriptor: R } = X, + U = (c.localDirectory = {}), + Z = await Pt(h, v, Qf, y), + F = Yt(Z); + let j = ie(o, r, f5), + D = ie(o, r, r5); + const N = ie(o, r, o5); + if ( + ((j = j && j.length && j), + (D = D && D.length && D), + A && A.originalCompressionMethod != u8) + ) + throw new Error(lr); + if (S != i8 && S != l8 && !N) throw new Error(lr); + if (Bt(F, 0) != c8) throw new Error(Qh); + Vh(U, F, 4); + const { extraFieldLength: K, filenameLength: J, lastAccessDate: k, creationDate: nt } = U; + ((U.rawExtraField = K ? await Pt(h, v + Qf + J, K, y) : new Uint8Array()), + Zh(o, U, F, 4, !0), + Object.assign(c, { lastAccessDate: k, creationDate: nt })); + const P = o.encrypted && U.encrypted && !N, + st = P && !A; + if ((N || (c.zipCrypto = st), P)) { + if (!st && A.strength === Jt) throw new Error(Lh); + if (!j && !D) throw new Error(Yh); + } + const it = v + Qf + J + K, + H = x, + _ = h.readable; + Object.assign(_, { diskNumberStart: y, offset: it, size: H }); + const $ = ie(o, r, d5), + ht = ie(o, r, h5); + let tt = ie(o, r, g5); + const C = ie(o, r, m5); + C && (tt = !0); + const { onstart: L, onprogress: W, onend: et } = r, + rt = { + options: { + codecType: ch, + password: j, + rawPassword: D, + zipCrypto: st, + encryptionStrength: A && A.strength, + signed: ie(o, r, A5) && !N, + passwordVerification: st && (R ? (b >>> 8) & 255 : (B >>> 24) & 255), + outputSize: p, + signature: B, + compressed: S != 0 && !N, + encrypted: o.encrypted && !N, + useWebWorkers: ie(o, r, v5), + useCompressionStream: ie(o, r, y5), + transferStreams: ie(o, r, E5), + checkPasswordOnly: ht, + }, + config: O, + streamOptions: { signal: $, size: H, onstart: L, onprogress: W, onend: et }, + }; + tt && + (await D5({ + reader: h, + fileEntry: c, + offset: v, + diskNumberStart: y, + signature: B, + compressedSize: x, + uncompressedSize: p, + dataOffset: it, + dataDescriptor: R || U.bitFlag.dataDescriptor, + extraFieldZip64: E || U.extraFieldZip64, + readRanges: f, + })); + let ot; + try { + if (!C) { + (ht && (u = new WritableStream()), + (u = new xh(u)), + await Ri(u, N ? x : p), + ({ writable: ot } = u)); + const { outputSize: gt } = await g3({ readable: _, writable: ot }, rt); + if (((u.size += gt), gt != (N ? x : p))) throw new Error(gr); + } + } catch (gt) { + if ((gt.outputSize !== Jt && (u.size += gt.outputSize), !ht || gt.message != dr)) + throw gt; + } finally { + !ie(o, r, p5) && ot && !ot.locked && (await ot.getWriter().close()); + } + return ht || C ? Jt : u.getData ? u.getData() : ot; + } + } + function Vh(l, u, c) { + const f = (l.rawBitFlag = $t(u, c + 2)), + r = (f & t2) == t2, + o = Bt(u, c + 6); + Object.assign(l, { + encrypted: r, + version: $t(u, c), + bitFlag: { + level: (f & b8) >> 1, + dataDescriptor: (f & e2) == e2, + languageEncodingFlag: (f & n2) == n2, + }, + rawLastModDate: o, + lastModDate: j5(o), + filenameLength: $t(u, c + 22), + extraFieldLength: $t(u, c + 24), + }); + } + function Zh(l, u, c, f, r) { + const { rawExtraField: o } = u, + h = (u.extraField = new Map()), + v = Yt(new Uint8Array(o)); + let y = 0; + try { + for (; y < o.length; ) { + const x = $t(v, y), + R = $t(v, y + 2); + (h.set(x, { type: x, data: o.slice(y + 4, y + 4 + R) }), (y += 4 + R)); + } + } catch {} + const A = $t(c, f + 4); + Object.assign(u, { + signature: Bt(c, f + C8), + compressedSize: Bt(c, f + O8), + uncompressedSize: Bt(c, f + w8), + }); + const E = h.get(h8); + E && (C5(E, u), (u.extraFieldZip64 = E)); + const S = h.get(y8); + S && (S2(S, Th, Ch, u, l), (u.extraFieldUnicodePath = S)); + const O = h.get(E8); + O && (S2(O, Oh, wh, u, l), (u.extraFieldUnicodeComment = O)); + const X = h.get(m8); + X ? (O5(X, u, A), (u.extraFieldAES = X)) : (u.compressionMethod = A); + const B = h.get(g8); + B && (w5(B, u), (u.extraFieldNTFS = B)); + const b = h.get(v8); + b && (R5(b, u, r), (u.extraFieldExtendedTimestamp = b)); + const p = h.get(p8); + p && (u.extraFieldUSDZ = p); + } + function C5(l, u) { + u.zip64 = !0; + const c = Yt(l.data), + f = b5.filter(([r, o]) => u[r] == o); + for (let r = 0, o = 0; r < f.length; r++) { + const [h, v] = f[r]; + if (u[h] == v) { + const y = x5[v]; + ((u[h] = l[h] = y.getValue(c, o)), (o += y.bytes)); + } else if (l[h]) throw new Error(zh); + } + } + function S2(l, u, c, f, r) { + const o = Yt(l.data), + h = new cc(); + h.append(r[c]); + const v = Yt(new Uint8Array(4)); + v.setUint32(0, h.get(), !0); + const y = Bt(o, 1); + (Object.assign(l, { + version: Sl(o, 0), + [u]: ic(l.data.subarray(5)), + valid: !r.bitFlag.languageEncodingFlag && y == Bt(v, 0), + }), + l.valid && ((f[u] = l[u]), (f[u + 'UTF8'] = !0))); + } + function O5(l, u, c) { + const f = Yt(l.data), + r = Sl(f, 4); + (Object.assign(l, { + vendorVersion: Sl(f, 0), + vendorId: Sl(f, 2), + strength: r, + originalCompressionMethod: c, + compressionMethod: $t(f, 5), + }), + (u.compressionMethod = l.compressionMethod)); + } + function w5(l, u) { + const c = Yt(l.data); + let f = 4, + r; + try { + for (; f < l.data.length && !r; ) { + const o = $t(c, f), + h = $t(c, f + 2); + (o == A8 && (r = l.data.slice(f + 4, f + 4 + h)), (f += 4 + h)); + } + } catch {} + try { + if (r && r.length == 24) { + const o = Yt(r), + h = o.getBigUint64(0, !0), + v = o.getBigUint64(8, !0), + y = o.getBigUint64(16, !0); + Object.assign(l, { rawLastModDate: h, rawLastAccessDate: v, rawCreationDate: y }); + const A = Gf(h), + E = Gf(v), + S = Gf(y), + O = { lastModDate: A, lastAccessDate: E, creationDate: S }; + (Object.assign(l, O), Object.assign(u, O)); + } + } catch {} + } + function R5(l, u, c) { + const f = Yt(l.data), + r = Sl(f, 0), + o = [], + h = []; + c + ? ((r & 1) == 1 && (o.push(nr), h.push(ar)), + (r & 2) == 2 && (o.push(jh), h.push(G3)), + (r & 4) == 4 && (o.push(Hh), h.push(X3))) + : l.data.length >= 5 && (o.push(nr), h.push(ar)); + let v = 1; + o.forEach((y, A) => { + if (l.data.length >= v + 4) { + const E = Bt(f, v); + u[y] = l[y] = new Date(E * 1e3); + const S = h[A]; + l[S] = E; + } + v += 4; + }); + } + async function D5({ + reader: l, + fileEntry: u, + offset: c, + diskNumberStart: f, + signature: r, + compressedSize: o, + uncompressedSize: h, + dataOffset: v, + dataDescriptor: y, + extraFieldZip64: A, + readRanges: E, + }) { + let S = 0; + if (f) + for (let B = 0; B < f; B++) { + const b = l.readers[B]; + S += b.size; + } + let O = 0; + if ((y && (A ? (O = d8) : (O = o8)), O)) { + const B = await Pt(l, v + o, O + $1, f); + if (Bt(Yt(B), 0) == s8) { + const p = Bt(Yt(B), 4); + let x, R; + (A + ? ((x = Tl(Yt(B), 8)), (R = Tl(Yt(B), 16))) + : ((x = Bt(Yt(B), 8)), (R = Bt(Yt(B), 12))), + ((u.encrypted && !u.zipCrypto) || p == r) && x == o && R == h && (O += $1)); + } + } + const X = { start: S + c, end: S + v + o + O, fileEntry: u }; + for (const B of E) + if (B.fileEntry != u && X.start >= B.start && X.start < B.end) { + const b = new Error(Gh); + throw ((b.overlappingEntry = B.fileEntry), b); + } + E.push(X); + } + async function M5(l, u, c, f, r) { + const o = new Uint8Array(4), + h = Yt(o); + H5(h, 0, u); + const v = f + r; + return (await y(f)) || (await y(Math.min(v, c))); + async function y(A) { + const E = c - A, + S = await Pt(l, E, A); + for (let O = S.length - f; O >= 0; O--) + if (S[O] == o[0] && S[O + 1] == o[1] && S[O + 2] == o[2] && S[O + 3] == o[3]) + return { offset: E + O, buffer: S.slice(O, O + f).buffer }; + } + } + function ie(l, u, c) { + return u[c] === Jt ? l.options[c] : u[c]; + } + function j5(l) { + const u = (l & 4294901760) >> 16, + c = l & 65535; + try { + return new Date( + 1980 + ((u & 65024) >> 9), + ((u & 480) >> 5) - 1, + u & 31, + (c & 63488) >> 11, + (c & 2016) >> 5, + (c & 31) * 2, + 0 + ); + } catch {} + } + function Gf(l) { + return new Date(Number(l / BigInt(1e4) - BigInt(116444736e5))); + } + function Sl(l, u) { + return l.getUint8(u); + } + function $t(l, u) { + return l.getUint16(u, !0); + } + function Bt(l, u) { + return l.getUint32(u, !0); + } + function Tl(l, u) { + return Number(l.getBigUint64(u, !0)); + } + function H5(l, u, c) { + l.setUint32(u, c, !0); + } + function Yt(l) { + return new DataView(l.buffer); + } + q2({ Inflate: a8 }); + const N5 = Object.freeze( + Object.defineProperty( + { + __proto__: null, + BlobReader: Er, + BlobWriter: mh, + Data64URIReader: O3, + Data64URIWriter: w3, + ERR_BAD_FORMAT: uc, + ERR_CENTRAL_DIRECTORY_NOT_FOUND: Uh, + ERR_ENCRYPTED: Yh, + ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND: Bh, + ERR_EOCDR_NOT_FOUND: Nh, + ERR_EXTRAFIELD_ZIP64_NOT_FOUND: zh, + ERR_HTTP_RANGE: Hi, + ERR_INVALID_PASSWORD: rr, + ERR_INVALID_SIGNATURE: or, + ERR_INVALID_UNCOMPRESSED_SIZE: gr, + ERR_ITERATOR_COMPLETED_TOO_SOON: oh, + ERR_LOCAL_FILE_HEADER_NOT_FOUND: Qh, + ERR_OVERLAPPING_ENTRY: Gh, + ERR_SPLIT_ZIP_FILE: ir, + ERR_UNSUPPORTED_COMPRESSION: lr, + ERR_UNSUPPORTED_ENCRYPTION: Lh, + ERR_WRITER_NOT_INITIALIZED: dh, + GenericReader: bh, + GenericWriter: xh, + HttpRangeReader: H3, + HttpReader: ph, + Reader: fa, + SplitDataReader: br, + SplitDataWriter: fc, + SplitZipReader: Q3, + SplitZipWriter: z3, + TextReader: R3, + TextWriter: D3, + Uint8ArrayReader: N3, + Uint8ArrayWriter: B3, + Writer: yr, + ZipReader: Xh, + ZipReaderStream: S5, + configure: q2, + getMimeType: j8, + initStream: Ri, + readUint8Array: Pt, + terminateWorkers: v3, + }, + Symbol.toStringTag, + { value: 'Module' } + ) + ); + var Xf = { exports: {} }, + dt = {}; + /** + * @license React + * react.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ var T2; + function B5() { + if (T2) return dt; + T2 = 1; + var l = Symbol.for('react.transitional.element'), + u = Symbol.for('react.portal'), + c = Symbol.for('react.fragment'), + f = Symbol.for('react.strict_mode'), + r = Symbol.for('react.profiler'), + o = Symbol.for('react.consumer'), + h = Symbol.for('react.context'), + v = Symbol.for('react.forward_ref'), + y = Symbol.for('react.suspense'), + A = Symbol.for('react.memo'), + E = Symbol.for('react.lazy'), + S = Symbol.for('react.activity'), + O = Symbol.iterator; + function X(C) { + return C === null || typeof C != 'object' + ? null + : ((C = (O && C[O]) || C['@@iterator']), typeof C == 'function' ? C : null); + } + var B = { + isMounted: function () { + return !1; + }, + enqueueForceUpdate: function () {}, + enqueueReplaceState: function () {}, + enqueueSetState: function () {}, + }, + b = Object.assign, + p = {}; + function x(C, L, W) { + ((this.props = C), (this.context = L), (this.refs = p), (this.updater = W || B)); + } + ((x.prototype.isReactComponent = {}), + (x.prototype.setState = function (C, L) { + if (typeof C != 'object' && typeof C != 'function' && C != null) + throw Error( + 'takes an object of state variables to update or a function which returns an object of state variables.' + ); + this.updater.enqueueSetState(this, C, L, 'setState'); + }), + (x.prototype.forceUpdate = function (C) { + this.updater.enqueueForceUpdate(this, C, 'forceUpdate'); + })); + function R() {} + R.prototype = x.prototype; + function U(C, L, W) { + ((this.props = C), (this.context = L), (this.refs = p), (this.updater = W || B)); + } + var Z = (U.prototype = new R()); + ((Z.constructor = U), b(Z, x.prototype), (Z.isPureReactComponent = !0)); + var F = Array.isArray; + function j() {} + var D = { H: null, A: null, T: null, S: null }, + N = Object.prototype.hasOwnProperty; + function K(C, L, W) { + var et = W.ref; + return { $$typeof: l, type: C, key: L, ref: et !== void 0 ? et : null, props: W }; + } + function J(C, L) { + return K(C.type, L, C.props); + } + function k(C) { + return typeof C == 'object' && C !== null && C.$$typeof === l; + } + function nt(C) { + var L = { '=': '=0', ':': '=2' }; + return ( + '$' + + C.replace(/[=:]/g, function (W) { + return L[W]; + }) + ); + } + var P = /\/+/g; + function st(C, L) { + return typeof C == 'object' && C !== null && C.key != null + ? nt('' + C.key) + : L.toString(36); + } + function it(C) { + switch (C.status) { + case 'fulfilled': + return C.value; + case 'rejected': + throw C.reason; + default: + switch ( + (typeof C.status == 'string' + ? C.then(j, j) + : ((C.status = 'pending'), + C.then( + function (L) { + C.status === 'pending' && ((C.status = 'fulfilled'), (C.value = L)); + }, + function (L) { + C.status === 'pending' && ((C.status = 'rejected'), (C.reason = L)); + } + )), + C.status) + ) { + case 'fulfilled': + return C.value; + case 'rejected': + throw C.reason; + } + } + throw C; + } + function H(C, L, W, et, rt) { + var ot = typeof C; + (ot === 'undefined' || ot === 'boolean') && (C = null); + var gt = !1; + if (C === null) gt = !0; + else + switch (ot) { + case 'bigint': + case 'string': + case 'number': + gt = !0; + break; + case 'object': + switch (C.$$typeof) { + case l: + case u: + gt = !0; + break; + case E: + return ((gt = C._init), H(gt(C._payload), L, W, et, rt)); + } + } + if (gt) + return ( + (rt = rt(C)), + (gt = et === '' ? '.' + st(C, 0) : et), + F(rt) + ? ((W = ''), + gt != null && (W = gt.replace(P, '$&/') + '/'), + H(rt, L, W, '', function (On) { + return On; + })) + : rt != null && + (k(rt) && + (rt = J( + rt, + W + + (rt.key == null || (C && C.key === rt.key) + ? '' + : ('' + rt.key).replace(P, '$&/') + '/') + + gt + )), + L.push(rt)), + 1 + ); + gt = 0; + var Ft = et === '' ? '.' : et + ':'; + if (F(C)) + for (var Qt = 0; Qt < C.length; Qt++) + ((et = C[Qt]), (ot = Ft + st(et, Qt)), (gt += H(et, L, W, ot, rt))); + else if (((Qt = X(C)), typeof Qt == 'function')) + for (C = Qt.call(C), Qt = 0; !(et = C.next()).done; ) + ((et = et.value), (ot = Ft + st(et, Qt++)), (gt += H(et, L, W, ot, rt))); + else if (ot === 'object') { + if (typeof C.then == 'function') return H(it(C), L, W, et, rt); + throw ( + (L = String(C)), + Error( + 'Objects are not valid as a React child (found: ' + + (L === '[object Object]' + ? 'object with keys {' + Object.keys(C).join(', ') + '}' + : L) + + '). If you meant to render a collection of children, use an array instead.' + ) + ); + } + return gt; + } + function _(C, L, W) { + if (C == null) return C; + var et = [], + rt = 0; + return ( + H(C, et, '', '', function (ot) { + return L.call(W, ot, rt++); + }), + et + ); + } + function $(C) { + if (C._status === -1) { + var L = C._result; + ((L = L()), + L.then( + function (W) { + (C._status === 0 || C._status === -1) && ((C._status = 1), (C._result = W)); + }, + function (W) { + (C._status === 0 || C._status === -1) && ((C._status = 2), (C._result = W)); + } + ), + C._status === -1 && ((C._status = 0), (C._result = L))); + } + if (C._status === 1) return C._result.default; + throw C._result; + } + var ht = + typeof reportError == 'function' + ? reportError + : function (C) { + if (typeof window == 'object' && typeof window.ErrorEvent == 'function') { + var L = new window.ErrorEvent('error', { + bubbles: !0, + cancelable: !0, + message: + typeof C == 'object' && C !== null && typeof C.message == 'string' + ? String(C.message) + : String(C), + error: C, + }); + if (!window.dispatchEvent(L)) return; + } else if (typeof process == 'object' && typeof process.emit == 'function') { + process.emit('uncaughtException', C); + return; + } + console.error(C); + }, + tt = { + map: _, + forEach: function (C, L, W) { + _( + C, + function () { + L.apply(this, arguments); + }, + W + ); + }, + count: function (C) { + var L = 0; + return ( + _(C, function () { + L++; + }), + L + ); + }, + toArray: function (C) { + return ( + _(C, function (L) { + return L; + }) || [] + ); + }, + only: function (C) { + if (!k(C)) + throw Error( + 'React.Children.only expected to receive a single React element child.' + ); + return C; + }, + }; + return ( + (dt.Activity = S), + (dt.Children = tt), + (dt.Component = x), + (dt.Fragment = c), + (dt.Profiler = r), + (dt.PureComponent = U), + (dt.StrictMode = f), + (dt.Suspense = y), + (dt.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE = D), + (dt.__COMPILER_RUNTIME = { + __proto__: null, + c: function (C) { + return D.H.useMemoCache(C); + }, + }), + (dt.cache = function (C) { + return function () { + return C.apply(null, arguments); + }; + }), + (dt.cacheSignal = function () { + return null; + }), + (dt.cloneElement = function (C, L, W) { + if (C == null) + throw Error('The argument must be a React element, but you passed ' + C + '.'); + var et = b({}, C.props), + rt = C.key; + if (L != null) + for (ot in (L.key !== void 0 && (rt = '' + L.key), L)) + !N.call(L, ot) || + ot === 'key' || + ot === '__self' || + ot === '__source' || + (ot === 'ref' && L.ref === void 0) || + (et[ot] = L[ot]); + var ot = arguments.length - 2; + if (ot === 1) et.children = W; + else if (1 < ot) { + for (var gt = Array(ot), Ft = 0; Ft < ot; Ft++) gt[Ft] = arguments[Ft + 2]; + et.children = gt; + } + return K(C.type, rt, et); + }), + (dt.createContext = function (C) { + return ( + (C = { + $$typeof: h, + _currentValue: C, + _currentValue2: C, + _threadCount: 0, + Provider: null, + Consumer: null, + }), + (C.Provider = C), + (C.Consumer = { $$typeof: o, _context: C }), + C + ); + }), + (dt.createElement = function (C, L, W) { + var et, + rt = {}, + ot = null; + if (L != null) + for (et in (L.key !== void 0 && (ot = '' + L.key), L)) + N.call(L, et) && + et !== 'key' && + et !== '__self' && + et !== '__source' && + (rt[et] = L[et]); + var gt = arguments.length - 2; + if (gt === 1) rt.children = W; + else if (1 < gt) { + for (var Ft = Array(gt), Qt = 0; Qt < gt; Qt++) Ft[Qt] = arguments[Qt + 2]; + rt.children = Ft; + } + if (C && C.defaultProps) + for (et in ((gt = C.defaultProps), gt)) rt[et] === void 0 && (rt[et] = gt[et]); + return K(C, ot, rt); + }), + (dt.createRef = function () { + return { current: null }; + }), + (dt.forwardRef = function (C) { + return { $$typeof: v, render: C }; + }), + (dt.isValidElement = k), + (dt.lazy = function (C) { + return { $$typeof: E, _payload: { _status: -1, _result: C }, _init: $ }; + }), + (dt.memo = function (C, L) { + return { $$typeof: A, type: C, compare: L === void 0 ? null : L }; + }), + (dt.startTransition = function (C) { + var L = D.T, + W = {}; + D.T = W; + try { + var et = C(), + rt = D.S; + (rt !== null && rt(W, et), + typeof et == 'object' && + et !== null && + typeof et.then == 'function' && + et.then(j, ht)); + } catch (ot) { + ht(ot); + } finally { + (L !== null && W.types !== null && (L.types = W.types), (D.T = L)); + } + }), + (dt.unstable_useCacheRefresh = function () { + return D.H.useCacheRefresh(); + }), + (dt.use = function (C) { + return D.H.use(C); + }), + (dt.useActionState = function (C, L, W) { + return D.H.useActionState(C, L, W); + }), + (dt.useCallback = function (C, L) { + return D.H.useCallback(C, L); + }), + (dt.useContext = function (C) { + return D.H.useContext(C); + }), + (dt.useDebugValue = function () {}), + (dt.useDeferredValue = function (C, L) { + return D.H.useDeferredValue(C, L); + }), + (dt.useEffect = function (C, L) { + return D.H.useEffect(C, L); + }), + (dt.useEffectEvent = function (C) { + return D.H.useEffectEvent(C); + }), + (dt.useId = function () { + return D.H.useId(); + }), + (dt.useImperativeHandle = function (C, L, W) { + return D.H.useImperativeHandle(C, L, W); + }), + (dt.useInsertionEffect = function (C, L) { + return D.H.useInsertionEffect(C, L); + }), + (dt.useLayoutEffect = function (C, L) { + return D.H.useLayoutEffect(C, L); + }), + (dt.useMemo = function (C, L) { + return D.H.useMemo(C, L); + }), + (dt.useOptimistic = function (C, L) { + return D.H.useOptimistic(C, L); + }), + (dt.useReducer = function (C, L, W) { + return D.H.useReducer(C, L, W); + }), + (dt.useRef = function (C) { + return D.H.useRef(C); + }), + (dt.useState = function (C) { + return D.H.useState(C); + }), + (dt.useSyncExternalStore = function (C, L, W) { + return D.H.useSyncExternalStore(C, L, W); + }), + (dt.useTransition = function () { + return D.H.useTransition(); + }), + (dt.version = '19.2.1'), + dt + ); + } + var C2; + function xr() { + return (C2 || ((C2 = 1), (Xf.exports = B5())), Xf.exports); + } + var ct = xr(); + const ue = UA(ct); + var Vf = { exports: {} }, + xi = {}, + Zf = { exports: {} }, + qf = {}; + /** + * @license React + * scheduler.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ var O2; + function U5() { + return ( + O2 || + ((O2 = 1), + (function (l) { + function u(H, _) { + var $ = H.length; + H.push(_); + t: for (; 0 < $; ) { + var ht = ($ - 1) >>> 1, + tt = H[ht]; + if (0 < r(tt, _)) ((H[ht] = _), (H[$] = tt), ($ = ht)); + else break t; + } + } + function c(H) { + return H.length === 0 ? null : H[0]; + } + function f(H) { + if (H.length === 0) return null; + var _ = H[0], + $ = H.pop(); + if ($ !== _) { + H[0] = $; + t: for (var ht = 0, tt = H.length, C = tt >>> 1; ht < C; ) { + var L = 2 * (ht + 1) - 1, + W = H[L], + et = L + 1, + rt = H[et]; + if (0 > r(W, $)) + et < tt && 0 > r(rt, W) + ? ((H[ht] = rt), (H[et] = $), (ht = et)) + : ((H[ht] = W), (H[L] = $), (ht = L)); + else if (et < tt && 0 > r(rt, $)) ((H[ht] = rt), (H[et] = $), (ht = et)); + else break t; + } + } + return _; + } + function r(H, _) { + var $ = H.sortIndex - _.sortIndex; + return $ !== 0 ? $ : H.id - _.id; + } + if ( + ((l.unstable_now = void 0), + typeof performance == 'object' && typeof performance.now == 'function') + ) { + var o = performance; + l.unstable_now = function () { + return o.now(); + }; + } else { + var h = Date, + v = h.now(); + l.unstable_now = function () { + return h.now() - v; + }; + } + var y = [], + A = [], + E = 1, + S = null, + O = 3, + X = !1, + B = !1, + b = !1, + p = !1, + x = typeof setTimeout == 'function' ? setTimeout : null, + R = typeof clearTimeout == 'function' ? clearTimeout : null, + U = typeof setImmediate < 'u' ? setImmediate : null; + function Z(H) { + for (var _ = c(A); _ !== null; ) { + if (_.callback === null) f(A); + else if (_.startTime <= H) (f(A), (_.sortIndex = _.expirationTime), u(y, _)); + else break; + _ = c(A); + } + } + function F(H) { + if (((b = !1), Z(H), !B)) + if (c(y) !== null) ((B = !0), j || ((j = !0), nt())); + else { + var _ = c(A); + _ !== null && it(F, _.startTime - H); + } + } + var j = !1, + D = -1, + N = 5, + K = -1; + function J() { + return p ? !0 : !(l.unstable_now() - K < N); + } + function k() { + if (((p = !1), j)) { + var H = l.unstable_now(); + K = H; + var _ = !0; + try { + t: { + ((B = !1), b && ((b = !1), R(D), (D = -1)), (X = !0)); + var $ = O; + try { + e: { + for (Z(H), S = c(y); S !== null && !(S.expirationTime > H && J()); ) { + var ht = S.callback; + if (typeof ht == 'function') { + ((S.callback = null), (O = S.priorityLevel)); + var tt = ht(S.expirationTime <= H); + if (((H = l.unstable_now()), typeof tt == 'function')) { + ((S.callback = tt), Z(H), (_ = !0)); + break e; + } + (S === c(y) && f(y), Z(H)); + } else f(y); + S = c(y); + } + if (S !== null) _ = !0; + else { + var C = c(A); + (C !== null && it(F, C.startTime - H), (_ = !1)); + } + } + break t; + } finally { + ((S = null), (O = $), (X = !1)); + } + _ = void 0; + } + } finally { + _ ? nt() : (j = !1); + } + } + } + var nt; + if (typeof U == 'function') + nt = function () { + U(k); + }; + else if (typeof MessageChannel < 'u') { + var P = new MessageChannel(), + st = P.port2; + ((P.port1.onmessage = k), + (nt = function () { + st.postMessage(null); + })); + } else + nt = function () { + x(k, 0); + }; + function it(H, _) { + D = x(function () { + H(l.unstable_now()); + }, _); + } + ((l.unstable_IdlePriority = 5), + (l.unstable_ImmediatePriority = 1), + (l.unstable_LowPriority = 4), + (l.unstable_NormalPriority = 3), + (l.unstable_Profiling = null), + (l.unstable_UserBlockingPriority = 2), + (l.unstable_cancelCallback = function (H) { + H.callback = null; + }), + (l.unstable_forceFrameRate = function (H) { + 0 > H || 125 < H + ? console.error( + 'forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported' + ) + : (N = 0 < H ? Math.floor(1e3 / H) : 5); + }), + (l.unstable_getCurrentPriorityLevel = function () { + return O; + }), + (l.unstable_next = function (H) { + switch (O) { + case 1: + case 2: + case 3: + var _ = 3; + break; + default: + _ = O; + } + var $ = O; + O = _; + try { + return H(); + } finally { + O = $; + } + }), + (l.unstable_requestPaint = function () { + p = !0; + }), + (l.unstable_runWithPriority = function (H, _) { + switch (H) { + case 1: + case 2: + case 3: + case 4: + case 5: + break; + default: + H = 3; + } + var $ = O; + O = H; + try { + return _(); + } finally { + O = $; + } + }), + (l.unstable_scheduleCallback = function (H, _, $) { + var ht = l.unstable_now(); + switch ( + (typeof $ == 'object' && $ !== null + ? (($ = $.delay), ($ = typeof $ == 'number' && 0 < $ ? ht + $ : ht)) + : ($ = ht), + H) + ) { + case 1: + var tt = -1; + break; + case 2: + tt = 250; + break; + case 5: + tt = 1073741823; + break; + case 4: + tt = 1e4; + break; + default: + tt = 5e3; + } + return ( + (tt = $ + tt), + (H = { + id: E++, + callback: _, + priorityLevel: H, + startTime: $, + expirationTime: tt, + sortIndex: -1, + }), + $ > ht + ? ((H.sortIndex = $), + u(A, H), + c(y) === null && + H === c(A) && + (b ? (R(D), (D = -1)) : (b = !0), it(F, $ - ht))) + : ((H.sortIndex = tt), u(y, H), B || X || ((B = !0), j || ((j = !0), nt()))), + H + ); + }), + (l.unstable_shouldYield = J), + (l.unstable_wrapCallback = function (H) { + var _ = O; + return function () { + var $ = O; + O = _; + try { + return H.apply(this, arguments); + } finally { + O = $; + } + }; + })); + })(qf)), + qf + ); + } + var w2; + function Q5() { + return (w2 || ((w2 = 1), (Zf.exports = U5())), Zf.exports); + } + var If = { exports: {} }, + ce = {}; + /** + * @license React + * react-dom.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ var R2; + function z5() { + if (R2) return ce; + R2 = 1; + var l = xr(); + function u(y) { + var A = 'https://react.dev/errors/' + y; + if (1 < arguments.length) { + A += '?args[]=' + encodeURIComponent(arguments[1]); + for (var E = 2; E < arguments.length; E++) + A += '&args[]=' + encodeURIComponent(arguments[E]); + } + return ( + 'Minified React error #' + + y + + '; visit ' + + A + + ' for the full message or use the non-minified dev environment for full errors and additional helpful warnings.' + ); + } + function c() {} + var f = { + d: { + f: c, + r: function () { + throw Error(u(522)); + }, + D: c, + C: c, + L: c, + m: c, + X: c, + S: c, + M: c, + }, + p: 0, + findDOMNode: null, + }, + r = Symbol.for('react.portal'); + function o(y, A, E) { + var S = 3 < arguments.length && arguments[3] !== void 0 ? arguments[3] : null; + return { + $$typeof: r, + key: S == null ? null : '' + S, + children: y, + containerInfo: A, + implementation: E, + }; + } + var h = l.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE; + function v(y, A) { + if (y === 'font') return ''; + if (typeof A == 'string') return A === 'use-credentials' ? A : ''; + } + return ( + (ce.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE = f), + (ce.createPortal = function (y, A) { + var E = 2 < arguments.length && arguments[2] !== void 0 ? arguments[2] : null; + if (!A || (A.nodeType !== 1 && A.nodeType !== 9 && A.nodeType !== 11)) + throw Error(u(299)); + return o(y, A, null, E); + }), + (ce.flushSync = function (y) { + var A = h.T, + E = f.p; + try { + if (((h.T = null), (f.p = 2), y)) return y(); + } finally { + ((h.T = A), (f.p = E), f.d.f()); + } + }), + (ce.preconnect = function (y, A) { + typeof y == 'string' && + (A + ? ((A = A.crossOrigin), + (A = typeof A == 'string' ? (A === 'use-credentials' ? A : '') : void 0)) + : (A = null), + f.d.C(y, A)); + }), + (ce.prefetchDNS = function (y) { + typeof y == 'string' && f.d.D(y); + }), + (ce.preinit = function (y, A) { + if (typeof y == 'string' && A && typeof A.as == 'string') { + var E = A.as, + S = v(E, A.crossOrigin), + O = typeof A.integrity == 'string' ? A.integrity : void 0, + X = typeof A.fetchPriority == 'string' ? A.fetchPriority : void 0; + E === 'style' + ? f.d.S(y, typeof A.precedence == 'string' ? A.precedence : void 0, { + crossOrigin: S, + integrity: O, + fetchPriority: X, + }) + : E === 'script' && + f.d.X(y, { + crossOrigin: S, + integrity: O, + fetchPriority: X, + nonce: typeof A.nonce == 'string' ? A.nonce : void 0, + }); + } + }), + (ce.preinitModule = function (y, A) { + if (typeof y == 'string') + if (typeof A == 'object' && A !== null) { + if (A.as == null || A.as === 'script') { + var E = v(A.as, A.crossOrigin); + f.d.M(y, { + crossOrigin: E, + integrity: typeof A.integrity == 'string' ? A.integrity : void 0, + nonce: typeof A.nonce == 'string' ? A.nonce : void 0, + }); + } + } else A == null && f.d.M(y); + }), + (ce.preload = function (y, A) { + if ( + typeof y == 'string' && + typeof A == 'object' && + A !== null && + typeof A.as == 'string' + ) { + var E = A.as, + S = v(E, A.crossOrigin); + f.d.L(y, E, { + crossOrigin: S, + integrity: typeof A.integrity == 'string' ? A.integrity : void 0, + nonce: typeof A.nonce == 'string' ? A.nonce : void 0, + type: typeof A.type == 'string' ? A.type : void 0, + fetchPriority: typeof A.fetchPriority == 'string' ? A.fetchPriority : void 0, + referrerPolicy: typeof A.referrerPolicy == 'string' ? A.referrerPolicy : void 0, + imageSrcSet: typeof A.imageSrcSet == 'string' ? A.imageSrcSet : void 0, + imageSizes: typeof A.imageSizes == 'string' ? A.imageSizes : void 0, + media: typeof A.media == 'string' ? A.media : void 0, + }); + } + }), + (ce.preloadModule = function (y, A) { + if (typeof y == 'string') + if (A) { + var E = v(A.as, A.crossOrigin); + f.d.m(y, { + as: typeof A.as == 'string' && A.as !== 'script' ? A.as : void 0, + crossOrigin: E, + integrity: typeof A.integrity == 'string' ? A.integrity : void 0, + }); + } else f.d.m(y); + }), + (ce.requestFormReset = function (y) { + f.d.r(y); + }), + (ce.unstable_batchedUpdates = function (y, A) { + return y(A); + }), + (ce.useFormState = function (y, A, E) { + return h.H.useFormState(y, A, E); + }), + (ce.useFormStatus = function () { + return h.H.useHostTransitionStatus(); + }), + (ce.version = '19.2.1'), + ce + ); + } + var D2; + function Y5() { + if (D2) return If.exports; + D2 = 1; + function l() { + if ( + !( + typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ > 'u' || + typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE != 'function' + ) + ) + try { + __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(l); + } catch (u) { + console.error(u); + } + } + return (l(), (If.exports = z5()), If.exports); + } + /** + * @license React + * react-dom-client.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ var M2; + function L5() { + if (M2) return xi; + M2 = 1; + var l = Q5(), + u = xr(), + c = Y5(); + function f(t) { + var e = 'https://react.dev/errors/' + t; + if (1 < arguments.length) { + e += '?args[]=' + encodeURIComponent(arguments[1]); + for (var n = 2; n < arguments.length; n++) + e += '&args[]=' + encodeURIComponent(arguments[n]); + } + return ( + 'Minified React error #' + + t + + '; visit ' + + e + + ' for the full message or use the non-minified dev environment for full errors and additional helpful warnings.' + ); + } + function r(t) { + return !(!t || (t.nodeType !== 1 && t.nodeType !== 9 && t.nodeType !== 11)); + } + function o(t) { + var e = t, + n = t; + if (t.alternate) for (; e.return; ) e = e.return; + else { + t = e; + do ((e = t), (e.flags & 4098) !== 0 && (n = e.return), (t = e.return)); + while (t); + } + return e.tag === 3 ? n : null; + } + function h(t) { + if (t.tag === 13) { + var e = t.memoizedState; + if ( + (e === null && ((t = t.alternate), t !== null && (e = t.memoizedState)), e !== null) + ) + return e.dehydrated; + } + return null; + } + function v(t) { + if (t.tag === 31) { + var e = t.memoizedState; + if ( + (e === null && ((t = t.alternate), t !== null && (e = t.memoizedState)), e !== null) + ) + return e.dehydrated; + } + return null; + } + function y(t) { + if (o(t) !== t) throw Error(f(188)); + } + function A(t) { + var e = t.alternate; + if (!e) { + if (((e = o(t)), e === null)) throw Error(f(188)); + return e !== t ? null : t; + } + for (var n = t, a = e; ; ) { + var i = n.return; + if (i === null) break; + var s = i.alternate; + if (s === null) { + if (((a = i.return), a !== null)) { + n = a; + continue; + } + break; + } + if (i.child === s.child) { + for (s = i.child; s; ) { + if (s === n) return (y(i), t); + if (s === a) return (y(i), e); + s = s.sibling; + } + throw Error(f(188)); + } + if (n.return !== a.return) ((n = i), (a = s)); + else { + for (var d = !1, g = i.child; g; ) { + if (g === n) { + ((d = !0), (n = i), (a = s)); + break; + } + if (g === a) { + ((d = !0), (a = i), (n = s)); + break; + } + g = g.sibling; + } + if (!d) { + for (g = s.child; g; ) { + if (g === n) { + ((d = !0), (n = s), (a = i)); + break; + } + if (g === a) { + ((d = !0), (a = s), (n = i)); + break; + } + g = g.sibling; + } + if (!d) throw Error(f(189)); + } + } + if (n.alternate !== a) throw Error(f(190)); + } + if (n.tag !== 3) throw Error(f(188)); + return n.stateNode.current === n ? t : e; + } + function E(t) { + var e = t.tag; + if (e === 5 || e === 26 || e === 27 || e === 6) return t; + for (t = t.child; t !== null; ) { + if (((e = E(t)), e !== null)) return e; + t = t.sibling; + } + return null; + } + var S = Object.assign, + O = Symbol.for('react.element'), + X = Symbol.for('react.transitional.element'), + B = Symbol.for('react.portal'), + b = Symbol.for('react.fragment'), + p = Symbol.for('react.strict_mode'), + x = Symbol.for('react.profiler'), + R = Symbol.for('react.consumer'), + U = Symbol.for('react.context'), + Z = Symbol.for('react.forward_ref'), + F = Symbol.for('react.suspense'), + j = Symbol.for('react.suspense_list'), + D = Symbol.for('react.memo'), + N = Symbol.for('react.lazy'), + K = Symbol.for('react.activity'), + J = Symbol.for('react.memo_cache_sentinel'), + k = Symbol.iterator; + function nt(t) { + return t === null || typeof t != 'object' + ? null + : ((t = (k && t[k]) || t['@@iterator']), typeof t == 'function' ? t : null); + } + var P = Symbol.for('react.client.reference'); + function st(t) { + if (t == null) return null; + if (typeof t == 'function') + return t.$$typeof === P ? null : t.displayName || t.name || null; + if (typeof t == 'string') return t; + switch (t) { + case b: + return 'Fragment'; + case x: + return 'Profiler'; + case p: + return 'StrictMode'; + case F: + return 'Suspense'; + case j: + return 'SuspenseList'; + case K: + return 'Activity'; + } + if (typeof t == 'object') + switch (t.$$typeof) { + case B: + return 'Portal'; + case U: + return t.displayName || 'Context'; + case R: + return (t._context.displayName || 'Context') + '.Consumer'; + case Z: + var e = t.render; + return ( + (t = t.displayName), + t || + ((t = e.displayName || e.name || ''), + (t = t !== '' ? 'ForwardRef(' + t + ')' : 'ForwardRef')), + t + ); + case D: + return ((e = t.displayName || null), e !== null ? e : st(t.type) || 'Memo'); + case N: + ((e = t._payload), (t = t._init)); + try { + return st(t(e)); + } catch {} + } + return null; + } + var it = Array.isArray, + H = u.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, + _ = c.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, + $ = { pending: !1, data: null, method: null, action: null }, + ht = [], + tt = -1; + function C(t) { + return { current: t }; + } + function L(t) { + 0 > tt || ((t.current = ht[tt]), (ht[tt] = null), tt--); + } + function W(t, e) { + (tt++, (ht[tt] = t.current), (t.current = e)); + } + var et = C(null), + rt = C(null), + ot = C(null), + gt = C(null); + function Ft(t, e) { + switch ((W(ot, e), W(rt, t), W(et, null), e.nodeType)) { + case 9: + case 11: + t = (t = e.documentElement) && (t = t.namespaceURI) ? Pd(t) : 0; + break; + default: + if (((t = e.tagName), (e = e.namespaceURI))) ((e = Pd(e)), (t = $d(e, t))); + else + switch (t) { + case 'svg': + t = 1; + break; + case 'math': + t = 2; + break; + default: + t = 0; + } + } + (L(et), W(et, t)); + } + function Qt() { + (L(et), L(rt), L(ot)); + } + function On(t) { + t.memoizedState !== null && W(gt, t); + var e = et.current, + n = $d(e, t.type); + e !== n && (W(rt, t), W(et, n)); + } + function ra(t) { + (rt.current === t && (L(et), L(rt)), gt.current === t && (L(gt), (gi._currentValue = $))); + } + var wn, Ba; + function Ee(t) { + if (wn === void 0) + try { + throw Error(); + } catch (n) { + var e = n.stack.trim().match(/\n( *(at )?)/); + ((wn = (e && e[1]) || ''), + (Ba = + -1 < + n.stack.indexOf(` + at`) + ? ' (<anonymous>)' + : -1 < n.stack.indexOf('@') + ? '@unknown:0:0' + : '')); + } + return ( + ` +` + + wn + + t + + Ba + ); + } + var Ua = !1; + function Rn(t, e) { + if (!t || Ua) return ''; + Ua = !0; + var n = Error.prepareStackTrace; + Error.prepareStackTrace = void 0; + try { + var a = { + DetermineComponentFrameRoot: function () { + try { + if (e) { + var I = function () { + throw Error(); + }; + if ( + (Object.defineProperty(I.prototype, 'props', { + set: function () { + throw Error(); + }, + }), + typeof Reflect == 'object' && Reflect.construct) + ) { + try { + Reflect.construct(I, []); + } catch (G) { + var Y = G; + } + Reflect.construct(t, [], I); + } else { + try { + I.call(); + } catch (G) { + Y = G; + } + t.call(I.prototype); + } + } else { + try { + throw Error(); + } catch (G) { + Y = G; + } + (I = t()) && typeof I.catch == 'function' && I.catch(function () {}); + } + } catch (G) { + if (G && Y && typeof G.stack == 'string') return [G.stack, Y.stack]; + } + return [null, null]; + }, + }; + a.DetermineComponentFrameRoot.displayName = 'DetermineComponentFrameRoot'; + var i = Object.getOwnPropertyDescriptor(a.DetermineComponentFrameRoot, 'name'); + i && + i.configurable && + Object.defineProperty(a.DetermineComponentFrameRoot, 'name', { + value: 'DetermineComponentFrameRoot', + }); + var s = a.DetermineComponentFrameRoot(), + d = s[0], + g = s[1]; + if (d && g) { + var T = d.split(` +`), + z = g.split(` +`); + for (i = a = 0; a < T.length && !T[a].includes('DetermineComponentFrameRoot'); ) a++; + for (; i < z.length && !z[i].includes('DetermineComponentFrameRoot'); ) i++; + if (a === T.length || i === z.length) + for (a = T.length - 1, i = z.length - 1; 1 <= a && 0 <= i && T[a] !== z[i]; ) i--; + for (; 1 <= a && 0 <= i; a--, i--) + if (T[a] !== z[i]) { + if (a !== 1 || i !== 1) + do + if ((a--, i--, 0 > i || T[a] !== z[i])) { + var V = + ` +` + T[a].replace(' at new ', ' at '); + return ( + t.displayName && + V.includes('<anonymous>') && + (V = V.replace('<anonymous>', t.displayName)), + V + ); + } + while (1 <= a && 0 <= i); + break; + } + } + } finally { + ((Ua = !1), (Error.prepareStackTrace = n)); + } + return (n = t ? t.displayName || t.name : '') ? Ee(n) : ''; + } + function Qa(t, e) { + switch (t.tag) { + case 26: + case 27: + case 5: + return Ee(t.type); + case 16: + return Ee('Lazy'); + case 13: + return t.child !== e && e !== null ? Ee('Suspense Fallback') : Ee('Suspense'); + case 19: + return Ee('SuspenseList'); + case 0: + case 15: + return Rn(t.type, !1); + case 11: + return Rn(t.type.render, !1); + case 1: + return Rn(t.type, !0); + case 31: + return Ee('Activity'); + default: + return ''; + } + } + function Bi(t) { + try { + var e = '', + n = null; + do ((e += Qa(t, n)), (n = t), (t = t.return)); + while (t); + return e; + } catch (a) { + return ( + ` +Error generating stack: ` + + a.message + + ` +` + + a.stack + ); + } + } + var mc = Object.prototype.hasOwnProperty, + gc = l.unstable_scheduleCallback, + Ac = l.unstable_cancelCallback, + om = l.unstable_shouldYield, + dm = l.unstable_requestPaint, + pe = l.unstable_now, + hm = l.unstable_getCurrentPriorityLevel, + Dr = l.unstable_ImmediatePriority, + Mr = l.unstable_UserBlockingPriority, + Ui = l.unstable_NormalPriority, + mm = l.unstable_LowPriority, + jr = l.unstable_IdlePriority, + gm = l.log, + Am = l.unstable_setDisableYieldValue, + wl = null, + be = null; + function Dn(t) { + if ((typeof gm == 'function' && Am(t), be && typeof be.setStrictMode == 'function')) + try { + be.setStrictMode(wl, t); + } catch {} + } + var xe = Math.clz32 ? Math.clz32 : Em, + vm = Math.log, + ym = Math.LN2; + function Em(t) { + return ((t >>>= 0), t === 0 ? 32 : (31 - ((vm(t) / ym) | 0)) | 0); + } + var Qi = 256, + zi = 262144, + Yi = 4194304; + function oa(t) { + var e = t & 42; + if (e !== 0) return e; + switch (t & -t) { + case 1: + return 1; + case 2: + return 2; + case 4: + return 4; + case 8: + return 8; + case 16: + return 16; + case 32: + return 32; + case 64: + return 64; + case 128: + return 128; + case 256: + case 512: + case 1024: + case 2048: + case 4096: + case 8192: + case 16384: + case 32768: + case 65536: + case 131072: + return t & 261888; + case 262144: + case 524288: + case 1048576: + case 2097152: + return t & 3932160; + case 4194304: + case 8388608: + case 16777216: + case 33554432: + return t & 62914560; + case 67108864: + return 67108864; + case 134217728: + return 134217728; + case 268435456: + return 268435456; + case 536870912: + return 536870912; + case 1073741824: + return 0; + default: + return t; + } + } + function Li(t, e, n) { + var a = t.pendingLanes; + if (a === 0) return 0; + var i = 0, + s = t.suspendedLanes, + d = t.pingedLanes; + t = t.warmLanes; + var g = a & 134217727; + return ( + g !== 0 + ? ((a = g & ~s), + a !== 0 + ? (i = oa(a)) + : ((d &= g), d !== 0 ? (i = oa(d)) : n || ((n = g & ~t), n !== 0 && (i = oa(n))))) + : ((g = a & ~s), + g !== 0 + ? (i = oa(g)) + : d !== 0 + ? (i = oa(d)) + : n || ((n = a & ~t), n !== 0 && (i = oa(n)))), + i === 0 + ? 0 + : e !== 0 && + e !== i && + (e & s) === 0 && + ((s = i & -i), (n = e & -e), s >= n || (s === 32 && (n & 4194048) !== 0)) + ? e + : i + ); + } + function Rl(t, e) { + return (t.pendingLanes & ~(t.suspendedLanes & ~t.pingedLanes) & e) === 0; + } + function pm(t, e) { + switch (t) { + case 1: + case 2: + case 4: + case 8: + case 64: + return e + 250; + case 16: + case 32: + case 128: + case 256: + case 512: + case 1024: + case 2048: + case 4096: + case 8192: + case 16384: + case 32768: + case 65536: + case 131072: + case 262144: + case 524288: + case 1048576: + case 2097152: + return e + 5e3; + case 4194304: + case 8388608: + case 16777216: + case 33554432: + return -1; + case 67108864: + case 134217728: + case 268435456: + case 536870912: + case 1073741824: + return -1; + default: + return -1; + } + } + function Hr() { + var t = Yi; + return ((Yi <<= 1), (Yi & 62914560) === 0 && (Yi = 4194304), t); + } + function vc(t) { + for (var e = [], n = 0; 31 > n; n++) e.push(t); + return e; + } + function Dl(t, e) { + ((t.pendingLanes |= e), + e !== 268435456 && ((t.suspendedLanes = 0), (t.pingedLanes = 0), (t.warmLanes = 0))); + } + function bm(t, e, n, a, i, s) { + var d = t.pendingLanes; + ((t.pendingLanes = n), + (t.suspendedLanes = 0), + (t.pingedLanes = 0), + (t.warmLanes = 0), + (t.expiredLanes &= n), + (t.entangledLanes &= n), + (t.errorRecoveryDisabledLanes &= n), + (t.shellSuspendCounter = 0)); + var g = t.entanglements, + T = t.expirationTimes, + z = t.hiddenUpdates; + for (n = d & ~n; 0 < n; ) { + var V = 31 - xe(n), + I = 1 << V; + ((g[V] = 0), (T[V] = -1)); + var Y = z[V]; + if (Y !== null) + for (z[V] = null, V = 0; V < Y.length; V++) { + var G = Y[V]; + G !== null && (G.lane &= -536870913); + } + n &= ~I; + } + (a !== 0 && Nr(t, a, 0), + s !== 0 && i === 0 && t.tag !== 0 && (t.suspendedLanes |= s & ~(d & ~e))); + } + function Nr(t, e, n) { + ((t.pendingLanes |= e), (t.suspendedLanes &= ~e)); + var a = 31 - xe(e); + ((t.entangledLanes |= e), + (t.entanglements[a] = t.entanglements[a] | 1073741824 | (n & 261930))); + } + function Br(t, e) { + var n = (t.entangledLanes |= e); + for (t = t.entanglements; n; ) { + var a = 31 - xe(n), + i = 1 << a; + ((i & e) | (t[a] & e) && (t[a] |= e), (n &= ~i)); + } + } + function Ur(t, e) { + var n = e & -e; + return ((n = (n & 42) !== 0 ? 1 : yc(n)), (n & (t.suspendedLanes | e)) !== 0 ? 0 : n); + } + function yc(t) { + switch (t) { + case 2: + t = 1; + break; + case 8: + t = 4; + break; + case 32: + t = 16; + break; + case 256: + case 512: + case 1024: + case 2048: + case 4096: + case 8192: + case 16384: + case 32768: + case 65536: + case 131072: + case 262144: + case 524288: + case 1048576: + case 2097152: + case 4194304: + case 8388608: + case 16777216: + case 33554432: + t = 128; + break; + case 268435456: + t = 134217728; + break; + default: + t = 0; + } + return t; + } + function Ec(t) { + return ((t &= -t), 2 < t ? (8 < t ? ((t & 134217727) !== 0 ? 32 : 268435456) : 8) : 2); + } + function Qr() { + var t = _.p; + return t !== 0 ? t : ((t = window.event), t === void 0 ? 32 : x1(t.type)); + } + function zr(t, e) { + var n = _.p; + try { + return ((_.p = t), e()); + } finally { + _.p = n; + } + } + var Mn = Math.random().toString(36).slice(2), + te = '__reactFiber$' + Mn, + oe = '__reactProps$' + Mn, + za = '__reactContainer$' + Mn, + pc = '__reactEvents$' + Mn, + xm = '__reactListeners$' + Mn, + Sm = '__reactHandles$' + Mn, + Yr = '__reactResources$' + Mn, + Ml = '__reactMarker$' + Mn; + function bc(t) { + (delete t[te], delete t[oe], delete t[pc], delete t[xm], delete t[Sm]); + } + function Ya(t) { + var e = t[te]; + if (e) return e; + for (var n = t.parentNode; n; ) { + if ((e = n[za] || n[te])) { + if (((n = e.alternate), e.child !== null || (n !== null && n.child !== null))) + for (t = u1(t); t !== null; ) { + if ((n = t[te])) return n; + t = u1(t); + } + return e; + } + ((t = n), (n = t.parentNode)); + } + return null; + } + function La(t) { + if ((t = t[te] || t[za])) { + var e = t.tag; + if (e === 5 || e === 6 || e === 13 || e === 31 || e === 26 || e === 27 || e === 3) + return t; + } + return null; + } + function jl(t) { + var e = t.tag; + if (e === 5 || e === 26 || e === 27 || e === 6) return t.stateNode; + throw Error(f(33)); + } + function Ga(t) { + var e = t[Yr]; + return ( + e || (e = t[Yr] = { hoistableStyles: new Map(), hoistableScripts: new Map() }), + e + ); + } + function Wt(t) { + t[Ml] = !0; + } + var Lr = new Set(), + Gr = {}; + function da(t, e) { + (Xa(t, e), Xa(t + 'Capture', e)); + } + function Xa(t, e) { + for (Gr[t] = e, t = 0; t < e.length; t++) Lr.add(e[t]); + } + var Tm = RegExp( + '^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$' + ), + Xr = {}, + Vr = {}; + function Cm(t) { + return mc.call(Vr, t) + ? !0 + : mc.call(Xr, t) + ? !1 + : Tm.test(t) + ? (Vr[t] = !0) + : ((Xr[t] = !0), !1); + } + function Gi(t, e, n) { + if (Cm(e)) + if (n === null) t.removeAttribute(e); + else { + switch (typeof n) { + case 'undefined': + case 'function': + case 'symbol': + t.removeAttribute(e); + return; + case 'boolean': + var a = e.toLowerCase().slice(0, 5); + if (a !== 'data-' && a !== 'aria-') { + t.removeAttribute(e); + return; + } + } + t.setAttribute(e, '' + n); + } + } + function Xi(t, e, n) { + if (n === null) t.removeAttribute(e); + else { + switch (typeof n) { + case 'undefined': + case 'function': + case 'symbol': + case 'boolean': + t.removeAttribute(e); + return; + } + t.setAttribute(e, '' + n); + } + } + function $e(t, e, n, a) { + if (a === null) t.removeAttribute(n); + else { + switch (typeof a) { + case 'undefined': + case 'function': + case 'symbol': + case 'boolean': + t.removeAttribute(n); + return; + } + t.setAttributeNS(e, n, '' + a); + } + } + function je(t) { + switch (typeof t) { + case 'bigint': + case 'boolean': + case 'number': + case 'string': + case 'undefined': + return t; + case 'object': + return t; + default: + return ''; + } + } + function Zr(t) { + var e = t.type; + return ( + (t = t.nodeName) && t.toLowerCase() === 'input' && (e === 'checkbox' || e === 'radio') + ); + } + function Om(t, e, n) { + var a = Object.getOwnPropertyDescriptor(t.constructor.prototype, e); + if ( + !t.hasOwnProperty(e) && + typeof a < 'u' && + typeof a.get == 'function' && + typeof a.set == 'function' + ) { + var i = a.get, + s = a.set; + return ( + Object.defineProperty(t, e, { + configurable: !0, + get: function () { + return i.call(this); + }, + set: function (d) { + ((n = '' + d), s.call(this, d)); + }, + }), + Object.defineProperty(t, e, { enumerable: a.enumerable }), + { + getValue: function () { + return n; + }, + setValue: function (d) { + n = '' + d; + }, + stopTracking: function () { + ((t._valueTracker = null), delete t[e]); + }, + } + ); + } + } + function xc(t) { + if (!t._valueTracker) { + var e = Zr(t) ? 'checked' : 'value'; + t._valueTracker = Om(t, e, '' + t[e]); + } + } + function qr(t) { + if (!t) return !1; + var e = t._valueTracker; + if (!e) return !0; + var n = e.getValue(), + a = ''; + return ( + t && (a = Zr(t) ? (t.checked ? 'true' : 'false') : t.value), + (t = a), + t !== n ? (e.setValue(t), !0) : !1 + ); + } + function Vi(t) { + if (((t = t || (typeof document < 'u' ? document : void 0)), typeof t > 'u')) return null; + try { + return t.activeElement || t.body; + } catch { + return t.body; + } + } + var wm = /[\n"\\]/g; + function He(t) { + return t.replace(wm, function (e) { + return '\\' + e.charCodeAt(0).toString(16) + ' '; + }); + } + function Sc(t, e, n, a, i, s, d, g) { + ((t.name = ''), + d != null && typeof d != 'function' && typeof d != 'symbol' && typeof d != 'boolean' + ? (t.type = d) + : t.removeAttribute('type'), + e != null + ? d === 'number' + ? ((e === 0 && t.value === '') || t.value != e) && (t.value = '' + je(e)) + : t.value !== '' + je(e) && (t.value = '' + je(e)) + : (d !== 'submit' && d !== 'reset') || t.removeAttribute('value'), + e != null + ? Tc(t, d, je(e)) + : n != null + ? Tc(t, d, je(n)) + : a != null && t.removeAttribute('value'), + i == null && s != null && (t.defaultChecked = !!s), + i != null && (t.checked = i && typeof i != 'function' && typeof i != 'symbol'), + g != null && typeof g != 'function' && typeof g != 'symbol' && typeof g != 'boolean' + ? (t.name = '' + je(g)) + : t.removeAttribute('name')); + } + function Ir(t, e, n, a, i, s, d, g) { + if ( + (s != null && + typeof s != 'function' && + typeof s != 'symbol' && + typeof s != 'boolean' && + (t.type = s), + e != null || n != null) + ) { + if (!((s !== 'submit' && s !== 'reset') || e != null)) { + xc(t); + return; + } + ((n = n != null ? '' + je(n) : ''), + (e = e != null ? '' + je(e) : n), + g || e === t.value || (t.value = e), + (t.defaultValue = e)); + } + ((a = a ?? i), + (a = typeof a != 'function' && typeof a != 'symbol' && !!a), + (t.checked = g ? t.checked : !!a), + (t.defaultChecked = !!a), + d != null && + typeof d != 'function' && + typeof d != 'symbol' && + typeof d != 'boolean' && + (t.name = d), + xc(t)); + } + function Tc(t, e, n) { + (e === 'number' && Vi(t.ownerDocument) === t) || + t.defaultValue === '' + n || + (t.defaultValue = '' + n); + } + function Va(t, e, n, a) { + if (((t = t.options), e)) { + e = {}; + for (var i = 0; i < n.length; i++) e['$' + n[i]] = !0; + for (n = 0; n < t.length; n++) + ((i = e.hasOwnProperty('$' + t[n].value)), + t[n].selected !== i && (t[n].selected = i), + i && a && (t[n].defaultSelected = !0)); + } else { + for (n = '' + je(n), e = null, i = 0; i < t.length; i++) { + if (t[i].value === n) { + ((t[i].selected = !0), a && (t[i].defaultSelected = !0)); + return; + } + e !== null || t[i].disabled || (e = t[i]); + } + e !== null && (e.selected = !0); + } + } + function Kr(t, e, n) { + if (e != null && ((e = '' + je(e)), e !== t.value && (t.value = e), n == null)) { + t.defaultValue !== e && (t.defaultValue = e); + return; + } + t.defaultValue = n != null ? '' + je(n) : ''; + } + function kr(t, e, n, a) { + if (e == null) { + if (a != null) { + if (n != null) throw Error(f(92)); + if (it(a)) { + if (1 < a.length) throw Error(f(93)); + a = a[0]; + } + n = a; + } + (n == null && (n = ''), (e = n)); + } + ((n = je(e)), + (t.defaultValue = n), + (a = t.textContent), + a === n && a !== '' && a !== null && (t.value = a), + xc(t)); + } + function Za(t, e) { + if (e) { + var n = t.firstChild; + if (n && n === t.lastChild && n.nodeType === 3) { + n.nodeValue = e; + return; + } + } + t.textContent = e; + } + var Rm = new Set( + 'animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp'.split( + ' ' + ) + ); + function Jr(t, e, n) { + var a = e.indexOf('--') === 0; + n == null || typeof n == 'boolean' || n === '' + ? a + ? t.setProperty(e, '') + : e === 'float' + ? (t.cssFloat = '') + : (t[e] = '') + : a + ? t.setProperty(e, n) + : typeof n != 'number' || n === 0 || Rm.has(e) + ? e === 'float' + ? (t.cssFloat = n) + : (t[e] = ('' + n).trim()) + : (t[e] = n + 'px'); + } + function Fr(t, e, n) { + if (e != null && typeof e != 'object') throw Error(f(62)); + if (((t = t.style), n != null)) { + for (var a in n) + !n.hasOwnProperty(a) || + (e != null && e.hasOwnProperty(a)) || + (a.indexOf('--') === 0 + ? t.setProperty(a, '') + : a === 'float' + ? (t.cssFloat = '') + : (t[a] = '')); + for (var i in e) ((a = e[i]), e.hasOwnProperty(i) && n[i] !== a && Jr(t, i, a)); + } else for (var s in e) e.hasOwnProperty(s) && Jr(t, s, e[s]); + } + function Cc(t) { + if (t.indexOf('-') === -1) return !1; + switch (t) { + case 'annotation-xml': + case 'color-profile': + case 'font-face': + case 'font-face-src': + case 'font-face-uri': + case 'font-face-format': + case 'font-face-name': + case 'missing-glyph': + return !1; + default: + return !0; + } + } + var Dm = new Map([ + ['acceptCharset', 'accept-charset'], + ['htmlFor', 'for'], + ['httpEquiv', 'http-equiv'], + ['crossOrigin', 'crossorigin'], + ['accentHeight', 'accent-height'], + ['alignmentBaseline', 'alignment-baseline'], + ['arabicForm', 'arabic-form'], + ['baselineShift', 'baseline-shift'], + ['capHeight', 'cap-height'], + ['clipPath', 'clip-path'], + ['clipRule', 'clip-rule'], + ['colorInterpolation', 'color-interpolation'], + ['colorInterpolationFilters', 'color-interpolation-filters'], + ['colorProfile', 'color-profile'], + ['colorRendering', 'color-rendering'], + ['dominantBaseline', 'dominant-baseline'], + ['enableBackground', 'enable-background'], + ['fillOpacity', 'fill-opacity'], + ['fillRule', 'fill-rule'], + ['floodColor', 'flood-color'], + ['floodOpacity', 'flood-opacity'], + ['fontFamily', 'font-family'], + ['fontSize', 'font-size'], + ['fontSizeAdjust', 'font-size-adjust'], + ['fontStretch', 'font-stretch'], + ['fontStyle', 'font-style'], + ['fontVariant', 'font-variant'], + ['fontWeight', 'font-weight'], + ['glyphName', 'glyph-name'], + ['glyphOrientationHorizontal', 'glyph-orientation-horizontal'], + ['glyphOrientationVertical', 'glyph-orientation-vertical'], + ['horizAdvX', 'horiz-adv-x'], + ['horizOriginX', 'horiz-origin-x'], + ['imageRendering', 'image-rendering'], + ['letterSpacing', 'letter-spacing'], + ['lightingColor', 'lighting-color'], + ['markerEnd', 'marker-end'], + ['markerMid', 'marker-mid'], + ['markerStart', 'marker-start'], + ['overlinePosition', 'overline-position'], + ['overlineThickness', 'overline-thickness'], + ['paintOrder', 'paint-order'], + ['panose-1', 'panose-1'], + ['pointerEvents', 'pointer-events'], + ['renderingIntent', 'rendering-intent'], + ['shapeRendering', 'shape-rendering'], + ['stopColor', 'stop-color'], + ['stopOpacity', 'stop-opacity'], + ['strikethroughPosition', 'strikethrough-position'], + ['strikethroughThickness', 'strikethrough-thickness'], + ['strokeDasharray', 'stroke-dasharray'], + ['strokeDashoffset', 'stroke-dashoffset'], + ['strokeLinecap', 'stroke-linecap'], + ['strokeLinejoin', 'stroke-linejoin'], + ['strokeMiterlimit', 'stroke-miterlimit'], + ['strokeOpacity', 'stroke-opacity'], + ['strokeWidth', 'stroke-width'], + ['textAnchor', 'text-anchor'], + ['textDecoration', 'text-decoration'], + ['textRendering', 'text-rendering'], + ['transformOrigin', 'transform-origin'], + ['underlinePosition', 'underline-position'], + ['underlineThickness', 'underline-thickness'], + ['unicodeBidi', 'unicode-bidi'], + ['unicodeRange', 'unicode-range'], + ['unitsPerEm', 'units-per-em'], + ['vAlphabetic', 'v-alphabetic'], + ['vHanging', 'v-hanging'], + ['vIdeographic', 'v-ideographic'], + ['vMathematical', 'v-mathematical'], + ['vectorEffect', 'vector-effect'], + ['vertAdvY', 'vert-adv-y'], + ['vertOriginX', 'vert-origin-x'], + ['vertOriginY', 'vert-origin-y'], + ['wordSpacing', 'word-spacing'], + ['writingMode', 'writing-mode'], + ['xmlnsXlink', 'xmlns:xlink'], + ['xHeight', 'x-height'], + ]), + Mm = + /^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i; + function Zi(t) { + return Mm.test('' + t) + ? "javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')" + : t; + } + function tn() {} + var Oc = null; + function wc(t) { + return ( + (t = t.target || t.srcElement || window), + t.correspondingUseElement && (t = t.correspondingUseElement), + t.nodeType === 3 ? t.parentNode : t + ); + } + var qa = null, + Ia = null; + function Wr(t) { + var e = La(t); + if (e && (t = e.stateNode)) { + var n = t[oe] || null; + t: switch (((t = e.stateNode), e.type)) { + case 'input': + if ( + (Sc( + t, + n.value, + n.defaultValue, + n.defaultValue, + n.checked, + n.defaultChecked, + n.type, + n.name + ), + (e = n.name), + n.type === 'radio' && e != null) + ) { + for (n = t; n.parentNode; ) n = n.parentNode; + for ( + n = n.querySelectorAll('input[name="' + He('' + e) + '"][type="radio"]'), e = 0; + e < n.length; + e++ + ) { + var a = n[e]; + if (a !== t && a.form === t.form) { + var i = a[oe] || null; + if (!i) throw Error(f(90)); + Sc( + a, + i.value, + i.defaultValue, + i.defaultValue, + i.checked, + i.defaultChecked, + i.type, + i.name + ); + } + } + for (e = 0; e < n.length; e++) ((a = n[e]), a.form === t.form && qr(a)); + } + break t; + case 'textarea': + Kr(t, n.value, n.defaultValue); + break t; + case 'select': + ((e = n.value), e != null && Va(t, !!n.multiple, e, !1)); + } + } + } + var Rc = !1; + function _r(t, e, n) { + if (Rc) return t(e, n); + Rc = !0; + try { + var a = t(e); + return a; + } finally { + if ( + ((Rc = !1), + (qa !== null || Ia !== null) && + (Mu(), qa && ((e = qa), (t = Ia), (Ia = qa = null), Wr(e), t))) + ) + for (e = 0; e < t.length; e++) Wr(t[e]); + } + } + function Hl(t, e) { + var n = t.stateNode; + if (n === null) return null; + var a = n[oe] || null; + if (a === null) return null; + n = a[e]; + t: switch (e) { + case 'onClick': + case 'onClickCapture': + case 'onDoubleClick': + case 'onDoubleClickCapture': + case 'onMouseDown': + case 'onMouseDownCapture': + case 'onMouseMove': + case 'onMouseMoveCapture': + case 'onMouseUp': + case 'onMouseUpCapture': + case 'onMouseEnter': + ((a = !a.disabled) || + ((t = t.type), + (a = !(t === 'button' || t === 'input' || t === 'select' || t === 'textarea'))), + (t = !a)); + break t; + default: + t = !1; + } + if (t) return null; + if (n && typeof n != 'function') throw Error(f(231, e, typeof n)); + return n; + } + var en = !( + typeof window > 'u' || + typeof window.document > 'u' || + typeof window.document.createElement > 'u' + ), + Dc = !1; + if (en) + try { + var Nl = {}; + (Object.defineProperty(Nl, 'passive', { + get: function () { + Dc = !0; + }, + }), + window.addEventListener('test', Nl, Nl), + window.removeEventListener('test', Nl, Nl)); + } catch { + Dc = !1; + } + var jn = null, + Mc = null, + qi = null; + function Pr() { + if (qi) return qi; + var t, + e = Mc, + n = e.length, + a, + i = 'value' in jn ? jn.value : jn.textContent, + s = i.length; + for (t = 0; t < n && e[t] === i[t]; t++); + var d = n - t; + for (a = 1; a <= d && e[n - a] === i[s - a]; a++); + return (qi = i.slice(t, 1 < a ? 1 - a : void 0)); + } + function Ii(t) { + var e = t.keyCode; + return ( + 'charCode' in t ? ((t = t.charCode), t === 0 && e === 13 && (t = 13)) : (t = e), + t === 10 && (t = 13), + 32 <= t || t === 13 ? t : 0 + ); + } + function Ki() { + return !0; + } + function $r() { + return !1; + } + function de(t) { + function e(n, a, i, s, d) { + ((this._reactName = n), + (this._targetInst = i), + (this.type = a), + (this.nativeEvent = s), + (this.target = d), + (this.currentTarget = null)); + for (var g in t) t.hasOwnProperty(g) && ((n = t[g]), (this[g] = n ? n(s) : s[g])); + return ( + (this.isDefaultPrevented = ( + s.defaultPrevented != null ? s.defaultPrevented : s.returnValue === !1 + ) + ? Ki + : $r), + (this.isPropagationStopped = $r), + this + ); + } + return ( + S(e.prototype, { + preventDefault: function () { + this.defaultPrevented = !0; + var n = this.nativeEvent; + n && + (n.preventDefault + ? n.preventDefault() + : typeof n.returnValue != 'unknown' && (n.returnValue = !1), + (this.isDefaultPrevented = Ki)); + }, + stopPropagation: function () { + var n = this.nativeEvent; + n && + (n.stopPropagation + ? n.stopPropagation() + : typeof n.cancelBubble != 'unknown' && (n.cancelBubble = !0), + (this.isPropagationStopped = Ki)); + }, + persist: function () {}, + isPersistent: Ki, + }), + e + ); + } + var ha = { + eventPhase: 0, + bubbles: 0, + cancelable: 0, + timeStamp: function (t) { + return t.timeStamp || Date.now(); + }, + defaultPrevented: 0, + isTrusted: 0, + }, + ki = de(ha), + Bl = S({}, ha, { view: 0, detail: 0 }), + jm = de(Bl), + jc, + Hc, + Ul, + Ji = S({}, Bl, { + screenX: 0, + screenY: 0, + clientX: 0, + clientY: 0, + pageX: 0, + pageY: 0, + ctrlKey: 0, + shiftKey: 0, + altKey: 0, + metaKey: 0, + getModifierState: Bc, + button: 0, + buttons: 0, + relatedTarget: function (t) { + return t.relatedTarget === void 0 + ? t.fromElement === t.srcElement + ? t.toElement + : t.fromElement + : t.relatedTarget; + }, + movementX: function (t) { + return 'movementX' in t + ? t.movementX + : (t !== Ul && + (Ul && t.type === 'mousemove' + ? ((jc = t.screenX - Ul.screenX), (Hc = t.screenY - Ul.screenY)) + : (Hc = jc = 0), + (Ul = t)), + jc); + }, + movementY: function (t) { + return 'movementY' in t ? t.movementY : Hc; + }, + }), + to = de(Ji), + Hm = S({}, Ji, { dataTransfer: 0 }), + Nm = de(Hm), + Bm = S({}, Bl, { relatedTarget: 0 }), + Nc = de(Bm), + Um = S({}, ha, { animationName: 0, elapsedTime: 0, pseudoElement: 0 }), + Qm = de(Um), + zm = S({}, ha, { + clipboardData: function (t) { + return 'clipboardData' in t ? t.clipboardData : window.clipboardData; + }, + }), + Ym = de(zm), + Lm = S({}, ha, { data: 0 }), + eo = de(Lm), + Gm = { + Esc: 'Escape', + Spacebar: ' ', + Left: 'ArrowLeft', + Up: 'ArrowUp', + Right: 'ArrowRight', + Down: 'ArrowDown', + Del: 'Delete', + Win: 'OS', + Menu: 'ContextMenu', + Apps: 'ContextMenu', + Scroll: 'ScrollLock', + MozPrintableKey: 'Unidentified', + }, + Xm = { + 8: 'Backspace', + 9: 'Tab', + 12: 'Clear', + 13: 'Enter', + 16: 'Shift', + 17: 'Control', + 18: 'Alt', + 19: 'Pause', + 20: 'CapsLock', + 27: 'Escape', + 32: ' ', + 33: 'PageUp', + 34: 'PageDown', + 35: 'End', + 36: 'Home', + 37: 'ArrowLeft', + 38: 'ArrowUp', + 39: 'ArrowRight', + 40: 'ArrowDown', + 45: 'Insert', + 46: 'Delete', + 112: 'F1', + 113: 'F2', + 114: 'F3', + 115: 'F4', + 116: 'F5', + 117: 'F6', + 118: 'F7', + 119: 'F8', + 120: 'F9', + 121: 'F10', + 122: 'F11', + 123: 'F12', + 144: 'NumLock', + 145: 'ScrollLock', + 224: 'Meta', + }, + Vm = { Alt: 'altKey', Control: 'ctrlKey', Meta: 'metaKey', Shift: 'shiftKey' }; + function Zm(t) { + var e = this.nativeEvent; + return e.getModifierState ? e.getModifierState(t) : (t = Vm[t]) ? !!e[t] : !1; + } + function Bc() { + return Zm; + } + var qm = S({}, Bl, { + key: function (t) { + if (t.key) { + var e = Gm[t.key] || t.key; + if (e !== 'Unidentified') return e; + } + return t.type === 'keypress' + ? ((t = Ii(t)), t === 13 ? 'Enter' : String.fromCharCode(t)) + : t.type === 'keydown' || t.type === 'keyup' + ? Xm[t.keyCode] || 'Unidentified' + : ''; + }, + code: 0, + location: 0, + ctrlKey: 0, + shiftKey: 0, + altKey: 0, + metaKey: 0, + repeat: 0, + locale: 0, + getModifierState: Bc, + charCode: function (t) { + return t.type === 'keypress' ? Ii(t) : 0; + }, + keyCode: function (t) { + return t.type === 'keydown' || t.type === 'keyup' ? t.keyCode : 0; + }, + which: function (t) { + return t.type === 'keypress' + ? Ii(t) + : t.type === 'keydown' || t.type === 'keyup' + ? t.keyCode + : 0; + }, + }), + Im = de(qm), + Km = S({}, Ji, { + pointerId: 0, + width: 0, + height: 0, + pressure: 0, + tangentialPressure: 0, + tiltX: 0, + tiltY: 0, + twist: 0, + pointerType: 0, + isPrimary: 0, + }), + no = de(Km), + km = S({}, Bl, { + touches: 0, + targetTouches: 0, + changedTouches: 0, + altKey: 0, + metaKey: 0, + ctrlKey: 0, + shiftKey: 0, + getModifierState: Bc, + }), + Jm = de(km), + Fm = S({}, ha, { propertyName: 0, elapsedTime: 0, pseudoElement: 0 }), + Wm = de(Fm), + _m = S({}, Ji, { + deltaX: function (t) { + return 'deltaX' in t ? t.deltaX : 'wheelDeltaX' in t ? -t.wheelDeltaX : 0; + }, + deltaY: function (t) { + return 'deltaY' in t + ? t.deltaY + : 'wheelDeltaY' in t + ? -t.wheelDeltaY + : 'wheelDelta' in t + ? -t.wheelDelta + : 0; + }, + deltaZ: 0, + deltaMode: 0, + }), + Pm = de(_m), + $m = S({}, ha, { newState: 0, oldState: 0 }), + tg = de($m), + eg = [9, 13, 27, 32], + Uc = en && 'CompositionEvent' in window, + Ql = null; + en && 'documentMode' in document && (Ql = document.documentMode); + var ng = en && 'TextEvent' in window && !Ql, + ao = en && (!Uc || (Ql && 8 < Ql && 11 >= Ql)), + lo = ' ', + io = !1; + function uo(t, e) { + switch (t) { + case 'keyup': + return eg.indexOf(e.keyCode) !== -1; + case 'keydown': + return e.keyCode !== 229; + case 'keypress': + case 'mousedown': + case 'focusout': + return !0; + default: + return !1; + } + } + function co(t) { + return ((t = t.detail), typeof t == 'object' && 'data' in t ? t.data : null); + } + var Ka = !1; + function ag(t, e) { + switch (t) { + case 'compositionend': + return co(e); + case 'keypress': + return e.which !== 32 ? null : ((io = !0), lo); + case 'textInput': + return ((t = e.data), t === lo && io ? null : t); + default: + return null; + } + } + function lg(t, e) { + if (Ka) + return t === 'compositionend' || (!Uc && uo(t, e)) + ? ((t = Pr()), (qi = Mc = jn = null), (Ka = !1), t) + : null; + switch (t) { + case 'paste': + return null; + case 'keypress': + if (!(e.ctrlKey || e.altKey || e.metaKey) || (e.ctrlKey && e.altKey)) { + if (e.char && 1 < e.char.length) return e.char; + if (e.which) return String.fromCharCode(e.which); + } + return null; + case 'compositionend': + return ao && e.locale !== 'ko' ? null : e.data; + default: + return null; + } + } + var ig = { + color: !0, + date: !0, + datetime: !0, + 'datetime-local': !0, + email: !0, + month: !0, + number: !0, + password: !0, + range: !0, + search: !0, + tel: !0, + text: !0, + time: !0, + url: !0, + week: !0, + }; + function so(t) { + var e = t && t.nodeName && t.nodeName.toLowerCase(); + return e === 'input' ? !!ig[t.type] : e === 'textarea'; + } + function fo(t, e, n, a) { + (qa ? (Ia ? Ia.push(a) : (Ia = [a])) : (qa = a), + (e = zu(e, 'onChange')), + 0 < e.length && + ((n = new ki('onChange', 'change', null, n, a)), t.push({ event: n, listeners: e }))); + } + var zl = null, + Yl = null; + function ug(t) { + Kd(t, 0); + } + function Fi(t) { + var e = jl(t); + if (qr(e)) return t; + } + function ro(t, e) { + if (t === 'change') return e; + } + var oo = !1; + if (en) { + var Qc; + if (en) { + var zc = 'oninput' in document; + if (!zc) { + var ho = document.createElement('div'); + (ho.setAttribute('oninput', 'return;'), (zc = typeof ho.oninput == 'function')); + } + Qc = zc; + } else Qc = !1; + oo = Qc && (!document.documentMode || 9 < document.documentMode); + } + function mo() { + zl && (zl.detachEvent('onpropertychange', go), (Yl = zl = null)); + } + function go(t) { + if (t.propertyName === 'value' && Fi(Yl)) { + var e = []; + (fo(e, Yl, t, wc(t)), _r(ug, e)); + } + } + function cg(t, e, n) { + t === 'focusin' + ? (mo(), (zl = e), (Yl = n), zl.attachEvent('onpropertychange', go)) + : t === 'focusout' && mo(); + } + function sg(t) { + if (t === 'selectionchange' || t === 'keyup' || t === 'keydown') return Fi(Yl); + } + function fg(t, e) { + if (t === 'click') return Fi(e); + } + function rg(t, e) { + if (t === 'input' || t === 'change') return Fi(e); + } + function og(t, e) { + return (t === e && (t !== 0 || 1 / t === 1 / e)) || (t !== t && e !== e); + } + var Se = typeof Object.is == 'function' ? Object.is : og; + function Ll(t, e) { + if (Se(t, e)) return !0; + if (typeof t != 'object' || t === null || typeof e != 'object' || e === null) return !1; + var n = Object.keys(t), + a = Object.keys(e); + if (n.length !== a.length) return !1; + for (a = 0; a < n.length; a++) { + var i = n[a]; + if (!mc.call(e, i) || !Se(t[i], e[i])) return !1; + } + return !0; + } + function Ao(t) { + for (; t && t.firstChild; ) t = t.firstChild; + return t; + } + function vo(t, e) { + var n = Ao(t); + t = 0; + for (var a; n; ) { + if (n.nodeType === 3) { + if (((a = t + n.textContent.length), t <= e && a >= e)) + return { node: n, offset: e - t }; + t = a; + } + t: { + for (; n; ) { + if (n.nextSibling) { + n = n.nextSibling; + break t; + } + n = n.parentNode; + } + n = void 0; + } + n = Ao(n); + } + } + function yo(t, e) { + return t && e + ? t === e + ? !0 + : t && t.nodeType === 3 + ? !1 + : e && e.nodeType === 3 + ? yo(t, e.parentNode) + : 'contains' in t + ? t.contains(e) + : t.compareDocumentPosition + ? !!(t.compareDocumentPosition(e) & 16) + : !1 + : !1; + } + function Eo(t) { + t = + t != null && t.ownerDocument != null && t.ownerDocument.defaultView != null + ? t.ownerDocument.defaultView + : window; + for (var e = Vi(t.document); e instanceof t.HTMLIFrameElement; ) { + try { + var n = typeof e.contentWindow.location.href == 'string'; + } catch { + n = !1; + } + if (n) t = e.contentWindow; + else break; + e = Vi(t.document); + } + return e; + } + function Yc(t) { + var e = t && t.nodeName && t.nodeName.toLowerCase(); + return ( + e && + ((e === 'input' && + (t.type === 'text' || + t.type === 'search' || + t.type === 'tel' || + t.type === 'url' || + t.type === 'password')) || + e === 'textarea' || + t.contentEditable === 'true') + ); + } + var dg = en && 'documentMode' in document && 11 >= document.documentMode, + ka = null, + Lc = null, + Gl = null, + Gc = !1; + function po(t, e, n) { + var a = n.window === n ? n.document : n.nodeType === 9 ? n : n.ownerDocument; + Gc || + ka == null || + ka !== Vi(a) || + ((a = ka), + 'selectionStart' in a && Yc(a) + ? (a = { start: a.selectionStart, end: a.selectionEnd }) + : ((a = ((a.ownerDocument && a.ownerDocument.defaultView) || window).getSelection()), + (a = { + anchorNode: a.anchorNode, + anchorOffset: a.anchorOffset, + focusNode: a.focusNode, + focusOffset: a.focusOffset, + })), + (Gl && Ll(Gl, a)) || + ((Gl = a), + (a = zu(Lc, 'onSelect')), + 0 < a.length && + ((e = new ki('onSelect', 'select', null, e, n)), + t.push({ event: e, listeners: a }), + (e.target = ka)))); + } + function ma(t, e) { + var n = {}; + return ( + (n[t.toLowerCase()] = e.toLowerCase()), + (n['Webkit' + t] = 'webkit' + e), + (n['Moz' + t] = 'moz' + e), + n + ); + } + var Ja = { + animationend: ma('Animation', 'AnimationEnd'), + animationiteration: ma('Animation', 'AnimationIteration'), + animationstart: ma('Animation', 'AnimationStart'), + transitionrun: ma('Transition', 'TransitionRun'), + transitionstart: ma('Transition', 'TransitionStart'), + transitioncancel: ma('Transition', 'TransitionCancel'), + transitionend: ma('Transition', 'TransitionEnd'), + }, + Xc = {}, + bo = {}; + en && + ((bo = document.createElement('div').style), + 'AnimationEvent' in window || + (delete Ja.animationend.animation, + delete Ja.animationiteration.animation, + delete Ja.animationstart.animation), + 'TransitionEvent' in window || delete Ja.transitionend.transition); + function ga(t) { + if (Xc[t]) return Xc[t]; + if (!Ja[t]) return t; + var e = Ja[t], + n; + for (n in e) if (e.hasOwnProperty(n) && n in bo) return (Xc[t] = e[n]); + return t; + } + var xo = ga('animationend'), + So = ga('animationiteration'), + To = ga('animationstart'), + hg = ga('transitionrun'), + mg = ga('transitionstart'), + gg = ga('transitioncancel'), + Co = ga('transitionend'), + Oo = new Map(), + Vc = + 'abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel'.split( + ' ' + ); + Vc.push('scrollEnd'); + function qe(t, e) { + (Oo.set(t, e), da(e, [t])); + } + var Wi = + typeof reportError == 'function' + ? reportError + : function (t) { + if (typeof window == 'object' && typeof window.ErrorEvent == 'function') { + var e = new window.ErrorEvent('error', { + bubbles: !0, + cancelable: !0, + message: + typeof t == 'object' && t !== null && typeof t.message == 'string' + ? String(t.message) + : String(t), + error: t, + }); + if (!window.dispatchEvent(e)) return; + } else if (typeof process == 'object' && typeof process.emit == 'function') { + process.emit('uncaughtException', t); + return; + } + console.error(t); + }, + Ne = [], + Fa = 0, + Zc = 0; + function _i() { + for (var t = Fa, e = (Zc = Fa = 0); e < t; ) { + var n = Ne[e]; + Ne[e++] = null; + var a = Ne[e]; + Ne[e++] = null; + var i = Ne[e]; + Ne[e++] = null; + var s = Ne[e]; + if (((Ne[e++] = null), a !== null && i !== null)) { + var d = a.pending; + (d === null ? (i.next = i) : ((i.next = d.next), (d.next = i)), (a.pending = i)); + } + s !== 0 && wo(n, i, s); + } + } + function Pi(t, e, n, a) { + ((Ne[Fa++] = t), + (Ne[Fa++] = e), + (Ne[Fa++] = n), + (Ne[Fa++] = a), + (Zc |= a), + (t.lanes |= a), + (t = t.alternate), + t !== null && (t.lanes |= a)); + } + function qc(t, e, n, a) { + return (Pi(t, e, n, a), $i(t)); + } + function Aa(t, e) { + return (Pi(t, null, null, e), $i(t)); + } + function wo(t, e, n) { + t.lanes |= n; + var a = t.alternate; + a !== null && (a.lanes |= n); + for (var i = !1, s = t.return; s !== null; ) + ((s.childLanes |= n), + (a = s.alternate), + a !== null && (a.childLanes |= n), + s.tag === 22 && ((t = s.stateNode), t === null || t._visibility & 1 || (i = !0)), + (t = s), + (s = s.return)); + return t.tag === 3 + ? ((s = t.stateNode), + i && + e !== null && + ((i = 31 - xe(n)), + (t = s.hiddenUpdates), + (a = t[i]), + a === null ? (t[i] = [e]) : a.push(e), + (e.lane = n | 536870912)), + s) + : null; + } + function $i(t) { + if (50 < si) throw ((si = 0), ($s = null), Error(f(185))); + for (var e = t.return; e !== null; ) ((t = e), (e = t.return)); + return t.tag === 3 ? t.stateNode : null; + } + var Wa = {}; + function Ag(t, e, n, a) { + ((this.tag = t), + (this.key = n), + (this.sibling = + this.child = + this.return = + this.stateNode = + this.type = + this.elementType = + null), + (this.index = 0), + (this.refCleanup = this.ref = null), + (this.pendingProps = e), + (this.dependencies = this.memoizedState = this.updateQueue = this.memoizedProps = null), + (this.mode = a), + (this.subtreeFlags = this.flags = 0), + (this.deletions = null), + (this.childLanes = this.lanes = 0), + (this.alternate = null)); + } + function Te(t, e, n, a) { + return new Ag(t, e, n, a); + } + function Ic(t) { + return ((t = t.prototype), !(!t || !t.isReactComponent)); + } + function nn(t, e) { + var n = t.alternate; + return ( + n === null + ? ((n = Te(t.tag, e, t.key, t.mode)), + (n.elementType = t.elementType), + (n.type = t.type), + (n.stateNode = t.stateNode), + (n.alternate = t), + (t.alternate = n)) + : ((n.pendingProps = e), + (n.type = t.type), + (n.flags = 0), + (n.subtreeFlags = 0), + (n.deletions = null)), + (n.flags = t.flags & 65011712), + (n.childLanes = t.childLanes), + (n.lanes = t.lanes), + (n.child = t.child), + (n.memoizedProps = t.memoizedProps), + (n.memoizedState = t.memoizedState), + (n.updateQueue = t.updateQueue), + (e = t.dependencies), + (n.dependencies = e === null ? null : { lanes: e.lanes, firstContext: e.firstContext }), + (n.sibling = t.sibling), + (n.index = t.index), + (n.ref = t.ref), + (n.refCleanup = t.refCleanup), + n + ); + } + function Ro(t, e) { + t.flags &= 65011714; + var n = t.alternate; + return ( + n === null + ? ((t.childLanes = 0), + (t.lanes = e), + (t.child = null), + (t.subtreeFlags = 0), + (t.memoizedProps = null), + (t.memoizedState = null), + (t.updateQueue = null), + (t.dependencies = null), + (t.stateNode = null)) + : ((t.childLanes = n.childLanes), + (t.lanes = n.lanes), + (t.child = n.child), + (t.subtreeFlags = 0), + (t.deletions = null), + (t.memoizedProps = n.memoizedProps), + (t.memoizedState = n.memoizedState), + (t.updateQueue = n.updateQueue), + (t.type = n.type), + (e = n.dependencies), + (t.dependencies = + e === null ? null : { lanes: e.lanes, firstContext: e.firstContext })), + t + ); + } + function tu(t, e, n, a, i, s) { + var d = 0; + if (((a = t), typeof t == 'function')) Ic(t) && (d = 1); + else if (typeof t == 'string') + d = bA(t, n, et.current) ? 26 : t === 'html' || t === 'head' || t === 'body' ? 27 : 5; + else + t: switch (t) { + case K: + return ((t = Te(31, n, e, i)), (t.elementType = K), (t.lanes = s), t); + case b: + return va(n.children, i, s, e); + case p: + ((d = 8), (i |= 24)); + break; + case x: + return ((t = Te(12, n, e, i | 2)), (t.elementType = x), (t.lanes = s), t); + case F: + return ((t = Te(13, n, e, i)), (t.elementType = F), (t.lanes = s), t); + case j: + return ((t = Te(19, n, e, i)), (t.elementType = j), (t.lanes = s), t); + default: + if (typeof t == 'object' && t !== null) + switch (t.$$typeof) { + case U: + d = 10; + break t; + case R: + d = 9; + break t; + case Z: + d = 11; + break t; + case D: + d = 14; + break t; + case N: + ((d = 16), (a = null)); + break t; + } + ((d = 29), (n = Error(f(130, t === null ? 'null' : typeof t, ''))), (a = null)); + } + return ((e = Te(d, n, e, i)), (e.elementType = t), (e.type = a), (e.lanes = s), e); + } + function va(t, e, n, a) { + return ((t = Te(7, t, a, e)), (t.lanes = n), t); + } + function Kc(t, e, n) { + return ((t = Te(6, t, null, e)), (t.lanes = n), t); + } + function Do(t) { + var e = Te(18, null, null, 0); + return ((e.stateNode = t), e); + } + function kc(t, e, n) { + return ( + (e = Te(4, t.children !== null ? t.children : [], t.key, e)), + (e.lanes = n), + (e.stateNode = { + containerInfo: t.containerInfo, + pendingChildren: null, + implementation: t.implementation, + }), + e + ); + } + var Mo = new WeakMap(); + function Be(t, e) { + if (typeof t == 'object' && t !== null) { + var n = Mo.get(t); + return n !== void 0 + ? n + : ((e = { value: t, source: e, stack: Bi(e) }), Mo.set(t, e), e); + } + return { value: t, source: e, stack: Bi(e) }; + } + var _a = [], + Pa = 0, + eu = null, + Xl = 0, + Ue = [], + Qe = 0, + Hn = null, + Je = 1, + Fe = ''; + function an(t, e) { + ((_a[Pa++] = Xl), (_a[Pa++] = eu), (eu = t), (Xl = e)); + } + function jo(t, e, n) { + ((Ue[Qe++] = Je), (Ue[Qe++] = Fe), (Ue[Qe++] = Hn), (Hn = t)); + var a = Je; + t = Fe; + var i = 32 - xe(a) - 1; + ((a &= ~(1 << i)), (n += 1)); + var s = 32 - xe(e) + i; + if (30 < s) { + var d = i - (i % 5); + ((s = (a & ((1 << d) - 1)).toString(32)), + (a >>= d), + (i -= d), + (Je = (1 << (32 - xe(e) + i)) | (n << i) | a), + (Fe = s + t)); + } else ((Je = (1 << s) | (n << i) | a), (Fe = t)); + } + function Jc(t) { + t.return !== null && (an(t, 1), jo(t, 1, 0)); + } + function Fc(t) { + for (; t === eu; ) ((eu = _a[--Pa]), (_a[Pa] = null), (Xl = _a[--Pa]), (_a[Pa] = null)); + for (; t === Hn; ) + ((Hn = Ue[--Qe]), + (Ue[Qe] = null), + (Fe = Ue[--Qe]), + (Ue[Qe] = null), + (Je = Ue[--Qe]), + (Ue[Qe] = null)); + } + function Ho(t, e) { + ((Ue[Qe++] = Je), + (Ue[Qe++] = Fe), + (Ue[Qe++] = Hn), + (Je = e.id), + (Fe = e.overflow), + (Hn = t)); + } + var ee = null, + Ht = null, + bt = !1, + Nn = null, + ze = !1, + Wc = Error(f(519)); + function Bn(t) { + var e = Error( + f( + 418, + 1 < arguments.length && arguments[1] !== void 0 && arguments[1] ? 'text' : 'HTML', + '' + ) + ); + throw (Vl(Be(e, t)), Wc); + } + function No(t) { + var e = t.stateNode, + n = t.type, + a = t.memoizedProps; + switch (((e[te] = t), (e[oe] = a), n)) { + case 'dialog': + (yt('cancel', e), yt('close', e)); + break; + case 'iframe': + case 'object': + case 'embed': + yt('load', e); + break; + case 'video': + case 'audio': + for (n = 0; n < ri.length; n++) yt(ri[n], e); + break; + case 'source': + yt('error', e); + break; + case 'img': + case 'image': + case 'link': + (yt('error', e), yt('load', e)); + break; + case 'details': + yt('toggle', e); + break; + case 'input': + (yt('invalid', e), + Ir(e, a.value, a.defaultValue, a.checked, a.defaultChecked, a.type, a.name, !0)); + break; + case 'select': + yt('invalid', e); + break; + case 'textarea': + (yt('invalid', e), kr(e, a.value, a.defaultValue, a.children)); + } + ((n = a.children), + (typeof n != 'string' && typeof n != 'number' && typeof n != 'bigint') || + e.textContent === '' + n || + a.suppressHydrationWarning === !0 || + Wd(e.textContent, n) + ? (a.popover != null && (yt('beforetoggle', e), yt('toggle', e)), + a.onScroll != null && yt('scroll', e), + a.onScrollEnd != null && yt('scrollend', e), + a.onClick != null && (e.onclick = tn), + (e = !0)) + : (e = !1), + e || Bn(t, !0)); + } + function Bo(t) { + for (ee = t.return; ee; ) + switch (ee.tag) { + case 5: + case 31: + case 13: + ze = !1; + return; + case 27: + case 3: + ze = !0; + return; + default: + ee = ee.return; + } + } + function $a(t) { + if (t !== ee) return !1; + if (!bt) return (Bo(t), (bt = !0), !1); + var e = t.tag, + n; + if ( + ((n = e !== 3 && e !== 27) && + ((n = e === 5) && + ((n = t.type), + (n = !(n !== 'form' && n !== 'button') || gf(t.type, t.memoizedProps))), + (n = !n)), + n && Ht && Bn(t), + Bo(t), + e === 13) + ) { + if (((t = t.memoizedState), (t = t !== null ? t.dehydrated : null), !t)) + throw Error(f(317)); + Ht = i1(t); + } else if (e === 31) { + if (((t = t.memoizedState), (t = t !== null ? t.dehydrated : null), !t)) + throw Error(f(317)); + Ht = i1(t); + } else + e === 27 + ? ((e = Ht), Jn(t.type) ? ((t = pf), (pf = null), (Ht = t)) : (Ht = e)) + : (Ht = ee ? Le(t.stateNode.nextSibling) : null); + return !0; + } + function ya() { + ((Ht = ee = null), (bt = !1)); + } + function _c() { + var t = Nn; + return (t !== null && (Ae === null ? (Ae = t) : Ae.push.apply(Ae, t), (Nn = null)), t); + } + function Vl(t) { + Nn === null ? (Nn = [t]) : Nn.push(t); + } + var Pc = C(null), + Ea = null, + ln = null; + function Un(t, e, n) { + (W(Pc, e._currentValue), (e._currentValue = n)); + } + function un(t) { + ((t._currentValue = Pc.current), L(Pc)); + } + function $c(t, e, n) { + for (; t !== null; ) { + var a = t.alternate; + if ( + ((t.childLanes & e) !== e + ? ((t.childLanes |= e), a !== null && (a.childLanes |= e)) + : a !== null && (a.childLanes & e) !== e && (a.childLanes |= e), + t === n) + ) + break; + t = t.return; + } + } + function ts(t, e, n, a) { + var i = t.child; + for (i !== null && (i.return = t); i !== null; ) { + var s = i.dependencies; + if (s !== null) { + var d = i.child; + s = s.firstContext; + t: for (; s !== null; ) { + var g = s; + s = i; + for (var T = 0; T < e.length; T++) + if (g.context === e[T]) { + ((s.lanes |= n), + (g = s.alternate), + g !== null && (g.lanes |= n), + $c(s.return, n, t), + a || (d = null)); + break t; + } + s = g.next; + } + } else if (i.tag === 18) { + if (((d = i.return), d === null)) throw Error(f(341)); + ((d.lanes |= n), + (s = d.alternate), + s !== null && (s.lanes |= n), + $c(d, n, t), + (d = null)); + } else d = i.child; + if (d !== null) d.return = i; + else + for (d = i; d !== null; ) { + if (d === t) { + d = null; + break; + } + if (((i = d.sibling), i !== null)) { + ((i.return = d.return), (d = i)); + break; + } + d = d.return; + } + i = d; + } + } + function tl(t, e, n, a) { + t = null; + for (var i = e, s = !1; i !== null; ) { + if (!s) { + if ((i.flags & 524288) !== 0) s = !0; + else if ((i.flags & 262144) !== 0) break; + } + if (i.tag === 10) { + var d = i.alternate; + if (d === null) throw Error(f(387)); + if (((d = d.memoizedProps), d !== null)) { + var g = i.type; + Se(i.pendingProps.value, d.value) || (t !== null ? t.push(g) : (t = [g])); + } + } else if (i === gt.current) { + if (((d = i.alternate), d === null)) throw Error(f(387)); + d.memoizedState.memoizedState !== i.memoizedState.memoizedState && + (t !== null ? t.push(gi) : (t = [gi])); + } + i = i.return; + } + (t !== null && ts(e, t, n, a), (e.flags |= 262144)); + } + function nu(t) { + for (t = t.firstContext; t !== null; ) { + if (!Se(t.context._currentValue, t.memoizedValue)) return !0; + t = t.next; + } + return !1; + } + function pa(t) { + ((Ea = t), (ln = null), (t = t.dependencies), t !== null && (t.firstContext = null)); + } + function ne(t) { + return Uo(Ea, t); + } + function au(t, e) { + return (Ea === null && pa(t), Uo(t, e)); + } + function Uo(t, e) { + var n = e._currentValue; + if (((e = { context: e, memoizedValue: n, next: null }), ln === null)) { + if (t === null) throw Error(f(308)); + ((ln = e), (t.dependencies = { lanes: 0, firstContext: e }), (t.flags |= 524288)); + } else ln = ln.next = e; + return n; + } + var vg = + typeof AbortController < 'u' + ? AbortController + : function () { + var t = [], + e = (this.signal = { + aborted: !1, + addEventListener: function (n, a) { + t.push(a); + }, + }); + this.abort = function () { + ((e.aborted = !0), + t.forEach(function (n) { + return n(); + })); + }; + }, + yg = l.unstable_scheduleCallback, + Eg = l.unstable_NormalPriority, + Zt = { + $$typeof: U, + Consumer: null, + Provider: null, + _currentValue: null, + _currentValue2: null, + _threadCount: 0, + }; + function es() { + return { controller: new vg(), data: new Map(), refCount: 0 }; + } + function Zl(t) { + (t.refCount--, + t.refCount === 0 && + yg(Eg, function () { + t.controller.abort(); + })); + } + var ql = null, + ns = 0, + el = 0, + nl = null; + function pg(t, e) { + if (ql === null) { + var n = (ql = []); + ((ns = 0), + (el = uf()), + (nl = { + status: 'pending', + value: void 0, + then: function (a) { + n.push(a); + }, + })); + } + return (ns++, e.then(Qo, Qo), e); + } + function Qo() { + if (--ns === 0 && ql !== null) { + nl !== null && (nl.status = 'fulfilled'); + var t = ql; + ((ql = null), (el = 0), (nl = null)); + for (var e = 0; e < t.length; e++) (0, t[e])(); + } + } + function bg(t, e) { + var n = [], + a = { + status: 'pending', + value: null, + reason: null, + then: function (i) { + n.push(i); + }, + }; + return ( + t.then( + function () { + ((a.status = 'fulfilled'), (a.value = e)); + for (var i = 0; i < n.length; i++) (0, n[i])(e); + }, + function (i) { + for (a.status = 'rejected', a.reason = i, i = 0; i < n.length; i++) + (0, n[i])(void 0); + } + ), + a + ); + } + var zo = H.S; + H.S = function (t, e) { + ((pd = pe()), + typeof e == 'object' && e !== null && typeof e.then == 'function' && pg(t, e), + zo !== null && zo(t, e)); + }; + var ba = C(null); + function as() { + var t = ba.current; + return t !== null ? t : jt.pooledCache; + } + function lu(t, e) { + e === null ? W(ba, ba.current) : W(ba, e.pool); + } + function Yo() { + var t = as(); + return t === null ? null : { parent: Zt._currentValue, pool: t }; + } + var al = Error(f(460)), + ls = Error(f(474)), + iu = Error(f(542)), + uu = { then: function () {} }; + function Lo(t) { + return ((t = t.status), t === 'fulfilled' || t === 'rejected'); + } + function Go(t, e, n) { + switch ( + ((n = t[n]), n === void 0 ? t.push(e) : n !== e && (e.then(tn, tn), (e = n)), e.status) + ) { + case 'fulfilled': + return e.value; + case 'rejected': + throw ((t = e.reason), Vo(t), t); + default: + if (typeof e.status == 'string') e.then(tn, tn); + else { + if (((t = jt), t !== null && 100 < t.shellSuspendCounter)) throw Error(f(482)); + ((t = e), + (t.status = 'pending'), + t.then( + function (a) { + if (e.status === 'pending') { + var i = e; + ((i.status = 'fulfilled'), (i.value = a)); + } + }, + function (a) { + if (e.status === 'pending') { + var i = e; + ((i.status = 'rejected'), (i.reason = a)); + } + } + )); + } + switch (e.status) { + case 'fulfilled': + return e.value; + case 'rejected': + throw ((t = e.reason), Vo(t), t); + } + throw ((Sa = e), al); + } + } + function xa(t) { + try { + var e = t._init; + return e(t._payload); + } catch (n) { + throw n !== null && typeof n == 'object' && typeof n.then == 'function' + ? ((Sa = n), al) + : n; + } + } + var Sa = null; + function Xo() { + if (Sa === null) throw Error(f(459)); + var t = Sa; + return ((Sa = null), t); + } + function Vo(t) { + if (t === al || t === iu) throw Error(f(483)); + } + var ll = null, + Il = 0; + function cu(t) { + var e = Il; + return ((Il += 1), ll === null && (ll = []), Go(ll, t, e)); + } + function Kl(t, e) { + ((e = e.props.ref), (t.ref = e !== void 0 ? e : null)); + } + function su(t, e) { + throw e.$$typeof === O + ? Error(f(525)) + : ((t = Object.prototype.toString.call(e)), + Error( + f( + 31, + t === '[object Object]' + ? 'object with keys {' + Object.keys(e).join(', ') + '}' + : t + ) + )); + } + function Zo(t) { + function e(M, w) { + if (t) { + var Q = M.deletions; + Q === null ? ((M.deletions = [w]), (M.flags |= 16)) : Q.push(w); + } + } + function n(M, w) { + if (!t) return null; + for (; w !== null; ) (e(M, w), (w = w.sibling)); + return null; + } + function a(M) { + for (var w = new Map(); M !== null; ) + (M.key !== null ? w.set(M.key, M) : w.set(M.index, M), (M = M.sibling)); + return w; + } + function i(M, w) { + return ((M = nn(M, w)), (M.index = 0), (M.sibling = null), M); + } + function s(M, w, Q) { + return ( + (M.index = Q), + t + ? ((Q = M.alternate), + Q !== null + ? ((Q = Q.index), Q < w ? ((M.flags |= 67108866), w) : Q) + : ((M.flags |= 67108866), w)) + : ((M.flags |= 1048576), w) + ); + } + function d(M) { + return (t && M.alternate === null && (M.flags |= 67108866), M); + } + function g(M, w, Q, q) { + return w === null || w.tag !== 6 + ? ((w = Kc(Q, M.mode, q)), (w.return = M), w) + : ((w = i(w, Q)), (w.return = M), w); + } + function T(M, w, Q, q) { + var ut = Q.type; + return ut === b + ? V(M, w, Q.props.children, q, Q.key) + : w !== null && + (w.elementType === ut || + (typeof ut == 'object' && + ut !== null && + ut.$$typeof === N && + xa(ut) === w.type)) + ? ((w = i(w, Q.props)), Kl(w, Q), (w.return = M), w) + : ((w = tu(Q.type, Q.key, Q.props, null, M.mode, q)), Kl(w, Q), (w.return = M), w); + } + function z(M, w, Q, q) { + return w === null || + w.tag !== 4 || + w.stateNode.containerInfo !== Q.containerInfo || + w.stateNode.implementation !== Q.implementation + ? ((w = kc(Q, M.mode, q)), (w.return = M), w) + : ((w = i(w, Q.children || [])), (w.return = M), w); + } + function V(M, w, Q, q, ut) { + return w === null || w.tag !== 7 + ? ((w = va(Q, M.mode, q, ut)), (w.return = M), w) + : ((w = i(w, Q)), (w.return = M), w); + } + function I(M, w, Q) { + if ((typeof w == 'string' && w !== '') || typeof w == 'number' || typeof w == 'bigint') + return ((w = Kc('' + w, M.mode, Q)), (w.return = M), w); + if (typeof w == 'object' && w !== null) { + switch (w.$$typeof) { + case X: + return ( + (Q = tu(w.type, w.key, w.props, null, M.mode, Q)), + Kl(Q, w), + (Q.return = M), + Q + ); + case B: + return ((w = kc(w, M.mode, Q)), (w.return = M), w); + case N: + return ((w = xa(w)), I(M, w, Q)); + } + if (it(w) || nt(w)) return ((w = va(w, M.mode, Q, null)), (w.return = M), w); + if (typeof w.then == 'function') return I(M, cu(w), Q); + if (w.$$typeof === U) return I(M, au(M, w), Q); + su(M, w); + } + return null; + } + function Y(M, w, Q, q) { + var ut = w !== null ? w.key : null; + if ((typeof Q == 'string' && Q !== '') || typeof Q == 'number' || typeof Q == 'bigint') + return ut !== null ? null : g(M, w, '' + Q, q); + if (typeof Q == 'object' && Q !== null) { + switch (Q.$$typeof) { + case X: + return Q.key === ut ? T(M, w, Q, q) : null; + case B: + return Q.key === ut ? z(M, w, Q, q) : null; + case N: + return ((Q = xa(Q)), Y(M, w, Q, q)); + } + if (it(Q) || nt(Q)) return ut !== null ? null : V(M, w, Q, q, null); + if (typeof Q.then == 'function') return Y(M, w, cu(Q), q); + if (Q.$$typeof === U) return Y(M, w, au(M, Q), q); + su(M, Q); + } + return null; + } + function G(M, w, Q, q, ut) { + if ((typeof q == 'string' && q !== '') || typeof q == 'number' || typeof q == 'bigint') + return ((M = M.get(Q) || null), g(w, M, '' + q, ut)); + if (typeof q == 'object' && q !== null) { + switch (q.$$typeof) { + case X: + return ((M = M.get(q.key === null ? Q : q.key) || null), T(w, M, q, ut)); + case B: + return ((M = M.get(q.key === null ? Q : q.key) || null), z(w, M, q, ut)); + case N: + return ((q = xa(q)), G(M, w, Q, q, ut)); + } + if (it(q) || nt(q)) return ((M = M.get(Q) || null), V(w, M, q, ut, null)); + if (typeof q.then == 'function') return G(M, w, Q, cu(q), ut); + if (q.$$typeof === U) return G(M, w, Q, au(w, q), ut); + su(w, q); + } + return null; + } + function at(M, w, Q, q) { + for ( + var ut = null, St = null, lt = w, At = (w = 0), pt = null; + lt !== null && At < Q.length; + At++ + ) { + lt.index > At ? ((pt = lt), (lt = null)) : (pt = lt.sibling); + var Tt = Y(M, lt, Q[At], q); + if (Tt === null) { + lt === null && (lt = pt); + break; + } + (t && lt && Tt.alternate === null && e(M, lt), + (w = s(Tt, w, At)), + St === null ? (ut = Tt) : (St.sibling = Tt), + (St = Tt), + (lt = pt)); + } + if (At === Q.length) return (n(M, lt), bt && an(M, At), ut); + if (lt === null) { + for (; At < Q.length; At++) + ((lt = I(M, Q[At], q)), + lt !== null && + ((w = s(lt, w, At)), St === null ? (ut = lt) : (St.sibling = lt), (St = lt))); + return (bt && an(M, At), ut); + } + for (lt = a(lt); At < Q.length; At++) + ((pt = G(lt, M, At, Q[At], q)), + pt !== null && + (t && pt.alternate !== null && lt.delete(pt.key === null ? At : pt.key), + (w = s(pt, w, At)), + St === null ? (ut = pt) : (St.sibling = pt), + (St = pt))); + return ( + t && + lt.forEach(function ($n) { + return e(M, $n); + }), + bt && an(M, At), + ut + ); + } + function ft(M, w, Q, q) { + if (Q == null) throw Error(f(151)); + for ( + var ut = null, St = null, lt = w, At = (w = 0), pt = null, Tt = Q.next(); + lt !== null && !Tt.done; + At++, Tt = Q.next() + ) { + lt.index > At ? ((pt = lt), (lt = null)) : (pt = lt.sibling); + var $n = Y(M, lt, Tt.value, q); + if ($n === null) { + lt === null && (lt = pt); + break; + } + (t && lt && $n.alternate === null && e(M, lt), + (w = s($n, w, At)), + St === null ? (ut = $n) : (St.sibling = $n), + (St = $n), + (lt = pt)); + } + if (Tt.done) return (n(M, lt), bt && an(M, At), ut); + if (lt === null) { + for (; !Tt.done; At++, Tt = Q.next()) + ((Tt = I(M, Tt.value, q)), + Tt !== null && + ((w = s(Tt, w, At)), St === null ? (ut = Tt) : (St.sibling = Tt), (St = Tt))); + return (bt && an(M, At), ut); + } + for (lt = a(lt); !Tt.done; At++, Tt = Q.next()) + ((Tt = G(lt, M, At, Tt.value, q)), + Tt !== null && + (t && Tt.alternate !== null && lt.delete(Tt.key === null ? At : Tt.key), + (w = s(Tt, w, At)), + St === null ? (ut = Tt) : (St.sibling = Tt), + (St = Tt))); + return ( + t && + lt.forEach(function (HA) { + return e(M, HA); + }), + bt && an(M, At), + ut + ); + } + function Mt(M, w, Q, q) { + if ( + (typeof Q == 'object' && + Q !== null && + Q.type === b && + Q.key === null && + (Q = Q.props.children), + typeof Q == 'object' && Q !== null) + ) { + switch (Q.$$typeof) { + case X: + t: { + for (var ut = Q.key; w !== null; ) { + if (w.key === ut) { + if (((ut = Q.type), ut === b)) { + if (w.tag === 7) { + (n(M, w.sibling), + (q = i(w, Q.props.children)), + (q.return = M), + (M = q)); + break t; + } + } else if ( + w.elementType === ut || + (typeof ut == 'object' && + ut !== null && + ut.$$typeof === N && + xa(ut) === w.type) + ) { + (n(M, w.sibling), (q = i(w, Q.props)), Kl(q, Q), (q.return = M), (M = q)); + break t; + } + n(M, w); + break; + } else e(M, w); + w = w.sibling; + } + Q.type === b + ? ((q = va(Q.props.children, M.mode, q, Q.key)), (q.return = M), (M = q)) + : ((q = tu(Q.type, Q.key, Q.props, null, M.mode, q)), + Kl(q, Q), + (q.return = M), + (M = q)); + } + return d(M); + case B: + t: { + for (ut = Q.key; w !== null; ) { + if (w.key === ut) + if ( + w.tag === 4 && + w.stateNode.containerInfo === Q.containerInfo && + w.stateNode.implementation === Q.implementation + ) { + (n(M, w.sibling), (q = i(w, Q.children || [])), (q.return = M), (M = q)); + break t; + } else { + n(M, w); + break; + } + else e(M, w); + w = w.sibling; + } + ((q = kc(Q, M.mode, q)), (q.return = M), (M = q)); + } + return d(M); + case N: + return ((Q = xa(Q)), Mt(M, w, Q, q)); + } + if (it(Q)) return at(M, w, Q, q); + if (nt(Q)) { + if (((ut = nt(Q)), typeof ut != 'function')) throw Error(f(150)); + return ((Q = ut.call(Q)), ft(M, w, Q, q)); + } + if (typeof Q.then == 'function') return Mt(M, w, cu(Q), q); + if (Q.$$typeof === U) return Mt(M, w, au(M, Q), q); + su(M, Q); + } + return (typeof Q == 'string' && Q !== '') || + typeof Q == 'number' || + typeof Q == 'bigint' + ? ((Q = '' + Q), + w !== null && w.tag === 6 + ? (n(M, w.sibling), (q = i(w, Q)), (q.return = M), (M = q)) + : (n(M, w), (q = Kc(Q, M.mode, q)), (q.return = M), (M = q)), + d(M)) + : n(M, w); + } + return function (M, w, Q, q) { + try { + Il = 0; + var ut = Mt(M, w, Q, q); + return ((ll = null), ut); + } catch (lt) { + if (lt === al || lt === iu) throw lt; + var St = Te(29, lt, null, M.mode); + return ((St.lanes = q), (St.return = M), St); + } finally { + } + }; + } + var Ta = Zo(!0), + qo = Zo(!1), + Qn = !1; + function is(t) { + t.updateQueue = { + baseState: t.memoizedState, + firstBaseUpdate: null, + lastBaseUpdate: null, + shared: { pending: null, lanes: 0, hiddenCallbacks: null }, + callbacks: null, + }; + } + function us(t, e) { + ((t = t.updateQueue), + e.updateQueue === t && + (e.updateQueue = { + baseState: t.baseState, + firstBaseUpdate: t.firstBaseUpdate, + lastBaseUpdate: t.lastBaseUpdate, + shared: t.shared, + callbacks: null, + })); + } + function zn(t) { + return { lane: t, tag: 0, payload: null, callback: null, next: null }; + } + function Yn(t, e, n) { + var a = t.updateQueue; + if (a === null) return null; + if (((a = a.shared), (Ct & 2) !== 0)) { + var i = a.pending; + return ( + i === null ? (e.next = e) : ((e.next = i.next), (i.next = e)), + (a.pending = e), + (e = $i(t)), + wo(t, null, n), + e + ); + } + return (Pi(t, a, e, n), $i(t)); + } + function kl(t, e, n) { + if (((e = e.updateQueue), e !== null && ((e = e.shared), (n & 4194048) !== 0))) { + var a = e.lanes; + ((a &= t.pendingLanes), (n |= a), (e.lanes = n), Br(t, n)); + } + } + function cs(t, e) { + var n = t.updateQueue, + a = t.alternate; + if (a !== null && ((a = a.updateQueue), n === a)) { + var i = null, + s = null; + if (((n = n.firstBaseUpdate), n !== null)) { + do { + var d = { + lane: n.lane, + tag: n.tag, + payload: n.payload, + callback: null, + next: null, + }; + (s === null ? (i = s = d) : (s = s.next = d), (n = n.next)); + } while (n !== null); + s === null ? (i = s = e) : (s = s.next = e); + } else i = s = e; + ((n = { + baseState: a.baseState, + firstBaseUpdate: i, + lastBaseUpdate: s, + shared: a.shared, + callbacks: a.callbacks, + }), + (t.updateQueue = n)); + return; + } + ((t = n.lastBaseUpdate), + t === null ? (n.firstBaseUpdate = e) : (t.next = e), + (n.lastBaseUpdate = e)); + } + var ss = !1; + function Jl() { + if (ss) { + var t = nl; + if (t !== null) throw t; + } + } + function Fl(t, e, n, a) { + ss = !1; + var i = t.updateQueue; + Qn = !1; + var s = i.firstBaseUpdate, + d = i.lastBaseUpdate, + g = i.shared.pending; + if (g !== null) { + i.shared.pending = null; + var T = g, + z = T.next; + ((T.next = null), d === null ? (s = z) : (d.next = z), (d = T)); + var V = t.alternate; + V !== null && + ((V = V.updateQueue), + (g = V.lastBaseUpdate), + g !== d && + (g === null ? (V.firstBaseUpdate = z) : (g.next = z), (V.lastBaseUpdate = T))); + } + if (s !== null) { + var I = i.baseState; + ((d = 0), (V = z = T = null), (g = s)); + do { + var Y = g.lane & -536870913, + G = Y !== g.lane; + if (G ? (Et & Y) === Y : (a & Y) === Y) { + (Y !== 0 && Y === el && (ss = !0), + V !== null && + (V = V.next = + { lane: 0, tag: g.tag, payload: g.payload, callback: null, next: null })); + t: { + var at = t, + ft = g; + Y = e; + var Mt = n; + switch (ft.tag) { + case 1: + if (((at = ft.payload), typeof at == 'function')) { + I = at.call(Mt, I, Y); + break t; + } + I = at; + break t; + case 3: + at.flags = (at.flags & -65537) | 128; + case 0: + if ( + ((at = ft.payload), + (Y = typeof at == 'function' ? at.call(Mt, I, Y) : at), + Y == null) + ) + break t; + I = S({}, I, Y); + break t; + case 2: + Qn = !0; + } + } + ((Y = g.callback), + Y !== null && + ((t.flags |= 64), + G && (t.flags |= 8192), + (G = i.callbacks), + G === null ? (i.callbacks = [Y]) : G.push(Y))); + } else + ((G = { + lane: Y, + tag: g.tag, + payload: g.payload, + callback: g.callback, + next: null, + }), + V === null ? ((z = V = G), (T = I)) : (V = V.next = G), + (d |= Y)); + if (((g = g.next), g === null)) { + if (((g = i.shared.pending), g === null)) break; + ((G = g), + (g = G.next), + (G.next = null), + (i.lastBaseUpdate = G), + (i.shared.pending = null)); + } + } while (!0); + (V === null && (T = I), + (i.baseState = T), + (i.firstBaseUpdate = z), + (i.lastBaseUpdate = V), + s === null && (i.shared.lanes = 0), + (Zn |= d), + (t.lanes = d), + (t.memoizedState = I)); + } + } + function Io(t, e) { + if (typeof t != 'function') throw Error(f(191, t)); + t.call(e); + } + function Ko(t, e) { + var n = t.callbacks; + if (n !== null) for (t.callbacks = null, t = 0; t < n.length; t++) Io(n[t], e); + } + var il = C(null), + fu = C(0); + function ko(t, e) { + ((t = gn), W(fu, t), W(il, e), (gn = t | e.baseLanes)); + } + function fs() { + (W(fu, gn), W(il, il.current)); + } + function rs() { + ((gn = fu.current), L(il), L(fu)); + } + var Ce = C(null), + Ye = null; + function Ln(t) { + var e = t.alternate; + (W(Xt, Xt.current & 1), + W(Ce, t), + Ye === null && + (e === null || il.current !== null || e.memoizedState !== null) && + (Ye = t)); + } + function os(t) { + (W(Xt, Xt.current), W(Ce, t), Ye === null && (Ye = t)); + } + function Jo(t) { + t.tag === 22 ? (W(Xt, Xt.current), W(Ce, t), Ye === null && (Ye = t)) : Gn(); + } + function Gn() { + (W(Xt, Xt.current), W(Ce, Ce.current)); + } + function Oe(t) { + (L(Ce), Ye === t && (Ye = null), L(Xt)); + } + var Xt = C(0); + function ru(t) { + for (var e = t; e !== null; ) { + if (e.tag === 13) { + var n = e.memoizedState; + if (n !== null && ((n = n.dehydrated), n === null || yf(n) || Ef(n))) return e; + } else if ( + e.tag === 19 && + (e.memoizedProps.revealOrder === 'forwards' || + e.memoizedProps.revealOrder === 'backwards' || + e.memoizedProps.revealOrder === 'unstable_legacy-backwards' || + e.memoizedProps.revealOrder === 'together') + ) { + if ((e.flags & 128) !== 0) return e; + } else if (e.child !== null) { + ((e.child.return = e), (e = e.child)); + continue; + } + if (e === t) break; + for (; e.sibling === null; ) { + if (e.return === null || e.return === t) return null; + e = e.return; + } + ((e.sibling.return = e.return), (e = e.sibling)); + } + return null; + } + var cn = 0, + mt = null, + Rt = null, + qt = null, + ou = !1, + ul = !1, + Ca = !1, + du = 0, + Wl = 0, + cl = null, + xg = 0; + function Lt() { + throw Error(f(321)); + } + function ds(t, e) { + if (e === null) return !1; + for (var n = 0; n < e.length && n < t.length; n++) if (!Se(t[n], e[n])) return !1; + return !0; + } + function hs(t, e, n, a, i, s) { + return ( + (cn = s), + (mt = e), + (e.memoizedState = null), + (e.updateQueue = null), + (e.lanes = 0), + (H.H = t === null || t.memoizedState === null ? j0 : Rs), + (Ca = !1), + (s = n(a, i)), + (Ca = !1), + ul && (s = Wo(e, n, a, i)), + Fo(t), + s + ); + } + function Fo(t) { + H.H = $l; + var e = Rt !== null && Rt.next !== null; + if (((cn = 0), (qt = Rt = mt = null), (ou = !1), (Wl = 0), (cl = null), e)) + throw Error(f(300)); + t === null || It || ((t = t.dependencies), t !== null && nu(t) && (It = !0)); + } + function Wo(t, e, n, a) { + mt = t; + var i = 0; + do { + if ((ul && (cl = null), (Wl = 0), (ul = !1), 25 <= i)) throw Error(f(301)); + if (((i += 1), (qt = Rt = null), t.updateQueue != null)) { + var s = t.updateQueue; + ((s.lastEffect = null), + (s.events = null), + (s.stores = null), + s.memoCache != null && (s.memoCache.index = 0)); + } + ((H.H = H0), (s = e(n, a))); + } while (ul); + return s; + } + function Sg() { + var t = H.H, + e = t.useState()[0]; + return ( + (e = typeof e.then == 'function' ? _l(e) : e), + (t = t.useState()[0]), + (Rt !== null ? Rt.memoizedState : null) !== t && (mt.flags |= 1024), + e + ); + } + function ms() { + var t = du !== 0; + return ((du = 0), t); + } + function gs(t, e, n) { + ((e.updateQueue = t.updateQueue), (e.flags &= -2053), (t.lanes &= ~n)); + } + function As(t) { + if (ou) { + for (t = t.memoizedState; t !== null; ) { + var e = t.queue; + (e !== null && (e.pending = null), (t = t.next)); + } + ou = !1; + } + ((cn = 0), (qt = Rt = mt = null), (ul = !1), (Wl = du = 0), (cl = null)); + } + function fe() { + var t = { + memoizedState: null, + baseState: null, + baseQueue: null, + queue: null, + next: null, + }; + return (qt === null ? (mt.memoizedState = qt = t) : (qt = qt.next = t), qt); + } + function Vt() { + if (Rt === null) { + var t = mt.alternate; + t = t !== null ? t.memoizedState : null; + } else t = Rt.next; + var e = qt === null ? mt.memoizedState : qt.next; + if (e !== null) ((qt = e), (Rt = t)); + else { + if (t === null) throw mt.alternate === null ? Error(f(467)) : Error(f(310)); + ((Rt = t), + (t = { + memoizedState: Rt.memoizedState, + baseState: Rt.baseState, + baseQueue: Rt.baseQueue, + queue: Rt.queue, + next: null, + }), + qt === null ? (mt.memoizedState = qt = t) : (qt = qt.next = t)); + } + return qt; + } + function hu() { + return { lastEffect: null, events: null, stores: null, memoCache: null }; + } + function _l(t) { + var e = Wl; + return ( + (Wl += 1), + cl === null && (cl = []), + (t = Go(cl, t, e)), + (e = mt), + (qt === null ? e.memoizedState : qt.next) === null && + ((e = e.alternate), (H.H = e === null || e.memoizedState === null ? j0 : Rs)), + t + ); + } + function mu(t) { + if (t !== null && typeof t == 'object') { + if (typeof t.then == 'function') return _l(t); + if (t.$$typeof === U) return ne(t); + } + throw Error(f(438, String(t))); + } + function vs(t) { + var e = null, + n = mt.updateQueue; + if ((n !== null && (e = n.memoCache), e == null)) { + var a = mt.alternate; + a !== null && + ((a = a.updateQueue), + a !== null && + ((a = a.memoCache), + a != null && + (e = { + data: a.data.map(function (i) { + return i.slice(); + }), + index: 0, + }))); + } + if ( + (e == null && (e = { data: [], index: 0 }), + n === null && ((n = hu()), (mt.updateQueue = n)), + (n.memoCache = e), + (n = e.data[e.index]), + n === void 0) + ) + for (n = e.data[e.index] = Array(t), a = 0; a < t; a++) n[a] = J; + return (e.index++, n); + } + function sn(t, e) { + return typeof e == 'function' ? e(t) : e; + } + function gu(t) { + var e = Vt(); + return ys(e, Rt, t); + } + function ys(t, e, n) { + var a = t.queue; + if (a === null) throw Error(f(311)); + a.lastRenderedReducer = n; + var i = t.baseQueue, + s = a.pending; + if (s !== null) { + if (i !== null) { + var d = i.next; + ((i.next = s.next), (s.next = d)); + } + ((e.baseQueue = i = s), (a.pending = null)); + } + if (((s = t.baseState), i === null)) t.memoizedState = s; + else { + e = i.next; + var g = (d = null), + T = null, + z = e, + V = !1; + do { + var I = z.lane & -536870913; + if (I !== z.lane ? (Et & I) === I : (cn & I) === I) { + var Y = z.revertLane; + if (Y === 0) + (T !== null && + (T = T.next = + { + lane: 0, + revertLane: 0, + gesture: null, + action: z.action, + hasEagerState: z.hasEagerState, + eagerState: z.eagerState, + next: null, + }), + I === el && (V = !0)); + else if ((cn & Y) === Y) { + ((z = z.next), Y === el && (V = !0)); + continue; + } else + ((I = { + lane: 0, + revertLane: z.revertLane, + gesture: null, + action: z.action, + hasEagerState: z.hasEagerState, + eagerState: z.eagerState, + next: null, + }), + T === null ? ((g = T = I), (d = s)) : (T = T.next = I), + (mt.lanes |= Y), + (Zn |= Y)); + ((I = z.action), Ca && n(s, I), (s = z.hasEagerState ? z.eagerState : n(s, I))); + } else + ((Y = { + lane: I, + revertLane: z.revertLane, + gesture: z.gesture, + action: z.action, + hasEagerState: z.hasEagerState, + eagerState: z.eagerState, + next: null, + }), + T === null ? ((g = T = Y), (d = s)) : (T = T.next = Y), + (mt.lanes |= I), + (Zn |= I)); + z = z.next; + } while (z !== null && z !== e); + if ( + (T === null ? (d = s) : (T.next = g), + !Se(s, t.memoizedState) && ((It = !0), V && ((n = nl), n !== null))) + ) + throw n; + ((t.memoizedState = s), + (t.baseState = d), + (t.baseQueue = T), + (a.lastRenderedState = s)); + } + return (i === null && (a.lanes = 0), [t.memoizedState, a.dispatch]); + } + function Es(t) { + var e = Vt(), + n = e.queue; + if (n === null) throw Error(f(311)); + n.lastRenderedReducer = t; + var a = n.dispatch, + i = n.pending, + s = e.memoizedState; + if (i !== null) { + n.pending = null; + var d = (i = i.next); + do ((s = t(s, d.action)), (d = d.next)); + while (d !== i); + (Se(s, e.memoizedState) || (It = !0), + (e.memoizedState = s), + e.baseQueue === null && (e.baseState = s), + (n.lastRenderedState = s)); + } + return [s, a]; + } + function _o(t, e, n) { + var a = mt, + i = Vt(), + s = bt; + if (s) { + if (n === void 0) throw Error(f(407)); + n = n(); + } else n = e(); + var d = !Se((Rt || i).memoizedState, n); + if ( + (d && ((i.memoizedState = n), (It = !0)), + (i = i.queue), + xs(t0.bind(null, a, i, t), [t]), + i.getSnapshot !== e || d || (qt !== null && qt.memoizedState.tag & 1)) + ) { + if ( + ((a.flags |= 2048), + sl(9, { destroy: void 0 }, $o.bind(null, a, i, n, e), null), + jt === null) + ) + throw Error(f(349)); + s || (cn & 127) !== 0 || Po(a, e, n); + } + return n; + } + function Po(t, e, n) { + ((t.flags |= 16384), + (t = { getSnapshot: e, value: n }), + (e = mt.updateQueue), + e === null + ? ((e = hu()), (mt.updateQueue = e), (e.stores = [t])) + : ((n = e.stores), n === null ? (e.stores = [t]) : n.push(t))); + } + function $o(t, e, n, a) { + ((e.value = n), (e.getSnapshot = a), e0(e) && n0(t)); + } + function t0(t, e, n) { + return n(function () { + e0(e) && n0(t); + }); + } + function e0(t) { + var e = t.getSnapshot; + t = t.value; + try { + var n = e(); + return !Se(t, n); + } catch { + return !0; + } + } + function n0(t) { + var e = Aa(t, 2); + e !== null && ve(e, t, 2); + } + function ps(t) { + var e = fe(); + if (typeof t == 'function') { + var n = t; + if (((t = n()), Ca)) { + Dn(!0); + try { + n(); + } finally { + Dn(!1); + } + } + } + return ( + (e.memoizedState = e.baseState = t), + (e.queue = { + pending: null, + lanes: 0, + dispatch: null, + lastRenderedReducer: sn, + lastRenderedState: t, + }), + e + ); + } + function a0(t, e, n, a) { + return ((t.baseState = n), ys(t, Rt, typeof a == 'function' ? a : sn)); + } + function Tg(t, e, n, a, i) { + if (yu(t)) throw Error(f(485)); + if (((t = e.action), t !== null)) { + var s = { + payload: i, + action: t, + next: null, + isTransition: !0, + status: 'pending', + value: null, + reason: null, + listeners: [], + then: function (d) { + s.listeners.push(d); + }, + }; + (H.T !== null ? n(!0) : (s.isTransition = !1), + a(s), + (n = e.pending), + n === null + ? ((s.next = e.pending = s), l0(e, s)) + : ((s.next = n.next), (e.pending = n.next = s))); + } + } + function l0(t, e) { + var n = e.action, + a = e.payload, + i = t.state; + if (e.isTransition) { + var s = H.T, + d = {}; + H.T = d; + try { + var g = n(i, a), + T = H.S; + (T !== null && T(d, g), i0(t, e, g)); + } catch (z) { + bs(t, e, z); + } finally { + (s !== null && d.types !== null && (s.types = d.types), (H.T = s)); + } + } else + try { + ((s = n(i, a)), i0(t, e, s)); + } catch (z) { + bs(t, e, z); + } + } + function i0(t, e, n) { + n !== null && typeof n == 'object' && typeof n.then == 'function' + ? n.then( + function (a) { + u0(t, e, a); + }, + function (a) { + return bs(t, e, a); + } + ) + : u0(t, e, n); + } + function u0(t, e, n) { + ((e.status = 'fulfilled'), + (e.value = n), + c0(e), + (t.state = n), + (e = t.pending), + e !== null && + ((n = e.next), + n === e ? (t.pending = null) : ((n = n.next), (e.next = n), l0(t, n)))); + } + function bs(t, e, n) { + var a = t.pending; + if (((t.pending = null), a !== null)) { + a = a.next; + do ((e.status = 'rejected'), (e.reason = n), c0(e), (e = e.next)); + while (e !== a); + } + t.action = null; + } + function c0(t) { + t = t.listeners; + for (var e = 0; e < t.length; e++) (0, t[e])(); + } + function s0(t, e) { + return e; + } + function f0(t, e) { + if (bt) { + var n = jt.formState; + if (n !== null) { + t: { + var a = mt; + if (bt) { + if (Ht) { + e: { + for (var i = Ht, s = ze; i.nodeType !== 8; ) { + if (!s) { + i = null; + break e; + } + if (((i = Le(i.nextSibling)), i === null)) { + i = null; + break e; + } + } + ((s = i.data), (i = s === 'F!' || s === 'F' ? i : null)); + } + if (i) { + ((Ht = Le(i.nextSibling)), (a = i.data === 'F!')); + break t; + } + } + Bn(a); + } + a = !1; + } + a && (e = n[0]); + } + } + return ( + (n = fe()), + (n.memoizedState = n.baseState = e), + (a = { + pending: null, + lanes: 0, + dispatch: null, + lastRenderedReducer: s0, + lastRenderedState: e, + }), + (n.queue = a), + (n = R0.bind(null, mt, a)), + (a.dispatch = n), + (a = ps(!1)), + (s = ws.bind(null, mt, !1, a.queue)), + (a = fe()), + (i = { state: e, dispatch: null, action: t, pending: null }), + (a.queue = i), + (n = Tg.bind(null, mt, i, s, n)), + (i.dispatch = n), + (a.memoizedState = t), + [e, n, !1] + ); + } + function r0(t) { + var e = Vt(); + return o0(e, Rt, t); + } + function o0(t, e, n) { + if ( + ((e = ys(t, e, s0)[0]), + (t = gu(sn)[0]), + typeof e == 'object' && e !== null && typeof e.then == 'function') + ) + try { + var a = _l(e); + } catch (d) { + throw d === al ? iu : d; + } + else a = e; + e = Vt(); + var i = e.queue, + s = i.dispatch; + return ( + n !== e.memoizedState && + ((mt.flags |= 2048), sl(9, { destroy: void 0 }, Cg.bind(null, i, n), null)), + [a, s, t] + ); + } + function Cg(t, e) { + t.action = e; + } + function d0(t) { + var e = Vt(), + n = Rt; + if (n !== null) return o0(e, n, t); + (Vt(), (e = e.memoizedState), (n = Vt())); + var a = n.queue.dispatch; + return ((n.memoizedState = t), [e, a, !1]); + } + function sl(t, e, n, a) { + return ( + (t = { tag: t, create: n, deps: a, inst: e, next: null }), + (e = mt.updateQueue), + e === null && ((e = hu()), (mt.updateQueue = e)), + (n = e.lastEffect), + n === null + ? (e.lastEffect = t.next = t) + : ((a = n.next), (n.next = t), (t.next = a), (e.lastEffect = t)), + t + ); + } + function h0() { + return Vt().memoizedState; + } + function Au(t, e, n, a) { + var i = fe(); + ((mt.flags |= t), + (i.memoizedState = sl(1 | e, { destroy: void 0 }, n, a === void 0 ? null : a))); + } + function vu(t, e, n, a) { + var i = Vt(); + a = a === void 0 ? null : a; + var s = i.memoizedState.inst; + Rt !== null && a !== null && ds(a, Rt.memoizedState.deps) + ? (i.memoizedState = sl(e, s, n, a)) + : ((mt.flags |= t), (i.memoizedState = sl(1 | e, s, n, a))); + } + function m0(t, e) { + Au(8390656, 8, t, e); + } + function xs(t, e) { + vu(2048, 8, t, e); + } + function Og(t) { + mt.flags |= 4; + var e = mt.updateQueue; + if (e === null) ((e = hu()), (mt.updateQueue = e), (e.events = [t])); + else { + var n = e.events; + n === null ? (e.events = [t]) : n.push(t); + } + } + function g0(t) { + var e = Vt().memoizedState; + return ( + Og({ ref: e, nextImpl: t }), + function () { + if ((Ct & 2) !== 0) throw Error(f(440)); + return e.impl.apply(void 0, arguments); + } + ); + } + function A0(t, e) { + return vu(4, 2, t, e); + } + function v0(t, e) { + return vu(4, 4, t, e); + } + function y0(t, e) { + if (typeof e == 'function') { + t = t(); + var n = e(t); + return function () { + typeof n == 'function' ? n() : e(null); + }; + } + if (e != null) + return ( + (t = t()), + (e.current = t), + function () { + e.current = null; + } + ); + } + function E0(t, e, n) { + ((n = n != null ? n.concat([t]) : null), vu(4, 4, y0.bind(null, e, t), n)); + } + function Ss() {} + function p0(t, e) { + var n = Vt(); + e = e === void 0 ? null : e; + var a = n.memoizedState; + return e !== null && ds(e, a[1]) ? a[0] : ((n.memoizedState = [t, e]), t); + } + function b0(t, e) { + var n = Vt(); + e = e === void 0 ? null : e; + var a = n.memoizedState; + if (e !== null && ds(e, a[1])) return a[0]; + if (((a = t()), Ca)) { + Dn(!0); + try { + t(); + } finally { + Dn(!1); + } + } + return ((n.memoizedState = [a, e]), a); + } + function Ts(t, e, n) { + return n === void 0 || ((cn & 1073741824) !== 0 && (Et & 261930) === 0) + ? (t.memoizedState = e) + : ((t.memoizedState = n), (t = xd()), (mt.lanes |= t), (Zn |= t), n); + } + function x0(t, e, n, a) { + return Se(n, e) + ? n + : il.current !== null + ? ((t = Ts(t, n, a)), Se(t, e) || (It = !0), t) + : (cn & 42) === 0 || ((cn & 1073741824) !== 0 && (Et & 261930) === 0) + ? ((It = !0), (t.memoizedState = n)) + : ((t = xd()), (mt.lanes |= t), (Zn |= t), e); + } + function S0(t, e, n, a, i) { + var s = _.p; + _.p = s !== 0 && 8 > s ? s : 8; + var d = H.T, + g = {}; + ((H.T = g), ws(t, !1, e, n)); + try { + var T = i(), + z = H.S; + if ( + (z !== null && z(g, T), + T !== null && typeof T == 'object' && typeof T.then == 'function') + ) { + var V = bg(T, a); + Pl(t, e, V, De(t)); + } else Pl(t, e, a, De(t)); + } catch (I) { + Pl(t, e, { then: function () {}, status: 'rejected', reason: I }, De()); + } finally { + ((_.p = s), d !== null && g.types !== null && (d.types = g.types), (H.T = d)); + } + } + function wg() {} + function Cs(t, e, n, a) { + if (t.tag !== 5) throw Error(f(476)); + var i = T0(t).queue; + S0( + t, + i, + e, + $, + n === null + ? wg + : function () { + return (C0(t), n(a)); + } + ); + } + function T0(t) { + var e = t.memoizedState; + if (e !== null) return e; + e = { + memoizedState: $, + baseState: $, + baseQueue: null, + queue: { + pending: null, + lanes: 0, + dispatch: null, + lastRenderedReducer: sn, + lastRenderedState: $, + }, + next: null, + }; + var n = {}; + return ( + (e.next = { + memoizedState: n, + baseState: n, + baseQueue: null, + queue: { + pending: null, + lanes: 0, + dispatch: null, + lastRenderedReducer: sn, + lastRenderedState: n, + }, + next: null, + }), + (t.memoizedState = e), + (t = t.alternate), + t !== null && (t.memoizedState = e), + e + ); + } + function C0(t) { + var e = T0(t); + (e.next === null && (e = t.alternate.memoizedState), Pl(t, e.next.queue, {}, De())); + } + function Os() { + return ne(gi); + } + function O0() { + return Vt().memoizedState; + } + function w0() { + return Vt().memoizedState; + } + function Rg(t) { + for (var e = t.return; e !== null; ) { + switch (e.tag) { + case 24: + case 3: + var n = De(); + t = zn(n); + var a = Yn(e, t, n); + (a !== null && (ve(a, e, n), kl(a, e, n)), (e = { cache: es() }), (t.payload = e)); + return; + } + e = e.return; + } + } + function Dg(t, e, n) { + var a = De(); + ((n = { + lane: a, + revertLane: 0, + gesture: null, + action: n, + hasEagerState: !1, + eagerState: null, + next: null, + }), + yu(t) ? D0(e, n) : ((n = qc(t, e, n, a)), n !== null && (ve(n, t, a), M0(n, e, a)))); + } + function R0(t, e, n) { + var a = De(); + Pl(t, e, n, a); + } + function Pl(t, e, n, a) { + var i = { + lane: a, + revertLane: 0, + gesture: null, + action: n, + hasEagerState: !1, + eagerState: null, + next: null, + }; + if (yu(t)) D0(e, i); + else { + var s = t.alternate; + if ( + t.lanes === 0 && + (s === null || s.lanes === 0) && + ((s = e.lastRenderedReducer), s !== null) + ) + try { + var d = e.lastRenderedState, + g = s(d, n); + if (((i.hasEagerState = !0), (i.eagerState = g), Se(g, d))) + return (Pi(t, e, i, 0), jt === null && _i(), !1); + } catch { + } finally { + } + if (((n = qc(t, e, i, a)), n !== null)) return (ve(n, t, a), M0(n, e, a), !0); + } + return !1; + } + function ws(t, e, n, a) { + if ( + ((a = { + lane: 2, + revertLane: uf(), + gesture: null, + action: a, + hasEagerState: !1, + eagerState: null, + next: null, + }), + yu(t)) + ) { + if (e) throw Error(f(479)); + } else ((e = qc(t, n, a, 2)), e !== null && ve(e, t, 2)); + } + function yu(t) { + var e = t.alternate; + return t === mt || (e !== null && e === mt); + } + function D0(t, e) { + ul = ou = !0; + var n = t.pending; + (n === null ? (e.next = e) : ((e.next = n.next), (n.next = e)), (t.pending = e)); + } + function M0(t, e, n) { + if ((n & 4194048) !== 0) { + var a = e.lanes; + ((a &= t.pendingLanes), (n |= a), (e.lanes = n), Br(t, n)); + } + } + var $l = { + readContext: ne, + use: mu, + useCallback: Lt, + useContext: Lt, + useEffect: Lt, + useImperativeHandle: Lt, + useLayoutEffect: Lt, + useInsertionEffect: Lt, + useMemo: Lt, + useReducer: Lt, + useRef: Lt, + useState: Lt, + useDebugValue: Lt, + useDeferredValue: Lt, + useTransition: Lt, + useSyncExternalStore: Lt, + useId: Lt, + useHostTransitionStatus: Lt, + useFormState: Lt, + useActionState: Lt, + useOptimistic: Lt, + useMemoCache: Lt, + useCacheRefresh: Lt, + }; + $l.useEffectEvent = Lt; + var j0 = { + readContext: ne, + use: mu, + useCallback: function (t, e) { + return ((fe().memoizedState = [t, e === void 0 ? null : e]), t); + }, + useContext: ne, + useEffect: m0, + useImperativeHandle: function (t, e, n) { + ((n = n != null ? n.concat([t]) : null), Au(4194308, 4, y0.bind(null, e, t), n)); + }, + useLayoutEffect: function (t, e) { + return Au(4194308, 4, t, e); + }, + useInsertionEffect: function (t, e) { + Au(4, 2, t, e); + }, + useMemo: function (t, e) { + var n = fe(); + e = e === void 0 ? null : e; + var a = t(); + if (Ca) { + Dn(!0); + try { + t(); + } finally { + Dn(!1); + } + } + return ((n.memoizedState = [a, e]), a); + }, + useReducer: function (t, e, n) { + var a = fe(); + if (n !== void 0) { + var i = n(e); + if (Ca) { + Dn(!0); + try { + n(e); + } finally { + Dn(!1); + } + } + } else i = e; + return ( + (a.memoizedState = a.baseState = i), + (t = { + pending: null, + lanes: 0, + dispatch: null, + lastRenderedReducer: t, + lastRenderedState: i, + }), + (a.queue = t), + (t = t.dispatch = Dg.bind(null, mt, t)), + [a.memoizedState, t] + ); + }, + useRef: function (t) { + var e = fe(); + return ((t = { current: t }), (e.memoizedState = t)); + }, + useState: function (t) { + t = ps(t); + var e = t.queue, + n = R0.bind(null, mt, e); + return ((e.dispatch = n), [t.memoizedState, n]); + }, + useDebugValue: Ss, + useDeferredValue: function (t, e) { + var n = fe(); + return Ts(n, t, e); + }, + useTransition: function () { + var t = ps(!1); + return ((t = S0.bind(null, mt, t.queue, !0, !1)), (fe().memoizedState = t), [!1, t]); + }, + useSyncExternalStore: function (t, e, n) { + var a = mt, + i = fe(); + if (bt) { + if (n === void 0) throw Error(f(407)); + n = n(); + } else { + if (((n = e()), jt === null)) throw Error(f(349)); + (Et & 127) !== 0 || Po(a, e, n); + } + i.memoizedState = n; + var s = { value: n, getSnapshot: e }; + return ( + (i.queue = s), + m0(t0.bind(null, a, s, t), [t]), + (a.flags |= 2048), + sl(9, { destroy: void 0 }, $o.bind(null, a, s, n, e), null), + n + ); + }, + useId: function () { + var t = fe(), + e = jt.identifierPrefix; + if (bt) { + var n = Fe, + a = Je; + ((n = (a & ~(1 << (32 - xe(a) - 1))).toString(32) + n), + (e = '_' + e + 'R_' + n), + (n = du++), + 0 < n && (e += 'H' + n.toString(32)), + (e += '_')); + } else ((n = xg++), (e = '_' + e + 'r_' + n.toString(32) + '_')); + return (t.memoizedState = e); + }, + useHostTransitionStatus: Os, + useFormState: f0, + useActionState: f0, + useOptimistic: function (t) { + var e = fe(); + e.memoizedState = e.baseState = t; + var n = { + pending: null, + lanes: 0, + dispatch: null, + lastRenderedReducer: null, + lastRenderedState: null, + }; + return ((e.queue = n), (e = ws.bind(null, mt, !0, n)), (n.dispatch = e), [t, e]); + }, + useMemoCache: vs, + useCacheRefresh: function () { + return (fe().memoizedState = Rg.bind(null, mt)); + }, + useEffectEvent: function (t) { + var e = fe(), + n = { impl: t }; + return ( + (e.memoizedState = n), + function () { + if ((Ct & 2) !== 0) throw Error(f(440)); + return n.impl.apply(void 0, arguments); + } + ); + }, + }, + Rs = { + readContext: ne, + use: mu, + useCallback: p0, + useContext: ne, + useEffect: xs, + useImperativeHandle: E0, + useInsertionEffect: A0, + useLayoutEffect: v0, + useMemo: b0, + useReducer: gu, + useRef: h0, + useState: function () { + return gu(sn); + }, + useDebugValue: Ss, + useDeferredValue: function (t, e) { + var n = Vt(); + return x0(n, Rt.memoizedState, t, e); + }, + useTransition: function () { + var t = gu(sn)[0], + e = Vt().memoizedState; + return [typeof t == 'boolean' ? t : _l(t), e]; + }, + useSyncExternalStore: _o, + useId: O0, + useHostTransitionStatus: Os, + useFormState: r0, + useActionState: r0, + useOptimistic: function (t, e) { + var n = Vt(); + return a0(n, Rt, t, e); + }, + useMemoCache: vs, + useCacheRefresh: w0, + }; + Rs.useEffectEvent = g0; + var H0 = { + readContext: ne, + use: mu, + useCallback: p0, + useContext: ne, + useEffect: xs, + useImperativeHandle: E0, + useInsertionEffect: A0, + useLayoutEffect: v0, + useMemo: b0, + useReducer: Es, + useRef: h0, + useState: function () { + return Es(sn); + }, + useDebugValue: Ss, + useDeferredValue: function (t, e) { + var n = Vt(); + return Rt === null ? Ts(n, t, e) : x0(n, Rt.memoizedState, t, e); + }, + useTransition: function () { + var t = Es(sn)[0], + e = Vt().memoizedState; + return [typeof t == 'boolean' ? t : _l(t), e]; + }, + useSyncExternalStore: _o, + useId: O0, + useHostTransitionStatus: Os, + useFormState: d0, + useActionState: d0, + useOptimistic: function (t, e) { + var n = Vt(); + return Rt !== null ? a0(n, Rt, t, e) : ((n.baseState = t), [t, n.queue.dispatch]); + }, + useMemoCache: vs, + useCacheRefresh: w0, + }; + H0.useEffectEvent = g0; + function Ds(t, e, n, a) { + ((e = t.memoizedState), + (n = n(a, e)), + (n = n == null ? e : S({}, e, n)), + (t.memoizedState = n), + t.lanes === 0 && (t.updateQueue.baseState = n)); + } + var Ms = { + enqueueSetState: function (t, e, n) { + t = t._reactInternals; + var a = De(), + i = zn(a); + ((i.payload = e), + n != null && (i.callback = n), + (e = Yn(t, i, a)), + e !== null && (ve(e, t, a), kl(e, t, a))); + }, + enqueueReplaceState: function (t, e, n) { + t = t._reactInternals; + var a = De(), + i = zn(a); + ((i.tag = 1), + (i.payload = e), + n != null && (i.callback = n), + (e = Yn(t, i, a)), + e !== null && (ve(e, t, a), kl(e, t, a))); + }, + enqueueForceUpdate: function (t, e) { + t = t._reactInternals; + var n = De(), + a = zn(n); + ((a.tag = 2), + e != null && (a.callback = e), + (e = Yn(t, a, n)), + e !== null && (ve(e, t, n), kl(e, t, n))); + }, + }; + function N0(t, e, n, a, i, s, d) { + return ( + (t = t.stateNode), + typeof t.shouldComponentUpdate == 'function' + ? t.shouldComponentUpdate(a, s, d) + : e.prototype && e.prototype.isPureReactComponent + ? !Ll(n, a) || !Ll(i, s) + : !0 + ); + } + function B0(t, e, n, a) { + ((t = e.state), + typeof e.componentWillReceiveProps == 'function' && e.componentWillReceiveProps(n, a), + typeof e.UNSAFE_componentWillReceiveProps == 'function' && + e.UNSAFE_componentWillReceiveProps(n, a), + e.state !== t && Ms.enqueueReplaceState(e, e.state, null)); + } + function Oa(t, e) { + var n = e; + if ('ref' in e) { + n = {}; + for (var a in e) a !== 'ref' && (n[a] = e[a]); + } + if ((t = t.defaultProps)) { + n === e && (n = S({}, n)); + for (var i in t) n[i] === void 0 && (n[i] = t[i]); + } + return n; + } + function U0(t) { + Wi(t); + } + function Q0(t) { + console.error(t); + } + function z0(t) { + Wi(t); + } + function Eu(t, e) { + try { + var n = t.onUncaughtError; + n(e.value, { componentStack: e.stack }); + } catch (a) { + setTimeout(function () { + throw a; + }); + } + } + function Y0(t, e, n) { + try { + var a = t.onCaughtError; + a(n.value, { + componentStack: n.stack, + errorBoundary: e.tag === 1 ? e.stateNode : null, + }); + } catch (i) { + setTimeout(function () { + throw i; + }); + } + } + function js(t, e, n) { + return ( + (n = zn(n)), + (n.tag = 3), + (n.payload = { element: null }), + (n.callback = function () { + Eu(t, e); + }), + n + ); + } + function L0(t) { + return ((t = zn(t)), (t.tag = 3), t); + } + function G0(t, e, n, a) { + var i = n.type.getDerivedStateFromError; + if (typeof i == 'function') { + var s = a.value; + ((t.payload = function () { + return i(s); + }), + (t.callback = function () { + Y0(e, n, a); + })); + } + var d = n.stateNode; + d !== null && + typeof d.componentDidCatch == 'function' && + (t.callback = function () { + (Y0(e, n, a), + typeof i != 'function' && (qn === null ? (qn = new Set([this])) : qn.add(this))); + var g = a.stack; + this.componentDidCatch(a.value, { componentStack: g !== null ? g : '' }); + }); + } + function Mg(t, e, n, a, i) { + if ( + ((n.flags |= 32768), a !== null && typeof a == 'object' && typeof a.then == 'function') + ) { + if (((e = n.alternate), e !== null && tl(e, n, i, !0), (n = Ce.current), n !== null)) { + switch (n.tag) { + case 31: + case 13: + return ( + Ye === null ? ju() : n.alternate === null && Gt === 0 && (Gt = 3), + (n.flags &= -257), + (n.flags |= 65536), + (n.lanes = i), + a === uu + ? (n.flags |= 16384) + : ((e = n.updateQueue), + e === null ? (n.updateQueue = new Set([a])) : e.add(a), + nf(t, a, i)), + !1 + ); + case 22: + return ( + (n.flags |= 65536), + a === uu + ? (n.flags |= 16384) + : ((e = n.updateQueue), + e === null + ? ((e = { + transitions: null, + markerInstances: null, + retryQueue: new Set([a]), + }), + (n.updateQueue = e)) + : ((n = e.retryQueue), + n === null ? (e.retryQueue = new Set([a])) : n.add(a)), + nf(t, a, i)), + !1 + ); + } + throw Error(f(435, n.tag)); + } + return (nf(t, a, i), ju(), !1); + } + if (bt) + return ( + (e = Ce.current), + e !== null + ? ((e.flags & 65536) === 0 && (e.flags |= 256), + (e.flags |= 65536), + (e.lanes = i), + a !== Wc && ((t = Error(f(422), { cause: a })), Vl(Be(t, n)))) + : (a !== Wc && ((e = Error(f(423), { cause: a })), Vl(Be(e, n))), + (t = t.current.alternate), + (t.flags |= 65536), + (i &= -i), + (t.lanes |= i), + (a = Be(a, n)), + (i = js(t.stateNode, a, i)), + cs(t, i), + Gt !== 4 && (Gt = 2)), + !1 + ); + var s = Error(f(520), { cause: a }); + if ( + ((s = Be(s, n)), + ci === null ? (ci = [s]) : ci.push(s), + Gt !== 4 && (Gt = 2), + e === null) + ) + return !0; + ((a = Be(a, n)), (n = e)); + do { + switch (n.tag) { + case 3: + return ( + (n.flags |= 65536), + (t = i & -i), + (n.lanes |= t), + (t = js(n.stateNode, a, t)), + cs(n, t), + !1 + ); + case 1: + if ( + ((e = n.type), + (s = n.stateNode), + (n.flags & 128) === 0 && + (typeof e.getDerivedStateFromError == 'function' || + (s !== null && + typeof s.componentDidCatch == 'function' && + (qn === null || !qn.has(s))))) + ) + return ( + (n.flags |= 65536), + (i &= -i), + (n.lanes |= i), + (i = L0(i)), + G0(i, t, n, a), + cs(n, i), + !1 + ); + } + n = n.return; + } while (n !== null); + return !1; + } + var Hs = Error(f(461)), + It = !1; + function ae(t, e, n, a) { + e.child = t === null ? qo(e, null, n, a) : Ta(e, t.child, n, a); + } + function X0(t, e, n, a, i) { + n = n.render; + var s = e.ref; + if ('ref' in a) { + var d = {}; + for (var g in a) g !== 'ref' && (d[g] = a[g]); + } else d = a; + return ( + pa(e), + (a = hs(t, e, n, d, s, i)), + (g = ms()), + t !== null && !It + ? (gs(t, e, i), fn(t, e, i)) + : (bt && g && Jc(e), (e.flags |= 1), ae(t, e, a, i), e.child) + ); + } + function V0(t, e, n, a, i) { + if (t === null) { + var s = n.type; + return typeof s == 'function' && + !Ic(s) && + s.defaultProps === void 0 && + n.compare === null + ? ((e.tag = 15), (e.type = s), Z0(t, e, s, a, i)) + : ((t = tu(n.type, null, a, e, e.mode, i)), + (t.ref = e.ref), + (t.return = e), + (e.child = t)); + } + if (((s = t.child), !Gs(t, i))) { + var d = s.memoizedProps; + if (((n = n.compare), (n = n !== null ? n : Ll), n(d, a) && t.ref === e.ref)) + return fn(t, e, i); + } + return ((e.flags |= 1), (t = nn(s, a)), (t.ref = e.ref), (t.return = e), (e.child = t)); + } + function Z0(t, e, n, a, i) { + if (t !== null) { + var s = t.memoizedProps; + if (Ll(s, a) && t.ref === e.ref) + if (((It = !1), (e.pendingProps = a = s), Gs(t, i))) + (t.flags & 131072) !== 0 && (It = !0); + else return ((e.lanes = t.lanes), fn(t, e, i)); + } + return Ns(t, e, n, a, i); + } + function q0(t, e, n, a) { + var i = a.children, + s = t !== null ? t.memoizedState : null; + if ( + (t === null && + e.stateNode === null && + (e.stateNode = { + _visibility: 1, + _pendingMarkers: null, + _retryCache: null, + _transitions: null, + }), + a.mode === 'hidden') + ) { + if ((e.flags & 128) !== 0) { + if (((s = s !== null ? s.baseLanes | n : n), t !== null)) { + for (a = e.child = t.child, i = 0; a !== null; ) + ((i = i | a.lanes | a.childLanes), (a = a.sibling)); + a = i & ~s; + } else ((a = 0), (e.child = null)); + return I0(t, e, s, n, a); + } + if ((n & 536870912) !== 0) + ((e.memoizedState = { baseLanes: 0, cachePool: null }), + t !== null && lu(e, s !== null ? s.cachePool : null), + s !== null ? ko(e, s) : fs(), + Jo(e)); + else + return ((a = e.lanes = 536870912), I0(t, e, s !== null ? s.baseLanes | n : n, n, a)); + } else + s !== null + ? (lu(e, s.cachePool), ko(e, s), Gn(), (e.memoizedState = null)) + : (t !== null && lu(e, null), fs(), Gn()); + return (ae(t, e, i, n), e.child); + } + function ti(t, e) { + return ( + (t !== null && t.tag === 22) || + e.stateNode !== null || + (e.stateNode = { + _visibility: 1, + _pendingMarkers: null, + _retryCache: null, + _transitions: null, + }), + e.sibling + ); + } + function I0(t, e, n, a, i) { + var s = as(); + return ( + (s = s === null ? null : { parent: Zt._currentValue, pool: s }), + (e.memoizedState = { baseLanes: n, cachePool: s }), + t !== null && lu(e, null), + fs(), + Jo(e), + t !== null && tl(t, e, a, !0), + (e.childLanes = i), + null + ); + } + function pu(t, e) { + return ( + (e = xu({ mode: e.mode, children: e.children }, t.mode)), + (e.ref = t.ref), + (t.child = e), + (e.return = t), + e + ); + } + function K0(t, e, n) { + return ( + Ta(e, t.child, null, n), + (t = pu(e, e.pendingProps)), + (t.flags |= 2), + Oe(e), + (e.memoizedState = null), + t + ); + } + function jg(t, e, n) { + var a = e.pendingProps, + i = (e.flags & 128) !== 0; + if (((e.flags &= -129), t === null)) { + if (bt) { + if (a.mode === 'hidden') return ((t = pu(e, a)), (e.lanes = 536870912), ti(null, t)); + if ( + (os(e), + (t = Ht) + ? ((t = l1(t, ze)), + (t = t !== null && t.data === '&' ? t : null), + t !== null && + ((e.memoizedState = { + dehydrated: t, + treeContext: Hn !== null ? { id: Je, overflow: Fe } : null, + retryLane: 536870912, + hydrationErrors: null, + }), + (n = Do(t)), + (n.return = e), + (e.child = n), + (ee = e), + (Ht = null))) + : (t = null), + t === null) + ) + throw Bn(e); + return ((e.lanes = 536870912), null); + } + return pu(e, a); + } + var s = t.memoizedState; + if (s !== null) { + var d = s.dehydrated; + if ((os(e), i)) + if (e.flags & 256) ((e.flags &= -257), (e = K0(t, e, n))); + else if (e.memoizedState !== null) + ((e.child = t.child), (e.flags |= 128), (e = null)); + else throw Error(f(558)); + else if ((It || tl(t, e, n, !1), (i = (n & t.childLanes) !== 0), It || i)) { + if (((a = jt), a !== null && ((d = Ur(a, n)), d !== 0 && d !== s.retryLane))) + throw ((s.retryLane = d), Aa(t, d), ve(a, t, d), Hs); + (ju(), (e = K0(t, e, n))); + } else + ((t = s.treeContext), + (Ht = Le(d.nextSibling)), + (ee = e), + (bt = !0), + (Nn = null), + (ze = !1), + t !== null && Ho(e, t), + (e = pu(e, a)), + (e.flags |= 4096)); + return e; + } + return ( + (t = nn(t.child, { mode: a.mode, children: a.children })), + (t.ref = e.ref), + (e.child = t), + (t.return = e), + t + ); + } + function bu(t, e) { + var n = e.ref; + if (n === null) t !== null && t.ref !== null && (e.flags |= 4194816); + else { + if (typeof n != 'function' && typeof n != 'object') throw Error(f(284)); + (t === null || t.ref !== n) && (e.flags |= 4194816); + } + } + function Ns(t, e, n, a, i) { + return ( + pa(e), + (n = hs(t, e, n, a, void 0, i)), + (a = ms()), + t !== null && !It + ? (gs(t, e, i), fn(t, e, i)) + : (bt && a && Jc(e), (e.flags |= 1), ae(t, e, n, i), e.child) + ); + } + function k0(t, e, n, a, i, s) { + return ( + pa(e), + (e.updateQueue = null), + (n = Wo(e, a, n, i)), + Fo(t), + (a = ms()), + t !== null && !It + ? (gs(t, e, s), fn(t, e, s)) + : (bt && a && Jc(e), (e.flags |= 1), ae(t, e, n, s), e.child) + ); + } + function J0(t, e, n, a, i) { + if ((pa(e), e.stateNode === null)) { + var s = Wa, + d = n.contextType; + (typeof d == 'object' && d !== null && (s = ne(d)), + (s = new n(a, s)), + (e.memoizedState = s.state !== null && s.state !== void 0 ? s.state : null), + (s.updater = Ms), + (e.stateNode = s), + (s._reactInternals = e), + (s = e.stateNode), + (s.props = a), + (s.state = e.memoizedState), + (s.refs = {}), + is(e), + (d = n.contextType), + (s.context = typeof d == 'object' && d !== null ? ne(d) : Wa), + (s.state = e.memoizedState), + (d = n.getDerivedStateFromProps), + typeof d == 'function' && (Ds(e, n, d, a), (s.state = e.memoizedState)), + typeof n.getDerivedStateFromProps == 'function' || + typeof s.getSnapshotBeforeUpdate == 'function' || + (typeof s.UNSAFE_componentWillMount != 'function' && + typeof s.componentWillMount != 'function') || + ((d = s.state), + typeof s.componentWillMount == 'function' && s.componentWillMount(), + typeof s.UNSAFE_componentWillMount == 'function' && s.UNSAFE_componentWillMount(), + d !== s.state && Ms.enqueueReplaceState(s, s.state, null), + Fl(e, a, s, i), + Jl(), + (s.state = e.memoizedState)), + typeof s.componentDidMount == 'function' && (e.flags |= 4194308), + (a = !0)); + } else if (t === null) { + s = e.stateNode; + var g = e.memoizedProps, + T = Oa(n, g); + s.props = T; + var z = s.context, + V = n.contextType; + ((d = Wa), typeof V == 'object' && V !== null && (d = ne(V))); + var I = n.getDerivedStateFromProps; + ((V = typeof I == 'function' || typeof s.getSnapshotBeforeUpdate == 'function'), + (g = e.pendingProps !== g), + V || + (typeof s.UNSAFE_componentWillReceiveProps != 'function' && + typeof s.componentWillReceiveProps != 'function') || + ((g || z !== d) && B0(e, s, a, d)), + (Qn = !1)); + var Y = e.memoizedState; + ((s.state = Y), + Fl(e, a, s, i), + Jl(), + (z = e.memoizedState), + g || Y !== z || Qn + ? (typeof I == 'function' && (Ds(e, n, I, a), (z = e.memoizedState)), + (T = Qn || N0(e, n, T, a, Y, z, d)) + ? (V || + (typeof s.UNSAFE_componentWillMount != 'function' && + typeof s.componentWillMount != 'function') || + (typeof s.componentWillMount == 'function' && s.componentWillMount(), + typeof s.UNSAFE_componentWillMount == 'function' && + s.UNSAFE_componentWillMount()), + typeof s.componentDidMount == 'function' && (e.flags |= 4194308)) + : (typeof s.componentDidMount == 'function' && (e.flags |= 4194308), + (e.memoizedProps = a), + (e.memoizedState = z)), + (s.props = a), + (s.state = z), + (s.context = d), + (a = T)) + : (typeof s.componentDidMount == 'function' && (e.flags |= 4194308), (a = !1))); + } else { + ((s = e.stateNode), + us(t, e), + (d = e.memoizedProps), + (V = Oa(n, d)), + (s.props = V), + (I = e.pendingProps), + (Y = s.context), + (z = n.contextType), + (T = Wa), + typeof z == 'object' && z !== null && (T = ne(z)), + (g = n.getDerivedStateFromProps), + (z = typeof g == 'function' || typeof s.getSnapshotBeforeUpdate == 'function') || + (typeof s.UNSAFE_componentWillReceiveProps != 'function' && + typeof s.componentWillReceiveProps != 'function') || + ((d !== I || Y !== T) && B0(e, s, a, T)), + (Qn = !1), + (Y = e.memoizedState), + (s.state = Y), + Fl(e, a, s, i), + Jl()); + var G = e.memoizedState; + d !== I || + Y !== G || + Qn || + (t !== null && t.dependencies !== null && nu(t.dependencies)) + ? (typeof g == 'function' && (Ds(e, n, g, a), (G = e.memoizedState)), + (V = + Qn || + N0(e, n, V, a, Y, G, T) || + (t !== null && t.dependencies !== null && nu(t.dependencies))) + ? (z || + (typeof s.UNSAFE_componentWillUpdate != 'function' && + typeof s.componentWillUpdate != 'function') || + (typeof s.componentWillUpdate == 'function' && s.componentWillUpdate(a, G, T), + typeof s.UNSAFE_componentWillUpdate == 'function' && + s.UNSAFE_componentWillUpdate(a, G, T)), + typeof s.componentDidUpdate == 'function' && (e.flags |= 4), + typeof s.getSnapshotBeforeUpdate == 'function' && (e.flags |= 1024)) + : (typeof s.componentDidUpdate != 'function' || + (d === t.memoizedProps && Y === t.memoizedState) || + (e.flags |= 4), + typeof s.getSnapshotBeforeUpdate != 'function' || + (d === t.memoizedProps && Y === t.memoizedState) || + (e.flags |= 1024), + (e.memoizedProps = a), + (e.memoizedState = G)), + (s.props = a), + (s.state = G), + (s.context = T), + (a = V)) + : (typeof s.componentDidUpdate != 'function' || + (d === t.memoizedProps && Y === t.memoizedState) || + (e.flags |= 4), + typeof s.getSnapshotBeforeUpdate != 'function' || + (d === t.memoizedProps && Y === t.memoizedState) || + (e.flags |= 1024), + (a = !1)); + } + return ( + (s = a), + bu(t, e), + (a = (e.flags & 128) !== 0), + s || a + ? ((s = e.stateNode), + (n = a && typeof n.getDerivedStateFromError != 'function' ? null : s.render()), + (e.flags |= 1), + t !== null && a + ? ((e.child = Ta(e, t.child, null, i)), (e.child = Ta(e, null, n, i))) + : ae(t, e, n, i), + (e.memoizedState = s.state), + (t = e.child)) + : (t = fn(t, e, i)), + t + ); + } + function F0(t, e, n, a) { + return (ya(), (e.flags |= 256), ae(t, e, n, a), e.child); + } + var Bs = { dehydrated: null, treeContext: null, retryLane: 0, hydrationErrors: null }; + function Us(t) { + return { baseLanes: t, cachePool: Yo() }; + } + function Qs(t, e, n) { + return ((t = t !== null ? t.childLanes & ~n : 0), e && (t |= Re), t); + } + function W0(t, e, n) { + var a = e.pendingProps, + i = !1, + s = (e.flags & 128) !== 0, + d; + if ( + ((d = s) || (d = t !== null && t.memoizedState === null ? !1 : (Xt.current & 2) !== 0), + d && ((i = !0), (e.flags &= -129)), + (d = (e.flags & 32) !== 0), + (e.flags &= -33), + t === null) + ) { + if (bt) { + if ( + (i ? Ln(e) : Gn(), + (t = Ht) + ? ((t = l1(t, ze)), + (t = t !== null && t.data !== '&' ? t : null), + t !== null && + ((e.memoizedState = { + dehydrated: t, + treeContext: Hn !== null ? { id: Je, overflow: Fe } : null, + retryLane: 536870912, + hydrationErrors: null, + }), + (n = Do(t)), + (n.return = e), + (e.child = n), + (ee = e), + (Ht = null))) + : (t = null), + t === null) + ) + throw Bn(e); + return (Ef(t) ? (e.lanes = 32) : (e.lanes = 536870912), null); + } + var g = a.children; + return ( + (a = a.fallback), + i + ? (Gn(), + (i = e.mode), + (g = xu({ mode: 'hidden', children: g }, i)), + (a = va(a, i, n, null)), + (g.return = e), + (a.return = e), + (g.sibling = a), + (e.child = g), + (a = e.child), + (a.memoizedState = Us(n)), + (a.childLanes = Qs(t, d, n)), + (e.memoizedState = Bs), + ti(null, a)) + : (Ln(e), zs(e, g)) + ); + } + var T = t.memoizedState; + if (T !== null && ((g = T.dehydrated), g !== null)) { + if (s) + e.flags & 256 + ? (Ln(e), (e.flags &= -257), (e = Ys(t, e, n))) + : e.memoizedState !== null + ? (Gn(), (e.child = t.child), (e.flags |= 128), (e = null)) + : (Gn(), + (g = a.fallback), + (i = e.mode), + (a = xu({ mode: 'visible', children: a.children }, i)), + (g = va(g, i, n, null)), + (g.flags |= 2), + (a.return = e), + (g.return = e), + (a.sibling = g), + (e.child = a), + Ta(e, t.child, null, n), + (a = e.child), + (a.memoizedState = Us(n)), + (a.childLanes = Qs(t, d, n)), + (e.memoizedState = Bs), + (e = ti(null, a))); + else if ((Ln(e), Ef(g))) { + if (((d = g.nextSibling && g.nextSibling.dataset), d)) var z = d.dgst; + ((d = z), + (a = Error(f(419))), + (a.stack = ''), + (a.digest = d), + Vl({ value: a, source: null, stack: null }), + (e = Ys(t, e, n))); + } else if ((It || tl(t, e, n, !1), (d = (n & t.childLanes) !== 0), It || d)) { + if (((d = jt), d !== null && ((a = Ur(d, n)), a !== 0 && a !== T.retryLane))) + throw ((T.retryLane = a), Aa(t, a), ve(d, t, a), Hs); + (yf(g) || ju(), (e = Ys(t, e, n))); + } else + yf(g) + ? ((e.flags |= 192), (e.child = t.child), (e = null)) + : ((t = T.treeContext), + (Ht = Le(g.nextSibling)), + (ee = e), + (bt = !0), + (Nn = null), + (ze = !1), + t !== null && Ho(e, t), + (e = zs(e, a.children)), + (e.flags |= 4096)); + return e; + } + return i + ? (Gn(), + (g = a.fallback), + (i = e.mode), + (T = t.child), + (z = T.sibling), + (a = nn(T, { mode: 'hidden', children: a.children })), + (a.subtreeFlags = T.subtreeFlags & 65011712), + z !== null ? (g = nn(z, g)) : ((g = va(g, i, n, null)), (g.flags |= 2)), + (g.return = e), + (a.return = e), + (a.sibling = g), + (e.child = a), + ti(null, a), + (a = e.child), + (g = t.child.memoizedState), + g === null + ? (g = Us(n)) + : ((i = g.cachePool), + i !== null + ? ((T = Zt._currentValue), (i = i.parent !== T ? { parent: T, pool: T } : i)) + : (i = Yo()), + (g = { baseLanes: g.baseLanes | n, cachePool: i })), + (a.memoizedState = g), + (a.childLanes = Qs(t, d, n)), + (e.memoizedState = Bs), + ti(t.child, a)) + : (Ln(e), + (n = t.child), + (t = n.sibling), + (n = nn(n, { mode: 'visible', children: a.children })), + (n.return = e), + (n.sibling = null), + t !== null && + ((d = e.deletions), + d === null ? ((e.deletions = [t]), (e.flags |= 16)) : d.push(t)), + (e.child = n), + (e.memoizedState = null), + n); + } + function zs(t, e) { + return ( + (e = xu({ mode: 'visible', children: e }, t.mode)), + (e.return = t), + (t.child = e) + ); + } + function xu(t, e) { + return ((t = Te(22, t, null, e)), (t.lanes = 0), t); + } + function Ys(t, e, n) { + return ( + Ta(e, t.child, null, n), + (t = zs(e, e.pendingProps.children)), + (t.flags |= 2), + (e.memoizedState = null), + t + ); + } + function _0(t, e, n) { + t.lanes |= e; + var a = t.alternate; + (a !== null && (a.lanes |= e), $c(t.return, e, n)); + } + function Ls(t, e, n, a, i, s) { + var d = t.memoizedState; + d === null + ? (t.memoizedState = { + isBackwards: e, + rendering: null, + renderingStartTime: 0, + last: a, + tail: n, + tailMode: i, + treeForkCount: s, + }) + : ((d.isBackwards = e), + (d.rendering = null), + (d.renderingStartTime = 0), + (d.last = a), + (d.tail = n), + (d.tailMode = i), + (d.treeForkCount = s)); + } + function P0(t, e, n) { + var a = e.pendingProps, + i = a.revealOrder, + s = a.tail; + a = a.children; + var d = Xt.current, + g = (d & 2) !== 0; + if ( + (g ? ((d = (d & 1) | 2), (e.flags |= 128)) : (d &= 1), + W(Xt, d), + ae(t, e, a, n), + (a = bt ? Xl : 0), + !g && t !== null && (t.flags & 128) !== 0) + ) + t: for (t = e.child; t !== null; ) { + if (t.tag === 13) t.memoizedState !== null && _0(t, n, e); + else if (t.tag === 19) _0(t, n, e); + else if (t.child !== null) { + ((t.child.return = t), (t = t.child)); + continue; + } + if (t === e) break t; + for (; t.sibling === null; ) { + if (t.return === null || t.return === e) break t; + t = t.return; + } + ((t.sibling.return = t.return), (t = t.sibling)); + } + switch (i) { + case 'forwards': + for (n = e.child, i = null; n !== null; ) + ((t = n.alternate), t !== null && ru(t) === null && (i = n), (n = n.sibling)); + ((n = i), + n === null + ? ((i = e.child), (e.child = null)) + : ((i = n.sibling), (n.sibling = null)), + Ls(e, !1, i, n, s, a)); + break; + case 'backwards': + case 'unstable_legacy-backwards': + for (n = null, i = e.child, e.child = null; i !== null; ) { + if (((t = i.alternate), t !== null && ru(t) === null)) { + e.child = i; + break; + } + ((t = i.sibling), (i.sibling = n), (n = i), (i = t)); + } + Ls(e, !0, n, null, s, a); + break; + case 'together': + Ls(e, !1, null, null, void 0, a); + break; + default: + e.memoizedState = null; + } + return e.child; + } + function fn(t, e, n) { + if ( + (t !== null && (e.dependencies = t.dependencies), + (Zn |= e.lanes), + (n & e.childLanes) === 0) + ) + if (t !== null) { + if ((tl(t, e, n, !1), (n & e.childLanes) === 0)) return null; + } else return null; + if (t !== null && e.child !== t.child) throw Error(f(153)); + if (e.child !== null) { + for ( + t = e.child, n = nn(t, t.pendingProps), e.child = n, n.return = e; + t.sibling !== null; + ) + ((t = t.sibling), (n = n.sibling = nn(t, t.pendingProps)), (n.return = e)); + n.sibling = null; + } + return e.child; + } + function Gs(t, e) { + return (t.lanes & e) !== 0 ? !0 : ((t = t.dependencies), !!(t !== null && nu(t))); + } + function Hg(t, e, n) { + switch (e.tag) { + case 3: + (Ft(e, e.stateNode.containerInfo), Un(e, Zt, t.memoizedState.cache), ya()); + break; + case 27: + case 5: + On(e); + break; + case 4: + Ft(e, e.stateNode.containerInfo); + break; + case 10: + Un(e, e.type, e.memoizedProps.value); + break; + case 31: + if (e.memoizedState !== null) return ((e.flags |= 128), os(e), null); + break; + case 13: + var a = e.memoizedState; + if (a !== null) + return a.dehydrated !== null + ? (Ln(e), (e.flags |= 128), null) + : (n & e.child.childLanes) !== 0 + ? W0(t, e, n) + : (Ln(e), (t = fn(t, e, n)), t !== null ? t.sibling : null); + Ln(e); + break; + case 19: + var i = (t.flags & 128) !== 0; + if ( + ((a = (n & e.childLanes) !== 0), + a || (tl(t, e, n, !1), (a = (n & e.childLanes) !== 0)), + i) + ) { + if (a) return P0(t, e, n); + e.flags |= 128; + } + if ( + ((i = e.memoizedState), + i !== null && ((i.rendering = null), (i.tail = null), (i.lastEffect = null)), + W(Xt, Xt.current), + a) + ) + break; + return null; + case 22: + return ((e.lanes = 0), q0(t, e, n, e.pendingProps)); + case 24: + Un(e, Zt, t.memoizedState.cache); + } + return fn(t, e, n); + } + function $0(t, e, n) { + if (t !== null) + if (t.memoizedProps !== e.pendingProps) It = !0; + else { + if (!Gs(t, n) && (e.flags & 128) === 0) return ((It = !1), Hg(t, e, n)); + It = (t.flags & 131072) !== 0; + } + else ((It = !1), bt && (e.flags & 1048576) !== 0 && jo(e, Xl, e.index)); + switch (((e.lanes = 0), e.tag)) { + case 16: + t: { + var a = e.pendingProps; + if (((t = xa(e.elementType)), (e.type = t), typeof t == 'function')) + Ic(t) + ? ((a = Oa(t, a)), (e.tag = 1), (e = J0(null, e, t, a, n))) + : ((e.tag = 0), (e = Ns(null, e, t, a, n))); + else { + if (t != null) { + var i = t.$$typeof; + if (i === Z) { + ((e.tag = 11), (e = X0(null, e, t, a, n))); + break t; + } else if (i === D) { + ((e.tag = 14), (e = V0(null, e, t, a, n))); + break t; + } + } + throw ((e = st(t) || t), Error(f(306, e, ''))); + } + } + return e; + case 0: + return Ns(t, e, e.type, e.pendingProps, n); + case 1: + return ((a = e.type), (i = Oa(a, e.pendingProps)), J0(t, e, a, i, n)); + case 3: + t: { + if ((Ft(e, e.stateNode.containerInfo), t === null)) throw Error(f(387)); + a = e.pendingProps; + var s = e.memoizedState; + ((i = s.element), us(t, e), Fl(e, a, null, n)); + var d = e.memoizedState; + if ( + ((a = d.cache), + Un(e, Zt, a), + a !== s.cache && ts(e, [Zt], n, !0), + Jl(), + (a = d.element), + s.isDehydrated) + ) + if ( + ((s = { element: a, isDehydrated: !1, cache: d.cache }), + (e.updateQueue.baseState = s), + (e.memoizedState = s), + e.flags & 256) + ) { + e = F0(t, e, a, n); + break t; + } else if (a !== i) { + ((i = Be(Error(f(424)), e)), Vl(i), (e = F0(t, e, a, n))); + break t; + } else { + switch (((t = e.stateNode.containerInfo), t.nodeType)) { + case 9: + t = t.body; + break; + default: + t = t.nodeName === 'HTML' ? t.ownerDocument.body : t; + } + for ( + Ht = Le(t.firstChild), + ee = e, + bt = !0, + Nn = null, + ze = !0, + n = qo(e, null, a, n), + e.child = n; + n; + ) + ((n.flags = (n.flags & -3) | 4096), (n = n.sibling)); + } + else { + if ((ya(), a === i)) { + e = fn(t, e, n); + break t; + } + ae(t, e, a, n); + } + e = e.child; + } + return e; + case 26: + return ( + bu(t, e), + t === null + ? (n = r1(e.type, null, e.pendingProps, null)) + ? (e.memoizedState = n) + : bt || + ((n = e.type), + (t = e.pendingProps), + (a = Yu(ot.current).createElement(n)), + (a[te] = e), + (a[oe] = t), + le(a, n, t), + Wt(a), + (e.stateNode = a)) + : (e.memoizedState = r1( + e.type, + t.memoizedProps, + e.pendingProps, + t.memoizedState + )), + null + ); + case 27: + return ( + On(e), + t === null && + bt && + ((a = e.stateNode = c1(e.type, e.pendingProps, ot.current)), + (ee = e), + (ze = !0), + (i = Ht), + Jn(e.type) ? ((pf = i), (Ht = Le(a.firstChild))) : (Ht = i)), + ae(t, e, e.pendingProps.children, n), + bu(t, e), + t === null && (e.flags |= 4194304), + e.child + ); + case 5: + return ( + t === null && + bt && + ((i = a = Ht) && + ((a = sA(a, e.type, e.pendingProps, ze)), + a !== null + ? ((e.stateNode = a), (ee = e), (Ht = Le(a.firstChild)), (ze = !1), (i = !0)) + : (i = !1)), + i || Bn(e)), + On(e), + (i = e.type), + (s = e.pendingProps), + (d = t !== null ? t.memoizedProps : null), + (a = s.children), + gf(i, s) ? (a = null) : d !== null && gf(i, d) && (e.flags |= 32), + e.memoizedState !== null && + ((i = hs(t, e, Sg, null, null, n)), (gi._currentValue = i)), + bu(t, e), + ae(t, e, a, n), + e.child + ); + case 6: + return ( + t === null && + bt && + ((t = n = Ht) && + ((n = fA(n, e.pendingProps, ze)), + n !== null ? ((e.stateNode = n), (ee = e), (Ht = null), (t = !0)) : (t = !1)), + t || Bn(e)), + null + ); + case 13: + return W0(t, e, n); + case 4: + return ( + Ft(e, e.stateNode.containerInfo), + (a = e.pendingProps), + t === null ? (e.child = Ta(e, null, a, n)) : ae(t, e, a, n), + e.child + ); + case 11: + return X0(t, e, e.type, e.pendingProps, n); + case 7: + return (ae(t, e, e.pendingProps, n), e.child); + case 8: + return (ae(t, e, e.pendingProps.children, n), e.child); + case 12: + return (ae(t, e, e.pendingProps.children, n), e.child); + case 10: + return ( + (a = e.pendingProps), + Un(e, e.type, a.value), + ae(t, e, a.children, n), + e.child + ); + case 9: + return ( + (i = e.type._context), + (a = e.pendingProps.children), + pa(e), + (i = ne(i)), + (a = a(i)), + (e.flags |= 1), + ae(t, e, a, n), + e.child + ); + case 14: + return V0(t, e, e.type, e.pendingProps, n); + case 15: + return Z0(t, e, e.type, e.pendingProps, n); + case 19: + return P0(t, e, n); + case 31: + return jg(t, e, n); + case 22: + return q0(t, e, n, e.pendingProps); + case 24: + return ( + pa(e), + (a = ne(Zt)), + t === null + ? ((i = as()), + i === null && + ((i = jt), + (s = es()), + (i.pooledCache = s), + s.refCount++, + s !== null && (i.pooledCacheLanes |= n), + (i = s)), + (e.memoizedState = { parent: a, cache: i }), + is(e), + Un(e, Zt, i)) + : ((t.lanes & n) !== 0 && (us(t, e), Fl(e, null, null, n), Jl()), + (i = t.memoizedState), + (s = e.memoizedState), + i.parent !== a + ? ((i = { parent: a, cache: a }), + (e.memoizedState = i), + e.lanes === 0 && (e.memoizedState = e.updateQueue.baseState = i), + Un(e, Zt, a)) + : ((a = s.cache), Un(e, Zt, a), a !== i.cache && ts(e, [Zt], n, !0))), + ae(t, e, e.pendingProps.children, n), + e.child + ); + case 29: + throw e.pendingProps; + } + throw Error(f(156, e.tag)); + } + function rn(t) { + t.flags |= 4; + } + function Xs(t, e, n, a, i) { + if (((e = (t.mode & 32) !== 0) && (e = !1), e)) { + if (((t.flags |= 16777216), (i & 335544128) === i)) + if (t.stateNode.complete) t.flags |= 8192; + else if (Od()) t.flags |= 8192; + else throw ((Sa = uu), ls); + } else t.flags &= -16777217; + } + function td(t, e) { + if (e.type !== 'stylesheet' || (e.state.loading & 4) !== 0) t.flags &= -16777217; + else if (((t.flags |= 16777216), !g1(e))) + if (Od()) t.flags |= 8192; + else throw ((Sa = uu), ls); + } + function Su(t, e) { + (e !== null && (t.flags |= 4), + t.flags & 16384 && ((e = t.tag !== 22 ? Hr() : 536870912), (t.lanes |= e), (dl |= e))); + } + function ei(t, e) { + if (!bt) + switch (t.tailMode) { + case 'hidden': + e = t.tail; + for (var n = null; e !== null; ) (e.alternate !== null && (n = e), (e = e.sibling)); + n === null ? (t.tail = null) : (n.sibling = null); + break; + case 'collapsed': + n = t.tail; + for (var a = null; n !== null; ) (n.alternate !== null && (a = n), (n = n.sibling)); + a === null + ? e || t.tail === null + ? (t.tail = null) + : (t.tail.sibling = null) + : (a.sibling = null); + } + } + function Nt(t) { + var e = t.alternate !== null && t.alternate.child === t.child, + n = 0, + a = 0; + if (e) + for (var i = t.child; i !== null; ) + ((n |= i.lanes | i.childLanes), + (a |= i.subtreeFlags & 65011712), + (a |= i.flags & 65011712), + (i.return = t), + (i = i.sibling)); + else + for (i = t.child; i !== null; ) + ((n |= i.lanes | i.childLanes), + (a |= i.subtreeFlags), + (a |= i.flags), + (i.return = t), + (i = i.sibling)); + return ((t.subtreeFlags |= a), (t.childLanes = n), e); + } + function Ng(t, e, n) { + var a = e.pendingProps; + switch ((Fc(e), e.tag)) { + case 16: + case 15: + case 0: + case 11: + case 7: + case 8: + case 12: + case 9: + case 14: + return (Nt(e), null); + case 1: + return (Nt(e), null); + case 3: + return ( + (n = e.stateNode), + (a = null), + t !== null && (a = t.memoizedState.cache), + e.memoizedState.cache !== a && (e.flags |= 2048), + un(Zt), + Qt(), + n.pendingContext && ((n.context = n.pendingContext), (n.pendingContext = null)), + (t === null || t.child === null) && + ($a(e) + ? rn(e) + : t === null || + (t.memoizedState.isDehydrated && (e.flags & 256) === 0) || + ((e.flags |= 1024), _c())), + Nt(e), + null + ); + case 26: + var i = e.type, + s = e.memoizedState; + return ( + t === null + ? (rn(e), s !== null ? (Nt(e), td(e, s)) : (Nt(e), Xs(e, i, null, a, n))) + : s + ? s !== t.memoizedState + ? (rn(e), Nt(e), td(e, s)) + : (Nt(e), (e.flags &= -16777217)) + : ((t = t.memoizedProps), t !== a && rn(e), Nt(e), Xs(e, i, t, a, n)), + null + ); + case 27: + if ((ra(e), (n = ot.current), (i = e.type), t !== null && e.stateNode != null)) + t.memoizedProps !== a && rn(e); + else { + if (!a) { + if (e.stateNode === null) throw Error(f(166)); + return (Nt(e), null); + } + ((t = et.current), $a(e) ? No(e) : ((t = c1(i, a, n)), (e.stateNode = t), rn(e))); + } + return (Nt(e), null); + case 5: + if ((ra(e), (i = e.type), t !== null && e.stateNode != null)) + t.memoizedProps !== a && rn(e); + else { + if (!a) { + if (e.stateNode === null) throw Error(f(166)); + return (Nt(e), null); + } + if (((s = et.current), $a(e))) No(e); + else { + var d = Yu(ot.current); + switch (s) { + case 1: + s = d.createElementNS('http://www.w3.org/2000/svg', i); + break; + case 2: + s = d.createElementNS('http://www.w3.org/1998/Math/MathML', i); + break; + default: + switch (i) { + case 'svg': + s = d.createElementNS('http://www.w3.org/2000/svg', i); + break; + case 'math': + s = d.createElementNS('http://www.w3.org/1998/Math/MathML', i); + break; + case 'script': + ((s = d.createElement('div')), + (s.innerHTML = '<script><\/script>'), + (s = s.removeChild(s.firstChild))); + break; + case 'select': + ((s = + typeof a.is == 'string' + ? d.createElement('select', { is: a.is }) + : d.createElement('select')), + a.multiple ? (s.multiple = !0) : a.size && (s.size = a.size)); + break; + default: + s = + typeof a.is == 'string' + ? d.createElement(i, { is: a.is }) + : d.createElement(i); + } + } + ((s[te] = e), (s[oe] = a)); + t: for (d = e.child; d !== null; ) { + if (d.tag === 5 || d.tag === 6) s.appendChild(d.stateNode); + else if (d.tag !== 4 && d.tag !== 27 && d.child !== null) { + ((d.child.return = d), (d = d.child)); + continue; + } + if (d === e) break t; + for (; d.sibling === null; ) { + if (d.return === null || d.return === e) break t; + d = d.return; + } + ((d.sibling.return = d.return), (d = d.sibling)); + } + e.stateNode = s; + t: switch ((le(s, i, a), i)) { + case 'button': + case 'input': + case 'select': + case 'textarea': + a = !!a.autoFocus; + break t; + case 'img': + a = !0; + break t; + default: + a = !1; + } + a && rn(e); + } + } + return ( + Nt(e), + Xs(e, e.type, t === null ? null : t.memoizedProps, e.pendingProps, n), + null + ); + case 6: + if (t && e.stateNode != null) t.memoizedProps !== a && rn(e); + else { + if (typeof a != 'string' && e.stateNode === null) throw Error(f(166)); + if (((t = ot.current), $a(e))) { + if (((t = e.stateNode), (n = e.memoizedProps), (a = null), (i = ee), i !== null)) + switch (i.tag) { + case 27: + case 5: + a = i.memoizedProps; + } + ((t[te] = e), + (t = !!( + t.nodeValue === n || + (a !== null && a.suppressHydrationWarning === !0) || + Wd(t.nodeValue, n) + )), + t || Bn(e, !0)); + } else ((t = Yu(t).createTextNode(a)), (t[te] = e), (e.stateNode = t)); + } + return (Nt(e), null); + case 31: + if (((n = e.memoizedState), t === null || t.memoizedState !== null)) { + if (((a = $a(e)), n !== null)) { + if (t === null) { + if (!a) throw Error(f(318)); + if (((t = e.memoizedState), (t = t !== null ? t.dehydrated : null), !t)) + throw Error(f(557)); + t[te] = e; + } else (ya(), (e.flags & 128) === 0 && (e.memoizedState = null), (e.flags |= 4)); + (Nt(e), (t = !1)); + } else + ((n = _c()), + t !== null && t.memoizedState !== null && (t.memoizedState.hydrationErrors = n), + (t = !0)); + if (!t) return e.flags & 256 ? (Oe(e), e) : (Oe(e), null); + if ((e.flags & 128) !== 0) throw Error(f(558)); + } + return (Nt(e), null); + case 13: + if ( + ((a = e.memoizedState), + t === null || (t.memoizedState !== null && t.memoizedState.dehydrated !== null)) + ) { + if (((i = $a(e)), a !== null && a.dehydrated !== null)) { + if (t === null) { + if (!i) throw Error(f(318)); + if (((i = e.memoizedState), (i = i !== null ? i.dehydrated : null), !i)) + throw Error(f(317)); + i[te] = e; + } else (ya(), (e.flags & 128) === 0 && (e.memoizedState = null), (e.flags |= 4)); + (Nt(e), (i = !1)); + } else + ((i = _c()), + t !== null && t.memoizedState !== null && (t.memoizedState.hydrationErrors = i), + (i = !0)); + if (!i) return e.flags & 256 ? (Oe(e), e) : (Oe(e), null); + } + return ( + Oe(e), + (e.flags & 128) !== 0 + ? ((e.lanes = n), e) + : ((n = a !== null), + (t = t !== null && t.memoizedState !== null), + n && + ((a = e.child), + (i = null), + a.alternate !== null && + a.alternate.memoizedState !== null && + a.alternate.memoizedState.cachePool !== null && + (i = a.alternate.memoizedState.cachePool.pool), + (s = null), + a.memoizedState !== null && + a.memoizedState.cachePool !== null && + (s = a.memoizedState.cachePool.pool), + s !== i && (a.flags |= 2048)), + n !== t && n && (e.child.flags |= 8192), + Su(e, e.updateQueue), + Nt(e), + null) + ); + case 4: + return (Qt(), t === null && rf(e.stateNode.containerInfo), Nt(e), null); + case 10: + return (un(e.type), Nt(e), null); + case 19: + if ((L(Xt), (a = e.memoizedState), a === null)) return (Nt(e), null); + if (((i = (e.flags & 128) !== 0), (s = a.rendering), s === null)) + if (i) ei(a, !1); + else { + if (Gt !== 0 || (t !== null && (t.flags & 128) !== 0)) + for (t = e.child; t !== null; ) { + if (((s = ru(t)), s !== null)) { + for ( + e.flags |= 128, + ei(a, !1), + t = s.updateQueue, + e.updateQueue = t, + Su(e, t), + e.subtreeFlags = 0, + t = n, + n = e.child; + n !== null; + ) + (Ro(n, t), (n = n.sibling)); + return (W(Xt, (Xt.current & 1) | 2), bt && an(e, a.treeForkCount), e.child); + } + t = t.sibling; + } + a.tail !== null && + pe() > Ru && + ((e.flags |= 128), (i = !0), ei(a, !1), (e.lanes = 4194304)); + } + else { + if (!i) + if (((t = ru(s)), t !== null)) { + if ( + ((e.flags |= 128), + (i = !0), + (t = t.updateQueue), + (e.updateQueue = t), + Su(e, t), + ei(a, !0), + a.tail === null && a.tailMode === 'hidden' && !s.alternate && !bt) + ) + return (Nt(e), null); + } else + 2 * pe() - a.renderingStartTime > Ru && + n !== 536870912 && + ((e.flags |= 128), (i = !0), ei(a, !1), (e.lanes = 4194304)); + a.isBackwards + ? ((s.sibling = e.child), (e.child = s)) + : ((t = a.last), t !== null ? (t.sibling = s) : (e.child = s), (a.last = s)); + } + return a.tail !== null + ? ((t = a.tail), + (a.rendering = t), + (a.tail = t.sibling), + (a.renderingStartTime = pe()), + (t.sibling = null), + (n = Xt.current), + W(Xt, i ? (n & 1) | 2 : n & 1), + bt && an(e, a.treeForkCount), + t) + : (Nt(e), null); + case 22: + case 23: + return ( + Oe(e), + rs(), + (a = e.memoizedState !== null), + t !== null + ? (t.memoizedState !== null) !== a && (e.flags |= 8192) + : a && (e.flags |= 8192), + a + ? (n & 536870912) !== 0 && + (e.flags & 128) === 0 && + (Nt(e), e.subtreeFlags & 6 && (e.flags |= 8192)) + : Nt(e), + (n = e.updateQueue), + n !== null && Su(e, n.retryQueue), + (n = null), + t !== null && + t.memoizedState !== null && + t.memoizedState.cachePool !== null && + (n = t.memoizedState.cachePool.pool), + (a = null), + e.memoizedState !== null && + e.memoizedState.cachePool !== null && + (a = e.memoizedState.cachePool.pool), + a !== n && (e.flags |= 2048), + t !== null && L(ba), + null + ); + case 24: + return ( + (n = null), + t !== null && (n = t.memoizedState.cache), + e.memoizedState.cache !== n && (e.flags |= 2048), + un(Zt), + Nt(e), + null + ); + case 25: + return null; + case 30: + return null; + } + throw Error(f(156, e.tag)); + } + function Bg(t, e) { + switch ((Fc(e), e.tag)) { + case 1: + return ((t = e.flags), t & 65536 ? ((e.flags = (t & -65537) | 128), e) : null); + case 3: + return ( + un(Zt), + Qt(), + (t = e.flags), + (t & 65536) !== 0 && (t & 128) === 0 ? ((e.flags = (t & -65537) | 128), e) : null + ); + case 26: + case 27: + case 5: + return (ra(e), null); + case 31: + if (e.memoizedState !== null) { + if ((Oe(e), e.alternate === null)) throw Error(f(340)); + ya(); + } + return ((t = e.flags), t & 65536 ? ((e.flags = (t & -65537) | 128), e) : null); + case 13: + if ((Oe(e), (t = e.memoizedState), t !== null && t.dehydrated !== null)) { + if (e.alternate === null) throw Error(f(340)); + ya(); + } + return ((t = e.flags), t & 65536 ? ((e.flags = (t & -65537) | 128), e) : null); + case 19: + return (L(Xt), null); + case 4: + return (Qt(), null); + case 10: + return (un(e.type), null); + case 22: + case 23: + return ( + Oe(e), + rs(), + t !== null && L(ba), + (t = e.flags), + t & 65536 ? ((e.flags = (t & -65537) | 128), e) : null + ); + case 24: + return (un(Zt), null); + case 25: + return null; + default: + return null; + } + } + function ed(t, e) { + switch ((Fc(e), e.tag)) { + case 3: + (un(Zt), Qt()); + break; + case 26: + case 27: + case 5: + ra(e); + break; + case 4: + Qt(); + break; + case 31: + e.memoizedState !== null && Oe(e); + break; + case 13: + Oe(e); + break; + case 19: + L(Xt); + break; + case 10: + un(e.type); + break; + case 22: + case 23: + (Oe(e), rs(), t !== null && L(ba)); + break; + case 24: + un(Zt); + } + } + function ni(t, e) { + try { + var n = e.updateQueue, + a = n !== null ? n.lastEffect : null; + if (a !== null) { + var i = a.next; + n = i; + do { + if ((n.tag & t) === t) { + a = void 0; + var s = n.create, + d = n.inst; + ((a = s()), (d.destroy = a)); + } + n = n.next; + } while (n !== i); + } + } catch (g) { + wt(e, e.return, g); + } + } + function Xn(t, e, n) { + try { + var a = e.updateQueue, + i = a !== null ? a.lastEffect : null; + if (i !== null) { + var s = i.next; + a = s; + do { + if ((a.tag & t) === t) { + var d = a.inst, + g = d.destroy; + if (g !== void 0) { + ((d.destroy = void 0), (i = e)); + var T = n, + z = g; + try { + z(); + } catch (V) { + wt(i, T, V); + } + } + } + a = a.next; + } while (a !== s); + } + } catch (V) { + wt(e, e.return, V); + } + } + function nd(t) { + var e = t.updateQueue; + if (e !== null) { + var n = t.stateNode; + try { + Ko(e, n); + } catch (a) { + wt(t, t.return, a); + } + } + } + function ad(t, e, n) { + ((n.props = Oa(t.type, t.memoizedProps)), (n.state = t.memoizedState)); + try { + n.componentWillUnmount(); + } catch (a) { + wt(t, e, a); + } + } + function ai(t, e) { + try { + var n = t.ref; + if (n !== null) { + switch (t.tag) { + case 26: + case 27: + case 5: + var a = t.stateNode; + break; + case 30: + a = t.stateNode; + break; + default: + a = t.stateNode; + } + typeof n == 'function' ? (t.refCleanup = n(a)) : (n.current = a); + } + } catch (i) { + wt(t, e, i); + } + } + function We(t, e) { + var n = t.ref, + a = t.refCleanup; + if (n !== null) + if (typeof a == 'function') + try { + a(); + } catch (i) { + wt(t, e, i); + } finally { + ((t.refCleanup = null), (t = t.alternate), t != null && (t.refCleanup = null)); + } + else if (typeof n == 'function') + try { + n(null); + } catch (i) { + wt(t, e, i); + } + else n.current = null; + } + function ld(t) { + var e = t.type, + n = t.memoizedProps, + a = t.stateNode; + try { + t: switch (e) { + case 'button': + case 'input': + case 'select': + case 'textarea': + n.autoFocus && a.focus(); + break t; + case 'img': + n.src ? (a.src = n.src) : n.srcSet && (a.srcset = n.srcSet); + } + } catch (i) { + wt(t, t.return, i); + } + } + function Vs(t, e, n) { + try { + var a = t.stateNode; + (nA(a, t.type, n, e), (a[oe] = e)); + } catch (i) { + wt(t, t.return, i); + } + } + function id(t) { + return ( + t.tag === 5 || + t.tag === 3 || + t.tag === 26 || + (t.tag === 27 && Jn(t.type)) || + t.tag === 4 + ); + } + function Zs(t) { + t: for (;;) { + for (; t.sibling === null; ) { + if (t.return === null || id(t.return)) return null; + t = t.return; + } + for ( + t.sibling.return = t.return, t = t.sibling; + t.tag !== 5 && t.tag !== 6 && t.tag !== 18; + ) { + if ((t.tag === 27 && Jn(t.type)) || t.flags & 2 || t.child === null || t.tag === 4) + continue t; + ((t.child.return = t), (t = t.child)); + } + if (!(t.flags & 2)) return t.stateNode; + } + } + function qs(t, e, n) { + var a = t.tag; + if (a === 5 || a === 6) + ((t = t.stateNode), + e + ? (n.nodeType === 9 + ? n.body + : n.nodeName === 'HTML' + ? n.ownerDocument.body + : n + ).insertBefore(t, e) + : ((e = + n.nodeType === 9 ? n.body : n.nodeName === 'HTML' ? n.ownerDocument.body : n), + e.appendChild(t), + (n = n._reactRootContainer), + n != null || e.onclick !== null || (e.onclick = tn))); + else if ( + a !== 4 && + (a === 27 && Jn(t.type) && ((n = t.stateNode), (e = null)), (t = t.child), t !== null) + ) + for (qs(t, e, n), t = t.sibling; t !== null; ) (qs(t, e, n), (t = t.sibling)); + } + function Tu(t, e, n) { + var a = t.tag; + if (a === 5 || a === 6) ((t = t.stateNode), e ? n.insertBefore(t, e) : n.appendChild(t)); + else if ( + a !== 4 && + (a === 27 && Jn(t.type) && (n = t.stateNode), (t = t.child), t !== null) + ) + for (Tu(t, e, n), t = t.sibling; t !== null; ) (Tu(t, e, n), (t = t.sibling)); + } + function ud(t) { + var e = t.stateNode, + n = t.memoizedProps; + try { + for (var a = t.type, i = e.attributes; i.length; ) e.removeAttributeNode(i[0]); + (le(e, a, n), (e[te] = t), (e[oe] = n)); + } catch (s) { + wt(t, t.return, s); + } + } + var on = !1, + Kt = !1, + Is = !1, + cd = typeof WeakSet == 'function' ? WeakSet : Set, + _t = null; + function Ug(t, e) { + if (((t = t.containerInfo), (hf = Iu), (t = Eo(t)), Yc(t))) { + if ('selectionStart' in t) var n = { start: t.selectionStart, end: t.selectionEnd }; + else + t: { + n = ((n = t.ownerDocument) && n.defaultView) || window; + var a = n.getSelection && n.getSelection(); + if (a && a.rangeCount !== 0) { + n = a.anchorNode; + var i = a.anchorOffset, + s = a.focusNode; + a = a.focusOffset; + try { + (n.nodeType, s.nodeType); + } catch { + n = null; + break t; + } + var d = 0, + g = -1, + T = -1, + z = 0, + V = 0, + I = t, + Y = null; + e: for (;;) { + for ( + var G; + I !== n || (i !== 0 && I.nodeType !== 3) || (g = d + i), + I !== s || (a !== 0 && I.nodeType !== 3) || (T = d + a), + I.nodeType === 3 && (d += I.nodeValue.length), + (G = I.firstChild) !== null; + ) + ((Y = I), (I = G)); + for (;;) { + if (I === t) break e; + if ( + (Y === n && ++z === i && (g = d), + Y === s && ++V === a && (T = d), + (G = I.nextSibling) !== null) + ) + break; + ((I = Y), (Y = I.parentNode)); + } + I = G; + } + n = g === -1 || T === -1 ? null : { start: g, end: T }; + } else n = null; + } + n = n || { start: 0, end: 0 }; + } else n = null; + for (mf = { focusedElem: t, selectionRange: n }, Iu = !1, _t = e; _t !== null; ) + if (((e = _t), (t = e.child), (e.subtreeFlags & 1028) !== 0 && t !== null)) + ((t.return = e), (_t = t)); + else + for (; _t !== null; ) { + switch (((e = _t), (s = e.alternate), (t = e.flags), e.tag)) { + case 0: + if ( + (t & 4) !== 0 && + ((t = e.updateQueue), (t = t !== null ? t.events : null), t !== null) + ) + for (n = 0; n < t.length; n++) ((i = t[n]), (i.ref.impl = i.nextImpl)); + break; + case 11: + case 15: + break; + case 1: + if ((t & 1024) !== 0 && s !== null) { + ((t = void 0), + (n = e), + (i = s.memoizedProps), + (s = s.memoizedState), + (a = n.stateNode)); + try { + var at = Oa(n.type, i); + ((t = a.getSnapshotBeforeUpdate(at, s)), + (a.__reactInternalSnapshotBeforeUpdate = t)); + } catch (ft) { + wt(n, n.return, ft); + } + } + break; + case 3: + if ((t & 1024) !== 0) { + if (((t = e.stateNode.containerInfo), (n = t.nodeType), n === 9)) vf(t); + else if (n === 1) + switch (t.nodeName) { + case 'HEAD': + case 'HTML': + case 'BODY': + vf(t); + break; + default: + t.textContent = ''; + } + } + break; + case 5: + case 26: + case 27: + case 6: + case 4: + case 17: + break; + default: + if ((t & 1024) !== 0) throw Error(f(163)); + } + if (((t = e.sibling), t !== null)) { + ((t.return = e.return), (_t = t)); + break; + } + _t = e.return; + } + } + function sd(t, e, n) { + var a = n.flags; + switch (n.tag) { + case 0: + case 11: + case 15: + (hn(t, n), a & 4 && ni(5, n)); + break; + case 1: + if ((hn(t, n), a & 4)) + if (((t = n.stateNode), e === null)) + try { + t.componentDidMount(); + } catch (d) { + wt(n, n.return, d); + } + else { + var i = Oa(n.type, e.memoizedProps); + e = e.memoizedState; + try { + t.componentDidUpdate(i, e, t.__reactInternalSnapshotBeforeUpdate); + } catch (d) { + wt(n, n.return, d); + } + } + (a & 64 && nd(n), a & 512 && ai(n, n.return)); + break; + case 3: + if ((hn(t, n), a & 64 && ((t = n.updateQueue), t !== null))) { + if (((e = null), n.child !== null)) + switch (n.child.tag) { + case 27: + case 5: + e = n.child.stateNode; + break; + case 1: + e = n.child.stateNode; + } + try { + Ko(t, e); + } catch (d) { + wt(n, n.return, d); + } + } + break; + case 27: + e === null && a & 4 && ud(n); + case 26: + case 5: + (hn(t, n), e === null && a & 4 && ld(n), a & 512 && ai(n, n.return)); + break; + case 12: + hn(t, n); + break; + case 31: + (hn(t, n), a & 4 && od(t, n)); + break; + case 13: + (hn(t, n), + a & 4 && dd(t, n), + a & 64 && + ((t = n.memoizedState), + t !== null && + ((t = t.dehydrated), t !== null && ((n = qg.bind(null, n)), rA(t, n))))); + break; + case 22: + if (((a = n.memoizedState !== null || on), !a)) { + ((e = (e !== null && e.memoizedState !== null) || Kt), (i = on)); + var s = Kt; + ((on = a), + (Kt = e) && !s ? mn(t, n, (n.subtreeFlags & 8772) !== 0) : hn(t, n), + (on = i), + (Kt = s)); + } + break; + case 30: + break; + default: + hn(t, n); + } + } + function fd(t) { + var e = t.alternate; + (e !== null && ((t.alternate = null), fd(e)), + (t.child = null), + (t.deletions = null), + (t.sibling = null), + t.tag === 5 && ((e = t.stateNode), e !== null && bc(e)), + (t.stateNode = null), + (t.return = null), + (t.dependencies = null), + (t.memoizedProps = null), + (t.memoizedState = null), + (t.pendingProps = null), + (t.stateNode = null), + (t.updateQueue = null)); + } + var zt = null, + he = !1; + function dn(t, e, n) { + for (n = n.child; n !== null; ) (rd(t, e, n), (n = n.sibling)); + } + function rd(t, e, n) { + if (be && typeof be.onCommitFiberUnmount == 'function') + try { + be.onCommitFiberUnmount(wl, n); + } catch {} + switch (n.tag) { + case 26: + (Kt || We(n, e), + dn(t, e, n), + n.memoizedState + ? n.memoizedState.count-- + : n.stateNode && ((n = n.stateNode), n.parentNode.removeChild(n))); + break; + case 27: + Kt || We(n, e); + var a = zt, + i = he; + (Jn(n.type) && ((zt = n.stateNode), (he = !1)), + dn(t, e, n), + di(n.stateNode), + (zt = a), + (he = i)); + break; + case 5: + Kt || We(n, e); + case 6: + if (((a = zt), (i = he), (zt = null), dn(t, e, n), (zt = a), (he = i), zt !== null)) + if (he) + try { + (zt.nodeType === 9 + ? zt.body + : zt.nodeName === 'HTML' + ? zt.ownerDocument.body + : zt + ).removeChild(n.stateNode); + } catch (s) { + wt(n, e, s); + } + else + try { + zt.removeChild(n.stateNode); + } catch (s) { + wt(n, e, s); + } + break; + case 18: + zt !== null && + (he + ? ((t = zt), + n1( + t.nodeType === 9 ? t.body : t.nodeName === 'HTML' ? t.ownerDocument.body : t, + n.stateNode + ), + pl(t)) + : n1(zt, n.stateNode)); + break; + case 4: + ((a = zt), + (i = he), + (zt = n.stateNode.containerInfo), + (he = !0), + dn(t, e, n), + (zt = a), + (he = i)); + break; + case 0: + case 11: + case 14: + case 15: + (Xn(2, n, e), Kt || Xn(4, n, e), dn(t, e, n)); + break; + case 1: + (Kt || + (We(n, e), + (a = n.stateNode), + typeof a.componentWillUnmount == 'function' && ad(n, e, a)), + dn(t, e, n)); + break; + case 21: + dn(t, e, n); + break; + case 22: + ((Kt = (a = Kt) || n.memoizedState !== null), dn(t, e, n), (Kt = a)); + break; + default: + dn(t, e, n); + } + } + function od(t, e) { + if ( + e.memoizedState === null && + ((t = e.alternate), t !== null && ((t = t.memoizedState), t !== null)) + ) { + t = t.dehydrated; + try { + pl(t); + } catch (n) { + wt(e, e.return, n); + } + } + } + function dd(t, e) { + if ( + e.memoizedState === null && + ((t = e.alternate), + t !== null && ((t = t.memoizedState), t !== null && ((t = t.dehydrated), t !== null))) + ) + try { + pl(t); + } catch (n) { + wt(e, e.return, n); + } + } + function Qg(t) { + switch (t.tag) { + case 31: + case 13: + case 19: + var e = t.stateNode; + return (e === null && (e = t.stateNode = new cd()), e); + case 22: + return ( + (t = t.stateNode), + (e = t._retryCache), + e === null && (e = t._retryCache = new cd()), + e + ); + default: + throw Error(f(435, t.tag)); + } + } + function Cu(t, e) { + var n = Qg(t); + e.forEach(function (a) { + if (!n.has(a)) { + n.add(a); + var i = Ig.bind(null, t, a); + a.then(i, i); + } + }); + } + function me(t, e) { + var n = e.deletions; + if (n !== null) + for (var a = 0; a < n.length; a++) { + var i = n[a], + s = t, + d = e, + g = d; + t: for (; g !== null; ) { + switch (g.tag) { + case 27: + if (Jn(g.type)) { + ((zt = g.stateNode), (he = !1)); + break t; + } + break; + case 5: + ((zt = g.stateNode), (he = !1)); + break t; + case 3: + case 4: + ((zt = g.stateNode.containerInfo), (he = !0)); + break t; + } + g = g.return; + } + if (zt === null) throw Error(f(160)); + (rd(s, d, i), + (zt = null), + (he = !1), + (s = i.alternate), + s !== null && (s.return = null), + (i.return = null)); + } + if (e.subtreeFlags & 13886) for (e = e.child; e !== null; ) (hd(e, t), (e = e.sibling)); + } + var Ie = null; + function hd(t, e) { + var n = t.alternate, + a = t.flags; + switch (t.tag) { + case 0: + case 11: + case 14: + case 15: + (me(e, t), ge(t), a & 4 && (Xn(3, t, t.return), ni(3, t), Xn(5, t, t.return))); + break; + case 1: + (me(e, t), + ge(t), + a & 512 && (Kt || n === null || We(n, n.return)), + a & 64 && + on && + ((t = t.updateQueue), + t !== null && + ((a = t.callbacks), + a !== null && + ((n = t.shared.hiddenCallbacks), + (t.shared.hiddenCallbacks = n === null ? a : n.concat(a)))))); + break; + case 26: + var i = Ie; + if ((me(e, t), ge(t), a & 512 && (Kt || n === null || We(n, n.return)), a & 4)) { + var s = n !== null ? n.memoizedState : null; + if (((a = t.memoizedState), n === null)) + if (a === null) + if (t.stateNode === null) { + t: { + ((a = t.type), (n = t.memoizedProps), (i = i.ownerDocument || i)); + e: switch (a) { + case 'title': + ((s = i.getElementsByTagName('title')[0]), + (!s || + s[Ml] || + s[te] || + s.namespaceURI === 'http://www.w3.org/2000/svg' || + s.hasAttribute('itemprop')) && + ((s = i.createElement(a)), + i.head.insertBefore(s, i.querySelector('head > title'))), + le(s, a, n), + (s[te] = t), + Wt(s), + (a = s)); + break t; + case 'link': + var d = h1('link', 'href', i).get(a + (n.href || '')); + if (d) { + for (var g = 0; g < d.length; g++) + if ( + ((s = d[g]), + s.getAttribute('href') === + (n.href == null || n.href === '' ? null : n.href) && + s.getAttribute('rel') === (n.rel == null ? null : n.rel) && + s.getAttribute('title') === + (n.title == null ? null : n.title) && + s.getAttribute('crossorigin') === + (n.crossOrigin == null ? null : n.crossOrigin)) + ) { + d.splice(g, 1); + break e; + } + } + ((s = i.createElement(a)), le(s, a, n), i.head.appendChild(s)); + break; + case 'meta': + if ((d = h1('meta', 'content', i).get(a + (n.content || '')))) { + for (g = 0; g < d.length; g++) + if ( + ((s = d[g]), + s.getAttribute('content') === + (n.content == null ? null : '' + n.content) && + s.getAttribute('name') === (n.name == null ? null : n.name) && + s.getAttribute('property') === + (n.property == null ? null : n.property) && + s.getAttribute('http-equiv') === + (n.httpEquiv == null ? null : n.httpEquiv) && + s.getAttribute('charset') === + (n.charSet == null ? null : n.charSet)) + ) { + d.splice(g, 1); + break e; + } + } + ((s = i.createElement(a)), le(s, a, n), i.head.appendChild(s)); + break; + default: + throw Error(f(468, a)); + } + ((s[te] = t), Wt(s), (a = s)); + } + t.stateNode = a; + } else m1(i, t.type, t.stateNode); + else t.stateNode = d1(i, a, t.memoizedProps); + else + s !== a + ? (s === null + ? n.stateNode !== null && ((n = n.stateNode), n.parentNode.removeChild(n)) + : s.count--, + a === null ? m1(i, t.type, t.stateNode) : d1(i, a, t.memoizedProps)) + : a === null && t.stateNode !== null && Vs(t, t.memoizedProps, n.memoizedProps); + } + break; + case 27: + (me(e, t), + ge(t), + a & 512 && (Kt || n === null || We(n, n.return)), + n !== null && a & 4 && Vs(t, t.memoizedProps, n.memoizedProps)); + break; + case 5: + if ( + (me(e, t), ge(t), a & 512 && (Kt || n === null || We(n, n.return)), t.flags & 32) + ) { + i = t.stateNode; + try { + Za(i, ''); + } catch (at) { + wt(t, t.return, at); + } + } + (a & 4 && + t.stateNode != null && + ((i = t.memoizedProps), Vs(t, i, n !== null ? n.memoizedProps : i)), + a & 1024 && (Is = !0)); + break; + case 6: + if ((me(e, t), ge(t), a & 4)) { + if (t.stateNode === null) throw Error(f(162)); + ((a = t.memoizedProps), (n = t.stateNode)); + try { + n.nodeValue = a; + } catch (at) { + wt(t, t.return, at); + } + } + break; + case 3: + if ( + ((Xu = null), + (i = Ie), + (Ie = Lu(e.containerInfo)), + me(e, t), + (Ie = i), + ge(t), + a & 4 && n !== null && n.memoizedState.isDehydrated) + ) + try { + pl(e.containerInfo); + } catch (at) { + wt(t, t.return, at); + } + Is && ((Is = !1), md(t)); + break; + case 4: + ((a = Ie), (Ie = Lu(t.stateNode.containerInfo)), me(e, t), ge(t), (Ie = a)); + break; + case 12: + (me(e, t), ge(t)); + break; + case 31: + (me(e, t), + ge(t), + a & 4 && ((a = t.updateQueue), a !== null && ((t.updateQueue = null), Cu(t, a)))); + break; + case 13: + (me(e, t), + ge(t), + t.child.flags & 8192 && + (t.memoizedState !== null) != (n !== null && n.memoizedState !== null) && + (wu = pe()), + a & 4 && ((a = t.updateQueue), a !== null && ((t.updateQueue = null), Cu(t, a)))); + break; + case 22: + i = t.memoizedState !== null; + var T = n !== null && n.memoizedState !== null, + z = on, + V = Kt; + if (((on = z || i), (Kt = V || T), me(e, t), (Kt = V), (on = z), ge(t), a & 8192)) + t: for ( + e = t.stateNode, + e._visibility = i ? e._visibility & -2 : e._visibility | 1, + i && (n === null || T || on || Kt || wa(t)), + n = null, + e = t; + ; + ) { + if (e.tag === 5 || e.tag === 26) { + if (n === null) { + T = n = e; + try { + if (((s = T.stateNode), i)) + ((d = s.style), + typeof d.setProperty == 'function' + ? d.setProperty('display', 'none', 'important') + : (d.display = 'none')); + else { + g = T.stateNode; + var I = T.memoizedProps.style, + Y = I != null && I.hasOwnProperty('display') ? I.display : null; + g.style.display = + Y == null || typeof Y == 'boolean' ? '' : ('' + Y).trim(); + } + } catch (at) { + wt(T, T.return, at); + } + } + } else if (e.tag === 6) { + if (n === null) { + T = e; + try { + T.stateNode.nodeValue = i ? '' : T.memoizedProps; + } catch (at) { + wt(T, T.return, at); + } + } + } else if (e.tag === 18) { + if (n === null) { + T = e; + try { + var G = T.stateNode; + i ? a1(G, !0) : a1(T.stateNode, !1); + } catch (at) { + wt(T, T.return, at); + } + } + } else if ( + ((e.tag !== 22 && e.tag !== 23) || e.memoizedState === null || e === t) && + e.child !== null + ) { + ((e.child.return = e), (e = e.child)); + continue; + } + if (e === t) break t; + for (; e.sibling === null; ) { + if (e.return === null || e.return === t) break t; + (n === e && (n = null), (e = e.return)); + } + (n === e && (n = null), (e.sibling.return = e.return), (e = e.sibling)); + } + a & 4 && + ((a = t.updateQueue), + a !== null && + ((n = a.retryQueue), n !== null && ((a.retryQueue = null), Cu(t, n)))); + break; + case 19: + (me(e, t), + ge(t), + a & 4 && ((a = t.updateQueue), a !== null && ((t.updateQueue = null), Cu(t, a)))); + break; + case 30: + break; + case 21: + break; + default: + (me(e, t), ge(t)); + } + } + function ge(t) { + var e = t.flags; + if (e & 2) { + try { + for (var n, a = t.return; a !== null; ) { + if (id(a)) { + n = a; + break; + } + a = a.return; + } + if (n == null) throw Error(f(160)); + switch (n.tag) { + case 27: + var i = n.stateNode, + s = Zs(t); + Tu(t, s, i); + break; + case 5: + var d = n.stateNode; + n.flags & 32 && (Za(d, ''), (n.flags &= -33)); + var g = Zs(t); + Tu(t, g, d); + break; + case 3: + case 4: + var T = n.stateNode.containerInfo, + z = Zs(t); + qs(t, z, T); + break; + default: + throw Error(f(161)); + } + } catch (V) { + wt(t, t.return, V); + } + t.flags &= -3; + } + e & 4096 && (t.flags &= -4097); + } + function md(t) { + if (t.subtreeFlags & 1024) + for (t = t.child; t !== null; ) { + var e = t; + (md(e), e.tag === 5 && e.flags & 1024 && e.stateNode.reset(), (t = t.sibling)); + } + } + function hn(t, e) { + if (e.subtreeFlags & 8772) + for (e = e.child; e !== null; ) (sd(t, e.alternate, e), (e = e.sibling)); + } + function wa(t) { + for (t = t.child; t !== null; ) { + var e = t; + switch (e.tag) { + case 0: + case 11: + case 14: + case 15: + (Xn(4, e, e.return), wa(e)); + break; + case 1: + We(e, e.return); + var n = e.stateNode; + (typeof n.componentWillUnmount == 'function' && ad(e, e.return, n), wa(e)); + break; + case 27: + di(e.stateNode); + case 26: + case 5: + (We(e, e.return), wa(e)); + break; + case 22: + e.memoizedState === null && wa(e); + break; + case 30: + wa(e); + break; + default: + wa(e); + } + t = t.sibling; + } + } + function mn(t, e, n) { + for (n = n && (e.subtreeFlags & 8772) !== 0, e = e.child; e !== null; ) { + var a = e.alternate, + i = t, + s = e, + d = s.flags; + switch (s.tag) { + case 0: + case 11: + case 15: + (mn(i, s, n), ni(4, s)); + break; + case 1: + if ( + (mn(i, s, n), + (a = s), + (i = a.stateNode), + typeof i.componentDidMount == 'function') + ) + try { + i.componentDidMount(); + } catch (z) { + wt(a, a.return, z); + } + if (((a = s), (i = a.updateQueue), i !== null)) { + var g = a.stateNode; + try { + var T = i.shared.hiddenCallbacks; + if (T !== null) + for (i.shared.hiddenCallbacks = null, i = 0; i < T.length; i++) Io(T[i], g); + } catch (z) { + wt(a, a.return, z); + } + } + (n && d & 64 && nd(s), ai(s, s.return)); + break; + case 27: + ud(s); + case 26: + case 5: + (mn(i, s, n), n && a === null && d & 4 && ld(s), ai(s, s.return)); + break; + case 12: + mn(i, s, n); + break; + case 31: + (mn(i, s, n), n && d & 4 && od(i, s)); + break; + case 13: + (mn(i, s, n), n && d & 4 && dd(i, s)); + break; + case 22: + (s.memoizedState === null && mn(i, s, n), ai(s, s.return)); + break; + case 30: + break; + default: + mn(i, s, n); + } + e = e.sibling; + } + } + function Ks(t, e) { + var n = null; + (t !== null && + t.memoizedState !== null && + t.memoizedState.cachePool !== null && + (n = t.memoizedState.cachePool.pool), + (t = null), + e.memoizedState !== null && + e.memoizedState.cachePool !== null && + (t = e.memoizedState.cachePool.pool), + t !== n && (t != null && t.refCount++, n != null && Zl(n))); + } + function ks(t, e) { + ((t = null), + e.alternate !== null && (t = e.alternate.memoizedState.cache), + (e = e.memoizedState.cache), + e !== t && (e.refCount++, t != null && Zl(t))); + } + function Ke(t, e, n, a) { + if (e.subtreeFlags & 10256) + for (e = e.child; e !== null; ) (gd(t, e, n, a), (e = e.sibling)); + } + function gd(t, e, n, a) { + var i = e.flags; + switch (e.tag) { + case 0: + case 11: + case 15: + (Ke(t, e, n, a), i & 2048 && ni(9, e)); + break; + case 1: + Ke(t, e, n, a); + break; + case 3: + (Ke(t, e, n, a), + i & 2048 && + ((t = null), + e.alternate !== null && (t = e.alternate.memoizedState.cache), + (e = e.memoizedState.cache), + e !== t && (e.refCount++, t != null && Zl(t)))); + break; + case 12: + if (i & 2048) { + (Ke(t, e, n, a), (t = e.stateNode)); + try { + var s = e.memoizedProps, + d = s.id, + g = s.onPostCommit; + typeof g == 'function' && + g(d, e.alternate === null ? 'mount' : 'update', t.passiveEffectDuration, -0); + } catch (T) { + wt(e, e.return, T); + } + } else Ke(t, e, n, a); + break; + case 31: + Ke(t, e, n, a); + break; + case 13: + Ke(t, e, n, a); + break; + case 23: + break; + case 22: + ((s = e.stateNode), + (d = e.alternate), + e.memoizedState !== null + ? s._visibility & 2 + ? Ke(t, e, n, a) + : li(t, e) + : s._visibility & 2 + ? Ke(t, e, n, a) + : ((s._visibility |= 2), fl(t, e, n, a, (e.subtreeFlags & 10256) !== 0 || !1)), + i & 2048 && Ks(d, e)); + break; + case 24: + (Ke(t, e, n, a), i & 2048 && ks(e.alternate, e)); + break; + default: + Ke(t, e, n, a); + } + } + function fl(t, e, n, a, i) { + for (i = i && ((e.subtreeFlags & 10256) !== 0 || !1), e = e.child; e !== null; ) { + var s = t, + d = e, + g = n, + T = a, + z = d.flags; + switch (d.tag) { + case 0: + case 11: + case 15: + (fl(s, d, g, T, i), ni(8, d)); + break; + case 23: + break; + case 22: + var V = d.stateNode; + (d.memoizedState !== null + ? V._visibility & 2 + ? fl(s, d, g, T, i) + : li(s, d) + : ((V._visibility |= 2), fl(s, d, g, T, i)), + i && z & 2048 && Ks(d.alternate, d)); + break; + case 24: + (fl(s, d, g, T, i), i && z & 2048 && ks(d.alternate, d)); + break; + default: + fl(s, d, g, T, i); + } + e = e.sibling; + } + } + function li(t, e) { + if (e.subtreeFlags & 10256) + for (e = e.child; e !== null; ) { + var n = t, + a = e, + i = a.flags; + switch (a.tag) { + case 22: + (li(n, a), i & 2048 && Ks(a.alternate, a)); + break; + case 24: + (li(n, a), i & 2048 && ks(a.alternate, a)); + break; + default: + li(n, a); + } + e = e.sibling; + } + } + var ii = 8192; + function rl(t, e, n) { + if (t.subtreeFlags & ii) for (t = t.child; t !== null; ) (Ad(t, e, n), (t = t.sibling)); + } + function Ad(t, e, n) { + switch (t.tag) { + case 26: + (rl(t, e, n), + t.flags & ii && + t.memoizedState !== null && + xA(n, Ie, t.memoizedState, t.memoizedProps)); + break; + case 5: + rl(t, e, n); + break; + case 3: + case 4: + var a = Ie; + ((Ie = Lu(t.stateNode.containerInfo)), rl(t, e, n), (Ie = a)); + break; + case 22: + t.memoizedState === null && + ((a = t.alternate), + a !== null && a.memoizedState !== null + ? ((a = ii), (ii = 16777216), rl(t, e, n), (ii = a)) + : rl(t, e, n)); + break; + default: + rl(t, e, n); + } + } + function vd(t) { + var e = t.alternate; + if (e !== null && ((t = e.child), t !== null)) { + e.child = null; + do ((e = t.sibling), (t.sibling = null), (t = e)); + while (t !== null); + } + } + function ui(t) { + var e = t.deletions; + if ((t.flags & 16) !== 0) { + if (e !== null) + for (var n = 0; n < e.length; n++) { + var a = e[n]; + ((_t = a), Ed(a, t)); + } + vd(t); + } + if (t.subtreeFlags & 10256) for (t = t.child; t !== null; ) (yd(t), (t = t.sibling)); + } + function yd(t) { + switch (t.tag) { + case 0: + case 11: + case 15: + (ui(t), t.flags & 2048 && Xn(9, t, t.return)); + break; + case 3: + ui(t); + break; + case 12: + ui(t); + break; + case 22: + var e = t.stateNode; + t.memoizedState !== null && + e._visibility & 2 && + (t.return === null || t.return.tag !== 13) + ? ((e._visibility &= -3), Ou(t)) + : ui(t); + break; + default: + ui(t); + } + } + function Ou(t) { + var e = t.deletions; + if ((t.flags & 16) !== 0) { + if (e !== null) + for (var n = 0; n < e.length; n++) { + var a = e[n]; + ((_t = a), Ed(a, t)); + } + vd(t); + } + for (t = t.child; t !== null; ) { + switch (((e = t), e.tag)) { + case 0: + case 11: + case 15: + (Xn(8, e, e.return), Ou(e)); + break; + case 22: + ((n = e.stateNode), n._visibility & 2 && ((n._visibility &= -3), Ou(e))); + break; + default: + Ou(e); + } + t = t.sibling; + } + } + function Ed(t, e) { + for (; _t !== null; ) { + var n = _t; + switch (n.tag) { + case 0: + case 11: + case 15: + Xn(8, n, e); + break; + case 23: + case 22: + if (n.memoizedState !== null && n.memoizedState.cachePool !== null) { + var a = n.memoizedState.cachePool.pool; + a != null && a.refCount++; + } + break; + case 24: + Zl(n.memoizedState.cache); + } + if (((a = n.child), a !== null)) ((a.return = n), (_t = a)); + else + t: for (n = t; _t !== null; ) { + a = _t; + var i = a.sibling, + s = a.return; + if ((fd(a), a === n)) { + _t = null; + break t; + } + if (i !== null) { + ((i.return = s), (_t = i)); + break t; + } + _t = s; + } + } + } + var zg = { + getCacheForType: function (t) { + var e = ne(Zt), + n = e.data.get(t); + return (n === void 0 && ((n = t()), e.data.set(t, n)), n); + }, + cacheSignal: function () { + return ne(Zt).controller.signal; + }, + }, + Yg = typeof WeakMap == 'function' ? WeakMap : Map, + Ct = 0, + jt = null, + vt = null, + Et = 0, + Ot = 0, + we = null, + Vn = !1, + ol = !1, + Js = !1, + gn = 0, + Gt = 0, + Zn = 0, + Ra = 0, + Fs = 0, + Re = 0, + dl = 0, + ci = null, + Ae = null, + Ws = !1, + wu = 0, + pd = 0, + Ru = 1 / 0, + Du = null, + qn = null, + kt = 0, + In = null, + hl = null, + An = 0, + _s = 0, + Ps = null, + bd = null, + si = 0, + $s = null; + function De() { + return (Ct & 2) !== 0 && Et !== 0 ? Et & -Et : H.T !== null ? uf() : Qr(); + } + function xd() { + if (Re === 0) + if ((Et & 536870912) === 0 || bt) { + var t = zi; + ((zi <<= 1), (zi & 3932160) === 0 && (zi = 262144), (Re = t)); + } else Re = 536870912; + return ((t = Ce.current), t !== null && (t.flags |= 32), Re); + } + function ve(t, e, n) { + (((t === jt && (Ot === 2 || Ot === 9)) || t.cancelPendingCommit !== null) && + (ml(t, 0), Kn(t, Et, Re, !1)), + Dl(t, n), + ((Ct & 2) === 0 || t !== jt) && + (t === jt && ((Ct & 2) === 0 && (Ra |= n), Gt === 4 && Kn(t, Et, Re, !1)), _e(t))); + } + function Sd(t, e, n) { + if ((Ct & 6) !== 0) throw Error(f(327)); + var a = (!n && (e & 127) === 0 && (e & t.expiredLanes) === 0) || Rl(t, e), + i = a ? Xg(t, e) : ef(t, e, !0), + s = a; + do { + if (i === 0) { + ol && !a && Kn(t, e, 0, !1); + break; + } else { + if (((n = t.current.alternate), s && !Lg(n))) { + ((i = ef(t, e, !1)), (s = !1)); + continue; + } + if (i === 2) { + if (((s = e), t.errorRecoveryDisabledLanes & s)) var d = 0; + else + ((d = t.pendingLanes & -536870913), + (d = d !== 0 ? d : d & 536870912 ? 536870912 : 0)); + if (d !== 0) { + e = d; + t: { + var g = t; + i = ci; + var T = g.current.memoizedState.isDehydrated; + if ((T && (ml(g, d).flags |= 256), (d = ef(g, d, !1)), d !== 2)) { + if (Js && !T) { + ((g.errorRecoveryDisabledLanes |= s), (Ra |= s), (i = 4)); + break t; + } + ((s = Ae), + (Ae = i), + s !== null && (Ae === null ? (Ae = s) : Ae.push.apply(Ae, s))); + } + i = d; + } + if (((s = !1), i !== 2)) continue; + } + } + if (i === 1) { + (ml(t, 0), Kn(t, e, 0, !0)); + break; + } + t: { + switch (((a = t), (s = i), s)) { + case 0: + case 1: + throw Error(f(345)); + case 4: + if ((e & 4194048) !== e) break; + case 6: + Kn(a, e, Re, !Vn); + break t; + case 2: + Ae = null; + break; + case 3: + case 5: + break; + default: + throw Error(f(329)); + } + if ((e & 62914560) === e && ((i = wu + 300 - pe()), 10 < i)) { + if ((Kn(a, e, Re, !Vn), Li(a, 0, !0) !== 0)) break t; + ((An = e), + (a.timeoutHandle = t1( + Td.bind(null, a, n, Ae, Du, Ws, e, Re, Ra, dl, Vn, s, 'Throttled', -0, 0), + i + ))); + break t; + } + Td(a, n, Ae, Du, Ws, e, Re, Ra, dl, Vn, s, null, -0, 0); + } + } + break; + } while (!0); + _e(t); + } + function Td(t, e, n, a, i, s, d, g, T, z, V, I, Y, G) { + if ( + ((t.timeoutHandle = -1), (I = e.subtreeFlags), I & 8192 || (I & 16785408) === 16785408) + ) { + ((I = { + stylesheets: null, + count: 0, + imgCount: 0, + imgBytes: 0, + suspenseyImages: [], + waitingForImages: !0, + waitingForViewTransition: !1, + unsuspend: tn, + }), + Ad(e, s, I)); + var at = (s & 62914560) === s ? wu - pe() : (s & 4194048) === s ? pd - pe() : 0; + if (((at = SA(I, at)), at !== null)) { + ((An = s), + (t.cancelPendingCommit = at( + Hd.bind(null, t, e, s, n, a, i, d, g, T, V, I, null, Y, G) + )), + Kn(t, s, d, !z)); + return; + } + } + Hd(t, e, s, n, a, i, d, g, T); + } + function Lg(t) { + for (var e = t; ; ) { + var n = e.tag; + if ( + (n === 0 || n === 11 || n === 15) && + e.flags & 16384 && + ((n = e.updateQueue), n !== null && ((n = n.stores), n !== null)) + ) + for (var a = 0; a < n.length; a++) { + var i = n[a], + s = i.getSnapshot; + i = i.value; + try { + if (!Se(s(), i)) return !1; + } catch { + return !1; + } + } + if (((n = e.child), e.subtreeFlags & 16384 && n !== null)) ((n.return = e), (e = n)); + else { + if (e === t) break; + for (; e.sibling === null; ) { + if (e.return === null || e.return === t) return !0; + e = e.return; + } + ((e.sibling.return = e.return), (e = e.sibling)); + } + } + return !0; + } + function Kn(t, e, n, a) { + ((e &= ~Fs), + (e &= ~Ra), + (t.suspendedLanes |= e), + (t.pingedLanes &= ~e), + a && (t.warmLanes |= e), + (a = t.expirationTimes)); + for (var i = e; 0 < i; ) { + var s = 31 - xe(i), + d = 1 << s; + ((a[s] = -1), (i &= ~d)); + } + n !== 0 && Nr(t, n, e); + } + function Mu() { + return (Ct & 6) === 0 ? (fi(0), !1) : !0; + } + function tf() { + if (vt !== null) { + if (Ot === 0) var t = vt.return; + else ((t = vt), (ln = Ea = null), As(t), (ll = null), (Il = 0), (t = vt)); + for (; t !== null; ) (ed(t.alternate, t), (t = t.return)); + vt = null; + } + } + function ml(t, e) { + var n = t.timeoutHandle; + (n !== -1 && ((t.timeoutHandle = -1), iA(n)), + (n = t.cancelPendingCommit), + n !== null && ((t.cancelPendingCommit = null), n()), + (An = 0), + tf(), + (jt = t), + (vt = n = nn(t.current, null)), + (Et = e), + (Ot = 0), + (we = null), + (Vn = !1), + (ol = Rl(t, e)), + (Js = !1), + (dl = Re = Fs = Ra = Zn = Gt = 0), + (Ae = ci = null), + (Ws = !1), + (e & 8) !== 0 && (e |= e & 32)); + var a = t.entangledLanes; + if (a !== 0) + for (t = t.entanglements, a &= e; 0 < a; ) { + var i = 31 - xe(a), + s = 1 << i; + ((e |= t[i]), (a &= ~s)); + } + return ((gn = e), _i(), n); + } + function Cd(t, e) { + ((mt = null), + (H.H = $l), + e === al || e === iu + ? ((e = Xo()), (Ot = 3)) + : e === ls + ? ((e = Xo()), (Ot = 4)) + : (Ot = + e === Hs + ? 8 + : e !== null && typeof e == 'object' && typeof e.then == 'function' + ? 6 + : 1), + (we = e), + vt === null && ((Gt = 1), Eu(t, Be(e, t.current)))); + } + function Od() { + var t = Ce.current; + return t === null + ? !0 + : (Et & 4194048) === Et + ? Ye === null + : (Et & 62914560) === Et || (Et & 536870912) !== 0 + ? t === Ye + : !1; + } + function wd() { + var t = H.H; + return ((H.H = $l), t === null ? $l : t); + } + function Rd() { + var t = H.A; + return ((H.A = zg), t); + } + function ju() { + ((Gt = 4), + Vn || ((Et & 4194048) !== Et && Ce.current !== null) || (ol = !0), + ((Zn & 134217727) === 0 && (Ra & 134217727) === 0) || + jt === null || + Kn(jt, Et, Re, !1)); + } + function ef(t, e, n) { + var a = Ct; + Ct |= 2; + var i = wd(), + s = Rd(); + ((jt !== t || Et !== e) && ((Du = null), ml(t, e)), (e = !1)); + var d = Gt; + t: do + try { + if (Ot !== 0 && vt !== null) { + var g = vt, + T = we; + switch (Ot) { + case 8: + (tf(), (d = 6)); + break t; + case 3: + case 2: + case 9: + case 6: + Ce.current === null && (e = !0); + var z = Ot; + if (((Ot = 0), (we = null), gl(t, g, T, z), n && ol)) { + d = 0; + break t; + } + break; + default: + ((z = Ot), (Ot = 0), (we = null), gl(t, g, T, z)); + } + } + (Gg(), (d = Gt)); + break; + } catch (V) { + Cd(t, V); + } + while (!0); + return ( + e && t.shellSuspendCounter++, + (ln = Ea = null), + (Ct = a), + (H.H = i), + (H.A = s), + vt === null && ((jt = null), (Et = 0), _i()), + d + ); + } + function Gg() { + for (; vt !== null; ) Dd(vt); + } + function Xg(t, e) { + var n = Ct; + Ct |= 2; + var a = wd(), + i = Rd(); + jt !== t || Et !== e ? ((Du = null), (Ru = pe() + 500), ml(t, e)) : (ol = Rl(t, e)); + t: do + try { + if (Ot !== 0 && vt !== null) { + e = vt; + var s = we; + e: switch (Ot) { + case 1: + ((Ot = 0), (we = null), gl(t, e, s, 1)); + break; + case 2: + case 9: + if (Lo(s)) { + ((Ot = 0), (we = null), Md(e)); + break; + } + ((e = function () { + ((Ot !== 2 && Ot !== 9) || jt !== t || (Ot = 7), _e(t)); + }), + s.then(e, e)); + break t; + case 3: + Ot = 7; + break t; + case 4: + Ot = 5; + break t; + case 7: + Lo(s) + ? ((Ot = 0), (we = null), Md(e)) + : ((Ot = 0), (we = null), gl(t, e, s, 7)); + break; + case 5: + var d = null; + switch (vt.tag) { + case 26: + d = vt.memoizedState; + case 5: + case 27: + var g = vt; + if (d ? g1(d) : g.stateNode.complete) { + ((Ot = 0), (we = null)); + var T = g.sibling; + if (T !== null) vt = T; + else { + var z = g.return; + z !== null ? ((vt = z), Hu(z)) : (vt = null); + } + break e; + } + } + ((Ot = 0), (we = null), gl(t, e, s, 5)); + break; + case 6: + ((Ot = 0), (we = null), gl(t, e, s, 6)); + break; + case 8: + (tf(), (Gt = 6)); + break t; + default: + throw Error(f(462)); + } + } + Vg(); + break; + } catch (V) { + Cd(t, V); + } + while (!0); + return ( + (ln = Ea = null), + (H.H = a), + (H.A = i), + (Ct = n), + vt !== null ? 0 : ((jt = null), (Et = 0), _i(), Gt) + ); + } + function Vg() { + for (; vt !== null && !om(); ) Dd(vt); + } + function Dd(t) { + var e = $0(t.alternate, t, gn); + ((t.memoizedProps = t.pendingProps), e === null ? Hu(t) : (vt = e)); + } + function Md(t) { + var e = t, + n = e.alternate; + switch (e.tag) { + case 15: + case 0: + e = k0(n, e, e.pendingProps, e.type, void 0, Et); + break; + case 11: + e = k0(n, e, e.pendingProps, e.type.render, e.ref, Et); + break; + case 5: + As(e); + default: + (ed(n, e), (e = vt = Ro(e, gn)), (e = $0(n, e, gn))); + } + ((t.memoizedProps = t.pendingProps), e === null ? Hu(t) : (vt = e)); + } + function gl(t, e, n, a) { + ((ln = Ea = null), As(e), (ll = null), (Il = 0)); + var i = e.return; + try { + if (Mg(t, i, e, n, Et)) { + ((Gt = 1), Eu(t, Be(n, t.current)), (vt = null)); + return; + } + } catch (s) { + if (i !== null) throw ((vt = i), s); + ((Gt = 1), Eu(t, Be(n, t.current)), (vt = null)); + return; + } + e.flags & 32768 + ? (bt || a === 1 + ? (t = !0) + : ol || (Et & 536870912) !== 0 + ? (t = !1) + : ((Vn = t = !0), + (a === 2 || a === 9 || a === 3 || a === 6) && + ((a = Ce.current), a !== null && a.tag === 13 && (a.flags |= 16384))), + jd(e, t)) + : Hu(e); + } + function Hu(t) { + var e = t; + do { + if ((e.flags & 32768) !== 0) { + jd(e, Vn); + return; + } + t = e.return; + var n = Ng(e.alternate, e, gn); + if (n !== null) { + vt = n; + return; + } + if (((e = e.sibling), e !== null)) { + vt = e; + return; + } + vt = e = t; + } while (e !== null); + Gt === 0 && (Gt = 5); + } + function jd(t, e) { + do { + var n = Bg(t.alternate, t); + if (n !== null) { + ((n.flags &= 32767), (vt = n)); + return; + } + if ( + ((n = t.return), + n !== null && ((n.flags |= 32768), (n.subtreeFlags = 0), (n.deletions = null)), + !e && ((t = t.sibling), t !== null)) + ) { + vt = t; + return; + } + vt = t = n; + } while (t !== null); + ((Gt = 6), (vt = null)); + } + function Hd(t, e, n, a, i, s, d, g, T) { + t.cancelPendingCommit = null; + do Nu(); + while (kt !== 0); + if ((Ct & 6) !== 0) throw Error(f(327)); + if (e !== null) { + if (e === t.current) throw Error(f(177)); + if ( + ((s = e.lanes | e.childLanes), + (s |= Zc), + bm(t, n, s, d, g, T), + t === jt && ((vt = jt = null), (Et = 0)), + (hl = e), + (In = t), + (An = n), + (_s = s), + (Ps = i), + (bd = a), + (e.subtreeFlags & 10256) !== 0 || (e.flags & 10256) !== 0 + ? ((t.callbackNode = null), + (t.callbackPriority = 0), + Kg(Ui, function () { + return (zd(), null); + })) + : ((t.callbackNode = null), (t.callbackPriority = 0)), + (a = (e.flags & 13878) !== 0), + (e.subtreeFlags & 13878) !== 0 || a) + ) { + ((a = H.T), (H.T = null), (i = _.p), (_.p = 2), (d = Ct), (Ct |= 4)); + try { + Ug(t, e, n); + } finally { + ((Ct = d), (_.p = i), (H.T = a)); + } + } + ((kt = 1), Nd(), Bd(), Ud()); + } + } + function Nd() { + if (kt === 1) { + kt = 0; + var t = In, + e = hl, + n = (e.flags & 13878) !== 0; + if ((e.subtreeFlags & 13878) !== 0 || n) { + ((n = H.T), (H.T = null)); + var a = _.p; + _.p = 2; + var i = Ct; + Ct |= 4; + try { + hd(e, t); + var s = mf, + d = Eo(t.containerInfo), + g = s.focusedElem, + T = s.selectionRange; + if (d !== g && g && g.ownerDocument && yo(g.ownerDocument.documentElement, g)) { + if (T !== null && Yc(g)) { + var z = T.start, + V = T.end; + if ((V === void 0 && (V = z), 'selectionStart' in g)) + ((g.selectionStart = z), (g.selectionEnd = Math.min(V, g.value.length))); + else { + var I = g.ownerDocument || document, + Y = (I && I.defaultView) || window; + if (Y.getSelection) { + var G = Y.getSelection(), + at = g.textContent.length, + ft = Math.min(T.start, at), + Mt = T.end === void 0 ? ft : Math.min(T.end, at); + !G.extend && ft > Mt && ((d = Mt), (Mt = ft), (ft = d)); + var M = vo(g, ft), + w = vo(g, Mt); + if ( + M && + w && + (G.rangeCount !== 1 || + G.anchorNode !== M.node || + G.anchorOffset !== M.offset || + G.focusNode !== w.node || + G.focusOffset !== w.offset) + ) { + var Q = I.createRange(); + (Q.setStart(M.node, M.offset), + G.removeAllRanges(), + ft > Mt + ? (G.addRange(Q), G.extend(w.node, w.offset)) + : (Q.setEnd(w.node, w.offset), G.addRange(Q))); + } + } + } + } + for (I = [], G = g; (G = G.parentNode); ) + G.nodeType === 1 && + I.push({ element: G, left: G.scrollLeft, top: G.scrollTop }); + for (typeof g.focus == 'function' && g.focus(), g = 0; g < I.length; g++) { + var q = I[g]; + ((q.element.scrollLeft = q.left), (q.element.scrollTop = q.top)); + } + } + ((Iu = !!hf), (mf = hf = null)); + } finally { + ((Ct = i), (_.p = a), (H.T = n)); + } + } + ((t.current = e), (kt = 2)); + } + } + function Bd() { + if (kt === 2) { + kt = 0; + var t = In, + e = hl, + n = (e.flags & 8772) !== 0; + if ((e.subtreeFlags & 8772) !== 0 || n) { + ((n = H.T), (H.T = null)); + var a = _.p; + _.p = 2; + var i = Ct; + Ct |= 4; + try { + sd(t, e.alternate, e); + } finally { + ((Ct = i), (_.p = a), (H.T = n)); + } + } + kt = 3; + } + } + function Ud() { + if (kt === 4 || kt === 3) { + ((kt = 0), dm()); + var t = In, + e = hl, + n = An, + a = bd; + (e.subtreeFlags & 10256) !== 0 || (e.flags & 10256) !== 0 + ? (kt = 5) + : ((kt = 0), (hl = In = null), Qd(t, t.pendingLanes)); + var i = t.pendingLanes; + if ( + (i === 0 && (qn = null), + Ec(n), + (e = e.stateNode), + be && typeof be.onCommitFiberRoot == 'function') + ) + try { + be.onCommitFiberRoot(wl, e, void 0, (e.current.flags & 128) === 128); + } catch {} + if (a !== null) { + ((e = H.T), (i = _.p), (_.p = 2), (H.T = null)); + try { + for (var s = t.onRecoverableError, d = 0; d < a.length; d++) { + var g = a[d]; + s(g.value, { componentStack: g.stack }); + } + } finally { + ((H.T = e), (_.p = i)); + } + } + ((An & 3) !== 0 && Nu(), + _e(t), + (i = t.pendingLanes), + (n & 261930) !== 0 && (i & 42) !== 0 + ? t === $s + ? si++ + : ((si = 0), ($s = t)) + : (si = 0), + fi(0)); + } + } + function Qd(t, e) { + (t.pooledCacheLanes &= e) === 0 && + ((e = t.pooledCache), e != null && ((t.pooledCache = null), Zl(e))); + } + function Nu() { + return (Nd(), Bd(), Ud(), zd()); + } + function zd() { + if (kt !== 5) return !1; + var t = In, + e = _s; + _s = 0; + var n = Ec(An), + a = H.T, + i = _.p; + try { + ((_.p = 32 > n ? 32 : n), (H.T = null), (n = Ps), (Ps = null)); + var s = In, + d = An; + if (((kt = 0), (hl = In = null), (An = 0), (Ct & 6) !== 0)) throw Error(f(331)); + var g = Ct; + if ( + ((Ct |= 4), + yd(s.current), + gd(s, s.current, d, n), + (Ct = g), + fi(0, !1), + be && typeof be.onPostCommitFiberRoot == 'function') + ) + try { + be.onPostCommitFiberRoot(wl, s); + } catch {} + return !0; + } finally { + ((_.p = i), (H.T = a), Qd(t, e)); + } + } + function Yd(t, e, n) { + ((e = Be(n, e)), + (e = js(t.stateNode, e, 2)), + (t = Yn(t, e, 2)), + t !== null && (Dl(t, 2), _e(t))); + } + function wt(t, e, n) { + if (t.tag === 3) Yd(t, t, n); + else + for (; e !== null; ) { + if (e.tag === 3) { + Yd(e, t, n); + break; + } else if (e.tag === 1) { + var a = e.stateNode; + if ( + typeof e.type.getDerivedStateFromError == 'function' || + (typeof a.componentDidCatch == 'function' && (qn === null || !qn.has(a))) + ) { + ((t = Be(n, t)), + (n = L0(2)), + (a = Yn(e, n, 2)), + a !== null && (G0(n, a, e, t), Dl(a, 2), _e(a))); + break; + } + } + e = e.return; + } + } + function nf(t, e, n) { + var a = t.pingCache; + if (a === null) { + a = t.pingCache = new Yg(); + var i = new Set(); + a.set(e, i); + } else ((i = a.get(e)), i === void 0 && ((i = new Set()), a.set(e, i))); + i.has(n) || ((Js = !0), i.add(n), (t = Zg.bind(null, t, e, n)), e.then(t, t)); + } + function Zg(t, e, n) { + var a = t.pingCache; + (a !== null && a.delete(e), + (t.pingedLanes |= t.suspendedLanes & n), + (t.warmLanes &= ~n), + jt === t && + (Et & n) === n && + (Gt === 4 || (Gt === 3 && (Et & 62914560) === Et && 300 > pe() - wu) + ? (Ct & 2) === 0 && ml(t, 0) + : (Fs |= n), + dl === Et && (dl = 0)), + _e(t)); + } + function Ld(t, e) { + (e === 0 && (e = Hr()), (t = Aa(t, e)), t !== null && (Dl(t, e), _e(t))); + } + function qg(t) { + var e = t.memoizedState, + n = 0; + (e !== null && (n = e.retryLane), Ld(t, n)); + } + function Ig(t, e) { + var n = 0; + switch (t.tag) { + case 31: + case 13: + var a = t.stateNode, + i = t.memoizedState; + i !== null && (n = i.retryLane); + break; + case 19: + a = t.stateNode; + break; + case 22: + a = t.stateNode._retryCache; + break; + default: + throw Error(f(314)); + } + (a !== null && a.delete(e), Ld(t, n)); + } + function Kg(t, e) { + return gc(t, e); + } + var Bu = null, + Al = null, + af = !1, + Uu = !1, + lf = !1, + kn = 0; + function _e(t) { + (t !== Al && t.next === null && (Al === null ? (Bu = Al = t) : (Al = Al.next = t)), + (Uu = !0), + af || ((af = !0), Jg())); + } + function fi(t, e) { + if (!lf && Uu) { + lf = !0; + do + for (var n = !1, a = Bu; a !== null; ) { + if (t !== 0) { + var i = a.pendingLanes; + if (i === 0) var s = 0; + else { + var d = a.suspendedLanes, + g = a.pingedLanes; + ((s = (1 << (31 - xe(42 | t) + 1)) - 1), + (s &= i & ~(d & ~g)), + (s = s & 201326741 ? (s & 201326741) | 1 : s ? s | 2 : 0)); + } + s !== 0 && ((n = !0), Zd(a, s)); + } else + ((s = Et), + (s = Li( + a, + a === jt ? s : 0, + a.cancelPendingCommit !== null || a.timeoutHandle !== -1 + )), + (s & 3) === 0 || Rl(a, s) || ((n = !0), Zd(a, s))); + a = a.next; + } + while (n); + lf = !1; + } + } + function kg() { + Gd(); + } + function Gd() { + Uu = af = !1; + var t = 0; + kn !== 0 && lA() && (t = kn); + for (var e = pe(), n = null, a = Bu; a !== null; ) { + var i = a.next, + s = Xd(a, e); + (s === 0 + ? ((a.next = null), n === null ? (Bu = i) : (n.next = i), i === null && (Al = n)) + : ((n = a), (t !== 0 || (s & 3) !== 0) && (Uu = !0)), + (a = i)); + } + ((kt !== 0 && kt !== 5) || fi(t), kn !== 0 && (kn = 0)); + } + function Xd(t, e) { + for ( + var n = t.suspendedLanes, + a = t.pingedLanes, + i = t.expirationTimes, + s = t.pendingLanes & -62914561; + 0 < s; + ) { + var d = 31 - xe(s), + g = 1 << d, + T = i[d]; + (T === -1 + ? ((g & n) === 0 || (g & a) !== 0) && (i[d] = pm(g, e)) + : T <= e && (t.expiredLanes |= g), + (s &= ~g)); + } + if ( + ((e = jt), + (n = Et), + (n = Li(t, t === e ? n : 0, t.cancelPendingCommit !== null || t.timeoutHandle !== -1)), + (a = t.callbackNode), + n === 0 || (t === e && (Ot === 2 || Ot === 9)) || t.cancelPendingCommit !== null) + ) + return ( + a !== null && a !== null && Ac(a), + (t.callbackNode = null), + (t.callbackPriority = 0) + ); + if ((n & 3) === 0 || Rl(t, n)) { + if (((e = n & -n), e === t.callbackPriority)) return e; + switch ((a !== null && Ac(a), Ec(n))) { + case 2: + case 8: + n = Mr; + break; + case 32: + n = Ui; + break; + case 268435456: + n = jr; + break; + default: + n = Ui; + } + return ( + (a = Vd.bind(null, t)), + (n = gc(n, a)), + (t.callbackPriority = e), + (t.callbackNode = n), + e + ); + } + return ( + a !== null && a !== null && Ac(a), + (t.callbackPriority = 2), + (t.callbackNode = null), + 2 + ); + } + function Vd(t, e) { + if (kt !== 0 && kt !== 5) + return ((t.callbackNode = null), (t.callbackPriority = 0), null); + var n = t.callbackNode; + if (Nu() && t.callbackNode !== n) return null; + var a = Et; + return ( + (a = Li(t, t === jt ? a : 0, t.cancelPendingCommit !== null || t.timeoutHandle !== -1)), + a === 0 + ? null + : (Sd(t, a, e), + Xd(t, pe()), + t.callbackNode != null && t.callbackNode === n ? Vd.bind(null, t) : null) + ); + } + function Zd(t, e) { + if (Nu()) return null; + Sd(t, e, !0); + } + function Jg() { + uA(function () { + (Ct & 6) !== 0 ? gc(Dr, kg) : Gd(); + }); + } + function uf() { + if (kn === 0) { + var t = el; + (t === 0 && ((t = Qi), (Qi <<= 1), (Qi & 261888) === 0 && (Qi = 256)), (kn = t)); + } + return kn; + } + function qd(t) { + return t == null || typeof t == 'symbol' || typeof t == 'boolean' + ? null + : typeof t == 'function' + ? t + : Zi('' + t); + } + function Id(t, e) { + var n = e.ownerDocument.createElement('input'); + return ( + (n.name = e.name), + (n.value = e.value), + t.id && n.setAttribute('form', t.id), + e.parentNode.insertBefore(n, e), + (t = new FormData(t)), + n.parentNode.removeChild(n), + t + ); + } + function Fg(t, e, n, a, i) { + if (e === 'submit' && n && n.stateNode === i) { + var s = qd((i[oe] || null).action), + d = a.submitter; + d && + ((e = (e = d[oe] || null) ? qd(e.formAction) : d.getAttribute('formAction')), + e !== null && ((s = e), (d = null))); + var g = new ki('action', 'action', null, a, i); + t.push({ + event: g, + listeners: [ + { + instance: null, + listener: function () { + if (a.defaultPrevented) { + if (kn !== 0) { + var T = d ? Id(i, d) : new FormData(i); + Cs(n, { pending: !0, data: T, method: i.method, action: s }, null, T); + } + } else + typeof s == 'function' && + (g.preventDefault(), + (T = d ? Id(i, d) : new FormData(i)), + Cs(n, { pending: !0, data: T, method: i.method, action: s }, s, T)); + }, + currentTarget: i, + }, + ], + }); + } + } + for (var cf = 0; cf < Vc.length; cf++) { + var sf = Vc[cf], + Wg = sf.toLowerCase(), + _g = sf[0].toUpperCase() + sf.slice(1); + qe(Wg, 'on' + _g); + } + (qe(xo, 'onAnimationEnd'), + qe(So, 'onAnimationIteration'), + qe(To, 'onAnimationStart'), + qe('dblclick', 'onDoubleClick'), + qe('focusin', 'onFocus'), + qe('focusout', 'onBlur'), + qe(hg, 'onTransitionRun'), + qe(mg, 'onTransitionStart'), + qe(gg, 'onTransitionCancel'), + qe(Co, 'onTransitionEnd'), + Xa('onMouseEnter', ['mouseout', 'mouseover']), + Xa('onMouseLeave', ['mouseout', 'mouseover']), + Xa('onPointerEnter', ['pointerout', 'pointerover']), + Xa('onPointerLeave', ['pointerout', 'pointerover']), + da( + 'onChange', + 'change click focusin focusout input keydown keyup selectionchange'.split(' ') + ), + da( + 'onSelect', + 'focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange'.split( + ' ' + ) + ), + da('onBeforeInput', ['compositionend', 'keypress', 'textInput', 'paste']), + da( + 'onCompositionEnd', + 'compositionend focusout keydown keypress keyup mousedown'.split(' ') + ), + da( + 'onCompositionStart', + 'compositionstart focusout keydown keypress keyup mousedown'.split(' ') + ), + da( + 'onCompositionUpdate', + 'compositionupdate focusout keydown keypress keyup mousedown'.split(' ') + )); + var ri = + 'abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting'.split( + ' ' + ), + Pg = new Set( + 'beforetoggle cancel close invalid load scroll scrollend toggle'.split(' ').concat(ri) + ); + function Kd(t, e) { + e = (e & 4) !== 0; + for (var n = 0; n < t.length; n++) { + var a = t[n], + i = a.event; + a = a.listeners; + t: { + var s = void 0; + if (e) + for (var d = a.length - 1; 0 <= d; d--) { + var g = a[d], + T = g.instance, + z = g.currentTarget; + if (((g = g.listener), T !== s && i.isPropagationStopped())) break t; + ((s = g), (i.currentTarget = z)); + try { + s(i); + } catch (V) { + Wi(V); + } + ((i.currentTarget = null), (s = T)); + } + else + for (d = 0; d < a.length; d++) { + if ( + ((g = a[d]), + (T = g.instance), + (z = g.currentTarget), + (g = g.listener), + T !== s && i.isPropagationStopped()) + ) + break t; + ((s = g), (i.currentTarget = z)); + try { + s(i); + } catch (V) { + Wi(V); + } + ((i.currentTarget = null), (s = T)); + } + } + } + } + function yt(t, e) { + var n = e[pc]; + n === void 0 && (n = e[pc] = new Set()); + var a = t + '__bubble'; + n.has(a) || (kd(e, t, 2, !1), n.add(a)); + } + function ff(t, e, n) { + var a = 0; + (e && (a |= 4), kd(n, t, a, e)); + } + var Qu = '_reactListening' + Math.random().toString(36).slice(2); + function rf(t) { + if (!t[Qu]) { + ((t[Qu] = !0), + Lr.forEach(function (n) { + n !== 'selectionchange' && (Pg.has(n) || ff(n, !1, t), ff(n, !0, t)); + })); + var e = t.nodeType === 9 ? t : t.ownerDocument; + e === null || e[Qu] || ((e[Qu] = !0), ff('selectionchange', !1, e)); + } + } + function kd(t, e, n, a) { + switch (x1(e)) { + case 2: + var i = OA; + break; + case 8: + i = wA; + break; + default: + i = Cf; + } + ((n = i.bind(null, e, n, t)), + (i = void 0), + !Dc || (e !== 'touchstart' && e !== 'touchmove' && e !== 'wheel') || (i = !0), + a + ? i !== void 0 + ? t.addEventListener(e, n, { capture: !0, passive: i }) + : t.addEventListener(e, n, !0) + : i !== void 0 + ? t.addEventListener(e, n, { passive: i }) + : t.addEventListener(e, n, !1)); + } + function of(t, e, n, a, i) { + var s = a; + if ((e & 1) === 0 && (e & 2) === 0 && a !== null) + t: for (;;) { + if (a === null) return; + var d = a.tag; + if (d === 3 || d === 4) { + var g = a.stateNode.containerInfo; + if (g === i) break; + if (d === 4) + for (d = a.return; d !== null; ) { + var T = d.tag; + if ((T === 3 || T === 4) && d.stateNode.containerInfo === i) return; + d = d.return; + } + for (; g !== null; ) { + if (((d = Ya(g)), d === null)) return; + if (((T = d.tag), T === 5 || T === 6 || T === 26 || T === 27)) { + a = s = d; + continue t; + } + g = g.parentNode; + } + } + a = a.return; + } + _r(function () { + var z = s, + V = wc(n), + I = []; + t: { + var Y = Oo.get(t); + if (Y !== void 0) { + var G = ki, + at = t; + switch (t) { + case 'keypress': + if (Ii(n) === 0) break t; + case 'keydown': + case 'keyup': + G = Im; + break; + case 'focusin': + ((at = 'focus'), (G = Nc)); + break; + case 'focusout': + ((at = 'blur'), (G = Nc)); + break; + case 'beforeblur': + case 'afterblur': + G = Nc; + break; + case 'click': + if (n.button === 2) break t; + case 'auxclick': + case 'dblclick': + case 'mousedown': + case 'mousemove': + case 'mouseup': + case 'mouseout': + case 'mouseover': + case 'contextmenu': + G = to; + break; + case 'drag': + case 'dragend': + case 'dragenter': + case 'dragexit': + case 'dragleave': + case 'dragover': + case 'dragstart': + case 'drop': + G = Nm; + break; + case 'touchcancel': + case 'touchend': + case 'touchmove': + case 'touchstart': + G = Jm; + break; + case xo: + case So: + case To: + G = Qm; + break; + case Co: + G = Wm; + break; + case 'scroll': + case 'scrollend': + G = jm; + break; + case 'wheel': + G = Pm; + break; + case 'copy': + case 'cut': + case 'paste': + G = Ym; + break; + case 'gotpointercapture': + case 'lostpointercapture': + case 'pointercancel': + case 'pointerdown': + case 'pointermove': + case 'pointerout': + case 'pointerover': + case 'pointerup': + G = no; + break; + case 'toggle': + case 'beforetoggle': + G = tg; + } + var ft = (e & 4) !== 0, + Mt = !ft && (t === 'scroll' || t === 'scrollend'), + M = ft ? (Y !== null ? Y + 'Capture' : null) : Y; + ft = []; + for (var w = z, Q; w !== null; ) { + var q = w; + if ( + ((Q = q.stateNode), + (q = q.tag), + (q !== 5 && q !== 26 && q !== 27) || + Q === null || + M === null || + ((q = Hl(w, M)), q != null && ft.push(oi(w, q, Q))), + Mt) + ) + break; + w = w.return; + } + 0 < ft.length && + ((Y = new G(Y, at, null, n, V)), I.push({ event: Y, listeners: ft })); + } + } + if ((e & 7) === 0) { + t: { + if ( + ((Y = t === 'mouseover' || t === 'pointerover'), + (G = t === 'mouseout' || t === 'pointerout'), + Y && n !== Oc && (at = n.relatedTarget || n.fromElement) && (Ya(at) || at[za])) + ) + break t; + if ( + (G || Y) && + ((Y = + V.window === V + ? V + : (Y = V.ownerDocument) + ? Y.defaultView || Y.parentWindow + : window), + G + ? ((at = n.relatedTarget || n.toElement), + (G = z), + (at = at ? Ya(at) : null), + at !== null && + ((Mt = o(at)), + (ft = at.tag), + at !== Mt || (ft !== 5 && ft !== 27 && ft !== 6)) && + (at = null)) + : ((G = null), (at = z)), + G !== at) + ) { + if ( + ((ft = to), + (q = 'onMouseLeave'), + (M = 'onMouseEnter'), + (w = 'mouse'), + (t === 'pointerout' || t === 'pointerover') && + ((ft = no), (q = 'onPointerLeave'), (M = 'onPointerEnter'), (w = 'pointer')), + (Mt = G == null ? Y : jl(G)), + (Q = at == null ? Y : jl(at)), + (Y = new ft(q, w + 'leave', G, n, V)), + (Y.target = Mt), + (Y.relatedTarget = Q), + (q = null), + Ya(V) === z && + ((ft = new ft(M, w + 'enter', at, n, V)), + (ft.target = Q), + (ft.relatedTarget = Mt), + (q = ft)), + (Mt = q), + G && at) + ) + e: { + for (ft = $g, M = G, w = at, Q = 0, q = M; q; q = ft(q)) Q++; + q = 0; + for (var ut = w; ut; ut = ft(ut)) q++; + for (; 0 < Q - q; ) ((M = ft(M)), Q--); + for (; 0 < q - Q; ) ((w = ft(w)), q--); + for (; Q--; ) { + if (M === w || (w !== null && M === w.alternate)) { + ft = M; + break e; + } + ((M = ft(M)), (w = ft(w))); + } + ft = null; + } + else ft = null; + (G !== null && Jd(I, Y, G, ft, !1), + at !== null && Mt !== null && Jd(I, Mt, at, ft, !0)); + } + } + t: { + if ( + ((Y = z ? jl(z) : window), + (G = Y.nodeName && Y.nodeName.toLowerCase()), + G === 'select' || (G === 'input' && Y.type === 'file')) + ) + var St = ro; + else if (so(Y)) + if (oo) St = rg; + else { + St = sg; + var lt = cg; + } + else + ((G = Y.nodeName), + !G || + G.toLowerCase() !== 'input' || + (Y.type !== 'checkbox' && Y.type !== 'radio') + ? z && Cc(z.elementType) && (St = ro) + : (St = fg)); + if (St && (St = St(t, z))) { + fo(I, St, n, V); + break t; + } + (lt && lt(t, Y, z), + t === 'focusout' && + z && + Y.type === 'number' && + z.memoizedProps.value != null && + Tc(Y, 'number', Y.value)); + } + switch (((lt = z ? jl(z) : window), t)) { + case 'focusin': + (so(lt) || lt.contentEditable === 'true') && ((ka = lt), (Lc = z), (Gl = null)); + break; + case 'focusout': + Gl = Lc = ka = null; + break; + case 'mousedown': + Gc = !0; + break; + case 'contextmenu': + case 'mouseup': + case 'dragend': + ((Gc = !1), po(I, n, V)); + break; + case 'selectionchange': + if (dg) break; + case 'keydown': + case 'keyup': + po(I, n, V); + } + var At; + if (Uc) + t: { + switch (t) { + case 'compositionstart': + var pt = 'onCompositionStart'; + break t; + case 'compositionend': + pt = 'onCompositionEnd'; + break t; + case 'compositionupdate': + pt = 'onCompositionUpdate'; + break t; + } + pt = void 0; + } + else + Ka + ? uo(t, n) && (pt = 'onCompositionEnd') + : t === 'keydown' && n.keyCode === 229 && (pt = 'onCompositionStart'); + (pt && + (ao && + n.locale !== 'ko' && + (Ka || pt !== 'onCompositionStart' + ? pt === 'onCompositionEnd' && Ka && (At = Pr()) + : ((jn = V), (Mc = 'value' in jn ? jn.value : jn.textContent), (Ka = !0))), + (lt = zu(z, pt)), + 0 < lt.length && + ((pt = new eo(pt, t, null, n, V)), + I.push({ event: pt, listeners: lt }), + At ? (pt.data = At) : ((At = co(n)), At !== null && (pt.data = At)))), + (At = ng ? ag(t, n) : lg(t, n)) && + ((pt = zu(z, 'onBeforeInput')), + 0 < pt.length && + ((lt = new eo('onBeforeInput', 'beforeinput', null, n, V)), + I.push({ event: lt, listeners: pt }), + (lt.data = At))), + Fg(I, t, z, n, V)); + } + Kd(I, e); + }); + } + function oi(t, e, n) { + return { instance: t, listener: e, currentTarget: n }; + } + function zu(t, e) { + for (var n = e + 'Capture', a = []; t !== null; ) { + var i = t, + s = i.stateNode; + if ( + ((i = i.tag), + (i !== 5 && i !== 26 && i !== 27) || + s === null || + ((i = Hl(t, n)), + i != null && a.unshift(oi(t, i, s)), + (i = Hl(t, e)), + i != null && a.push(oi(t, i, s))), + t.tag === 3) + ) + return a; + t = t.return; + } + return []; + } + function $g(t) { + if (t === null) return null; + do t = t.return; + while (t && t.tag !== 5 && t.tag !== 27); + return t || null; + } + function Jd(t, e, n, a, i) { + for (var s = e._reactName, d = []; n !== null && n !== a; ) { + var g = n, + T = g.alternate, + z = g.stateNode; + if (((g = g.tag), T !== null && T === a)) break; + ((g !== 5 && g !== 26 && g !== 27) || + z === null || + ((T = z), + i + ? ((z = Hl(n, s)), z != null && d.unshift(oi(n, z, T))) + : i || ((z = Hl(n, s)), z != null && d.push(oi(n, z, T)))), + (n = n.return)); + } + d.length !== 0 && t.push({ event: e, listeners: d }); + } + var tA = /\r\n?/g, + eA = /\u0000|\uFFFD/g; + function Fd(t) { + return (typeof t == 'string' ? t : '' + t) + .replace( + tA, + ` +` + ) + .replace(eA, ''); + } + function Wd(t, e) { + return ((e = Fd(e)), Fd(t) === e); + } + function Dt(t, e, n, a, i, s) { + switch (n) { + case 'children': + typeof a == 'string' + ? e === 'body' || (e === 'textarea' && a === '') || Za(t, a) + : (typeof a == 'number' || typeof a == 'bigint') && e !== 'body' && Za(t, '' + a); + break; + case 'className': + Xi(t, 'class', a); + break; + case 'tabIndex': + Xi(t, 'tabindex', a); + break; + case 'dir': + case 'role': + case 'viewBox': + case 'width': + case 'height': + Xi(t, n, a); + break; + case 'style': + Fr(t, a, s); + break; + case 'data': + if (e !== 'object') { + Xi(t, 'data', a); + break; + } + case 'src': + case 'href': + if (a === '' && (e !== 'a' || n !== 'href')) { + t.removeAttribute(n); + break; + } + if ( + a == null || + typeof a == 'function' || + typeof a == 'symbol' || + typeof a == 'boolean' + ) { + t.removeAttribute(n); + break; + } + ((a = Zi('' + a)), t.setAttribute(n, a)); + break; + case 'action': + case 'formAction': + if (typeof a == 'function') { + t.setAttribute( + n, + "javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')" + ); + break; + } else + typeof s == 'function' && + (n === 'formAction' + ? (e !== 'input' && Dt(t, e, 'name', i.name, i, null), + Dt(t, e, 'formEncType', i.formEncType, i, null), + Dt(t, e, 'formMethod', i.formMethod, i, null), + Dt(t, e, 'formTarget', i.formTarget, i, null)) + : (Dt(t, e, 'encType', i.encType, i, null), + Dt(t, e, 'method', i.method, i, null), + Dt(t, e, 'target', i.target, i, null))); + if (a == null || typeof a == 'symbol' || typeof a == 'boolean') { + t.removeAttribute(n); + break; + } + ((a = Zi('' + a)), t.setAttribute(n, a)); + break; + case 'onClick': + a != null && (t.onclick = tn); + break; + case 'onScroll': + a != null && yt('scroll', t); + break; + case 'onScrollEnd': + a != null && yt('scrollend', t); + break; + case 'dangerouslySetInnerHTML': + if (a != null) { + if (typeof a != 'object' || !('__html' in a)) throw Error(f(61)); + if (((n = a.__html), n != null)) { + if (i.children != null) throw Error(f(60)); + t.innerHTML = n; + } + } + break; + case 'multiple': + t.multiple = a && typeof a != 'function' && typeof a != 'symbol'; + break; + case 'muted': + t.muted = a && typeof a != 'function' && typeof a != 'symbol'; + break; + case 'suppressContentEditableWarning': + case 'suppressHydrationWarning': + case 'defaultValue': + case 'defaultChecked': + case 'innerHTML': + case 'ref': + break; + case 'autoFocus': + break; + case 'xlinkHref': + if ( + a == null || + typeof a == 'function' || + typeof a == 'boolean' || + typeof a == 'symbol' + ) { + t.removeAttribute('xlink:href'); + break; + } + ((n = Zi('' + a)), t.setAttributeNS('http://www.w3.org/1999/xlink', 'xlink:href', n)); + break; + case 'contentEditable': + case 'spellCheck': + case 'draggable': + case 'value': + case 'autoReverse': + case 'externalResourcesRequired': + case 'focusable': + case 'preserveAlpha': + a != null && typeof a != 'function' && typeof a != 'symbol' + ? t.setAttribute(n, '' + a) + : t.removeAttribute(n); + break; + case 'inert': + case 'allowFullScreen': + case 'async': + case 'autoPlay': + case 'controls': + case 'default': + case 'defer': + case 'disabled': + case 'disablePictureInPicture': + case 'disableRemotePlayback': + case 'formNoValidate': + case 'hidden': + case 'loop': + case 'noModule': + case 'noValidate': + case 'open': + case 'playsInline': + case 'readOnly': + case 'required': + case 'reversed': + case 'scoped': + case 'seamless': + case 'itemScope': + a && typeof a != 'function' && typeof a != 'symbol' + ? t.setAttribute(n, '') + : t.removeAttribute(n); + break; + case 'capture': + case 'download': + a === !0 + ? t.setAttribute(n, '') + : a !== !1 && a != null && typeof a != 'function' && typeof a != 'symbol' + ? t.setAttribute(n, a) + : t.removeAttribute(n); + break; + case 'cols': + case 'rows': + case 'size': + case 'span': + a != null && typeof a != 'function' && typeof a != 'symbol' && !isNaN(a) && 1 <= a + ? t.setAttribute(n, a) + : t.removeAttribute(n); + break; + case 'rowSpan': + case 'start': + a == null || typeof a == 'function' || typeof a == 'symbol' || isNaN(a) + ? t.removeAttribute(n) + : t.setAttribute(n, a); + break; + case 'popover': + (yt('beforetoggle', t), yt('toggle', t), Gi(t, 'popover', a)); + break; + case 'xlinkActuate': + $e(t, 'http://www.w3.org/1999/xlink', 'xlink:actuate', a); + break; + case 'xlinkArcrole': + $e(t, 'http://www.w3.org/1999/xlink', 'xlink:arcrole', a); + break; + case 'xlinkRole': + $e(t, 'http://www.w3.org/1999/xlink', 'xlink:role', a); + break; + case 'xlinkShow': + $e(t, 'http://www.w3.org/1999/xlink', 'xlink:show', a); + break; + case 'xlinkTitle': + $e(t, 'http://www.w3.org/1999/xlink', 'xlink:title', a); + break; + case 'xlinkType': + $e(t, 'http://www.w3.org/1999/xlink', 'xlink:type', a); + break; + case 'xmlBase': + $e(t, 'http://www.w3.org/XML/1998/namespace', 'xml:base', a); + break; + case 'xmlLang': + $e(t, 'http://www.w3.org/XML/1998/namespace', 'xml:lang', a); + break; + case 'xmlSpace': + $e(t, 'http://www.w3.org/XML/1998/namespace', 'xml:space', a); + break; + case 'is': + Gi(t, 'is', a); + break; + case 'innerText': + case 'textContent': + break; + default: + (!(2 < n.length) || + (n[0] !== 'o' && n[0] !== 'O') || + (n[1] !== 'n' && n[1] !== 'N')) && + ((n = Dm.get(n) || n), Gi(t, n, a)); + } + } + function df(t, e, n, a, i, s) { + switch (n) { + case 'style': + Fr(t, a, s); + break; + case 'dangerouslySetInnerHTML': + if (a != null) { + if (typeof a != 'object' || !('__html' in a)) throw Error(f(61)); + if (((n = a.__html), n != null)) { + if (i.children != null) throw Error(f(60)); + t.innerHTML = n; + } + } + break; + case 'children': + typeof a == 'string' + ? Za(t, a) + : (typeof a == 'number' || typeof a == 'bigint') && Za(t, '' + a); + break; + case 'onScroll': + a != null && yt('scroll', t); + break; + case 'onScrollEnd': + a != null && yt('scrollend', t); + break; + case 'onClick': + a != null && (t.onclick = tn); + break; + case 'suppressContentEditableWarning': + case 'suppressHydrationWarning': + case 'innerHTML': + case 'ref': + break; + case 'innerText': + case 'textContent': + break; + default: + if (!Gr.hasOwnProperty(n)) + t: { + if ( + n[0] === 'o' && + n[1] === 'n' && + ((i = n.endsWith('Capture')), + (e = n.slice(2, i ? n.length - 7 : void 0)), + (s = t[oe] || null), + (s = s != null ? s[n] : null), + typeof s == 'function' && t.removeEventListener(e, s, i), + typeof a == 'function') + ) { + (typeof s != 'function' && + s !== null && + (n in t ? (t[n] = null) : t.hasAttribute(n) && t.removeAttribute(n)), + t.addEventListener(e, a, i)); + break t; + } + n in t ? (t[n] = a) : a === !0 ? t.setAttribute(n, '') : Gi(t, n, a); + } + } + } + function le(t, e, n) { + switch (e) { + case 'div': + case 'span': + case 'svg': + case 'path': + case 'a': + case 'g': + case 'p': + case 'li': + break; + case 'img': + (yt('error', t), yt('load', t)); + var a = !1, + i = !1, + s; + for (s in n) + if (n.hasOwnProperty(s)) { + var d = n[s]; + if (d != null) + switch (s) { + case 'src': + a = !0; + break; + case 'srcSet': + i = !0; + break; + case 'children': + case 'dangerouslySetInnerHTML': + throw Error(f(137, e)); + default: + Dt(t, e, s, d, n, null); + } + } + (i && Dt(t, e, 'srcSet', n.srcSet, n, null), a && Dt(t, e, 'src', n.src, n, null)); + return; + case 'input': + yt('invalid', t); + var g = (s = d = i = null), + T = null, + z = null; + for (a in n) + if (n.hasOwnProperty(a)) { + var V = n[a]; + if (V != null) + switch (a) { + case 'name': + i = V; + break; + case 'type': + d = V; + break; + case 'checked': + T = V; + break; + case 'defaultChecked': + z = V; + break; + case 'value': + s = V; + break; + case 'defaultValue': + g = V; + break; + case 'children': + case 'dangerouslySetInnerHTML': + if (V != null) throw Error(f(137, e)); + break; + default: + Dt(t, e, a, V, n, null); + } + } + Ir(t, s, g, T, z, d, i, !1); + return; + case 'select': + (yt('invalid', t), (a = d = s = null)); + for (i in n) + if (n.hasOwnProperty(i) && ((g = n[i]), g != null)) + switch (i) { + case 'value': + s = g; + break; + case 'defaultValue': + d = g; + break; + case 'multiple': + a = g; + default: + Dt(t, e, i, g, n, null); + } + ((e = s), + (n = d), + (t.multiple = !!a), + e != null ? Va(t, !!a, e, !1) : n != null && Va(t, !!a, n, !0)); + return; + case 'textarea': + (yt('invalid', t), (s = i = a = null)); + for (d in n) + if (n.hasOwnProperty(d) && ((g = n[d]), g != null)) + switch (d) { + case 'value': + a = g; + break; + case 'defaultValue': + i = g; + break; + case 'children': + s = g; + break; + case 'dangerouslySetInnerHTML': + if (g != null) throw Error(f(91)); + break; + default: + Dt(t, e, d, g, n, null); + } + kr(t, a, i, s); + return; + case 'option': + for (T in n) + if (n.hasOwnProperty(T) && ((a = n[T]), a != null)) + switch (T) { + case 'selected': + t.selected = a && typeof a != 'function' && typeof a != 'symbol'; + break; + default: + Dt(t, e, T, a, n, null); + } + return; + case 'dialog': + (yt('beforetoggle', t), yt('toggle', t), yt('cancel', t), yt('close', t)); + break; + case 'iframe': + case 'object': + yt('load', t); + break; + case 'video': + case 'audio': + for (a = 0; a < ri.length; a++) yt(ri[a], t); + break; + case 'image': + (yt('error', t), yt('load', t)); + break; + case 'details': + yt('toggle', t); + break; + case 'embed': + case 'source': + case 'link': + (yt('error', t), yt('load', t)); + case 'area': + case 'base': + case 'br': + case 'col': + case 'hr': + case 'keygen': + case 'meta': + case 'param': + case 'track': + case 'wbr': + case 'menuitem': + for (z in n) + if (n.hasOwnProperty(z) && ((a = n[z]), a != null)) + switch (z) { + case 'children': + case 'dangerouslySetInnerHTML': + throw Error(f(137, e)); + default: + Dt(t, e, z, a, n, null); + } + return; + default: + if (Cc(e)) { + for (V in n) + n.hasOwnProperty(V) && ((a = n[V]), a !== void 0 && df(t, e, V, a, n, void 0)); + return; + } + } + for (g in n) n.hasOwnProperty(g) && ((a = n[g]), a != null && Dt(t, e, g, a, n, null)); + } + function nA(t, e, n, a) { + switch (e) { + case 'div': + case 'span': + case 'svg': + case 'path': + case 'a': + case 'g': + case 'p': + case 'li': + break; + case 'input': + var i = null, + s = null, + d = null, + g = null, + T = null, + z = null, + V = null; + for (G in n) { + var I = n[G]; + if (n.hasOwnProperty(G) && I != null) + switch (G) { + case 'checked': + break; + case 'value': + break; + case 'defaultValue': + T = I; + default: + a.hasOwnProperty(G) || Dt(t, e, G, null, a, I); + } + } + for (var Y in a) { + var G = a[Y]; + if (((I = n[Y]), a.hasOwnProperty(Y) && (G != null || I != null))) + switch (Y) { + case 'type': + s = G; + break; + case 'name': + i = G; + break; + case 'checked': + z = G; + break; + case 'defaultChecked': + V = G; + break; + case 'value': + d = G; + break; + case 'defaultValue': + g = G; + break; + case 'children': + case 'dangerouslySetInnerHTML': + if (G != null) throw Error(f(137, e)); + break; + default: + G !== I && Dt(t, e, Y, G, a, I); + } + } + Sc(t, d, g, T, z, V, s, i); + return; + case 'select': + G = d = g = Y = null; + for (s in n) + if (((T = n[s]), n.hasOwnProperty(s) && T != null)) + switch (s) { + case 'value': + break; + case 'multiple': + G = T; + default: + a.hasOwnProperty(s) || Dt(t, e, s, null, a, T); + } + for (i in a) + if (((s = a[i]), (T = n[i]), a.hasOwnProperty(i) && (s != null || T != null))) + switch (i) { + case 'value': + Y = s; + break; + case 'defaultValue': + g = s; + break; + case 'multiple': + d = s; + default: + s !== T && Dt(t, e, i, s, a, T); + } + ((e = g), + (n = d), + (a = G), + Y != null + ? Va(t, !!n, Y, !1) + : !!a != !!n && (e != null ? Va(t, !!n, e, !0) : Va(t, !!n, n ? [] : '', !1))); + return; + case 'textarea': + G = Y = null; + for (g in n) + if (((i = n[g]), n.hasOwnProperty(g) && i != null && !a.hasOwnProperty(g))) + switch (g) { + case 'value': + break; + case 'children': + break; + default: + Dt(t, e, g, null, a, i); + } + for (d in a) + if (((i = a[d]), (s = n[d]), a.hasOwnProperty(d) && (i != null || s != null))) + switch (d) { + case 'value': + Y = i; + break; + case 'defaultValue': + G = i; + break; + case 'children': + break; + case 'dangerouslySetInnerHTML': + if (i != null) throw Error(f(91)); + break; + default: + i !== s && Dt(t, e, d, i, a, s); + } + Kr(t, Y, G); + return; + case 'option': + for (var at in n) + if (((Y = n[at]), n.hasOwnProperty(at) && Y != null && !a.hasOwnProperty(at))) + switch (at) { + case 'selected': + t.selected = !1; + break; + default: + Dt(t, e, at, null, a, Y); + } + for (T in a) + if ( + ((Y = a[T]), + (G = n[T]), + a.hasOwnProperty(T) && Y !== G && (Y != null || G != null)) + ) + switch (T) { + case 'selected': + t.selected = Y && typeof Y != 'function' && typeof Y != 'symbol'; + break; + default: + Dt(t, e, T, Y, a, G); + } + return; + case 'img': + case 'link': + case 'area': + case 'base': + case 'br': + case 'col': + case 'embed': + case 'hr': + case 'keygen': + case 'meta': + case 'param': + case 'source': + case 'track': + case 'wbr': + case 'menuitem': + for (var ft in n) + ((Y = n[ft]), + n.hasOwnProperty(ft) && + Y != null && + !a.hasOwnProperty(ft) && + Dt(t, e, ft, null, a, Y)); + for (z in a) + if ( + ((Y = a[z]), + (G = n[z]), + a.hasOwnProperty(z) && Y !== G && (Y != null || G != null)) + ) + switch (z) { + case 'children': + case 'dangerouslySetInnerHTML': + if (Y != null) throw Error(f(137, e)); + break; + default: + Dt(t, e, z, Y, a, G); + } + return; + default: + if (Cc(e)) { + for (var Mt in n) + ((Y = n[Mt]), + n.hasOwnProperty(Mt) && + Y !== void 0 && + !a.hasOwnProperty(Mt) && + df(t, e, Mt, void 0, a, Y)); + for (V in a) + ((Y = a[V]), + (G = n[V]), + !a.hasOwnProperty(V) || + Y === G || + (Y === void 0 && G === void 0) || + df(t, e, V, Y, a, G)); + return; + } + } + for (var M in n) + ((Y = n[M]), + n.hasOwnProperty(M) && Y != null && !a.hasOwnProperty(M) && Dt(t, e, M, null, a, Y)); + for (I in a) + ((Y = a[I]), + (G = n[I]), + !a.hasOwnProperty(I) || Y === G || (Y == null && G == null) || Dt(t, e, I, Y, a, G)); + } + function _d(t) { + switch (t) { + case 'css': + case 'script': + case 'font': + case 'img': + case 'image': + case 'input': + case 'link': + return !0; + default: + return !1; + } + } + function aA() { + if (typeof performance.getEntriesByType == 'function') { + for ( + var t = 0, e = 0, n = performance.getEntriesByType('resource'), a = 0; + a < n.length; + a++ + ) { + var i = n[a], + s = i.transferSize, + d = i.initiatorType, + g = i.duration; + if (s && g && _d(d)) { + for (d = 0, g = i.responseEnd, a += 1; a < n.length; a++) { + var T = n[a], + z = T.startTime; + if (z > g) break; + var V = T.transferSize, + I = T.initiatorType; + V && _d(I) && ((T = T.responseEnd), (d += V * (T < g ? 1 : (g - z) / (T - z)))); + } + if ((--a, (e += (8 * (s + d)) / (i.duration / 1e3)), t++, 10 < t)) break; + } + } + if (0 < t) return e / t / 1e6; + } + return navigator.connection && ((t = navigator.connection.downlink), typeof t == 'number') + ? t + : 5; + } + var hf = null, + mf = null; + function Yu(t) { + return t.nodeType === 9 ? t : t.ownerDocument; + } + function Pd(t) { + switch (t) { + case 'http://www.w3.org/2000/svg': + return 1; + case 'http://www.w3.org/1998/Math/MathML': + return 2; + default: + return 0; + } + } + function $d(t, e) { + if (t === 0) + switch (e) { + case 'svg': + return 1; + case 'math': + return 2; + default: + return 0; + } + return t === 1 && e === 'foreignObject' ? 0 : t; + } + function gf(t, e) { + return ( + t === 'textarea' || + t === 'noscript' || + typeof e.children == 'string' || + typeof e.children == 'number' || + typeof e.children == 'bigint' || + (typeof e.dangerouslySetInnerHTML == 'object' && + e.dangerouslySetInnerHTML !== null && + e.dangerouslySetInnerHTML.__html != null) + ); + } + var Af = null; + function lA() { + var t = window.event; + return t && t.type === 'popstate' ? (t === Af ? !1 : ((Af = t), !0)) : ((Af = null), !1); + } + var t1 = typeof setTimeout == 'function' ? setTimeout : void 0, + iA = typeof clearTimeout == 'function' ? clearTimeout : void 0, + e1 = typeof Promise == 'function' ? Promise : void 0, + uA = + typeof queueMicrotask == 'function' + ? queueMicrotask + : typeof e1 < 'u' + ? function (t) { + return e1.resolve(null).then(t).catch(cA); + } + : t1; + function cA(t) { + setTimeout(function () { + throw t; + }); + } + function Jn(t) { + return t === 'head'; + } + function n1(t, e) { + var n = e, + a = 0; + do { + var i = n.nextSibling; + if ((t.removeChild(n), i && i.nodeType === 8)) + if (((n = i.data), n === '/$' || n === '/&')) { + if (a === 0) { + (t.removeChild(i), pl(e)); + return; + } + a--; + } else if (n === '$' || n === '$?' || n === '$~' || n === '$!' || n === '&') a++; + else if (n === 'html') di(t.ownerDocument.documentElement); + else if (n === 'head') { + ((n = t.ownerDocument.head), di(n)); + for (var s = n.firstChild; s; ) { + var d = s.nextSibling, + g = s.nodeName; + (s[Ml] || + g === 'SCRIPT' || + g === 'STYLE' || + (g === 'LINK' && s.rel.toLowerCase() === 'stylesheet') || + n.removeChild(s), + (s = d)); + } + } else n === 'body' && di(t.ownerDocument.body); + n = i; + } while (n); + pl(e); + } + function a1(t, e) { + var n = t; + t = 0; + do { + var a = n.nextSibling; + if ( + (n.nodeType === 1 + ? e + ? ((n._stashedDisplay = n.style.display), (n.style.display = 'none')) + : ((n.style.display = n._stashedDisplay || ''), + n.getAttribute('style') === '' && n.removeAttribute('style')) + : n.nodeType === 3 && + (e + ? ((n._stashedText = n.nodeValue), (n.nodeValue = '')) + : (n.nodeValue = n._stashedText || '')), + a && a.nodeType === 8) + ) + if (((n = a.data), n === '/$')) { + if (t === 0) break; + t--; + } else (n !== '$' && n !== '$?' && n !== '$~' && n !== '$!') || t++; + n = a; + } while (n); + } + function vf(t) { + var e = t.firstChild; + for (e && e.nodeType === 10 && (e = e.nextSibling); e; ) { + var n = e; + switch (((e = e.nextSibling), n.nodeName)) { + case 'HTML': + case 'HEAD': + case 'BODY': + (vf(n), bc(n)); + continue; + case 'SCRIPT': + case 'STYLE': + continue; + case 'LINK': + if (n.rel.toLowerCase() === 'stylesheet') continue; + } + t.removeChild(n); + } + } + function sA(t, e, n, a) { + for (; t.nodeType === 1; ) { + var i = n; + if (t.nodeName.toLowerCase() !== e.toLowerCase()) { + if (!a && (t.nodeName !== 'INPUT' || t.type !== 'hidden')) break; + } else if (a) { + if (!t[Ml]) + switch (e) { + case 'meta': + if (!t.hasAttribute('itemprop')) break; + return t; + case 'link': + if ( + ((s = t.getAttribute('rel')), + s === 'stylesheet' && t.hasAttribute('data-precedence')) + ) + break; + if ( + s !== i.rel || + t.getAttribute('href') !== + (i.href == null || i.href === '' ? null : i.href) || + t.getAttribute('crossorigin') !== + (i.crossOrigin == null ? null : i.crossOrigin) || + t.getAttribute('title') !== (i.title == null ? null : i.title) + ) + break; + return t; + case 'style': + if (t.hasAttribute('data-precedence')) break; + return t; + case 'script': + if ( + ((s = t.getAttribute('src')), + (s !== (i.src == null ? null : i.src) || + t.getAttribute('type') !== (i.type == null ? null : i.type) || + t.getAttribute('crossorigin') !== + (i.crossOrigin == null ? null : i.crossOrigin)) && + s && + t.hasAttribute('async') && + !t.hasAttribute('itemprop')) + ) + break; + return t; + default: + return t; + } + } else if (e === 'input' && t.type === 'hidden') { + var s = i.name == null ? null : '' + i.name; + if (i.type === 'hidden' && t.getAttribute('name') === s) return t; + } else return t; + if (((t = Le(t.nextSibling)), t === null)) break; + } + return null; + } + function fA(t, e, n) { + if (e === '') return null; + for (; t.nodeType !== 3; ) + if ( + ((t.nodeType !== 1 || t.nodeName !== 'INPUT' || t.type !== 'hidden') && !n) || + ((t = Le(t.nextSibling)), t === null) + ) + return null; + return t; + } + function l1(t, e) { + for (; t.nodeType !== 8; ) + if ( + ((t.nodeType !== 1 || t.nodeName !== 'INPUT' || t.type !== 'hidden') && !e) || + ((t = Le(t.nextSibling)), t === null) + ) + return null; + return t; + } + function yf(t) { + return t.data === '$?' || t.data === '$~'; + } + function Ef(t) { + return t.data === '$!' || (t.data === '$?' && t.ownerDocument.readyState !== 'loading'); + } + function rA(t, e) { + var n = t.ownerDocument; + if (t.data === '$~') t._reactRetry = e; + else if (t.data !== '$?' || n.readyState !== 'loading') e(); + else { + var a = function () { + (e(), n.removeEventListener('DOMContentLoaded', a)); + }; + (n.addEventListener('DOMContentLoaded', a), (t._reactRetry = a)); + } + } + function Le(t) { + for (; t != null; t = t.nextSibling) { + var e = t.nodeType; + if (e === 1 || e === 3) break; + if (e === 8) { + if ( + ((e = t.data), + e === '$' || + e === '$!' || + e === '$?' || + e === '$~' || + e === '&' || + e === 'F!' || + e === 'F') + ) + break; + if (e === '/$' || e === '/&') return null; + } + } + return t; + } + var pf = null; + function i1(t) { + t = t.nextSibling; + for (var e = 0; t; ) { + if (t.nodeType === 8) { + var n = t.data; + if (n === '/$' || n === '/&') { + if (e === 0) return Le(t.nextSibling); + e--; + } else (n !== '$' && n !== '$!' && n !== '$?' && n !== '$~' && n !== '&') || e++; + } + t = t.nextSibling; + } + return null; + } + function u1(t) { + t = t.previousSibling; + for (var e = 0; t; ) { + if (t.nodeType === 8) { + var n = t.data; + if (n === '$' || n === '$!' || n === '$?' || n === '$~' || n === '&') { + if (e === 0) return t; + e--; + } else (n !== '/$' && n !== '/&') || e++; + } + t = t.previousSibling; + } + return null; + } + function c1(t, e, n) { + switch (((e = Yu(n)), t)) { + case 'html': + if (((t = e.documentElement), !t)) throw Error(f(452)); + return t; + case 'head': + if (((t = e.head), !t)) throw Error(f(453)); + return t; + case 'body': + if (((t = e.body), !t)) throw Error(f(454)); + return t; + default: + throw Error(f(451)); + } + } + function di(t) { + for (var e = t.attributes; e.length; ) t.removeAttributeNode(e[0]); + bc(t); + } + var Ge = new Map(), + s1 = new Set(); + function Lu(t) { + return typeof t.getRootNode == 'function' + ? t.getRootNode() + : t.nodeType === 9 + ? t + : t.ownerDocument; + } + var vn = _.d; + _.d = { f: oA, r: dA, D: hA, C: mA, L: gA, m: AA, X: yA, S: vA, M: EA }; + function oA() { + var t = vn.f(), + e = Mu(); + return t || e; + } + function dA(t) { + var e = La(t); + e !== null && e.tag === 5 && e.type === 'form' ? C0(e) : vn.r(t); + } + var vl = typeof document > 'u' ? null : document; + function f1(t, e, n) { + var a = vl; + if (a && typeof e == 'string' && e) { + var i = He(e); + ((i = 'link[rel="' + t + '"][href="' + i + '"]'), + typeof n == 'string' && (i += '[crossorigin="' + n + '"]'), + s1.has(i) || + (s1.add(i), + (t = { rel: t, crossOrigin: n, href: e }), + a.querySelector(i) === null && + ((e = a.createElement('link')), le(e, 'link', t), Wt(e), a.head.appendChild(e)))); + } + } + function hA(t) { + (vn.D(t), f1('dns-prefetch', t, null)); + } + function mA(t, e) { + (vn.C(t, e), f1('preconnect', t, e)); + } + function gA(t, e, n) { + vn.L(t, e, n); + var a = vl; + if (a && t && e) { + var i = 'link[rel="preload"][as="' + He(e) + '"]'; + e === 'image' && n && n.imageSrcSet + ? ((i += '[imagesrcset="' + He(n.imageSrcSet) + '"]'), + typeof n.imageSizes == 'string' && (i += '[imagesizes="' + He(n.imageSizes) + '"]')) + : (i += '[href="' + He(t) + '"]'); + var s = i; + switch (e) { + case 'style': + s = yl(t); + break; + case 'script': + s = El(t); + } + Ge.has(s) || + ((t = S( + { rel: 'preload', href: e === 'image' && n && n.imageSrcSet ? void 0 : t, as: e }, + n + )), + Ge.set(s, t), + a.querySelector(i) !== null || + (e === 'style' && a.querySelector(hi(s))) || + (e === 'script' && a.querySelector(mi(s))) || + ((e = a.createElement('link')), le(e, 'link', t), Wt(e), a.head.appendChild(e))); + } + } + function AA(t, e) { + vn.m(t, e); + var n = vl; + if (n && t) { + var a = e && typeof e.as == 'string' ? e.as : 'script', + i = 'link[rel="modulepreload"][as="' + He(a) + '"][href="' + He(t) + '"]', + s = i; + switch (a) { + case 'audioworklet': + case 'paintworklet': + case 'serviceworker': + case 'sharedworker': + case 'worker': + case 'script': + s = El(t); + } + if ( + !Ge.has(s) && + ((t = S({ rel: 'modulepreload', href: t }, e)), + Ge.set(s, t), + n.querySelector(i) === null) + ) { + switch (a) { + case 'audioworklet': + case 'paintworklet': + case 'serviceworker': + case 'sharedworker': + case 'worker': + case 'script': + if (n.querySelector(mi(s))) return; + } + ((a = n.createElement('link')), le(a, 'link', t), Wt(a), n.head.appendChild(a)); + } + } + } + function vA(t, e, n) { + vn.S(t, e, n); + var a = vl; + if (a && t) { + var i = Ga(a).hoistableStyles, + s = yl(t); + e = e || 'default'; + var d = i.get(s); + if (!d) { + var g = { loading: 0, preload: null }; + if ((d = a.querySelector(hi(s)))) g.loading = 5; + else { + ((t = S({ rel: 'stylesheet', href: t, 'data-precedence': e }, n)), + (n = Ge.get(s)) && bf(t, n)); + var T = (d = a.createElement('link')); + (Wt(T), + le(T, 'link', t), + (T._p = new Promise(function (z, V) { + ((T.onload = z), (T.onerror = V)); + })), + T.addEventListener('load', function () { + g.loading |= 1; + }), + T.addEventListener('error', function () { + g.loading |= 2; + }), + (g.loading |= 4), + Gu(d, e, a)); + } + ((d = { type: 'stylesheet', instance: d, count: 1, state: g }), i.set(s, d)); + } + } + } + function yA(t, e) { + vn.X(t, e); + var n = vl; + if (n && t) { + var a = Ga(n).hoistableScripts, + i = El(t), + s = a.get(i); + s || + ((s = n.querySelector(mi(i))), + s || + ((t = S({ src: t, async: !0 }, e)), + (e = Ge.get(i)) && xf(t, e), + (s = n.createElement('script')), + Wt(s), + le(s, 'link', t), + n.head.appendChild(s)), + (s = { type: 'script', instance: s, count: 1, state: null }), + a.set(i, s)); + } + } + function EA(t, e) { + vn.M(t, e); + var n = vl; + if (n && t) { + var a = Ga(n).hoistableScripts, + i = El(t), + s = a.get(i); + s || + ((s = n.querySelector(mi(i))), + s || + ((t = S({ src: t, async: !0, type: 'module' }, e)), + (e = Ge.get(i)) && xf(t, e), + (s = n.createElement('script')), + Wt(s), + le(s, 'link', t), + n.head.appendChild(s)), + (s = { type: 'script', instance: s, count: 1, state: null }), + a.set(i, s)); + } + } + function r1(t, e, n, a) { + var i = (i = ot.current) ? Lu(i) : null; + if (!i) throw Error(f(446)); + switch (t) { + case 'meta': + case 'title': + return null; + case 'style': + return typeof n.precedence == 'string' && typeof n.href == 'string' + ? ((e = yl(n.href)), + (n = Ga(i).hoistableStyles), + (a = n.get(e)), + a || + ((a = { type: 'style', instance: null, count: 0, state: null }), n.set(e, a)), + a) + : { type: 'void', instance: null, count: 0, state: null }; + case 'link': + if ( + n.rel === 'stylesheet' && + typeof n.href == 'string' && + typeof n.precedence == 'string' + ) { + t = yl(n.href); + var s = Ga(i).hoistableStyles, + d = s.get(t); + if ( + (d || + ((i = i.ownerDocument || i), + (d = { + type: 'stylesheet', + instance: null, + count: 0, + state: { loading: 0, preload: null }, + }), + s.set(t, d), + (s = i.querySelector(hi(t))) && + !s._p && + ((d.instance = s), (d.state.loading = 5)), + Ge.has(t) || + ((n = { + rel: 'preload', + as: 'style', + href: n.href, + crossOrigin: n.crossOrigin, + integrity: n.integrity, + media: n.media, + hrefLang: n.hrefLang, + referrerPolicy: n.referrerPolicy, + }), + Ge.set(t, n), + s || pA(i, t, n, d.state))), + e && a === null) + ) + throw Error(f(528, '')); + return d; + } + if (e && a !== null) throw Error(f(529, '')); + return null; + case 'script': + return ( + (e = n.async), + (n = n.src), + typeof n == 'string' && e && typeof e != 'function' && typeof e != 'symbol' + ? ((e = El(n)), + (n = Ga(i).hoistableScripts), + (a = n.get(e)), + a || + ((a = { type: 'script', instance: null, count: 0, state: null }), + n.set(e, a)), + a) + : { type: 'void', instance: null, count: 0, state: null } + ); + default: + throw Error(f(444, t)); + } + } + function yl(t) { + return 'href="' + He(t) + '"'; + } + function hi(t) { + return 'link[rel="stylesheet"][' + t + ']'; + } + function o1(t) { + return S({}, t, { 'data-precedence': t.precedence, precedence: null }); + } + function pA(t, e, n, a) { + t.querySelector('link[rel="preload"][as="style"][' + e + ']') + ? (a.loading = 1) + : ((e = t.createElement('link')), + (a.preload = e), + e.addEventListener('load', function () { + return (a.loading |= 1); + }), + e.addEventListener('error', function () { + return (a.loading |= 2); + }), + le(e, 'link', n), + Wt(e), + t.head.appendChild(e)); + } + function El(t) { + return '[src="' + He(t) + '"]'; + } + function mi(t) { + return 'script[async]' + t; + } + function d1(t, e, n) { + if ((e.count++, e.instance === null)) + switch (e.type) { + case 'style': + var a = t.querySelector('style[data-href~="' + He(n.href) + '"]'); + if (a) return ((e.instance = a), Wt(a), a); + var i = S({}, n, { + 'data-href': n.href, + 'data-precedence': n.precedence, + href: null, + precedence: null, + }); + return ( + (a = (t.ownerDocument || t).createElement('style')), + Wt(a), + le(a, 'style', i), + Gu(a, n.precedence, t), + (e.instance = a) + ); + case 'stylesheet': + i = yl(n.href); + var s = t.querySelector(hi(i)); + if (s) return ((e.state.loading |= 4), (e.instance = s), Wt(s), s); + ((a = o1(n)), + (i = Ge.get(i)) && bf(a, i), + (s = (t.ownerDocument || t).createElement('link')), + Wt(s)); + var d = s; + return ( + (d._p = new Promise(function (g, T) { + ((d.onload = g), (d.onerror = T)); + })), + le(s, 'link', a), + (e.state.loading |= 4), + Gu(s, n.precedence, t), + (e.instance = s) + ); + case 'script': + return ( + (s = El(n.src)), + (i = t.querySelector(mi(s))) + ? ((e.instance = i), Wt(i), i) + : ((a = n), + (i = Ge.get(s)) && ((a = S({}, n)), xf(a, i)), + (t = t.ownerDocument || t), + (i = t.createElement('script')), + Wt(i), + le(i, 'link', a), + t.head.appendChild(i), + (e.instance = i)) + ); + case 'void': + return null; + default: + throw Error(f(443, e.type)); + } + else + e.type === 'stylesheet' && + (e.state.loading & 4) === 0 && + ((a = e.instance), (e.state.loading |= 4), Gu(a, n.precedence, t)); + return e.instance; + } + function Gu(t, e, n) { + for ( + var a = n.querySelectorAll( + 'link[rel="stylesheet"][data-precedence],style[data-precedence]' + ), + i = a.length ? a[a.length - 1] : null, + s = i, + d = 0; + d < a.length; + d++ + ) { + var g = a[d]; + if (g.dataset.precedence === e) s = g; + else if (s !== i) break; + } + s + ? s.parentNode.insertBefore(t, s.nextSibling) + : ((e = n.nodeType === 9 ? n.head : n), e.insertBefore(t, e.firstChild)); + } + function bf(t, e) { + (t.crossOrigin == null && (t.crossOrigin = e.crossOrigin), + t.referrerPolicy == null && (t.referrerPolicy = e.referrerPolicy), + t.title == null && (t.title = e.title)); + } + function xf(t, e) { + (t.crossOrigin == null && (t.crossOrigin = e.crossOrigin), + t.referrerPolicy == null && (t.referrerPolicy = e.referrerPolicy), + t.integrity == null && (t.integrity = e.integrity)); + } + var Xu = null; + function h1(t, e, n) { + if (Xu === null) { + var a = new Map(), + i = (Xu = new Map()); + i.set(n, a); + } else ((i = Xu), (a = i.get(n)), a || ((a = new Map()), i.set(n, a))); + if (a.has(t)) return a; + for (a.set(t, null), n = n.getElementsByTagName(t), i = 0; i < n.length; i++) { + var s = n[i]; + if ( + !(s[Ml] || s[te] || (t === 'link' && s.getAttribute('rel') === 'stylesheet')) && + s.namespaceURI !== 'http://www.w3.org/2000/svg' + ) { + var d = s.getAttribute(e) || ''; + d = t + d; + var g = a.get(d); + g ? g.push(s) : a.set(d, [s]); + } + } + return a; + } + function m1(t, e, n) { + ((t = t.ownerDocument || t), + t.head.insertBefore(n, e === 'title' ? t.querySelector('head > title') : null)); + } + function bA(t, e, n) { + if (n === 1 || e.itemProp != null) return !1; + switch (t) { + case 'meta': + case 'title': + return !0; + case 'style': + if (typeof e.precedence != 'string' || typeof e.href != 'string' || e.href === '') + break; + return !0; + case 'link': + if ( + typeof e.rel != 'string' || + typeof e.href != 'string' || + e.href === '' || + e.onLoad || + e.onError + ) + break; + switch (e.rel) { + case 'stylesheet': + return ((t = e.disabled), typeof e.precedence == 'string' && t == null); + default: + return !0; + } + case 'script': + if ( + e.async && + typeof e.async != 'function' && + typeof e.async != 'symbol' && + !e.onLoad && + !e.onError && + e.src && + typeof e.src == 'string' + ) + return !0; + } + return !1; + } + function g1(t) { + return !(t.type === 'stylesheet' && (t.state.loading & 3) === 0); + } + function xA(t, e, n, a) { + if ( + n.type === 'stylesheet' && + (typeof a.media != 'string' || matchMedia(a.media).matches !== !1) && + (n.state.loading & 4) === 0 + ) { + if (n.instance === null) { + var i = yl(a.href), + s = e.querySelector(hi(i)); + if (s) { + ((e = s._p), + e !== null && + typeof e == 'object' && + typeof e.then == 'function' && + (t.count++, (t = Vu.bind(t)), e.then(t, t)), + (n.state.loading |= 4), + (n.instance = s), + Wt(s)); + return; + } + ((s = e.ownerDocument || e), + (a = o1(a)), + (i = Ge.get(i)) && bf(a, i), + (s = s.createElement('link')), + Wt(s)); + var d = s; + ((d._p = new Promise(function (g, T) { + ((d.onload = g), (d.onerror = T)); + })), + le(s, 'link', a), + (n.instance = s)); + } + (t.stylesheets === null && (t.stylesheets = new Map()), + t.stylesheets.set(n, e), + (e = n.state.preload) && + (n.state.loading & 3) === 0 && + (t.count++, + (n = Vu.bind(t)), + e.addEventListener('load', n), + e.addEventListener('error', n))); + } + } + var Sf = 0; + function SA(t, e) { + return ( + t.stylesheets && t.count === 0 && qu(t, t.stylesheets), + 0 < t.count || 0 < t.imgCount + ? function (n) { + var a = setTimeout(function () { + if ((t.stylesheets && qu(t, t.stylesheets), t.unsuspend)) { + var s = t.unsuspend; + ((t.unsuspend = null), s()); + } + }, 6e4 + e); + 0 < t.imgBytes && Sf === 0 && (Sf = 62500 * aA()); + var i = setTimeout( + function () { + if ( + ((t.waitingForImages = !1), + t.count === 0 && (t.stylesheets && qu(t, t.stylesheets), t.unsuspend)) + ) { + var s = t.unsuspend; + ((t.unsuspend = null), s()); + } + }, + (t.imgBytes > Sf ? 50 : 800) + e + ); + return ( + (t.unsuspend = n), + function () { + ((t.unsuspend = null), clearTimeout(a), clearTimeout(i)); + } + ); + } + : null + ); + } + function Vu() { + if ((this.count--, this.count === 0 && (this.imgCount === 0 || !this.waitingForImages))) { + if (this.stylesheets) qu(this, this.stylesheets); + else if (this.unsuspend) { + var t = this.unsuspend; + ((this.unsuspend = null), t()); + } + } + } + var Zu = null; + function qu(t, e) { + ((t.stylesheets = null), + t.unsuspend !== null && + (t.count++, (Zu = new Map()), e.forEach(TA, t), (Zu = null), Vu.call(t))); + } + function TA(t, e) { + if (!(e.state.loading & 4)) { + var n = Zu.get(t); + if (n) var a = n.get(null); + else { + ((n = new Map()), Zu.set(t, n)); + for ( + var i = t.querySelectorAll('link[data-precedence],style[data-precedence]'), s = 0; + s < i.length; + s++ + ) { + var d = i[s]; + (d.nodeName === 'LINK' || d.getAttribute('media') !== 'not all') && + (n.set(d.dataset.precedence, d), (a = d)); + } + a && n.set(null, a); + } + ((i = e.instance), + (d = i.getAttribute('data-precedence')), + (s = n.get(d) || a), + s === a && n.set(null, i), + n.set(d, i), + this.count++, + (a = Vu.bind(this)), + i.addEventListener('load', a), + i.addEventListener('error', a), + s + ? s.parentNode.insertBefore(i, s.nextSibling) + : ((t = t.nodeType === 9 ? t.head : t), t.insertBefore(i, t.firstChild)), + (e.state.loading |= 4)); + } + } + var gi = { + $$typeof: U, + Provider: null, + Consumer: null, + _currentValue: $, + _currentValue2: $, + _threadCount: 0, + }; + function CA(t, e, n, a, i, s, d, g, T) { + ((this.tag = 1), + (this.containerInfo = t), + (this.pingCache = this.current = this.pendingChildren = null), + (this.timeoutHandle = -1), + (this.callbackNode = + this.next = + this.pendingContext = + this.context = + this.cancelPendingCommit = + null), + (this.callbackPriority = 0), + (this.expirationTimes = vc(-1)), + (this.entangledLanes = + this.shellSuspendCounter = + this.errorRecoveryDisabledLanes = + this.expiredLanes = + this.warmLanes = + this.pingedLanes = + this.suspendedLanes = + this.pendingLanes = + 0), + (this.entanglements = vc(0)), + (this.hiddenUpdates = vc(null)), + (this.identifierPrefix = a), + (this.onUncaughtError = i), + (this.onCaughtError = s), + (this.onRecoverableError = d), + (this.pooledCache = null), + (this.pooledCacheLanes = 0), + (this.formState = T), + (this.incompleteTransitions = new Map())); + } + function A1(t, e, n, a, i, s, d, g, T, z, V, I) { + return ( + (t = new CA(t, e, n, d, T, z, V, I, g)), + (e = 1), + s === !0 && (e |= 24), + (s = Te(3, null, null, e)), + (t.current = s), + (s.stateNode = t), + (e = es()), + e.refCount++, + (t.pooledCache = e), + e.refCount++, + (s.memoizedState = { element: a, isDehydrated: n, cache: e }), + is(s), + t + ); + } + function v1(t) { + return t ? ((t = Wa), t) : Wa; + } + function y1(t, e, n, a, i, s) { + ((i = v1(i)), + a.context === null ? (a.context = i) : (a.pendingContext = i), + (a = zn(e)), + (a.payload = { element: n }), + (s = s === void 0 ? null : s), + s !== null && (a.callback = s), + (n = Yn(t, a, e)), + n !== null && (ve(n, t, e), kl(n, t, e))); + } + function E1(t, e) { + if (((t = t.memoizedState), t !== null && t.dehydrated !== null)) { + var n = t.retryLane; + t.retryLane = n !== 0 && n < e ? n : e; + } + } + function Tf(t, e) { + (E1(t, e), (t = t.alternate) && E1(t, e)); + } + function p1(t) { + if (t.tag === 13 || t.tag === 31) { + var e = Aa(t, 67108864); + (e !== null && ve(e, t, 67108864), Tf(t, 67108864)); + } + } + function b1(t) { + if (t.tag === 13 || t.tag === 31) { + var e = De(); + e = yc(e); + var n = Aa(t, e); + (n !== null && ve(n, t, e), Tf(t, e)); + } + } + var Iu = !0; + function OA(t, e, n, a) { + var i = H.T; + H.T = null; + var s = _.p; + try { + ((_.p = 2), Cf(t, e, n, a)); + } finally { + ((_.p = s), (H.T = i)); + } + } + function wA(t, e, n, a) { + var i = H.T; + H.T = null; + var s = _.p; + try { + ((_.p = 8), Cf(t, e, n, a)); + } finally { + ((_.p = s), (H.T = i)); + } + } + function Cf(t, e, n, a) { + if (Iu) { + var i = Of(a); + if (i === null) (of(t, e, a, Ku, n), S1(t, a)); + else if (DA(i, t, e, n, a)) a.stopPropagation(); + else if ((S1(t, a), e & 4 && -1 < RA.indexOf(t))) { + for (; i !== null; ) { + var s = La(i); + if (s !== null) + switch (s.tag) { + case 3: + if (((s = s.stateNode), s.current.memoizedState.isDehydrated)) { + var d = oa(s.pendingLanes); + if (d !== 0) { + var g = s; + for (g.pendingLanes |= 2, g.entangledLanes |= 2; d; ) { + var T = 1 << (31 - xe(d)); + ((g.entanglements[1] |= T), (d &= ~T)); + } + (_e(s), (Ct & 6) === 0 && ((Ru = pe() + 500), fi(0))); + } + } + break; + case 31: + case 13: + ((g = Aa(s, 2)), g !== null && ve(g, s, 2), Mu(), Tf(s, 2)); + } + if (((s = Of(a)), s === null && of(t, e, a, Ku, n), s === i)) break; + i = s; + } + i !== null && a.stopPropagation(); + } else of(t, e, a, null, n); + } + } + function Of(t) { + return ((t = wc(t)), wf(t)); + } + var Ku = null; + function wf(t) { + if (((Ku = null), (t = Ya(t)), t !== null)) { + var e = o(t); + if (e === null) t = null; + else { + var n = e.tag; + if (n === 13) { + if (((t = h(e)), t !== null)) return t; + t = null; + } else if (n === 31) { + if (((t = v(e)), t !== null)) return t; + t = null; + } else if (n === 3) { + if (e.stateNode.current.memoizedState.isDehydrated) + return e.tag === 3 ? e.stateNode.containerInfo : null; + t = null; + } else e !== t && (t = null); + } + } + return ((Ku = t), null); + } + function x1(t) { + switch (t) { + case 'beforetoggle': + case 'cancel': + case 'click': + case 'close': + case 'contextmenu': + case 'copy': + case 'cut': + case 'auxclick': + case 'dblclick': + case 'dragend': + case 'dragstart': + case 'drop': + case 'focusin': + case 'focusout': + case 'input': + case 'invalid': + case 'keydown': + case 'keypress': + case 'keyup': + case 'mousedown': + case 'mouseup': + case 'paste': + case 'pause': + case 'play': + case 'pointercancel': + case 'pointerdown': + case 'pointerup': + case 'ratechange': + case 'reset': + case 'resize': + case 'seeked': + case 'submit': + case 'toggle': + case 'touchcancel': + case 'touchend': + case 'touchstart': + case 'volumechange': + case 'change': + case 'selectionchange': + case 'textInput': + case 'compositionstart': + case 'compositionend': + case 'compositionupdate': + case 'beforeblur': + case 'afterblur': + case 'beforeinput': + case 'blur': + case 'fullscreenchange': + case 'focus': + case 'hashchange': + case 'popstate': + case 'select': + case 'selectstart': + return 2; + case 'drag': + case 'dragenter': + case 'dragexit': + case 'dragleave': + case 'dragover': + case 'mousemove': + case 'mouseout': + case 'mouseover': + case 'pointermove': + case 'pointerout': + case 'pointerover': + case 'scroll': + case 'touchmove': + case 'wheel': + case 'mouseenter': + case 'mouseleave': + case 'pointerenter': + case 'pointerleave': + return 8; + case 'message': + switch (hm()) { + case Dr: + return 2; + case Mr: + return 8; + case Ui: + case mm: + return 32; + case jr: + return 268435456; + default: + return 32; + } + default: + return 32; + } + } + var Rf = !1, + Fn = null, + Wn = null, + _n = null, + Ai = new Map(), + vi = new Map(), + Pn = [], + RA = + 'mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset'.split( + ' ' + ); + function S1(t, e) { + switch (t) { + case 'focusin': + case 'focusout': + Fn = null; + break; + case 'dragenter': + case 'dragleave': + Wn = null; + break; + case 'mouseover': + case 'mouseout': + _n = null; + break; + case 'pointerover': + case 'pointerout': + Ai.delete(e.pointerId); + break; + case 'gotpointercapture': + case 'lostpointercapture': + vi.delete(e.pointerId); + } + } + function yi(t, e, n, a, i, s) { + return t === null || t.nativeEvent !== s + ? ((t = { + blockedOn: e, + domEventName: n, + eventSystemFlags: a, + nativeEvent: s, + targetContainers: [i], + }), + e !== null && ((e = La(e)), e !== null && p1(e)), + t) + : ((t.eventSystemFlags |= a), + (e = t.targetContainers), + i !== null && e.indexOf(i) === -1 && e.push(i), + t); + } + function DA(t, e, n, a, i) { + switch (e) { + case 'focusin': + return ((Fn = yi(Fn, t, e, n, a, i)), !0); + case 'dragenter': + return ((Wn = yi(Wn, t, e, n, a, i)), !0); + case 'mouseover': + return ((_n = yi(_n, t, e, n, a, i)), !0); + case 'pointerover': + var s = i.pointerId; + return (Ai.set(s, yi(Ai.get(s) || null, t, e, n, a, i)), !0); + case 'gotpointercapture': + return ((s = i.pointerId), vi.set(s, yi(vi.get(s) || null, t, e, n, a, i)), !0); + } + return !1; + } + function T1(t) { + var e = Ya(t.target); + if (e !== null) { + var n = o(e); + if (n !== null) { + if (((e = n.tag), e === 13)) { + if (((e = h(n)), e !== null)) { + ((t.blockedOn = e), + zr(t.priority, function () { + b1(n); + })); + return; + } + } else if (e === 31) { + if (((e = v(n)), e !== null)) { + ((t.blockedOn = e), + zr(t.priority, function () { + b1(n); + })); + return; + } + } else if (e === 3 && n.stateNode.current.memoizedState.isDehydrated) { + t.blockedOn = n.tag === 3 ? n.stateNode.containerInfo : null; + return; + } + } + } + t.blockedOn = null; + } + function ku(t) { + if (t.blockedOn !== null) return !1; + for (var e = t.targetContainers; 0 < e.length; ) { + var n = Of(t.nativeEvent); + if (n === null) { + n = t.nativeEvent; + var a = new n.constructor(n.type, n); + ((Oc = a), n.target.dispatchEvent(a), (Oc = null)); + } else return ((e = La(n)), e !== null && p1(e), (t.blockedOn = n), !1); + e.shift(); + } + return !0; + } + function C1(t, e, n) { + ku(t) && n.delete(e); + } + function MA() { + ((Rf = !1), + Fn !== null && ku(Fn) && (Fn = null), + Wn !== null && ku(Wn) && (Wn = null), + _n !== null && ku(_n) && (_n = null), + Ai.forEach(C1), + vi.forEach(C1)); + } + function Ju(t, e) { + t.blockedOn === e && + ((t.blockedOn = null), + Rf || ((Rf = !0), l.unstable_scheduleCallback(l.unstable_NormalPriority, MA))); + } + var Fu = null; + function O1(t) { + Fu !== t && + ((Fu = t), + l.unstable_scheduleCallback(l.unstable_NormalPriority, function () { + Fu === t && (Fu = null); + for (var e = 0; e < t.length; e += 3) { + var n = t[e], + a = t[e + 1], + i = t[e + 2]; + if (typeof a != 'function') { + if (wf(a || n) === null) continue; + break; + } + var s = La(n); + s !== null && + (t.splice(e, 3), + (e -= 3), + Cs(s, { pending: !0, data: i, method: n.method, action: a }, a, i)); + } + })); + } + function pl(t) { + function e(T) { + return Ju(T, t); + } + (Fn !== null && Ju(Fn, t), + Wn !== null && Ju(Wn, t), + _n !== null && Ju(_n, t), + Ai.forEach(e), + vi.forEach(e)); + for (var n = 0; n < Pn.length; n++) { + var a = Pn[n]; + a.blockedOn === t && (a.blockedOn = null); + } + for (; 0 < Pn.length && ((n = Pn[0]), n.blockedOn === null); ) + (T1(n), n.blockedOn === null && Pn.shift()); + if (((n = (t.ownerDocument || t).$$reactFormReplay), n != null)) + for (a = 0; a < n.length; a += 3) { + var i = n[a], + s = n[a + 1], + d = i[oe] || null; + if (typeof s == 'function') d || O1(n); + else if (d) { + var g = null; + if (s && s.hasAttribute('formAction')) { + if (((i = s), (d = s[oe] || null))) g = d.formAction; + else if (wf(i) !== null) continue; + } else g = d.action; + (typeof g == 'function' ? (n[a + 1] = g) : (n.splice(a, 3), (a -= 3)), O1(n)); + } + } + } + function w1() { + function t(s) { + s.canIntercept && + s.info === 'react-transition' && + s.intercept({ + handler: function () { + return new Promise(function (d) { + return (i = d); + }); + }, + focusReset: 'manual', + scroll: 'manual', + }); + } + function e() { + (i !== null && (i(), (i = null)), a || setTimeout(n, 20)); + } + function n() { + if (!a && !navigation.transition) { + var s = navigation.currentEntry; + s && + s.url != null && + navigation.navigate(s.url, { + state: s.getState(), + info: 'react-transition', + history: 'replace', + }); + } + } + if (typeof navigation == 'object') { + var a = !1, + i = null; + return ( + navigation.addEventListener('navigate', t), + navigation.addEventListener('navigatesuccess', e), + navigation.addEventListener('navigateerror', e), + setTimeout(n, 100), + function () { + ((a = !0), + navigation.removeEventListener('navigate', t), + navigation.removeEventListener('navigatesuccess', e), + navigation.removeEventListener('navigateerror', e), + i !== null && (i(), (i = null))); + } + ); + } + } + function Df(t) { + this._internalRoot = t; + } + ((Wu.prototype.render = Df.prototype.render = + function (t) { + var e = this._internalRoot; + if (e === null) throw Error(f(409)); + var n = e.current, + a = De(); + y1(n, a, t, e, null, null); + }), + (Wu.prototype.unmount = Df.prototype.unmount = + function () { + var t = this._internalRoot; + if (t !== null) { + this._internalRoot = null; + var e = t.containerInfo; + (y1(t.current, 2, null, t, null, null), Mu(), (e[za] = null)); + } + })); + function Wu(t) { + this._internalRoot = t; + } + Wu.prototype.unstable_scheduleHydration = function (t) { + if (t) { + var e = Qr(); + t = { blockedOn: null, target: t, priority: e }; + for (var n = 0; n < Pn.length && e !== 0 && e < Pn[n].priority; n++); + (Pn.splice(n, 0, t), n === 0 && T1(t)); + } + }; + var R1 = u.version; + if (R1 !== '19.2.1') throw Error(f(527, R1, '19.2.1')); + _.findDOMNode = function (t) { + var e = t._reactInternals; + if (e === void 0) + throw typeof t.render == 'function' + ? Error(f(188)) + : ((t = Object.keys(t).join(',')), Error(f(268, t))); + return ( + (t = A(e)), + (t = t !== null ? E(t) : null), + (t = t === null ? null : t.stateNode), + t + ); + }; + var jA = { + bundleType: 0, + version: '19.2.1', + rendererPackageName: 'react-dom', + currentDispatcherRef: H, + reconcilerVersion: '19.2.1', + }; + if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ < 'u') { + var _u = __REACT_DEVTOOLS_GLOBAL_HOOK__; + if (!_u.isDisabled && _u.supportsFiber) + try { + ((wl = _u.inject(jA)), (be = _u)); + } catch {} + } + return ( + (xi.createRoot = function (t, e) { + if (!r(t)) throw Error(f(299)); + var n = !1, + a = '', + i = U0, + s = Q0, + d = z0; + return ( + e != null && + (e.unstable_strictMode === !0 && (n = !0), + e.identifierPrefix !== void 0 && (a = e.identifierPrefix), + e.onUncaughtError !== void 0 && (i = e.onUncaughtError), + e.onCaughtError !== void 0 && (s = e.onCaughtError), + e.onRecoverableError !== void 0 && (d = e.onRecoverableError)), + (e = A1(t, 1, !1, null, null, n, a, null, i, s, d, w1)), + (t[za] = e.current), + rf(t), + new Df(e) + ); + }), + (xi.hydrateRoot = function (t, e, n) { + if (!r(t)) throw Error(f(299)); + var a = !1, + i = '', + s = U0, + d = Q0, + g = z0, + T = null; + return ( + n != null && + (n.unstable_strictMode === !0 && (a = !0), + n.identifierPrefix !== void 0 && (i = n.identifierPrefix), + n.onUncaughtError !== void 0 && (s = n.onUncaughtError), + n.onCaughtError !== void 0 && (d = n.onCaughtError), + n.onRecoverableError !== void 0 && (g = n.onRecoverableError), + n.formState !== void 0 && (T = n.formState)), + (e = A1(t, 1, !0, e, n ?? null, a, i, T, s, d, g, w1)), + (e.context = v1(null)), + (n = e.current), + (a = De()), + (a = yc(a)), + (i = zn(a)), + (i.callback = null), + Yn(n, i, a), + (n = a), + (e.current.lanes = n), + Dl(e, n), + _e(e), + (t[za] = e.current), + rf(t), + new Wu(e) + ); + }), + (xi.version = '19.2.1'), + xi + ); + } + var j2; + function G5() { + if (j2) return Vf.exports; + j2 = 1; + function l() { + if ( + !( + typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ > 'u' || + typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE != 'function' + ) + ) + try { + __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(l); + } catch (u) { + console.error(u); + } + } + return (l(), (Vf.exports = L5()), Vf.exports); + } + var X5 = G5(); + class rc { + constructor() { + yn(this, 'project', []); + yn(this, 'status', []); + yn(this, 'text', []); + yn(this, 'labels', []); + yn(this, 'annotations', []); + } + empty() { + return ( + this.project.length + + this.status.length + + this.text.length + + this.labels.length + + this.annotations.length === + 0 + ); + } + static parse(u) { + const c = rc.tokenize(u), + f = new Set(), + r = new Set(), + o = [], + h = new Set(), + v = new Set(); + for (let A of c) { + const E = A.startsWith('!'); + if ((E && (A = A.slice(1)), A.startsWith('p:'))) { + f.add({ name: A.slice(2), not: E }); + continue; + } + if (A.startsWith('s:')) { + r.add({ name: A.slice(2), not: E }); + continue; + } + if (A.startsWith('@')) { + h.add({ name: A, not: E }); + continue; + } + if (A.startsWith('annot:')) { + v.add({ name: A.slice(6), not: E }); + continue; + } + o.push({ name: A.toLowerCase(), not: E }); + } + const y = new rc(); + return ( + (y.text = o), + (y.project = [...f]), + (y.status = [...r]), + (y.labels = [...h]), + (y.annotations = [...v]), + y + ); + } + static tokenize(u) { + const c = []; + let f, + r = []; + for (let o = 0; o < u.length; ++o) { + const h = u[o]; + if (f && h === '\\' && u[o + 1] === f) { + (r.push(f), ++o); + continue; + } + if (h === '"' || h === "'") { + f === h + ? (c.push(r.join('').toLowerCase()), (r = []), (f = void 0)) + : f + ? r.push(h) + : (f = h); + continue; + } + if (f) { + r.push(h); + continue; + } + if (h === ' ') { + r.length && (c.push(r.join('').toLowerCase()), (r = [])); + continue; + } + r.push(h); + } + return (r.length && c.push(r.join('').toLowerCase()), c); + } + matches(u) { + const c = V5(u); + if ( + this.project.length && + !!!this.project.find((r) => { + const o = c.project.includes(r.name); + return r.not ? !o : o; + }) + ) + return !1; + if (this.status.length) { + if ( + !!!this.status.find((r) => { + const o = c.status.includes(r.name); + return r.not ? !o : o; + }) + ) + return !1; + } else if (c.status === 'skipped') return !1; + return !( + (this.text.length && + !this.text.every((r) => { + if (c.text.includes(r.name)) return !r.not; + const [o, h, v] = r.name.split(':'); + return c.file.includes(o) && c.line === h && (v === void 0 || c.column === v) + ? !r.not + : !!r.not; + })) || + (this.labels.length && + !this.labels.every((r) => { + const o = c.labels.includes(r.name); + return r.not ? !o : o; + })) || + (this.annotations.length && + !this.annotations.every((r) => { + const o = c.annotations.some((h) => h.includes(r.name)); + return r.not ? !o : o; + })) + ); + } + } + const H2 = Symbol('searchValues'); + function V5(l) { + const u = l[H2]; + if (u) return u; + let c = 'passed'; + (l.outcome === 'unexpected' && (c = 'failed'), + l.outcome === 'flaky' && (c = 'flaky'), + l.outcome === 'skipped' && (c = 'skipped')); + const f = { + text: ( + c + + ' ' + + l.projectName + + ' ' + + l.tags.join(' ') + + ' ' + + l.location.file + + ' ' + + l.path.join(' ') + + ' ' + + l.title + ).toLowerCase(), + project: l.projectName.toLowerCase(), + status: c, + file: l.location.file, + line: String(l.location.line), + column: String(l.location.column), + labels: l.tags.map((r) => r.toLowerCase()), + annotations: l.annotations.map((r) => { + var o; + return ( + r.type.toLowerCase() + + '=' + + ((o = r.description) == null ? void 0 : o.toLocaleLowerCase()) + ); + }), + }; + return ((l[H2] = f), f); + } + const Z5 = /("[^"]*"|"[^"]*$|\S+)/g; + function Na(l, u, c) { + const f = new URLSearchParams(l), + o = [...(l.get('q') ?? '').matchAll(Z5)].map((y) => { + const A = y[0]; + return A.startsWith('"') && A.endsWith('"') && A.length > 1 + ? A.slice(1, A.length - 1) + : A; + }); + if (c) + return (f.set('q', N2(o.includes(u) ? o.filter((y) => y !== u) : [...o, u])), '#?' + f); + let h; + (u.startsWith('s:') && (h = 's:'), + u.startsWith('p:') && (h = 'p:'), + u.startsWith('@') && (h = '@')); + const v = o.filter((y) => !y.startsWith(h)); + return (v.push(u), f.set('q', N2(v)), '#?' + f); + } + function N2(l) { + return l + .map((u) => (/\s/.test(u) ? `"${u}"` : u)) + .join(' ') + .trim(); + } + const q5 = () => m.jsx('span', { className: 'octicon', style: { width: 16, height: 16 } }), + I5 = () => + m.jsx('svg', { + 'aria-hidden': 'true', + height: '16', + viewBox: '0 0 16 16', + version: '1.1', + width: '16', + 'data-view-component': 'true', + className: 'octicon subnav-search-icon', + children: m.jsx('path', { + fillRule: 'evenodd', + d: 'M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z', + }), + }), + Ni = () => + m.jsx('svg', { + 'aria-hidden': 'true', + height: '16', + viewBox: '0 0 16 16', + version: '1.1', + width: '16', + className: 'octicon color-fg-muted', + children: m.jsx('path', { + fillRule: 'evenodd', + d: 'M12.78 6.22a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06 0L3.22 7.28a.75.75 0 011.06-1.06L8 9.94l3.72-3.72a.75.75 0 011.06 0z', + }), + }), + Cl = () => + m.jsx('svg', { + 'aria-hidden': 'true', + height: '16', + viewBox: '0 0 16 16', + version: '1.1', + width: '16', + 'data-view-component': 'true', + className: 'octicon color-fg-muted', + children: m.jsx('path', { + fillRule: 'evenodd', + d: 'M6.22 3.22a.75.75 0 011.06 0l4.25 4.25a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06-1.06L9.94 8 6.22 4.28a.75.75 0 010-1.06z', + }), + }), + qh = () => + m.jsx('svg', { + 'aria-hidden': 'true', + height: '16', + viewBox: '0 0 16 16', + version: '1.1', + width: '16', + 'data-view-component': 'true', + className: 'octicon color-text-warning', + children: m.jsx('path', { + fillRule: 'evenodd', + d: 'M8.22 1.754a.25.25 0 00-.44 0L1.698 13.132a.25.25 0 00.22.368h12.164a.25.25 0 00.22-.368L8.22 1.754zm-1.763-.707c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0114.082 15H1.918a1.75 1.75 0 01-1.543-2.575L6.457 1.047zM9 11a1 1 0 11-2 0 1 1 0 012 0zm-.25-5.25a.75.75 0 00-1.5 0v2.5a.75.75 0 001.5 0v-2.5z', + }), + }), + Ih = () => + m.jsx('svg', { + 'aria-hidden': 'true', + height: '16', + viewBox: '0 0 16 16', + version: '1.1', + width: '16', + 'data-view-component': 'true', + className: 'octicon color-fg-muted', + children: m.jsx('path', { + fillRule: 'evenodd', + d: 'M3.5 1.75a.25.25 0 01.25-.25h3a.75.75 0 000 1.5h.5a.75.75 0 000-1.5h2.086a.25.25 0 01.177.073l2.914 2.914a.25.25 0 01.073.177v8.586a.25.25 0 01-.25.25h-.5a.75.75 0 000 1.5h.5A1.75 1.75 0 0014 13.25V4.664c0-.464-.184-.909-.513-1.237L10.573.513A1.75 1.75 0 009.336 0H3.75A1.75 1.75 0 002 1.75v11.5c0 .649.353 1.214.874 1.515a.75.75 0 10.752-1.298.25.25 0 01-.126-.217V1.75zM8.75 3a.75.75 0 000 1.5h.5a.75.75 0 000-1.5h-.5zM6 5.25a.75.75 0 01.75-.75h.5a.75.75 0 010 1.5h-.5A.75.75 0 016 5.25zm2 1.5A.75.75 0 018.75 6h.5a.75.75 0 010 1.5h-.5A.75.75 0 018 6.75zm-1.25.75a.75.75 0 000 1.5h.5a.75.75 0 000-1.5h-.5zM8 9.75A.75.75 0 018.75 9h.5a.75.75 0 010 1.5h-.5A.75.75 0 018 9.75zm-.75.75a1.75 1.75 0 00-1.75 1.75v3c0 .414.336.75.75.75h2.5a.75.75 0 00.75-.75v-3a1.75 1.75 0 00-1.75-1.75h-.5zM7 12.25a.25.25 0 01.25-.25h.5a.25.25 0 01.25.25v2.25H7v-2.25z', + }), + }), + Kh = () => + m.jsx('svg', { + className: 'octicon color-text-danger', + viewBox: '0 0 16 16', + version: '1.1', + width: '16', + height: '16', + 'aria-hidden': 'true', + children: m.jsx('path', { + fillRule: 'evenodd', + d: 'M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z', + }), + }), + kh = () => + m.jsx('svg', { + 'aria-hidden': 'true', + height: '16', + viewBox: '0 0 16 16', + version: '1.1', + width: '16', + 'data-view-component': 'true', + className: 'octicon color-icon-success', + children: m.jsx('path', { + fillRule: 'evenodd', + d: 'M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z', + }), + }), + Jh = () => + m.jsx('svg', { + 'aria-hidden': 'true', + height: '16', + viewBox: '0 0 16 16', + version: '1.1', + width: '16', + 'data-view-component': 'true', + className: 'octicon octicon-clock color-text-danger', + children: m.jsx('path', { + fillRule: 'evenodd', + d: 'M5.75.75A.75.75 0 016.5 0h3a.75.75 0 010 1.5h-.75v1l-.001.041a6.718 6.718 0 013.464 1.435l.007-.006.75-.75a.75.75 0 111.06 1.06l-.75.75-.006.007a6.75 6.75 0 11-10.548 0L2.72 5.03l-.75-.75a.75.75 0 011.06-1.06l.75.75.007.006A6.718 6.718 0 017.25 2.541a.756.756 0 010-.041v-1H6.5a.75.75 0 01-.75-.75zM8 14.5A5.25 5.25 0 108 4a5.25 5.25 0 000 10.5zm.389-6.7l1.33-1.33a.75.75 0 111.061 1.06L9.45 8.861A1.502 1.502 0 018 10.75a1.5 1.5 0 11.389-2.95z', + }), + }), + K5 = () => + m.jsx('svg', { + 'aria-hidden': 'true', + viewBox: '0 0 16 16', + width: '16', + height: '16', + 'data-view-component': 'true', + className: 'octicon color-fg-muted', + children: m.jsx('path', { + d: 'M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm9.78-2.22-5.5 5.5a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734l5.5-5.5a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z', + }), + }), + k5 = () => + m.jsx('svg', { + className: 'octicon', + viewBox: '0 0 48 48', + version: '1.1', + width: '20', + height: '20', + 'aria-hidden': 'true', + children: m.jsx('path', { + xmlns: 'http://www.w3.org/2000/svg', + d: 'M11.85 32H36.2l-7.35-9.95-6.55 8.7-4.6-6.45ZM7 40q-1.2 0-2.1-.9Q4 38.2 4 37V11q0-1.2.9-2.1Q5.8 8 7 8h34q1.2 0 2.1.9.9.9.9 2.1v26q0 1.2-.9 2.1-.9.9-2.1.9Zm0-29v26-26Zm34 26V11H7v26Z', + }), + }), + J5 = () => + m.jsx('svg', { + className: 'octicon', + viewBox: '0 0 48 48', + version: '1.1', + width: '20', + height: '20', + 'aria-hidden': 'true', + children: m.jsx('path', { + xmlns: 'http://www.w3.org/2000/svg', + d: 'm19.6 32.35 13-8.45-13-8.45ZM7 40q-1.2 0-2.1-.9Q4 38.2 4 37V11q0-1.2.9-2.1Q5.8 8 7 8h34q1.2 0 2.1.9.9.9.9 2.1v26q0 1.2-.9 2.1-.9.9-2.1.9Zm0-3h34V11H7v26Zm0 0V11v26Z', + }), + }), + F5 = () => + m.jsx('svg', { + className: 'octicon', + viewBox: '0 0 48 48', + version: '1.1', + width: '20', + height: '20', + 'aria-hidden': 'true', + children: m.jsx('path', { + xmlns: 'http://www.w3.org/2000/svg', + d: 'M7 37h9.35V11H7v26Zm12.35 0h9.3V11h-9.3v26Zm12.3 0H41V11h-9.35v26ZM7 40q-1.2 0-2.1-.9Q4 38.2 4 37V11q0-1.2.9-2.1Q5.8 8 7 8h34q1.2 0 2.1.9.9.9.9 2.1v26q0 1.2-.9 2.1-.9.9-2.1.9Z', + }), + }), + W5 = () => + m.jsxs('svg', { + className: 'octicon', + viewBox: '0 0 16 16', + width: '16', + height: '16', + 'aria-hidden': 'true', + children: [ + m.jsx('path', { + d: 'M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z', + }), + m.jsx('path', { + d: 'M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z', + }), + ], + }), + _5 = () => + m.jsx('svg', { + className: 'octicon octicon-settings', + viewBox: '0 0 16 16', + width: '16', + height: '16', + 'aria-hidden': 'true', + children: m.jsx('path', { + d: 'M8 0a8.2 8.2 0 0 1 .701.031C9.444.095 9.99.645 10.16 1.29l.288 1.107c.018.066.079.158.212.224.231.114.454.243.668.386.123.082.233.09.299.071l1.103-.303c.644-.176 1.392.021 1.82.63.27.385.506.792.704 1.218.315.675.111 1.422-.364 1.891l-.814.806c-.049.048-.098.147-.088.294.016.257.016.515 0 .772-.01.147.038.246.088.294l.814.806c.475.469.679 1.216.364 1.891a7.977 7.977 0 0 1-.704 1.217c-.428.61-1.176.807-1.82.63l-1.102-.302c-.067-.019-.177-.011-.3.071a5.909 5.909 0 0 1-.668.386c-.133.066-.194.158-.211.224l-.29 1.106c-.168.646-.715 1.196-1.458 1.26a8.006 8.006 0 0 1-1.402 0c-.743-.064-1.289-.614-1.458-1.26l-.289-1.106c-.018-.066-.079-.158-.212-.224a5.738 5.738 0 0 1-.668-.386c-.123-.082-.233-.09-.299-.071l-1.103.303c-.644.176-1.392-.021-1.82-.63a8.12 8.12 0 0 1-.704-1.218c-.315-.675-.111-1.422.363-1.891l.815-.806c.05-.048.098-.147.088-.294a6.214 6.214 0 0 1 0-.772c.01-.147-.038-.246-.088-.294l-.815-.806C.635 6.045.431 5.298.746 4.623a7.92 7.92 0 0 1 .704-1.217c.428-.61 1.176-.807 1.82-.63l1.102.302c.067.019.177.011.3-.071.214-.143.437-.272.668-.386.133-.066.194-.158.211-.224l.29-1.106C6.009.645 6.556.095 7.299.03 7.53.01 7.764 0 8 0Zm-.571 1.525c-.036.003-.108.036-.137.146l-.289 1.105c-.147.561-.549.967-.998 1.189-.173.086-.34.183-.5.29-.417.278-.97.423-1.529.27l-1.103-.303c-.109-.03-.175.016-.195.045-.22.312-.412.644-.573.99-.014.031-.021.11.059.19l.815.806c.411.406.562.957.53 1.456a4.709 4.709 0 0 0 0 .582c.032.499-.119 1.05-.53 1.456l-.815.806c-.081.08-.073.159-.059.19.162.346.353.677.573.989.02.03.085.076.195.046l1.102-.303c.56-.153 1.113-.008 1.53.27.161.107.328.204.501.29.447.222.85.629.997 1.189l.289 1.105c.029.109.101.143.137.146a6.6 6.6 0 0 0 1.142 0c.036-.003.108-.036.137-.146l.289-1.105c.147-.561.549-.967.998-1.189.173-.086.34-.183.5-.29.417-.278.97-.423 1.529-.27l1.103.303c.109.029.175-.016.195-.045.22-.313.411-.644.573-.99.014-.031.021-.11-.059-.19l-.815-.806c-.411-.406-.562-.957-.53-1.456a4.709 4.709 0 0 0 0-.582c-.032-.499.119-1.05.53-1.456l.815-.806c.081-.08.073-.159.059-.19a6.464 6.464 0 0 0-.573-.989c-.02-.03-.085-.076-.195-.046l-1.102.303c-.56.153-1.113.008-1.53-.27a4.44 4.44 0 0 0-.501-.29c-.447-.222-.85-.629-.997-1.189l-.289-1.105c-.029-.11-.101-.143-.137-.146a6.6 6.6 0 0 0-1.142 0ZM11 8a3 3 0 1 1-6 0 3 3 0 0 1 6 0ZM9.5 8a1.5 1.5 0 1 0-3.001.001A1.5 1.5 0 0 0 9.5 8Z', + }), + }), + Fh = ({ value: l }) => { + const [u, c] = ct.useState('copy'), + f = ct.useCallback(() => { + navigator.clipboard.writeText(l).then( + () => { + (c('check'), + setTimeout(() => { + c('copy'); + }, 3e3)); + }, + () => { + c('cross'); + } + ); + }, [l]), + r = u === 'check' ? kh() : u === 'cross' ? Kh() : W5(); + return m.jsx('button', { + className: 'copy-icon', + title: 'Copy to clipboard', + 'aria-label': 'Copy to clipboard', + onClick: f, + children: r, + }); + }, + Sr = ({ children: l, value: u }) => + m.jsxs('span', { + className: 'copy-value-container', + children: [ + l, + m.jsx('span', { + className: 'copy-button-container', + children: m.jsx(Fh, { value: u }), + }), + ], + }); + function P5(l, u, c, f) { + const [r, o] = ue.useState(c); + return ( + ue.useEffect(() => { + let h = !1; + return ( + l().then((v) => { + h || o(v); + }), + () => { + h = !0; + } + ); + }, u), + r + ); + } + function Wh() { + const l = ue.useRef(null), + [u] = ur(l); + return [u, l]; + } + function ur(l) { + const [u, c] = ue.useState(new DOMRect(0, 0, 10, 10)), + f = ue.useCallback(() => { + const r = l == null ? void 0 : l.current; + r && c(r.getBoundingClientRect()); + }, [l]); + return ( + ue.useLayoutEffect(() => { + const r = l == null ? void 0 : l.current; + if (!r) return; + f(); + const o = new ResizeObserver(f); + return ( + o.observe(r), + window.addEventListener('resize', f), + () => { + (o.disconnect(), window.removeEventListener('resize', f)); + } + ); + }, [f, l]), + [u, f] + ); + } + function _h(l, u) { + u = Ma.getObject(l, u); + const [c, f] = ue.useState(u), + r = ue.useCallback( + (o) => { + Ma.setObject(l, o); + }, + [l, f] + ); + return ( + ue.useEffect(() => { + { + const o = () => f(Ma.getObject(l, u)); + return ( + Ma.onChangeEmitter.addEventListener(l, o), + () => Ma.onChangeEmitter.removeEventListener(l, o) + ); + } + }, [u, l]), + [c, r] + ); + } + class $5 { + constructor() { + this.onChangeEmitter = new EventTarget(); + } + getString(u, c) { + return localStorage[u] || c; + } + setString(u, c) { + var f; + ((localStorage[u] = c), + this.onChangeEmitter.dispatchEvent(new Event(u)), + (f = window.saveSettings) == null || f.call(window)); + } + getObject(u, c) { + if (!localStorage[u]) return c; + try { + return JSON.parse(localStorage[u]); + } catch { + return c; + } + } + setObject(u, c) { + var f; + ((localStorage[u] = JSON.stringify(c)), + this.onChangeEmitter.dispatchEvent(new Event(u)), + (f = window.saveSettings) == null || f.call(window)); + } + } + const Ma = new $5(); + function Ze(...l) { + return l.filter(Boolean).join(' '); + } + const B2 = '\\u0000-\\u0020\\u007f-\\u009f', + tv = new RegExp( + '(?:[a-zA-Z][a-zA-Z0-9+.-]{2,}:\\/\\/|www\\.)[^\\s' + + B2 + + '"]{2,}[^\\s' + + B2 + + `"')}\\],:;.!?]`, + 'ug' + ); + function ev() { + const [l, u] = ue.useState(!1), + c = ue.useCallback(() => { + const f = []; + return ( + u( + (r) => ( + f.push(setTimeout(() => u(!1), 1e3)), + r ? (f.push(setTimeout(() => u(!0), 50)), !1) : !0 + ) + ), + () => f.forEach(clearTimeout) + ); + }, [u]); + return [l, c]; + } + function Di(l) { + const u = []; + let c = 0, + f; + for (; (f = tv.exec(l)) !== null; ) { + const o = l.substring(c, f.index); + o && u.push(o); + const h = f[0]; + (u.push(nv(h)), (c = f.index + h.length)); + } + const r = l.substring(c); + return (r && u.push(r), u); + } + function nv(l) { + let u = l; + return ( + u.startsWith('www.') && (u = 'https://' + u), + m.jsx('a', { href: u, target: '_blank', rel: 'noopener noreferrer', children: l }) + ); + } + const av = ({ summary: l, children: u, className: c, style: f }) => { + const [r, o] = ue.useState(!1), + h = (v) => { + o(v.currentTarget.open); + }; + return m.jsxs('details', { + style: f, + className: c, + onToggle: h, + children: [ + m.jsxs('summary', { className: 'expandable-summary', children: [r ? Ni() : Cl(), l] }), + u, + ], + }); + }; + function Ol(l) { + if (!isFinite(l)) return '-'; + if (l === 0) return '0ms'; + if (l < 1e3) return l.toFixed(0) + 'ms'; + const u = l / 1e3; + if (u < 60) return u.toFixed(1) + 's'; + const c = u / 60; + if (c < 60) return c.toFixed(1) + 'm'; + const f = c / 60; + return f < 24 ? f.toFixed(1) + 'h' : (f / 24).toFixed(1) + 'd'; + } + function lv(l) { + let u = 0; + for (let c = 0; c < l.length; c++) u = l.charCodeAt(c) + ((u << 8) - u); + return Math.abs(u % 6); + } + function Ve(l) { + if (!l) return l; + try { + const u = new URL(l, window.location.href); + if (u.origin === window.location.origin) { + for (const [c, f] of new URLSearchParams(window.location.search)) + u.searchParams.append(c, f); + return u.toString(); + } + return l; + } catch { + return l; + } + } + const Ph = ({ label: l, href: u, onClick: c, colorIndex: f, trimAtSymbolPrefix: r }) => { + const o = m.jsx('span', { + className: Ze('label', 'label-color-' + (f !== void 0 ? f : lv(l))), + onClick: c ? (h) => c(h, l) : void 0, + children: r && l.startsWith('@') ? l.slice(1) : l, + }); + return u ? m.jsx('a', { className: 'label-anchor', href: Ve(u), children: o }) : o; + }, + $h = ({ projectNames: l, activeProjectName: u, otherLabels: c, style: f }) => + ((l.length > 0 && !!u) || c.length > 0) && + m.jsxs('span', { + className: 'label-row', + style: f ?? {}, + children: [m.jsx(uv, { projectNames: l, projectName: u }), m.jsx(iv, { labels: c })], + }), + iv = ({ labels: l }) => { + const u = se(), + c = ct.useCallback( + (f, r) => { + const o = new URLSearchParams(u); + (f.preventDefault(), + o.has('testId') && o.delete('speedboard'), + o.delete('testId'), + ca(Na(o, r, f.metaKey || f.ctrlKey))); + }, + [u] + ); + return m.jsx(m.Fragment, { + children: l.map((f) => m.jsx(Ph, { label: f, trimAtSymbolPrefix: !0, onClick: c }, f)), + }); + }; + function ca(l) { + window.history.pushState({}, '', l); + const u = new PopStateEvent('popstate'); + window.dispatchEvent(u); + } + const Kf = ({ predicate: l, children: u }) => (l(se()) ? u : null), + Tn = ({ click: l, ctrlClick: u, children: c, ...f }) => + m.jsx('a', { + ...f, + style: { textDecoration: 'none', color: 'var(--color-fg-default)', cursor: 'pointer' }, + onClick: (r) => { + l && (r.preventDefault(), ca(Ve(((r.metaKey || r.ctrlKey) && u) || l))); + }, + children: c, + }), + Tr = ({ className: l, ...u }) => + m.jsx(Tn, { ...u, className: Ze('link-badge', u.dim && 'link-badge-dim', l) }), + uv = ({ projectNames: l, projectName: u }) => { + const c = new URLSearchParams(se()); + return ( + c.has('testId') && c.delete('speedboard'), + c.delete('testId'), + m.jsx(Tn, { + click: Na(c, `p:${u}`, !1), + ctrlClick: Na(c, `p:${u}`, !0), + children: m.jsx(Ph, { label: u, colorIndex: l.indexOf(u) % 6 }), + }) + ); + }, + nc = ({ attachment: l, result: u, href: c, linkName: f, openInNewTab: r }) => { + const [o, h] = ev(); + Cr('attachment-' + u.attachments.indexOf(l), h); + const v = m.jsxs('span', { + children: [ + l.contentType === fv ? qh() : Ih(), + l.path && + (r + ? m.jsx('a', { + href: Ve(c || l.path), + target: '_blank', + rel: 'noreferrer', + children: f || l.name, + }) + : m.jsx('a', { href: Ve(c || l.path), download: sv(l), children: f || l.name })), + !l.path && + (r + ? m.jsx('a', { + href: URL.createObjectURL(new Blob([l.body], { type: l.contentType })), + target: '_blank', + rel: 'noreferrer', + onClick: (y) => y.stopPropagation(), + children: l.name, + }) + : m.jsx('span', { children: Di(l.name) })), + ], + }); + return l.body + ? m.jsx(av, { + style: { lineHeight: '32px' }, + className: Ze(o && 'attachment-flash'), + summary: v, + children: m.jsxs('div', { + className: 'attachment-body', + children: [m.jsx(Fh, { value: l.body }), Di(l.body)], + }), + }) + : m.jsxs('div', { + style: { lineHeight: '32px', whiteSpace: 'nowrap', paddingLeft: 4 }, + className: Ze(o && 'attachment-flash'), + children: [m.jsx('span', { style: { visibility: 'hidden' }, children: Cl() }), v], + }); + }, + tm = ({ test: l, trailingSeparator: u, dim: c }) => { + const f = l.results + .map((r) => r.attachments.filter((o) => o.name === 'trace')) + .filter((r) => r.length > 0)[0]; + if (f) + return m.jsxs(m.Fragment, { + children: [ + m.jsxs(Tr, { + href: Ve(nm(f)), + title: 'View Trace', + className: 'button trace-link', + dim: c, + children: [F5(), m.jsx('span', { children: 'View Trace' })], + }), + u && m.jsx('div', { className: 'trace-link-separator', children: '|' }), + ], + }); + }, + em = ct.createContext(new URLSearchParams(window.location.hash.slice(1))); + function se() { + return ct.useContext(em); + } + const cv = ({ children: l }) => { + const [u, c] = ct.useState(new URLSearchParams(window.location.hash.slice(1))); + return ( + ct.useEffect(() => { + const f = () => c(new URLSearchParams(window.location.hash.slice(1))); + return ( + window.addEventListener('popstate', f), + () => window.removeEventListener('popstate', f) + ); + }, []), + m.jsx(em.Provider, { value: u, children: l }) + ); + }; + function sv(l) { + if (l.name.includes('.') || !l.path) return l.name; + const u = l.path.indexOf('.'); + return u === -1 ? l.name : l.name + l.path.slice(u, l.path.length); + } + function nm(l) { + return `trace/index.html?${l.map((u, c) => `trace=${new URL(u.path, window.location.href)}`).join('&')}`; + } + const fv = 'x-playwright/missing'; + function Cr(l, u) { + const c = se(), + f = rv(l); + ct.useEffect(() => { + if (f) return u(); + }, [f, u, c]); + } + function rv(l) { + const u = se().get('anchor'); + return u === null || typeof l > 'u' + ? !1 + : typeof l == 'string' + ? l === u + : Array.isArray(l) + ? l.includes(u) + : l(u); + } + function Si({ id: l, children: u }) { + const c = ct.useRef(null), + f = ct.useCallback(() => { + var r; + (r = c.current) == null || r.scrollIntoView({ block: 'start', inline: 'start' }); + }, []); + return (Cr(l, f), m.jsx('div', { ref: c, children: u })); + } + function Cn({ test: l, result: u, anchor: c }, f) { + const r = new URLSearchParams(f); + return ( + l && r.set('testId', l.testId), + l && u && r.set('run', '' + l.results.indexOf(u)), + c && r.set('anchor', c), + '#?' + r + ); + } + function hc(l) { + switch (l) { + case 'failed': + case 'unexpected': + return Kh(); + case 'passed': + case 'expected': + return kh(); + case 'timedOut': + return Jh(); + case 'flaky': + return qh(); + case 'skipped': + case 'interrupted': + return K5(); + } + } + const ov = ({ + className: l, + style: u, + open: c, + isModal: f, + minWidth: r, + verticalOffset: o, + requestClose: h, + anchor: v, + dataTestId: y, + children: A, + }) => { + const E = ct.useRef(null), + [S, O] = ct.useState(0), + [X] = ur(E), + [B, b] = ur(v), + p = v ? dv(X, B, o) : void 0; + return ( + ct.useEffect(() => { + const x = (U) => { + !E.current || + !(U.target instanceof Node) || + E.current.contains(U.target) || + h == null || + h(); + }, + R = (U) => { + U.key === 'Escape' && (h == null || h()); + }; + return c + ? (document.addEventListener('mousedown', x), + document.addEventListener('keydown', R), + () => { + (document.removeEventListener('mousedown', x), + document.removeEventListener('keydown', R)); + }) + : () => {}; + }, [c, h]), + ct.useLayoutEffect(() => b(), [c, b]), + ct.useEffect(() => { + const x = () => O((R) => R + 1); + return ( + window.addEventListener('resize', x), + () => { + window.removeEventListener('resize', x); + } + ); + }, []), + ct.useLayoutEffect(() => { + E.current && (c ? (f ? E.current.showModal() : E.current.show()) : E.current.close()); + }, [c, f]), + m.jsx('dialog', { + ref: E, + style: { + position: 'fixed', + margin: p ? 0 : void 0, + zIndex: 110, + top: p == null ? void 0 : p.top, + left: p == null ? void 0 : p.left, + minWidth: r || 0, + ...u, + }, + className: l, + 'data-testid': y, + children: A, + }) + ); + }; + function dv(l, u, c = 4, f = 4) { + let r = Math.max(f, u.left); + r + l.width > window.innerWidth - f && (r = window.innerWidth - l.width - f); + let o = Math.max(0, u.bottom) + c; + return ( + o + l.height > window.innerHeight - c && + (Math.max(0, u.top) > l.height + c + ? (o = Math.max(0, u.top) - l.height - c) + : (o = window.innerHeight - c - l.height)), + { left: r, top: o } + ); + } + const hv = 'system', + am = 'theme', + mv = [ + { label: 'Dark mode', value: 'dark-mode' }, + { label: 'Light mode', value: 'light-mode' }, + { label: 'System', value: 'system' }, + ], + lm = window.matchMedia('(prefers-color-scheme: dark)'); + function gv() { + document.playwrightThemeInitialized || + ((document.playwrightThemeInitialized = !0), + document.defaultView.addEventListener( + 'focus', + (l) => { + l.target.document.nodeType === Node.DOCUMENT_NODE && + document.body.classList.remove('inactive'); + }, + !1 + ), + document.defaultView.addEventListener( + 'blur', + (l) => { + document.body.classList.add('inactive'); + }, + !1 + ), + cr(sr()), + lm.addEventListener('change', () => { + cr(sr()); + })); + } + const Av = new Set(); + function cr(l) { + const u = vv(), + c = l === 'system' ? (lm.matches ? 'dark-mode' : 'light-mode') : l; + if (u !== c) { + (u && document.documentElement.classList.remove(u), + document.documentElement.classList.add(c)); + for (const f of Av) f(c); + } + } + function sr() { + return Ma.getString(am, hv); + } + function vv() { + return document.documentElement.classList.contains('dark-mode') + ? 'dark-mode' + : document.documentElement.classList.contains('light-mode') + ? 'light-mode' + : null; + } + function yv() { + const [l, u] = ue.useState(sr()); + return ( + ue.useEffect(() => { + (Ma.setString(am, l), cr(l)); + }, [l]), + [l, u] + ); + } + const Or = ({ title: l, leftSuperHeader: u, rightSuperHeader: c }) => + m.jsxs('div', { + className: 'header-view', + children: [ + m.jsxs('div', { + className: 'hbox header-superheader', + children: [u, m.jsx('div', { style: { flex: 'auto' } }), c], + }), + l && m.jsx('div', { className: 'header-title', children: Di(l) }), + ], + }), + Ev = ({ stats: l, filterText: u, setFilterText: c }) => { + const f = se().get('q'); + return ( + ct.useEffect(() => { + c(f ? `${f.trim()} ` : ''); + }, [f, c]), + m.jsx(m.Fragment, { + children: m.jsxs('div', { + className: 'pt-3', + children: [ + m.jsx('div', { + className: 'header-view-status-container ml-2 pl-2 d-flex', + children: m.jsx(pv, { stats: l }), + }), + m.jsxs('form', { + className: 'subnav-search', + onSubmit: (r) => { + r.preventDefault(); + const o = new URL(window.location.href), + h = new URLSearchParams(o.hash.slice(1)), + v = new FormData(r.target).get('q'), + y = new URLSearchParams({ q: v }); + (h.has('speedboard') && y.set('speedboard', ''), + y.toString() && (o.hash = '?' + y.toString()), + ca(o)); + }, + children: [ + I5(), + m.jsx('input', { + name: 'q', + spellCheck: !1, + className: 'form-control subnav-search-input input-contrast width-full', + 'aria-label': 'Search tests', + placeholder: 'Search tests', + value: u, + onChange: (r) => { + c(r.target.value); + }, + }), + ], + }), + ], + }), + }) + ); + }, + pv = ({ stats: l }) => { + const u = se().has('speedboard'); + return m.jsxs('nav', { + children: [ + m.jsxs(Tn, { + className: 'subnav-item', + href: '#?', + children: [ + m.jsx('span', { className: 'subnav-item-label', children: 'All' }), + m.jsx('span', { className: 'd-inline counter', children: l.total - l.skipped }), + ], + }), + m.jsx(ac, { token: 'passed', count: l.expected }), + m.jsx(ac, { token: 'failed', count: l.unexpected }), + m.jsx(ac, { token: 'flaky', count: l.flaky }), + m.jsx(ac, { token: 'skipped', count: l.skipped }), + m.jsx(Tn, { + className: 'subnav-item', + href: '#?speedboard', + title: 'Speedboard', + 'aria-selected': u, + children: Jh(), + }), + m.jsx(bv, {}), + ], + }); + }, + ac = ({ token: l, count: u }) => { + const c = new URLSearchParams(se()); + (c.delete('speedboard'), c.delete('testId')); + const f = `s:${l}`, + r = Na(c, f, !1), + o = Na(c, f, !0), + h = l.charAt(0).toUpperCase() + l.slice(1); + return m.jsxs(Tn, { + className: 'subnav-item', + href: r, + click: r, + ctrlClick: o, + children: [ + u > 0 && hc(l), + m.jsx('span', { className: 'subnav-item-label', children: h }), + m.jsx('span', { className: 'd-inline counter', children: u }), + ], + }); + }, + bv = () => { + const l = ct.useRef(null), + [u, c] = ct.useState(!1), + [f, r] = yv(), + [o, h] = _h('mergeFiles', !1); + return m.jsxs(m.Fragment, { + children: [ + m.jsx('div', { + role: 'button', + ref: l, + style: { cursor: 'pointer' }, + className: 'subnav-item', + title: 'Settings', + onClick: (v) => { + (c(!u), v.preventDefault()); + }, + onMouseDown: xv, + children: _5(), + }), + m.jsxs(ov, { + open: u, + minWidth: 150, + verticalOffset: 4, + requestClose: () => c(!1), + anchor: l, + dataTestId: 'settings-dialog', + children: [ + m.jsxs('label', { + className: 'header-setting-theme', + children: [ + 'Theme:', + m.jsx('select', { + value: f, + onChange: (v) => r(v.target.value), + children: mv.map((v) => + m.jsx('option', { value: v.value, children: v.label }, v.value) + ), + }), + ], + }), + m.jsxs('label', { + style: { cursor: 'pointer', display: 'flex', alignItems: 'center', gap: 4 }, + children: [ + m.jsx('input', { type: 'checkbox', checked: o, onChange: () => h(!o) }), + 'Merge files', + ], + }), + ], + }), + ], + }); + }, + xv = (l) => { + (l.stopPropagation(), l.preventDefault()); + }, + Sv = ({ tabs: l, selectedTab: u, setSelectedTab: c }) => { + const f = ct.useId(); + return m.jsx('div', { + className: 'tabbed-pane', + children: m.jsxs('div', { + className: 'vbox', + children: [ + m.jsx('div', { + className: 'hbox', + style: { flex: 'none' }, + children: m.jsx('div', { + className: 'tabbed-pane-tab-strip', + role: 'tablist', + children: l.map((r) => + m.jsx( + 'div', + { + className: Ze('tabbed-pane-tab-element', u === r.id && 'selected'), + onClick: () => c(r.id), + id: `${f}-${r.id}`, + role: 'tab', + 'aria-selected': u === r.id, + children: m.jsx('div', { + className: 'tabbed-pane-tab-label', + children: r.title, + }), + }, + r.id + ) + ), + }), + }), + l.map((r) => { + if (u === r.id) + return m.jsx( + 'div', + { + className: 'tab-content', + role: 'tabpanel', + 'aria-labelledby': `${f}-${r.id}`, + children: r.render(), + }, + r.id + ); + }), + ], + }), + }); + }, + im = ({ + header: l, + footer: u, + expanded: c, + setExpanded: f, + children: r, + noInsets: o, + dataTestId: h, + }) => { + const v = ct.useId(); + return m.jsxs('div', { + className: 'chip', + 'data-testid': h, + children: [ + m.jsxs('div', { + role: 'button', + 'aria-expanded': !!c, + 'aria-controls': v, + className: Ze('chip-header', f && ' expanded-' + c), + onClick: () => (f == null ? void 0 : f(!c)), + title: typeof l == 'string' ? l : void 0, + children: [f ? (c ? m.jsx(Ni, {}) : m.jsx(Cl, {})) : m.jsx(q5, {}), l], + }), + (!f || c) && + m.jsxs('div', { + id: v, + role: 'region', + className: Ze('chip-body', o && 'chip-body-no-insets'), + children: [r, u && m.jsx('div', { className: 'chip-footer', children: u })], + }), + ], + }); + }, + ke = ({ + header: l, + initialExpanded: u, + noInsets: c, + children: f, + dataTestId: r, + revealOnAnchorId: o, + }) => { + const [h, v] = ct.useState(u ?? !0), + y = ct.useCallback(() => v(!0), []); + return ( + Cr(o, y), + m.jsx(im, { + header: l, + expanded: h, + setExpanded: v, + noInsets: c, + dataTestId: r, + children: f, + }) + ); + }, + Tv = ({ + title: l, + loadChildren: u, + onClick: c, + expandByDefault: f, + depth: r, + style: o, + flash: h, + }) => { + const [v, y] = ct.useState(f || !1); + return m.jsxs('div', { + role: 'treeitem', + className: Ze('tree-item', h && 'yellow-flash'), + style: o, + children: [ + m.jsxs('div', { + className: 'tree-item-title', + style: { paddingLeft: r * 22 + 4 }, + onClick: () => { + (c == null || c(), y(!v)); + }, + children: [ + u && !!v && Ni(), + u && !v && Cl(), + !u && m.jsx('span', { style: { visibility: 'hidden' }, children: Cl() }), + l, + ], + }), + v && (u == null ? void 0 : u()), + ], + }); + }, + Cv = + 'data:image/png;base64,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', + Ov = ({ cursor: l, onPaneMouseMove: u, onPaneMouseUp: c, onPaneDoubleClick: f }) => ( + ue.useEffect(() => { + const r = document.createElement('div'); + return ( + (r.style.position = 'fixed'), + (r.style.top = '0'), + (r.style.right = '0'), + (r.style.bottom = '0'), + (r.style.left = '0'), + (r.style.zIndex = '9999'), + (r.style.cursor = l), + document.body.appendChild(r), + u && r.addEventListener('mousemove', u), + c && r.addEventListener('mouseup', c), + f && document.body.addEventListener('dblclick', f), + () => { + (u && r.removeEventListener('mousemove', u), + c && r.removeEventListener('mouseup', c), + f && document.body.removeEventListener('dblclick', f), + document.body.removeChild(r)); + } + ); + }, [l, u, c, f]), + m.jsx(m.Fragment, {}) + ), + wv = { position: 'absolute', top: 0, right: 0, bottom: 0, left: 0 }, + Rv = ({ + orientation: l, + offsets: u, + setOffsets: c, + resizerColor: f, + resizerWidth: r, + minColumnWidth: o, + }) => { + const h = o || 0, + [v, y] = ue.useState(null), + [A, E] = Wh(), + S = { + position: 'absolute', + right: l === 'horizontal' ? void 0 : 0, + bottom: l === 'horizontal' ? 0 : void 0, + width: l === 'horizontal' ? 7 : void 0, + height: l === 'horizontal' ? void 0 : 7, + borderTopWidth: l === 'horizontal' ? void 0 : (7 - r) / 2, + borderRightWidth: l === 'horizontal' ? (7 - r) / 2 : void 0, + borderBottomWidth: l === 'horizontal' ? void 0 : (7 - r) / 2, + borderLeftWidth: l === 'horizontal' ? (7 - r) / 2 : void 0, + borderColor: 'transparent', + borderStyle: 'solid', + cursor: l === 'horizontal' ? 'ew-resize' : 'ns-resize', + }; + return m.jsxs('div', { + style: { + position: 'absolute', + top: 0, + right: 0, + bottom: 0, + left: -(7 - r) / 2, + zIndex: 100, + pointerEvents: 'none', + }, + ref: E, + children: [ + !!v && + m.jsx(Ov, { + cursor: l === 'horizontal' ? 'ew-resize' : 'ns-resize', + onPaneMouseUp: () => y(null), + onPaneMouseMove: (O) => { + if (!O.buttons) y(null); + else if (v) { + const X = l === 'horizontal' ? O.clientX - v.clientX : O.clientY - v.clientY, + B = v.offset + X, + b = v.index > 0 ? u[v.index - 1] : 0, + p = l === 'horizontal' ? A.width : A.height, + x = Math.min(Math.max(b + h, B), p - h) - u[v.index]; + for (let R = v.index; R < u.length; ++R) u[R] = u[R] + x; + c([...u]); + } + }, + }), + u.map((O, X) => + m.jsx( + 'div', + { + style: { + ...S, + top: l === 'horizontal' ? 0 : O, + left: l === 'horizontal' ? O : 0, + pointerEvents: 'initial', + }, + onMouseDown: (B) => + y({ clientX: B.clientX, clientY: B.clientY, offset: O, index: X }), + children: m.jsx('div', { style: { ...wv, background: f } }), + }, + X + ) + ), + ], + }); + }; + async function kf(l) { + const u = new Image(); + return ( + l && + ((u.src = l), + await new Promise((c, f) => { + ((u.onload = c), (u.onerror = c)); + })), + u + ); + } + const fr = { + backgroundImage: `linear-gradient(45deg, #80808020 25%, transparent 25%), linear-gradient(-45deg, #80808020 25%, transparent 25%), linear-gradient(45deg, transparent 75%, #80808020 75%), - linear-gradient(-45deg, transparent 75%, #80808020 75%)`,backgroundSize:"20px 20px",backgroundPosition:"0 0, 0 10px, 10px -10px, -10px 0px",boxShadow:`rgb(0 0 0 / 10%) 0px 1.8px 1.9px, + linear-gradient(-45deg, transparent 75%, #80808020 75%)`, + backgroundSize: '20px 20px', + backgroundPosition: '0 0, 0 10px, 10px -10px, -10px 0px', + boxShadow: `rgb(0 0 0 / 10%) 0px 1.8px 1.9px, rgb(0 0 0 / 15%) 0px 6.1px 6.3px, rgb(0 0 0 / 10%) 0px -2px 4px, rgb(0 0 0 / 15%) 0px -6.1px 12px, - rgb(0 0 0 / 25%) 0px 6px 12px`},um=({diff:l,noTargetBlank:u,hideDetails:c})=>{const[f,r]=ct.useState(l.diff?"diff":"actual"),[o,h]=ct.useState(!1),[v,y]=ct.useState(null),[A,E]=ct.useState("Expected"),[S,O]=ct.useState(null),[X,B]=ct.useState(null),[b,p]=Wh();ct.useEffect(()=>{(async()=>{var K,J,k,nt;y(await kf((K=l.expected)==null?void 0:K.attachment.path)),E(((J=l.expected)==null?void 0:J.title)||"Expected"),O(await kf((k=l.actual)==null?void 0:k.attachment.path)),B(await kf((nt=l.diff)==null?void 0:nt.attachment.path))})()},[l]);const x=v&&S&&X,R=x?Math.max(v.naturalWidth,S.naturalWidth,200):500,U=x?Math.max(v.naturalHeight,S.naturalHeight,200):500,Z=Math.min(1,(b.width-30)/R),F=Math.min(1,(b.width-50)/R/2),j=R*Z,D=U*Z,N={flex:"none",margin:"0 10px",cursor:"pointer",userSelect:"none"};return m.jsx("div",{"data-testid":"test-result-image-mismatch",style:{display:"flex",flexDirection:"column",alignItems:"center",flex:"auto"},ref:p,children:x&&m.jsxs(m.Fragment,{children:[m.jsxs("div",{"data-testid":"test-result-image-mismatch-tabs",style:{display:"flex",margin:"10px 0 20px"},children:[l.diff&&m.jsx("div",{style:{...N,fontWeight:f==="diff"?600:"initial"},onClick:()=>r("diff"),children:"Diff"}),m.jsx("div",{style:{...N,fontWeight:f==="actual"?600:"initial"},onClick:()=>r("actual"),children:"Actual"}),m.jsx("div",{style:{...N,fontWeight:f==="expected"?600:"initial"},onClick:()=>r("expected"),children:A}),m.jsx("div",{style:{...N,fontWeight:f==="sxs"?600:"initial"},onClick:()=>r("sxs"),children:"Side by side"}),m.jsx("div",{style:{...N,fontWeight:f==="slider"?600:"initial"},onClick:()=>r("slider"),children:"Slider"})]}),m.jsxs("div",{style:{display:"flex",justifyContent:"center",flex:"auto",minHeight:D+60},children:[l.diff&&f==="diff"&&m.jsx(En,{image:X,alt:"Diff",hideSize:c,canvasWidth:j,canvasHeight:D,scale:Z}),l.diff&&f==="actual"&&m.jsx(En,{image:S,alt:"Actual",hideSize:c,canvasWidth:j,canvasHeight:D,scale:Z}),l.diff&&f==="expected"&&m.jsx(En,{image:v,alt:A,hideSize:c,canvasWidth:j,canvasHeight:D,scale:Z}),l.diff&&f==="slider"&&m.jsx(Dv,{expectedImage:v,actualImage:S,hideSize:c,canvasWidth:j,canvasHeight:D,scale:Z,expectedTitle:A}),l.diff&&f==="sxs"&&m.jsxs("div",{style:{display:"flex"},children:[m.jsx(En,{image:v,title:A,hideSize:c,canvasWidth:F*R,canvasHeight:F*U,scale:F}),m.jsx(En,{image:o?X:S,title:o?"Diff":"Actual",onClick:()=>h(!o),hideSize:c,canvasWidth:F*R,canvasHeight:F*U,scale:F})]}),!l.diff&&f==="actual"&&m.jsx(En,{image:S,title:"Actual",hideSize:c,canvasWidth:j,canvasHeight:D,scale:Z}),!l.diff&&f==="expected"&&m.jsx(En,{image:v,title:A,hideSize:c,canvasWidth:j,canvasHeight:D,scale:Z}),!l.diff&&f==="sxs"&&m.jsxs("div",{style:{display:"flex"},children:[m.jsx(En,{image:v,title:A,canvasWidth:F*R,canvasHeight:F*U,scale:F}),m.jsx(En,{image:S,title:"Actual",canvasWidth:F*R,canvasHeight:F*U,scale:F})]})]}),!c&&m.jsxs("div",{style:{alignSelf:"start",lineHeight:"18px",marginLeft:"15px"},children:[m.jsx("div",{children:l.diff&&m.jsx("a",{target:"_blank",href:l.diff.attachment.path,rel:"noreferrer",children:l.diff.attachment.name})}),m.jsx("div",{children:m.jsx("a",{target:u?"":"_blank",href:l.actual.attachment.path,rel:"noreferrer",children:l.actual.attachment.name})}),m.jsx("div",{children:m.jsx("a",{target:u?"":"_blank",href:l.expected.attachment.path,rel:"noreferrer",children:l.expected.attachment.name})})]})]})})},Dv=({expectedImage:l,actualImage:u,canvasWidth:c,canvasHeight:f,scale:r,expectedTitle:o,hideSize:h})=>{const v={position:"absolute",top:0,left:0},[y,A]=ct.useState(c/2),E=l.naturalWidth===u.naturalWidth&&l.naturalHeight===u.naturalHeight;return m.jsxs("div",{style:{flex:"none",display:"flex",alignItems:"center",flexDirection:"column",userSelect:"none"},children:[!h&&m.jsxs("div",{style:{margin:5},children:[!E&&m.jsx("span",{style:{flex:"none",margin:"0 5px"},children:"Expected "}),m.jsx("span",{children:l.naturalWidth}),m.jsx("span",{style:{flex:"none",margin:"0 5px"},children:"x"}),m.jsx("span",{children:l.naturalHeight}),!E&&m.jsx("span",{style:{flex:"none",margin:"0 5px 0 15px"},children:"Actual "}),!E&&m.jsx("span",{children:u.naturalWidth}),!E&&m.jsx("span",{style:{flex:"none",margin:"0 5px"},children:"x"}),!E&&m.jsx("span",{children:u.naturalHeight})]}),m.jsxs("div",{style:{position:"relative",width:c,height:f,margin:15,...fr},children:[m.jsx(Rv,{orientation:"horizontal",offsets:[y],setOffsets:S=>A(S[0]),resizerColor:"#57606a80",resizerWidth:6}),m.jsx("img",{alt:o,style:{width:l.naturalWidth*r,height:l.naturalHeight*r},draggable:"false",src:l.src}),m.jsx("div",{style:{...v,bottom:0,overflow:"hidden",width:y,...fr},children:m.jsx("img",{alt:"Actual",style:{width:u.naturalWidth*r,height:u.naturalHeight*r},draggable:"false",src:u.src})})]})]})},En=({image:l,title:u,alt:c,hideSize:f,canvasWidth:r,canvasHeight:o,scale:h,onClick:v})=>m.jsxs("div",{style:{flex:"none",display:"flex",alignItems:"center",flexDirection:"column"},children:[!f&&m.jsxs("div",{style:{margin:5},children:[u&&m.jsx("span",{style:{flex:"none",margin:"0 5px"},children:u}),m.jsx("span",{children:l.naturalWidth}),m.jsx("span",{style:{flex:"none",margin:"0 5px"},children:"x"}),m.jsx("span",{children:l.naturalHeight})]}),m.jsx("div",{style:{display:"flex",flex:"none",width:r,height:o,margin:15,...fr},children:m.jsx("img",{width:l.naturalWidth*h,height:l.naturalHeight*h,alt:u||c,style:{cursor:v?"pointer":"initial"},draggable:"false",src:l.src,onClick:v})})]});function Mv(l,u){const c=/(\x1b\[(\d+(;\d+)*)m)|([^\x1b]+)/g,f=[];let r,o={},h=!1,v=u==null?void 0:u.fg,y=u==null?void 0:u.bg;for(;(r=c.exec(l))!==null;){const[,,A,,E]=r;if(A){const S=+A;switch(S){case 0:o={};break;case 1:o["font-weight"]="bold";break;case 2:o.opacity="0.8";break;case 3:o["font-style"]="italic";break;case 4:o["text-decoration"]="underline";break;case 7:h=!0;break;case 8:o.display="none";break;case 9:o["text-decoration"]="line-through";break;case 22:delete o["font-weight"],delete o["font-style"],delete o.opacity,delete o["text-decoration"];break;case 23:delete o["font-weight"],delete o["font-style"],delete o.opacity;break;case 24:delete o["text-decoration"];break;case 27:h=!1;break;case 30:case 31:case 32:case 33:case 34:case 35:case 36:case 37:v=U2[S-30];break;case 39:v=u==null?void 0:u.fg;break;case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:y=U2[S-40];break;case 49:y=u==null?void 0:u.bg;break;case 53:o["text-decoration"]="overline";break;case 90:case 91:case 92:case 93:case 94:case 95:case 96:case 97:v=Q2[S-90];break;case 100:case 101:case 102:case 103:case 104:case 105:case 106:case 107:y=Q2[S-100];break}}else if(E){const S={...o},O=h?y:v;O!==void 0&&(S.color=O);const X=h?v:y;X!==void 0&&(S["background-color"]=X),f.push(`<span style="${Hv(S)}">${jv(E)}</span>`)}}return f.join("")}const U2={0:"var(--vscode-terminal-ansiBlack)",1:"var(--vscode-terminal-ansiRed)",2:"var(--vscode-terminal-ansiGreen)",3:"var(--vscode-terminal-ansiYellow)",4:"var(--vscode-terminal-ansiBlue)",5:"var(--vscode-terminal-ansiMagenta)",6:"var(--vscode-terminal-ansiCyan)",7:"var(--vscode-terminal-ansiWhite)"},Q2={0:"var(--vscode-terminal-ansiBrightBlack)",1:"var(--vscode-terminal-ansiBrightRed)",2:"var(--vscode-terminal-ansiBrightGreen)",3:"var(--vscode-terminal-ansiBrightYellow)",4:"var(--vscode-terminal-ansiBrightBlue)",5:"var(--vscode-terminal-ansiBrightMagenta)",6:"var(--vscode-terminal-ansiBrightCyan)",7:"var(--vscode-terminal-ansiBrightWhite)"};function jv(l){return l.replace(/[&"<>]/g,u=>({"&":"&",'"':""","<":"<",">":">"})[u])}function Hv(l){return Object.entries(l).map(([u,c])=>`${u}: ${c}`).join("; ")}const wr=({code:l,children:u,testId:c})=>{const f=ct.useMemo(()=>Uv(l),[l]);return m.jsxs("div",{className:"test-error-container test-error-text","data-testid":c,children:[u,m.jsx("div",{className:"test-error-view",dangerouslySetInnerHTML:{__html:f||""}})]})},Nv=({prompt:l})=>{const[u,c]=ct.useState(!1);return m.jsx("button",{className:"button",style:{minWidth:100},onClick:async()=>{await navigator.clipboard.writeText(l),c(!0),setTimeout(()=>{c(!1)},3e3)},children:u?"Copied":"Copy prompt"})},Bv=({diff:l})=>m.jsx("div",{"data-testid":"test-screenshot-error-view",className:"test-error-view",children:m.jsx(um,{diff:l,hideDetails:!0},"image-diff")});function Uv(l){return Mv(l||"",{bg:"var(--color-canvas-subtle)",fg:"var(--color-fg-default)"})}const Qv=` + rgb(0 0 0 / 25%) 0px 6px 12px`, + }, + um = ({ diff: l, noTargetBlank: u, hideDetails: c }) => { + const [f, r] = ct.useState(l.diff ? 'diff' : 'actual'), + [o, h] = ct.useState(!1), + [v, y] = ct.useState(null), + [A, E] = ct.useState('Expected'), + [S, O] = ct.useState(null), + [X, B] = ct.useState(null), + [b, p] = Wh(); + ct.useEffect(() => { + (async () => { + var K, J, k, nt; + (y(await kf((K = l.expected) == null ? void 0 : K.attachment.path)), + E(((J = l.expected) == null ? void 0 : J.title) || 'Expected'), + O(await kf((k = l.actual) == null ? void 0 : k.attachment.path)), + B(await kf((nt = l.diff) == null ? void 0 : nt.attachment.path))); + })(); + }, [l]); + const x = v && S && X, + R = x ? Math.max(v.naturalWidth, S.naturalWidth, 200) : 500, + U = x ? Math.max(v.naturalHeight, S.naturalHeight, 200) : 500, + Z = Math.min(1, (b.width - 30) / R), + F = Math.min(1, (b.width - 50) / R / 2), + j = R * Z, + D = U * Z, + N = { flex: 'none', margin: '0 10px', cursor: 'pointer', userSelect: 'none' }; + return m.jsx('div', { + 'data-testid': 'test-result-image-mismatch', + style: { display: 'flex', flexDirection: 'column', alignItems: 'center', flex: 'auto' }, + ref: p, + children: + x && + m.jsxs(m.Fragment, { + children: [ + m.jsxs('div', { + 'data-testid': 'test-result-image-mismatch-tabs', + style: { display: 'flex', margin: '10px 0 20px' }, + children: [ + l.diff && + m.jsx('div', { + style: { ...N, fontWeight: f === 'diff' ? 600 : 'initial' }, + onClick: () => r('diff'), + children: 'Diff', + }), + m.jsx('div', { + style: { ...N, fontWeight: f === 'actual' ? 600 : 'initial' }, + onClick: () => r('actual'), + children: 'Actual', + }), + m.jsx('div', { + style: { ...N, fontWeight: f === 'expected' ? 600 : 'initial' }, + onClick: () => r('expected'), + children: A, + }), + m.jsx('div', { + style: { ...N, fontWeight: f === 'sxs' ? 600 : 'initial' }, + onClick: () => r('sxs'), + children: 'Side by side', + }), + m.jsx('div', { + style: { ...N, fontWeight: f === 'slider' ? 600 : 'initial' }, + onClick: () => r('slider'), + children: 'Slider', + }), + ], + }), + m.jsxs('div', { + style: { + display: 'flex', + justifyContent: 'center', + flex: 'auto', + minHeight: D + 60, + }, + children: [ + l.diff && + f === 'diff' && + m.jsx(En, { + image: X, + alt: 'Diff', + hideSize: c, + canvasWidth: j, + canvasHeight: D, + scale: Z, + }), + l.diff && + f === 'actual' && + m.jsx(En, { + image: S, + alt: 'Actual', + hideSize: c, + canvasWidth: j, + canvasHeight: D, + scale: Z, + }), + l.diff && + f === 'expected' && + m.jsx(En, { + image: v, + alt: A, + hideSize: c, + canvasWidth: j, + canvasHeight: D, + scale: Z, + }), + l.diff && + f === 'slider' && + m.jsx(Dv, { + expectedImage: v, + actualImage: S, + hideSize: c, + canvasWidth: j, + canvasHeight: D, + scale: Z, + expectedTitle: A, + }), + l.diff && + f === 'sxs' && + m.jsxs('div', { + style: { display: 'flex' }, + children: [ + m.jsx(En, { + image: v, + title: A, + hideSize: c, + canvasWidth: F * R, + canvasHeight: F * U, + scale: F, + }), + m.jsx(En, { + image: o ? X : S, + title: o ? 'Diff' : 'Actual', + onClick: () => h(!o), + hideSize: c, + canvasWidth: F * R, + canvasHeight: F * U, + scale: F, + }), + ], + }), + !l.diff && + f === 'actual' && + m.jsx(En, { + image: S, + title: 'Actual', + hideSize: c, + canvasWidth: j, + canvasHeight: D, + scale: Z, + }), + !l.diff && + f === 'expected' && + m.jsx(En, { + image: v, + title: A, + hideSize: c, + canvasWidth: j, + canvasHeight: D, + scale: Z, + }), + !l.diff && + f === 'sxs' && + m.jsxs('div', { + style: { display: 'flex' }, + children: [ + m.jsx(En, { + image: v, + title: A, + canvasWidth: F * R, + canvasHeight: F * U, + scale: F, + }), + m.jsx(En, { + image: S, + title: 'Actual', + canvasWidth: F * R, + canvasHeight: F * U, + scale: F, + }), + ], + }), + ], + }), + !c && + m.jsxs('div', { + style: { alignSelf: 'start', lineHeight: '18px', marginLeft: '15px' }, + children: [ + m.jsx('div', { + children: + l.diff && + m.jsx('a', { + target: '_blank', + href: l.diff.attachment.path, + rel: 'noreferrer', + children: l.diff.attachment.name, + }), + }), + m.jsx('div', { + children: m.jsx('a', { + target: u ? '' : '_blank', + href: l.actual.attachment.path, + rel: 'noreferrer', + children: l.actual.attachment.name, + }), + }), + m.jsx('div', { + children: m.jsx('a', { + target: u ? '' : '_blank', + href: l.expected.attachment.path, + rel: 'noreferrer', + children: l.expected.attachment.name, + }), + }), + ], + }), + ], + }), + }); + }, + Dv = ({ + expectedImage: l, + actualImage: u, + canvasWidth: c, + canvasHeight: f, + scale: r, + expectedTitle: o, + hideSize: h, + }) => { + const v = { position: 'absolute', top: 0, left: 0 }, + [y, A] = ct.useState(c / 2), + E = l.naturalWidth === u.naturalWidth && l.naturalHeight === u.naturalHeight; + return m.jsxs('div', { + style: { + flex: 'none', + display: 'flex', + alignItems: 'center', + flexDirection: 'column', + userSelect: 'none', + }, + children: [ + !h && + m.jsxs('div', { + style: { margin: 5 }, + children: [ + !E && + m.jsx('span', { + style: { flex: 'none', margin: '0 5px' }, + children: 'Expected ', + }), + m.jsx('span', { children: l.naturalWidth }), + m.jsx('span', { style: { flex: 'none', margin: '0 5px' }, children: 'x' }), + m.jsx('span', { children: l.naturalHeight }), + !E && + m.jsx('span', { + style: { flex: 'none', margin: '0 5px 0 15px' }, + children: 'Actual ', + }), + !E && m.jsx('span', { children: u.naturalWidth }), + !E && + m.jsx('span', { style: { flex: 'none', margin: '0 5px' }, children: 'x' }), + !E && m.jsx('span', { children: u.naturalHeight }), + ], + }), + m.jsxs('div', { + style: { position: 'relative', width: c, height: f, margin: 15, ...fr }, + children: [ + m.jsx(Rv, { + orientation: 'horizontal', + offsets: [y], + setOffsets: (S) => A(S[0]), + resizerColor: '#57606a80', + resizerWidth: 6, + }), + m.jsx('img', { + alt: o, + style: { width: l.naturalWidth * r, height: l.naturalHeight * r }, + draggable: 'false', + src: l.src, + }), + m.jsx('div', { + style: { ...v, bottom: 0, overflow: 'hidden', width: y, ...fr }, + children: m.jsx('img', { + alt: 'Actual', + style: { width: u.naturalWidth * r, height: u.naturalHeight * r }, + draggable: 'false', + src: u.src, + }), + }), + ], + }), + ], + }); + }, + En = ({ + image: l, + title: u, + alt: c, + hideSize: f, + canvasWidth: r, + canvasHeight: o, + scale: h, + onClick: v, + }) => + m.jsxs('div', { + style: { flex: 'none', display: 'flex', alignItems: 'center', flexDirection: 'column' }, + children: [ + !f && + m.jsxs('div', { + style: { margin: 5 }, + children: [ + u && m.jsx('span', { style: { flex: 'none', margin: '0 5px' }, children: u }), + m.jsx('span', { children: l.naturalWidth }), + m.jsx('span', { style: { flex: 'none', margin: '0 5px' }, children: 'x' }), + m.jsx('span', { children: l.naturalHeight }), + ], + }), + m.jsx('div', { + style: { display: 'flex', flex: 'none', width: r, height: o, margin: 15, ...fr }, + children: m.jsx('img', { + width: l.naturalWidth * h, + height: l.naturalHeight * h, + alt: u || c, + style: { cursor: v ? 'pointer' : 'initial' }, + draggable: 'false', + src: l.src, + onClick: v, + }), + }), + ], + }); + function Mv(l, u) { + const c = /(\x1b\[(\d+(;\d+)*)m)|([^\x1b]+)/g, + f = []; + let r, + o = {}, + h = !1, + v = u == null ? void 0 : u.fg, + y = u == null ? void 0 : u.bg; + for (; (r = c.exec(l)) !== null; ) { + const [, , A, , E] = r; + if (A) { + const S = +A; + switch (S) { + case 0: + o = {}; + break; + case 1: + o['font-weight'] = 'bold'; + break; + case 2: + o.opacity = '0.8'; + break; + case 3: + o['font-style'] = 'italic'; + break; + case 4: + o['text-decoration'] = 'underline'; + break; + case 7: + h = !0; + break; + case 8: + o.display = 'none'; + break; + case 9: + o['text-decoration'] = 'line-through'; + break; + case 22: + (delete o['font-weight'], + delete o['font-style'], + delete o.opacity, + delete o['text-decoration']); + break; + case 23: + (delete o['font-weight'], delete o['font-style'], delete o.opacity); + break; + case 24: + delete o['text-decoration']; + break; + case 27: + h = !1; + break; + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + v = U2[S - 30]; + break; + case 39: + v = u == null ? void 0 : u.fg; + break; + case 40: + case 41: + case 42: + case 43: + case 44: + case 45: + case 46: + case 47: + y = U2[S - 40]; + break; + case 49: + y = u == null ? void 0 : u.bg; + break; + case 53: + o['text-decoration'] = 'overline'; + break; + case 90: + case 91: + case 92: + case 93: + case 94: + case 95: + case 96: + case 97: + v = Q2[S - 90]; + break; + case 100: + case 101: + case 102: + case 103: + case 104: + case 105: + case 106: + case 107: + y = Q2[S - 100]; + break; + } + } else if (E) { + const S = { ...o }, + O = h ? y : v; + O !== void 0 && (S.color = O); + const X = h ? v : y; + (X !== void 0 && (S['background-color'] = X), + f.push(`<span style="${Hv(S)}">${jv(E)}</span>`)); + } + } + return f.join(''); + } + const U2 = { + 0: 'var(--vscode-terminal-ansiBlack)', + 1: 'var(--vscode-terminal-ansiRed)', + 2: 'var(--vscode-terminal-ansiGreen)', + 3: 'var(--vscode-terminal-ansiYellow)', + 4: 'var(--vscode-terminal-ansiBlue)', + 5: 'var(--vscode-terminal-ansiMagenta)', + 6: 'var(--vscode-terminal-ansiCyan)', + 7: 'var(--vscode-terminal-ansiWhite)', + }, + Q2 = { + 0: 'var(--vscode-terminal-ansiBrightBlack)', + 1: 'var(--vscode-terminal-ansiBrightRed)', + 2: 'var(--vscode-terminal-ansiBrightGreen)', + 3: 'var(--vscode-terminal-ansiBrightYellow)', + 4: 'var(--vscode-terminal-ansiBrightBlue)', + 5: 'var(--vscode-terminal-ansiBrightMagenta)', + 6: 'var(--vscode-terminal-ansiBrightCyan)', + 7: 'var(--vscode-terminal-ansiBrightWhite)', + }; + function jv(l) { + return l.replace( + /[&"<>]/g, + (u) => ({ '&': '&', '"': '"', '<': '<', '>': '>' })[u] + ); + } + function Hv(l) { + return Object.entries(l) + .map(([u, c]) => `${u}: ${c}`) + .join('; '); + } + const wr = ({ code: l, children: u, testId: c }) => { + const f = ct.useMemo(() => Uv(l), [l]); + return m.jsxs('div', { + className: 'test-error-container test-error-text', + 'data-testid': c, + children: [ + u, + m.jsx('div', { + className: 'test-error-view', + dangerouslySetInnerHTML: { __html: f || '' }, + }), + ], + }); + }, + Nv = ({ prompt: l }) => { + const [u, c] = ct.useState(!1); + return m.jsx('button', { + className: 'button', + style: { minWidth: 100 }, + onClick: async () => { + (await navigator.clipboard.writeText(l), + c(!0), + setTimeout(() => { + c(!1); + }, 3e3)); + }, + children: u ? 'Copied' : 'Copy prompt', + }); + }, + Bv = ({ diff: l }) => + m.jsx('div', { + 'data-testid': 'test-screenshot-error-view', + className: 'test-error-view', + children: m.jsx(um, { diff: l, hideDetails: !0 }, 'image-diff'), + }); + function Uv(l) { + return Mv(l || '', { bg: 'var(--color-canvas-subtle)', fg: 'var(--color-fg-default)' }); + } + const Qv = ` # Instructions - Following Playwright test failed. - Explain why, be concise, respect Playwright best practices. - Provide a snippet of code with the fix, if possible. -`.trimStart();async function zv({testInfo:l,metadata:u,errorContext:c,errors:f,buildCodeFrame:r,stdout:o,stderr:h}){var S;const v=new Set(f.filter(O=>O.message&&!O.message.includes(` -`)).map(O=>O.message));for(const O of f)for(const X of v.keys())(S=O.message)!=null&&S.includes(X)&&v.delete(X);const y=f.filter(O=>!(!O.message||!O.message.includes(` -`)&&!v.has(O.message)));if(!y.length)return;const A=[Qv,"# Test info","",l];o&&A.push("","# Stdout","","```",Jf(o),"```"),h&&A.push("","# Stderr","","```",Jf(h),"```"),A.push("","# Error details");for(const O of y)A.push("","```",Jf(O.message||""),"```");c&&A.push(c);const E=await r(y[y.length-1]);return E&&A.push("","# Test source","","```ts",E,"```"),u!=null&&u.gitDiff&&A.push("","# Local changes","","```diff",u.gitDiff,"```"),A.join(` -`)}const Yv=new RegExp("([\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)|(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~])))","g");function Jf(l){return l.replace(Yv,"")}function Lv(l,u){var f;const c=new Map;for(const r of l){const o=r.name.match(/^(.*)-(expected|actual|diff|previous)(\.[^.]+)?$/);if(!o)continue;const[,h,v,y=""]=o,A=h+y;let E=c.get(A);E||(E={name:A,anchors:[`attachment-${h}`]},c.set(A,E)),E.anchors.push(`attachment-${u.attachments.indexOf(r)}`),v==="actual"&&(E.actual={attachment:r}),v==="expected"&&(E.expected={attachment:r,title:"Expected"}),v==="previous"&&(E.expected={attachment:r,title:"Previous"}),v==="diff"&&(E.diff={attachment:r})}for(const[r,o]of c)!o.actual||!o.expected?c.delete(r):(l.delete(o.actual.attachment),l.delete(o.expected.attachment),l.delete((f=o.diff)==null?void 0:f.attachment));return[...c.values()]}const Gv=({test:l,result:u,testRunMetadata:c,options:f})=>{const{screenshots:r,videos:o,traces:h,otherAttachments:v,diffs:y,errors:A,otherAttachmentAnchors:E,screenshotAnchors:S,errorContext:O}=ct.useMemo(()=>{const B=u.attachments.filter(N=>!N.name.startsWith("_")),b=new Set(B.filter(N=>N.contentType.startsWith("image/"))),p=[...b].map(N=>`attachment-${B.indexOf(N)}`),x=B.filter(N=>N.contentType.startsWith("video/")),R=B.filter(N=>N.name==="trace"),U=B.find(N=>N.name==="error-context"),Z=new Set(B);[...b,...x,...R].forEach(N=>Z.delete(N));const F=[...Z].map(N=>`attachment-${B.indexOf(N)}`),j=Lv(b,u),D=u.errors.map(N=>N.message);return{screenshots:[...b],videos:x,traces:R,otherAttachments:Z,diffs:j,errors:D,otherAttachmentAnchors:F,screenshotAnchors:p,errorContext:U}},[u]),X=P5(async()=>{if(f!=null&&f.noCopyPrompt)return;const B=u.attachments.find(R=>R.name==="stdout"),b=u.attachments.find(R=>R.name==="stderr"),p=B!=null&&B.body&&B.contentType==="text/plain"?B.body:void 0,x=b!=null&&b.body&&b.contentType==="text/plain"?b.body:void 0;return await zv({testInfo:[`- Name: ${l.path.join(" >> ")} >> ${l.title}`,`- Location: ${l.location.file}:${l.location.line}:${l.location.column}`].join(` -`),metadata:c,errorContext:O!=null&&O.path?await fetch(O.path).then(R=>R.text()):O==null?void 0:O.body,errors:u.errors,buildCodeFrame:async R=>R.codeframe,stdout:p,stderr:x})},[l,O,c,u],void 0);return m.jsxs("div",{className:"test-result",children:[!!A.length&&m.jsxs(ke,{header:"Errors",children:[X&&m.jsx("div",{style:{position:"absolute",right:"16px",padding:"10px",zIndex:1},children:m.jsx(Nv,{prompt:X})}),A.map((B,b)=>{const p=Xv(B,y);return m.jsxs(m.Fragment,{children:[m.jsx(wr,{code:B},"test-result-error-message-"+b),p&&m.jsx(Bv,{diff:p})]})})]}),!!u.steps.length&&m.jsx(ke,{header:"Test Steps",children:u.steps.map((B,b)=>m.jsx(cm,{step:B,result:u,test:l,depth:0},`step-${b}`))}),y.map((B,b)=>m.jsx(Si,{id:B.anchors,children:m.jsx(ke,{dataTestId:"test-results-image-diff",header:`Image mismatch: ${B.name}`,revealOnAnchorId:B.anchors,children:m.jsx(um,{diff:B})})},`diff-${b}`)),!!r.length&&m.jsx(ke,{header:"Screenshots",revealOnAnchorId:S,children:r.map((B,b)=>m.jsxs(Si,{id:`attachment-${u.attachments.indexOf(B)}`,children:[m.jsx("a",{href:Ve(B.path),children:m.jsx("img",{className:"screenshot",src:Ve(B.path)})}),m.jsx(nc,{attachment:B,result:u})]},`screenshot-${b}`))}),!!h.length&&m.jsx(Si,{id:"attachment-trace",children:m.jsx(ke,{header:"Traces",revealOnAnchorId:"attachment-trace",children:m.jsxs("div",{children:[m.jsx("a",{href:Ve(nm(h)),children:m.jsx("img",{className:"screenshot",src:Cv,style:{width:192,height:117,marginLeft:20}})}),h.map((B,b)=>m.jsx(nc,{attachment:B,result:u,linkName:h.length===1?"trace":`trace-${b+1}`},`trace-${b}`))]})})}),!!o.length&&m.jsx(Si,{id:"attachment-video",children:m.jsx(ke,{header:"Videos",revealOnAnchorId:"attachment-video",children:o.map(B=>m.jsxs("div",{children:[m.jsx("video",{controls:!0,children:m.jsx("source",{src:Ve(B.path),type:B.contentType})}),m.jsx(nc,{attachment:B,result:u})]},B.path))})}),!!v.size&&m.jsx(ke,{header:"Attachments",revealOnAnchorId:E,dataTestId:"attachments",children:[...v].map((B,b)=>m.jsx(Si,{id:`attachment-${u.attachments.indexOf(B)}`,children:m.jsx(nc,{attachment:B,result:u,openInNewTab:B.contentType.startsWith("text/html")})},`attachment-link-${b}`))})]})};function Xv(l,u){const c=l.split(` -`)[0];if(!(!c.includes("toHaveScreenshot")&&!c.includes("toMatchSnapshot")))return u.find(f=>l.includes(f.name))}const cm=({test:l,step:u,result:c,depth:f})=>{const r=se();return m.jsx(Tv,{title:m.jsxs("div",{"aria-label":u.title,className:"step-title-container",children:[hc(u.error||u.duration===-1?"failed":u.skipped?"skipped":"passed"),m.jsxs("span",{className:"step-title-text",children:[m.jsx("span",{children:u.title}),u.count>1&&m.jsxs(m.Fragment,{children:[" ✕ ",m.jsx("span",{className:"test-result-counter",children:u.count})]}),u.location&&m.jsxs("span",{className:"test-result-path",children:["— ",u.location.file,":",u.location.line]})]}),m.jsx("span",{className:"step-spacer"}),u.attachments.length>0&&m.jsx("a",{className:"step-attachment-link",title:"reveal attachment",href:Ve(Cn({test:l,result:c,anchor:`attachment-${u.attachments[0]}`},r)),onClick:o=>{o.stopPropagation()},children:Ih()}),m.jsx("span",{className:"step-duration",children:Ol(u.duration)})]}),loadChildren:u.steps.length||u.snippet?()=>{const o=u.snippet?[m.jsx(wr,{testId:"test-snippet",code:u.snippet},"line")]:[],h=u.steps.map((v,y)=>m.jsx(cm,{step:v,depth:f+1,result:c,test:l},y));return o.concat(h)}:void 0,depth:f})},Vv=({projectNames:l,test:u,testRunMetadata:c,run:f,next:r,prev:o,options:h})=>{const[v,y]=ct.useState(f),A=se(),E=u.annotations.filter(S=>!S.type.startsWith("_"))??[];return m.jsxs(m.Fragment,{children:[m.jsx(Or,{title:u.title,leftSuperHeader:m.jsx("div",{className:"test-case-path",children:u.path.join(" › ")}),rightSuperHeader:m.jsxs(m.Fragment,{children:[m.jsx("div",{className:Ze(!o&&"hidden"),children:m.jsx(Tn,{href:Cn({test:o},A),children:"« previous"})}),m.jsx("div",{style:{width:10}}),m.jsx("div",{className:Ze(!r&&"hidden"),children:m.jsx(Tn,{href:Cn({test:r},A),children:"next »"})})]})}),m.jsxs("div",{className:"hbox",style:{lineHeight:"24px"},children:[m.jsx("div",{className:"test-case-location",children:m.jsxs(Sr,{value:`${u.location.file}:${u.location.line}`,children:[u.location.file,":",u.location.line]})}),m.jsx("div",{style:{flex:"auto"}}),m.jsx(tm,{test:u,trailingSeparator:!0}),m.jsx("div",{className:"test-case-duration",children:Ol(u.duration)})]}),m.jsx($h,{style:{marginLeft:"6px"},projectNames:l,activeProjectName:u.projectName,otherLabels:u.tags}),u.results.length===0&&E.length!==0&&m.jsx(ke,{header:"Annotations",dataTestId:"test-case-annotations",children:E.map((S,O)=>m.jsx(z2,{annotation:S},O))}),m.jsx(Sv,{tabs:u.results.map((S,O)=>({id:String(O),title:m.jsxs("div",{style:{display:"flex",alignItems:"center"},children:[hc(S.status)," ",Zv(O),u.results.length>1&&m.jsx("span",{className:"test-case-run-duration",children:Ol(S.duration)})]}),render:()=>{const X=S.annotations.filter(B=>!B.type.startsWith("_"));return m.jsxs(m.Fragment,{children:[!!X.length&&m.jsx(ke,{header:"Annotations",dataTestId:"test-case-annotations",children:X.map((B,b)=>m.jsx(z2,{annotation:B},b))}),m.jsx(Gv,{test:u,result:S,testRunMetadata:c,options:h})]})}}))||[],selectedTab:String(v),setSelectedTab:S=>y(+S)})]})};function z2({annotation:{type:l,description:u}}){return m.jsxs("div",{className:"test-case-annotation",children:[m.jsx("span",{style:{fontWeight:"bold"},children:l}),u&&m.jsxs(Sr,{value:u,children:[": ",Di(u)]})]})}function Zv(l){return l?`Retry #${l}`:"Run"}const sm=({file:l,projectNames:u,isFileExpanded:c,setFileExpanded:f,footer:r})=>{const o=se();return m.jsx(im,{expanded:c?c(l.fileId):void 0,noInsets:!0,setExpanded:f?(h=>f(l.fileId,h)):void 0,header:m.jsx("span",{className:"chip-header-allow-selection",children:l.fileName}),footer:r,children:l.tests.map(h=>m.jsxs("div",{className:Ze("test-file-test","test-file-test-outcome-"+h.outcome),children:[m.jsxs("div",{className:"hbox",style:{alignItems:"flex-start"},children:[m.jsxs("div",{className:"hbox",children:[m.jsx("span",{className:"test-file-test-status-icon",children:hc(h.outcome)}),m.jsxs("span",{children:[m.jsx(Tn,{href:Cn({test:h},o),title:[...h.path,h.title].join(" › "),children:m.jsx("span",{className:"test-file-title",children:[...h.path,h.title].join(" › ")})}),m.jsx($h,{style:{marginLeft:"6px"},projectNames:u,activeProjectName:h.projectName,otherLabels:h.tags})]})]}),m.jsx("span",{"data-testid":"test-duration",style:{minWidth:"50px",textAlign:"right"},children:Ol(h.duration)})]}),m.jsx("div",{className:"test-file-details-row",children:m.jsxs("div",{className:"test-file-details-row-items",children:[m.jsx(Tn,{href:Cn({test:h},o),title:[...h.path,h.title].join(" › "),className:"test-file-path-link",children:m.jsxs("span",{className:"test-file-path",children:[h.location.file,":",h.location.line]})}),m.jsx(qv,{test:h}),m.jsx(Iv,{test:h}),m.jsx(tm,{test:h,dim:!0})]})})]},`test-${h.testId}`))})};function qv({test:l}){const u=se();for(const c of l.results)for(const f of c.attachments)if(f.contentType.startsWith("image/")&&f.name.match(/-(expected|actual|diff)/))return m.jsx(Tr,{href:Cn({test:l,result:c,anchor:`attachment-${c.attachments.indexOf(f)}`},u),title:"View images",dim:!0,children:k5()})}function Iv({test:l}){const u=se(),c=l.results.find(f=>f.attachments.some(r=>r.name==="video"));return c?m.jsx(Tr,{href:Cn({test:l,result:c,anchor:"attachment-video"},u),title:"View video",dim:!0,children:J5()}):void 0}class Kv extends ct.Component{constructor(){super(...arguments);yn(this,"state",{error:null,errorInfo:null})}componentDidCatch(c,f){this.setState({error:c,errorInfo:f})}render(){var c,f,r;return this.state.error||this.state.errorInfo?m.jsxs("div",{className:"metadata-view p-3",children:[m.jsx("p",{children:"An error was encountered when trying to render metadata."}),m.jsx("p",{children:m.jsxs("pre",{style:{overflow:"scroll"},children:[(c=this.state.error)==null?void 0:c.message,m.jsx("br",{}),(f=this.state.error)==null?void 0:f.stack,m.jsx("br",{}),(r=this.state.errorInfo)==null?void 0:r.componentStack]})})]}):this.props.children}}const kv=l=>m.jsx(Kv,{children:m.jsx(Jv,{metadata:l.metadata})}),Jv=l=>{const u=l.metadata,c=se().has("show-metadata-other")?Object.entries(l.metadata).filter(([r])=>!fm.has(r)):[];if(u.ci||u.gitCommit||c.length>0)return m.jsxs("div",{className:"metadata-view",children:[u.ci&&!u.gitCommit&&m.jsx(Fv,{info:u.ci}),u.gitCommit&&m.jsx(Wv,{ci:u.ci,commit:u.gitCommit}),c.length>0&&m.jsxs(m.Fragment,{children:[(u.gitCommit||u.ci)&&m.jsx("div",{className:"metadata-separator"}),m.jsx("div",{className:"metadata-section metadata-properties",role:"list",children:c.map(([r,o])=>{const h=typeof o!="object"||o===null||o===void 0?String(o):JSON.stringify(o),v=h.length>1e3?h.slice(0,1e3)+"…":h;return m.jsx("div",{className:"copyable-property",role:"listitem",children:m.jsxs(Sr,{value:h,children:[m.jsx("span",{style:{fontWeight:"bold"},title:r,children:r}),": ",m.jsx("span",{title:v,children:Di(v)})]})},r)})})]})]})},Fv=({info:l})=>{const u=l.prTitle||`Commit ${l.commitHash}`,c=l.prHref||l.commitHref;return m.jsx("div",{className:"metadata-section",role:"list",children:m.jsx("div",{role:"listitem",children:m.jsx("a",{href:Ve(c),target:"_blank",rel:"noopener noreferrer",title:u,children:u})})})},Wv=({ci:l,commit:u})=>{const c=(l==null?void 0:l.prTitle)||u.subject,f=(l==null?void 0:l.prHref)||(l==null?void 0:l.commitHref),r=` <${u.author.email}>`,o=`${u.author.name}${r}`,h=Intl.DateTimeFormat(void 0,{dateStyle:"medium"}).format(u.committer.time),v=Intl.DateTimeFormat(void 0,{dateStyle:"full",timeStyle:"long"}).format(u.committer.time);return m.jsxs("div",{className:"metadata-section",role:"list",children:[m.jsxs("div",{role:"listitem",children:[f&&m.jsx("a",{href:Ve(f),target:"_blank",rel:"noopener noreferrer",title:c,children:c}),!f&&m.jsx("span",{title:c,children:c})]}),m.jsxs("div",{role:"listitem",className:"hbox",children:[m.jsx("span",{className:"mr-1",children:o}),m.jsxs("span",{title:v,children:[" on ",h]})]})]})},fm=new Set(["ci","gitCommit","gitDiff","actualWorkers"]),_v=l=>{const u=Object.entries(l).filter(([c])=>!fm.has(c));return!l.ci&&!l.gitCommit&&!u.length},Pv=({files:l,expandedFiles:u,setExpandedFiles:c,projectNames:f})=>{const r=ct.useMemo(()=>{const o=[];let h=0;for(const v of l)h+=v.tests.length,o.push({file:v,defaultExpanded:h<200});return o},[l]);return m.jsx(m.Fragment,{children:r.length>0?r.map(({file:o,defaultExpanded:h})=>m.jsx(sm,{file:o,projectNames:f,isFileExpanded:v=>{const y=u.get(v);return y===void 0?h:!!y},setFileExpanded:(v,y)=>{const A=new Map(u);A.set(v,y),c(A)}},`file-${o.fileId}`)):m.jsx("div",{className:"chip-header test-file-no-files",children:"No tests found"})})},Y2=({report:l,filteredStats:u,metadataVisible:c,toggleMetadataVisible:f})=>{if(!l)return null;const r=l.projectNames.length===1&&!!l.projectNames[0],o=!r&&!u,h=!_v(l.metadata)&&m.jsxs("div",{className:Ze("metadata-toggle",!o&&"metadata-toggle-second-line"),role:"button",onClick:f,title:c?"Hide metadata":"Show metadata",children:[c?Ni():Cl(),"Metadata"]}),v=m.jsxs("div",{className:"test-file-header-info",children:[r&&m.jsxs("div",{"data-testid":"project-name",children:["Project: ",l.projectNames[0]]}),u&&m.jsxs("div",{"data-testid":"filtered-tests-count",children:["Filtered: ",u.total," ",!!u.total&&"("+Ol(u.duration)+")"]}),o&&h]}),y=m.jsxs(m.Fragment,{children:[m.jsx("div",{"data-testid":"overall-time",style:{marginRight:"10px"},children:l?new Date(l.startTime).toLocaleString():""}),m.jsxs("div",{"data-testid":"overall-duration",children:["Total time: ",Ol(l.duration??0)]})]});return m.jsxs(m.Fragment,{children:[m.jsx(Or,{title:l.options.title,leftSuperHeader:v,rightSuperHeader:y}),!o&&h,c&&m.jsx(kv,{metadata:l.metadata}),!!l.errors.length&&m.jsx(ke,{header:"Errors",dataTestId:"report-errors",children:l.errors.map((A,E)=>m.jsx(wr,{code:A},"test-report-error-message-"+E))})]})},rm=l=>{const u=Math.round(l/1e3),c=Math.floor(u/60),f=u%60;return c===0?`${f}s`:`${c}m ${f}s`},$v=({entries:l})=>{const f=Math.max(...l.map(D=>D.label.length))*10,o={top:20,right:20,bottom:40,left:Math.min(800*.5,Math.max(50,f))},h=800-o.left-o.right,v=Math.min(...l.map(D=>D.startTime)),y=Math.max(...l.map(D=>D.startTime+D.duration));let A,E;const S=y-v;S<60*1e3?(A=10*1e3,E=!0):S<300*1e3?(A=30*1e3,E=!0):S<1800*1e3?(A=300*1e3,E=!1):(A=600*1e3,E=!1);const O=Math.ceil(v/A)*A,X=(D,N)=>{const K=new Date(D).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",second:E?"2-digit":void 0});if(N)return K;if(K.endsWith(" AM")||K.endsWith(" PM"))return K.slice(0,-3)},b=(y-v)*1.1,p=Math.ceil(b/A)*A,x=h/p,R=20,U=8,Z=l.length*(R+U),F=[];for(let D=O;D<=v+p;D+=A){const N=D-v;F.push({x:N*x,label:X(D,D===O)})}const j=Z+o.top+o.bottom;return m.jsx("svg",{viewBox:`0 0 800 ${j}`,preserveAspectRatio:"xMidYMid meet",style:{width:"100%",height:"auto"},role:"img",children:m.jsxs("g",{transform:`translate(${o.left}, ${o.top})`,role:"presentation",children:[F.map(({x:D,label:N},K)=>m.jsxs("g",{"aria-hidden":"true",children:[m.jsx("line",{x1:D,y1:0,x2:D,y2:Z,stroke:"var(--color-border-muted)",strokeWidth:"1"}),m.jsx("text",{x:D,y:Z+20,textAnchor:"middle",dominantBaseline:"middle",fontSize:"12",fill:"var(--color-fg-muted)",children:N})]},K)),l.map((D,N)=>{const K=D.startTime-v,J=D.duration*x,k=K*x,nt=N*(R+U),P=["var(--color-scale-blue-2)","var(--color-scale-blue-3)","var(--color-scale-blue-4)"],st=P[N%P.length];return m.jsxs("g",{role:"listitem","aria-label":D.tooltip,children:[m.jsx("rect",{className:"gantt-bar",x:k,y:nt,width:J,height:R,fill:st,rx:"2",tabIndex:0,children:m.jsx("title",{children:D.tooltip})}),m.jsx("text",{x:k+J+6,y:nt+R/2,dominantBaseline:"middle",fontSize:"12",fill:"var(--color-fg-muted)","aria-hidden":"true",children:rm(D.duration)}),m.jsx("text",{x:-10,y:nt+R/2,textAnchor:"end",dominantBaseline:"middle",fontSize:"12",fill:"var(--color-fg-muted)","aria-hidden":"true",children:D.label})]},N)}),m.jsx("line",{x1:0,y1:0,x2:0,y2:Z,stroke:"var(--color-fg-muted)",strokeWidth:"1","aria-hidden":"true"}),m.jsx("line",{x1:0,y1:Z,x2:h,y2:Z,stroke:"var(--color-fg-muted)",strokeWidth:"1","aria-hidden":"true"})]})})};function ty({report:l,tests:u}){return m.jsxs(m.Fragment,{children:[m.jsx(ny,{report:l}),m.jsx(ey,{report:l,tests:u})]})}function ey({report:l,tests:u}){const[c,f]=ue.useState(50);return m.jsx(sm,{file:{fileId:"slowest",fileName:"Slowest Tests",tests:u.slice(0,c),stats:null},projectNames:l.json().projectNames,footer:c<u.length?m.jsxs("button",{className:"link-badge fullwidth-link",style:{padding:"8px 5px"},onClick:()=>f(r=>r+50),children:[Ni(),"Show 50 more"]}):void 0})}function ny({report:l}){const u=l.json().machines;if(u.length===0)return null;const c=u.map(f=>{const r=f.tag.join(" "),o=new Date(f.startTime).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:"short"});let h=`${r} started at ${o}, runs ${rm(f.duration)}`;return f.shardIndex&&(h+=` (shard ${f.shardIndex})`),{label:r,tooltip:h,startTime:f.startTime,duration:f.duration,shardIndex:f.shardIndex??1}}).sort((f,r)=>f.label.localeCompare(r.label)||f.shardIndex-r.shardIndex);return m.jsx(ke,{header:"Timeline",children:m.jsx($v,{entries:c})})}const ay=l=>!l.has("testId")&&!l.has("speedboard"),ly=l=>l.has("testId"),iy=l=>l.has("speedboard")&&!l.has("testId"),uy=({report:l})=>{var Z,F;const u=se(),[c,f]=ct.useState(new Map),[r,o]=ct.useState(u.get("q")||""),[h,v]=ct.useState(!1),y=u.has("speedboard"),[A]=_h("mergeFiles",!1),E=u.get("testId"),S=((Z=u.get("q"))==null?void 0:Z.toString())||"",O=S?"&q="+S:"",X=(F=l==null?void 0:l.json())==null?void 0:F.options.title,B=ct.useMemo(()=>{const j=new Map;for(const D of(l==null?void 0:l.json().files)||[])for(const N of D.tests)j.set(N.testId,D.fileId);return j},[l]),b=ct.useMemo(()=>rc.parse(r),[r]),p=ct.useMemo(()=>b.empty()?void 0:sy((l==null?void 0:l.json().files)||[],b),[l,b]),x=ct.useMemo(()=>y?oy(l,b):A?ry(l,b):fy(l,b),[l,b,A,y]),{prev:R,next:U}=ct.useMemo(()=>{const j=x.tests.findIndex(K=>K.testId===E),D=j>0?x.tests[j-1]:void 0,N=j<x.tests.length-1?x.tests[j+1]:void 0;return{prev:D,next:N}},[E,x]);return ct.useEffect(()=>{const j=D=>{if(D.target instanceof HTMLInputElement||D.target instanceof HTMLTextAreaElement||D.shiftKey||D.ctrlKey||D.metaKey||D.altKey)return;const N=new URLSearchParams(u);switch(D.key){case"a":D.preventDefault(),ca("#?");break;case"p":D.preventDefault(),N.delete("testId"),N.delete("speedboard"),ca(Na(N,"s:passed",!1));break;case"f":D.preventDefault(),N.delete("testId"),N.delete("speedboard"),ca(Na(N,"s:failed",!1));break;case"ArrowLeft":R&&(D.preventDefault(),N.delete("testId"),ca(Cn({test:R},N)+O));break;case"ArrowRight":U&&(D.preventDefault(),N.delete("testId"),ca(Cn({test:U},N)+O));break}};return document.addEventListener("keydown",j),()=>document.removeEventListener("keydown",j)},[R,U,O,S,u]),ct.useEffect(()=>{X?document.title=X:document.title="Playwright Test Report"},[X]),m.jsx("div",{className:"htmlreport vbox px-4 pb-4",children:m.jsxs("main",{children:[l&&m.jsx(Ev,{stats:l.json().stats,filterText:r,setFilterText:o}),m.jsxs(Kf,{predicate:ay,children:[m.jsx(Y2,{report:l==null?void 0:l.json(),filteredStats:p,metadataVisible:h,toggleMetadataVisible:()=>v(j=>!j)}),m.jsx(Pv,{files:x.files,expandedFiles:c,setExpandedFiles:f,projectNames:(l==null?void 0:l.json().projectNames)||[]})]}),m.jsxs(Kf,{predicate:iy,children:[m.jsx(Y2,{report:l==null?void 0:l.json(),filteredStats:p,metadataVisible:h,toggleMetadataVisible:()=>v(j=>!j)}),l&&m.jsx(ty,{report:l,tests:x.tests})]}),m.jsx(Kf,{predicate:ly,children:l&&m.jsx(cy,{report:l,next:U,prev:R,testId:E,testIdToFileIdMap:B})})]})})},cy=({report:l,testIdToFileIdMap:u,next:c,prev:f,testId:r})=>{const[o,h]=ct.useState("loading"),v=+(se().get("run")||"0");if(ct.useEffect(()=>{(async()=>{if(!r||typeof o=="object"&&r===o.testId)return;const S=u.get(r);if(!S){h("not-found");return}const O=await l.entry(`${S}.json`);h((O==null?void 0:O.tests.find(X=>X.testId===r))||"not-found")})()},[o,l,r,u]),o==="loading")return m.jsx("div",{className:"test-case-column"});if(o==="not-found")return m.jsxs("div",{className:"test-case-column",children:[m.jsx(Or,{title:"Test not found"}),m.jsxs("div",{className:"test-case-location",children:["Test ID: ",r]})]});const{projectNames:y,metadata:A,options:E}=l.json();return m.jsx("div",{className:"test-case-column",children:m.jsx(Vv,{projectNames:y,testRunMetadata:A,options:E,next:c,prev:f,test:o,run:v})})};function sy(l,u){const c={total:0,duration:0};for(const f of l){const r=f.tests.filter(o=>u.matches(o));c.total+=r.length;for(const o of r)c.duration+=o.duration}return c}function fy(l,u){const c={files:[],tests:[]};for(const f of(l==null?void 0:l.json().files)||[]){const r=f.tests.filter(o=>u.matches(o));r.length&&c.files.push({...f,tests:r}),c.tests.push(...r)}return c}function ry(l,u){const c=[],f=new Map;for(const o of(l==null?void 0:l.json().files)||[]){const h=o.tests.filter(v=>u.matches(v));for(const v of h){const y=v.path[0]??"<anonymous>";let A=f.get(y);A||(A={fileId:y,fileName:y,tests:[],stats:{total:0,expected:0,unexpected:0,flaky:0,skipped:0,ok:!0}},f.set(y,A),c.push(A));const E={...v,path:v.path.slice(1)};A.tests.push(E)}}c.sort((o,h)=>o.fileName.localeCompare(h.fileName));const r={files:c,tests:[]};for(const o of c)r.tests.push(...o.tests);return r}function oy(l,u){const f=((l==null?void 0:l.json().files)||[]).flatMap(r=>r.tests).filter(r=>u.matches(r));return f.sort((r,o)=>o.duration-r.duration),{files:[],tests:f}}const dy="data:image/svg+xml,%3csvg%20width='400'%20height='400'%20viewBox='0%200%20400%20400'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M136.444%20221.556C123.558%20225.213%20115.104%20231.625%20109.535%20238.032C114.869%20233.364%20122.014%20229.08%20131.652%20226.348C141.51%20223.554%20149.92%20223.574%20156.869%20224.915V219.481C150.941%20218.939%20144.145%20219.371%20136.444%20221.556ZM108.946%20175.876L61.0895%20188.484C61.0895%20188.484%2061.9617%20189.716%2063.5767%20191.36L104.153%20180.668C104.153%20180.668%20103.578%20188.077%2098.5847%20194.705C108.03%20187.559%20108.946%20175.876%20108.946%20175.876ZM149.005%20288.347C81.6582%20306.486%2046.0272%20228.438%2035.2396%20187.928C30.2556%20169.229%2028.0799%20155.067%2027.5%20145.928C27.4377%20144.979%2027.4665%20144.179%2027.5336%20143.446C24.04%20143.657%2022.3674%20145.473%2022.7077%20150.721C23.2876%20159.855%2025.4633%20174.016%2030.4473%20192.721C41.2301%20233.225%2076.8659%20311.273%20144.213%20293.134C158.872%20289.185%20169.885%20281.992%20178.152%20272.81C170.532%20279.692%20160.995%20285.112%20149.005%20288.347ZM161.661%20128.11V132.903H188.077C187.535%20131.206%20186.989%20129.677%20186.447%20128.11H161.661Z'%20fill='%232D4552'/%3e%3cpath%20d='M193.981%20167.584C205.861%20170.958%20212.144%20179.287%20215.465%20186.658L228.711%20190.42C228.711%20190.42%20226.904%20164.623%20203.57%20157.995C181.741%20151.793%20168.308%20170.124%20166.674%20172.496C173.024%20167.972%20182.297%20164.268%20193.981%20167.584ZM299.422%20186.777C277.573%20180.547%20264.145%20198.916%20262.535%20201.255C268.89%20196.736%20278.158%20193.031%20289.837%20196.362C301.698%20199.741%20307.976%20208.06%20311.307%20215.436L324.572%20219.212C324.572%20219.212%20322.736%20193.41%20299.422%20186.777ZM286.262%20254.795L176.072%20223.99C176.072%20223.99%20177.265%20230.038%20181.842%20237.869L274.617%20263.805C282.255%20259.386%20286.262%20254.795%20286.262%20254.795ZM209.867%20321.102C122.618%20297.71%20133.166%20186.543%20147.284%20133.865C153.097%20112.156%20159.073%2096.0203%20164.029%2085.204C161.072%2084.5953%20158.623%2086.1529%20156.203%2091.0746C150.941%20101.747%20144.212%20119.124%20137.7%20143.45C123.586%20196.127%20113.038%20307.29%20200.283%20330.682C241.406%20341.699%20273.442%20324.955%20297.323%20298.659C274.655%20319.19%20245.714%20330.701%20209.867%20321.102Z'%20fill='%232D4552'/%3e%3cpath%20d='M161.661%20262.296V239.863L99.3324%20257.537C99.3324%20257.537%20103.938%20230.777%20136.444%20221.556C146.302%20218.762%20154.713%20218.781%20161.661%20220.123V128.11H192.869C189.471%20117.61%20186.184%20109.526%20183.423%20103.909C178.856%2094.612%20174.174%20100.775%20163.545%20109.665C156.059%20115.919%20137.139%20129.261%20108.668%20136.933C80.1966%20144.61%2057.179%20142.574%2047.5752%20140.911C33.9601%20138.562%2026.8387%20135.572%2027.5049%20145.928C28.0847%20155.062%2030.2605%20169.224%2035.2445%20187.928C46.0272%20228.433%2081.663%20306.481%20149.01%20288.342C166.602%20283.602%20179.019%20274.233%20187.626%20262.291H161.661V262.296ZM61.0848%20188.484L108.946%20175.876C108.946%20175.876%20107.551%20194.288%2089.6087%20199.018C71.6614%20203.743%2061.0848%20188.484%2061.0848%20188.484Z'%20fill='%23E2574C'/%3e%3cpath%20d='M341.786%20129.174C329.345%20131.355%20299.498%20134.072%20262.612%20124.185C225.716%20114.304%20201.236%2097.0224%20191.537%2088.8994C177.788%2077.3834%20171.74%2069.3802%20165.788%2081.4857C160.526%2092.163%20153.797%20109.54%20147.284%20133.866C133.171%20186.543%20122.623%20297.706%20209.867%20321.098C297.093%20344.47%20343.53%20242.92%20357.644%20190.238C364.157%20165.917%20367.013%20147.5%20367.799%20135.625C368.695%20122.173%20359.455%20126.078%20341.786%20129.174ZM166.497%20172.756C166.497%20172.756%20180.246%20151.372%20203.565%20158C226.899%20164.628%20228.706%20190.425%20228.706%20190.425L166.497%20172.756ZM223.42%20268.713C182.403%20256.698%20176.077%20223.99%20176.077%20223.99L286.262%20254.796C286.262%20254.791%20264.021%20280.578%20223.42%20268.713ZM262.377%20201.495C262.377%20201.495%20276.107%20180.126%20299.422%20186.773C322.736%20193.411%20324.572%20219.208%20324.572%20219.208L262.377%20201.495Z'%20fill='%232EAD33'/%3e%3cpath%20d='M139.88%20246.04L99.3324%20257.532C99.3324%20257.532%20103.737%20232.44%20133.607%20222.496L110.647%20136.33L108.663%20136.933C80.1918%20144.611%2057.1742%20142.574%2047.5704%20140.911C33.9554%20138.563%2026.834%20135.572%2027.5001%20145.929C28.08%20155.063%2030.2557%20169.224%2035.2397%20187.929C46.0225%20228.433%2081.6583%20306.481%20149.005%20288.342L150.989%20287.719L139.88%20246.04ZM61.0848%20188.485L108.946%20175.876C108.946%20175.876%20107.551%20194.288%2089.6087%20199.018C71.6615%20203.743%2061.0848%20188.485%2061.0848%20188.485Z'%20fill='%23D65348'/%3e%3cpath%20d='M225.27%20269.163L223.415%20268.712C182.398%20256.698%20176.072%20223.99%20176.072%20223.99L232.89%20239.872L262.971%20124.281L262.607%20124.185C225.711%20114.304%20201.232%2097.0224%20191.532%2088.8994C177.783%2077.3834%20171.735%2069.3802%20165.783%2081.4857C160.526%2092.163%20153.797%20109.54%20147.284%20133.866C133.171%20186.543%20122.623%20297.706%20209.867%20321.097L211.655%20321.5L225.27%20269.163ZM166.497%20172.756C166.497%20172.756%20180.246%20151.372%20203.565%20158C226.899%20164.628%20228.706%20190.425%20228.706%20190.425L166.497%20172.756Z'%20fill='%231D8D22'/%3e%3cpath%20d='M141.946%20245.451L131.072%20248.537C133.641%20263.019%20138.169%20276.917%20145.276%20289.195C146.513%20288.922%20147.74%20288.687%20149%20288.342C152.302%20287.451%20155.364%20286.348%20158.312%20285.145C150.371%20273.361%20145.118%20259.789%20141.946%20245.451ZM137.7%20143.451C132.112%20164.307%20127.113%20194.326%20128.489%20224.436C130.952%20223.367%20133.554%20222.371%20136.444%20221.551L138.457%20221.101C136.003%20188.939%20141.308%20156.165%20147.284%20133.866C148.799%20128.225%20150.318%20122.978%20151.832%20118.085C149.393%20119.637%20146.767%20121.228%20143.776%20122.867C141.759%20129.093%20139.722%20135.898%20137.7%20143.451Z'%20fill='%23C04B41'/%3e%3c/svg%3e",Ff=N5,Rr=document.createElement("link");Rr.rel="shortcut icon";Rr.href=dy;document.head.appendChild(Rr);const hy=()=>{const[l,u]=ct.useState();return ct.useEffect(()=>{const c=new my;c.load().then(()=>{var f;(f=document.getElementById("playwrightReportBase64"))==null||f.remove(),u(c)})},[]),m.jsx(cv,{children:m.jsx(uy,{report:l})})};window.onload=()=>{gv(),X5.createRoot(document.querySelector("#root")).render(m.jsx(hy,{}))};class my{constructor(){yn(this,"_entries",new Map);yn(this,"_json")}async load(){const u=document.getElementById("playwrightReportBase64").textContent,c=new Ff.ZipReader(new Ff.Data64URIReader(u),{useWebWorkers:!1});for(const f of await c.getEntries())this._entries.set(f.filename,f);this._json=await this.entry("report.json")}json(){return this._json}async entry(u){const c=this._entries.get(u),f=new Ff.TextWriter;return await c.getData(f),JSON.parse(await f.getData())}} -</script> - <style type='text/css'>:root{--color-canvas-default-transparent: rgba(255,255,255,0);--color-marketing-icon-primary: #218bff;--color-marketing-icon-secondary: #54aeff;--color-diff-blob-addition-num-text: #24292f;--color-diff-blob-addition-fg: #24292f;--color-diff-blob-addition-num-bg: #CCFFD8;--color-diff-blob-addition-line-bg: #E6FFEC;--color-diff-blob-addition-word-bg: #ABF2BC;--color-diff-blob-deletion-num-text: #24292f;--color-diff-blob-deletion-fg: #24292f;--color-diff-blob-deletion-num-bg: #FFD7D5;--color-diff-blob-deletion-line-bg: #FFEBE9;--color-diff-blob-deletion-word-bg: rgba(255,129,130,.4);--color-diff-blob-hunk-num-bg: rgba(84,174,255,.4);--color-diff-blob-expander-icon: #57606a;--color-diff-blob-selected-line-highlight-mix-blend-mode: multiply;--color-diffstat-deletion-border: rgba(27,31,36,.15);--color-diffstat-addition-border: rgba(27,31,36,.15);--color-diffstat-addition-bg: #2da44e;--color-search-keyword-hl: #fff8c5;--color-prettylights-syntax-comment: #6e7781;--color-prettylights-syntax-constant: #0550ae;--color-prettylights-syntax-entity: #8250df;--color-prettylights-syntax-storage-modifier-import: #24292f;--color-prettylights-syntax-entity-tag: #116329;--color-prettylights-syntax-keyword: #cf222e;--color-prettylights-syntax-string: #0a3069;--color-prettylights-syntax-variable: #953800;--color-prettylights-syntax-brackethighlighter-unmatched: #82071e;--color-prettylights-syntax-invalid-illegal-text: #f6f8fa;--color-prettylights-syntax-invalid-illegal-bg: #82071e;--color-prettylights-syntax-carriage-return-text: #f6f8fa;--color-prettylights-syntax-carriage-return-bg: #cf222e;--color-prettylights-syntax-string-regexp: #116329;--color-prettylights-syntax-markup-list: #3b2300;--color-prettylights-syntax-markup-heading: #0550ae;--color-prettylights-syntax-markup-italic: #24292f;--color-prettylights-syntax-markup-bold: #24292f;--color-prettylights-syntax-markup-deleted-text: #82071e;--color-prettylights-syntax-markup-deleted-bg: #FFEBE9;--color-prettylights-syntax-markup-inserted-text: #116329;--color-prettylights-syntax-markup-inserted-bg: #dafbe1;--color-prettylights-syntax-markup-changed-text: #953800;--color-prettylights-syntax-markup-changed-bg: #ffd8b5;--color-prettylights-syntax-markup-ignored-text: #eaeef2;--color-prettylights-syntax-markup-ignored-bg: #0550ae;--color-prettylights-syntax-meta-diff-range: #8250df;--color-prettylights-syntax-brackethighlighter-angle: #57606a;--color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;--color-prettylights-syntax-constant-other-reference-link: #0a3069;--color-codemirror-text: #24292f;--color-codemirror-bg: #ffffff;--color-codemirror-gutters-bg: #ffffff;--color-codemirror-guttermarker-text: #ffffff;--color-codemirror-guttermarker-subtle-text: #6e7781;--color-codemirror-linenumber-text: #57606a;--color-codemirror-cursor: #24292f;--color-codemirror-selection-bg: rgba(84,174,255,.4);--color-codemirror-activeline-bg: rgba(234,238,242,.5);--color-codemirror-matchingbracket-text: #24292f;--color-codemirror-lines-bg: #ffffff;--color-codemirror-syntax-comment: #24292f;--color-codemirror-syntax-constant: #0550ae;--color-codemirror-syntax-entity: #8250df;--color-codemirror-syntax-keyword: #cf222e;--color-codemirror-syntax-storage: #cf222e;--color-codemirror-syntax-string: #0a3069;--color-codemirror-syntax-support: #0550ae;--color-codemirror-syntax-variable: #953800;--color-checks-bg: #24292f;--color-checks-run-border-width: 0px;--color-checks-container-border-width: 0px;--color-checks-text-primary: #f6f8fa;--color-checks-text-secondary: #8c959f;--color-checks-text-link: #54aeff;--color-checks-btn-icon: #afb8c1;--color-checks-btn-hover-icon: #f6f8fa;--color-checks-btn-hover-bg: rgba(255,255,255,.125);--color-checks-input-text: #eaeef2;--color-checks-input-placeholder-text: #8c959f;--color-checks-input-focus-text: #8c959f;--color-checks-input-bg: #32383f;--color-checks-input-shadow: none;--color-checks-donut-error: #fa4549;--color-checks-donut-pending: #bf8700;--color-checks-donut-success: #2da44e;--color-checks-donut-neutral: #afb8c1;--color-checks-dropdown-text: #afb8c1;--color-checks-dropdown-bg: #32383f;--color-checks-dropdown-border: #424a53;--color-checks-dropdown-shadow: rgba(27,31,36,.3);--color-checks-dropdown-hover-text: #f6f8fa;--color-checks-dropdown-hover-bg: #424a53;--color-checks-dropdown-btn-hover-text: #f6f8fa;--color-checks-dropdown-btn-hover-bg: #32383f;--color-checks-scrollbar-thumb-bg: #57606a;--color-checks-header-label-text: #d0d7de;--color-checks-header-label-open-text: #f6f8fa;--color-checks-header-border: #32383f;--color-checks-header-icon: #8c959f;--color-checks-line-text: #d0d7de;--color-checks-line-num-text: rgba(140,149,159,.75);--color-checks-line-timestamp-text: #8c959f;--color-checks-line-hover-bg: #32383f;--color-checks-line-selected-bg: rgba(33,139,255,.15);--color-checks-line-selected-num-text: #54aeff;--color-checks-line-dt-fm-text: #24292f;--color-checks-line-dt-fm-bg: #9a6700;--color-checks-gate-bg: rgba(125,78,0,.15);--color-checks-gate-text: #d0d7de;--color-checks-gate-waiting-text: #afb8c1;--color-checks-step-header-open-bg: #32383f;--color-checks-step-error-text: #ff8182;--color-checks-step-warning-text: #d4a72c;--color-checks-logline-text: #8c959f;--color-checks-logline-num-text: rgba(140,149,159,.75);--color-checks-logline-debug-text: #c297ff;--color-checks-logline-error-text: #d0d7de;--color-checks-logline-error-num-text: #ff8182;--color-checks-logline-error-bg: rgba(164,14,38,.15);--color-checks-logline-warning-text: #d0d7de;--color-checks-logline-warning-num-text: #d4a72c;--color-checks-logline-warning-bg: rgba(125,78,0,.15);--color-checks-logline-command-text: #54aeff;--color-checks-logline-section-text: #4ac26b;--color-checks-ansi-black: #24292f;--color-checks-ansi-black-bright: #32383f;--color-checks-ansi-white: #d0d7de;--color-checks-ansi-white-bright: #d0d7de;--color-checks-ansi-gray: #8c959f;--color-checks-ansi-red: #ff8182;--color-checks-ansi-red-bright: #ffaba8;--color-checks-ansi-green: #4ac26b;--color-checks-ansi-green-bright: #6fdd8b;--color-checks-ansi-yellow: #d4a72c;--color-checks-ansi-yellow-bright: #eac54f;--color-checks-ansi-blue: #54aeff;--color-checks-ansi-blue-bright: #80ccff;--color-checks-ansi-magenta: #c297ff;--color-checks-ansi-magenta-bright: #d8b9ff;--color-checks-ansi-cyan: #76e3ea;--color-checks-ansi-cyan-bright: #b3f0ff;--color-project-header-bg: #24292f;--color-project-sidebar-bg: #ffffff;--color-project-gradient-in: #ffffff;--color-project-gradient-out: rgba(255,255,255,0);--color-mktg-success: rgba(36,146,67,1);--color-mktg-info: rgba(19,119,234,1);--color-mktg-bg-shade-gradient-top: rgba(27,31,36,.065);--color-mktg-bg-shade-gradient-bottom: rgba(27,31,36,0);--color-mktg-btn-bg-top: hsla(228,82%,66%,1);--color-mktg-btn-bg-bottom: #4969ed;--color-mktg-btn-bg-overlay-top: hsla(228,74%,59%,1);--color-mktg-btn-bg-overlay-bottom: #3355e0;--color-mktg-btn-text: #ffffff;--color-mktg-btn-primary-bg-top: hsla(137,56%,46%,1);--color-mktg-btn-primary-bg-bottom: #2ea44f;--color-mktg-btn-primary-bg-overlay-top: hsla(134,60%,38%,1);--color-mktg-btn-primary-bg-overlay-bottom: #22863a;--color-mktg-btn-primary-text: #ffffff;--color-mktg-btn-enterprise-bg-top: hsla(249,100%,72%,1);--color-mktg-btn-enterprise-bg-bottom: #6f57ff;--color-mktg-btn-enterprise-bg-overlay-top: hsla(248,65%,63%,1);--color-mktg-btn-enterprise-bg-overlay-bottom: #614eda;--color-mktg-btn-enterprise-text: #ffffff;--color-mktg-btn-outline-text: #4969ed;--color-mktg-btn-outline-border: rgba(73,105,237,.3);--color-mktg-btn-outline-hover-text: #3355e0;--color-mktg-btn-outline-hover-border: rgba(51,85,224,.5);--color-mktg-btn-outline-focus-border: #4969ed;--color-mktg-btn-outline-focus-border-inset: rgba(73,105,237,.5);--color-mktg-btn-dark-text: #ffffff;--color-mktg-btn-dark-border: rgba(255,255,255,.3);--color-mktg-btn-dark-hover-text: #ffffff;--color-mktg-btn-dark-hover-border: rgba(255,255,255,.5);--color-mktg-btn-dark-focus-border: #ffffff;--color-mktg-btn-dark-focus-border-inset: rgba(255,255,255,.5);--color-avatar-bg: #ffffff;--color-avatar-border: rgba(27,31,36,.15);--color-avatar-stack-fade: #afb8c1;--color-avatar-stack-fade-more: #d0d7de;--color-avatar-child-shadow: -2px -2px 0 rgba(255,255,255,.8);--color-topic-tag-border: rgba(0,0,0,0);--color-select-menu-backdrop-border: rgba(0,0,0,0);--color-select-menu-tap-highlight: rgba(175,184,193,.5);--color-select-menu-tap-focus-bg: #b6e3ff;--color-overlay-shadow: 0 1px 3px rgba(27,31,36,.12), 0 8px 24px rgba(66,74,83,.12);--color-header-text: rgba(255,255,255,.7);--color-header-bg: #24292f;--color-header-logo: #ffffff;--color-header-search-bg: #24292f;--color-header-search-border: #57606a;--color-sidenav-selected-bg: #ffffff;--color-menu-bg-active: rgba(0,0,0,0);--color-control-transparent-bg-hover: #818b981a;--color-input-disabled-bg: rgba(175,184,193,.2);--color-timeline-badge-bg: #eaeef2;--color-ansi-black: #24292f;--color-ansi-black-bright: #57606a;--color-ansi-white: #6e7781;--color-ansi-white-bright: #8c959f;--color-ansi-gray: #6e7781;--color-ansi-red: #cf222e;--color-ansi-red-bright: #a40e26;--color-ansi-green: #116329;--color-ansi-green-bright: #1a7f37;--color-ansi-yellow: #4d2d00;--color-ansi-yellow-bright: #633c01;--color-ansi-blue: #0969da;--color-ansi-blue-bright: #218bff;--color-ansi-magenta: #8250df;--color-ansi-magenta-bright: #a475f9;--color-ansi-cyan: #1b7c83;--color-ansi-cyan-bright: #3192aa;--color-btn-text: #24292f;--color-btn-bg: #f6f8fa;--color-btn-border: rgba(27,31,36,.15);--color-btn-shadow: 0 1px 0 rgba(27,31,36,.04);--color-btn-inset-shadow: inset 0 1px 0 rgba(255,255,255,.25);--color-btn-hover-bg: #f3f4f6;--color-btn-hover-border: rgba(27,31,36,.15);--color-btn-active-bg: hsla(220,14%,93%,1);--color-btn-active-border: rgba(27,31,36,.15);--color-btn-selected-bg: hsla(220,14%,94%,1);--color-btn-focus-bg: #f6f8fa;--color-btn-focus-border: rgba(27,31,36,.15);--color-btn-focus-shadow: 0 0 0 3px rgba(9,105,218,.3);--color-btn-shadow-active: inset 0 .15em .3em rgba(27,31,36,.15);--color-btn-shadow-input-focus: 0 0 0 .2em rgba(9,105,218,.3);--color-btn-counter-bg: rgba(27,31,36,.08);--color-btn-primary-text: #ffffff;--color-btn-primary-bg: #2da44e;--color-btn-primary-border: rgba(27,31,36,.15);--color-btn-primary-shadow: 0 1px 0 rgba(27,31,36,.1);--color-btn-primary-inset-shadow: inset 0 1px 0 rgba(255,255,255,.03);--color-btn-primary-hover-bg: #2c974b;--color-btn-primary-hover-border: rgba(27,31,36,.15);--color-btn-primary-selected-bg: hsla(137,55%,36%,1);--color-btn-primary-selected-shadow: inset 0 1px 0 rgba(0,45,17,.2);--color-btn-primary-disabled-text: rgba(255,255,255,.8);--color-btn-primary-disabled-bg: #94d3a2;--color-btn-primary-disabled-border: rgba(27,31,36,.15);--color-btn-primary-focus-bg: #2da44e;--color-btn-primary-focus-border: rgba(27,31,36,.15);--color-btn-primary-focus-shadow: 0 0 0 3px rgba(45,164,78,.4);--color-btn-primary-icon: rgba(255,255,255,.8);--color-btn-primary-counter-bg: rgba(255,255,255,.2);--color-btn-outline-text: #0969da;--color-btn-outline-hover-text: #ffffff;--color-btn-outline-hover-bg: #0969da;--color-btn-outline-hover-border: rgba(27,31,36,.15);--color-btn-outline-hover-shadow: 0 1px 0 rgba(27,31,36,.1);--color-btn-outline-hover-inset-shadow: inset 0 1px 0 rgba(255,255,255,.03);--color-btn-outline-hover-counter-bg: rgba(255,255,255,.2);--color-btn-outline-selected-text: #ffffff;--color-btn-outline-selected-bg: hsla(212,92%,42%,1);--color-btn-outline-selected-border: rgba(27,31,36,.15);--color-btn-outline-selected-shadow: inset 0 1px 0 rgba(0,33,85,.2);--color-btn-outline-disabled-text: rgba(9,105,218,.5);--color-btn-outline-disabled-bg: #f6f8fa;--color-btn-outline-disabled-counter-bg: rgba(9,105,218,.05);--color-btn-outline-focus-border: rgba(27,31,36,.15);--color-btn-outline-focus-shadow: 0 0 0 3px rgba(5,80,174,.4);--color-btn-outline-counter-bg: rgba(9,105,218,.1);--color-btn-danger-text: #cf222e;--color-btn-danger-hover-text: #ffffff;--color-btn-danger-hover-bg: #a40e26;--color-btn-danger-hover-border: rgba(27,31,36,.15);--color-btn-danger-hover-shadow: 0 1px 0 rgba(27,31,36,.1);--color-btn-danger-hover-inset-shadow: inset 0 1px 0 rgba(255,255,255,.03);--color-btn-danger-hover-counter-bg: rgba(255,255,255,.2);--color-btn-danger-selected-text: #ffffff;--color-btn-danger-selected-bg: hsla(356,72%,44%,1);--color-btn-danger-selected-border: rgba(27,31,36,.15);--color-btn-danger-selected-shadow: inset 0 1px 0 rgba(76,0,20,.2);--color-btn-danger-disabled-text: rgba(207,34,46,.5);--color-btn-danger-disabled-bg: #f6f8fa;--color-btn-danger-disabled-counter-bg: rgba(207,34,46,.05);--color-btn-danger-focus-border: rgba(27,31,36,.15);--color-btn-danger-focus-shadow: 0 0 0 3px rgba(164,14,38,.4);--color-btn-danger-counter-bg: rgba(207,34,46,.1);--color-btn-danger-icon: #cf222e;--color-btn-danger-hover-icon: #ffffff;--color-underlinenav-icon: #6e7781;--color-underlinenav-border-hover: rgba(175,184,193,.2);--color-fg-default: #24292f;--color-fg-muted: #57606a;--color-fg-subtle: #6e7781;--color-fg-on-emphasis: #ffffff;--color-canvas-default: #ffffff;--color-canvas-overlay: #ffffff;--color-canvas-inset: #f6f8fa;--color-canvas-subtle: #f6f8fa;--color-border-default: #d0d7de;--color-border-muted: hsla(210,18%,87%,1);--color-border-subtle: rgba(27,31,36,.15);--color-shadow-small: 0 1px 0 rgba(27,31,36,.04);--color-shadow-medium: 0 3px 6px rgba(140,149,159,.15);--color-shadow-large: 0 8px 24px rgba(140,149,159,.2);--color-shadow-extra-large: 0 12px 28px rgba(140,149,159,.3);--color-neutral-emphasis-plus: #24292f;--color-neutral-emphasis: #6e7781;--color-neutral-muted: rgba(175,184,193,.2);--color-neutral-subtle: rgba(234,238,242,.5);--color-accent-fg: #0969da;--color-accent-emphasis: #0969da;--color-accent-muted: rgba(84,174,255,.4);--color-accent-subtle: #ddf4ff;--color-success-fg: #1a7f37;--color-success-emphasis: #2da44e;--color-success-muted: rgba(74,194,107,.4);--color-success-subtle: #dafbe1;--color-attention-fg: #9a6700;--color-attention-emphasis: #bf8700;--color-attention-muted: rgba(212,167,44,.4);--color-attention-subtle: #fff8c5;--color-severe-fg: #bc4c00;--color-severe-emphasis: #bc4c00;--color-severe-muted: rgba(251,143,68,.4);--color-severe-subtle: #fff1e5;--color-danger-fg: #cf222e;--color-danger-emphasis: #cf222e;--color-danger-muted: rgba(255,129,130,.4);--color-danger-subtle: #FFEBE9;--color-done-fg: #8250df;--color-done-emphasis: #8250df;--color-done-muted: rgba(194,151,255,.4);--color-done-subtle: #fbefff;--color-sponsors-fg: #bf3989;--color-sponsors-emphasis: #bf3989;--color-sponsors-muted: rgba(255,128,200,.4);--color-sponsors-subtle: #ffeff7;--color-primer-canvas-backdrop: rgba(27,31,36,.5);--color-primer-canvas-sticky: rgba(255,255,255,.95);--color-primer-border-active: #FD8C73;--color-primer-border-contrast: rgba(27,31,36,.1);--color-primer-shadow-highlight: inset 0 1px 0 rgba(255,255,255,.25);--color-primer-shadow-inset: inset 0 1px 0 rgba(208,215,222,.2);--color-primer-shadow-focus: 0 0 0 3px rgba(9,105,218,.3);--color-scale-black: #1b1f24;--color-scale-white: #ffffff;--color-scale-gray-0: #f6f8fa;--color-scale-gray-1: #eaeef2;--color-scale-gray-2: #d0d7de;--color-scale-gray-3: #afb8c1;--color-scale-gray-4: #8c959f;--color-scale-gray-5: #6e7781;--color-scale-gray-6: #57606a;--color-scale-gray-7: #424a53;--color-scale-gray-8: #32383f;--color-scale-gray-9: #24292f;--color-scale-blue-0: #ddf4ff;--color-scale-blue-1: #b6e3ff;--color-scale-blue-2: #80ccff;--color-scale-blue-3: #54aeff;--color-scale-blue-4: #218bff;--color-scale-blue-5: #0969da;--color-scale-blue-6: #0550ae;--color-scale-blue-7: #033d8b;--color-scale-blue-8: #0a3069;--color-scale-blue-9: #002155;--color-scale-green-0: #dafbe1;--color-scale-green-1: #aceebb;--color-scale-green-2: #6fdd8b;--color-scale-green-3: #4ac26b;--color-scale-green-4: #2da44e;--color-scale-green-5: #1a7f37;--color-scale-green-6: #116329;--color-scale-green-7: #044f1e;--color-scale-green-8: #003d16;--color-scale-green-9: #002d11;--color-scale-yellow-0: #fff8c5;--color-scale-yellow-1: #fae17d;--color-scale-yellow-2: #eac54f;--color-scale-yellow-3: #d4a72c;--color-scale-yellow-4: #bf8700;--color-scale-yellow-5: #9a6700;--color-scale-yellow-6: #7d4e00;--color-scale-yellow-7: #633c01;--color-scale-yellow-8: #4d2d00;--color-scale-yellow-9: #3b2300;--color-scale-orange-0: #fff1e5;--color-scale-orange-1: #ffd8b5;--color-scale-orange-2: #ffb77c;--color-scale-orange-3: #fb8f44;--color-scale-orange-4: #e16f24;--color-scale-orange-5: #bc4c00;--color-scale-orange-6: #953800;--color-scale-orange-7: #762c00;--color-scale-orange-8: #5c2200;--color-scale-orange-9: #471700;--color-scale-red-0: #FFEBE9;--color-scale-red-1: #ffcecb;--color-scale-red-2: #ffaba8;--color-scale-red-3: #ff8182;--color-scale-red-4: #fa4549;--color-scale-red-5: #cf222e;--color-scale-red-6: #a40e26;--color-scale-red-7: #82071e;--color-scale-red-8: #660018;--color-scale-red-9: #4c0014;--color-scale-purple-0: #fbefff;--color-scale-purple-1: #ecd8ff;--color-scale-purple-2: #d8b9ff;--color-scale-purple-3: #c297ff;--color-scale-purple-4: #a475f9;--color-scale-purple-5: #8250df;--color-scale-purple-6: #6639ba;--color-scale-purple-7: #512a97;--color-scale-purple-8: #3e1f79;--color-scale-purple-9: #2e1461;--color-scale-pink-0: #ffeff7;--color-scale-pink-1: #ffd3eb;--color-scale-pink-2: #ffadda;--color-scale-pink-3: #ff80c8;--color-scale-pink-4: #e85aad;--color-scale-pink-5: #bf3989;--color-scale-pink-6: #99286e;--color-scale-pink-7: #772057;--color-scale-pink-8: #611347;--color-scale-pink-9: #4d0336;--color-scale-coral-0: #FFF0EB;--color-scale-coral-1: #FFD6CC;--color-scale-coral-2: #FFB4A1;--color-scale-coral-3: #FD8C73;--color-scale-coral-4: #EC6547;--color-scale-coral-5: #C4432B;--color-scale-coral-6: #9E2F1C;--color-scale-coral-7: #801F0F;--color-scale-coral-8: #691105;--color-scale-coral-9: #510901 }:root.dark-mode{color-scheme:dark;--color-canvas-default-transparent: rgba(13,17,23,0);--color-marketing-icon-primary: #79c0ff;--color-marketing-icon-secondary: #1f6feb;--color-diff-blob-addition-num-text: #c9d1d9;--color-diff-blob-addition-fg: #c9d1d9;--color-diff-blob-addition-num-bg: rgba(63,185,80,.3);--color-diff-blob-addition-line-bg: rgba(46,160,67,.15);--color-diff-blob-addition-word-bg: rgba(46,160,67,.4);--color-diff-blob-deletion-num-text: #c9d1d9;--color-diff-blob-deletion-fg: #c9d1d9;--color-diff-blob-deletion-num-bg: rgba(248,81,73,.3);--color-diff-blob-deletion-line-bg: rgba(248,81,73,.15);--color-diff-blob-deletion-word-bg: rgba(248,81,73,.4);--color-diff-blob-hunk-num-bg: rgba(56,139,253,.4);--color-diff-blob-expander-icon: #8b949e;--color-diff-blob-selected-line-highlight-mix-blend-mode: screen;--color-diffstat-deletion-border: rgba(240,246,252,.1);--color-diffstat-addition-border: rgba(240,246,252,.1);--color-diffstat-addition-bg: #3fb950;--color-search-keyword-hl: rgba(210,153,34,.4);--color-prettylights-syntax-comment: #8b949e;--color-prettylights-syntax-constant: #79c0ff;--color-prettylights-syntax-entity: #d2a8ff;--color-prettylights-syntax-storage-modifier-import: #c9d1d9;--color-prettylights-syntax-entity-tag: #7ee787;--color-prettylights-syntax-keyword: #ff7b72;--color-prettylights-syntax-string: #a5d6ff;--color-prettylights-syntax-variable: #ffa657;--color-prettylights-syntax-brackethighlighter-unmatched: #f85149;--color-prettylights-syntax-invalid-illegal-text: #f0f6fc;--color-prettylights-syntax-invalid-illegal-bg: #8e1519;--color-prettylights-syntax-carriage-return-text: #f0f6fc;--color-prettylights-syntax-carriage-return-bg: #b62324;--color-prettylights-syntax-string-regexp: #7ee787;--color-prettylights-syntax-markup-list: #f2cc60;--color-prettylights-syntax-markup-heading: #1f6feb;--color-prettylights-syntax-markup-italic: #c9d1d9;--color-prettylights-syntax-markup-bold: #c9d1d9;--color-prettylights-syntax-markup-deleted-text: #ffdcd7;--color-prettylights-syntax-markup-deleted-bg: #67060c;--color-prettylights-syntax-markup-inserted-text: #aff5b4;--color-prettylights-syntax-markup-inserted-bg: #033a16;--color-prettylights-syntax-markup-changed-text: #ffdfb6;--color-prettylights-syntax-markup-changed-bg: #5a1e02;--color-prettylights-syntax-markup-ignored-text: #c9d1d9;--color-prettylights-syntax-markup-ignored-bg: #1158c7;--color-prettylights-syntax-meta-diff-range: #d2a8ff;--color-prettylights-syntax-brackethighlighter-angle: #8b949e;--color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;--color-prettylights-syntax-constant-other-reference-link: #a5d6ff;--color-codemirror-text: #c9d1d9;--color-codemirror-bg: #0d1117;--color-codemirror-gutters-bg: #0d1117;--color-codemirror-guttermarker-text: #0d1117;--color-codemirror-guttermarker-subtle-text: #484f58;--color-codemirror-linenumber-text: #8b949e;--color-codemirror-cursor: #c9d1d9;--color-codemirror-selection-bg: rgba(56,139,253,.4);--color-codemirror-activeline-bg: rgba(110,118,129,.1);--color-codemirror-matchingbracket-text: #c9d1d9;--color-codemirror-lines-bg: #0d1117;--color-codemirror-syntax-comment: #8b949e;--color-codemirror-syntax-constant: #79c0ff;--color-codemirror-syntax-entity: #d2a8ff;--color-codemirror-syntax-keyword: #ff7b72;--color-codemirror-syntax-storage: #ff7b72;--color-codemirror-syntax-string: #a5d6ff;--color-codemirror-syntax-support: #79c0ff;--color-codemirror-syntax-variable: #ffa657;--color-checks-bg: #010409;--color-checks-run-border-width: 1px;--color-checks-container-border-width: 1px;--color-checks-text-primary: #c9d1d9;--color-checks-text-secondary: #8b949e;--color-checks-text-link: #58a6ff;--color-checks-btn-icon: #8b949e;--color-checks-btn-hover-icon: #c9d1d9;--color-checks-btn-hover-bg: rgba(110,118,129,.1);--color-checks-input-text: #8b949e;--color-checks-input-placeholder-text: #484f58;--color-checks-input-focus-text: #c9d1d9;--color-checks-input-bg: #161b22;--color-checks-input-shadow: none;--color-checks-donut-error: #f85149;--color-checks-donut-pending: #d29922;--color-checks-donut-success: #2ea043;--color-checks-donut-neutral: #8b949e;--color-checks-dropdown-text: #c9d1d9;--color-checks-dropdown-bg: #161b22;--color-checks-dropdown-border: #30363d;--color-checks-dropdown-shadow: rgba(1,4,9,.3);--color-checks-dropdown-hover-text: #c9d1d9;--color-checks-dropdown-hover-bg: rgba(110,118,129,.1);--color-checks-dropdown-btn-hover-text: #c9d1d9;--color-checks-dropdown-btn-hover-bg: rgba(110,118,129,.1);--color-checks-scrollbar-thumb-bg: rgba(110,118,129,.4);--color-checks-header-label-text: #8b949e;--color-checks-header-label-open-text: #c9d1d9;--color-checks-header-border: #21262d;--color-checks-header-icon: #8b949e;--color-checks-line-text: #8b949e;--color-checks-line-num-text: #484f58;--color-checks-line-timestamp-text: #484f58;--color-checks-line-hover-bg: rgba(110,118,129,.1);--color-checks-line-selected-bg: rgba(56,139,253,.15);--color-checks-line-selected-num-text: #58a6ff;--color-checks-line-dt-fm-text: #f0f6fc;--color-checks-line-dt-fm-bg: #9e6a03;--color-checks-gate-bg: rgba(187,128,9,.15);--color-checks-gate-text: #8b949e;--color-checks-gate-waiting-text: #d29922;--color-checks-step-header-open-bg: #161b22;--color-checks-step-error-text: #f85149;--color-checks-step-warning-text: #d29922;--color-checks-logline-text: #8b949e;--color-checks-logline-num-text: #484f58;--color-checks-logline-debug-text: #a371f7;--color-checks-logline-error-text: #8b949e;--color-checks-logline-error-num-text: #484f58;--color-checks-logline-error-bg: rgba(248,81,73,.15);--color-checks-logline-warning-text: #8b949e;--color-checks-logline-warning-num-text: #d29922;--color-checks-logline-warning-bg: rgba(187,128,9,.15);--color-checks-logline-command-text: #58a6ff;--color-checks-logline-section-text: #3fb950;--color-checks-ansi-black: #0d1117;--color-checks-ansi-black-bright: #161b22;--color-checks-ansi-white: #b1bac4;--color-checks-ansi-white-bright: #b1bac4;--color-checks-ansi-gray: #6e7681;--color-checks-ansi-red: #ff7b72;--color-checks-ansi-red-bright: #ffa198;--color-checks-ansi-green: #3fb950;--color-checks-ansi-green-bright: #56d364;--color-checks-ansi-yellow: #d29922;--color-checks-ansi-yellow-bright: #e3b341;--color-checks-ansi-blue: #58a6ff;--color-checks-ansi-blue-bright: #79c0ff;--color-checks-ansi-magenta: #bc8cff;--color-checks-ansi-magenta-bright: #d2a8ff;--color-checks-ansi-cyan: #76e3ea;--color-checks-ansi-cyan-bright: #b3f0ff;--color-project-header-bg: #0d1117;--color-project-sidebar-bg: #161b22;--color-project-gradient-in: #161b22;--color-project-gradient-out: rgba(22,27,34,0);--color-mktg-success: rgba(41,147,61,1);--color-mktg-info: rgba(42,123,243,1);--color-mktg-bg-shade-gradient-top: rgba(1,4,9,.065);--color-mktg-bg-shade-gradient-bottom: rgba(1,4,9,0);--color-mktg-btn-bg-top: hsla(228,82%,66%,1);--color-mktg-btn-bg-bottom: #4969ed;--color-mktg-btn-bg-overlay-top: hsla(228,74%,59%,1);--color-mktg-btn-bg-overlay-bottom: #3355e0;--color-mktg-btn-text: #f0f6fc;--color-mktg-btn-primary-bg-top: hsla(137,56%,46%,1);--color-mktg-btn-primary-bg-bottom: #2ea44f;--color-mktg-btn-primary-bg-overlay-top: hsla(134,60%,38%,1);--color-mktg-btn-primary-bg-overlay-bottom: #22863a;--color-mktg-btn-primary-text: #f0f6fc;--color-mktg-btn-enterprise-bg-top: hsla(249,100%,72%,1);--color-mktg-btn-enterprise-bg-bottom: #6f57ff;--color-mktg-btn-enterprise-bg-overlay-top: hsla(248,65%,63%,1);--color-mktg-btn-enterprise-bg-overlay-bottom: #614eda;--color-mktg-btn-enterprise-text: #f0f6fc;--color-mktg-btn-outline-text: #f0f6fc;--color-mktg-btn-outline-border: rgba(240,246,252,.3);--color-mktg-btn-outline-hover-text: #f0f6fc;--color-mktg-btn-outline-hover-border: rgba(240,246,252,.5);--color-mktg-btn-outline-focus-border: #f0f6fc;--color-mktg-btn-outline-focus-border-inset: rgba(240,246,252,.5);--color-mktg-btn-dark-text: #f0f6fc;--color-mktg-btn-dark-border: rgba(240,246,252,.3);--color-mktg-btn-dark-hover-text: #f0f6fc;--color-mktg-btn-dark-hover-border: rgba(240,246,252,.5);--color-mktg-btn-dark-focus-border: #f0f6fc;--color-mktg-btn-dark-focus-border-inset: rgba(240,246,252,.5);--color-avatar-bg: rgba(240,246,252,.1);--color-avatar-border: rgba(240,246,252,.1);--color-avatar-stack-fade: #30363d;--color-avatar-stack-fade-more: #21262d;--color-avatar-child-shadow: -2px -2px 0 #0d1117;--color-topic-tag-border: rgba(0,0,0,0);--color-select-menu-backdrop-border: #484f58;--color-select-menu-tap-highlight: rgba(48,54,61,.5);--color-select-menu-tap-focus-bg: #0c2d6b;--color-overlay-shadow: 0 0 0 1px #30363d, 0 16px 32px rgba(1,4,9,.85);--color-header-text: rgba(240,246,252,.7);--color-header-bg: #161b22;--color-header-logo: #f0f6fc;--color-header-search-bg: #0d1117;--color-header-search-border: #30363d;--color-sidenav-selected-bg: #21262d;--color-menu-bg-active: #161b22;--color-control-transparent-bg-hover: #656c7633;--color-input-disabled-bg: rgba(110,118,129,0);--color-timeline-badge-bg: #21262d;--color-ansi-black: #484f58;--color-ansi-black-bright: #6e7681;--color-ansi-white: #b1bac4;--color-ansi-white-bright: #f0f6fc;--color-ansi-gray: #6e7681;--color-ansi-red: #ff7b72;--color-ansi-red-bright: #ffa198;--color-ansi-green: #3fb950;--color-ansi-green-bright: #56d364;--color-ansi-yellow: #d29922;--color-ansi-yellow-bright: #e3b341;--color-ansi-blue: #58a6ff;--color-ansi-blue-bright: #79c0ff;--color-ansi-magenta: #bc8cff;--color-ansi-magenta-bright: #d2a8ff;--color-ansi-cyan: #39c5cf;--color-ansi-cyan-bright: #56d4dd;--color-btn-text: #c9d1d9;--color-btn-bg: #21262d;--color-btn-border: rgba(240,246,252,.1);--color-btn-shadow: 0 0 transparent;--color-btn-inset-shadow: 0 0 transparent;--color-btn-hover-bg: #30363d;--color-btn-hover-border: #8b949e;--color-btn-active-bg: hsla(212,12%,18%,1);--color-btn-active-border: #6e7681;--color-btn-selected-bg: #161b22;--color-btn-focus-bg: #21262d;--color-btn-focus-border: #8b949e;--color-btn-focus-shadow: 0 0 0 3px rgba(139,148,158,.3);--color-btn-shadow-active: inset 0 .15em .3em rgba(1,4,9,.15);--color-btn-shadow-input-focus: 0 0 0 .2em rgba(31,111,235,.3);--color-btn-counter-bg: #30363d;--color-btn-primary-text: #ffffff;--color-btn-primary-bg: #238636;--color-btn-primary-border: rgba(240,246,252,.1);--color-btn-primary-shadow: 0 0 transparent;--color-btn-primary-inset-shadow: 0 0 transparent;--color-btn-primary-hover-bg: #2ea043;--color-btn-primary-hover-border: rgba(240,246,252,.1);--color-btn-primary-selected-bg: #238636;--color-btn-primary-selected-shadow: 0 0 transparent;--color-btn-primary-disabled-text: rgba(240,246,252,.5);--color-btn-primary-disabled-bg: rgba(35,134,54,.6);--color-btn-primary-disabled-border: rgba(240,246,252,.1);--color-btn-primary-focus-bg: #238636;--color-btn-primary-focus-border: rgba(240,246,252,.1);--color-btn-primary-focus-shadow: 0 0 0 3px rgba(46,164,79,.4);--color-btn-primary-icon: #f0f6fc;--color-btn-primary-counter-bg: rgba(240,246,252,.2);--color-btn-outline-text: #58a6ff;--color-btn-outline-hover-text: #58a6ff;--color-btn-outline-hover-bg: #30363d;--color-btn-outline-hover-border: rgba(240,246,252,.1);--color-btn-outline-hover-shadow: 0 1px 0 rgba(1,4,9,.1);--color-btn-outline-hover-inset-shadow: inset 0 1px 0 rgba(240,246,252,.03);--color-btn-outline-hover-counter-bg: rgba(240,246,252,.2);--color-btn-outline-selected-text: #f0f6fc;--color-btn-outline-selected-bg: #0d419d;--color-btn-outline-selected-border: rgba(240,246,252,.1);--color-btn-outline-selected-shadow: 0 0 transparent;--color-btn-outline-disabled-text: rgba(88,166,255,.5);--color-btn-outline-disabled-bg: #0d1117;--color-btn-outline-disabled-counter-bg: rgba(31,111,235,.05);--color-btn-outline-focus-border: rgba(240,246,252,.1);--color-btn-outline-focus-shadow: 0 0 0 3px rgba(17,88,199,.4);--color-btn-outline-counter-bg: rgba(31,111,235,.1);--color-btn-danger-text: #f85149;--color-btn-danger-hover-text: #f0f6fc;--color-btn-danger-hover-bg: #da3633;--color-btn-danger-hover-border: #f85149;--color-btn-danger-hover-shadow: 0 0 transparent;--color-btn-danger-hover-inset-shadow: 0 0 transparent;--color-btn-danger-hover-icon: #f0f6fc;--color-btn-danger-hover-counter-bg: rgba(255,255,255,.2);--color-btn-danger-selected-text: #ffffff;--color-btn-danger-selected-bg: #b62324;--color-btn-danger-selected-border: #ff7b72;--color-btn-danger-selected-shadow: 0 0 transparent;--color-btn-danger-disabled-text: rgba(248,81,73,.5);--color-btn-danger-disabled-bg: #0d1117;--color-btn-danger-disabled-counter-bg: rgba(218,54,51,.05);--color-btn-danger-focus-border: #f85149;--color-btn-danger-focus-shadow: 0 0 0 3px rgba(248,81,73,.4);--color-btn-danger-counter-bg: rgba(218,54,51,.1);--color-btn-danger-icon: #f85149;--color-underlinenav-icon: #484f58;--color-underlinenav-border-hover: rgba(110,118,129,.4);--color-fg-default: #c9d1d9;--color-fg-muted: #8b949e;--color-fg-subtle: #484f58;--color-fg-on-emphasis: #f0f6fc;--color-canvas-default: #0d1117;--color-canvas-overlay: #161b22;--color-canvas-inset: #010409;--color-canvas-subtle: #161b22;--color-border-default: #30363d;--color-border-muted: #21262d;--color-border-subtle: rgba(240,246,252,.1);--color-shadow-small: 0 0 transparent;--color-shadow-medium: 0 3px 6px #010409;--color-shadow-large: 0 8px 24px #010409;--color-shadow-extra-large: 0 12px 48px #010409;--color-neutral-emphasis-plus: #6e7681;--color-neutral-emphasis: #6e7681;--color-neutral-muted: rgba(110,118,129,.4);--color-neutral-subtle: rgba(110,118,129,.1);--color-accent-fg: #58a6ff;--color-accent-emphasis: #1f6feb;--color-accent-muted: rgba(56,139,253,.4);--color-accent-subtle: rgba(56,139,253,.15);--color-success-fg: #3fb950;--color-success-emphasis: #238636;--color-success-muted: rgba(46,160,67,.4);--color-success-subtle: rgba(46,160,67,.15);--color-attention-fg: #d29922;--color-attention-emphasis: #9e6a03;--color-attention-muted: rgba(187,128,9,.4);--color-attention-subtle: rgba(187,128,9,.15);--color-severe-fg: #db6d28;--color-severe-emphasis: #bd561d;--color-severe-muted: rgba(219,109,40,.4);--color-severe-subtle: rgba(219,109,40,.15);--color-danger-fg: #f85149;--color-danger-emphasis: #da3633;--color-danger-muted: rgba(248,81,73,.4);--color-danger-subtle: rgba(248,81,73,.15);--color-done-fg: #a371f7;--color-done-emphasis: #8957e5;--color-done-muted: rgba(163,113,247,.4);--color-done-subtle: rgba(163,113,247,.15);--color-sponsors-fg: #db61a2;--color-sponsors-emphasis: #bf4b8a;--color-sponsors-muted: rgba(219,97,162,.4);--color-sponsors-subtle: rgba(219,97,162,.15);--color-primer-canvas-backdrop: rgba(1,4,9,.8);--color-primer-canvas-sticky: rgba(13,17,23,.95);--color-primer-border-active: #F78166;--color-primer-border-contrast: rgba(240,246,252,.2);--color-primer-shadow-highlight: 0 0 transparent;--color-primer-shadow-inset: 0 0 transparent;--color-primer-shadow-focus: 0 0 0 3px #0c2d6b;--color-scale-black: #010409;--color-scale-white: #f0f6fc;--color-scale-gray-0: #f0f6fc;--color-scale-gray-1: #c9d1d9;--color-scale-gray-2: #b1bac4;--color-scale-gray-3: #8b949e;--color-scale-gray-4: #6e7681;--color-scale-gray-5: #484f58;--color-scale-gray-6: #30363d;--color-scale-gray-7: #21262d;--color-scale-gray-8: #161b22;--color-scale-gray-9: #0d1117;--color-scale-blue-0: #cae8ff;--color-scale-blue-1: #a5d6ff;--color-scale-blue-2: #79c0ff;--color-scale-blue-3: #58a6ff;--color-scale-blue-4: #388bfd;--color-scale-blue-5: #1f6feb;--color-scale-blue-6: #1158c7;--color-scale-blue-7: #0d419d;--color-scale-blue-8: #0c2d6b;--color-scale-blue-9: #051d4d;--color-scale-green-0: #aff5b4;--color-scale-green-1: #7ee787;--color-scale-green-2: #56d364;--color-scale-green-3: #3fb950;--color-scale-green-4: #2ea043;--color-scale-green-5: #238636;--color-scale-green-6: #196c2e;--color-scale-green-7: #0f5323;--color-scale-green-8: #033a16;--color-scale-green-9: #04260f;--color-scale-yellow-0: #f8e3a1;--color-scale-yellow-1: #f2cc60;--color-scale-yellow-2: #e3b341;--color-scale-yellow-3: #d29922;--color-scale-yellow-4: #bb8009;--color-scale-yellow-5: #9e6a03;--color-scale-yellow-6: #845306;--color-scale-yellow-7: #693e00;--color-scale-yellow-8: #4b2900;--color-scale-yellow-9: #341a00;--color-scale-orange-0: #ffdfb6;--color-scale-orange-1: #ffc680;--color-scale-orange-2: #ffa657;--color-scale-orange-3: #f0883e;--color-scale-orange-4: #db6d28;--color-scale-orange-5: #bd561d;--color-scale-orange-6: #9b4215;--color-scale-orange-7: #762d0a;--color-scale-orange-8: #5a1e02;--color-scale-orange-9: #3d1300;--color-scale-red-0: #ffdcd7;--color-scale-red-1: #ffc1ba;--color-scale-red-2: #ffa198;--color-scale-red-3: #ff7b72;--color-scale-red-4: #f85149;--color-scale-red-5: #da3633;--color-scale-red-6: #b62324;--color-scale-red-7: #8e1519;--color-scale-red-8: #67060c;--color-scale-red-9: #490202;--color-scale-purple-0: #eddeff;--color-scale-purple-1: #e2c5ff;--color-scale-purple-2: #d2a8ff;--color-scale-purple-3: #bc8cff;--color-scale-purple-4: #a371f7;--color-scale-purple-5: #8957e5;--color-scale-purple-6: #6e40c9;--color-scale-purple-7: #553098;--color-scale-purple-8: #3c1e70;--color-scale-purple-9: #271052;--color-scale-pink-0: #ffdaec;--color-scale-pink-1: #ffbedd;--color-scale-pink-2: #ff9bce;--color-scale-pink-3: #f778ba;--color-scale-pink-4: #db61a2;--color-scale-pink-5: #bf4b8a;--color-scale-pink-6: #9e3670;--color-scale-pink-7: #7d2457;--color-scale-pink-8: #5e103e;--color-scale-pink-9: #42062a;--color-scale-coral-0: #FFDDD2;--color-scale-coral-1: #FFC2B2;--color-scale-coral-2: #FFA28B;--color-scale-coral-3: #F78166;--color-scale-coral-4: #EA6045;--color-scale-coral-5: #CF462D;--color-scale-coral-6: #AC3220;--color-scale-coral-7: #872012;--color-scale-coral-8: #640D04;--color-scale-coral-9: #460701 }:root{--box-shadow: rgba(0, 0, 0, .133) 0px 1.6px 3.6px 0px, rgba(0, 0, 0, .11) 0px .3px .9px 0px;--box-shadow-thick: rgb(0 0 0 / 10%) 0px 1.8px 1.9px, rgb(0 0 0 / 15%) 0px 6.1px 6.3px, rgb(0 0 0 / 10%) 0px -2px 4px, rgb(0 0 0 / 15%) 0px -6.1px 12px, rgb(0 0 0 / 25%) 0px 6px 12px}*{box-sizing:border-box;min-width:0;min-height:0}svg{fill:currentColor}.vbox{display:flex;flex-direction:column;flex:auto;position:relative}.hbox{display:flex;flex:auto;position:relative}.hidden{visibility:hidden}.d-flex{display:flex!important}.d-inline{display:inline!important}.m-1{margin:4px}.m-2{margin:8px}.m-3{margin:16px}.m-4{margin:24px}.m-5{margin:32px}.mx-1{margin:0 4px}.mx-2{margin:0 8px}.mx-3{margin:0 16px}.mx-4{margin:0 24px}.mx-5{margin:0 32px}.my-1{margin:4px 0}.my-2{margin:8px 0}.my-3{margin:16px 0}.my-4{margin:24px 0}.my-5{margin:32px 0}.mt-1{margin-top:4px}.mt-2{margin-top:8px}.mt-3{margin-top:16px}.mt-4{margin-top:24px}.mt-5{margin-top:32px}.mr-1{margin-right:4px}.mr-2{margin-right:8px}.mr-3{margin-right:16px}.mr-4{margin-right:24px}.mr-5{margin-right:32px}.mb-1{margin-bottom:4px}.mb-2{margin-bottom:8px}.mb-3{margin-bottom:16px}.mb-4{margin-bottom:24px}.mb-5{margin-bottom:32px}.ml-1{margin-left:4px}.ml-2{margin-left:8px}.ml-3{margin-left:16px}.ml-4{margin-left:24px}.ml-5{margin-left:32px}.p-1{padding:4px}.p-2{padding:8px}.p-3{padding:16px}.p-4{padding:24px}.p-5{padding:32px}.px-1{padding:0 4px}.px-2{padding:0 8px}.px-3{padding:0 16px}.px-4{padding:0 24px}.px-5{padding:0 32px}.py-1{padding:4px 0}.py-2{padding:8px 0}.py-3{padding:16px 0}.py-4{padding:24px 0}.py-5{padding:32px 0}.pt-1{padding-top:4px}.pt-2{padding-top:8px}.pt-3{padding-top:16px}.pt-4{padding-top:24px}.pt-5{padding-top:32px}.pr-1{padding-right:4px}.pr-2{padding-right:8px}.pr-3{padding-right:16px}.pr-4{padding-right:24px}.pr-5{padding-right:32px}.pb-1{padding-bottom:4px}.pb-2{padding-bottom:8px}.pb-3{padding-bottom:16px}.pb-4{padding-bottom:24px}.pb-5{padding-bottom:32px}.pl-1{padding-left:4px}.pl-2{padding-left:8px}.pl-3{padding-left:16px}.pl-4{padding-left:24px}.pl-5{padding-left:32px}.no-wrap{white-space:nowrap!important}.float-left{float:left!important}article,aside,details,figcaption,figure,footer,header,main,menu,nav,section{display:block}.form-control,.form-select{padding:5px 12px;font-size:14px;line-height:20px;color:var(--color-fg-default);vertical-align:middle;background-color:var(--color-canvas-default);background-repeat:no-repeat;background-position:right 8px center;border:1px solid var(--color-border-default);border-radius:6px;outline:none;box-shadow:var(--color-primer-shadow-inset)}.input-contrast{background-color:var(--color-canvas-inset)}.subnav-search{position:relative;flex:auto;display:flex}.subnav-search-input{flex:auto;padding-left:32px;color:var(--color-fg-muted)}.subnav-search-icon{position:absolute;top:9px;left:8px;display:block;color:var(--color-fg-muted);text-align:center;pointer-events:none}.subnav-search-context+.subnav-search{margin-left:-1px}.subnav-item{flex:none;position:relative;float:left;padding:5px 8px;font-weight:500;line-height:20px;color:var(--color-fg-default);border:1px solid var(--color-border-default);-webkit-user-select:none;user-select:none}.subnav-item:hover{background-color:var(--color-canvas-subtle)}.subnav-item[aria-selected=true]{background:var(--color-control-transparent-bg-hover)}.subnav-item:first-child{border-top-left-radius:6px;border-bottom-left-radius:6px}.subnav-item:last-child{border-top-right-radius:6px;border-bottom-right-radius:6px}.subnav-item+.subnav-item{margin-left:-1px}.subnav-item .octicon,.subnav-item-label{margin-right:8px}.counter{display:inline-block;min-width:20px;padding:0 6px;font-size:12px;font-weight:500;line-height:18px;color:var(--color-fg-default);text-align:center;background-color:var(--color-neutral-muted);border:1px solid transparent;border-radius:2em}.color-icon-success{color:var(--color-success-fg)!important}.color-text-danger{color:var(--color-danger-fg)!important}.color-text-warning{color:var(--color-checks-step-warning-text)!important}.color-fg-muted{color:var(--color-fg-muted)!important}.octicon{display:inline-block;overflow:visible!important;vertical-align:text-bottom;fill:currentColor;margin-right:7px;flex:none}.button{flex:none;height:24px;border:1px solid var(--color-btn-border);outline:none;color:var(--color-btn-text);background:var(--color-btn-bg);padding:4px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;border-radius:4px}.button:not(:disabled):hover{border-color:var(--color-btn-hover-border);background-color:var(--color-btn-hover-bg)}input[type=checkbox]{outline:var(--color-focus-border);height:24px}dialog{background-color:var(--color-canvas-subtle);border:1px solid var(--color-border-default);border-radius:6px;padding:6px}.subnav-item .octicon.octicon-settings{margin-right:0}.subnav-item .octicon.octicon-clock{margin-right:0;color:var(--color-fg-default)!important}@media only screen and (max-width: 600px){.subnav-item,.form-control{border-radius:0!important}.subnav-item{border:none}.subnav-search-input{border-left:0;border-right:0}}.header-view-status-container{float:right}.header-view{padding:12px 8px 0}.header-view div{flex-shrink:0;flex-wrap:wrap}.header-superheader{color:var(--color-fg-muted)}.header-title{flex:none;font-weight:400;font-size:32px;line-height:1.25}.header-setting-theme{display:grid;margin-left:22px}@media only screen and (max-width: 600px){.header-view{padding:0}.header-view div{flex-shrink:1}.header-view-status-container{float:none;margin:0 0 10px!important;overflow:hidden}.header-view-status-container .subnav-search-input{border-left:none;border-right:none}.header-title,.header-superheader{margin:0 8px}}.copy-icon{flex:none;height:24px;width:24px;border:none;outline:none;color:var(--color-fg-muted);background:transparent;padding:4px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;border-radius:4px}.copy-icon svg{margin:0}.copy-icon:not(:disabled):hover{background-color:var(--color-border-default)}.copy-button-container{visibility:hidden;display:inline-flex;margin-left:8px;vertical-align:bottom}.copy-value-container:hover .copy-button-container{visibility:visible}.attachment-body{white-space:pre-wrap;background-color:var(--color-canvas-subtle);margin-left:24px;line-height:normal;padding:8px;font-family:monospace;position:relative}.attachment-body .copy-icon{position:absolute;right:5px;top:5px}.attachment-flash{animation:attachmentflash-bg 2s}@keyframes attachmentflash-bg{0%{background:var(--color-attention-subtle)}to{background:transparent}}.link-badge{flex:none;background-color:transparent;border-color:transparent;-webkit-user-select:none;user-select:none}.link-badge-dim span{color:var(--color-fg-muted)}.link-badge:hover{cursor:pointer}.link-badge svg{fill:var(--color-fg-default)}.link-badge-dim svg{fill:var(--color-fg-muted)}.link-badge-dim:hover svg{fill:var(--color-fg-muted)}.fullwidth-link{width:100%;text-align:left}.fullwidth-link:hover{background-color:var(--color-canvas-subtle)}.trace-link{margin-right:3px}.trace-link-separator{color:var(--color-fg-muted);-webkit-user-select:none;user-select:none}.expandable-summary{cursor:pointer;list-style:none;white-space:nowrap;padding-left:4px}.label{display:inline-block;padding:0 8px;font-size:12px;font-weight:500;line-height:18px;border:1px solid transparent;border-radius:2em;background-color:var(--color-scale-gray-4);color:#fff;margin:0 10px;flex:none;font-weight:600;cursor:pointer}.label-anchor{text-decoration:none;color:var(--color-fg-default)}:root.light-mode .label-color-0{background-color:var(--color-scale-blue-0);color:var(--color-scale-blue-6);border:1px solid var(--color-scale-blue-4)}:root.light-mode .label-color-1{background-color:var(--color-scale-yellow-0);color:var(--color-scale-yellow-6);border:1px solid var(--color-scale-yellow-4)}:root.light-mode .label-color-2{background-color:var(--color-scale-purple-0);color:var(--color-scale-purple-6);border:1px solid var(--color-scale-purple-4)}:root.light-mode .label-color-3{background-color:var(--color-scale-pink-0);color:var(--color-scale-pink-6);border:1px solid var(--color-scale-pink-4)}:root.light-mode .label-color-4{background-color:var(--color-scale-coral-0);color:var(--color-scale-coral-6);border:1px solid var(--color-scale-coral-4)}:root.light-mode .label-color-5{background-color:var(--color-scale-orange-0);color:var(--color-scale-orange-6);border:1px solid var(--color-scale-orange-4)}:root.dark-mode .label-color-0{background-color:var(--color-scale-blue-9);color:var(--color-scale-blue-2);border:1px solid var(--color-scale-blue-4)}:root.dark-mode .label-color-1{background-color:var(--color-scale-yellow-9);color:var(--color-scale-yellow-2);border:1px solid var(--color-scale-yellow-4)}:root.dark-mode .label-color-2{background-color:var(--color-scale-purple-9);color:var(--color-scale-purple-2);border:1px solid var(--color-scale-purple-4)}:root.dark-mode .label-color-3{background-color:var(--color-scale-pink-9);color:var(--color-scale-pink-2);border:1px solid var(--color-scale-pink-4)}:root.dark-mode .label-color-4{background-color:var(--color-scale-coral-9);color:var(--color-scale-coral-2);border:1px solid var(--color-scale-coral-4)}:root.dark-mode .label-color-5{background-color:var(--color-scale-orange-9);color:var(--color-scale-orange-2);border:1px solid var(--color-scale-orange-4)}.label-row .label{margin:0}.label-row .label:not(:first-child){margin-left:6px}html,body{width:100%;height:100%;padding:0;margin:0;overscroll-behavior-x:none}body{overflow:auto;max-width:1024px;margin:0 auto;width:100%}.test-file-test:not(:first-child){border-top:1px solid var(--color-border-default)}@media only screen and (max-width: 600px){.htmlreport{padding:0!important}}.tabbed-pane{display:flex;flex:auto;overflow:hidden}.tabbed-pane-tab-strip{display:flex;align-items:center;padding-right:10px;flex:none;width:100%;z-index:2;font-size:14px;line-height:32px;color:var(--color-fg-default);height:48px;min-width:70px;box-shadow:inset 0 -1px 0 var(--color-border-muted)!important}.tabbed-pane-tab-strip:focus{outline:none}.tabbed-pane-tab-element{padding:4px 8px 0;margin-right:4px;cursor:pointer;display:flex;flex:none;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none;border-bottom:2px solid transparent;outline:none;height:100%}.tabbed-pane-tab-label{max-width:250px;white-space:pre;overflow:hidden;text-overflow:ellipsis;display:inline-block;height:30px;padding:0 8px;border-radius:6px}.tabbed-pane-tab-label:hover{background-color:var(--color-control-transparent-bg-hover)}.tabbed-pane-tab-element.selected{border-bottom-color:#666;-webkit-text-stroke:.5px currentColor}.chip-header{border:1px solid var(--color-border-default);border-top-left-radius:6px;border-top-right-radius:6px;background-color:var(--color-canvas-subtle);padding:0 8px;border-bottom:none;margin-top:12px;font-weight:600;line-height:38px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-user-select:none;user-select:none}.chip-header-allow-selection{-webkit-user-select:text;user-select:text}.chip-header.expanded-false{border:1px solid var(--color-border-default);border-radius:6px}.chip-header.expanded-false,.chip-header.expanded-true{cursor:pointer}.chip-body{border:1px solid var(--color-border-default);border-bottom-left-radius:6px;border-bottom-right-radius:6px;padding:16px;margin-bottom:12px;overflow:hidden}.chip-body-no-insets{padding:0}.chip-footer{border-top:1px solid var(--color-border-default)}@media only screen and (max-width: 600px){.chip-header{border-radius:0;border-right:none;border-left:none}.chip-body{border-radius:0;border-right:none;border-left:none;padding:8px}.chip-body-no-insets{padding:0}}.test-case-column{border-radius:6px;margin-bottom:24px}.test-case-column .tab-element.selected{font-weight:600;border-bottom-color:var(--color-primer-border-active)}.test-case-column .tab-element{border:none;color:var(--color-fg-default);border-bottom:2px solid transparent}.test-case-column .tab-element:hover{color:var(--color-fg-default)}.test-case-location,.test-case-duration{flex:none;align-items:center;padding:0 8px 8px}.selected .test-case-run-duration{-webkit-text-stroke:0}.test-case-run-duration{color:var(--color-fg-muted);padding-left:8px}.header-view .test-case-path{flex:none;flex-shrink:1;align-items:center;padding-right:8px}.test-case-annotation{flex:none;align-items:center;padding:0 8px;line-height:24px;white-space:pre-wrap}@media only screen and (max-width: 600px){.test-case-column{border-radius:0!important;margin:0!important}}.tree-item{display:flex;flex-direction:column;overflow:hidden;min-width:0;line-height:38px}.tree-item-title{cursor:pointer;overflow:hidden;text-overflow:ellipsis;min-width:0;display:flex;align-items:center}.tree-item-body{min-height:18px}.yellow-flash{animation:yellowflash-bg 2s}@keyframes yellowflash-bg{0%{background:var(--color-attention-subtle)}to{background:transparent}}:root{--vscode-font-family: system-ui, "Ubuntu", "Droid Sans", sans-serif;--vscode-font-weight: normal;--vscode-font-size: 13px;--vscode-editor-font-family: "Droid Sans Mono", "monospace", monospace;--vscode-editor-font-weight: normal;--vscode-editor-font-size: 14px;--vscode-foreground: #616161;--vscode-disabledForeground: rgba(97, 97, 97, .5);--vscode-errorForeground: #a1260d;--vscode-descriptionForeground: #717171;--vscode-icon-foreground: #424242;--vscode-focusBorder: #0090f1;--vscode-textSeparator-foreground: rgba(0, 0, 0, .18);--vscode-textLink-foreground: #006ab1;--vscode-textLink-activeForeground: #006ab1;--vscode-textPreformat-foreground: #a31515;--vscode-textBlockQuote-background: rgba(127, 127, 127, .1);--vscode-textBlockQuote-border: rgba(0, 122, 204, .5);--vscode-textCodeBlock-background: rgba(220, 220, 220, .4);--vscode-widget-shadow: rgba(0, 0, 0, .16);--vscode-input-background: #ffffff;--vscode-input-foreground: #616161;--vscode-inputOption-activeBorder: #007acc;--vscode-inputOption-hoverBackground: rgba(184, 184, 184, .31);--vscode-inputOption-activeBackground: rgba(0, 144, 241, .2);--vscode-inputOption-activeForeground: #000000;--vscode-input-placeholderForeground: #767676;--vscode-inputValidation-infoBackground: #d6ecf2;--vscode-inputValidation-infoBorder: #007acc;--vscode-inputValidation-warningBackground: #f6f5d2;--vscode-inputValidation-warningBorder: #b89500;--vscode-inputValidation-errorBackground: #f2dede;--vscode-inputValidation-errorBorder: #be1100;--vscode-dropdown-background: #ffffff;--vscode-dropdown-border: #cecece;--vscode-checkbox-background: #ffffff;--vscode-checkbox-border: #cecece;--vscode-button-foreground: #ffffff;--vscode-button-separator: rgba(255, 255, 255, .4);--vscode-button-background: #007acc;--vscode-button-hoverBackground: #0062a3;--vscode-button-secondaryForeground: #ffffff;--vscode-button-secondaryBackground: #5f6a79;--vscode-button-secondaryHoverBackground: #4c5561;--vscode-badge-background: #c4c4c4;--vscode-badge-foreground: #333333;--vscode-scrollbar-shadow: #dddddd;--vscode-scrollbarSlider-background: rgba(100, 100, 100, .4);--vscode-scrollbarSlider-hoverBackground: rgba(100, 100, 100, .7);--vscode-scrollbarSlider-activeBackground: rgba(0, 0, 0, .6);--vscode-progressBar-background: #0e70c0;--vscode-editorError-foreground: #e51400;--vscode-editorWarning-foreground: #bf8803;--vscode-editorInfo-foreground: #1a85ff;--vscode-editorHint-foreground: #6c6c6c;--vscode-sash-hoverBorder: #0090f1;--vscode-editor-background: #ffffff;--vscode-editor-foreground: #000000;--vscode-editorStickyScroll-background: #ffffff;--vscode-editorStickyScrollHover-background: #f0f0f0;--vscode-editorWidget-background: #f3f3f3;--vscode-editorWidget-foreground: #616161;--vscode-editorWidget-border: #c8c8c8;--vscode-quickInput-background: #f3f3f3;--vscode-quickInput-foreground: #616161;--vscode-quickInputTitle-background: rgba(0, 0, 0, .06);--vscode-pickerGroup-foreground: #0066bf;--vscode-pickerGroup-border: #cccedb;--vscode-keybindingLabel-background: rgba(221, 221, 221, .4);--vscode-keybindingLabel-foreground: #555555;--vscode-keybindingLabel-border: rgba(204, 204, 204, .4);--vscode-keybindingLabel-bottomBorder: rgba(187, 187, 187, .4);--vscode-editor-selectionBackground: #add6ff;--vscode-editor-inactiveSelectionBackground: #e5ebf1;--vscode-editor-selectionHighlightBackground: rgba(173, 214, 255, .5);--vscode-editor-findMatchBackground: #a8ac94;--vscode-editor-findMatchHighlightBackground: rgba(234, 92, 0, .33);--vscode-editor-findRangeHighlightBackground: rgba(180, 180, 180, .3);--vscode-searchEditor-findMatchBackground: rgba(234, 92, 0, .22);--vscode-editor-hoverHighlightBackground: rgba(173, 214, 255, .15);--vscode-editorHoverWidget-background: #f3f3f3;--vscode-editorHoverWidget-foreground: #616161;--vscode-editorHoverWidget-border: #c8c8c8;--vscode-editorHoverWidget-statusBarBackground: #e7e7e7;--vscode-editorLink-activeForeground: #0000ff;--vscode-editorInlayHint-foreground: rgba(51, 51, 51, .8);--vscode-editorInlayHint-background: rgba(196, 196, 196, .3);--vscode-editorInlayHint-typeForeground: rgba(51, 51, 51, .8);--vscode-editorInlayHint-typeBackground: rgba(196, 196, 196, .3);--vscode-editorInlayHint-parameterForeground: rgba(51, 51, 51, .8);--vscode-editorInlayHint-parameterBackground: rgba(196, 196, 196, .3);--vscode-editorLightBulb-foreground: #ddb100;--vscode-editorLightBulbAutoFix-foreground: #007acc;--vscode-diffEditor-insertedTextBackground: rgba(156, 204, 44, .4);--vscode-diffEditor-removedTextBackground: rgba(255, 0, 0, .3);--vscode-diffEditor-insertedLineBackground: rgba(155, 185, 85, .2);--vscode-diffEditor-removedLineBackground: rgba(255, 0, 0, .2);--vscode-diffEditor-diagonalFill: rgba(34, 34, 34, .2);--vscode-list-focusOutline: #0090f1;--vscode-list-focusAndSelectionOutline: #90c2f9;--vscode-list-activeSelectionBackground: #0060c0;--vscode-list-activeSelectionForeground: #ffffff;--vscode-list-activeSelectionIconForeground: #ffffff;--vscode-list-inactiveSelectionBackground: #e4e6f1;--vscode-list-hoverBackground: #e8e8e8;--vscode-list-dropBackground: #d6ebff;--vscode-list-highlightForeground: #0066bf;--vscode-list-focusHighlightForeground: #bbe7ff;--vscode-list-invalidItemForeground: #b89500;--vscode-list-errorForeground: #b01011;--vscode-list-warningForeground: #855f00;--vscode-listFilterWidget-background: #f3f3f3;--vscode-listFilterWidget-outline: rgba(0, 0, 0, 0);--vscode-listFilterWidget-noMatchesOutline: #be1100;--vscode-listFilterWidget-shadow: rgba(0, 0, 0, .16);--vscode-list-filterMatchBackground: rgba(234, 92, 0, .33);--vscode-tree-indentGuidesStroke: #a9a9a9;--vscode-tree-tableColumnsBorder: rgba(97, 97, 97, .13);--vscode-tree-tableOddRowsBackground: rgba(97, 97, 97, .04);--vscode-list-deemphasizedForeground: #8e8e90;--vscode-quickInputList-focusForeground: #ffffff;--vscode-quickInputList-focusIconForeground: #ffffff;--vscode-quickInputList-focusBackground: #0060c0;--vscode-menu-foreground: #616161;--vscode-menu-background: #ffffff;--vscode-menu-selectionForeground: #ffffff;--vscode-menu-selectionBackground: #0060c0;--vscode-menu-separatorBackground: #d4d4d4;--vscode-toolbar-hoverBackground: rgba(184, 184, 184, .31);--vscode-toolbar-activeBackground: rgba(166, 166, 166, .31);--vscode-editor-snippetTabstopHighlightBackground: rgba(10, 50, 100, .2);--vscode-editor-snippetFinalTabstopHighlightBorder: rgba(10, 50, 100, .5);--vscode-breadcrumb-foreground: rgba(97, 97, 97, .8);--vscode-breadcrumb-background: #ffffff;--vscode-breadcrumb-focusForeground: #4e4e4e;--vscode-breadcrumb-activeSelectionForeground: #4e4e4e;--vscode-breadcrumbPicker-background: #f3f3f3;--vscode-merge-currentHeaderBackground: rgba(64, 200, 174, .5);--vscode-merge-currentContentBackground: rgba(64, 200, 174, .2);--vscode-merge-incomingHeaderBackground: rgba(64, 166, 255, .5);--vscode-merge-incomingContentBackground: rgba(64, 166, 255, .2);--vscode-merge-commonHeaderBackground: rgba(96, 96, 96, .4);--vscode-merge-commonContentBackground: rgba(96, 96, 96, .16);--vscode-editorOverviewRuler-currentContentForeground: rgba(64, 200, 174, .5);--vscode-editorOverviewRuler-incomingContentForeground: rgba(64, 166, 255, .5);--vscode-editorOverviewRuler-commonContentForeground: rgba(96, 96, 96, .4);--vscode-editorOverviewRuler-findMatchForeground: rgba(209, 134, 22, .49);--vscode-editorOverviewRuler-selectionHighlightForeground: rgba(160, 160, 160, .8);--vscode-minimap-findMatchHighlight: #d18616;--vscode-minimap-selectionOccurrenceHighlight: #c9c9c9;--vscode-minimap-selectionHighlight: #add6ff;--vscode-minimap-errorHighlight: rgba(255, 18, 18, .7);--vscode-minimap-warningHighlight: #bf8803;--vscode-minimap-foregroundOpacity: #000000;--vscode-minimapSlider-background: rgba(100, 100, 100, .2);--vscode-minimapSlider-hoverBackground: rgba(100, 100, 100, .35);--vscode-minimapSlider-activeBackground: rgba(0, 0, 0, .3);--vscode-problemsErrorIcon-foreground: #e51400;--vscode-problemsWarningIcon-foreground: #bf8803;--vscode-problemsInfoIcon-foreground: #1a85ff;--vscode-charts-foreground: #616161;--vscode-charts-lines: rgba(97, 97, 97, .5);--vscode-charts-red: #e51400;--vscode-charts-blue: #1a85ff;--vscode-charts-yellow: #bf8803;--vscode-charts-orange: #d18616;--vscode-charts-green: #388a34;--vscode-charts-purple: #652d90;--vscode-editor-lineHighlightBorder: #eeeeee;--vscode-editor-rangeHighlightBackground: rgba(253, 255, 0, .2);--vscode-editor-symbolHighlightBackground: rgba(234, 92, 0, .33);--vscode-editorCursor-foreground: #000000;--vscode-editorWhitespace-foreground: rgba(51, 51, 51, .2);--vscode-editorIndentGuide-background: #d3d3d3;--vscode-editorIndentGuide-activeBackground: #939393;--vscode-editorLineNumber-foreground: #237893;--vscode-editorActiveLineNumber-foreground: #0b216f;--vscode-editorLineNumber-activeForeground: #0b216f;--vscode-editorRuler-foreground: #d3d3d3;--vscode-editorCodeLens-foreground: #919191;--vscode-editorBracketMatch-background: rgba(0, 100, 0, .1);--vscode-editorBracketMatch-border: #b9b9b9;--vscode-editorOverviewRuler-border: rgba(127, 127, 127, .3);--vscode-editorGutter-background: #ffffff;--vscode-editorUnnecessaryCode-opacity: rgba(0, 0, 0, .47);--vscode-editorGhostText-foreground: rgba(0, 0, 0, .47);--vscode-editorOverviewRuler-rangeHighlightForeground: rgba(0, 122, 204, .6);--vscode-editorOverviewRuler-errorForeground: rgba(255, 18, 18, .7);--vscode-editorOverviewRuler-warningForeground: #bf8803;--vscode-editorOverviewRuler-infoForeground: #1a85ff;--vscode-editorBracketHighlight-foreground1: #0431fa;--vscode-editorBracketHighlight-foreground2: #319331;--vscode-editorBracketHighlight-foreground3: #7b3814;--vscode-editorBracketHighlight-foreground4: rgba(0, 0, 0, 0);--vscode-editorBracketHighlight-foreground5: rgba(0, 0, 0, 0);--vscode-editorBracketHighlight-foreground6: rgba(0, 0, 0, 0);--vscode-editorBracketHighlight-unexpectedBracket\.foreground: rgba(255, 18, 18, .8);--vscode-editorBracketPairGuide-background1: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-background2: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-background3: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-background4: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-background5: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-background6: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-activeBackground1: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-activeBackground2: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-activeBackground3: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-activeBackground4: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-activeBackground5: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-activeBackground6: rgba(0, 0, 0, 0);--vscode-editorUnicodeHighlight-border: #cea33d;--vscode-editorUnicodeHighlight-background: rgba(206, 163, 61, .08);--vscode-symbolIcon-arrayForeground: #616161;--vscode-symbolIcon-booleanForeground: #616161;--vscode-symbolIcon-classForeground: #d67e00;--vscode-symbolIcon-colorForeground: #616161;--vscode-symbolIcon-constantForeground: #616161;--vscode-symbolIcon-constructorForeground: #652d90;--vscode-symbolIcon-enumeratorForeground: #d67e00;--vscode-symbolIcon-enumeratorMemberForeground: #007acc;--vscode-symbolIcon-eventForeground: #d67e00;--vscode-symbolIcon-fieldForeground: #007acc;--vscode-symbolIcon-fileForeground: #616161;--vscode-symbolIcon-folderForeground: #616161;--vscode-symbolIcon-functionForeground: #652d90;--vscode-symbolIcon-interfaceForeground: #007acc;--vscode-symbolIcon-keyForeground: #616161;--vscode-symbolIcon-keywordForeground: #616161;--vscode-symbolIcon-methodForeground: #652d90;--vscode-symbolIcon-moduleForeground: #616161;--vscode-symbolIcon-namespaceForeground: #616161;--vscode-symbolIcon-nullForeground: #616161;--vscode-symbolIcon-numberForeground: #616161;--vscode-symbolIcon-objectForeground: #616161;--vscode-symbolIcon-operatorForeground: #616161;--vscode-symbolIcon-packageForeground: #616161;--vscode-symbolIcon-propertyForeground: #616161;--vscode-symbolIcon-referenceForeground: #616161;--vscode-symbolIcon-snippetForeground: #616161;--vscode-symbolIcon-stringForeground: #616161;--vscode-symbolIcon-structForeground: #616161;--vscode-symbolIcon-textForeground: #616161;--vscode-symbolIcon-typeParameterForeground: #616161;--vscode-symbolIcon-unitForeground: #616161;--vscode-symbolIcon-variableForeground: #007acc;--vscode-editorHoverWidget-highlightForeground: #0066bf;--vscode-editorOverviewRuler-bracketMatchForeground: #a0a0a0;--vscode-editor-foldBackground: rgba(173, 214, 255, .3);--vscode-editorGutter-foldingControlForeground: #424242;--vscode-editor-linkedEditingBackground: rgba(255, 0, 0, .3);--vscode-editor-wordHighlightBackground: rgba(87, 87, 87, .25);--vscode-editor-wordHighlightStrongBackground: rgba(14, 99, 156, .25);--vscode-editorOverviewRuler-wordHighlightForeground: rgba(160, 160, 160, .8);--vscode-editorOverviewRuler-wordHighlightStrongForeground: rgba(192, 160, 192, .8);--vscode-peekViewTitle-background: rgba(26, 133, 255, .1);--vscode-peekViewTitleLabel-foreground: #000000;--vscode-peekViewTitleDescription-foreground: #616161;--vscode-peekView-border: #1a85ff;--vscode-peekViewResult-background: #f3f3f3;--vscode-peekViewResult-lineForeground: #646465;--vscode-peekViewResult-fileForeground: #1e1e1e;--vscode-peekViewResult-selectionBackground: rgba(51, 153, 255, .2);--vscode-peekViewResult-selectionForeground: #6c6c6c;--vscode-peekViewEditor-background: #f2f8fc;--vscode-peekViewEditorGutter-background: #f2f8fc;--vscode-peekViewResult-matchHighlightBackground: rgba(234, 92, 0, .3);--vscode-peekViewEditor-matchHighlightBackground: rgba(245, 216, 2, .87);--vscode-editorMarkerNavigationError-background: #e51400;--vscode-editorMarkerNavigationError-headerBackground: rgba(229, 20, 0, .1);--vscode-editorMarkerNavigationWarning-background: #bf8803;--vscode-editorMarkerNavigationWarning-headerBackground: rgba(191, 136, 3, .1);--vscode-editorMarkerNavigationInfo-background: #1a85ff;--vscode-editorMarkerNavigationInfo-headerBackground: rgba(26, 133, 255, .1);--vscode-editorMarkerNavigation-background: #ffffff;--vscode-editorSuggestWidget-background: #f3f3f3;--vscode-editorSuggestWidget-border: #c8c8c8;--vscode-editorSuggestWidget-foreground: #000000;--vscode-editorSuggestWidget-selectedForeground: #ffffff;--vscode-editorSuggestWidget-selectedIconForeground: #ffffff;--vscode-editorSuggestWidget-selectedBackground: #0060c0;--vscode-editorSuggestWidget-highlightForeground: #0066bf;--vscode-editorSuggestWidget-focusHighlightForeground: #bbe7ff;--vscode-editorSuggestWidgetStatus-foreground: rgba(0, 0, 0, .5);--vscode-tab-activeBackground: #ffffff;--vscode-tab-unfocusedActiveBackground: #ffffff;--vscode-tab-inactiveBackground: #ececec;--vscode-tab-unfocusedInactiveBackground: #ececec;--vscode-tab-activeForeground: #333333;--vscode-tab-inactiveForeground: rgba(51, 51, 51, .7);--vscode-tab-unfocusedActiveForeground: rgba(51, 51, 51, .7);--vscode-tab-unfocusedInactiveForeground: rgba(51, 51, 51, .35);--vscode-tab-border: #f3f3f3;--vscode-tab-lastPinnedBorder: rgba(97, 97, 97, .19);--vscode-tab-activeModifiedBorder: #33aaee;--vscode-tab-inactiveModifiedBorder: rgba(51, 170, 238, .5);--vscode-tab-unfocusedActiveModifiedBorder: rgba(51, 170, 238, .7);--vscode-tab-unfocusedInactiveModifiedBorder: rgba(51, 170, 238, .25);--vscode-editorPane-background: #ffffff;--vscode-editorGroupHeader-tabsBackground: #f3f3f3;--vscode-editorGroupHeader-noTabsBackground: #ffffff;--vscode-editorGroup-border: #e7e7e7;--vscode-editorGroup-dropBackground: rgba(38, 119, 203, .18);--vscode-editorGroup-dropIntoPromptForeground: #616161;--vscode-editorGroup-dropIntoPromptBackground: #f3f3f3;--vscode-sideBySideEditor-horizontalBorder: #e7e7e7;--vscode-sideBySideEditor-verticalBorder: #e7e7e7;--vscode-panel-background: #ffffff;--vscode-panel-border: rgba(128, 128, 128, .35);--vscode-panelTitle-activeForeground: #424242;--vscode-panelTitle-inactiveForeground: rgba(66, 66, 66, .75);--vscode-panelTitle-activeBorder: #424242;--vscode-panelInput-border: #dddddd;--vscode-panel-dropBorder: #424242;--vscode-panelSection-dropBackground: rgba(38, 119, 203, .18);--vscode-panelSectionHeader-background: rgba(128, 128, 128, .2);--vscode-panelSection-border: rgba(128, 128, 128, .35);--vscode-banner-background: #004386;--vscode-banner-foreground: #ffffff;--vscode-banner-iconForeground: #1a85ff;--vscode-statusBar-foreground: #ffffff;--vscode-statusBar-noFolderForeground: #ffffff;--vscode-statusBar-background: #007acc;--vscode-statusBar-noFolderBackground: #68217a;--vscode-statusBar-focusBorder: #ffffff;--vscode-statusBarItem-activeBackground: rgba(255, 255, 255, .18);--vscode-statusBarItem-focusBorder: #ffffff;--vscode-statusBarItem-hoverBackground: rgba(255, 255, 255, .12);--vscode-statusBarItem-compactHoverBackground: rgba(255, 255, 255, .2);--vscode-statusBarItem-prominentForeground: #ffffff;--vscode-statusBarItem-prominentBackground: rgba(0, 0, 0, .5);--vscode-statusBarItem-prominentHoverBackground: rgba(0, 0, 0, .3);--vscode-statusBarItem-errorBackground: #c72e0f;--vscode-statusBarItem-errorForeground: #ffffff;--vscode-statusBarItem-warningBackground: #725102;--vscode-statusBarItem-warningForeground: #ffffff;--vscode-activityBar-background: #2c2c2c;--vscode-activityBar-foreground: #ffffff;--vscode-activityBar-inactiveForeground: rgba(255, 255, 255, .4);--vscode-activityBar-activeBorder: #ffffff;--vscode-activityBar-dropBorder: #ffffff;--vscode-activityBarBadge-background: #007acc;--vscode-activityBarBadge-foreground: #ffffff;--vscode-statusBarItem-remoteBackground: #16825d;--vscode-statusBarItem-remoteForeground: #ffffff;--vscode-extensionBadge-remoteBackground: #007acc;--vscode-extensionBadge-remoteForeground: #ffffff;--vscode-sideBar-background: #f3f3f3;--vscode-sideBarTitle-foreground: #6f6f6f;--vscode-sideBar-dropBackground: rgba(38, 119, 203, .18);--vscode-sideBarSectionHeader-background: rgba(0, 0, 0, 0);--vscode-sideBarSectionHeader-border: rgba(97, 97, 97, .19);--vscode-titleBar-activeForeground: #333333;--vscode-titleBar-inactiveForeground: rgba(51, 51, 51, .6);--vscode-titleBar-activeBackground: #dddddd;--vscode-titleBar-inactiveBackground: rgba(221, 221, 221, .6);--vscode-menubar-selectionForeground: #333333;--vscode-menubar-selectionBackground: rgba(184, 184, 184, .31);--vscode-notifications-foreground: #616161;--vscode-notifications-background: #f3f3f3;--vscode-notificationLink-foreground: #006ab1;--vscode-notificationCenterHeader-background: #e7e7e7;--vscode-notifications-border: #e7e7e7;--vscode-notificationsErrorIcon-foreground: #e51400;--vscode-notificationsWarningIcon-foreground: #bf8803;--vscode-notificationsInfoIcon-foreground: #1a85ff;--vscode-commandCenter-foreground: #333333;--vscode-commandCenter-activeForeground: #333333;--vscode-commandCenter-activeBackground: rgba(184, 184, 184, .31);--vscode-commandCenter-border: rgba(128, 128, 128, .35);--vscode-editorCommentsWidget-resolvedBorder: rgba(97, 97, 97, .5);--vscode-editorCommentsWidget-unresolvedBorder: #1a85ff;--vscode-editorCommentsWidget-rangeBackground: rgba(26, 133, 255, .1);--vscode-editorCommentsWidget-rangeBorder: rgba(26, 133, 255, .4);--vscode-editorCommentsWidget-rangeActiveBackground: rgba(26, 133, 255, .1);--vscode-editorCommentsWidget-rangeActiveBorder: rgba(26, 133, 255, .4);--vscode-editorGutter-commentRangeForeground: #d5d8e9;--vscode-debugToolBar-background: #f3f3f3;--vscode-debugIcon-startForeground: #388a34;--vscode-editor-stackFrameHighlightBackground: rgba(255, 255, 102, .45);--vscode-editor-focusedStackFrameHighlightBackground: rgba(206, 231, 206, .45);--vscode-mergeEditor-change\.background: rgba(155, 185, 85, .2);--vscode-mergeEditor-change\.word\.background: rgba(156, 204, 44, .4);--vscode-mergeEditor-conflict\.unhandledUnfocused\.border: rgba(255, 166, 0, .48);--vscode-mergeEditor-conflict\.unhandledFocused\.border: #ffa600;--vscode-mergeEditor-conflict\.handledUnfocused\.border: rgba(134, 134, 134, .29);--vscode-mergeEditor-conflict\.handledFocused\.border: rgba(193, 193, 193, .8);--vscode-mergeEditor-conflict\.handled\.minimapOverViewRuler: rgba(173, 172, 168, .93);--vscode-mergeEditor-conflict\.unhandled\.minimapOverViewRuler: #fcba03;--vscode-mergeEditor-conflictingLines\.background: rgba(255, 234, 0, .28);--vscode-settings-headerForeground: #444444;--vscode-settings-modifiedItemIndicator: #66afe0;--vscode-settings-headerBorder: rgba(128, 128, 128, .35);--vscode-settings-sashBorder: rgba(128, 128, 128, .35);--vscode-settings-dropdownBackground: #ffffff;--vscode-settings-dropdownBorder: #cecece;--vscode-settings-dropdownListBorder: #c8c8c8;--vscode-settings-checkboxBackground: #ffffff;--vscode-settings-checkboxBorder: #cecece;--vscode-settings-textInputBackground: #ffffff;--vscode-settings-textInputForeground: #616161;--vscode-settings-textInputBorder: #cecece;--vscode-settings-numberInputBackground: #ffffff;--vscode-settings-numberInputForeground: #616161;--vscode-settings-numberInputBorder: #cecece;--vscode-settings-focusedRowBackground: rgba(232, 232, 232, .6);--vscode-settings-rowHoverBackground: rgba(232, 232, 232, .3);--vscode-settings-focusedRowBorder: rgba(0, 0, 0, .12);--vscode-terminal-foreground: #333333;--vscode-terminal-selectionBackground: #add6ff;--vscode-terminal-inactiveSelectionBackground: #e5ebf1;--vscode-terminalCommandDecoration-defaultBackground: rgba(0, 0, 0, .25);--vscode-terminalCommandDecoration-successBackground: #2090d3;--vscode-terminalCommandDecoration-errorBackground: #e51400;--vscode-terminalOverviewRuler-cursorForeground: rgba(160, 160, 160, .8);--vscode-terminal-border: rgba(128, 128, 128, .35);--vscode-terminal-findMatchBackground: #a8ac94;--vscode-terminal-findMatchHighlightBackground: rgba(234, 92, 0, .33);--vscode-terminalOverviewRuler-findMatchForeground: rgba(209, 134, 22, .49);--vscode-terminal-dropBackground: rgba(38, 119, 203, .18);--vscode-testing-iconFailed: #f14c4c;--vscode-testing-iconErrored: #f14c4c;--vscode-testing-iconPassed: #73c991;--vscode-testing-runAction: #73c991;--vscode-testing-iconQueued: #cca700;--vscode-testing-iconUnset: #848484;--vscode-testing-iconSkipped: #848484;--vscode-testing-peekBorder: #e51400;--vscode-testing-peekHeaderBackground: rgba(229, 20, 0, .1);--vscode-testing-message\.error\.decorationForeground: #e51400;--vscode-testing-message\.error\.lineBackground: rgba(255, 0, 0, .2);--vscode-testing-message\.info\.decorationForeground: rgba(0, 0, 0, .5);--vscode-welcomePage-tileBackground: #f3f3f3;--vscode-welcomePage-tileHoverBackground: #dbdbdb;--vscode-welcomePage-tileShadow: rgba(0, 0, 0, .16);--vscode-welcomePage-progress\.background: #ffffff;--vscode-welcomePage-progress\.foreground: #006ab1;--vscode-debugExceptionWidget-border: #a31515;--vscode-debugExceptionWidget-background: #f1dfde;--vscode-ports-iconRunningProcessForeground: #369432;--vscode-statusBar-debuggingBackground: #cc6633;--vscode-statusBar-debuggingForeground: #ffffff;--vscode-editor-inlineValuesForeground: rgba(0, 0, 0, .5);--vscode-editor-inlineValuesBackground: rgba(255, 200, 0, .2);--vscode-editorGutter-modifiedBackground: #2090d3;--vscode-editorGutter-addedBackground: #48985d;--vscode-editorGutter-deletedBackground: #e51400;--vscode-minimapGutter-modifiedBackground: #2090d3;--vscode-minimapGutter-addedBackground: #48985d;--vscode-minimapGutter-deletedBackground: #e51400;--vscode-editorOverviewRuler-modifiedForeground: rgba(32, 144, 211, .6);--vscode-editorOverviewRuler-addedForeground: rgba(72, 152, 93, .6);--vscode-editorOverviewRuler-deletedForeground: rgba(229, 20, 0, .6);--vscode-debugIcon-breakpointForeground: #e51400;--vscode-debugIcon-breakpointDisabledForeground: #848484;--vscode-debugIcon-breakpointUnverifiedForeground: #848484;--vscode-debugIcon-breakpointCurrentStackframeForeground: #be8700;--vscode-debugIcon-breakpointStackframeForeground: #89d185;--vscode-notebook-cellBorderColor: #e8e8e8;--vscode-notebook-focusedEditorBorder: #0090f1;--vscode-notebookStatusSuccessIcon-foreground: #388a34;--vscode-notebookStatusErrorIcon-foreground: #a1260d;--vscode-notebookStatusRunningIcon-foreground: #616161;--vscode-notebook-cellToolbarSeparator: rgba(128, 128, 128, .35);--vscode-notebook-selectedCellBackground: rgba(200, 221, 241, .31);--vscode-notebook-selectedCellBorder: #e8e8e8;--vscode-notebook-focusedCellBorder: #0090f1;--vscode-notebook-inactiveFocusedCellBorder: #e8e8e8;--vscode-notebook-cellStatusBarItemHoverBackground: rgba(0, 0, 0, .08);--vscode-notebook-cellInsertionIndicator: #0090f1;--vscode-notebookScrollbarSlider-background: rgba(100, 100, 100, .4);--vscode-notebookScrollbarSlider-hoverBackground: rgba(100, 100, 100, .7);--vscode-notebookScrollbarSlider-activeBackground: rgba(0, 0, 0, .6);--vscode-notebook-symbolHighlightBackground: rgba(253, 255, 0, .2);--vscode-notebook-cellEditorBackground: #f3f3f3;--vscode-notebook-editorBackground: #ffffff;--vscode-keybindingTable-headerBackground: rgba(97, 97, 97, .04);--vscode-keybindingTable-rowsBackground: rgba(97, 97, 97, .04);--vscode-scm-providerBorder: #c8c8c8;--vscode-searchEditor-textInputBorder: #cecece;--vscode-debugTokenExpression-name: #9b46b0;--vscode-debugTokenExpression-value: rgba(108, 108, 108, .8);--vscode-debugTokenExpression-string: #a31515;--vscode-debugTokenExpression-boolean: #0000ff;--vscode-debugTokenExpression-number: #098658;--vscode-debugTokenExpression-error: #e51400;--vscode-debugView-exceptionLabelForeground: #ffffff;--vscode-debugView-exceptionLabelBackground: #a31515;--vscode-debugView-stateLabelForeground: #616161;--vscode-debugView-stateLabelBackground: rgba(136, 136, 136, .27);--vscode-debugView-valueChangedHighlight: #569cd6;--vscode-debugConsole-infoForeground: #1a85ff;--vscode-debugConsole-warningForeground: #bf8803;--vscode-debugConsole-errorForeground: #a1260d;--vscode-debugConsole-sourceForeground: #616161;--vscode-debugConsoleInputIcon-foreground: #616161;--vscode-debugIcon-pauseForeground: #007acc;--vscode-debugIcon-stopForeground: #a1260d;--vscode-debugIcon-disconnectForeground: #a1260d;--vscode-debugIcon-restartForeground: #388a34;--vscode-debugIcon-stepOverForeground: #007acc;--vscode-debugIcon-stepIntoForeground: #007acc;--vscode-debugIcon-stepOutForeground: #007acc;--vscode-debugIcon-continueForeground: #007acc;--vscode-debugIcon-stepBackForeground: #007acc;--vscode-extensionButton-prominentBackground: #007acc;--vscode-extensionButton-prominentForeground: #ffffff;--vscode-extensionButton-prominentHoverBackground: #0062a3;--vscode-extensionIcon-starForeground: #df6100;--vscode-extensionIcon-verifiedForeground: #006ab1;--vscode-extensionIcon-preReleaseForeground: #1d9271;--vscode-extensionIcon-sponsorForeground: #b51e78;--vscode-terminal-ansiBlack: #000000;--vscode-terminal-ansiRed: #cd3131;--vscode-terminal-ansiGreen: #00bc00;--vscode-terminal-ansiYellow: #949800;--vscode-terminal-ansiBlue: #0451a5;--vscode-terminal-ansiMagenta: #bc05bc;--vscode-terminal-ansiCyan: #0598bc;--vscode-terminal-ansiWhite: #555555;--vscode-terminal-ansiBrightBlack: #666666;--vscode-terminal-ansiBrightRed: #cd3131;--vscode-terminal-ansiBrightGreen: #14ce14;--vscode-terminal-ansiBrightYellow: #b5ba00;--vscode-terminal-ansiBrightBlue: #0451a5;--vscode-terminal-ansiBrightMagenta: #bc05bc;--vscode-terminal-ansiBrightCyan: #0598bc;--vscode-terminal-ansiBrightWhite: #a5a5a5;--vscode-interactive-activeCodeBorder: #1a85ff;--vscode-interactive-inactiveCodeBorder: #e4e6f1;--vscode-gitDecoration-addedResourceForeground: #587c0c;--vscode-gitDecoration-modifiedResourceForeground: #895503;--vscode-gitDecoration-deletedResourceForeground: #ad0707;--vscode-gitDecoration-renamedResourceForeground: #007100;--vscode-gitDecoration-untrackedResourceForeground: #007100;--vscode-gitDecoration-ignoredResourceForeground: #8e8e90;--vscode-gitDecoration-stageModifiedResourceForeground: #895503;--vscode-gitDecoration-stageDeletedResourceForeground: #ad0707;--vscode-gitDecoration-conflictingResourceForeground: #ad0707;--vscode-gitDecoration-submoduleResourceForeground: #1258a7}:root.light-mode{color-scheme:light}:root.dark-mode{color-scheme:dark;--vscode-font-family: system-ui, "Ubuntu", "Droid Sans", sans-serif;--vscode-font-weight: normal;--vscode-font-size: 13px;--vscode-editor-font-family: "Droid Sans Mono", "monospace", monospace;--vscode-editor-font-weight: normal;--vscode-editor-font-size: 14px;--vscode-foreground: #cccccc;--vscode-disabledForeground: rgba(204, 204, 204, .5);--vscode-errorForeground: #f48771;--vscode-descriptionForeground: rgba(204, 204, 204, .7);--vscode-icon-foreground: #c5c5c5;--vscode-focusBorder: #007fd4;--vscode-textSeparator-foreground: rgba(255, 255, 255, .18);--vscode-textLink-foreground: #3794ff;--vscode-textLink-activeForeground: #3794ff;--vscode-textPreformat-foreground: #d7ba7d;--vscode-textBlockQuote-background: rgba(127, 127, 127, .1);--vscode-textBlockQuote-border: rgba(0, 122, 204, .5);--vscode-textCodeBlock-background: rgba(10, 10, 10, .4);--vscode-widget-shadow: rgba(0, 0, 0, .36);--vscode-input-background: #3c3c3c;--vscode-input-foreground: #cccccc;--vscode-inputOption-activeBorder: #007acc;--vscode-inputOption-hoverBackground: rgba(90, 93, 94, .5);--vscode-inputOption-activeBackground: rgba(0, 127, 212, .4);--vscode-inputOption-activeForeground: #ffffff;--vscode-input-placeholderForeground: #a6a6a6;--vscode-inputValidation-infoBackground: #063b49;--vscode-inputValidation-infoBorder: #007acc;--vscode-inputValidation-warningBackground: #352a05;--vscode-inputValidation-warningBorder: #b89500;--vscode-inputValidation-errorBackground: #5a1d1d;--vscode-inputValidation-errorBorder: #be1100;--vscode-dropdown-background: #3c3c3c;--vscode-dropdown-foreground: #f0f0f0;--vscode-dropdown-border: #3c3c3c;--vscode-checkbox-background: #3c3c3c;--vscode-checkbox-foreground: #f0f0f0;--vscode-checkbox-border: #3c3c3c;--vscode-button-foreground: #ffffff;--vscode-button-separator: rgba(255, 255, 255, .4);--vscode-button-background: #0e639c;--vscode-button-hoverBackground: #1177bb;--vscode-button-secondaryForeground: #ffffff;--vscode-button-secondaryBackground: #3a3d41;--vscode-button-secondaryHoverBackground: #45494e;--vscode-badge-background: #4d4d4d;--vscode-badge-foreground: #ffffff;--vscode-scrollbar-shadow: #000000;--vscode-scrollbarSlider-background: rgba(121, 121, 121, .4);--vscode-scrollbarSlider-hoverBackground: rgba(100, 100, 100, .7);--vscode-scrollbarSlider-activeBackground: rgba(191, 191, 191, .4);--vscode-progressBar-background: #0e70c0;--vscode-editorError-foreground: #f14c4c;--vscode-editorWarning-foreground: #cca700;--vscode-editorInfo-foreground: #3794ff;--vscode-editorHint-foreground: rgba(238, 238, 238, .7);--vscode-sash-hoverBorder: #007fd4;--vscode-editor-background: #1e1e1e;--vscode-editor-foreground: #d4d4d4;--vscode-editorStickyScroll-background: #1e1e1e;--vscode-editorStickyScrollHover-background: #2a2d2e;--vscode-editorWidget-background: #252526;--vscode-editorWidget-foreground: #cccccc;--vscode-editorWidget-border: #454545;--vscode-quickInput-background: #252526;--vscode-quickInput-foreground: #cccccc;--vscode-quickInputTitle-background: rgba(255, 255, 255, .1);--vscode-pickerGroup-foreground: #3794ff;--vscode-pickerGroup-border: #3f3f46;--vscode-keybindingLabel-background: rgba(128, 128, 128, .17);--vscode-keybindingLabel-foreground: #cccccc;--vscode-keybindingLabel-border: rgba(51, 51, 51, .6);--vscode-keybindingLabel-bottomBorder: rgba(68, 68, 68, .6);--vscode-editor-selectionBackground: #264f78;--vscode-editor-inactiveSelectionBackground: #3a3d41;--vscode-editor-selectionHighlightBackground: rgba(173, 214, 255, .15);--vscode-editor-findMatchBackground: #515c6a;--vscode-editor-findMatchHighlightBackground: rgba(234, 92, 0, .33);--vscode-editor-findRangeHighlightBackground: rgba(58, 61, 65, .4);--vscode-searchEditor-findMatchBackground: rgba(234, 92, 0, .22);--vscode-editor-hoverHighlightBackground: rgba(38, 79, 120, .25);--vscode-editorHoverWidget-background: #252526;--vscode-editorHoverWidget-foreground: #cccccc;--vscode-editorHoverWidget-border: #454545;--vscode-editorHoverWidget-statusBarBackground: #2c2c2d;--vscode-editorLink-activeForeground: #4e94ce;--vscode-editorInlayHint-foreground: rgba(255, 255, 255, .8);--vscode-editorInlayHint-background: rgba(77, 77, 77, .6);--vscode-editorInlayHint-typeForeground: rgba(255, 255, 255, .8);--vscode-editorInlayHint-typeBackground: rgba(77, 77, 77, .6);--vscode-editorInlayHint-parameterForeground: rgba(255, 255, 255, .8);--vscode-editorInlayHint-parameterBackground: rgba(77, 77, 77, .6);--vscode-editorLightBulb-foreground: #ffcc00;--vscode-editorLightBulbAutoFix-foreground: #75beff;--vscode-diffEditor-insertedTextBackground: rgba(156, 204, 44, .2);--vscode-diffEditor-removedTextBackground: rgba(255, 0, 0, .4);--vscode-diffEditor-insertedLineBackground: rgba(155, 185, 85, .2);--vscode-diffEditor-removedLineBackground: rgba(255, 0, 0, .2);--vscode-diffEditor-diagonalFill: rgba(204, 204, 204, .2);--vscode-list-focusOutline: #007fd4;--vscode-list-activeSelectionBackground: #04395e;--vscode-list-activeSelectionForeground: #ffffff;--vscode-list-activeSelectionIconForeground: #ffffff;--vscode-list-inactiveSelectionBackground: #37373d;--vscode-list-hoverBackground: #2a2d2e;--vscode-list-dropBackground: #383b3d;--vscode-list-highlightForeground: #2aaaff;--vscode-list-focusHighlightForeground: #2aaaff;--vscode-list-invalidItemForeground: #b89500;--vscode-list-errorForeground: #f88070;--vscode-list-warningForeground: #cca700;--vscode-listFilterWidget-background: #252526;--vscode-listFilterWidget-outline: rgba(0, 0, 0, 0);--vscode-listFilterWidget-noMatchesOutline: #be1100;--vscode-listFilterWidget-shadow: rgba(0, 0, 0, .36);--vscode-list-filterMatchBackground: rgba(234, 92, 0, .33);--vscode-tree-indentGuidesStroke: #585858;--vscode-tree-tableColumnsBorder: rgba(204, 204, 204, .13);--vscode-tree-tableOddRowsBackground: rgba(204, 204, 204, .04);--vscode-list-deemphasizedForeground: #8c8c8c;--vscode-quickInputList-focusForeground: #ffffff;--vscode-quickInputList-focusIconForeground: #ffffff;--vscode-quickInputList-focusBackground: #04395e;--vscode-menu-foreground: #cccccc;--vscode-menu-background: #303031;--vscode-menu-selectionForeground: #ffffff;--vscode-menu-selectionBackground: #04395e;--vscode-menu-separatorBackground: #606060;--vscode-toolbar-hoverBackground: rgba(90, 93, 94, .31);--vscode-toolbar-activeBackground: rgba(99, 102, 103, .31);--vscode-editor-snippetTabstopHighlightBackground: rgba(124, 124, 124, .3);--vscode-editor-snippetFinalTabstopHighlightBorder: #525252;--vscode-breadcrumb-foreground: rgba(204, 204, 204, .8);--vscode-breadcrumb-background: #1e1e1e;--vscode-breadcrumb-focusForeground: #e0e0e0;--vscode-breadcrumb-activeSelectionForeground: #e0e0e0;--vscode-breadcrumbPicker-background: #252526;--vscode-merge-currentHeaderBackground: rgba(64, 200, 174, .5);--vscode-merge-currentContentBackground: rgba(64, 200, 174, .2);--vscode-merge-incomingHeaderBackground: rgba(64, 166, 255, .5);--vscode-merge-incomingContentBackground: rgba(64, 166, 255, .2);--vscode-merge-commonHeaderBackground: rgba(96, 96, 96, .4);--vscode-merge-commonContentBackground: rgba(96, 96, 96, .16);--vscode-editorOverviewRuler-currentContentForeground: rgba(64, 200, 174, .5);--vscode-editorOverviewRuler-incomingContentForeground: rgba(64, 166, 255, .5);--vscode-editorOverviewRuler-commonContentForeground: rgba(96, 96, 96, .4);--vscode-editorOverviewRuler-findMatchForeground: rgba(209, 134, 22, .49);--vscode-editorOverviewRuler-selectionHighlightForeground: rgba(160, 160, 160, .8);--vscode-minimap-findMatchHighlight: #d18616;--vscode-minimap-selectionOccurrenceHighlight: #676767;--vscode-minimap-selectionHighlight: #264f78;--vscode-minimap-errorHighlight: rgba(255, 18, 18, .7);--vscode-minimap-warningHighlight: #cca700;--vscode-minimap-foregroundOpacity: #000000;--vscode-minimapSlider-background: rgba(121, 121, 121, .2);--vscode-minimapSlider-hoverBackground: rgba(100, 100, 100, .35);--vscode-minimapSlider-activeBackground: rgba(191, 191, 191, .2);--vscode-problemsErrorIcon-foreground: #f14c4c;--vscode-problemsWarningIcon-foreground: #cca700;--vscode-problemsInfoIcon-foreground: #3794ff;--vscode-charts-foreground: #cccccc;--vscode-charts-lines: rgba(204, 204, 204, .5);--vscode-charts-red: #f14c4c;--vscode-charts-blue: #3794ff;--vscode-charts-yellow: #cca700;--vscode-charts-orange: #d18616;--vscode-charts-green: #89d185;--vscode-charts-purple: #b180d7;--vscode-editor-lineHighlightBorder: #282828;--vscode-editor-rangeHighlightBackground: rgba(255, 255, 255, .04);--vscode-editor-symbolHighlightBackground: rgba(234, 92, 0, .33);--vscode-editorCursor-foreground: #aeafad;--vscode-editorWhitespace-foreground: rgba(227, 228, 226, .16);--vscode-editorIndentGuide-background: #404040;--vscode-editorIndentGuide-activeBackground: #707070;--vscode-editorLineNumber-foreground: #858585;--vscode-editorActiveLineNumber-foreground: #c6c6c6;--vscode-editorLineNumber-activeForeground: #c6c6c6;--vscode-editorRuler-foreground: #5a5a5a;--vscode-editorCodeLens-foreground: #999999;--vscode-editorBracketMatch-background: rgba(0, 100, 0, .1);--vscode-editorBracketMatch-border: #888888;--vscode-editorOverviewRuler-border: rgba(127, 127, 127, .3);--vscode-editorGutter-background: #1e1e1e;--vscode-editorUnnecessaryCode-opacity: rgba(0, 0, 0, .67);--vscode-editorGhostText-foreground: rgba(255, 255, 255, .34);--vscode-editorOverviewRuler-rangeHighlightForeground: rgba(0, 122, 204, .6);--vscode-editorOverviewRuler-errorForeground: rgba(255, 18, 18, .7);--vscode-editorOverviewRuler-warningForeground: #cca700;--vscode-editorOverviewRuler-infoForeground: #3794ff;--vscode-editorBracketHighlight-foreground1: #ffd700;--vscode-editorBracketHighlight-foreground2: #da70d6;--vscode-editorBracketHighlight-foreground3: #179fff;--vscode-editorBracketHighlight-foreground4: rgba(0, 0, 0, 0);--vscode-editorBracketHighlight-foreground5: rgba(0, 0, 0, 0);--vscode-editorBracketHighlight-foreground6: rgba(0, 0, 0, 0);--vscode-editorBracketHighlight-unexpectedBracket\.foreground: rgba(255, 18, 18, .8);--vscode-editorBracketPairGuide-background1: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-background2: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-background3: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-background4: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-background5: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-background6: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-activeBackground1: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-activeBackground2: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-activeBackground3: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-activeBackground4: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-activeBackground5: rgba(0, 0, 0, 0);--vscode-editorBracketPairGuide-activeBackground6: rgba(0, 0, 0, 0);--vscode-editorUnicodeHighlight-border: #bd9b03;--vscode-editorUnicodeHighlight-background: rgba(189, 155, 3, .15);--vscode-symbolIcon-arrayForeground: #cccccc;--vscode-symbolIcon-booleanForeground: #cccccc;--vscode-symbolIcon-classForeground: #ee9d28;--vscode-symbolIcon-colorForeground: #cccccc;--vscode-symbolIcon-constantForeground: #cccccc;--vscode-symbolIcon-constructorForeground: #b180d7;--vscode-symbolIcon-enumeratorForeground: #ee9d28;--vscode-symbolIcon-enumeratorMemberForeground: #75beff;--vscode-symbolIcon-eventForeground: #ee9d28;--vscode-symbolIcon-fieldForeground: #75beff;--vscode-symbolIcon-fileForeground: #cccccc;--vscode-symbolIcon-folderForeground: #cccccc;--vscode-symbolIcon-functionForeground: #b180d7;--vscode-symbolIcon-interfaceForeground: #75beff;--vscode-symbolIcon-keyForeground: #cccccc;--vscode-symbolIcon-keywordForeground: #cccccc;--vscode-symbolIcon-methodForeground: #b180d7;--vscode-symbolIcon-moduleForeground: #cccccc;--vscode-symbolIcon-namespaceForeground: #cccccc;--vscode-symbolIcon-nullForeground: #cccccc;--vscode-symbolIcon-numberForeground: #cccccc;--vscode-symbolIcon-objectForeground: #cccccc;--vscode-symbolIcon-operatorForeground: #cccccc;--vscode-symbolIcon-packageForeground: #cccccc;--vscode-symbolIcon-propertyForeground: #cccccc;--vscode-symbolIcon-referenceForeground: #cccccc;--vscode-symbolIcon-snippetForeground: #cccccc;--vscode-symbolIcon-stringForeground: #cccccc;--vscode-symbolIcon-structForeground: #cccccc;--vscode-symbolIcon-textForeground: #cccccc;--vscode-symbolIcon-typeParameterForeground: #cccccc;--vscode-symbolIcon-unitForeground: #cccccc;--vscode-symbolIcon-variableForeground: #75beff;--vscode-editorHoverWidget-highlightForeground: #2aaaff;--vscode-editorOverviewRuler-bracketMatchForeground: #a0a0a0;--vscode-editor-foldBackground: rgba(38, 79, 120, .3);--vscode-editorGutter-foldingControlForeground: #c5c5c5;--vscode-editor-linkedEditingBackground: rgba(255, 0, 0, .3);--vscode-editor-wordHighlightBackground: rgba(87, 87, 87, .72);--vscode-editor-wordHighlightStrongBackground: rgba(0, 73, 114, .72);--vscode-editorOverviewRuler-wordHighlightForeground: rgba(160, 160, 160, .8);--vscode-editorOverviewRuler-wordHighlightStrongForeground: rgba(192, 160, 192, .8);--vscode-peekViewTitle-background: rgba(55, 148, 255, .1);--vscode-peekViewTitleLabel-foreground: #ffffff;--vscode-peekViewTitleDescription-foreground: rgba(204, 204, 204, .7);--vscode-peekView-border: #3794ff;--vscode-peekViewResult-background: #252526;--vscode-peekViewResult-lineForeground: #bbbbbb;--vscode-peekViewResult-fileForeground: #ffffff;--vscode-peekViewResult-selectionBackground: rgba(51, 153, 255, .2);--vscode-peekViewResult-selectionForeground: #ffffff;--vscode-peekViewEditor-background: #001f33;--vscode-peekViewEditorGutter-background: #001f33;--vscode-peekViewResult-matchHighlightBackground: rgba(234, 92, 0, .3);--vscode-peekViewEditor-matchHighlightBackground: rgba(255, 143, 0, .6);--vscode-editorMarkerNavigationError-background: #f14c4c;--vscode-editorMarkerNavigationError-headerBackground: rgba(241, 76, 76, .1);--vscode-editorMarkerNavigationWarning-background: #cca700;--vscode-editorMarkerNavigationWarning-headerBackground: rgba(204, 167, 0, .1);--vscode-editorMarkerNavigationInfo-background: #3794ff;--vscode-editorMarkerNavigationInfo-headerBackground: rgba(55, 148, 255, .1);--vscode-editorMarkerNavigation-background: #1e1e1e;--vscode-editorSuggestWidget-background: #252526;--vscode-editorSuggestWidget-border: #454545;--vscode-editorSuggestWidget-foreground: #d4d4d4;--vscode-editorSuggestWidget-selectedForeground: #ffffff;--vscode-editorSuggestWidget-selectedIconForeground: #ffffff;--vscode-editorSuggestWidget-selectedBackground: #04395e;--vscode-editorSuggestWidget-highlightForeground: #2aaaff;--vscode-editorSuggestWidget-focusHighlightForeground: #2aaaff;--vscode-editorSuggestWidgetStatus-foreground: rgba(212, 212, 212, .5);--vscode-tab-activeBackground: #1e1e1e;--vscode-tab-unfocusedActiveBackground: #1e1e1e;--vscode-tab-inactiveBackground: #2d2d2d;--vscode-tab-unfocusedInactiveBackground: #2d2d2d;--vscode-tab-activeForeground: #ffffff;--vscode-tab-inactiveForeground: rgba(255, 255, 255, .5);--vscode-tab-unfocusedActiveForeground: rgba(255, 255, 255, .5);--vscode-tab-unfocusedInactiveForeground: rgba(255, 255, 255, .25);--vscode-tab-border: #252526;--vscode-tab-lastPinnedBorder: rgba(204, 204, 204, .2);--vscode-tab-activeModifiedBorder: #3399cc;--vscode-tab-inactiveModifiedBorder: rgba(51, 153, 204, .5);--vscode-tab-unfocusedActiveModifiedBorder: rgba(51, 153, 204, .5);--vscode-tab-unfocusedInactiveModifiedBorder: rgba(51, 153, 204, .25);--vscode-editorPane-background: #1e1e1e;--vscode-editorGroupHeader-tabsBackground: #252526;--vscode-editorGroupHeader-noTabsBackground: #1e1e1e;--vscode-editorGroup-border: #444444;--vscode-editorGroup-dropBackground: rgba(83, 89, 93, .5);--vscode-editorGroup-dropIntoPromptForeground: #cccccc;--vscode-editorGroup-dropIntoPromptBackground: #252526;--vscode-sideBySideEditor-horizontalBorder: #444444;--vscode-sideBySideEditor-verticalBorder: #444444;--vscode-panel-background: #1e1e1e;--vscode-panel-border: rgba(128, 128, 128, .35);--vscode-panelTitle-activeForeground: #e7e7e7;--vscode-panelTitle-inactiveForeground: rgba(231, 231, 231, .6);--vscode-panelTitle-activeBorder: #e7e7e7;--vscode-panel-dropBorder: #e7e7e7;--vscode-panelSection-dropBackground: rgba(83, 89, 93, .5);--vscode-panelSectionHeader-background: rgba(128, 128, 128, .2);--vscode-panelSection-border: rgba(128, 128, 128, .35);--vscode-banner-background: #04395e;--vscode-banner-foreground: #ffffff;--vscode-banner-iconForeground: #3794ff;--vscode-statusBar-foreground: #ffffff;--vscode-statusBar-noFolderForeground: #ffffff;--vscode-statusBar-background: #007acc;--vscode-statusBar-noFolderBackground: #68217a;--vscode-statusBar-focusBorder: #ffffff;--vscode-statusBarItem-activeBackground: rgba(255, 255, 255, .18);--vscode-statusBarItem-focusBorder: #ffffff;--vscode-statusBarItem-hoverBackground: rgba(255, 255, 255, .12);--vscode-statusBarItem-compactHoverBackground: rgba(255, 255, 255, .2);--vscode-statusBarItem-prominentForeground: #ffffff;--vscode-statusBarItem-prominentBackground: rgba(0, 0, 0, .5);--vscode-statusBarItem-prominentHoverBackground: rgba(0, 0, 0, .3);--vscode-statusBarItem-errorBackground: #c72e0f;--vscode-statusBarItem-errorForeground: #ffffff;--vscode-statusBarItem-warningBackground: #7a6400;--vscode-statusBarItem-warningForeground: #ffffff;--vscode-activityBar-background: #333333;--vscode-activityBar-foreground: #ffffff;--vscode-activityBar-inactiveForeground: rgba(255, 255, 255, .4);--vscode-activityBar-activeBorder: #ffffff;--vscode-activityBar-dropBorder: #ffffff;--vscode-activityBarBadge-background: #007acc;--vscode-activityBarBadge-foreground: #ffffff;--vscode-statusBarItem-remoteBackground: #16825d;--vscode-statusBarItem-remoteForeground: #ffffff;--vscode-extensionBadge-remoteBackground: #007acc;--vscode-extensionBadge-remoteForeground: #ffffff;--vscode-sideBar-background: #252526;--vscode-sideBarTitle-foreground: #bbbbbb;--vscode-sideBar-dropBackground: rgba(83, 89, 93, .5);--vscode-sideBarSectionHeader-background: rgba(0, 0, 0, 0);--vscode-sideBarSectionHeader-border: rgba(204, 204, 204, .2);--vscode-titleBar-activeForeground: #cccccc;--vscode-titleBar-inactiveForeground: rgba(204, 204, 204, .6);--vscode-titleBar-activeBackground: #3c3c3c;--vscode-titleBar-inactiveBackground: rgba(60, 60, 60, .6);--vscode-menubar-selectionForeground: #cccccc;--vscode-menubar-selectionBackground: rgba(90, 93, 94, .31);--vscode-notifications-foreground: #cccccc;--vscode-notifications-background: #252526;--vscode-notificationLink-foreground: #3794ff;--vscode-notificationCenterHeader-background: #303031;--vscode-notifications-border: #303031;--vscode-notificationsErrorIcon-foreground: #f14c4c;--vscode-notificationsWarningIcon-foreground: #cca700;--vscode-notificationsInfoIcon-foreground: #3794ff;--vscode-commandCenter-foreground: #cccccc;--vscode-commandCenter-activeForeground: #cccccc;--vscode-commandCenter-activeBackground: rgba(90, 93, 94, .31);--vscode-commandCenter-border: rgba(128, 128, 128, .35);--vscode-editorCommentsWidget-resolvedBorder: rgba(204, 204, 204, .5);--vscode-editorCommentsWidget-unresolvedBorder: #3794ff;--vscode-editorCommentsWidget-rangeBackground: rgba(55, 148, 255, .1);--vscode-editorCommentsWidget-rangeBorder: rgba(55, 148, 255, .4);--vscode-editorCommentsWidget-rangeActiveBackground: rgba(55, 148, 255, .1);--vscode-editorCommentsWidget-rangeActiveBorder: rgba(55, 148, 255, .4);--vscode-editorGutter-commentRangeForeground: #37373d;--vscode-debugToolBar-background: #333333;--vscode-debugIcon-startForeground: #89d185;--vscode-editor-stackFrameHighlightBackground: rgba(255, 255, 0, .2);--vscode-editor-focusedStackFrameHighlightBackground: rgba(122, 189, 122, .3);--vscode-mergeEditor-change\.background: rgba(155, 185, 85, .2);--vscode-mergeEditor-change\.word\.background: rgba(156, 204, 44, .2);--vscode-mergeEditor-conflict\.unhandledUnfocused\.border: rgba(255, 166, 0, .48);--vscode-mergeEditor-conflict\.unhandledFocused\.border: #ffa600;--vscode-mergeEditor-conflict\.handledUnfocused\.border: rgba(134, 134, 134, .29);--vscode-mergeEditor-conflict\.handledFocused\.border: rgba(193, 193, 193, .8);--vscode-mergeEditor-conflict\.handled\.minimapOverViewRuler: rgba(173, 172, 168, .93);--vscode-mergeEditor-conflict\.unhandled\.minimapOverViewRuler: #fcba03;--vscode-mergeEditor-conflictingLines\.background: rgba(255, 234, 0, .28);--vscode-settings-headerForeground: #e7e7e7;--vscode-settings-modifiedItemIndicator: #0c7d9d;--vscode-settings-headerBorder: rgba(128, 128, 128, .35);--vscode-settings-sashBorder: rgba(128, 128, 128, .35);--vscode-settings-dropdownBackground: #3c3c3c;--vscode-settings-dropdownForeground: #f0f0f0;--vscode-settings-dropdownBorder: #3c3c3c;--vscode-settings-dropdownListBorder: #454545;--vscode-settings-checkboxBackground: #3c3c3c;--vscode-settings-checkboxForeground: #f0f0f0;--vscode-settings-checkboxBorder: #3c3c3c;--vscode-settings-textInputBackground: #3c3c3c;--vscode-settings-textInputForeground: #cccccc;--vscode-settings-numberInputBackground: #3c3c3c;--vscode-settings-numberInputForeground: #cccccc;--vscode-settings-focusedRowBackground: rgba(42, 45, 46, .6);--vscode-settings-rowHoverBackground: rgba(42, 45, 46, .3);--vscode-settings-focusedRowBorder: rgba(255, 255, 255, .12);--vscode-terminal-foreground: #cccccc;--vscode-terminal-selectionBackground: #264f78;--vscode-terminal-inactiveSelectionBackground: #3a3d41;--vscode-terminalCommandDecoration-defaultBackground: rgba(255, 255, 255, .25);--vscode-terminalCommandDecoration-successBackground: #1b81a8;--vscode-terminalCommandDecoration-errorBackground: #f14c4c;--vscode-terminalOverviewRuler-cursorForeground: rgba(160, 160, 160, .8);--vscode-terminal-border: rgba(128, 128, 128, .35);--vscode-terminal-findMatchBackground: #515c6a;--vscode-terminal-findMatchHighlightBackground: rgba(234, 92, 0, .33);--vscode-terminalOverviewRuler-findMatchForeground: rgba(209, 134, 22, .49);--vscode-terminal-dropBackground: rgba(83, 89, 93, .5);--vscode-testing-iconFailed: #f14c4c;--vscode-testing-iconErrored: #f14c4c;--vscode-testing-iconPassed: #73c991;--vscode-testing-runAction: #73c991;--vscode-testing-iconQueued: #cca700;--vscode-testing-iconUnset: #848484;--vscode-testing-iconSkipped: #848484;--vscode-testing-peekBorder: #f14c4c;--vscode-testing-peekHeaderBackground: rgba(241, 76, 76, .1);--vscode-testing-message\.error\.decorationForeground: #f14c4c;--vscode-testing-message\.error\.lineBackground: rgba(255, 0, 0, .2);--vscode-testing-message\.info\.decorationForeground: rgba(212, 212, 212, .5);--vscode-welcomePage-tileBackground: #252526;--vscode-welcomePage-tileHoverBackground: #2c2c2d;--vscode-welcomePage-tileShadow: rgba(0, 0, 0, .36);--vscode-welcomePage-progress\.background: #3c3c3c;--vscode-welcomePage-progress\.foreground: #3794ff;--vscode-debugExceptionWidget-border: #a31515;--vscode-debugExceptionWidget-background: #420b0d;--vscode-ports-iconRunningProcessForeground: #369432;--vscode-statusBar-debuggingBackground: #cc6633;--vscode-statusBar-debuggingForeground: #ffffff;--vscode-editor-inlineValuesForeground: rgba(255, 255, 255, .5);--vscode-editor-inlineValuesBackground: rgba(255, 200, 0, .2);--vscode-editorGutter-modifiedBackground: #1b81a8;--vscode-editorGutter-addedBackground: #487e02;--vscode-editorGutter-deletedBackground: #f14c4c;--vscode-minimapGutter-modifiedBackground: #1b81a8;--vscode-minimapGutter-addedBackground: #487e02;--vscode-minimapGutter-deletedBackground: #f14c4c;--vscode-editorOverviewRuler-modifiedForeground: rgba(27, 129, 168, .6);--vscode-editorOverviewRuler-addedForeground: rgba(72, 126, 2, .6);--vscode-editorOverviewRuler-deletedForeground: rgba(241, 76, 76, .6);--vscode-debugIcon-breakpointForeground: #e51400;--vscode-debugIcon-breakpointDisabledForeground: #848484;--vscode-debugIcon-breakpointUnverifiedForeground: #848484;--vscode-debugIcon-breakpointCurrentStackframeForeground: #ffcc00;--vscode-debugIcon-breakpointStackframeForeground: #89d185;--vscode-notebook-cellBorderColor: #37373d;--vscode-notebook-focusedEditorBorder: #007fd4;--vscode-notebookStatusSuccessIcon-foreground: #89d185;--vscode-notebookStatusErrorIcon-foreground: #f48771;--vscode-notebookStatusRunningIcon-foreground: #cccccc;--vscode-notebook-cellToolbarSeparator: rgba(128, 128, 128, .35);--vscode-notebook-selectedCellBackground: #37373d;--vscode-notebook-selectedCellBorder: #37373d;--vscode-notebook-focusedCellBorder: #007fd4;--vscode-notebook-inactiveFocusedCellBorder: #37373d;--vscode-notebook-cellStatusBarItemHoverBackground: rgba(255, 255, 255, .15);--vscode-notebook-cellInsertionIndicator: #007fd4;--vscode-notebookScrollbarSlider-background: rgba(121, 121, 121, .4);--vscode-notebookScrollbarSlider-hoverBackground: rgba(100, 100, 100, .7);--vscode-notebookScrollbarSlider-activeBackground: rgba(191, 191, 191, .4);--vscode-notebook-symbolHighlightBackground: rgba(255, 255, 255, .04);--vscode-notebook-cellEditorBackground: #252526;--vscode-notebook-editorBackground: #1e1e1e;--vscode-keybindingTable-headerBackground: rgba(204, 204, 204, .04);--vscode-keybindingTable-rowsBackground: rgba(204, 204, 204, .04);--vscode-scm-providerBorder: #454545;--vscode-debugTokenExpression-name: #c586c0;--vscode-debugTokenExpression-value: rgba(204, 204, 204, .6);--vscode-debugTokenExpression-string: #ce9178;--vscode-debugTokenExpression-boolean: #4e94ce;--vscode-debugTokenExpression-number: #b5cea8;--vscode-debugTokenExpression-error: #f48771;--vscode-debugView-exceptionLabelForeground: #cccccc;--vscode-debugView-exceptionLabelBackground: #6c2022;--vscode-debugView-stateLabelForeground: #cccccc;--vscode-debugView-stateLabelBackground: rgba(136, 136, 136, .27);--vscode-debugView-valueChangedHighlight: #569cd6;--vscode-debugConsole-infoForeground: #3794ff;--vscode-debugConsole-warningForeground: #cca700;--vscode-debugConsole-errorForeground: #f48771;--vscode-debugConsole-sourceForeground: #cccccc;--vscode-debugConsoleInputIcon-foreground: #cccccc;--vscode-debugIcon-pauseForeground: #75beff;--vscode-debugIcon-stopForeground: #f48771;--vscode-debugIcon-disconnectForeground: #f48771;--vscode-debugIcon-restartForeground: #89d185;--vscode-debugIcon-stepOverForeground: #75beff;--vscode-debugIcon-stepIntoForeground: #75beff;--vscode-debugIcon-stepOutForeground: #75beff;--vscode-debugIcon-continueForeground: #75beff;--vscode-debugIcon-stepBackForeground: #75beff;--vscode-extensionButton-prominentBackground: #0e639c;--vscode-extensionButton-prominentForeground: #ffffff;--vscode-extensionButton-prominentHoverBackground: #1177bb;--vscode-extensionIcon-starForeground: #ff8e00;--vscode-extensionIcon-verifiedForeground: #3794ff;--vscode-extensionIcon-preReleaseForeground: #1d9271;--vscode-extensionIcon-sponsorForeground: #d758b3;--vscode-terminal-ansiBlack: #000000;--vscode-terminal-ansiRed: #cd3131;--vscode-terminal-ansiGreen: #0dbc79;--vscode-terminal-ansiYellow: #e5e510;--vscode-terminal-ansiBlue: #2472c8;--vscode-terminal-ansiMagenta: #bc3fbc;--vscode-terminal-ansiCyan: #11a8cd;--vscode-terminal-ansiWhite: #e5e5e5;--vscode-terminal-ansiBrightBlack: #666666;--vscode-terminal-ansiBrightRed: #f14c4c;--vscode-terminal-ansiBrightGreen: #23d18b;--vscode-terminal-ansiBrightYellow: #f5f543;--vscode-terminal-ansiBrightBlue: #3b8eea;--vscode-terminal-ansiBrightMagenta: #d670d6;--vscode-terminal-ansiBrightCyan: #29b8db;--vscode-terminal-ansiBrightWhite: #e5e5e5;--vscode-interactive-activeCodeBorder: #3794ff;--vscode-interactive-inactiveCodeBorder: #37373d;--vscode-gitDecoration-addedResourceForeground: #81b88b;--vscode-gitDecoration-modifiedResourceForeground: #e2c08d;--vscode-gitDecoration-deletedResourceForeground: #c74e39;--vscode-gitDecoration-renamedResourceForeground: #73c991;--vscode-gitDecoration-untrackedResourceForeground: #73c991;--vscode-gitDecoration-ignoredResourceForeground: #8c8c8c;--vscode-gitDecoration-stageModifiedResourceForeground: #e2c08d;--vscode-gitDecoration-stageDeletedResourceForeground: #c74e39;--vscode-gitDecoration-conflictingResourceForeground: #e4676b;--vscode-gitDecoration-submoduleResourceForeground: #8db9e2}.test-error-container{position:relative;white-space:pre;flex:none;padding:0;background-color:var(--color-canvas-subtle);border-radius:6px;line-height:initial;margin-bottom:6px}.test-error-view{overflow:auto;padding:16px}.test-error-text{font-family:monospace}.test-result{flex:auto;display:flex;flex-direction:column;margin-bottom:24px}.test-result>div{flex:none}.test-result video,.test-result img.screenshot{flex:none;box-shadow:var(--box-shadow-thick);margin:24px auto;min-width:200px;max-width:80%}.test-result-path{padding:0 0 0 5px;color:var(--color-fg-muted)}.test-result-counter{border-radius:12px;color:var(--color-canvas-default);padding:2px 8px;line-height:normal}.step-title-container{display:flex;align-items:center;flex:auto;min-width:0}.step-title-container>*{flex-shrink:0}.step-title-text{flex-shrink:1;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;min-width:0}.step-spacer{flex:auto}.step-attachment-link{display:flex;flex:none;border-radius:4px;padding:4px}.step-attachment-link:hover{background-color:var(--color-neutral-muted)}.step-attachment-link .octicon{margin-right:0}.step-duration{flex:none;white-space:nowrap;margin-left:4px}:root.light-mode .test-result-counter{background:var(--color-scale-gray-5)}:root.dark-mode .test-result-counter{background:var(--color-scale-gray-3)}@media only screen and (max-width: 600px){.test-result{padding:0!important}}.test-file-test{line-height:32px;align-items:center;padding:2px 8px;overflow:hidden;text-overflow:ellipsis}.test-file-test:hover{background-color:var(--color-canvas-subtle)}.test-file-title{font-weight:600;font-size:16px}.test-file-details-row{padding:0 0 6px 8px;margin:0 0 0 15px;line-height:16px;font-weight:400;color:var(--color-fg-muted);display:flex;align-items:center}.test-file-details-row-items{display:flex;height:16px}.test-file-details-row-items>.link-badge{margin-top:-2px}.test-file-details-row-items>.trace-link{margin-top:-4px}.test-file-path{text-overflow:ellipsis;overflow:hidden;color:var(--color-fg-muted)}.test-file-path-link{margin-right:10px}.test-file-test-outcome-skipped{color:var(--color-fg-muted)}.test-file-test-status-icon{flex:none}.test-file-header-info{display:flex;align-items:center;gap:4px 8px;color:var(--color-fg-muted)}.test-file-header-br{flex-basis:100%;height:0}.test-file-no-files{margin-top:12px;color:var(--color-fg-muted);background-color:unset;font-weight:unset;border:1px solid var(--color-border-default);border-bottom-left-radius:6px;border-bottom-right-radius:6px}#root{color:var(--color-fg-default);font-size:14px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";-webkit-font-smoothing:antialiased}.metadata-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--color-fg-default)}.metadata-toggle-second-line{margin-top:8px;margin-left:8px}.metadata-view{border:1px solid var(--color-border-default);border-radius:6px;margin-top:12px}.metadata-view .metadata-section{margin:8px 10px 8px 32px}.metadata-view span:not(.copy-button-container),.metadata-view a{display:inline-block;line-height:24px}.metadata-properties{display:flex;flex-direction:column;align-items:normal;gap:8px}.metadata-properties>div{height:24px}.metadata-separator{height:1px;border-bottom:1px solid var(--color-border-default)}.metadata-view a{color:var(--color-fg-default)}.copyable-property{white-space:pre}.copyable-property>span{display:flex;align-items:center}.gantt-bar{transition:opacity .2s;cursor:pointer;outline:none}.gantt-bar:hover,.gantt-bar:focus{opacity:.8;stroke:var(--color-fg-default);stroke-width:2} -</style> +`.trimStart(); + async function zv({ + testInfo: l, + metadata: u, + errorContext: c, + errors: f, + buildCodeFrame: r, + stdout: o, + stderr: h, + }) { + var S; + const v = new Set( + f + .filter( + (O) => + O.message && + !O.message.includes(` +`) + ) + .map((O) => O.message) + ); + for (const O of f) + for (const X of v.keys()) (S = O.message) != null && S.includes(X) && v.delete(X); + const y = f.filter( + (O) => + !( + !O.message || + (!O.message.includes(` +`) && + !v.has(O.message)) + ) + ); + if (!y.length) return; + const A = [Qv, '# Test info', '', l]; + (o && A.push('', '# Stdout', '', '```', Jf(o), '```'), + h && A.push('', '# Stderr', '', '```', Jf(h), '```'), + A.push('', '# Error details')); + for (const O of y) A.push('', '```', Jf(O.message || ''), '```'); + c && A.push(c); + const E = await r(y[y.length - 1]); + return ( + E && A.push('', '# Test source', '', '```ts', E, '```'), + u != null && u.gitDiff && A.push('', '# Local changes', '', '```diff', u.gitDiff, '```'), + A.join(` +`) + ); + } + const Yv = new RegExp( + '([\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)|(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~])))', + 'g' + ); + function Jf(l) { + return l.replace(Yv, ''); + } + function Lv(l, u) { + var f; + const c = new Map(); + for (const r of l) { + const o = r.name.match(/^(.*)-(expected|actual|diff|previous)(\.[^.]+)?$/); + if (!o) continue; + const [, h, v, y = ''] = o, + A = h + y; + let E = c.get(A); + (E || ((E = { name: A, anchors: [`attachment-${h}`] }), c.set(A, E)), + E.anchors.push(`attachment-${u.attachments.indexOf(r)}`), + v === 'actual' && (E.actual = { attachment: r }), + v === 'expected' && (E.expected = { attachment: r, title: 'Expected' }), + v === 'previous' && (E.expected = { attachment: r, title: 'Previous' }), + v === 'diff' && (E.diff = { attachment: r })); + } + for (const [r, o] of c) + !o.actual || !o.expected + ? c.delete(r) + : (l.delete(o.actual.attachment), + l.delete(o.expected.attachment), + l.delete((f = o.diff) == null ? void 0 : f.attachment)); + return [...c.values()]; + } + const Gv = ({ test: l, result: u, testRunMetadata: c, options: f }) => { + const { + screenshots: r, + videos: o, + traces: h, + otherAttachments: v, + diffs: y, + errors: A, + otherAttachmentAnchors: E, + screenshotAnchors: S, + errorContext: O, + } = ct.useMemo(() => { + const B = u.attachments.filter((N) => !N.name.startsWith('_')), + b = new Set(B.filter((N) => N.contentType.startsWith('image/'))), + p = [...b].map((N) => `attachment-${B.indexOf(N)}`), + x = B.filter((N) => N.contentType.startsWith('video/')), + R = B.filter((N) => N.name === 'trace'), + U = B.find((N) => N.name === 'error-context'), + Z = new Set(B); + [...b, ...x, ...R].forEach((N) => Z.delete(N)); + const F = [...Z].map((N) => `attachment-${B.indexOf(N)}`), + j = Lv(b, u), + D = u.errors.map((N) => N.message); + return { + screenshots: [...b], + videos: x, + traces: R, + otherAttachments: Z, + diffs: j, + errors: D, + otherAttachmentAnchors: F, + screenshotAnchors: p, + errorContext: U, + }; + }, [u]), + X = P5( + async () => { + if (f != null && f.noCopyPrompt) return; + const B = u.attachments.find((R) => R.name === 'stdout'), + b = u.attachments.find((R) => R.name === 'stderr'), + p = B != null && B.body && B.contentType === 'text/plain' ? B.body : void 0, + x = b != null && b.body && b.contentType === 'text/plain' ? b.body : void 0; + return await zv({ + testInfo: [ + `- Name: ${l.path.join(' >> ')} >> ${l.title}`, + `- Location: ${l.location.file}:${l.location.line}:${l.location.column}`, + ].join(` +`), + metadata: c, + errorContext: + O != null && O.path + ? await fetch(O.path).then((R) => R.text()) + : O == null + ? void 0 + : O.body, + errors: u.errors, + buildCodeFrame: async (R) => R.codeframe, + stdout: p, + stderr: x, + }); + }, + [l, O, c, u], + void 0 + ); + return m.jsxs('div', { + className: 'test-result', + children: [ + !!A.length && + m.jsxs(ke, { + header: 'Errors', + children: [ + X && + m.jsx('div', { + style: { position: 'absolute', right: '16px', padding: '10px', zIndex: 1 }, + children: m.jsx(Nv, { prompt: X }), + }), + A.map((B, b) => { + const p = Xv(B, y); + return m.jsxs(m.Fragment, { + children: [ + m.jsx(wr, { code: B }, 'test-result-error-message-' + b), + p && m.jsx(Bv, { diff: p }), + ], + }); + }), + ], + }), + !!u.steps.length && + m.jsx(ke, { + header: 'Test Steps', + children: u.steps.map((B, b) => + m.jsx(cm, { step: B, result: u, test: l, depth: 0 }, `step-${b}`) + ), + }), + y.map((B, b) => + m.jsx( + Si, + { + id: B.anchors, + children: m.jsx(ke, { + dataTestId: 'test-results-image-diff', + header: `Image mismatch: ${B.name}`, + revealOnAnchorId: B.anchors, + children: m.jsx(um, { diff: B }), + }), + }, + `diff-${b}` + ) + ), + !!r.length && + m.jsx(ke, { + header: 'Screenshots', + revealOnAnchorId: S, + children: r.map((B, b) => + m.jsxs( + Si, + { + id: `attachment-${u.attachments.indexOf(B)}`, + children: [ + m.jsx('a', { + href: Ve(B.path), + children: m.jsx('img', { className: 'screenshot', src: Ve(B.path) }), + }), + m.jsx(nc, { attachment: B, result: u }), + ], + }, + `screenshot-${b}` + ) + ), + }), + !!h.length && + m.jsx(Si, { + id: 'attachment-trace', + children: m.jsx(ke, { + header: 'Traces', + revealOnAnchorId: 'attachment-trace', + children: m.jsxs('div', { + children: [ + m.jsx('a', { + href: Ve(nm(h)), + children: m.jsx('img', { + className: 'screenshot', + src: Cv, + style: { width: 192, height: 117, marginLeft: 20 }, + }), + }), + h.map((B, b) => + m.jsx( + nc, + { + attachment: B, + result: u, + linkName: h.length === 1 ? 'trace' : `trace-${b + 1}`, + }, + `trace-${b}` + ) + ), + ], + }), + }), + }), + !!o.length && + m.jsx(Si, { + id: 'attachment-video', + children: m.jsx(ke, { + header: 'Videos', + revealOnAnchorId: 'attachment-video', + children: o.map((B) => + m.jsxs( + 'div', + { + children: [ + m.jsx('video', { + controls: !0, + children: m.jsx('source', { src: Ve(B.path), type: B.contentType }), + }), + m.jsx(nc, { attachment: B, result: u }), + ], + }, + B.path + ) + ), + }), + }), + !!v.size && + m.jsx(ke, { + header: 'Attachments', + revealOnAnchorId: E, + dataTestId: 'attachments', + children: [...v].map((B, b) => + m.jsx( + Si, + { + id: `attachment-${u.attachments.indexOf(B)}`, + children: m.jsx(nc, { + attachment: B, + result: u, + openInNewTab: B.contentType.startsWith('text/html'), + }), + }, + `attachment-link-${b}` + ) + ), + }), + ], + }); + }; + function Xv(l, u) { + const c = l.split(` +`)[0]; + if (!(!c.includes('toHaveScreenshot') && !c.includes('toMatchSnapshot'))) + return u.find((f) => l.includes(f.name)); + } + const cm = ({ test: l, step: u, result: c, depth: f }) => { + const r = se(); + return m.jsx(Tv, { + title: m.jsxs('div', { + 'aria-label': u.title, + className: 'step-title-container', + children: [ + hc(u.error || u.duration === -1 ? 'failed' : u.skipped ? 'skipped' : 'passed'), + m.jsxs('span', { + className: 'step-title-text', + children: [ + m.jsx('span', { children: u.title }), + u.count > 1 && + m.jsxs(m.Fragment, { + children: [ + ' ✕ ', + m.jsx('span', { className: 'test-result-counter', children: u.count }), + ], + }), + u.location && + m.jsxs('span', { + className: 'test-result-path', + children: ['— ', u.location.file, ':', u.location.line], + }), + ], + }), + m.jsx('span', { className: 'step-spacer' }), + u.attachments.length > 0 && + m.jsx('a', { + className: 'step-attachment-link', + title: 'reveal attachment', + href: Ve( + Cn({ test: l, result: c, anchor: `attachment-${u.attachments[0]}` }, r) + ), + onClick: (o) => { + o.stopPropagation(); + }, + children: Ih(), + }), + m.jsx('span', { className: 'step-duration', children: Ol(u.duration) }), + ], + }), + loadChildren: + u.steps.length || u.snippet + ? () => { + const o = u.snippet + ? [m.jsx(wr, { testId: 'test-snippet', code: u.snippet }, 'line')] + : [], + h = u.steps.map((v, y) => + m.jsx(cm, { step: v, depth: f + 1, result: c, test: l }, y) + ); + return o.concat(h); + } + : void 0, + depth: f, + }); + }, + Vv = ({ + projectNames: l, + test: u, + testRunMetadata: c, + run: f, + next: r, + prev: o, + options: h, + }) => { + const [v, y] = ct.useState(f), + A = se(), + E = u.annotations.filter((S) => !S.type.startsWith('_')) ?? []; + return m.jsxs(m.Fragment, { + children: [ + m.jsx(Or, { + title: u.title, + leftSuperHeader: m.jsx('div', { + className: 'test-case-path', + children: u.path.join(' › '), + }), + rightSuperHeader: m.jsxs(m.Fragment, { + children: [ + m.jsx('div', { + className: Ze(!o && 'hidden'), + children: m.jsx(Tn, { href: Cn({ test: o }, A), children: '« previous' }), + }), + m.jsx('div', { style: { width: 10 } }), + m.jsx('div', { + className: Ze(!r && 'hidden'), + children: m.jsx(Tn, { href: Cn({ test: r }, A), children: 'next »' }), + }), + ], + }), + }), + m.jsxs('div', { + className: 'hbox', + style: { lineHeight: '24px' }, + children: [ + m.jsx('div', { + className: 'test-case-location', + children: m.jsxs(Sr, { + value: `${u.location.file}:${u.location.line}`, + children: [u.location.file, ':', u.location.line], + }), + }), + m.jsx('div', { style: { flex: 'auto' } }), + m.jsx(tm, { test: u, trailingSeparator: !0 }), + m.jsx('div', { className: 'test-case-duration', children: Ol(u.duration) }), + ], + }), + m.jsx($h, { + style: { marginLeft: '6px' }, + projectNames: l, + activeProjectName: u.projectName, + otherLabels: u.tags, + }), + u.results.length === 0 && + E.length !== 0 && + m.jsx(ke, { + header: 'Annotations', + dataTestId: 'test-case-annotations', + children: E.map((S, O) => m.jsx(z2, { annotation: S }, O)), + }), + m.jsx(Sv, { + tabs: + u.results.map((S, O) => ({ + id: String(O), + title: m.jsxs('div', { + style: { display: 'flex', alignItems: 'center' }, + children: [ + hc(S.status), + ' ', + Zv(O), + u.results.length > 1 && + m.jsx('span', { + className: 'test-case-run-duration', + children: Ol(S.duration), + }), + ], + }), + render: () => { + const X = S.annotations.filter((B) => !B.type.startsWith('_')); + return m.jsxs(m.Fragment, { + children: [ + !!X.length && + m.jsx(ke, { + header: 'Annotations', + dataTestId: 'test-case-annotations', + children: X.map((B, b) => m.jsx(z2, { annotation: B }, b)), + }), + m.jsx(Gv, { test: u, result: S, testRunMetadata: c, options: h }), + ], + }); + }, + })) || [], + selectedTab: String(v), + setSelectedTab: (S) => y(+S), + }), + ], + }); + }; + function z2({ annotation: { type: l, description: u } }) { + return m.jsxs('div', { + className: 'test-case-annotation', + children: [ + m.jsx('span', { style: { fontWeight: 'bold' }, children: l }), + u && m.jsxs(Sr, { value: u, children: [': ', Di(u)] }), + ], + }); + } + function Zv(l) { + return l ? `Retry #${l}` : 'Run'; + } + const sm = ({ + file: l, + projectNames: u, + isFileExpanded: c, + setFileExpanded: f, + footer: r, + }) => { + const o = se(); + return m.jsx(im, { + expanded: c ? c(l.fileId) : void 0, + noInsets: !0, + setExpanded: f ? (h) => f(l.fileId, h) : void 0, + header: m.jsx('span', { className: 'chip-header-allow-selection', children: l.fileName }), + footer: r, + children: l.tests.map((h) => + m.jsxs( + 'div', + { + className: Ze('test-file-test', 'test-file-test-outcome-' + h.outcome), + children: [ + m.jsxs('div', { + className: 'hbox', + style: { alignItems: 'flex-start' }, + children: [ + m.jsxs('div', { + className: 'hbox', + children: [ + m.jsx('span', { + className: 'test-file-test-status-icon', + children: hc(h.outcome), + }), + m.jsxs('span', { + children: [ + m.jsx(Tn, { + href: Cn({ test: h }, o), + title: [...h.path, h.title].join(' › '), + children: m.jsx('span', { + className: 'test-file-title', + children: [...h.path, h.title].join(' › '), + }), + }), + m.jsx($h, { + style: { marginLeft: '6px' }, + projectNames: u, + activeProjectName: h.projectName, + otherLabels: h.tags, + }), + ], + }), + ], + }), + m.jsx('span', { + 'data-testid': 'test-duration', + style: { minWidth: '50px', textAlign: 'right' }, + children: Ol(h.duration), + }), + ], + }), + m.jsx('div', { + className: 'test-file-details-row', + children: m.jsxs('div', { + className: 'test-file-details-row-items', + children: [ + m.jsx(Tn, { + href: Cn({ test: h }, o), + title: [...h.path, h.title].join(' › '), + className: 'test-file-path-link', + children: m.jsxs('span', { + className: 'test-file-path', + children: [h.location.file, ':', h.location.line], + }), + }), + m.jsx(qv, { test: h }), + m.jsx(Iv, { test: h }), + m.jsx(tm, { test: h, dim: !0 }), + ], + }), + }), + ], + }, + `test-${h.testId}` + ) + ), + }); + }; + function qv({ test: l }) { + const u = se(); + for (const c of l.results) + for (const f of c.attachments) + if (f.contentType.startsWith('image/') && f.name.match(/-(expected|actual|diff)/)) + return m.jsx(Tr, { + href: Cn( + { test: l, result: c, anchor: `attachment-${c.attachments.indexOf(f)}` }, + u + ), + title: 'View images', + dim: !0, + children: k5(), + }); + } + function Iv({ test: l }) { + const u = se(), + c = l.results.find((f) => f.attachments.some((r) => r.name === 'video')); + return c + ? m.jsx(Tr, { + href: Cn({ test: l, result: c, anchor: 'attachment-video' }, u), + title: 'View video', + dim: !0, + children: J5(), + }) + : void 0; + } + class Kv extends ct.Component { + constructor() { + super(...arguments); + yn(this, 'state', { error: null, errorInfo: null }); + } + componentDidCatch(c, f) { + this.setState({ error: c, errorInfo: f }); + } + render() { + var c, f, r; + return this.state.error || this.state.errorInfo + ? m.jsxs('div', { + className: 'metadata-view p-3', + children: [ + m.jsx('p', { + children: 'An error was encountered when trying to render metadata.', + }), + m.jsx('p', { + children: m.jsxs('pre', { + style: { overflow: 'scroll' }, + children: [ + (c = this.state.error) == null ? void 0 : c.message, + m.jsx('br', {}), + (f = this.state.error) == null ? void 0 : f.stack, + m.jsx('br', {}), + (r = this.state.errorInfo) == null ? void 0 : r.componentStack, + ], + }), + }), + ], + }) + : this.props.children; + } + } + const kv = (l) => m.jsx(Kv, { children: m.jsx(Jv, { metadata: l.metadata }) }), + Jv = (l) => { + const u = l.metadata, + c = se().has('show-metadata-other') + ? Object.entries(l.metadata).filter(([r]) => !fm.has(r)) + : []; + if (u.ci || u.gitCommit || c.length > 0) + return m.jsxs('div', { + className: 'metadata-view', + children: [ + u.ci && !u.gitCommit && m.jsx(Fv, { info: u.ci }), + u.gitCommit && m.jsx(Wv, { ci: u.ci, commit: u.gitCommit }), + c.length > 0 && + m.jsxs(m.Fragment, { + children: [ + (u.gitCommit || u.ci) && m.jsx('div', { className: 'metadata-separator' }), + m.jsx('div', { + className: 'metadata-section metadata-properties', + role: 'list', + children: c.map(([r, o]) => { + const h = + typeof o != 'object' || o === null || o === void 0 + ? String(o) + : JSON.stringify(o), + v = h.length > 1e3 ? h.slice(0, 1e3) + '…' : h; + return m.jsx( + 'div', + { + className: 'copyable-property', + role: 'listitem', + children: m.jsxs(Sr, { + value: h, + children: [ + m.jsx('span', { + style: { fontWeight: 'bold' }, + title: r, + children: r, + }), + ': ', + m.jsx('span', { title: v, children: Di(v) }), + ], + }), + }, + r + ); + }), + }), + ], + }), + ], + }); + }, + Fv = ({ info: l }) => { + const u = l.prTitle || `Commit ${l.commitHash}`, + c = l.prHref || l.commitHref; + return m.jsx('div', { + className: 'metadata-section', + role: 'list', + children: m.jsx('div', { + role: 'listitem', + children: m.jsx('a', { + href: Ve(c), + target: '_blank', + rel: 'noopener noreferrer', + title: u, + children: u, + }), + }), + }); + }, + Wv = ({ ci: l, commit: u }) => { + const c = (l == null ? void 0 : l.prTitle) || u.subject, + f = (l == null ? void 0 : l.prHref) || (l == null ? void 0 : l.commitHref), + r = ` <${u.author.email}>`, + o = `${u.author.name}${r}`, + h = Intl.DateTimeFormat(void 0, { dateStyle: 'medium' }).format(u.committer.time), + v = Intl.DateTimeFormat(void 0, { dateStyle: 'full', timeStyle: 'long' }).format( + u.committer.time + ); + return m.jsxs('div', { + className: 'metadata-section', + role: 'list', + children: [ + m.jsxs('div', { + role: 'listitem', + children: [ + f && + m.jsx('a', { + href: Ve(f), + target: '_blank', + rel: 'noopener noreferrer', + title: c, + children: c, + }), + !f && m.jsx('span', { title: c, children: c }), + ], + }), + m.jsxs('div', { + role: 'listitem', + className: 'hbox', + children: [ + m.jsx('span', { className: 'mr-1', children: o }), + m.jsxs('span', { title: v, children: [' on ', h] }), + ], + }), + ], + }); + }, + fm = new Set(['ci', 'gitCommit', 'gitDiff', 'actualWorkers']), + _v = (l) => { + const u = Object.entries(l).filter(([c]) => !fm.has(c)); + return !l.ci && !l.gitCommit && !u.length; + }, + Pv = ({ files: l, expandedFiles: u, setExpandedFiles: c, projectNames: f }) => { + const r = ct.useMemo(() => { + const o = []; + let h = 0; + for (const v of l) + ((h += v.tests.length), o.push({ file: v, defaultExpanded: h < 200 })); + return o; + }, [l]); + return m.jsx(m.Fragment, { + children: + r.length > 0 + ? r.map(({ file: o, defaultExpanded: h }) => + m.jsx( + sm, + { + file: o, + projectNames: f, + isFileExpanded: (v) => { + const y = u.get(v); + return y === void 0 ? h : !!y; + }, + setFileExpanded: (v, y) => { + const A = new Map(u); + (A.set(v, y), c(A)); + }, + }, + `file-${o.fileId}` + ) + ) + : m.jsx('div', { + className: 'chip-header test-file-no-files', + children: 'No tests found', + }), + }); + }, + Y2 = ({ report: l, filteredStats: u, metadataVisible: c, toggleMetadataVisible: f }) => { + if (!l) return null; + const r = l.projectNames.length === 1 && !!l.projectNames[0], + o = !r && !u, + h = + !_v(l.metadata) && + m.jsxs('div', { + className: Ze('metadata-toggle', !o && 'metadata-toggle-second-line'), + role: 'button', + onClick: f, + title: c ? 'Hide metadata' : 'Show metadata', + children: [c ? Ni() : Cl(), 'Metadata'], + }), + v = m.jsxs('div', { + className: 'test-file-header-info', + children: [ + r && + m.jsxs('div', { + 'data-testid': 'project-name', + children: ['Project: ', l.projectNames[0]], + }), + u && + m.jsxs('div', { + 'data-testid': 'filtered-tests-count', + children: ['Filtered: ', u.total, ' ', !!u.total && '(' + Ol(u.duration) + ')'], + }), + o && h, + ], + }), + y = m.jsxs(m.Fragment, { + children: [ + m.jsx('div', { + 'data-testid': 'overall-time', + style: { marginRight: '10px' }, + children: l ? new Date(l.startTime).toLocaleString() : '', + }), + m.jsxs('div', { + 'data-testid': 'overall-duration', + children: ['Total time: ', Ol(l.duration ?? 0)], + }), + ], + }); + return m.jsxs(m.Fragment, { + children: [ + m.jsx(Or, { title: l.options.title, leftSuperHeader: v, rightSuperHeader: y }), + !o && h, + c && m.jsx(kv, { metadata: l.metadata }), + !!l.errors.length && + m.jsx(ke, { + header: 'Errors', + dataTestId: 'report-errors', + children: l.errors.map((A, E) => + m.jsx(wr, { code: A }, 'test-report-error-message-' + E) + ), + }), + ], + }); + }, + rm = (l) => { + const u = Math.round(l / 1e3), + c = Math.floor(u / 60), + f = u % 60; + return c === 0 ? `${f}s` : `${c}m ${f}s`; + }, + $v = ({ entries: l }) => { + const f = Math.max(...l.map((D) => D.label.length)) * 10, + o = { top: 20, right: 20, bottom: 40, left: Math.min(800 * 0.5, Math.max(50, f)) }, + h = 800 - o.left - o.right, + v = Math.min(...l.map((D) => D.startTime)), + y = Math.max(...l.map((D) => D.startTime + D.duration)); + let A, E; + const S = y - v; + S < 60 * 1e3 + ? ((A = 10 * 1e3), (E = !0)) + : S < 300 * 1e3 + ? ((A = 30 * 1e3), (E = !0)) + : S < 1800 * 1e3 + ? ((A = 300 * 1e3), (E = !1)) + : ((A = 600 * 1e3), (E = !1)); + const O = Math.ceil(v / A) * A, + X = (D, N) => { + const K = new Date(D).toLocaleTimeString(void 0, { + hour: '2-digit', + minute: '2-digit', + second: E ? '2-digit' : void 0, + }); + if (N) return K; + if (K.endsWith(' AM') || K.endsWith(' PM')) return K.slice(0, -3); + }, + b = (y - v) * 1.1, + p = Math.ceil(b / A) * A, + x = h / p, + R = 20, + U = 8, + Z = l.length * (R + U), + F = []; + for (let D = O; D <= v + p; D += A) { + const N = D - v; + F.push({ x: N * x, label: X(D, D === O) }); + } + const j = Z + o.top + o.bottom; + return m.jsx('svg', { + viewBox: `0 0 800 ${j}`, + preserveAspectRatio: 'xMidYMid meet', + style: { width: '100%', height: 'auto' }, + role: 'img', + children: m.jsxs('g', { + transform: `translate(${o.left}, ${o.top})`, + role: 'presentation', + children: [ + F.map(({ x: D, label: N }, K) => + m.jsxs( + 'g', + { + 'aria-hidden': 'true', + children: [ + m.jsx('line', { + x1: D, + y1: 0, + x2: D, + y2: Z, + stroke: 'var(--color-border-muted)', + strokeWidth: '1', + }), + m.jsx('text', { + x: D, + y: Z + 20, + textAnchor: 'middle', + dominantBaseline: 'middle', + fontSize: '12', + fill: 'var(--color-fg-muted)', + children: N, + }), + ], + }, + K + ) + ), + l.map((D, N) => { + const K = D.startTime - v, + J = D.duration * x, + k = K * x, + nt = N * (R + U), + P = [ + 'var(--color-scale-blue-2)', + 'var(--color-scale-blue-3)', + 'var(--color-scale-blue-4)', + ], + st = P[N % P.length]; + return m.jsxs( + 'g', + { + role: 'listitem', + 'aria-label': D.tooltip, + children: [ + m.jsx('rect', { + className: 'gantt-bar', + x: k, + y: nt, + width: J, + height: R, + fill: st, + rx: '2', + tabIndex: 0, + children: m.jsx('title', { children: D.tooltip }), + }), + m.jsx('text', { + x: k + J + 6, + y: nt + R / 2, + dominantBaseline: 'middle', + fontSize: '12', + fill: 'var(--color-fg-muted)', + 'aria-hidden': 'true', + children: rm(D.duration), + }), + m.jsx('text', { + x: -10, + y: nt + R / 2, + textAnchor: 'end', + dominantBaseline: 'middle', + fontSize: '12', + fill: 'var(--color-fg-muted)', + 'aria-hidden': 'true', + children: D.label, + }), + ], + }, + N + ); + }), + m.jsx('line', { + x1: 0, + y1: 0, + x2: 0, + y2: Z, + stroke: 'var(--color-fg-muted)', + strokeWidth: '1', + 'aria-hidden': 'true', + }), + m.jsx('line', { + x1: 0, + y1: Z, + x2: h, + y2: Z, + stroke: 'var(--color-fg-muted)', + strokeWidth: '1', + 'aria-hidden': 'true', + }), + ], + }), + }); + }; + function ty({ report: l, tests: u }) { + return m.jsxs(m.Fragment, { + children: [m.jsx(ny, { report: l }), m.jsx(ey, { report: l, tests: u })], + }); + } + function ey({ report: l, tests: u }) { + const [c, f] = ue.useState(50); + return m.jsx(sm, { + file: { fileId: 'slowest', fileName: 'Slowest Tests', tests: u.slice(0, c), stats: null }, + projectNames: l.json().projectNames, + footer: + c < u.length + ? m.jsxs('button', { + className: 'link-badge fullwidth-link', + style: { padding: '8px 5px' }, + onClick: () => f((r) => r + 50), + children: [Ni(), 'Show 50 more'], + }) + : void 0, + }); + } + function ny({ report: l }) { + const u = l.json().machines; + if (u.length === 0) return null; + const c = u + .map((f) => { + const r = f.tag.join(' '), + o = new Date(f.startTime).toLocaleTimeString([], { + hour: '2-digit', + minute: '2-digit', + second: '2-digit', + timeZoneName: 'short', + }); + let h = `${r} started at ${o}, runs ${rm(f.duration)}`; + return ( + f.shardIndex && (h += ` (shard ${f.shardIndex})`), + { + label: r, + tooltip: h, + startTime: f.startTime, + duration: f.duration, + shardIndex: f.shardIndex ?? 1, + } + ); + }) + .sort((f, r) => f.label.localeCompare(r.label) || f.shardIndex - r.shardIndex); + return m.jsx(ke, { header: 'Timeline', children: m.jsx($v, { entries: c }) }); + } + const ay = (l) => !l.has('testId') && !l.has('speedboard'), + ly = (l) => l.has('testId'), + iy = (l) => l.has('speedboard') && !l.has('testId'), + uy = ({ report: l }) => { + var Z, F; + const u = se(), + [c, f] = ct.useState(new Map()), + [r, o] = ct.useState(u.get('q') || ''), + [h, v] = ct.useState(!1), + y = u.has('speedboard'), + [A] = _h('mergeFiles', !1), + E = u.get('testId'), + S = ((Z = u.get('q')) == null ? void 0 : Z.toString()) || '', + O = S ? '&q=' + S : '', + X = (F = l == null ? void 0 : l.json()) == null ? void 0 : F.options.title, + B = ct.useMemo(() => { + const j = new Map(); + for (const D of (l == null ? void 0 : l.json().files) || []) + for (const N of D.tests) j.set(N.testId, D.fileId); + return j; + }, [l]), + b = ct.useMemo(() => rc.parse(r), [r]), + p = ct.useMemo( + () => (b.empty() ? void 0 : sy((l == null ? void 0 : l.json().files) || [], b)), + [l, b] + ), + x = ct.useMemo(() => (y ? oy(l, b) : A ? ry(l, b) : fy(l, b)), [l, b, A, y]), + { prev: R, next: U } = ct.useMemo(() => { + const j = x.tests.findIndex((K) => K.testId === E), + D = j > 0 ? x.tests[j - 1] : void 0, + N = j < x.tests.length - 1 ? x.tests[j + 1] : void 0; + return { prev: D, next: N }; + }, [E, x]); + return ( + ct.useEffect(() => { + const j = (D) => { + if ( + D.target instanceof HTMLInputElement || + D.target instanceof HTMLTextAreaElement || + D.shiftKey || + D.ctrlKey || + D.metaKey || + D.altKey + ) + return; + const N = new URLSearchParams(u); + switch (D.key) { + case 'a': + (D.preventDefault(), ca('#?')); + break; + case 'p': + (D.preventDefault(), + N.delete('testId'), + N.delete('speedboard'), + ca(Na(N, 's:passed', !1))); + break; + case 'f': + (D.preventDefault(), + N.delete('testId'), + N.delete('speedboard'), + ca(Na(N, 's:failed', !1))); + break; + case 'ArrowLeft': + R && (D.preventDefault(), N.delete('testId'), ca(Cn({ test: R }, N) + O)); + break; + case 'ArrowRight': + U && (D.preventDefault(), N.delete('testId'), ca(Cn({ test: U }, N) + O)); + break; + } + }; + return ( + document.addEventListener('keydown', j), + () => document.removeEventListener('keydown', j) + ); + }, [R, U, O, S, u]), + ct.useEffect(() => { + X ? (document.title = X) : (document.title = 'Playwright Test Report'); + }, [X]), + m.jsx('div', { + className: 'htmlreport vbox px-4 pb-4', + children: m.jsxs('main', { + children: [ + l && m.jsx(Ev, { stats: l.json().stats, filterText: r, setFilterText: o }), + m.jsxs(Kf, { + predicate: ay, + children: [ + m.jsx(Y2, { + report: l == null ? void 0 : l.json(), + filteredStats: p, + metadataVisible: h, + toggleMetadataVisible: () => v((j) => !j), + }), + m.jsx(Pv, { + files: x.files, + expandedFiles: c, + setExpandedFiles: f, + projectNames: (l == null ? void 0 : l.json().projectNames) || [], + }), + ], + }), + m.jsxs(Kf, { + predicate: iy, + children: [ + m.jsx(Y2, { + report: l == null ? void 0 : l.json(), + filteredStats: p, + metadataVisible: h, + toggleMetadataVisible: () => v((j) => !j), + }), + l && m.jsx(ty, { report: l, tests: x.tests }), + ], + }), + m.jsx(Kf, { + predicate: ly, + children: + l && + m.jsx(cy, { report: l, next: U, prev: R, testId: E, testIdToFileIdMap: B }), + }), + ], + }), + }) + ); + }, + cy = ({ report: l, testIdToFileIdMap: u, next: c, prev: f, testId: r }) => { + const [o, h] = ct.useState('loading'), + v = +(se().get('run') || '0'); + if ( + (ct.useEffect(() => { + (async () => { + if (!r || (typeof o == 'object' && r === o.testId)) return; + const S = u.get(r); + if (!S) { + h('not-found'); + return; + } + const O = await l.entry(`${S}.json`); + h((O == null ? void 0 : O.tests.find((X) => X.testId === r)) || 'not-found'); + })(); + }, [o, l, r, u]), + o === 'loading') + ) + return m.jsx('div', { className: 'test-case-column' }); + if (o === 'not-found') + return m.jsxs('div', { + className: 'test-case-column', + children: [ + m.jsx(Or, { title: 'Test not found' }), + m.jsxs('div', { className: 'test-case-location', children: ['Test ID: ', r] }), + ], + }); + const { projectNames: y, metadata: A, options: E } = l.json(); + return m.jsx('div', { + className: 'test-case-column', + children: m.jsx(Vv, { + projectNames: y, + testRunMetadata: A, + options: E, + next: c, + prev: f, + test: o, + run: v, + }), + }); + }; + function sy(l, u) { + const c = { total: 0, duration: 0 }; + for (const f of l) { + const r = f.tests.filter((o) => u.matches(o)); + c.total += r.length; + for (const o of r) c.duration += o.duration; + } + return c; + } + function fy(l, u) { + const c = { files: [], tests: [] }; + for (const f of (l == null ? void 0 : l.json().files) || []) { + const r = f.tests.filter((o) => u.matches(o)); + (r.length && c.files.push({ ...f, tests: r }), c.tests.push(...r)); + } + return c; + } + function ry(l, u) { + const c = [], + f = new Map(); + for (const o of (l == null ? void 0 : l.json().files) || []) { + const h = o.tests.filter((v) => u.matches(v)); + for (const v of h) { + const y = v.path[0] ?? '<anonymous>'; + let A = f.get(y); + A || + ((A = { + fileId: y, + fileName: y, + tests: [], + stats: { total: 0, expected: 0, unexpected: 0, flaky: 0, skipped: 0, ok: !0 }, + }), + f.set(y, A), + c.push(A)); + const E = { ...v, path: v.path.slice(1) }; + A.tests.push(E); + } + } + c.sort((o, h) => o.fileName.localeCompare(h.fileName)); + const r = { files: c, tests: [] }; + for (const o of c) r.tests.push(...o.tests); + return r; + } + function oy(l, u) { + const f = ((l == null ? void 0 : l.json().files) || []) + .flatMap((r) => r.tests) + .filter((r) => u.matches(r)); + return (f.sort((r, o) => o.duration - r.duration), { files: [], tests: f }); + } + const dy = + "data:image/svg+xml,%3csvg%20width='400'%20height='400'%20viewBox='0%200%20400%20400'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M136.444%20221.556C123.558%20225.213%20115.104%20231.625%20109.535%20238.032C114.869%20233.364%20122.014%20229.08%20131.652%20226.348C141.51%20223.554%20149.92%20223.574%20156.869%20224.915V219.481C150.941%20218.939%20144.145%20219.371%20136.444%20221.556ZM108.946%20175.876L61.0895%20188.484C61.0895%20188.484%2061.9617%20189.716%2063.5767%20191.36L104.153%20180.668C104.153%20180.668%20103.578%20188.077%2098.5847%20194.705C108.03%20187.559%20108.946%20175.876%20108.946%20175.876ZM149.005%20288.347C81.6582%20306.486%2046.0272%20228.438%2035.2396%20187.928C30.2556%20169.229%2028.0799%20155.067%2027.5%20145.928C27.4377%20144.979%2027.4665%20144.179%2027.5336%20143.446C24.04%20143.657%2022.3674%20145.473%2022.7077%20150.721C23.2876%20159.855%2025.4633%20174.016%2030.4473%20192.721C41.2301%20233.225%2076.8659%20311.273%20144.213%20293.134C158.872%20289.185%20169.885%20281.992%20178.152%20272.81C170.532%20279.692%20160.995%20285.112%20149.005%20288.347ZM161.661%20128.11V132.903H188.077C187.535%20131.206%20186.989%20129.677%20186.447%20128.11H161.661Z'%20fill='%232D4552'/%3e%3cpath%20d='M193.981%20167.584C205.861%20170.958%20212.144%20179.287%20215.465%20186.658L228.711%20190.42C228.711%20190.42%20226.904%20164.623%20203.57%20157.995C181.741%20151.793%20168.308%20170.124%20166.674%20172.496C173.024%20167.972%20182.297%20164.268%20193.981%20167.584ZM299.422%20186.777C277.573%20180.547%20264.145%20198.916%20262.535%20201.255C268.89%20196.736%20278.158%20193.031%20289.837%20196.362C301.698%20199.741%20307.976%20208.06%20311.307%20215.436L324.572%20219.212C324.572%20219.212%20322.736%20193.41%20299.422%20186.777ZM286.262%20254.795L176.072%20223.99C176.072%20223.99%20177.265%20230.038%20181.842%20237.869L274.617%20263.805C282.255%20259.386%20286.262%20254.795%20286.262%20254.795ZM209.867%20321.102C122.618%20297.71%20133.166%20186.543%20147.284%20133.865C153.097%20112.156%20159.073%2096.0203%20164.029%2085.204C161.072%2084.5953%20158.623%2086.1529%20156.203%2091.0746C150.941%20101.747%20144.212%20119.124%20137.7%20143.45C123.586%20196.127%20113.038%20307.29%20200.283%20330.682C241.406%20341.699%20273.442%20324.955%20297.323%20298.659C274.655%20319.19%20245.714%20330.701%20209.867%20321.102Z'%20fill='%232D4552'/%3e%3cpath%20d='M161.661%20262.296V239.863L99.3324%20257.537C99.3324%20257.537%20103.938%20230.777%20136.444%20221.556C146.302%20218.762%20154.713%20218.781%20161.661%20220.123V128.11H192.869C189.471%20117.61%20186.184%20109.526%20183.423%20103.909C178.856%2094.612%20174.174%20100.775%20163.545%20109.665C156.059%20115.919%20137.139%20129.261%20108.668%20136.933C80.1966%20144.61%2057.179%20142.574%2047.5752%20140.911C33.9601%20138.562%2026.8387%20135.572%2027.5049%20145.928C28.0847%20155.062%2030.2605%20169.224%2035.2445%20187.928C46.0272%20228.433%2081.663%20306.481%20149.01%20288.342C166.602%20283.602%20179.019%20274.233%20187.626%20262.291H161.661V262.296ZM61.0848%20188.484L108.946%20175.876C108.946%20175.876%20107.551%20194.288%2089.6087%20199.018C71.6614%20203.743%2061.0848%20188.484%2061.0848%20188.484Z'%20fill='%23E2574C'/%3e%3cpath%20d='M341.786%20129.174C329.345%20131.355%20299.498%20134.072%20262.612%20124.185C225.716%20114.304%20201.236%2097.0224%20191.537%2088.8994C177.788%2077.3834%20171.74%2069.3802%20165.788%2081.4857C160.526%2092.163%20153.797%20109.54%20147.284%20133.866C133.171%20186.543%20122.623%20297.706%20209.867%20321.098C297.093%20344.47%20343.53%20242.92%20357.644%20190.238C364.157%20165.917%20367.013%20147.5%20367.799%20135.625C368.695%20122.173%20359.455%20126.078%20341.786%20129.174ZM166.497%20172.756C166.497%20172.756%20180.246%20151.372%20203.565%20158C226.899%20164.628%20228.706%20190.425%20228.706%20190.425L166.497%20172.756ZM223.42%20268.713C182.403%20256.698%20176.077%20223.99%20176.077%20223.99L286.262%20254.796C286.262%20254.791%20264.021%20280.578%20223.42%20268.713ZM262.377%20201.495C262.377%20201.495%20276.107%20180.126%20299.422%20186.773C322.736%20193.411%20324.572%20219.208%20324.572%20219.208L262.377%20201.495Z'%20fill='%232EAD33'/%3e%3cpath%20d='M139.88%20246.04L99.3324%20257.532C99.3324%20257.532%20103.737%20232.44%20133.607%20222.496L110.647%20136.33L108.663%20136.933C80.1918%20144.611%2057.1742%20142.574%2047.5704%20140.911C33.9554%20138.563%2026.834%20135.572%2027.5001%20145.929C28.08%20155.063%2030.2557%20169.224%2035.2397%20187.929C46.0225%20228.433%2081.6583%20306.481%20149.005%20288.342L150.989%20287.719L139.88%20246.04ZM61.0848%20188.485L108.946%20175.876C108.946%20175.876%20107.551%20194.288%2089.6087%20199.018C71.6615%20203.743%2061.0848%20188.485%2061.0848%20188.485Z'%20fill='%23D65348'/%3e%3cpath%20d='M225.27%20269.163L223.415%20268.712C182.398%20256.698%20176.072%20223.99%20176.072%20223.99L232.89%20239.872L262.971%20124.281L262.607%20124.185C225.711%20114.304%20201.232%2097.0224%20191.532%2088.8994C177.783%2077.3834%20171.735%2069.3802%20165.783%2081.4857C160.526%2092.163%20153.797%20109.54%20147.284%20133.866C133.171%20186.543%20122.623%20297.706%20209.867%20321.097L211.655%20321.5L225.27%20269.163ZM166.497%20172.756C166.497%20172.756%20180.246%20151.372%20203.565%20158C226.899%20164.628%20228.706%20190.425%20228.706%20190.425L166.497%20172.756Z'%20fill='%231D8D22'/%3e%3cpath%20d='M141.946%20245.451L131.072%20248.537C133.641%20263.019%20138.169%20276.917%20145.276%20289.195C146.513%20288.922%20147.74%20288.687%20149%20288.342C152.302%20287.451%20155.364%20286.348%20158.312%20285.145C150.371%20273.361%20145.118%20259.789%20141.946%20245.451ZM137.7%20143.451C132.112%20164.307%20127.113%20194.326%20128.489%20224.436C130.952%20223.367%20133.554%20222.371%20136.444%20221.551L138.457%20221.101C136.003%20188.939%20141.308%20156.165%20147.284%20133.866C148.799%20128.225%20150.318%20122.978%20151.832%20118.085C149.393%20119.637%20146.767%20121.228%20143.776%20122.867C141.759%20129.093%20139.722%20135.898%20137.7%20143.451Z'%20fill='%23C04B41'/%3e%3c/svg%3e", + Ff = N5, + Rr = document.createElement('link'); + Rr.rel = 'shortcut icon'; + Rr.href = dy; + document.head.appendChild(Rr); + const hy = () => { + const [l, u] = ct.useState(); + return ( + ct.useEffect(() => { + const c = new my(); + c.load().then(() => { + var f; + ((f = document.getElementById('playwrightReportBase64')) == null || f.remove(), u(c)); + }); + }, []), + m.jsx(cv, { children: m.jsx(uy, { report: l }) }) + ); + }; + window.onload = () => { + (gv(), X5.createRoot(document.querySelector('#root')).render(m.jsx(hy, {}))); + }; + class my { + constructor() { + yn(this, '_entries', new Map()); + yn(this, '_json'); + } + async load() { + const u = document.getElementById('playwrightReportBase64').textContent, + c = new Ff.ZipReader(new Ff.Data64URIReader(u), { useWebWorkers: !1 }); + for (const f of await c.getEntries()) this._entries.set(f.filename, f); + this._json = await this.entry('report.json'); + } + json() { + return this._json; + } + async entry(u) { + const c = this._entries.get(u), + f = new Ff.TextWriter(); + return (await c.getData(f), JSON.parse(await f.getData())); + } + } + </script> + <style type="text/css"> + :root { + --color-canvas-default-transparent: rgba(255, 255, 255, 0); + --color-marketing-icon-primary: #218bff; + --color-marketing-icon-secondary: #54aeff; + --color-diff-blob-addition-num-text: #24292f; + --color-diff-blob-addition-fg: #24292f; + --color-diff-blob-addition-num-bg: #ccffd8; + --color-diff-blob-addition-line-bg: #e6ffec; + --color-diff-blob-addition-word-bg: #abf2bc; + --color-diff-blob-deletion-num-text: #24292f; + --color-diff-blob-deletion-fg: #24292f; + --color-diff-blob-deletion-num-bg: #ffd7d5; + --color-diff-blob-deletion-line-bg: #ffebe9; + --color-diff-blob-deletion-word-bg: rgba(255, 129, 130, 0.4); + --color-diff-blob-hunk-num-bg: rgba(84, 174, 255, 0.4); + --color-diff-blob-expander-icon: #57606a; + --color-diff-blob-selected-line-highlight-mix-blend-mode: multiply; + --color-diffstat-deletion-border: rgba(27, 31, 36, 0.15); + --color-diffstat-addition-border: rgba(27, 31, 36, 0.15); + --color-diffstat-addition-bg: #2da44e; + --color-search-keyword-hl: #fff8c5; + --color-prettylights-syntax-comment: #6e7781; + --color-prettylights-syntax-constant: #0550ae; + --color-prettylights-syntax-entity: #8250df; + --color-prettylights-syntax-storage-modifier-import: #24292f; + --color-prettylights-syntax-entity-tag: #116329; + --color-prettylights-syntax-keyword: #cf222e; + --color-prettylights-syntax-string: #0a3069; + --color-prettylights-syntax-variable: #953800; + --color-prettylights-syntax-brackethighlighter-unmatched: #82071e; + --color-prettylights-syntax-invalid-illegal-text: #f6f8fa; + --color-prettylights-syntax-invalid-illegal-bg: #82071e; + --color-prettylights-syntax-carriage-return-text: #f6f8fa; + --color-prettylights-syntax-carriage-return-bg: #cf222e; + --color-prettylights-syntax-string-regexp: #116329; + --color-prettylights-syntax-markup-list: #3b2300; + --color-prettylights-syntax-markup-heading: #0550ae; + --color-prettylights-syntax-markup-italic: #24292f; + --color-prettylights-syntax-markup-bold: #24292f; + --color-prettylights-syntax-markup-deleted-text: #82071e; + --color-prettylights-syntax-markup-deleted-bg: #ffebe9; + --color-prettylights-syntax-markup-inserted-text: #116329; + --color-prettylights-syntax-markup-inserted-bg: #dafbe1; + --color-prettylights-syntax-markup-changed-text: #953800; + --color-prettylights-syntax-markup-changed-bg: #ffd8b5; + --color-prettylights-syntax-markup-ignored-text: #eaeef2; + --color-prettylights-syntax-markup-ignored-bg: #0550ae; + --color-prettylights-syntax-meta-diff-range: #8250df; + --color-prettylights-syntax-brackethighlighter-angle: #57606a; + --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f; + --color-prettylights-syntax-constant-other-reference-link: #0a3069; + --color-codemirror-text: #24292f; + --color-codemirror-bg: #ffffff; + --color-codemirror-gutters-bg: #ffffff; + --color-codemirror-guttermarker-text: #ffffff; + --color-codemirror-guttermarker-subtle-text: #6e7781; + --color-codemirror-linenumber-text: #57606a; + --color-codemirror-cursor: #24292f; + --color-codemirror-selection-bg: rgba(84, 174, 255, 0.4); + --color-codemirror-activeline-bg: rgba(234, 238, 242, 0.5); + --color-codemirror-matchingbracket-text: #24292f; + --color-codemirror-lines-bg: #ffffff; + --color-codemirror-syntax-comment: #24292f; + --color-codemirror-syntax-constant: #0550ae; + --color-codemirror-syntax-entity: #8250df; + --color-codemirror-syntax-keyword: #cf222e; + --color-codemirror-syntax-storage: #cf222e; + --color-codemirror-syntax-string: #0a3069; + --color-codemirror-syntax-support: #0550ae; + --color-codemirror-syntax-variable: #953800; + --color-checks-bg: #24292f; + --color-checks-run-border-width: 0px; + --color-checks-container-border-width: 0px; + --color-checks-text-primary: #f6f8fa; + --color-checks-text-secondary: #8c959f; + --color-checks-text-link: #54aeff; + --color-checks-btn-icon: #afb8c1; + --color-checks-btn-hover-icon: #f6f8fa; + --color-checks-btn-hover-bg: rgba(255, 255, 255, 0.125); + --color-checks-input-text: #eaeef2; + --color-checks-input-placeholder-text: #8c959f; + --color-checks-input-focus-text: #8c959f; + --color-checks-input-bg: #32383f; + --color-checks-input-shadow: none; + --color-checks-donut-error: #fa4549; + --color-checks-donut-pending: #bf8700; + --color-checks-donut-success: #2da44e; + --color-checks-donut-neutral: #afb8c1; + --color-checks-dropdown-text: #afb8c1; + --color-checks-dropdown-bg: #32383f; + --color-checks-dropdown-border: #424a53; + --color-checks-dropdown-shadow: rgba(27, 31, 36, 0.3); + --color-checks-dropdown-hover-text: #f6f8fa; + --color-checks-dropdown-hover-bg: #424a53; + --color-checks-dropdown-btn-hover-text: #f6f8fa; + --color-checks-dropdown-btn-hover-bg: #32383f; + --color-checks-scrollbar-thumb-bg: #57606a; + --color-checks-header-label-text: #d0d7de; + --color-checks-header-label-open-text: #f6f8fa; + --color-checks-header-border: #32383f; + --color-checks-header-icon: #8c959f; + --color-checks-line-text: #d0d7de; + --color-checks-line-num-text: rgba(140, 149, 159, 0.75); + --color-checks-line-timestamp-text: #8c959f; + --color-checks-line-hover-bg: #32383f; + --color-checks-line-selected-bg: rgba(33, 139, 255, 0.15); + --color-checks-line-selected-num-text: #54aeff; + --color-checks-line-dt-fm-text: #24292f; + --color-checks-line-dt-fm-bg: #9a6700; + --color-checks-gate-bg: rgba(125, 78, 0, 0.15); + --color-checks-gate-text: #d0d7de; + --color-checks-gate-waiting-text: #afb8c1; + --color-checks-step-header-open-bg: #32383f; + --color-checks-step-error-text: #ff8182; + --color-checks-step-warning-text: #d4a72c; + --color-checks-logline-text: #8c959f; + --color-checks-logline-num-text: rgba(140, 149, 159, 0.75); + --color-checks-logline-debug-text: #c297ff; + --color-checks-logline-error-text: #d0d7de; + --color-checks-logline-error-num-text: #ff8182; + --color-checks-logline-error-bg: rgba(164, 14, 38, 0.15); + --color-checks-logline-warning-text: #d0d7de; + --color-checks-logline-warning-num-text: #d4a72c; + --color-checks-logline-warning-bg: rgba(125, 78, 0, 0.15); + --color-checks-logline-command-text: #54aeff; + --color-checks-logline-section-text: #4ac26b; + --color-checks-ansi-black: #24292f; + --color-checks-ansi-black-bright: #32383f; + --color-checks-ansi-white: #d0d7de; + --color-checks-ansi-white-bright: #d0d7de; + --color-checks-ansi-gray: #8c959f; + --color-checks-ansi-red: #ff8182; + --color-checks-ansi-red-bright: #ffaba8; + --color-checks-ansi-green: #4ac26b; + --color-checks-ansi-green-bright: #6fdd8b; + --color-checks-ansi-yellow: #d4a72c; + --color-checks-ansi-yellow-bright: #eac54f; + --color-checks-ansi-blue: #54aeff; + --color-checks-ansi-blue-bright: #80ccff; + --color-checks-ansi-magenta: #c297ff; + --color-checks-ansi-magenta-bright: #d8b9ff; + --color-checks-ansi-cyan: #76e3ea; + --color-checks-ansi-cyan-bright: #b3f0ff; + --color-project-header-bg: #24292f; + --color-project-sidebar-bg: #ffffff; + --color-project-gradient-in: #ffffff; + --color-project-gradient-out: rgba(255, 255, 255, 0); + --color-mktg-success: rgba(36, 146, 67, 1); + --color-mktg-info: rgba(19, 119, 234, 1); + --color-mktg-bg-shade-gradient-top: rgba(27, 31, 36, 0.065); + --color-mktg-bg-shade-gradient-bottom: rgba(27, 31, 36, 0); + --color-mktg-btn-bg-top: hsla(228, 82%, 66%, 1); + --color-mktg-btn-bg-bottom: #4969ed; + --color-mktg-btn-bg-overlay-top: hsla(228, 74%, 59%, 1); + --color-mktg-btn-bg-overlay-bottom: #3355e0; + --color-mktg-btn-text: #ffffff; + --color-mktg-btn-primary-bg-top: hsla(137, 56%, 46%, 1); + --color-mktg-btn-primary-bg-bottom: #2ea44f; + --color-mktg-btn-primary-bg-overlay-top: hsla(134, 60%, 38%, 1); + --color-mktg-btn-primary-bg-overlay-bottom: #22863a; + --color-mktg-btn-primary-text: #ffffff; + --color-mktg-btn-enterprise-bg-top: hsla(249, 100%, 72%, 1); + --color-mktg-btn-enterprise-bg-bottom: #6f57ff; + --color-mktg-btn-enterprise-bg-overlay-top: hsla(248, 65%, 63%, 1); + --color-mktg-btn-enterprise-bg-overlay-bottom: #614eda; + --color-mktg-btn-enterprise-text: #ffffff; + --color-mktg-btn-outline-text: #4969ed; + --color-mktg-btn-outline-border: rgba(73, 105, 237, 0.3); + --color-mktg-btn-outline-hover-text: #3355e0; + --color-mktg-btn-outline-hover-border: rgba(51, 85, 224, 0.5); + --color-mktg-btn-outline-focus-border: #4969ed; + --color-mktg-btn-outline-focus-border-inset: rgba(73, 105, 237, 0.5); + --color-mktg-btn-dark-text: #ffffff; + --color-mktg-btn-dark-border: rgba(255, 255, 255, 0.3); + --color-mktg-btn-dark-hover-text: #ffffff; + --color-mktg-btn-dark-hover-border: rgba(255, 255, 255, 0.5); + --color-mktg-btn-dark-focus-border: #ffffff; + --color-mktg-btn-dark-focus-border-inset: rgba(255, 255, 255, 0.5); + --color-avatar-bg: #ffffff; + --color-avatar-border: rgba(27, 31, 36, 0.15); + --color-avatar-stack-fade: #afb8c1; + --color-avatar-stack-fade-more: #d0d7de; + --color-avatar-child-shadow: -2px -2px 0 rgba(255, 255, 255, 0.8); + --color-topic-tag-border: rgba(0, 0, 0, 0); + --color-select-menu-backdrop-border: rgba(0, 0, 0, 0); + --color-select-menu-tap-highlight: rgba(175, 184, 193, 0.5); + --color-select-menu-tap-focus-bg: #b6e3ff; + --color-overlay-shadow: 0 1px 3px rgba(27, 31, 36, 0.12), 0 8px 24px rgba(66, 74, 83, 0.12); + --color-header-text: rgba(255, 255, 255, 0.7); + --color-header-bg: #24292f; + --color-header-logo: #ffffff; + --color-header-search-bg: #24292f; + --color-header-search-border: #57606a; + --color-sidenav-selected-bg: #ffffff; + --color-menu-bg-active: rgba(0, 0, 0, 0); + --color-control-transparent-bg-hover: #818b981a; + --color-input-disabled-bg: rgba(175, 184, 193, 0.2); + --color-timeline-badge-bg: #eaeef2; + --color-ansi-black: #24292f; + --color-ansi-black-bright: #57606a; + --color-ansi-white: #6e7781; + --color-ansi-white-bright: #8c959f; + --color-ansi-gray: #6e7781; + --color-ansi-red: #cf222e; + --color-ansi-red-bright: #a40e26; + --color-ansi-green: #116329; + --color-ansi-green-bright: #1a7f37; + --color-ansi-yellow: #4d2d00; + --color-ansi-yellow-bright: #633c01; + --color-ansi-blue: #0969da; + --color-ansi-blue-bright: #218bff; + --color-ansi-magenta: #8250df; + --color-ansi-magenta-bright: #a475f9; + --color-ansi-cyan: #1b7c83; + --color-ansi-cyan-bright: #3192aa; + --color-btn-text: #24292f; + --color-btn-bg: #f6f8fa; + --color-btn-border: rgba(27, 31, 36, 0.15); + --color-btn-shadow: 0 1px 0 rgba(27, 31, 36, 0.04); + --color-btn-inset-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25); + --color-btn-hover-bg: #f3f4f6; + --color-btn-hover-border: rgba(27, 31, 36, 0.15); + --color-btn-active-bg: hsla(220, 14%, 93%, 1); + --color-btn-active-border: rgba(27, 31, 36, 0.15); + --color-btn-selected-bg: hsla(220, 14%, 94%, 1); + --color-btn-focus-bg: #f6f8fa; + --color-btn-focus-border: rgba(27, 31, 36, 0.15); + --color-btn-focus-shadow: 0 0 0 3px rgba(9, 105, 218, 0.3); + --color-btn-shadow-active: inset 0 0.15em 0.3em rgba(27, 31, 36, 0.15); + --color-btn-shadow-input-focus: 0 0 0 0.2em rgba(9, 105, 218, 0.3); + --color-btn-counter-bg: rgba(27, 31, 36, 0.08); + --color-btn-primary-text: #ffffff; + --color-btn-primary-bg: #2da44e; + --color-btn-primary-border: rgba(27, 31, 36, 0.15); + --color-btn-primary-shadow: 0 1px 0 rgba(27, 31, 36, 0.1); + --color-btn-primary-inset-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.03); + --color-btn-primary-hover-bg: #2c974b; + --color-btn-primary-hover-border: rgba(27, 31, 36, 0.15); + --color-btn-primary-selected-bg: hsla(137, 55%, 36%, 1); + --color-btn-primary-selected-shadow: inset 0 1px 0 rgba(0, 45, 17, 0.2); + --color-btn-primary-disabled-text: rgba(255, 255, 255, 0.8); + --color-btn-primary-disabled-bg: #94d3a2; + --color-btn-primary-disabled-border: rgba(27, 31, 36, 0.15); + --color-btn-primary-focus-bg: #2da44e; + --color-btn-primary-focus-border: rgba(27, 31, 36, 0.15); + --color-btn-primary-focus-shadow: 0 0 0 3px rgba(45, 164, 78, 0.4); + --color-btn-primary-icon: rgba(255, 255, 255, 0.8); + --color-btn-primary-counter-bg: rgba(255, 255, 255, 0.2); + --color-btn-outline-text: #0969da; + --color-btn-outline-hover-text: #ffffff; + --color-btn-outline-hover-bg: #0969da; + --color-btn-outline-hover-border: rgba(27, 31, 36, 0.15); + --color-btn-outline-hover-shadow: 0 1px 0 rgba(27, 31, 36, 0.1); + --color-btn-outline-hover-inset-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.03); + --color-btn-outline-hover-counter-bg: rgba(255, 255, 255, 0.2); + --color-btn-outline-selected-text: #ffffff; + --color-btn-outline-selected-bg: hsla(212, 92%, 42%, 1); + --color-btn-outline-selected-border: rgba(27, 31, 36, 0.15); + --color-btn-outline-selected-shadow: inset 0 1px 0 rgba(0, 33, 85, 0.2); + --color-btn-outline-disabled-text: rgba(9, 105, 218, 0.5); + --color-btn-outline-disabled-bg: #f6f8fa; + --color-btn-outline-disabled-counter-bg: rgba(9, 105, 218, 0.05); + --color-btn-outline-focus-border: rgba(27, 31, 36, 0.15); + --color-btn-outline-focus-shadow: 0 0 0 3px rgba(5, 80, 174, 0.4); + --color-btn-outline-counter-bg: rgba(9, 105, 218, 0.1); + --color-btn-danger-text: #cf222e; + --color-btn-danger-hover-text: #ffffff; + --color-btn-danger-hover-bg: #a40e26; + --color-btn-danger-hover-border: rgba(27, 31, 36, 0.15); + --color-btn-danger-hover-shadow: 0 1px 0 rgba(27, 31, 36, 0.1); + --color-btn-danger-hover-inset-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.03); + --color-btn-danger-hover-counter-bg: rgba(255, 255, 255, 0.2); + --color-btn-danger-selected-text: #ffffff; + --color-btn-danger-selected-bg: hsla(356, 72%, 44%, 1); + --color-btn-danger-selected-border: rgba(27, 31, 36, 0.15); + --color-btn-danger-selected-shadow: inset 0 1px 0 rgba(76, 0, 20, 0.2); + --color-btn-danger-disabled-text: rgba(207, 34, 46, 0.5); + --color-btn-danger-disabled-bg: #f6f8fa; + --color-btn-danger-disabled-counter-bg: rgba(207, 34, 46, 0.05); + --color-btn-danger-focus-border: rgba(27, 31, 36, 0.15); + --color-btn-danger-focus-shadow: 0 0 0 3px rgba(164, 14, 38, 0.4); + --color-btn-danger-counter-bg: rgba(207, 34, 46, 0.1); + --color-btn-danger-icon: #cf222e; + --color-btn-danger-hover-icon: #ffffff; + --color-underlinenav-icon: #6e7781; + --color-underlinenav-border-hover: rgba(175, 184, 193, 0.2); + --color-fg-default: #24292f; + --color-fg-muted: #57606a; + --color-fg-subtle: #6e7781; + --color-fg-on-emphasis: #ffffff; + --color-canvas-default: #ffffff; + --color-canvas-overlay: #ffffff; + --color-canvas-inset: #f6f8fa; + --color-canvas-subtle: #f6f8fa; + --color-border-default: #d0d7de; + --color-border-muted: hsla(210, 18%, 87%, 1); + --color-border-subtle: rgba(27, 31, 36, 0.15); + --color-shadow-small: 0 1px 0 rgba(27, 31, 36, 0.04); + --color-shadow-medium: 0 3px 6px rgba(140, 149, 159, 0.15); + --color-shadow-large: 0 8px 24px rgba(140, 149, 159, 0.2); + --color-shadow-extra-large: 0 12px 28px rgba(140, 149, 159, 0.3); + --color-neutral-emphasis-plus: #24292f; + --color-neutral-emphasis: #6e7781; + --color-neutral-muted: rgba(175, 184, 193, 0.2); + --color-neutral-subtle: rgba(234, 238, 242, 0.5); + --color-accent-fg: #0969da; + --color-accent-emphasis: #0969da; + --color-accent-muted: rgba(84, 174, 255, 0.4); + --color-accent-subtle: #ddf4ff; + --color-success-fg: #1a7f37; + --color-success-emphasis: #2da44e; + --color-success-muted: rgba(74, 194, 107, 0.4); + --color-success-subtle: #dafbe1; + --color-attention-fg: #9a6700; + --color-attention-emphasis: #bf8700; + --color-attention-muted: rgba(212, 167, 44, 0.4); + --color-attention-subtle: #fff8c5; + --color-severe-fg: #bc4c00; + --color-severe-emphasis: #bc4c00; + --color-severe-muted: rgba(251, 143, 68, 0.4); + --color-severe-subtle: #fff1e5; + --color-danger-fg: #cf222e; + --color-danger-emphasis: #cf222e; + --color-danger-muted: rgba(255, 129, 130, 0.4); + --color-danger-subtle: #ffebe9; + --color-done-fg: #8250df; + --color-done-emphasis: #8250df; + --color-done-muted: rgba(194, 151, 255, 0.4); + --color-done-subtle: #fbefff; + --color-sponsors-fg: #bf3989; + --color-sponsors-emphasis: #bf3989; + --color-sponsors-muted: rgba(255, 128, 200, 0.4); + --color-sponsors-subtle: #ffeff7; + --color-primer-canvas-backdrop: rgba(27, 31, 36, 0.5); + --color-primer-canvas-sticky: rgba(255, 255, 255, 0.95); + --color-primer-border-active: #fd8c73; + --color-primer-border-contrast: rgba(27, 31, 36, 0.1); + --color-primer-shadow-highlight: inset 0 1px 0 rgba(255, 255, 255, 0.25); + --color-primer-shadow-inset: inset 0 1px 0 rgba(208, 215, 222, 0.2); + --color-primer-shadow-focus: 0 0 0 3px rgba(9, 105, 218, 0.3); + --color-scale-black: #1b1f24; + --color-scale-white: #ffffff; + --color-scale-gray-0: #f6f8fa; + --color-scale-gray-1: #eaeef2; + --color-scale-gray-2: #d0d7de; + --color-scale-gray-3: #afb8c1; + --color-scale-gray-4: #8c959f; + --color-scale-gray-5: #6e7781; + --color-scale-gray-6: #57606a; + --color-scale-gray-7: #424a53; + --color-scale-gray-8: #32383f; + --color-scale-gray-9: #24292f; + --color-scale-blue-0: #ddf4ff; + --color-scale-blue-1: #b6e3ff; + --color-scale-blue-2: #80ccff; + --color-scale-blue-3: #54aeff; + --color-scale-blue-4: #218bff; + --color-scale-blue-5: #0969da; + --color-scale-blue-6: #0550ae; + --color-scale-blue-7: #033d8b; + --color-scale-blue-8: #0a3069; + --color-scale-blue-9: #002155; + --color-scale-green-0: #dafbe1; + --color-scale-green-1: #aceebb; + --color-scale-green-2: #6fdd8b; + --color-scale-green-3: #4ac26b; + --color-scale-green-4: #2da44e; + --color-scale-green-5: #1a7f37; + --color-scale-green-6: #116329; + --color-scale-green-7: #044f1e; + --color-scale-green-8: #003d16; + --color-scale-green-9: #002d11; + --color-scale-yellow-0: #fff8c5; + --color-scale-yellow-1: #fae17d; + --color-scale-yellow-2: #eac54f; + --color-scale-yellow-3: #d4a72c; + --color-scale-yellow-4: #bf8700; + --color-scale-yellow-5: #9a6700; + --color-scale-yellow-6: #7d4e00; + --color-scale-yellow-7: #633c01; + --color-scale-yellow-8: #4d2d00; + --color-scale-yellow-9: #3b2300; + --color-scale-orange-0: #fff1e5; + --color-scale-orange-1: #ffd8b5; + --color-scale-orange-2: #ffb77c; + --color-scale-orange-3: #fb8f44; + --color-scale-orange-4: #e16f24; + --color-scale-orange-5: #bc4c00; + --color-scale-orange-6: #953800; + --color-scale-orange-7: #762c00; + --color-scale-orange-8: #5c2200; + --color-scale-orange-9: #471700; + --color-scale-red-0: #ffebe9; + --color-scale-red-1: #ffcecb; + --color-scale-red-2: #ffaba8; + --color-scale-red-3: #ff8182; + --color-scale-red-4: #fa4549; + --color-scale-red-5: #cf222e; + --color-scale-red-6: #a40e26; + --color-scale-red-7: #82071e; + --color-scale-red-8: #660018; + --color-scale-red-9: #4c0014; + --color-scale-purple-0: #fbefff; + --color-scale-purple-1: #ecd8ff; + --color-scale-purple-2: #d8b9ff; + --color-scale-purple-3: #c297ff; + --color-scale-purple-4: #a475f9; + --color-scale-purple-5: #8250df; + --color-scale-purple-6: #6639ba; + --color-scale-purple-7: #512a97; + --color-scale-purple-8: #3e1f79; + --color-scale-purple-9: #2e1461; + --color-scale-pink-0: #ffeff7; + --color-scale-pink-1: #ffd3eb; + --color-scale-pink-2: #ffadda; + --color-scale-pink-3: #ff80c8; + --color-scale-pink-4: #e85aad; + --color-scale-pink-5: #bf3989; + --color-scale-pink-6: #99286e; + --color-scale-pink-7: #772057; + --color-scale-pink-8: #611347; + --color-scale-pink-9: #4d0336; + --color-scale-coral-0: #fff0eb; + --color-scale-coral-1: #ffd6cc; + --color-scale-coral-2: #ffb4a1; + --color-scale-coral-3: #fd8c73; + --color-scale-coral-4: #ec6547; + --color-scale-coral-5: #c4432b; + --color-scale-coral-6: #9e2f1c; + --color-scale-coral-7: #801f0f; + --color-scale-coral-8: #691105; + --color-scale-coral-9: #510901; + } + :root.dark-mode { + color-scheme: dark; + --color-canvas-default-transparent: rgba(13, 17, 23, 0); + --color-marketing-icon-primary: #79c0ff; + --color-marketing-icon-secondary: #1f6feb; + --color-diff-blob-addition-num-text: #c9d1d9; + --color-diff-blob-addition-fg: #c9d1d9; + --color-diff-blob-addition-num-bg: rgba(63, 185, 80, 0.3); + --color-diff-blob-addition-line-bg: rgba(46, 160, 67, 0.15); + --color-diff-blob-addition-word-bg: rgba(46, 160, 67, 0.4); + --color-diff-blob-deletion-num-text: #c9d1d9; + --color-diff-blob-deletion-fg: #c9d1d9; + --color-diff-blob-deletion-num-bg: rgba(248, 81, 73, 0.3); + --color-diff-blob-deletion-line-bg: rgba(248, 81, 73, 0.15); + --color-diff-blob-deletion-word-bg: rgba(248, 81, 73, 0.4); + --color-diff-blob-hunk-num-bg: rgba(56, 139, 253, 0.4); + --color-diff-blob-expander-icon: #8b949e; + --color-diff-blob-selected-line-highlight-mix-blend-mode: screen; + --color-diffstat-deletion-border: rgba(240, 246, 252, 0.1); + --color-diffstat-addition-border: rgba(240, 246, 252, 0.1); + --color-diffstat-addition-bg: #3fb950; + --color-search-keyword-hl: rgba(210, 153, 34, 0.4); + --color-prettylights-syntax-comment: #8b949e; + --color-prettylights-syntax-constant: #79c0ff; + --color-prettylights-syntax-entity: #d2a8ff; + --color-prettylights-syntax-storage-modifier-import: #c9d1d9; + --color-prettylights-syntax-entity-tag: #7ee787; + --color-prettylights-syntax-keyword: #ff7b72; + --color-prettylights-syntax-string: #a5d6ff; + --color-prettylights-syntax-variable: #ffa657; + --color-prettylights-syntax-brackethighlighter-unmatched: #f85149; + --color-prettylights-syntax-invalid-illegal-text: #f0f6fc; + --color-prettylights-syntax-invalid-illegal-bg: #8e1519; + --color-prettylights-syntax-carriage-return-text: #f0f6fc; + --color-prettylights-syntax-carriage-return-bg: #b62324; + --color-prettylights-syntax-string-regexp: #7ee787; + --color-prettylights-syntax-markup-list: #f2cc60; + --color-prettylights-syntax-markup-heading: #1f6feb; + --color-prettylights-syntax-markup-italic: #c9d1d9; + --color-prettylights-syntax-markup-bold: #c9d1d9; + --color-prettylights-syntax-markup-deleted-text: #ffdcd7; + --color-prettylights-syntax-markup-deleted-bg: #67060c; + --color-prettylights-syntax-markup-inserted-text: #aff5b4; + --color-prettylights-syntax-markup-inserted-bg: #033a16; + --color-prettylights-syntax-markup-changed-text: #ffdfb6; + --color-prettylights-syntax-markup-changed-bg: #5a1e02; + --color-prettylights-syntax-markup-ignored-text: #c9d1d9; + --color-prettylights-syntax-markup-ignored-bg: #1158c7; + --color-prettylights-syntax-meta-diff-range: #d2a8ff; + --color-prettylights-syntax-brackethighlighter-angle: #8b949e; + --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58; + --color-prettylights-syntax-constant-other-reference-link: #a5d6ff; + --color-codemirror-text: #c9d1d9; + --color-codemirror-bg: #0d1117; + --color-codemirror-gutters-bg: #0d1117; + --color-codemirror-guttermarker-text: #0d1117; + --color-codemirror-guttermarker-subtle-text: #484f58; + --color-codemirror-linenumber-text: #8b949e; + --color-codemirror-cursor: #c9d1d9; + --color-codemirror-selection-bg: rgba(56, 139, 253, 0.4); + --color-codemirror-activeline-bg: rgba(110, 118, 129, 0.1); + --color-codemirror-matchingbracket-text: #c9d1d9; + --color-codemirror-lines-bg: #0d1117; + --color-codemirror-syntax-comment: #8b949e; + --color-codemirror-syntax-constant: #79c0ff; + --color-codemirror-syntax-entity: #d2a8ff; + --color-codemirror-syntax-keyword: #ff7b72; + --color-codemirror-syntax-storage: #ff7b72; + --color-codemirror-syntax-string: #a5d6ff; + --color-codemirror-syntax-support: #79c0ff; + --color-codemirror-syntax-variable: #ffa657; + --color-checks-bg: #010409; + --color-checks-run-border-width: 1px; + --color-checks-container-border-width: 1px; + --color-checks-text-primary: #c9d1d9; + --color-checks-text-secondary: #8b949e; + --color-checks-text-link: #58a6ff; + --color-checks-btn-icon: #8b949e; + --color-checks-btn-hover-icon: #c9d1d9; + --color-checks-btn-hover-bg: rgba(110, 118, 129, 0.1); + --color-checks-input-text: #8b949e; + --color-checks-input-placeholder-text: #484f58; + --color-checks-input-focus-text: #c9d1d9; + --color-checks-input-bg: #161b22; + --color-checks-input-shadow: none; + --color-checks-donut-error: #f85149; + --color-checks-donut-pending: #d29922; + --color-checks-donut-success: #2ea043; + --color-checks-donut-neutral: #8b949e; + --color-checks-dropdown-text: #c9d1d9; + --color-checks-dropdown-bg: #161b22; + --color-checks-dropdown-border: #30363d; + --color-checks-dropdown-shadow: rgba(1, 4, 9, 0.3); + --color-checks-dropdown-hover-text: #c9d1d9; + --color-checks-dropdown-hover-bg: rgba(110, 118, 129, 0.1); + --color-checks-dropdown-btn-hover-text: #c9d1d9; + --color-checks-dropdown-btn-hover-bg: rgba(110, 118, 129, 0.1); + --color-checks-scrollbar-thumb-bg: rgba(110, 118, 129, 0.4); + --color-checks-header-label-text: #8b949e; + --color-checks-header-label-open-text: #c9d1d9; + --color-checks-header-border: #21262d; + --color-checks-header-icon: #8b949e; + --color-checks-line-text: #8b949e; + --color-checks-line-num-text: #484f58; + --color-checks-line-timestamp-text: #484f58; + --color-checks-line-hover-bg: rgba(110, 118, 129, 0.1); + --color-checks-line-selected-bg: rgba(56, 139, 253, 0.15); + --color-checks-line-selected-num-text: #58a6ff; + --color-checks-line-dt-fm-text: #f0f6fc; + --color-checks-line-dt-fm-bg: #9e6a03; + --color-checks-gate-bg: rgba(187, 128, 9, 0.15); + --color-checks-gate-text: #8b949e; + --color-checks-gate-waiting-text: #d29922; + --color-checks-step-header-open-bg: #161b22; + --color-checks-step-error-text: #f85149; + --color-checks-step-warning-text: #d29922; + --color-checks-logline-text: #8b949e; + --color-checks-logline-num-text: #484f58; + --color-checks-logline-debug-text: #a371f7; + --color-checks-logline-error-text: #8b949e; + --color-checks-logline-error-num-text: #484f58; + --color-checks-logline-error-bg: rgba(248, 81, 73, 0.15); + --color-checks-logline-warning-text: #8b949e; + --color-checks-logline-warning-num-text: #d29922; + --color-checks-logline-warning-bg: rgba(187, 128, 9, 0.15); + --color-checks-logline-command-text: #58a6ff; + --color-checks-logline-section-text: #3fb950; + --color-checks-ansi-black: #0d1117; + --color-checks-ansi-black-bright: #161b22; + --color-checks-ansi-white: #b1bac4; + --color-checks-ansi-white-bright: #b1bac4; + --color-checks-ansi-gray: #6e7681; + --color-checks-ansi-red: #ff7b72; + --color-checks-ansi-red-bright: #ffa198; + --color-checks-ansi-green: #3fb950; + --color-checks-ansi-green-bright: #56d364; + --color-checks-ansi-yellow: #d29922; + --color-checks-ansi-yellow-bright: #e3b341; + --color-checks-ansi-blue: #58a6ff; + --color-checks-ansi-blue-bright: #79c0ff; + --color-checks-ansi-magenta: #bc8cff; + --color-checks-ansi-magenta-bright: #d2a8ff; + --color-checks-ansi-cyan: #76e3ea; + --color-checks-ansi-cyan-bright: #b3f0ff; + --color-project-header-bg: #0d1117; + --color-project-sidebar-bg: #161b22; + --color-project-gradient-in: #161b22; + --color-project-gradient-out: rgba(22, 27, 34, 0); + --color-mktg-success: rgba(41, 147, 61, 1); + --color-mktg-info: rgba(42, 123, 243, 1); + --color-mktg-bg-shade-gradient-top: rgba(1, 4, 9, 0.065); + --color-mktg-bg-shade-gradient-bottom: rgba(1, 4, 9, 0); + --color-mktg-btn-bg-top: hsla(228, 82%, 66%, 1); + --color-mktg-btn-bg-bottom: #4969ed; + --color-mktg-btn-bg-overlay-top: hsla(228, 74%, 59%, 1); + --color-mktg-btn-bg-overlay-bottom: #3355e0; + --color-mktg-btn-text: #f0f6fc; + --color-mktg-btn-primary-bg-top: hsla(137, 56%, 46%, 1); + --color-mktg-btn-primary-bg-bottom: #2ea44f; + --color-mktg-btn-primary-bg-overlay-top: hsla(134, 60%, 38%, 1); + --color-mktg-btn-primary-bg-overlay-bottom: #22863a; + --color-mktg-btn-primary-text: #f0f6fc; + --color-mktg-btn-enterprise-bg-top: hsla(249, 100%, 72%, 1); + --color-mktg-btn-enterprise-bg-bottom: #6f57ff; + --color-mktg-btn-enterprise-bg-overlay-top: hsla(248, 65%, 63%, 1); + --color-mktg-btn-enterprise-bg-overlay-bottom: #614eda; + --color-mktg-btn-enterprise-text: #f0f6fc; + --color-mktg-btn-outline-text: #f0f6fc; + --color-mktg-btn-outline-border: rgba(240, 246, 252, 0.3); + --color-mktg-btn-outline-hover-text: #f0f6fc; + --color-mktg-btn-outline-hover-border: rgba(240, 246, 252, 0.5); + --color-mktg-btn-outline-focus-border: #f0f6fc; + --color-mktg-btn-outline-focus-border-inset: rgba(240, 246, 252, 0.5); + --color-mktg-btn-dark-text: #f0f6fc; + --color-mktg-btn-dark-border: rgba(240, 246, 252, 0.3); + --color-mktg-btn-dark-hover-text: #f0f6fc; + --color-mktg-btn-dark-hover-border: rgba(240, 246, 252, 0.5); + --color-mktg-btn-dark-focus-border: #f0f6fc; + --color-mktg-btn-dark-focus-border-inset: rgba(240, 246, 252, 0.5); + --color-avatar-bg: rgba(240, 246, 252, 0.1); + --color-avatar-border: rgba(240, 246, 252, 0.1); + --color-avatar-stack-fade: #30363d; + --color-avatar-stack-fade-more: #21262d; + --color-avatar-child-shadow: -2px -2px 0 #0d1117; + --color-topic-tag-border: rgba(0, 0, 0, 0); + --color-select-menu-backdrop-border: #484f58; + --color-select-menu-tap-highlight: rgba(48, 54, 61, 0.5); + --color-select-menu-tap-focus-bg: #0c2d6b; + --color-overlay-shadow: 0 0 0 1px #30363d, 0 16px 32px rgba(1, 4, 9, 0.85); + --color-header-text: rgba(240, 246, 252, 0.7); + --color-header-bg: #161b22; + --color-header-logo: #f0f6fc; + --color-header-search-bg: #0d1117; + --color-header-search-border: #30363d; + --color-sidenav-selected-bg: #21262d; + --color-menu-bg-active: #161b22; + --color-control-transparent-bg-hover: #656c7633; + --color-input-disabled-bg: rgba(110, 118, 129, 0); + --color-timeline-badge-bg: #21262d; + --color-ansi-black: #484f58; + --color-ansi-black-bright: #6e7681; + --color-ansi-white: #b1bac4; + --color-ansi-white-bright: #f0f6fc; + --color-ansi-gray: #6e7681; + --color-ansi-red: #ff7b72; + --color-ansi-red-bright: #ffa198; + --color-ansi-green: #3fb950; + --color-ansi-green-bright: #56d364; + --color-ansi-yellow: #d29922; + --color-ansi-yellow-bright: #e3b341; + --color-ansi-blue: #58a6ff; + --color-ansi-blue-bright: #79c0ff; + --color-ansi-magenta: #bc8cff; + --color-ansi-magenta-bright: #d2a8ff; + --color-ansi-cyan: #39c5cf; + --color-ansi-cyan-bright: #56d4dd; + --color-btn-text: #c9d1d9; + --color-btn-bg: #21262d; + --color-btn-border: rgba(240, 246, 252, 0.1); + --color-btn-shadow: 0 0 transparent; + --color-btn-inset-shadow: 0 0 transparent; + --color-btn-hover-bg: #30363d; + --color-btn-hover-border: #8b949e; + --color-btn-active-bg: hsla(212, 12%, 18%, 1); + --color-btn-active-border: #6e7681; + --color-btn-selected-bg: #161b22; + --color-btn-focus-bg: #21262d; + --color-btn-focus-border: #8b949e; + --color-btn-focus-shadow: 0 0 0 3px rgba(139, 148, 158, 0.3); + --color-btn-shadow-active: inset 0 0.15em 0.3em rgba(1, 4, 9, 0.15); + --color-btn-shadow-input-focus: 0 0 0 0.2em rgba(31, 111, 235, 0.3); + --color-btn-counter-bg: #30363d; + --color-btn-primary-text: #ffffff; + --color-btn-primary-bg: #238636; + --color-btn-primary-border: rgba(240, 246, 252, 0.1); + --color-btn-primary-shadow: 0 0 transparent; + --color-btn-primary-inset-shadow: 0 0 transparent; + --color-btn-primary-hover-bg: #2ea043; + --color-btn-primary-hover-border: rgba(240, 246, 252, 0.1); + --color-btn-primary-selected-bg: #238636; + --color-btn-primary-selected-shadow: 0 0 transparent; + --color-btn-primary-disabled-text: rgba(240, 246, 252, 0.5); + --color-btn-primary-disabled-bg: rgba(35, 134, 54, 0.6); + --color-btn-primary-disabled-border: rgba(240, 246, 252, 0.1); + --color-btn-primary-focus-bg: #238636; + --color-btn-primary-focus-border: rgba(240, 246, 252, 0.1); + --color-btn-primary-focus-shadow: 0 0 0 3px rgba(46, 164, 79, 0.4); + --color-btn-primary-icon: #f0f6fc; + --color-btn-primary-counter-bg: rgba(240, 246, 252, 0.2); + --color-btn-outline-text: #58a6ff; + --color-btn-outline-hover-text: #58a6ff; + --color-btn-outline-hover-bg: #30363d; + --color-btn-outline-hover-border: rgba(240, 246, 252, 0.1); + --color-btn-outline-hover-shadow: 0 1px 0 rgba(1, 4, 9, 0.1); + --color-btn-outline-hover-inset-shadow: inset 0 1px 0 rgba(240, 246, 252, 0.03); + --color-btn-outline-hover-counter-bg: rgba(240, 246, 252, 0.2); + --color-btn-outline-selected-text: #f0f6fc; + --color-btn-outline-selected-bg: #0d419d; + --color-btn-outline-selected-border: rgba(240, 246, 252, 0.1); + --color-btn-outline-selected-shadow: 0 0 transparent; + --color-btn-outline-disabled-text: rgba(88, 166, 255, 0.5); + --color-btn-outline-disabled-bg: #0d1117; + --color-btn-outline-disabled-counter-bg: rgba(31, 111, 235, 0.05); + --color-btn-outline-focus-border: rgba(240, 246, 252, 0.1); + --color-btn-outline-focus-shadow: 0 0 0 3px rgba(17, 88, 199, 0.4); + --color-btn-outline-counter-bg: rgba(31, 111, 235, 0.1); + --color-btn-danger-text: #f85149; + --color-btn-danger-hover-text: #f0f6fc; + --color-btn-danger-hover-bg: #da3633; + --color-btn-danger-hover-border: #f85149; + --color-btn-danger-hover-shadow: 0 0 transparent; + --color-btn-danger-hover-inset-shadow: 0 0 transparent; + --color-btn-danger-hover-icon: #f0f6fc; + --color-btn-danger-hover-counter-bg: rgba(255, 255, 255, 0.2); + --color-btn-danger-selected-text: #ffffff; + --color-btn-danger-selected-bg: #b62324; + --color-btn-danger-selected-border: #ff7b72; + --color-btn-danger-selected-shadow: 0 0 transparent; + --color-btn-danger-disabled-text: rgba(248, 81, 73, 0.5); + --color-btn-danger-disabled-bg: #0d1117; + --color-btn-danger-disabled-counter-bg: rgba(218, 54, 51, 0.05); + --color-btn-danger-focus-border: #f85149; + --color-btn-danger-focus-shadow: 0 0 0 3px rgba(248, 81, 73, 0.4); + --color-btn-danger-counter-bg: rgba(218, 54, 51, 0.1); + --color-btn-danger-icon: #f85149; + --color-underlinenav-icon: #484f58; + --color-underlinenav-border-hover: rgba(110, 118, 129, 0.4); + --color-fg-default: #c9d1d9; + --color-fg-muted: #8b949e; + --color-fg-subtle: #484f58; + --color-fg-on-emphasis: #f0f6fc; + --color-canvas-default: #0d1117; + --color-canvas-overlay: #161b22; + --color-canvas-inset: #010409; + --color-canvas-subtle: #161b22; + --color-border-default: #30363d; + --color-border-muted: #21262d; + --color-border-subtle: rgba(240, 246, 252, 0.1); + --color-shadow-small: 0 0 transparent; + --color-shadow-medium: 0 3px 6px #010409; + --color-shadow-large: 0 8px 24px #010409; + --color-shadow-extra-large: 0 12px 48px #010409; + --color-neutral-emphasis-plus: #6e7681; + --color-neutral-emphasis: #6e7681; + --color-neutral-muted: rgba(110, 118, 129, 0.4); + --color-neutral-subtle: rgba(110, 118, 129, 0.1); + --color-accent-fg: #58a6ff; + --color-accent-emphasis: #1f6feb; + --color-accent-muted: rgba(56, 139, 253, 0.4); + --color-accent-subtle: rgba(56, 139, 253, 0.15); + --color-success-fg: #3fb950; + --color-success-emphasis: #238636; + --color-success-muted: rgba(46, 160, 67, 0.4); + --color-success-subtle: rgba(46, 160, 67, 0.15); + --color-attention-fg: #d29922; + --color-attention-emphasis: #9e6a03; + --color-attention-muted: rgba(187, 128, 9, 0.4); + --color-attention-subtle: rgba(187, 128, 9, 0.15); + --color-severe-fg: #db6d28; + --color-severe-emphasis: #bd561d; + --color-severe-muted: rgba(219, 109, 40, 0.4); + --color-severe-subtle: rgba(219, 109, 40, 0.15); + --color-danger-fg: #f85149; + --color-danger-emphasis: #da3633; + --color-danger-muted: rgba(248, 81, 73, 0.4); + --color-danger-subtle: rgba(248, 81, 73, 0.15); + --color-done-fg: #a371f7; + --color-done-emphasis: #8957e5; + --color-done-muted: rgba(163, 113, 247, 0.4); + --color-done-subtle: rgba(163, 113, 247, 0.15); + --color-sponsors-fg: #db61a2; + --color-sponsors-emphasis: #bf4b8a; + --color-sponsors-muted: rgba(219, 97, 162, 0.4); + --color-sponsors-subtle: rgba(219, 97, 162, 0.15); + --color-primer-canvas-backdrop: rgba(1, 4, 9, 0.8); + --color-primer-canvas-sticky: rgba(13, 17, 23, 0.95); + --color-primer-border-active: #f78166; + --color-primer-border-contrast: rgba(240, 246, 252, 0.2); + --color-primer-shadow-highlight: 0 0 transparent; + --color-primer-shadow-inset: 0 0 transparent; + --color-primer-shadow-focus: 0 0 0 3px #0c2d6b; + --color-scale-black: #010409; + --color-scale-white: #f0f6fc; + --color-scale-gray-0: #f0f6fc; + --color-scale-gray-1: #c9d1d9; + --color-scale-gray-2: #b1bac4; + --color-scale-gray-3: #8b949e; + --color-scale-gray-4: #6e7681; + --color-scale-gray-5: #484f58; + --color-scale-gray-6: #30363d; + --color-scale-gray-7: #21262d; + --color-scale-gray-8: #161b22; + --color-scale-gray-9: #0d1117; + --color-scale-blue-0: #cae8ff; + --color-scale-blue-1: #a5d6ff; + --color-scale-blue-2: #79c0ff; + --color-scale-blue-3: #58a6ff; + --color-scale-blue-4: #388bfd; + --color-scale-blue-5: #1f6feb; + --color-scale-blue-6: #1158c7; + --color-scale-blue-7: #0d419d; + --color-scale-blue-8: #0c2d6b; + --color-scale-blue-9: #051d4d; + --color-scale-green-0: #aff5b4; + --color-scale-green-1: #7ee787; + --color-scale-green-2: #56d364; + --color-scale-green-3: #3fb950; + --color-scale-green-4: #2ea043; + --color-scale-green-5: #238636; + --color-scale-green-6: #196c2e; + --color-scale-green-7: #0f5323; + --color-scale-green-8: #033a16; + --color-scale-green-9: #04260f; + --color-scale-yellow-0: #f8e3a1; + --color-scale-yellow-1: #f2cc60; + --color-scale-yellow-2: #e3b341; + --color-scale-yellow-3: #d29922; + --color-scale-yellow-4: #bb8009; + --color-scale-yellow-5: #9e6a03; + --color-scale-yellow-6: #845306; + --color-scale-yellow-7: #693e00; + --color-scale-yellow-8: #4b2900; + --color-scale-yellow-9: #341a00; + --color-scale-orange-0: #ffdfb6; + --color-scale-orange-1: #ffc680; + --color-scale-orange-2: #ffa657; + --color-scale-orange-3: #f0883e; + --color-scale-orange-4: #db6d28; + --color-scale-orange-5: #bd561d; + --color-scale-orange-6: #9b4215; + --color-scale-orange-7: #762d0a; + --color-scale-orange-8: #5a1e02; + --color-scale-orange-9: #3d1300; + --color-scale-red-0: #ffdcd7; + --color-scale-red-1: #ffc1ba; + --color-scale-red-2: #ffa198; + --color-scale-red-3: #ff7b72; + --color-scale-red-4: #f85149; + --color-scale-red-5: #da3633; + --color-scale-red-6: #b62324; + --color-scale-red-7: #8e1519; + --color-scale-red-8: #67060c; + --color-scale-red-9: #490202; + --color-scale-purple-0: #eddeff; + --color-scale-purple-1: #e2c5ff; + --color-scale-purple-2: #d2a8ff; + --color-scale-purple-3: #bc8cff; + --color-scale-purple-4: #a371f7; + --color-scale-purple-5: #8957e5; + --color-scale-purple-6: #6e40c9; + --color-scale-purple-7: #553098; + --color-scale-purple-8: #3c1e70; + --color-scale-purple-9: #271052; + --color-scale-pink-0: #ffdaec; + --color-scale-pink-1: #ffbedd; + --color-scale-pink-2: #ff9bce; + --color-scale-pink-3: #f778ba; + --color-scale-pink-4: #db61a2; + --color-scale-pink-5: #bf4b8a; + --color-scale-pink-6: #9e3670; + --color-scale-pink-7: #7d2457; + --color-scale-pink-8: #5e103e; + --color-scale-pink-9: #42062a; + --color-scale-coral-0: #ffddd2; + --color-scale-coral-1: #ffc2b2; + --color-scale-coral-2: #ffa28b; + --color-scale-coral-3: #f78166; + --color-scale-coral-4: #ea6045; + --color-scale-coral-5: #cf462d; + --color-scale-coral-6: #ac3220; + --color-scale-coral-7: #872012; + --color-scale-coral-8: #640d04; + --color-scale-coral-9: #460701; + } + :root { + --box-shadow: + rgba(0, 0, 0, 0.133) 0px 1.6px 3.6px 0px, rgba(0, 0, 0, 0.11) 0px 0.3px 0.9px 0px; + --box-shadow-thick: + rgb(0 0 0 / 10%) 0px 1.8px 1.9px, rgb(0 0 0 / 15%) 0px 6.1px 6.3px, + rgb(0 0 0 / 10%) 0px -2px 4px, rgb(0 0 0 / 15%) 0px -6.1px 12px, + rgb(0 0 0 / 25%) 0px 6px 12px; + } + * { + box-sizing: border-box; + min-width: 0; + min-height: 0; + } + svg { + fill: currentColor; + } + .vbox { + display: flex; + flex-direction: column; + flex: auto; + position: relative; + } + .hbox { + display: flex; + flex: auto; + position: relative; + } + .hidden { + visibility: hidden; + } + .d-flex { + display: flex !important; + } + .d-inline { + display: inline !important; + } + .m-1 { + margin: 4px; + } + .m-2 { + margin: 8px; + } + .m-3 { + margin: 16px; + } + .m-4 { + margin: 24px; + } + .m-5 { + margin: 32px; + } + .mx-1 { + margin: 0 4px; + } + .mx-2 { + margin: 0 8px; + } + .mx-3 { + margin: 0 16px; + } + .mx-4 { + margin: 0 24px; + } + .mx-5 { + margin: 0 32px; + } + .my-1 { + margin: 4px 0; + } + .my-2 { + margin: 8px 0; + } + .my-3 { + margin: 16px 0; + } + .my-4 { + margin: 24px 0; + } + .my-5 { + margin: 32px 0; + } + .mt-1 { + margin-top: 4px; + } + .mt-2 { + margin-top: 8px; + } + .mt-3 { + margin-top: 16px; + } + .mt-4 { + margin-top: 24px; + } + .mt-5 { + margin-top: 32px; + } + .mr-1 { + margin-right: 4px; + } + .mr-2 { + margin-right: 8px; + } + .mr-3 { + margin-right: 16px; + } + .mr-4 { + margin-right: 24px; + } + .mr-5 { + margin-right: 32px; + } + .mb-1 { + margin-bottom: 4px; + } + .mb-2 { + margin-bottom: 8px; + } + .mb-3 { + margin-bottom: 16px; + } + .mb-4 { + margin-bottom: 24px; + } + .mb-5 { + margin-bottom: 32px; + } + .ml-1 { + margin-left: 4px; + } + .ml-2 { + margin-left: 8px; + } + .ml-3 { + margin-left: 16px; + } + .ml-4 { + margin-left: 24px; + } + .ml-5 { + margin-left: 32px; + } + .p-1 { + padding: 4px; + } + .p-2 { + padding: 8px; + } + .p-3 { + padding: 16px; + } + .p-4 { + padding: 24px; + } + .p-5 { + padding: 32px; + } + .px-1 { + padding: 0 4px; + } + .px-2 { + padding: 0 8px; + } + .px-3 { + padding: 0 16px; + } + .px-4 { + padding: 0 24px; + } + .px-5 { + padding: 0 32px; + } + .py-1 { + padding: 4px 0; + } + .py-2 { + padding: 8px 0; + } + .py-3 { + padding: 16px 0; + } + .py-4 { + padding: 24px 0; + } + .py-5 { + padding: 32px 0; + } + .pt-1 { + padding-top: 4px; + } + .pt-2 { + padding-top: 8px; + } + .pt-3 { + padding-top: 16px; + } + .pt-4 { + padding-top: 24px; + } + .pt-5 { + padding-top: 32px; + } + .pr-1 { + padding-right: 4px; + } + .pr-2 { + padding-right: 8px; + } + .pr-3 { + padding-right: 16px; + } + .pr-4 { + padding-right: 24px; + } + .pr-5 { + padding-right: 32px; + } + .pb-1 { + padding-bottom: 4px; + } + .pb-2 { + padding-bottom: 8px; + } + .pb-3 { + padding-bottom: 16px; + } + .pb-4 { + padding-bottom: 24px; + } + .pb-5 { + padding-bottom: 32px; + } + .pl-1 { + padding-left: 4px; + } + .pl-2 { + padding-left: 8px; + } + .pl-3 { + padding-left: 16px; + } + .pl-4 { + padding-left: 24px; + } + .pl-5 { + padding-left: 32px; + } + .no-wrap { + white-space: nowrap !important; + } + .float-left { + float: left !important; + } + article, + aside, + details, + figcaption, + figure, + footer, + header, + main, + menu, + nav, + section { + display: block; + } + .form-control, + .form-select { + padding: 5px 12px; + font-size: 14px; + line-height: 20px; + color: var(--color-fg-default); + vertical-align: middle; + background-color: var(--color-canvas-default); + background-repeat: no-repeat; + background-position: right 8px center; + border: 1px solid var(--color-border-default); + border-radius: 6px; + outline: none; + box-shadow: var(--color-primer-shadow-inset); + } + .input-contrast { + background-color: var(--color-canvas-inset); + } + .subnav-search { + position: relative; + flex: auto; + display: flex; + } + .subnav-search-input { + flex: auto; + padding-left: 32px; + color: var(--color-fg-muted); + } + .subnav-search-icon { + position: absolute; + top: 9px; + left: 8px; + display: block; + color: var(--color-fg-muted); + text-align: center; + pointer-events: none; + } + .subnav-search-context + .subnav-search { + margin-left: -1px; + } + .subnav-item { + flex: none; + position: relative; + float: left; + padding: 5px 8px; + font-weight: 500; + line-height: 20px; + color: var(--color-fg-default); + border: 1px solid var(--color-border-default); + -webkit-user-select: none; + user-select: none; + } + .subnav-item:hover { + background-color: var(--color-canvas-subtle); + } + .subnav-item[aria-selected='true'] { + background: var(--color-control-transparent-bg-hover); + } + .subnav-item:first-child { + border-top-left-radius: 6px; + border-bottom-left-radius: 6px; + } + .subnav-item:last-child { + border-top-right-radius: 6px; + border-bottom-right-radius: 6px; + } + .subnav-item + .subnav-item { + margin-left: -1px; + } + .subnav-item .octicon, + .subnav-item-label { + margin-right: 8px; + } + .counter { + display: inline-block; + min-width: 20px; + padding: 0 6px; + font-size: 12px; + font-weight: 500; + line-height: 18px; + color: var(--color-fg-default); + text-align: center; + background-color: var(--color-neutral-muted); + border: 1px solid transparent; + border-radius: 2em; + } + .color-icon-success { + color: var(--color-success-fg) !important; + } + .color-text-danger { + color: var(--color-danger-fg) !important; + } + .color-text-warning { + color: var(--color-checks-step-warning-text) !important; + } + .color-fg-muted { + color: var(--color-fg-muted) !important; + } + .octicon { + display: inline-block; + overflow: visible !important; + vertical-align: text-bottom; + fill: currentColor; + margin-right: 7px; + flex: none; + } + .button { + flex: none; + height: 24px; + border: 1px solid var(--color-btn-border); + outline: none; + color: var(--color-btn-text); + background: var(--color-btn-bg); + padding: 4px; + cursor: pointer; + display: inline-flex; + align-items: center; + justify-content: center; + border-radius: 4px; + } + .button:not(:disabled):hover { + border-color: var(--color-btn-hover-border); + background-color: var(--color-btn-hover-bg); + } + input[type='checkbox'] { + outline: var(--color-focus-border); + height: 24px; + } + dialog { + background-color: var(--color-canvas-subtle); + border: 1px solid var(--color-border-default); + border-radius: 6px; + padding: 6px; + } + .subnav-item .octicon.octicon-settings { + margin-right: 0; + } + .subnav-item .octicon.octicon-clock { + margin-right: 0; + color: var(--color-fg-default) !important; + } + @media only screen and (max-width: 600px) { + .subnav-item, + .form-control { + border-radius: 0 !important; + } + .subnav-item { + border: none; + } + .subnav-search-input { + border-left: 0; + border-right: 0; + } + } + .header-view-status-container { + float: right; + } + .header-view { + padding: 12px 8px 0; + } + .header-view div { + flex-shrink: 0; + flex-wrap: wrap; + } + .header-superheader { + color: var(--color-fg-muted); + } + .header-title { + flex: none; + font-weight: 400; + font-size: 32px; + line-height: 1.25; + } + .header-setting-theme { + display: grid; + margin-left: 22px; + } + @media only screen and (max-width: 600px) { + .header-view { + padding: 0; + } + .header-view div { + flex-shrink: 1; + } + .header-view-status-container { + float: none; + margin: 0 0 10px !important; + overflow: hidden; + } + .header-view-status-container .subnav-search-input { + border-left: none; + border-right: none; + } + .header-title, + .header-superheader { + margin: 0 8px; + } + } + .copy-icon { + flex: none; + height: 24px; + width: 24px; + border: none; + outline: none; + color: var(--color-fg-muted); + background: transparent; + padding: 4px; + cursor: pointer; + display: inline-flex; + align-items: center; + justify-content: center; + border-radius: 4px; + } + .copy-icon svg { + margin: 0; + } + .copy-icon:not(:disabled):hover { + background-color: var(--color-border-default); + } + .copy-button-container { + visibility: hidden; + display: inline-flex; + margin-left: 8px; + vertical-align: bottom; + } + .copy-value-container:hover .copy-button-container { + visibility: visible; + } + .attachment-body { + white-space: pre-wrap; + background-color: var(--color-canvas-subtle); + margin-left: 24px; + line-height: normal; + padding: 8px; + font-family: monospace; + position: relative; + } + .attachment-body .copy-icon { + position: absolute; + right: 5px; + top: 5px; + } + .attachment-flash { + animation: attachmentflash-bg 2s; + } + @keyframes attachmentflash-bg { + 0% { + background: var(--color-attention-subtle); + } + to { + background: transparent; + } + } + .link-badge { + flex: none; + background-color: transparent; + border-color: transparent; + -webkit-user-select: none; + user-select: none; + } + .link-badge-dim span { + color: var(--color-fg-muted); + } + .link-badge:hover { + cursor: pointer; + } + .link-badge svg { + fill: var(--color-fg-default); + } + .link-badge-dim svg { + fill: var(--color-fg-muted); + } + .link-badge-dim:hover svg { + fill: var(--color-fg-muted); + } + .fullwidth-link { + width: 100%; + text-align: left; + } + .fullwidth-link:hover { + background-color: var(--color-canvas-subtle); + } + .trace-link { + margin-right: 3px; + } + .trace-link-separator { + color: var(--color-fg-muted); + -webkit-user-select: none; + user-select: none; + } + .expandable-summary { + cursor: pointer; + list-style: none; + white-space: nowrap; + padding-left: 4px; + } + .label { + display: inline-block; + padding: 0 8px; + font-size: 12px; + font-weight: 500; + line-height: 18px; + border: 1px solid transparent; + border-radius: 2em; + background-color: var(--color-scale-gray-4); + color: #fff; + margin: 0 10px; + flex: none; + font-weight: 600; + cursor: pointer; + } + .label-anchor { + text-decoration: none; + color: var(--color-fg-default); + } + :root.light-mode .label-color-0 { + background-color: var(--color-scale-blue-0); + color: var(--color-scale-blue-6); + border: 1px solid var(--color-scale-blue-4); + } + :root.light-mode .label-color-1 { + background-color: var(--color-scale-yellow-0); + color: var(--color-scale-yellow-6); + border: 1px solid var(--color-scale-yellow-4); + } + :root.light-mode .label-color-2 { + background-color: var(--color-scale-purple-0); + color: var(--color-scale-purple-6); + border: 1px solid var(--color-scale-purple-4); + } + :root.light-mode .label-color-3 { + background-color: var(--color-scale-pink-0); + color: var(--color-scale-pink-6); + border: 1px solid var(--color-scale-pink-4); + } + :root.light-mode .label-color-4 { + background-color: var(--color-scale-coral-0); + color: var(--color-scale-coral-6); + border: 1px solid var(--color-scale-coral-4); + } + :root.light-mode .label-color-5 { + background-color: var(--color-scale-orange-0); + color: var(--color-scale-orange-6); + border: 1px solid var(--color-scale-orange-4); + } + :root.dark-mode .label-color-0 { + background-color: var(--color-scale-blue-9); + color: var(--color-scale-blue-2); + border: 1px solid var(--color-scale-blue-4); + } + :root.dark-mode .label-color-1 { + background-color: var(--color-scale-yellow-9); + color: var(--color-scale-yellow-2); + border: 1px solid var(--color-scale-yellow-4); + } + :root.dark-mode .label-color-2 { + background-color: var(--color-scale-purple-9); + color: var(--color-scale-purple-2); + border: 1px solid var(--color-scale-purple-4); + } + :root.dark-mode .label-color-3 { + background-color: var(--color-scale-pink-9); + color: var(--color-scale-pink-2); + border: 1px solid var(--color-scale-pink-4); + } + :root.dark-mode .label-color-4 { + background-color: var(--color-scale-coral-9); + color: var(--color-scale-coral-2); + border: 1px solid var(--color-scale-coral-4); + } + :root.dark-mode .label-color-5 { + background-color: var(--color-scale-orange-9); + color: var(--color-scale-orange-2); + border: 1px solid var(--color-scale-orange-4); + } + .label-row .label { + margin: 0; + } + .label-row .label:not(:first-child) { + margin-left: 6px; + } + html, + body { + width: 100%; + height: 100%; + padding: 0; + margin: 0; + overscroll-behavior-x: none; + } + body { + overflow: auto; + max-width: 1024px; + margin: 0 auto; + width: 100%; + } + .test-file-test:not(:first-child) { + border-top: 1px solid var(--color-border-default); + } + @media only screen and (max-width: 600px) { + .htmlreport { + padding: 0 !important; + } + } + .tabbed-pane { + display: flex; + flex: auto; + overflow: hidden; + } + .tabbed-pane-tab-strip { + display: flex; + align-items: center; + padding-right: 10px; + flex: none; + width: 100%; + z-index: 2; + font-size: 14px; + line-height: 32px; + color: var(--color-fg-default); + height: 48px; + min-width: 70px; + box-shadow: inset 0 -1px 0 var(--color-border-muted) !important; + } + .tabbed-pane-tab-strip:focus { + outline: none; + } + .tabbed-pane-tab-element { + padding: 4px 8px 0; + margin-right: 4px; + cursor: pointer; + display: flex; + flex: none; + align-items: center; + justify-content: center; + -webkit-user-select: none; + user-select: none; + border-bottom: 2px solid transparent; + outline: none; + height: 100%; + } + .tabbed-pane-tab-label { + max-width: 250px; + white-space: pre; + overflow: hidden; + text-overflow: ellipsis; + display: inline-block; + height: 30px; + padding: 0 8px; + border-radius: 6px; + } + .tabbed-pane-tab-label:hover { + background-color: var(--color-control-transparent-bg-hover); + } + .tabbed-pane-tab-element.selected { + border-bottom-color: #666; + -webkit-text-stroke: 0.5px currentColor; + } + .chip-header { + border: 1px solid var(--color-border-default); + border-top-left-radius: 6px; + border-top-right-radius: 6px; + background-color: var(--color-canvas-subtle); + padding: 0 8px; + border-bottom: none; + margin-top: 12px; + font-weight: 600; + line-height: 38px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + -webkit-user-select: none; + user-select: none; + } + .chip-header-allow-selection { + -webkit-user-select: text; + user-select: text; + } + .chip-header.expanded-false { + border: 1px solid var(--color-border-default); + border-radius: 6px; + } + .chip-header.expanded-false, + .chip-header.expanded-true { + cursor: pointer; + } + .chip-body { + border: 1px solid var(--color-border-default); + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + padding: 16px; + margin-bottom: 12px; + overflow: hidden; + } + .chip-body-no-insets { + padding: 0; + } + .chip-footer { + border-top: 1px solid var(--color-border-default); + } + @media only screen and (max-width: 600px) { + .chip-header { + border-radius: 0; + border-right: none; + border-left: none; + } + .chip-body { + border-radius: 0; + border-right: none; + border-left: none; + padding: 8px; + } + .chip-body-no-insets { + padding: 0; + } + } + .test-case-column { + border-radius: 6px; + margin-bottom: 24px; + } + .test-case-column .tab-element.selected { + font-weight: 600; + border-bottom-color: var(--color-primer-border-active); + } + .test-case-column .tab-element { + border: none; + color: var(--color-fg-default); + border-bottom: 2px solid transparent; + } + .test-case-column .tab-element:hover { + color: var(--color-fg-default); + } + .test-case-location, + .test-case-duration { + flex: none; + align-items: center; + padding: 0 8px 8px; + } + .selected .test-case-run-duration { + -webkit-text-stroke: 0; + } + .test-case-run-duration { + color: var(--color-fg-muted); + padding-left: 8px; + } + .header-view .test-case-path { + flex: none; + flex-shrink: 1; + align-items: center; + padding-right: 8px; + } + .test-case-annotation { + flex: none; + align-items: center; + padding: 0 8px; + line-height: 24px; + white-space: pre-wrap; + } + @media only screen and (max-width: 600px) { + .test-case-column { + border-radius: 0 !important; + margin: 0 !important; + } + } + .tree-item { + display: flex; + flex-direction: column; + overflow: hidden; + min-width: 0; + line-height: 38px; + } + .tree-item-title { + cursor: pointer; + overflow: hidden; + text-overflow: ellipsis; + min-width: 0; + display: flex; + align-items: center; + } + .tree-item-body { + min-height: 18px; + } + .yellow-flash { + animation: yellowflash-bg 2s; + } + @keyframes yellowflash-bg { + 0% { + background: var(--color-attention-subtle); + } + to { + background: transparent; + } + } + :root { + --vscode-font-family: system-ui, 'Ubuntu', 'Droid Sans', sans-serif; + --vscode-font-weight: normal; + --vscode-font-size: 13px; + --vscode-editor-font-family: 'Droid Sans Mono', 'monospace', monospace; + --vscode-editor-font-weight: normal; + --vscode-editor-font-size: 14px; + --vscode-foreground: #616161; + --vscode-disabledForeground: rgba(97, 97, 97, 0.5); + --vscode-errorForeground: #a1260d; + --vscode-descriptionForeground: #717171; + --vscode-icon-foreground: #424242; + --vscode-focusBorder: #0090f1; + --vscode-textSeparator-foreground: rgba(0, 0, 0, 0.18); + --vscode-textLink-foreground: #006ab1; + --vscode-textLink-activeForeground: #006ab1; + --vscode-textPreformat-foreground: #a31515; + --vscode-textBlockQuote-background: rgba(127, 127, 127, 0.1); + --vscode-textBlockQuote-border: rgba(0, 122, 204, 0.5); + --vscode-textCodeBlock-background: rgba(220, 220, 220, 0.4); + --vscode-widget-shadow: rgba(0, 0, 0, 0.16); + --vscode-input-background: #ffffff; + --vscode-input-foreground: #616161; + --vscode-inputOption-activeBorder: #007acc; + --vscode-inputOption-hoverBackground: rgba(184, 184, 184, 0.31); + --vscode-inputOption-activeBackground: rgba(0, 144, 241, 0.2); + --vscode-inputOption-activeForeground: #000000; + --vscode-input-placeholderForeground: #767676; + --vscode-inputValidation-infoBackground: #d6ecf2; + --vscode-inputValidation-infoBorder: #007acc; + --vscode-inputValidation-warningBackground: #f6f5d2; + --vscode-inputValidation-warningBorder: #b89500; + --vscode-inputValidation-errorBackground: #f2dede; + --vscode-inputValidation-errorBorder: #be1100; + --vscode-dropdown-background: #ffffff; + --vscode-dropdown-border: #cecece; + --vscode-checkbox-background: #ffffff; + --vscode-checkbox-border: #cecece; + --vscode-button-foreground: #ffffff; + --vscode-button-separator: rgba(255, 255, 255, 0.4); + --vscode-button-background: #007acc; + --vscode-button-hoverBackground: #0062a3; + --vscode-button-secondaryForeground: #ffffff; + --vscode-button-secondaryBackground: #5f6a79; + --vscode-button-secondaryHoverBackground: #4c5561; + --vscode-badge-background: #c4c4c4; + --vscode-badge-foreground: #333333; + --vscode-scrollbar-shadow: #dddddd; + --vscode-scrollbarSlider-background: rgba(100, 100, 100, 0.4); + --vscode-scrollbarSlider-hoverBackground: rgba(100, 100, 100, 0.7); + --vscode-scrollbarSlider-activeBackground: rgba(0, 0, 0, 0.6); + --vscode-progressBar-background: #0e70c0; + --vscode-editorError-foreground: #e51400; + --vscode-editorWarning-foreground: #bf8803; + --vscode-editorInfo-foreground: #1a85ff; + --vscode-editorHint-foreground: #6c6c6c; + --vscode-sash-hoverBorder: #0090f1; + --vscode-editor-background: #ffffff; + --vscode-editor-foreground: #000000; + --vscode-editorStickyScroll-background: #ffffff; + --vscode-editorStickyScrollHover-background: #f0f0f0; + --vscode-editorWidget-background: #f3f3f3; + --vscode-editorWidget-foreground: #616161; + --vscode-editorWidget-border: #c8c8c8; + --vscode-quickInput-background: #f3f3f3; + --vscode-quickInput-foreground: #616161; + --vscode-quickInputTitle-background: rgba(0, 0, 0, 0.06); + --vscode-pickerGroup-foreground: #0066bf; + --vscode-pickerGroup-border: #cccedb; + --vscode-keybindingLabel-background: rgba(221, 221, 221, 0.4); + --vscode-keybindingLabel-foreground: #555555; + --vscode-keybindingLabel-border: rgba(204, 204, 204, 0.4); + --vscode-keybindingLabel-bottomBorder: rgba(187, 187, 187, 0.4); + --vscode-editor-selectionBackground: #add6ff; + --vscode-editor-inactiveSelectionBackground: #e5ebf1; + --vscode-editor-selectionHighlightBackground: rgba(173, 214, 255, 0.5); + --vscode-editor-findMatchBackground: #a8ac94; + --vscode-editor-findMatchHighlightBackground: rgba(234, 92, 0, 0.33); + --vscode-editor-findRangeHighlightBackground: rgba(180, 180, 180, 0.3); + --vscode-searchEditor-findMatchBackground: rgba(234, 92, 0, 0.22); + --vscode-editor-hoverHighlightBackground: rgba(173, 214, 255, 0.15); + --vscode-editorHoverWidget-background: #f3f3f3; + --vscode-editorHoverWidget-foreground: #616161; + --vscode-editorHoverWidget-border: #c8c8c8; + --vscode-editorHoverWidget-statusBarBackground: #e7e7e7; + --vscode-editorLink-activeForeground: #0000ff; + --vscode-editorInlayHint-foreground: rgba(51, 51, 51, 0.8); + --vscode-editorInlayHint-background: rgba(196, 196, 196, 0.3); + --vscode-editorInlayHint-typeForeground: rgba(51, 51, 51, 0.8); + --vscode-editorInlayHint-typeBackground: rgba(196, 196, 196, 0.3); + --vscode-editorInlayHint-parameterForeground: rgba(51, 51, 51, 0.8); + --vscode-editorInlayHint-parameterBackground: rgba(196, 196, 196, 0.3); + --vscode-editorLightBulb-foreground: #ddb100; + --vscode-editorLightBulbAutoFix-foreground: #007acc; + --vscode-diffEditor-insertedTextBackground: rgba(156, 204, 44, 0.4); + --vscode-diffEditor-removedTextBackground: rgba(255, 0, 0, 0.3); + --vscode-diffEditor-insertedLineBackground: rgba(155, 185, 85, 0.2); + --vscode-diffEditor-removedLineBackground: rgba(255, 0, 0, 0.2); + --vscode-diffEditor-diagonalFill: rgba(34, 34, 34, 0.2); + --vscode-list-focusOutline: #0090f1; + --vscode-list-focusAndSelectionOutline: #90c2f9; + --vscode-list-activeSelectionBackground: #0060c0; + --vscode-list-activeSelectionForeground: #ffffff; + --vscode-list-activeSelectionIconForeground: #ffffff; + --vscode-list-inactiveSelectionBackground: #e4e6f1; + --vscode-list-hoverBackground: #e8e8e8; + --vscode-list-dropBackground: #d6ebff; + --vscode-list-highlightForeground: #0066bf; + --vscode-list-focusHighlightForeground: #bbe7ff; + --vscode-list-invalidItemForeground: #b89500; + --vscode-list-errorForeground: #b01011; + --vscode-list-warningForeground: #855f00; + --vscode-listFilterWidget-background: #f3f3f3; + --vscode-listFilterWidget-outline: rgba(0, 0, 0, 0); + --vscode-listFilterWidget-noMatchesOutline: #be1100; + --vscode-listFilterWidget-shadow: rgba(0, 0, 0, 0.16); + --vscode-list-filterMatchBackground: rgba(234, 92, 0, 0.33); + --vscode-tree-indentGuidesStroke: #a9a9a9; + --vscode-tree-tableColumnsBorder: rgba(97, 97, 97, 0.13); + --vscode-tree-tableOddRowsBackground: rgba(97, 97, 97, 0.04); + --vscode-list-deemphasizedForeground: #8e8e90; + --vscode-quickInputList-focusForeground: #ffffff; + --vscode-quickInputList-focusIconForeground: #ffffff; + --vscode-quickInputList-focusBackground: #0060c0; + --vscode-menu-foreground: #616161; + --vscode-menu-background: #ffffff; + --vscode-menu-selectionForeground: #ffffff; + --vscode-menu-selectionBackground: #0060c0; + --vscode-menu-separatorBackground: #d4d4d4; + --vscode-toolbar-hoverBackground: rgba(184, 184, 184, 0.31); + --vscode-toolbar-activeBackground: rgba(166, 166, 166, 0.31); + --vscode-editor-snippetTabstopHighlightBackground: rgba(10, 50, 100, 0.2); + --vscode-editor-snippetFinalTabstopHighlightBorder: rgba(10, 50, 100, 0.5); + --vscode-breadcrumb-foreground: rgba(97, 97, 97, 0.8); + --vscode-breadcrumb-background: #ffffff; + --vscode-breadcrumb-focusForeground: #4e4e4e; + --vscode-breadcrumb-activeSelectionForeground: #4e4e4e; + --vscode-breadcrumbPicker-background: #f3f3f3; + --vscode-merge-currentHeaderBackground: rgba(64, 200, 174, 0.5); + --vscode-merge-currentContentBackground: rgba(64, 200, 174, 0.2); + --vscode-merge-incomingHeaderBackground: rgba(64, 166, 255, 0.5); + --vscode-merge-incomingContentBackground: rgba(64, 166, 255, 0.2); + --vscode-merge-commonHeaderBackground: rgba(96, 96, 96, 0.4); + --vscode-merge-commonContentBackground: rgba(96, 96, 96, 0.16); + --vscode-editorOverviewRuler-currentContentForeground: rgba(64, 200, 174, 0.5); + --vscode-editorOverviewRuler-incomingContentForeground: rgba(64, 166, 255, 0.5); + --vscode-editorOverviewRuler-commonContentForeground: rgba(96, 96, 96, 0.4); + --vscode-editorOverviewRuler-findMatchForeground: rgba(209, 134, 22, 0.49); + --vscode-editorOverviewRuler-selectionHighlightForeground: rgba(160, 160, 160, 0.8); + --vscode-minimap-findMatchHighlight: #d18616; + --vscode-minimap-selectionOccurrenceHighlight: #c9c9c9; + --vscode-minimap-selectionHighlight: #add6ff; + --vscode-minimap-errorHighlight: rgba(255, 18, 18, 0.7); + --vscode-minimap-warningHighlight: #bf8803; + --vscode-minimap-foregroundOpacity: #000000; + --vscode-minimapSlider-background: rgba(100, 100, 100, 0.2); + --vscode-minimapSlider-hoverBackground: rgba(100, 100, 100, 0.35); + --vscode-minimapSlider-activeBackground: rgba(0, 0, 0, 0.3); + --vscode-problemsErrorIcon-foreground: #e51400; + --vscode-problemsWarningIcon-foreground: #bf8803; + --vscode-problemsInfoIcon-foreground: #1a85ff; + --vscode-charts-foreground: #616161; + --vscode-charts-lines: rgba(97, 97, 97, 0.5); + --vscode-charts-red: #e51400; + --vscode-charts-blue: #1a85ff; + --vscode-charts-yellow: #bf8803; + --vscode-charts-orange: #d18616; + --vscode-charts-green: #388a34; + --vscode-charts-purple: #652d90; + --vscode-editor-lineHighlightBorder: #eeeeee; + --vscode-editor-rangeHighlightBackground: rgba(253, 255, 0, 0.2); + --vscode-editor-symbolHighlightBackground: rgba(234, 92, 0, 0.33); + --vscode-editorCursor-foreground: #000000; + --vscode-editorWhitespace-foreground: rgba(51, 51, 51, 0.2); + --vscode-editorIndentGuide-background: #d3d3d3; + --vscode-editorIndentGuide-activeBackground: #939393; + --vscode-editorLineNumber-foreground: #237893; + --vscode-editorActiveLineNumber-foreground: #0b216f; + --vscode-editorLineNumber-activeForeground: #0b216f; + --vscode-editorRuler-foreground: #d3d3d3; + --vscode-editorCodeLens-foreground: #919191; + --vscode-editorBracketMatch-background: rgba(0, 100, 0, 0.1); + --vscode-editorBracketMatch-border: #b9b9b9; + --vscode-editorOverviewRuler-border: rgba(127, 127, 127, 0.3); + --vscode-editorGutter-background: #ffffff; + --vscode-editorUnnecessaryCode-opacity: rgba(0, 0, 0, 0.47); + --vscode-editorGhostText-foreground: rgba(0, 0, 0, 0.47); + --vscode-editorOverviewRuler-rangeHighlightForeground: rgba(0, 122, 204, 0.6); + --vscode-editorOverviewRuler-errorForeground: rgba(255, 18, 18, 0.7); + --vscode-editorOverviewRuler-warningForeground: #bf8803; + --vscode-editorOverviewRuler-infoForeground: #1a85ff; + --vscode-editorBracketHighlight-foreground1: #0431fa; + --vscode-editorBracketHighlight-foreground2: #319331; + --vscode-editorBracketHighlight-foreground3: #7b3814; + --vscode-editorBracketHighlight-foreground4: rgba(0, 0, 0, 0); + --vscode-editorBracketHighlight-foreground5: rgba(0, 0, 0, 0); + --vscode-editorBracketHighlight-foreground6: rgba(0, 0, 0, 0); + --vscode-editorBracketHighlight-unexpectedBracket\.foreground: rgba(255, 18, 18, 0.8); + --vscode-editorBracketPairGuide-background1: rgba(0, 0, 0, 0); + --vscode-editorBracketPairGuide-background2: rgba(0, 0, 0, 0); + --vscode-editorBracketPairGuide-background3: rgba(0, 0, 0, 0); + --vscode-editorBracketPairGuide-background4: rgba(0, 0, 0, 0); + --vscode-editorBracketPairGuide-background5: rgba(0, 0, 0, 0); + --vscode-editorBracketPairGuide-background6: rgba(0, 0, 0, 0); + --vscode-editorBracketPairGuide-activeBackground1: rgba(0, 0, 0, 0); + --vscode-editorBracketPairGuide-activeBackground2: rgba(0, 0, 0, 0); + --vscode-editorBracketPairGuide-activeBackground3: rgba(0, 0, 0, 0); + --vscode-editorBracketPairGuide-activeBackground4: rgba(0, 0, 0, 0); + --vscode-editorBracketPairGuide-activeBackground5: rgba(0, 0, 0, 0); + --vscode-editorBracketPairGuide-activeBackground6: rgba(0, 0, 0, 0); + --vscode-editorUnicodeHighlight-border: #cea33d; + --vscode-editorUnicodeHighlight-background: rgba(206, 163, 61, 0.08); + --vscode-symbolIcon-arrayForeground: #616161; + --vscode-symbolIcon-booleanForeground: #616161; + --vscode-symbolIcon-classForeground: #d67e00; + --vscode-symbolIcon-colorForeground: #616161; + --vscode-symbolIcon-constantForeground: #616161; + --vscode-symbolIcon-constructorForeground: #652d90; + --vscode-symbolIcon-enumeratorForeground: #d67e00; + --vscode-symbolIcon-enumeratorMemberForeground: #007acc; + --vscode-symbolIcon-eventForeground: #d67e00; + --vscode-symbolIcon-fieldForeground: #007acc; + --vscode-symbolIcon-fileForeground: #616161; + --vscode-symbolIcon-folderForeground: #616161; + --vscode-symbolIcon-functionForeground: #652d90; + --vscode-symbolIcon-interfaceForeground: #007acc; + --vscode-symbolIcon-keyForeground: #616161; + --vscode-symbolIcon-keywordForeground: #616161; + --vscode-symbolIcon-methodForeground: #652d90; + --vscode-symbolIcon-moduleForeground: #616161; + --vscode-symbolIcon-namespaceForeground: #616161; + --vscode-symbolIcon-nullForeground: #616161; + --vscode-symbolIcon-numberForeground: #616161; + --vscode-symbolIcon-objectForeground: #616161; + --vscode-symbolIcon-operatorForeground: #616161; + --vscode-symbolIcon-packageForeground: #616161; + --vscode-symbolIcon-propertyForeground: #616161; + --vscode-symbolIcon-referenceForeground: #616161; + --vscode-symbolIcon-snippetForeground: #616161; + --vscode-symbolIcon-stringForeground: #616161; + --vscode-symbolIcon-structForeground: #616161; + --vscode-symbolIcon-textForeground: #616161; + --vscode-symbolIcon-typeParameterForeground: #616161; + --vscode-symbolIcon-unitForeground: #616161; + --vscode-symbolIcon-variableForeground: #007acc; + --vscode-editorHoverWidget-highlightForeground: #0066bf; + --vscode-editorOverviewRuler-bracketMatchForeground: #a0a0a0; + --vscode-editor-foldBackground: rgba(173, 214, 255, 0.3); + --vscode-editorGutter-foldingControlForeground: #424242; + --vscode-editor-linkedEditingBackground: rgba(255, 0, 0, 0.3); + --vscode-editor-wordHighlightBackground: rgba(87, 87, 87, 0.25); + --vscode-editor-wordHighlightStrongBackground: rgba(14, 99, 156, 0.25); + --vscode-editorOverviewRuler-wordHighlightForeground: rgba(160, 160, 160, 0.8); + --vscode-editorOverviewRuler-wordHighlightStrongForeground: rgba(192, 160, 192, 0.8); + --vscode-peekViewTitle-background: rgba(26, 133, 255, 0.1); + --vscode-peekViewTitleLabel-foreground: #000000; + --vscode-peekViewTitleDescription-foreground: #616161; + --vscode-peekView-border: #1a85ff; + --vscode-peekViewResult-background: #f3f3f3; + --vscode-peekViewResult-lineForeground: #646465; + --vscode-peekViewResult-fileForeground: #1e1e1e; + --vscode-peekViewResult-selectionBackground: rgba(51, 153, 255, 0.2); + --vscode-peekViewResult-selectionForeground: #6c6c6c; + --vscode-peekViewEditor-background: #f2f8fc; + --vscode-peekViewEditorGutter-background: #f2f8fc; + --vscode-peekViewResult-matchHighlightBackground: rgba(234, 92, 0, 0.3); + --vscode-peekViewEditor-matchHighlightBackground: rgba(245, 216, 2, 0.87); + --vscode-editorMarkerNavigationError-background: #e51400; + --vscode-editorMarkerNavigationError-headerBackground: rgba(229, 20, 0, 0.1); + --vscode-editorMarkerNavigationWarning-background: #bf8803; + --vscode-editorMarkerNavigationWarning-headerBackground: rgba(191, 136, 3, 0.1); + --vscode-editorMarkerNavigationInfo-background: #1a85ff; + --vscode-editorMarkerNavigationInfo-headerBackground: rgba(26, 133, 255, 0.1); + --vscode-editorMarkerNavigation-background: #ffffff; + --vscode-editorSuggestWidget-background: #f3f3f3; + --vscode-editorSuggestWidget-border: #c8c8c8; + --vscode-editorSuggestWidget-foreground: #000000; + --vscode-editorSuggestWidget-selectedForeground: #ffffff; + --vscode-editorSuggestWidget-selectedIconForeground: #ffffff; + --vscode-editorSuggestWidget-selectedBackground: #0060c0; + --vscode-editorSuggestWidget-highlightForeground: #0066bf; + --vscode-editorSuggestWidget-focusHighlightForeground: #bbe7ff; + --vscode-editorSuggestWidgetStatus-foreground: rgba(0, 0, 0, 0.5); + --vscode-tab-activeBackground: #ffffff; + --vscode-tab-unfocusedActiveBackground: #ffffff; + --vscode-tab-inactiveBackground: #ececec; + --vscode-tab-unfocusedInactiveBackground: #ececec; + --vscode-tab-activeForeground: #333333; + --vscode-tab-inactiveForeground: rgba(51, 51, 51, 0.7); + --vscode-tab-unfocusedActiveForeground: rgba(51, 51, 51, 0.7); + --vscode-tab-unfocusedInactiveForeground: rgba(51, 51, 51, 0.35); + --vscode-tab-border: #f3f3f3; + --vscode-tab-lastPinnedBorder: rgba(97, 97, 97, 0.19); + --vscode-tab-activeModifiedBorder: #33aaee; + --vscode-tab-inactiveModifiedBorder: rgba(51, 170, 238, 0.5); + --vscode-tab-unfocusedActiveModifiedBorder: rgba(51, 170, 238, 0.7); + --vscode-tab-unfocusedInactiveModifiedBorder: rgba(51, 170, 238, 0.25); + --vscode-editorPane-background: #ffffff; + --vscode-editorGroupHeader-tabsBackground: #f3f3f3; + --vscode-editorGroupHeader-noTabsBackground: #ffffff; + --vscode-editorGroup-border: #e7e7e7; + --vscode-editorGroup-dropBackground: rgba(38, 119, 203, 0.18); + --vscode-editorGroup-dropIntoPromptForeground: #616161; + --vscode-editorGroup-dropIntoPromptBackground: #f3f3f3; + --vscode-sideBySideEditor-horizontalBorder: #e7e7e7; + --vscode-sideBySideEditor-verticalBorder: #e7e7e7; + --vscode-panel-background: #ffffff; + --vscode-panel-border: rgba(128, 128, 128, 0.35); + --vscode-panelTitle-activeForeground: #424242; + --vscode-panelTitle-inactiveForeground: rgba(66, 66, 66, 0.75); + --vscode-panelTitle-activeBorder: #424242; + --vscode-panelInput-border: #dddddd; + --vscode-panel-dropBorder: #424242; + --vscode-panelSection-dropBackground: rgba(38, 119, 203, 0.18); + --vscode-panelSectionHeader-background: rgba(128, 128, 128, 0.2); + --vscode-panelSection-border: rgba(128, 128, 128, 0.35); + --vscode-banner-background: #004386; + --vscode-banner-foreground: #ffffff; + --vscode-banner-iconForeground: #1a85ff; + --vscode-statusBar-foreground: #ffffff; + --vscode-statusBar-noFolderForeground: #ffffff; + --vscode-statusBar-background: #007acc; + --vscode-statusBar-noFolderBackground: #68217a; + --vscode-statusBar-focusBorder: #ffffff; + --vscode-statusBarItem-activeBackground: rgba(255, 255, 255, 0.18); + --vscode-statusBarItem-focusBorder: #ffffff; + --vscode-statusBarItem-hoverBackground: rgba(255, 255, 255, 0.12); + --vscode-statusBarItem-compactHoverBackground: rgba(255, 255, 255, 0.2); + --vscode-statusBarItem-prominentForeground: #ffffff; + --vscode-statusBarItem-prominentBackground: rgba(0, 0, 0, 0.5); + --vscode-statusBarItem-prominentHoverBackground: rgba(0, 0, 0, 0.3); + --vscode-statusBarItem-errorBackground: #c72e0f; + --vscode-statusBarItem-errorForeground: #ffffff; + --vscode-statusBarItem-warningBackground: #725102; + --vscode-statusBarItem-warningForeground: #ffffff; + --vscode-activityBar-background: #2c2c2c; + --vscode-activityBar-foreground: #ffffff; + --vscode-activityBar-inactiveForeground: rgba(255, 255, 255, 0.4); + --vscode-activityBar-activeBorder: #ffffff; + --vscode-activityBar-dropBorder: #ffffff; + --vscode-activityBarBadge-background: #007acc; + --vscode-activityBarBadge-foreground: #ffffff; + --vscode-statusBarItem-remoteBackground: #16825d; + --vscode-statusBarItem-remoteForeground: #ffffff; + --vscode-extensionBadge-remoteBackground: #007acc; + --vscode-extensionBadge-remoteForeground: #ffffff; + --vscode-sideBar-background: #f3f3f3; + --vscode-sideBarTitle-foreground: #6f6f6f; + --vscode-sideBar-dropBackground: rgba(38, 119, 203, 0.18); + --vscode-sideBarSectionHeader-background: rgba(0, 0, 0, 0); + --vscode-sideBarSectionHeader-border: rgba(97, 97, 97, 0.19); + --vscode-titleBar-activeForeground: #333333; + --vscode-titleBar-inactiveForeground: rgba(51, 51, 51, 0.6); + --vscode-titleBar-activeBackground: #dddddd; + --vscode-titleBar-inactiveBackground: rgba(221, 221, 221, 0.6); + --vscode-menubar-selectionForeground: #333333; + --vscode-menubar-selectionBackground: rgba(184, 184, 184, 0.31); + --vscode-notifications-foreground: #616161; + --vscode-notifications-background: #f3f3f3; + --vscode-notificationLink-foreground: #006ab1; + --vscode-notificationCenterHeader-background: #e7e7e7; + --vscode-notifications-border: #e7e7e7; + --vscode-notificationsErrorIcon-foreground: #e51400; + --vscode-notificationsWarningIcon-foreground: #bf8803; + --vscode-notificationsInfoIcon-foreground: #1a85ff; + --vscode-commandCenter-foreground: #333333; + --vscode-commandCenter-activeForeground: #333333; + --vscode-commandCenter-activeBackground: rgba(184, 184, 184, 0.31); + --vscode-commandCenter-border: rgba(128, 128, 128, 0.35); + --vscode-editorCommentsWidget-resolvedBorder: rgba(97, 97, 97, 0.5); + --vscode-editorCommentsWidget-unresolvedBorder: #1a85ff; + --vscode-editorCommentsWidget-rangeBackground: rgba(26, 133, 255, 0.1); + --vscode-editorCommentsWidget-rangeBorder: rgba(26, 133, 255, 0.4); + --vscode-editorCommentsWidget-rangeActiveBackground: rgba(26, 133, 255, 0.1); + --vscode-editorCommentsWidget-rangeActiveBorder: rgba(26, 133, 255, 0.4); + --vscode-editorGutter-commentRangeForeground: #d5d8e9; + --vscode-debugToolBar-background: #f3f3f3; + --vscode-debugIcon-startForeground: #388a34; + --vscode-editor-stackFrameHighlightBackground: rgba(255, 255, 102, 0.45); + --vscode-editor-focusedStackFrameHighlightBackground: rgba(206, 231, 206, 0.45); + --vscode-mergeEditor-change\.background: rgba(155, 185, 85, 0.2); + --vscode-mergeEditor-change\.word\.background: rgba(156, 204, 44, 0.4); + --vscode-mergeEditor-conflict\.unhandledUnfocused\.border: rgba(255, 166, 0, 0.48); + --vscode-mergeEditor-conflict\.unhandledFocused\.border: #ffa600; + --vscode-mergeEditor-conflict\.handledUnfocused\.border: rgba(134, 134, 134, 0.29); + --vscode-mergeEditor-conflict\.handledFocused\.border: rgba(193, 193, 193, 0.8); + --vscode-mergeEditor-conflict\.handled\.minimapOverViewRuler: rgba(173, 172, 168, 0.93); + --vscode-mergeEditor-conflict\.unhandled\.minimapOverViewRuler: #fcba03; + --vscode-mergeEditor-conflictingLines\.background: rgba(255, 234, 0, 0.28); + --vscode-settings-headerForeground: #444444; + --vscode-settings-modifiedItemIndicator: #66afe0; + --vscode-settings-headerBorder: rgba(128, 128, 128, 0.35); + --vscode-settings-sashBorder: rgba(128, 128, 128, 0.35); + --vscode-settings-dropdownBackground: #ffffff; + --vscode-settings-dropdownBorder: #cecece; + --vscode-settings-dropdownListBorder: #c8c8c8; + --vscode-settings-checkboxBackground: #ffffff; + --vscode-settings-checkboxBorder: #cecece; + --vscode-settings-textInputBackground: #ffffff; + --vscode-settings-textInputForeground: #616161; + --vscode-settings-textInputBorder: #cecece; + --vscode-settings-numberInputBackground: #ffffff; + --vscode-settings-numberInputForeground: #616161; + --vscode-settings-numberInputBorder: #cecece; + --vscode-settings-focusedRowBackground: rgba(232, 232, 232, 0.6); + --vscode-settings-rowHoverBackground: rgba(232, 232, 232, 0.3); + --vscode-settings-focusedRowBorder: rgba(0, 0, 0, 0.12); + --vscode-terminal-foreground: #333333; + --vscode-terminal-selectionBackground: #add6ff; + --vscode-terminal-inactiveSelectionBackground: #e5ebf1; + --vscode-terminalCommandDecoration-defaultBackground: rgba(0, 0, 0, 0.25); + --vscode-terminalCommandDecoration-successBackground: #2090d3; + --vscode-terminalCommandDecoration-errorBackground: #e51400; + --vscode-terminalOverviewRuler-cursorForeground: rgba(160, 160, 160, 0.8); + --vscode-terminal-border: rgba(128, 128, 128, 0.35); + --vscode-terminal-findMatchBackground: #a8ac94; + --vscode-terminal-findMatchHighlightBackground: rgba(234, 92, 0, 0.33); + --vscode-terminalOverviewRuler-findMatchForeground: rgba(209, 134, 22, 0.49); + --vscode-terminal-dropBackground: rgba(38, 119, 203, 0.18); + --vscode-testing-iconFailed: #f14c4c; + --vscode-testing-iconErrored: #f14c4c; + --vscode-testing-iconPassed: #73c991; + --vscode-testing-runAction: #73c991; + --vscode-testing-iconQueued: #cca700; + --vscode-testing-iconUnset: #848484; + --vscode-testing-iconSkipped: #848484; + --vscode-testing-peekBorder: #e51400; + --vscode-testing-peekHeaderBackground: rgba(229, 20, 0, 0.1); + --vscode-testing-message\.error\.decorationForeground: #e51400; + --vscode-testing-message\.error\.lineBackground: rgba(255, 0, 0, 0.2); + --vscode-testing-message\.info\.decorationForeground: rgba(0, 0, 0, 0.5); + --vscode-welcomePage-tileBackground: #f3f3f3; + --vscode-welcomePage-tileHoverBackground: #dbdbdb; + --vscode-welcomePage-tileShadow: rgba(0, 0, 0, 0.16); + --vscode-welcomePage-progress\.background: #ffffff; + --vscode-welcomePage-progress\.foreground: #006ab1; + --vscode-debugExceptionWidget-border: #a31515; + --vscode-debugExceptionWidget-background: #f1dfde; + --vscode-ports-iconRunningProcessForeground: #369432; + --vscode-statusBar-debuggingBackground: #cc6633; + --vscode-statusBar-debuggingForeground: #ffffff; + --vscode-editor-inlineValuesForeground: rgba(0, 0, 0, 0.5); + --vscode-editor-inlineValuesBackground: rgba(255, 200, 0, 0.2); + --vscode-editorGutter-modifiedBackground: #2090d3; + --vscode-editorGutter-addedBackground: #48985d; + --vscode-editorGutter-deletedBackground: #e51400; + --vscode-minimapGutter-modifiedBackground: #2090d3; + --vscode-minimapGutter-addedBackground: #48985d; + --vscode-minimapGutter-deletedBackground: #e51400; + --vscode-editorOverviewRuler-modifiedForeground: rgba(32, 144, 211, 0.6); + --vscode-editorOverviewRuler-addedForeground: rgba(72, 152, 93, 0.6); + --vscode-editorOverviewRuler-deletedForeground: rgba(229, 20, 0, 0.6); + --vscode-debugIcon-breakpointForeground: #e51400; + --vscode-debugIcon-breakpointDisabledForeground: #848484; + --vscode-debugIcon-breakpointUnverifiedForeground: #848484; + --vscode-debugIcon-breakpointCurrentStackframeForeground: #be8700; + --vscode-debugIcon-breakpointStackframeForeground: #89d185; + --vscode-notebook-cellBorderColor: #e8e8e8; + --vscode-notebook-focusedEditorBorder: #0090f1; + --vscode-notebookStatusSuccessIcon-foreground: #388a34; + --vscode-notebookStatusErrorIcon-foreground: #a1260d; + --vscode-notebookStatusRunningIcon-foreground: #616161; + --vscode-notebook-cellToolbarSeparator: rgba(128, 128, 128, 0.35); + --vscode-notebook-selectedCellBackground: rgba(200, 221, 241, 0.31); + --vscode-notebook-selectedCellBorder: #e8e8e8; + --vscode-notebook-focusedCellBorder: #0090f1; + --vscode-notebook-inactiveFocusedCellBorder: #e8e8e8; + --vscode-notebook-cellStatusBarItemHoverBackground: rgba(0, 0, 0, 0.08); + --vscode-notebook-cellInsertionIndicator: #0090f1; + --vscode-notebookScrollbarSlider-background: rgba(100, 100, 100, 0.4); + --vscode-notebookScrollbarSlider-hoverBackground: rgba(100, 100, 100, 0.7); + --vscode-notebookScrollbarSlider-activeBackground: rgba(0, 0, 0, 0.6); + --vscode-notebook-symbolHighlightBackground: rgba(253, 255, 0, 0.2); + --vscode-notebook-cellEditorBackground: #f3f3f3; + --vscode-notebook-editorBackground: #ffffff; + --vscode-keybindingTable-headerBackground: rgba(97, 97, 97, 0.04); + --vscode-keybindingTable-rowsBackground: rgba(97, 97, 97, 0.04); + --vscode-scm-providerBorder: #c8c8c8; + --vscode-searchEditor-textInputBorder: #cecece; + --vscode-debugTokenExpression-name: #9b46b0; + --vscode-debugTokenExpression-value: rgba(108, 108, 108, 0.8); + --vscode-debugTokenExpression-string: #a31515; + --vscode-debugTokenExpression-boolean: #0000ff; + --vscode-debugTokenExpression-number: #098658; + --vscode-debugTokenExpression-error: #e51400; + --vscode-debugView-exceptionLabelForeground: #ffffff; + --vscode-debugView-exceptionLabelBackground: #a31515; + --vscode-debugView-stateLabelForeground: #616161; + --vscode-debugView-stateLabelBackground: rgba(136, 136, 136, 0.27); + --vscode-debugView-valueChangedHighlight: #569cd6; + --vscode-debugConsole-infoForeground: #1a85ff; + --vscode-debugConsole-warningForeground: #bf8803; + --vscode-debugConsole-errorForeground: #a1260d; + --vscode-debugConsole-sourceForeground: #616161; + --vscode-debugConsoleInputIcon-foreground: #616161; + --vscode-debugIcon-pauseForeground: #007acc; + --vscode-debugIcon-stopForeground: #a1260d; + --vscode-debugIcon-disconnectForeground: #a1260d; + --vscode-debugIcon-restartForeground: #388a34; + --vscode-debugIcon-stepOverForeground: #007acc; + --vscode-debugIcon-stepIntoForeground: #007acc; + --vscode-debugIcon-stepOutForeground: #007acc; + --vscode-debugIcon-continueForeground: #007acc; + --vscode-debugIcon-stepBackForeground: #007acc; + --vscode-extensionButton-prominentBackground: #007acc; + --vscode-extensionButton-prominentForeground: #ffffff; + --vscode-extensionButton-prominentHoverBackground: #0062a3; + --vscode-extensionIcon-starForeground: #df6100; + --vscode-extensionIcon-verifiedForeground: #006ab1; + --vscode-extensionIcon-preReleaseForeground: #1d9271; + --vscode-extensionIcon-sponsorForeground: #b51e78; + --vscode-terminal-ansiBlack: #000000; + --vscode-terminal-ansiRed: #cd3131; + --vscode-terminal-ansiGreen: #00bc00; + --vscode-terminal-ansiYellow: #949800; + --vscode-terminal-ansiBlue: #0451a5; + --vscode-terminal-ansiMagenta: #bc05bc; + --vscode-terminal-ansiCyan: #0598bc; + --vscode-terminal-ansiWhite: #555555; + --vscode-terminal-ansiBrightBlack: #666666; + --vscode-terminal-ansiBrightRed: #cd3131; + --vscode-terminal-ansiBrightGreen: #14ce14; + --vscode-terminal-ansiBrightYellow: #b5ba00; + --vscode-terminal-ansiBrightBlue: #0451a5; + --vscode-terminal-ansiBrightMagenta: #bc05bc; + --vscode-terminal-ansiBrightCyan: #0598bc; + --vscode-terminal-ansiBrightWhite: #a5a5a5; + --vscode-interactive-activeCodeBorder: #1a85ff; + --vscode-interactive-inactiveCodeBorder: #e4e6f1; + --vscode-gitDecoration-addedResourceForeground: #587c0c; + --vscode-gitDecoration-modifiedResourceForeground: #895503; + --vscode-gitDecoration-deletedResourceForeground: #ad0707; + --vscode-gitDecoration-renamedResourceForeground: #007100; + --vscode-gitDecoration-untrackedResourceForeground: #007100; + --vscode-gitDecoration-ignoredResourceForeground: #8e8e90; + --vscode-gitDecoration-stageModifiedResourceForeground: #895503; + --vscode-gitDecoration-stageDeletedResourceForeground: #ad0707; + --vscode-gitDecoration-conflictingResourceForeground: #ad0707; + --vscode-gitDecoration-submoduleResourceForeground: #1258a7; + } + :root.light-mode { + color-scheme: light; + } + :root.dark-mode { + color-scheme: dark; + --vscode-font-family: system-ui, 'Ubuntu', 'Droid Sans', sans-serif; + --vscode-font-weight: normal; + --vscode-font-size: 13px; + --vscode-editor-font-family: 'Droid Sans Mono', 'monospace', monospace; + --vscode-editor-font-weight: normal; + --vscode-editor-font-size: 14px; + --vscode-foreground: #cccccc; + --vscode-disabledForeground: rgba(204, 204, 204, 0.5); + --vscode-errorForeground: #f48771; + --vscode-descriptionForeground: rgba(204, 204, 204, 0.7); + --vscode-icon-foreground: #c5c5c5; + --vscode-focusBorder: #007fd4; + --vscode-textSeparator-foreground: rgba(255, 255, 255, 0.18); + --vscode-textLink-foreground: #3794ff; + --vscode-textLink-activeForeground: #3794ff; + --vscode-textPreformat-foreground: #d7ba7d; + --vscode-textBlockQuote-background: rgba(127, 127, 127, 0.1); + --vscode-textBlockQuote-border: rgba(0, 122, 204, 0.5); + --vscode-textCodeBlock-background: rgba(10, 10, 10, 0.4); + --vscode-widget-shadow: rgba(0, 0, 0, 0.36); + --vscode-input-background: #3c3c3c; + --vscode-input-foreground: #cccccc; + --vscode-inputOption-activeBorder: #007acc; + --vscode-inputOption-hoverBackground: rgba(90, 93, 94, 0.5); + --vscode-inputOption-activeBackground: rgba(0, 127, 212, 0.4); + --vscode-inputOption-activeForeground: #ffffff; + --vscode-input-placeholderForeground: #a6a6a6; + --vscode-inputValidation-infoBackground: #063b49; + --vscode-inputValidation-infoBorder: #007acc; + --vscode-inputValidation-warningBackground: #352a05; + --vscode-inputValidation-warningBorder: #b89500; + --vscode-inputValidation-errorBackground: #5a1d1d; + --vscode-inputValidation-errorBorder: #be1100; + --vscode-dropdown-background: #3c3c3c; + --vscode-dropdown-foreground: #f0f0f0; + --vscode-dropdown-border: #3c3c3c; + --vscode-checkbox-background: #3c3c3c; + --vscode-checkbox-foreground: #f0f0f0; + --vscode-checkbox-border: #3c3c3c; + --vscode-button-foreground: #ffffff; + --vscode-button-separator: rgba(255, 255, 255, 0.4); + --vscode-button-background: #0e639c; + --vscode-button-hoverBackground: #1177bb; + --vscode-button-secondaryForeground: #ffffff; + --vscode-button-secondaryBackground: #3a3d41; + --vscode-button-secondaryHoverBackground: #45494e; + --vscode-badge-background: #4d4d4d; + --vscode-badge-foreground: #ffffff; + --vscode-scrollbar-shadow: #000000; + --vscode-scrollbarSlider-background: rgba(121, 121, 121, 0.4); + --vscode-scrollbarSlider-hoverBackground: rgba(100, 100, 100, 0.7); + --vscode-scrollbarSlider-activeBackground: rgba(191, 191, 191, 0.4); + --vscode-progressBar-background: #0e70c0; + --vscode-editorError-foreground: #f14c4c; + --vscode-editorWarning-foreground: #cca700; + --vscode-editorInfo-foreground: #3794ff; + --vscode-editorHint-foreground: rgba(238, 238, 238, 0.7); + --vscode-sash-hoverBorder: #007fd4; + --vscode-editor-background: #1e1e1e; + --vscode-editor-foreground: #d4d4d4; + --vscode-editorStickyScroll-background: #1e1e1e; + --vscode-editorStickyScrollHover-background: #2a2d2e; + --vscode-editorWidget-background: #252526; + --vscode-editorWidget-foreground: #cccccc; + --vscode-editorWidget-border: #454545; + --vscode-quickInput-background: #252526; + --vscode-quickInput-foreground: #cccccc; + --vscode-quickInputTitle-background: rgba(255, 255, 255, 0.1); + --vscode-pickerGroup-foreground: #3794ff; + --vscode-pickerGroup-border: #3f3f46; + --vscode-keybindingLabel-background: rgba(128, 128, 128, 0.17); + --vscode-keybindingLabel-foreground: #cccccc; + --vscode-keybindingLabel-border: rgba(51, 51, 51, 0.6); + --vscode-keybindingLabel-bottomBorder: rgba(68, 68, 68, 0.6); + --vscode-editor-selectionBackground: #264f78; + --vscode-editor-inactiveSelectionBackground: #3a3d41; + --vscode-editor-selectionHighlightBackground: rgba(173, 214, 255, 0.15); + --vscode-editor-findMatchBackground: #515c6a; + --vscode-editor-findMatchHighlightBackground: rgba(234, 92, 0, 0.33); + --vscode-editor-findRangeHighlightBackground: rgba(58, 61, 65, 0.4); + --vscode-searchEditor-findMatchBackground: rgba(234, 92, 0, 0.22); + --vscode-editor-hoverHighlightBackground: rgba(38, 79, 120, 0.25); + --vscode-editorHoverWidget-background: #252526; + --vscode-editorHoverWidget-foreground: #cccccc; + --vscode-editorHoverWidget-border: #454545; + --vscode-editorHoverWidget-statusBarBackground: #2c2c2d; + --vscode-editorLink-activeForeground: #4e94ce; + --vscode-editorInlayHint-foreground: rgba(255, 255, 255, 0.8); + --vscode-editorInlayHint-background: rgba(77, 77, 77, 0.6); + --vscode-editorInlayHint-typeForeground: rgba(255, 255, 255, 0.8); + --vscode-editorInlayHint-typeBackground: rgba(77, 77, 77, 0.6); + --vscode-editorInlayHint-parameterForeground: rgba(255, 255, 255, 0.8); + --vscode-editorInlayHint-parameterBackground: rgba(77, 77, 77, 0.6); + --vscode-editorLightBulb-foreground: #ffcc00; + --vscode-editorLightBulbAutoFix-foreground: #75beff; + --vscode-diffEditor-insertedTextBackground: rgba(156, 204, 44, 0.2); + --vscode-diffEditor-removedTextBackground: rgba(255, 0, 0, 0.4); + --vscode-diffEditor-insertedLineBackground: rgba(155, 185, 85, 0.2); + --vscode-diffEditor-removedLineBackground: rgba(255, 0, 0, 0.2); + --vscode-diffEditor-diagonalFill: rgba(204, 204, 204, 0.2); + --vscode-list-focusOutline: #007fd4; + --vscode-list-activeSelectionBackground: #04395e; + --vscode-list-activeSelectionForeground: #ffffff; + --vscode-list-activeSelectionIconForeground: #ffffff; + --vscode-list-inactiveSelectionBackground: #37373d; + --vscode-list-hoverBackground: #2a2d2e; + --vscode-list-dropBackground: #383b3d; + --vscode-list-highlightForeground: #2aaaff; + --vscode-list-focusHighlightForeground: #2aaaff; + --vscode-list-invalidItemForeground: #b89500; + --vscode-list-errorForeground: #f88070; + --vscode-list-warningForeground: #cca700; + --vscode-listFilterWidget-background: #252526; + --vscode-listFilterWidget-outline: rgba(0, 0, 0, 0); + --vscode-listFilterWidget-noMatchesOutline: #be1100; + --vscode-listFilterWidget-shadow: rgba(0, 0, 0, 0.36); + --vscode-list-filterMatchBackground: rgba(234, 92, 0, 0.33); + --vscode-tree-indentGuidesStroke: #585858; + --vscode-tree-tableColumnsBorder: rgba(204, 204, 204, 0.13); + --vscode-tree-tableOddRowsBackground: rgba(204, 204, 204, 0.04); + --vscode-list-deemphasizedForeground: #8c8c8c; + --vscode-quickInputList-focusForeground: #ffffff; + --vscode-quickInputList-focusIconForeground: #ffffff; + --vscode-quickInputList-focusBackground: #04395e; + --vscode-menu-foreground: #cccccc; + --vscode-menu-background: #303031; + --vscode-menu-selectionForeground: #ffffff; + --vscode-menu-selectionBackground: #04395e; + --vscode-menu-separatorBackground: #606060; + --vscode-toolbar-hoverBackground: rgba(90, 93, 94, 0.31); + --vscode-toolbar-activeBackground: rgba(99, 102, 103, 0.31); + --vscode-editor-snippetTabstopHighlightBackground: rgba(124, 124, 124, 0.3); + --vscode-editor-snippetFinalTabstopHighlightBorder: #525252; + --vscode-breadcrumb-foreground: rgba(204, 204, 204, 0.8); + --vscode-breadcrumb-background: #1e1e1e; + --vscode-breadcrumb-focusForeground: #e0e0e0; + --vscode-breadcrumb-activeSelectionForeground: #e0e0e0; + --vscode-breadcrumbPicker-background: #252526; + --vscode-merge-currentHeaderBackground: rgba(64, 200, 174, 0.5); + --vscode-merge-currentContentBackground: rgba(64, 200, 174, 0.2); + --vscode-merge-incomingHeaderBackground: rgba(64, 166, 255, 0.5); + --vscode-merge-incomingContentBackground: rgba(64, 166, 255, 0.2); + --vscode-merge-commonHeaderBackground: rgba(96, 96, 96, 0.4); + --vscode-merge-commonContentBackground: rgba(96, 96, 96, 0.16); + --vscode-editorOverviewRuler-currentContentForeground: rgba(64, 200, 174, 0.5); + --vscode-editorOverviewRuler-incomingContentForeground: rgba(64, 166, 255, 0.5); + --vscode-editorOverviewRuler-commonContentForeground: rgba(96, 96, 96, 0.4); + --vscode-editorOverviewRuler-findMatchForeground: rgba(209, 134, 22, 0.49); + --vscode-editorOverviewRuler-selectionHighlightForeground: rgba(160, 160, 160, 0.8); + --vscode-minimap-findMatchHighlight: #d18616; + --vscode-minimap-selectionOccurrenceHighlight: #676767; + --vscode-minimap-selectionHighlight: #264f78; + --vscode-minimap-errorHighlight: rgba(255, 18, 18, 0.7); + --vscode-minimap-warningHighlight: #cca700; + --vscode-minimap-foregroundOpacity: #000000; + --vscode-minimapSlider-background: rgba(121, 121, 121, 0.2); + --vscode-minimapSlider-hoverBackground: rgba(100, 100, 100, 0.35); + --vscode-minimapSlider-activeBackground: rgba(191, 191, 191, 0.2); + --vscode-problemsErrorIcon-foreground: #f14c4c; + --vscode-problemsWarningIcon-foreground: #cca700; + --vscode-problemsInfoIcon-foreground: #3794ff; + --vscode-charts-foreground: #cccccc; + --vscode-charts-lines: rgba(204, 204, 204, 0.5); + --vscode-charts-red: #f14c4c; + --vscode-charts-blue: #3794ff; + --vscode-charts-yellow: #cca700; + --vscode-charts-orange: #d18616; + --vscode-charts-green: #89d185; + --vscode-charts-purple: #b180d7; + --vscode-editor-lineHighlightBorder: #282828; + --vscode-editor-rangeHighlightBackground: rgba(255, 255, 255, 0.04); + --vscode-editor-symbolHighlightBackground: rgba(234, 92, 0, 0.33); + --vscode-editorCursor-foreground: #aeafad; + --vscode-editorWhitespace-foreground: rgba(227, 228, 226, 0.16); + --vscode-editorIndentGuide-background: #404040; + --vscode-editorIndentGuide-activeBackground: #707070; + --vscode-editorLineNumber-foreground: #858585; + --vscode-editorActiveLineNumber-foreground: #c6c6c6; + --vscode-editorLineNumber-activeForeground: #c6c6c6; + --vscode-editorRuler-foreground: #5a5a5a; + --vscode-editorCodeLens-foreground: #999999; + --vscode-editorBracketMatch-background: rgba(0, 100, 0, 0.1); + --vscode-editorBracketMatch-border: #888888; + --vscode-editorOverviewRuler-border: rgba(127, 127, 127, 0.3); + --vscode-editorGutter-background: #1e1e1e; + --vscode-editorUnnecessaryCode-opacity: rgba(0, 0, 0, 0.67); + --vscode-editorGhostText-foreground: rgba(255, 255, 255, 0.34); + --vscode-editorOverviewRuler-rangeHighlightForeground: rgba(0, 122, 204, 0.6); + --vscode-editorOverviewRuler-errorForeground: rgba(255, 18, 18, 0.7); + --vscode-editorOverviewRuler-warningForeground: #cca700; + --vscode-editorOverviewRuler-infoForeground: #3794ff; + --vscode-editorBracketHighlight-foreground1: #ffd700; + --vscode-editorBracketHighlight-foreground2: #da70d6; + --vscode-editorBracketHighlight-foreground3: #179fff; + --vscode-editorBracketHighlight-foreground4: rgba(0, 0, 0, 0); + --vscode-editorBracketHighlight-foreground5: rgba(0, 0, 0, 0); + --vscode-editorBracketHighlight-foreground6: rgba(0, 0, 0, 0); + --vscode-editorBracketHighlight-unexpectedBracket\.foreground: rgba(255, 18, 18, 0.8); + --vscode-editorBracketPairGuide-background1: rgba(0, 0, 0, 0); + --vscode-editorBracketPairGuide-background2: rgba(0, 0, 0, 0); + --vscode-editorBracketPairGuide-background3: rgba(0, 0, 0, 0); + --vscode-editorBracketPairGuide-background4: rgba(0, 0, 0, 0); + --vscode-editorBracketPairGuide-background5: rgba(0, 0, 0, 0); + --vscode-editorBracketPairGuide-background6: rgba(0, 0, 0, 0); + --vscode-editorBracketPairGuide-activeBackground1: rgba(0, 0, 0, 0); + --vscode-editorBracketPairGuide-activeBackground2: rgba(0, 0, 0, 0); + --vscode-editorBracketPairGuide-activeBackground3: rgba(0, 0, 0, 0); + --vscode-editorBracketPairGuide-activeBackground4: rgba(0, 0, 0, 0); + --vscode-editorBracketPairGuide-activeBackground5: rgba(0, 0, 0, 0); + --vscode-editorBracketPairGuide-activeBackground6: rgba(0, 0, 0, 0); + --vscode-editorUnicodeHighlight-border: #bd9b03; + --vscode-editorUnicodeHighlight-background: rgba(189, 155, 3, 0.15); + --vscode-symbolIcon-arrayForeground: #cccccc; + --vscode-symbolIcon-booleanForeground: #cccccc; + --vscode-symbolIcon-classForeground: #ee9d28; + --vscode-symbolIcon-colorForeground: #cccccc; + --vscode-symbolIcon-constantForeground: #cccccc; + --vscode-symbolIcon-constructorForeground: #b180d7; + --vscode-symbolIcon-enumeratorForeground: #ee9d28; + --vscode-symbolIcon-enumeratorMemberForeground: #75beff; + --vscode-symbolIcon-eventForeground: #ee9d28; + --vscode-symbolIcon-fieldForeground: #75beff; + --vscode-symbolIcon-fileForeground: #cccccc; + --vscode-symbolIcon-folderForeground: #cccccc; + --vscode-symbolIcon-functionForeground: #b180d7; + --vscode-symbolIcon-interfaceForeground: #75beff; + --vscode-symbolIcon-keyForeground: #cccccc; + --vscode-symbolIcon-keywordForeground: #cccccc; + --vscode-symbolIcon-methodForeground: #b180d7; + --vscode-symbolIcon-moduleForeground: #cccccc; + --vscode-symbolIcon-namespaceForeground: #cccccc; + --vscode-symbolIcon-nullForeground: #cccccc; + --vscode-symbolIcon-numberForeground: #cccccc; + --vscode-symbolIcon-objectForeground: #cccccc; + --vscode-symbolIcon-operatorForeground: #cccccc; + --vscode-symbolIcon-packageForeground: #cccccc; + --vscode-symbolIcon-propertyForeground: #cccccc; + --vscode-symbolIcon-referenceForeground: #cccccc; + --vscode-symbolIcon-snippetForeground: #cccccc; + --vscode-symbolIcon-stringForeground: #cccccc; + --vscode-symbolIcon-structForeground: #cccccc; + --vscode-symbolIcon-textForeground: #cccccc; + --vscode-symbolIcon-typeParameterForeground: #cccccc; + --vscode-symbolIcon-unitForeground: #cccccc; + --vscode-symbolIcon-variableForeground: #75beff; + --vscode-editorHoverWidget-highlightForeground: #2aaaff; + --vscode-editorOverviewRuler-bracketMatchForeground: #a0a0a0; + --vscode-editor-foldBackground: rgba(38, 79, 120, 0.3); + --vscode-editorGutter-foldingControlForeground: #c5c5c5; + --vscode-editor-linkedEditingBackground: rgba(255, 0, 0, 0.3); + --vscode-editor-wordHighlightBackground: rgba(87, 87, 87, 0.72); + --vscode-editor-wordHighlightStrongBackground: rgba(0, 73, 114, 0.72); + --vscode-editorOverviewRuler-wordHighlightForeground: rgba(160, 160, 160, 0.8); + --vscode-editorOverviewRuler-wordHighlightStrongForeground: rgba(192, 160, 192, 0.8); + --vscode-peekViewTitle-background: rgba(55, 148, 255, 0.1); + --vscode-peekViewTitleLabel-foreground: #ffffff; + --vscode-peekViewTitleDescription-foreground: rgba(204, 204, 204, 0.7); + --vscode-peekView-border: #3794ff; + --vscode-peekViewResult-background: #252526; + --vscode-peekViewResult-lineForeground: #bbbbbb; + --vscode-peekViewResult-fileForeground: #ffffff; + --vscode-peekViewResult-selectionBackground: rgba(51, 153, 255, 0.2); + --vscode-peekViewResult-selectionForeground: #ffffff; + --vscode-peekViewEditor-background: #001f33; + --vscode-peekViewEditorGutter-background: #001f33; + --vscode-peekViewResult-matchHighlightBackground: rgba(234, 92, 0, 0.3); + --vscode-peekViewEditor-matchHighlightBackground: rgba(255, 143, 0, 0.6); + --vscode-editorMarkerNavigationError-background: #f14c4c; + --vscode-editorMarkerNavigationError-headerBackground: rgba(241, 76, 76, 0.1); + --vscode-editorMarkerNavigationWarning-background: #cca700; + --vscode-editorMarkerNavigationWarning-headerBackground: rgba(204, 167, 0, 0.1); + --vscode-editorMarkerNavigationInfo-background: #3794ff; + --vscode-editorMarkerNavigationInfo-headerBackground: rgba(55, 148, 255, 0.1); + --vscode-editorMarkerNavigation-background: #1e1e1e; + --vscode-editorSuggestWidget-background: #252526; + --vscode-editorSuggestWidget-border: #454545; + --vscode-editorSuggestWidget-foreground: #d4d4d4; + --vscode-editorSuggestWidget-selectedForeground: #ffffff; + --vscode-editorSuggestWidget-selectedIconForeground: #ffffff; + --vscode-editorSuggestWidget-selectedBackground: #04395e; + --vscode-editorSuggestWidget-highlightForeground: #2aaaff; + --vscode-editorSuggestWidget-focusHighlightForeground: #2aaaff; + --vscode-editorSuggestWidgetStatus-foreground: rgba(212, 212, 212, 0.5); + --vscode-tab-activeBackground: #1e1e1e; + --vscode-tab-unfocusedActiveBackground: #1e1e1e; + --vscode-tab-inactiveBackground: #2d2d2d; + --vscode-tab-unfocusedInactiveBackground: #2d2d2d; + --vscode-tab-activeForeground: #ffffff; + --vscode-tab-inactiveForeground: rgba(255, 255, 255, 0.5); + --vscode-tab-unfocusedActiveForeground: rgba(255, 255, 255, 0.5); + --vscode-tab-unfocusedInactiveForeground: rgba(255, 255, 255, 0.25); + --vscode-tab-border: #252526; + --vscode-tab-lastPinnedBorder: rgba(204, 204, 204, 0.2); + --vscode-tab-activeModifiedBorder: #3399cc; + --vscode-tab-inactiveModifiedBorder: rgba(51, 153, 204, 0.5); + --vscode-tab-unfocusedActiveModifiedBorder: rgba(51, 153, 204, 0.5); + --vscode-tab-unfocusedInactiveModifiedBorder: rgba(51, 153, 204, 0.25); + --vscode-editorPane-background: #1e1e1e; + --vscode-editorGroupHeader-tabsBackground: #252526; + --vscode-editorGroupHeader-noTabsBackground: #1e1e1e; + --vscode-editorGroup-border: #444444; + --vscode-editorGroup-dropBackground: rgba(83, 89, 93, 0.5); + --vscode-editorGroup-dropIntoPromptForeground: #cccccc; + --vscode-editorGroup-dropIntoPromptBackground: #252526; + --vscode-sideBySideEditor-horizontalBorder: #444444; + --vscode-sideBySideEditor-verticalBorder: #444444; + --vscode-panel-background: #1e1e1e; + --vscode-panel-border: rgba(128, 128, 128, 0.35); + --vscode-panelTitle-activeForeground: #e7e7e7; + --vscode-panelTitle-inactiveForeground: rgba(231, 231, 231, 0.6); + --vscode-panelTitle-activeBorder: #e7e7e7; + --vscode-panel-dropBorder: #e7e7e7; + --vscode-panelSection-dropBackground: rgba(83, 89, 93, 0.5); + --vscode-panelSectionHeader-background: rgba(128, 128, 128, 0.2); + --vscode-panelSection-border: rgba(128, 128, 128, 0.35); + --vscode-banner-background: #04395e; + --vscode-banner-foreground: #ffffff; + --vscode-banner-iconForeground: #3794ff; + --vscode-statusBar-foreground: #ffffff; + --vscode-statusBar-noFolderForeground: #ffffff; + --vscode-statusBar-background: #007acc; + --vscode-statusBar-noFolderBackground: #68217a; + --vscode-statusBar-focusBorder: #ffffff; + --vscode-statusBarItem-activeBackground: rgba(255, 255, 255, 0.18); + --vscode-statusBarItem-focusBorder: #ffffff; + --vscode-statusBarItem-hoverBackground: rgba(255, 255, 255, 0.12); + --vscode-statusBarItem-compactHoverBackground: rgba(255, 255, 255, 0.2); + --vscode-statusBarItem-prominentForeground: #ffffff; + --vscode-statusBarItem-prominentBackground: rgba(0, 0, 0, 0.5); + --vscode-statusBarItem-prominentHoverBackground: rgba(0, 0, 0, 0.3); + --vscode-statusBarItem-errorBackground: #c72e0f; + --vscode-statusBarItem-errorForeground: #ffffff; + --vscode-statusBarItem-warningBackground: #7a6400; + --vscode-statusBarItem-warningForeground: #ffffff; + --vscode-activityBar-background: #333333; + --vscode-activityBar-foreground: #ffffff; + --vscode-activityBar-inactiveForeground: rgba(255, 255, 255, 0.4); + --vscode-activityBar-activeBorder: #ffffff; + --vscode-activityBar-dropBorder: #ffffff; + --vscode-activityBarBadge-background: #007acc; + --vscode-activityBarBadge-foreground: #ffffff; + --vscode-statusBarItem-remoteBackground: #16825d; + --vscode-statusBarItem-remoteForeground: #ffffff; + --vscode-extensionBadge-remoteBackground: #007acc; + --vscode-extensionBadge-remoteForeground: #ffffff; + --vscode-sideBar-background: #252526; + --vscode-sideBarTitle-foreground: #bbbbbb; + --vscode-sideBar-dropBackground: rgba(83, 89, 93, 0.5); + --vscode-sideBarSectionHeader-background: rgba(0, 0, 0, 0); + --vscode-sideBarSectionHeader-border: rgba(204, 204, 204, 0.2); + --vscode-titleBar-activeForeground: #cccccc; + --vscode-titleBar-inactiveForeground: rgba(204, 204, 204, 0.6); + --vscode-titleBar-activeBackground: #3c3c3c; + --vscode-titleBar-inactiveBackground: rgba(60, 60, 60, 0.6); + --vscode-menubar-selectionForeground: #cccccc; + --vscode-menubar-selectionBackground: rgba(90, 93, 94, 0.31); + --vscode-notifications-foreground: #cccccc; + --vscode-notifications-background: #252526; + --vscode-notificationLink-foreground: #3794ff; + --vscode-notificationCenterHeader-background: #303031; + --vscode-notifications-border: #303031; + --vscode-notificationsErrorIcon-foreground: #f14c4c; + --vscode-notificationsWarningIcon-foreground: #cca700; + --vscode-notificationsInfoIcon-foreground: #3794ff; + --vscode-commandCenter-foreground: #cccccc; + --vscode-commandCenter-activeForeground: #cccccc; + --vscode-commandCenter-activeBackground: rgba(90, 93, 94, 0.31); + --vscode-commandCenter-border: rgba(128, 128, 128, 0.35); + --vscode-editorCommentsWidget-resolvedBorder: rgba(204, 204, 204, 0.5); + --vscode-editorCommentsWidget-unresolvedBorder: #3794ff; + --vscode-editorCommentsWidget-rangeBackground: rgba(55, 148, 255, 0.1); + --vscode-editorCommentsWidget-rangeBorder: rgba(55, 148, 255, 0.4); + --vscode-editorCommentsWidget-rangeActiveBackground: rgba(55, 148, 255, 0.1); + --vscode-editorCommentsWidget-rangeActiveBorder: rgba(55, 148, 255, 0.4); + --vscode-editorGutter-commentRangeForeground: #37373d; + --vscode-debugToolBar-background: #333333; + --vscode-debugIcon-startForeground: #89d185; + --vscode-editor-stackFrameHighlightBackground: rgba(255, 255, 0, 0.2); + --vscode-editor-focusedStackFrameHighlightBackground: rgba(122, 189, 122, 0.3); + --vscode-mergeEditor-change\.background: rgba(155, 185, 85, 0.2); + --vscode-mergeEditor-change\.word\.background: rgba(156, 204, 44, 0.2); + --vscode-mergeEditor-conflict\.unhandledUnfocused\.border: rgba(255, 166, 0, 0.48); + --vscode-mergeEditor-conflict\.unhandledFocused\.border: #ffa600; + --vscode-mergeEditor-conflict\.handledUnfocused\.border: rgba(134, 134, 134, 0.29); + --vscode-mergeEditor-conflict\.handledFocused\.border: rgba(193, 193, 193, 0.8); + --vscode-mergeEditor-conflict\.handled\.minimapOverViewRuler: rgba(173, 172, 168, 0.93); + --vscode-mergeEditor-conflict\.unhandled\.minimapOverViewRuler: #fcba03; + --vscode-mergeEditor-conflictingLines\.background: rgba(255, 234, 0, 0.28); + --vscode-settings-headerForeground: #e7e7e7; + --vscode-settings-modifiedItemIndicator: #0c7d9d; + --vscode-settings-headerBorder: rgba(128, 128, 128, 0.35); + --vscode-settings-sashBorder: rgba(128, 128, 128, 0.35); + --vscode-settings-dropdownBackground: #3c3c3c; + --vscode-settings-dropdownForeground: #f0f0f0; + --vscode-settings-dropdownBorder: #3c3c3c; + --vscode-settings-dropdownListBorder: #454545; + --vscode-settings-checkboxBackground: #3c3c3c; + --vscode-settings-checkboxForeground: #f0f0f0; + --vscode-settings-checkboxBorder: #3c3c3c; + --vscode-settings-textInputBackground: #3c3c3c; + --vscode-settings-textInputForeground: #cccccc; + --vscode-settings-numberInputBackground: #3c3c3c; + --vscode-settings-numberInputForeground: #cccccc; + --vscode-settings-focusedRowBackground: rgba(42, 45, 46, 0.6); + --vscode-settings-rowHoverBackground: rgba(42, 45, 46, 0.3); + --vscode-settings-focusedRowBorder: rgba(255, 255, 255, 0.12); + --vscode-terminal-foreground: #cccccc; + --vscode-terminal-selectionBackground: #264f78; + --vscode-terminal-inactiveSelectionBackground: #3a3d41; + --vscode-terminalCommandDecoration-defaultBackground: rgba(255, 255, 255, 0.25); + --vscode-terminalCommandDecoration-successBackground: #1b81a8; + --vscode-terminalCommandDecoration-errorBackground: #f14c4c; + --vscode-terminalOverviewRuler-cursorForeground: rgba(160, 160, 160, 0.8); + --vscode-terminal-border: rgba(128, 128, 128, 0.35); + --vscode-terminal-findMatchBackground: #515c6a; + --vscode-terminal-findMatchHighlightBackground: rgba(234, 92, 0, 0.33); + --vscode-terminalOverviewRuler-findMatchForeground: rgba(209, 134, 22, 0.49); + --vscode-terminal-dropBackground: rgba(83, 89, 93, 0.5); + --vscode-testing-iconFailed: #f14c4c; + --vscode-testing-iconErrored: #f14c4c; + --vscode-testing-iconPassed: #73c991; + --vscode-testing-runAction: #73c991; + --vscode-testing-iconQueued: #cca700; + --vscode-testing-iconUnset: #848484; + --vscode-testing-iconSkipped: #848484; + --vscode-testing-peekBorder: #f14c4c; + --vscode-testing-peekHeaderBackground: rgba(241, 76, 76, 0.1); + --vscode-testing-message\.error\.decorationForeground: #f14c4c; + --vscode-testing-message\.error\.lineBackground: rgba(255, 0, 0, 0.2); + --vscode-testing-message\.info\.decorationForeground: rgba(212, 212, 212, 0.5); + --vscode-welcomePage-tileBackground: #252526; + --vscode-welcomePage-tileHoverBackground: #2c2c2d; + --vscode-welcomePage-tileShadow: rgba(0, 0, 0, 0.36); + --vscode-welcomePage-progress\.background: #3c3c3c; + --vscode-welcomePage-progress\.foreground: #3794ff; + --vscode-debugExceptionWidget-border: #a31515; + --vscode-debugExceptionWidget-background: #420b0d; + --vscode-ports-iconRunningProcessForeground: #369432; + --vscode-statusBar-debuggingBackground: #cc6633; + --vscode-statusBar-debuggingForeground: #ffffff; + --vscode-editor-inlineValuesForeground: rgba(255, 255, 255, 0.5); + --vscode-editor-inlineValuesBackground: rgba(255, 200, 0, 0.2); + --vscode-editorGutter-modifiedBackground: #1b81a8; + --vscode-editorGutter-addedBackground: #487e02; + --vscode-editorGutter-deletedBackground: #f14c4c; + --vscode-minimapGutter-modifiedBackground: #1b81a8; + --vscode-minimapGutter-addedBackground: #487e02; + --vscode-minimapGutter-deletedBackground: #f14c4c; + --vscode-editorOverviewRuler-modifiedForeground: rgba(27, 129, 168, 0.6); + --vscode-editorOverviewRuler-addedForeground: rgba(72, 126, 2, 0.6); + --vscode-editorOverviewRuler-deletedForeground: rgba(241, 76, 76, 0.6); + --vscode-debugIcon-breakpointForeground: #e51400; + --vscode-debugIcon-breakpointDisabledForeground: #848484; + --vscode-debugIcon-breakpointUnverifiedForeground: #848484; + --vscode-debugIcon-breakpointCurrentStackframeForeground: #ffcc00; + --vscode-debugIcon-breakpointStackframeForeground: #89d185; + --vscode-notebook-cellBorderColor: #37373d; + --vscode-notebook-focusedEditorBorder: #007fd4; + --vscode-notebookStatusSuccessIcon-foreground: #89d185; + --vscode-notebookStatusErrorIcon-foreground: #f48771; + --vscode-notebookStatusRunningIcon-foreground: #cccccc; + --vscode-notebook-cellToolbarSeparator: rgba(128, 128, 128, 0.35); + --vscode-notebook-selectedCellBackground: #37373d; + --vscode-notebook-selectedCellBorder: #37373d; + --vscode-notebook-focusedCellBorder: #007fd4; + --vscode-notebook-inactiveFocusedCellBorder: #37373d; + --vscode-notebook-cellStatusBarItemHoverBackground: rgba(255, 255, 255, 0.15); + --vscode-notebook-cellInsertionIndicator: #007fd4; + --vscode-notebookScrollbarSlider-background: rgba(121, 121, 121, 0.4); + --vscode-notebookScrollbarSlider-hoverBackground: rgba(100, 100, 100, 0.7); + --vscode-notebookScrollbarSlider-activeBackground: rgba(191, 191, 191, 0.4); + --vscode-notebook-symbolHighlightBackground: rgba(255, 255, 255, 0.04); + --vscode-notebook-cellEditorBackground: #252526; + --vscode-notebook-editorBackground: #1e1e1e; + --vscode-keybindingTable-headerBackground: rgba(204, 204, 204, 0.04); + --vscode-keybindingTable-rowsBackground: rgba(204, 204, 204, 0.04); + --vscode-scm-providerBorder: #454545; + --vscode-debugTokenExpression-name: #c586c0; + --vscode-debugTokenExpression-value: rgba(204, 204, 204, 0.6); + --vscode-debugTokenExpression-string: #ce9178; + --vscode-debugTokenExpression-boolean: #4e94ce; + --vscode-debugTokenExpression-number: #b5cea8; + --vscode-debugTokenExpression-error: #f48771; + --vscode-debugView-exceptionLabelForeground: #cccccc; + --vscode-debugView-exceptionLabelBackground: #6c2022; + --vscode-debugView-stateLabelForeground: #cccccc; + --vscode-debugView-stateLabelBackground: rgba(136, 136, 136, 0.27); + --vscode-debugView-valueChangedHighlight: #569cd6; + --vscode-debugConsole-infoForeground: #3794ff; + --vscode-debugConsole-warningForeground: #cca700; + --vscode-debugConsole-errorForeground: #f48771; + --vscode-debugConsole-sourceForeground: #cccccc; + --vscode-debugConsoleInputIcon-foreground: #cccccc; + --vscode-debugIcon-pauseForeground: #75beff; + --vscode-debugIcon-stopForeground: #f48771; + --vscode-debugIcon-disconnectForeground: #f48771; + --vscode-debugIcon-restartForeground: #89d185; + --vscode-debugIcon-stepOverForeground: #75beff; + --vscode-debugIcon-stepIntoForeground: #75beff; + --vscode-debugIcon-stepOutForeground: #75beff; + --vscode-debugIcon-continueForeground: #75beff; + --vscode-debugIcon-stepBackForeground: #75beff; + --vscode-extensionButton-prominentBackground: #0e639c; + --vscode-extensionButton-prominentForeground: #ffffff; + --vscode-extensionButton-prominentHoverBackground: #1177bb; + --vscode-extensionIcon-starForeground: #ff8e00; + --vscode-extensionIcon-verifiedForeground: #3794ff; + --vscode-extensionIcon-preReleaseForeground: #1d9271; + --vscode-extensionIcon-sponsorForeground: #d758b3; + --vscode-terminal-ansiBlack: #000000; + --vscode-terminal-ansiRed: #cd3131; + --vscode-terminal-ansiGreen: #0dbc79; + --vscode-terminal-ansiYellow: #e5e510; + --vscode-terminal-ansiBlue: #2472c8; + --vscode-terminal-ansiMagenta: #bc3fbc; + --vscode-terminal-ansiCyan: #11a8cd; + --vscode-terminal-ansiWhite: #e5e5e5; + --vscode-terminal-ansiBrightBlack: #666666; + --vscode-terminal-ansiBrightRed: #f14c4c; + --vscode-terminal-ansiBrightGreen: #23d18b; + --vscode-terminal-ansiBrightYellow: #f5f543; + --vscode-terminal-ansiBrightBlue: #3b8eea; + --vscode-terminal-ansiBrightMagenta: #d670d6; + --vscode-terminal-ansiBrightCyan: #29b8db; + --vscode-terminal-ansiBrightWhite: #e5e5e5; + --vscode-interactive-activeCodeBorder: #3794ff; + --vscode-interactive-inactiveCodeBorder: #37373d; + --vscode-gitDecoration-addedResourceForeground: #81b88b; + --vscode-gitDecoration-modifiedResourceForeground: #e2c08d; + --vscode-gitDecoration-deletedResourceForeground: #c74e39; + --vscode-gitDecoration-renamedResourceForeground: #73c991; + --vscode-gitDecoration-untrackedResourceForeground: #73c991; + --vscode-gitDecoration-ignoredResourceForeground: #8c8c8c; + --vscode-gitDecoration-stageModifiedResourceForeground: #e2c08d; + --vscode-gitDecoration-stageDeletedResourceForeground: #c74e39; + --vscode-gitDecoration-conflictingResourceForeground: #e4676b; + --vscode-gitDecoration-submoduleResourceForeground: #8db9e2; + } + .test-error-container { + position: relative; + white-space: pre; + flex: none; + padding: 0; + background-color: var(--color-canvas-subtle); + border-radius: 6px; + line-height: initial; + margin-bottom: 6px; + } + .test-error-view { + overflow: auto; + padding: 16px; + } + .test-error-text { + font-family: monospace; + } + .test-result { + flex: auto; + display: flex; + flex-direction: column; + margin-bottom: 24px; + } + .test-result > div { + flex: none; + } + .test-result video, + .test-result img.screenshot { + flex: none; + box-shadow: var(--box-shadow-thick); + margin: 24px auto; + min-width: 200px; + max-width: 80%; + } + .test-result-path { + padding: 0 0 0 5px; + color: var(--color-fg-muted); + } + .test-result-counter { + border-radius: 12px; + color: var(--color-canvas-default); + padding: 2px 8px; + line-height: normal; + } + .step-title-container { + display: flex; + align-items: center; + flex: auto; + min-width: 0; + } + .step-title-container > * { + flex-shrink: 0; + } + .step-title-text { + flex-shrink: 1; + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; + min-width: 0; + } + .step-spacer { + flex: auto; + } + .step-attachment-link { + display: flex; + flex: none; + border-radius: 4px; + padding: 4px; + } + .step-attachment-link:hover { + background-color: var(--color-neutral-muted); + } + .step-attachment-link .octicon { + margin-right: 0; + } + .step-duration { + flex: none; + white-space: nowrap; + margin-left: 4px; + } + :root.light-mode .test-result-counter { + background: var(--color-scale-gray-5); + } + :root.dark-mode .test-result-counter { + background: var(--color-scale-gray-3); + } + @media only screen and (max-width: 600px) { + .test-result { + padding: 0 !important; + } + } + .test-file-test { + line-height: 32px; + align-items: center; + padding: 2px 8px; + overflow: hidden; + text-overflow: ellipsis; + } + .test-file-test:hover { + background-color: var(--color-canvas-subtle); + } + .test-file-title { + font-weight: 600; + font-size: 16px; + } + .test-file-details-row { + padding: 0 0 6px 8px; + margin: 0 0 0 15px; + line-height: 16px; + font-weight: 400; + color: var(--color-fg-muted); + display: flex; + align-items: center; + } + .test-file-details-row-items { + display: flex; + height: 16px; + } + .test-file-details-row-items > .link-badge { + margin-top: -2px; + } + .test-file-details-row-items > .trace-link { + margin-top: -4px; + } + .test-file-path { + text-overflow: ellipsis; + overflow: hidden; + color: var(--color-fg-muted); + } + .test-file-path-link { + margin-right: 10px; + } + .test-file-test-outcome-skipped { + color: var(--color-fg-muted); + } + .test-file-test-status-icon { + flex: none; + } + .test-file-header-info { + display: flex; + align-items: center; + gap: 4px 8px; + color: var(--color-fg-muted); + } + .test-file-header-br { + flex-basis: 100%; + height: 0; + } + .test-file-no-files { + margin-top: 12px; + color: var(--color-fg-muted); + background-color: unset; + font-weight: unset; + border: 1px solid var(--color-border-default); + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + } + #root { + color: var(--color-fg-default); + font-size: 14px; + font-family: + -apple-system, + BlinkMacSystemFont, + Segoe UI, + Helvetica, + Arial, + sans-serif, + 'Apple Color Emoji', + 'Segoe UI Emoji'; + -webkit-font-smoothing: antialiased; + } + .metadata-toggle { + cursor: pointer; + -webkit-user-select: none; + user-select: none; + color: var(--color-fg-default); + } + .metadata-toggle-second-line { + margin-top: 8px; + margin-left: 8px; + } + .metadata-view { + border: 1px solid var(--color-border-default); + border-radius: 6px; + margin-top: 12px; + } + .metadata-view .metadata-section { + margin: 8px 10px 8px 32px; + } + .metadata-view span:not(.copy-button-container), + .metadata-view a { + display: inline-block; + line-height: 24px; + } + .metadata-properties { + display: flex; + flex-direction: column; + align-items: normal; + gap: 8px; + } + .metadata-properties > div { + height: 24px; + } + .metadata-separator { + height: 1px; + border-bottom: 1px solid var(--color-border-default); + } + .metadata-view a { + color: var(--color-fg-default); + } + .copyable-property { + white-space: pre; + } + .copyable-property > span { + display: flex; + align-items: center; + } + .gantt-bar { + transition: opacity 0.2s; + cursor: pointer; + outline: none; + } + .gantt-bar:hover, + .gantt-bar:focus { + opacity: 0.8; + stroke: var(--color-fg-default); + stroke-width: 2; + } + </style> </head> <body> - <div id='root'></div> + <div id="root"></div> </body> </html> -<script id="playwrightReportBase64" type="application/zip">data:application/zip;base64,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</script>
\ No newline at end of file +<script id="playwrightReportBase64" type="application/zip"> + data:application/zip;base64,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 +</script> diff --git a/frontend/playwright.config.ts b/frontend/playwright.config.ts index a44a03e..26e0b59 100644 --- a/frontend/playwright.config.ts +++ b/frontend/playwright.config.ts @@ -1,25 +1,25 @@ import { defineConfig, devices } from '@playwright/test'; export default defineConfig({ - testDir: './tests', - fullyParallel: true, - forbidOnly: !!process.env.CI, - retries: process.env.CI ? 2 : 0, - workers: 1, // Avoid VM crash - reporter: 'html', - use: { - baseURL: 'http://localhost:5173', // Vite dev server - trace: 'on-first-retry', - }, - projects: [ - { - name: 'chromium', - use: { ...devices['Desktop Chrome'] }, - }, - ], - webServer: { - command: 'npm run dev', - url: 'http://localhost:5173', - reuseExistingServer: !process.env.CI, + testDir: './tests', + fullyParallel: true, + forbidOnly: !!process.env.CI, + retries: process.env.CI ? 2 : 0, + workers: 1, // Avoid VM crash + reporter: 'html', + use: { + baseURL: 'http://localhost:5173', // Vite dev server + trace: 'on-first-retry', + }, + projects: [ + { + name: 'chromium', + use: { ...devices['Desktop Chrome'] }, }, + ], + webServer: { + command: 'npm run dev', + url: 'http://localhost:5173', + reuseExistingServer: !process.env.CI, + }, }); diff --git a/frontend/src/App.css b/frontend/src/App.css index 3463f5d..09d1408 100644 --- a/frontend/src/App.css +++ b/frontend/src/App.css @@ -5,8 +5,6 @@ body { margin: 0; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; } /* Dashboard Layout */ @@ -89,7 +87,7 @@ body { } .dashboard-main>* { - max-width: 600px; + max-width: 35em; margin: 0; } diff --git a/frontend/src/App.test.tsx b/frontend/src/App.test.tsx index 303ac7e..196f32a 100644 --- a/frontend/src/App.test.tsx +++ b/frontend/src/App.test.tsx @@ -5,52 +5,55 @@ import App from './App'; import { describe, it, expect, vi, beforeEach } from 'vitest'; describe('App', () => { - beforeEach(() => { - vi.resetAllMocks(); - global.fetch = vi.fn(); + beforeEach(() => { + vi.resetAllMocks(); + global.fetch = vi.fn(); + }); + + it('renders login on initial load (unauthenticated)', async () => { + (global.fetch as any).mockResolvedValueOnce({ + ok: false, }); - - it('renders login on initial load (unauthenticated)', async () => { - (global.fetch as any).mockResolvedValueOnce({ - ok: false, - }); - window.history.pushState({}, 'Test page', '/v2/login'); - render(<App />); - expect(screen.getByRole('button', { name: /login/i })).toBeInTheDocument(); + window.history.pushState({}, 'Test page', '/v2/login'); + render(<App />); + expect(screen.getByRole('button', { name: /login/i })).toBeInTheDocument(); + }); + + it('renders dashboard when authenticated', async () => { + (global.fetch as any).mockImplementation((url: string) => { + if (url.includes('/api/auth')) return Promise.resolve({ ok: true }); + if (url.includes('/api/feed/')) return Promise.resolve({ ok: true, json: async () => [] }); + if (url.includes('/api/tag')) return Promise.resolve({ ok: true, json: async () => [] }); + return Promise.resolve({ ok: true }); // Fallback }); - it('renders dashboard when authenticated', async () => { - (global.fetch as any).mockImplementation((url: string) => { - if (url.includes('/api/auth')) return Promise.resolve({ ok: true }); - if (url.includes('/api/feed/')) return Promise.resolve({ ok: true, json: async () => [] }); - if (url.includes('/api/tag')) return Promise.resolve({ ok: true, json: async () => [] }); - return Promise.resolve({ ok: true }); // Fallback - }); - - window.history.pushState({}, 'Test page', '/v2/'); - render(<App />); + window.history.pushState({}, 'Test page', '/v2/'); + render(<App />); - await waitFor(() => { - expect(screen.getByText('🐱')).toBeInTheDocument(); - }); + await waitFor(() => { + expect(screen.getByText('🐱')).toBeInTheDocument(); + }); - // Test Logout - const logoutBtn = screen.getByText(/logout/i); - expect(logoutBtn).toBeInTheDocument(); + // Test Logout + const logoutBtn = screen.getByText(/logout/i); + expect(logoutBtn).toBeInTheDocument(); - // Mock window.location - Object.defineProperty(window, 'location', { - configurable: true, - value: { href: '' }, - }); + // Mock window.location + Object.defineProperty(window, 'location', { + configurable: true, + value: { href: '' }, + }); - (global.fetch as any).mockResolvedValueOnce({ ok: true }); + (global.fetch as any).mockResolvedValueOnce({ ok: true }); - fireEvent.click(logoutBtn); + fireEvent.click(logoutBtn); - await waitFor(() => { - expect(global.fetch).toHaveBeenCalledWith('/api/logout', expect.objectContaining({ method: 'POST' })); - expect(window.location.href).toBe('/v2/login'); - }); + await waitFor(() => { + expect(global.fetch).toHaveBeenCalledWith( + '/api/logout', + expect.objectContaining({ method: 'POST' }) + ); + expect(window.location.href).toBe('/v2/login'); }); + }); }); diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 9f53ace..4835cd3 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -35,21 +35,47 @@ import FeedList from './components/FeedList'; import FeedItems from './components/FeedItems'; import Settings from './components/Settings'; -function Dashboard({ theme, setTheme }: { theme: string, setTheme: (t: string) => void }) { +function Dashboard({ theme, setTheme }: { theme: string; setTheme: (t: string) => void }) { const navigate = useNavigate(); const [sidebarVisible, setSidebarVisible] = useState(true); return ( - <div className={`dashboard ${sidebarVisible ? 'sidebar-visible' : 'sidebar-hidden'} theme-${theme}`}> + <div + className={`dashboard ${sidebarVisible ? 'sidebar-visible' : 'sidebar-hidden'} theme-${theme}`} + > <header className="dashboard-header"> - <h1 className="logo" onClick={() => setSidebarVisible(!sidebarVisible)} style={{ cursor: 'pointer' }}>🐱</h1> + <h1 + className="logo" + onClick={() => setSidebarVisible(!sidebarVisible)} + style={{ cursor: 'pointer' }} + > + 🐱 + </h1> <nav> - <button onClick={() => navigate('/settings')} className="nav-link" style={{ color: 'white', marginRight: '1rem', background: 'none', border: 'none', cursor: 'pointer', fontSize: 'inherit', fontFamily: 'inherit' }}>Settings</button> + <button + onClick={() => navigate('/settings')} + className="nav-link" + style={{ + color: 'white', + marginRight: '1rem', + background: 'none', + border: 'none', + cursor: 'pointer', + fontSize: 'inherit', + fontFamily: 'inherit', + }} + > + Settings + </button> - <button onClick={() => { - fetch('/api/logout', { method: 'POST' }) - .then(() => window.location.href = '/v2/login'); - }} className="logout-btn"> + <button + onClick={() => { + fetch('/api/logout', { method: 'POST' }).then( + () => (window.location.href = '/v2/login') + ); + }} + className="logout-btn" + > Logout </button> </nav> diff --git a/frontend/src/components/FeedItem.css b/frontend/src/components/FeedItem.css index 1261737..1736032 100644 --- a/frontend/src/components/FeedItem.css +++ b/frontend/src/components/FeedItem.css @@ -1,114 +1,108 @@ .feed-item { - padding: 1rem; - margin-top: 5rem; - list-style: none; - border-bottom: none; + padding: 1rem; + margin-top: 5rem; + list-style: none; + border-bottom: none; } -.feed-item.read .item-title { - font-weight: normal; -} - -.feed-item.unread .item-title { - font-weight: bold; -} +/* removed read/unread specific font-weight to keep it always bold as requested */ .item-header { - display: flex; - justify-content: space-between; - align-items: flex-start; - margin-bottom: 0.5rem; + display: flex; + justify-content: space-between; + align-items: flex-start; + margin-bottom: 0.5rem; } .item-title { - font-size: 1.35rem; - /* approx 24px */ - font-weight: bold; - text-decoration: none; - color: var(--link-color); - display: block; - flex: 1; + font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; + font-size: 1.8rem; + font-weight: bold; + text-decoration: none; + color: var(--link-color); + display: block; + flex: 1; } .item-title:hover { - text-decoration: none; - color: var(--link-color); + text-decoration: none; + color: var(--link-color); } .item-actions { - display: flex; - gap: 0.5rem; - margin-left: 1rem; + display: flex; + gap: 0.5rem; + margin-left: 1rem; } /* Legacy controls were simple text/links, but buttons are fine if minimal */ .star-btn { - background: none; - border: none; - cursor: pointer; - font-size: 1.25rem; - padding: 0 0 0 0.5rem; - vertical-align: middle; - transition: color 0.2s; - line-height: 1; + background: none; + border: none; + cursor: pointer; + font-size: 1.25rem; + padding: 0 0 0 0.5rem; + vertical-align: middle; + transition: color 0.2s; + line-height: 1; } .star-btn.is-starred { - color: blue; + color: blue; } .star-btn.is-unstarred { - color: black; + color: black; } .star-btn:hover { - color: blue; + color: blue; } .action-btn { - background: whitesmoke; - border: none; - cursor: pointer; - padding: 2px 6px; - font-size: 1rem; - color: blue; - font-weight: bold; + background: whitesmoke; + border: none; + cursor: pointer; + padding: 2px 6px; + font-size: 1rem; + color: blue; + font-weight: bold; } .action-btn:hover { - background-color: #eee; + background-color: #eee; } .dateline { - margin-top: 0; - font-weight: normal; - font-size: .75em; - color: #ccc; - margin-bottom: 1rem; + margin-top: 0; + font-weight: normal; + font-size: 0.75em; + color: #ccc; + margin-bottom: 1rem; } .dateline a { - color: #ccc; - text-decoration: none; + color: #ccc; + text-decoration: none; } .item-description { - color: #000; - line-height: 1.5; - font-size: 1rem; - margin-top: 1rem; + color: var(--text-color); + line-height: 1.5; + font-size: 1rem; + margin-top: 1rem; } .item-description img { - max-width: 100%; - height: auto; - display: block; - margin: 1rem 0; + max-width: 100%; + height: auto; + display: block; + margin: 1rem 0; } .item-description blockquote { - padding: 1rem 1rem 0 1rem; - border-left: 4px solid #ddd; - color: #666; - margin-left: 0; + padding: 1rem 1rem 0 1rem; + border-left: 4px solid #ddd; + color: #666; + margin-left: 0; }
\ No newline at end of file diff --git a/frontend/src/components/FeedItem.test.tsx b/frontend/src/components/FeedItem.test.tsx index f0497c6..cb9aafa 100644 --- a/frontend/src/components/FeedItem.test.tsx +++ b/frontend/src/components/FeedItem.test.tsx @@ -6,66 +6,69 @@ import FeedItem from './FeedItem'; import type { Item } from '../types'; const mockItem: Item = { - _id: 1, - feed_id: 101, - title: 'Test Item', - url: 'http://example.com/item', - description: '<p>Description</p>', - publish_date: '2023-01-01', - read: false, - starred: false, - feed_title: 'Test Feed' + _id: 1, + feed_id: 101, + title: 'Test Item', + url: 'http://example.com/item', + description: '<p>Description</p>', + publish_date: '2023-01-01', + read: false, + starred: false, + feed_title: 'Test Feed', }; describe('FeedItem Component', () => { - beforeEach(() => { - vi.resetAllMocks(); - global.fetch = vi.fn(); - }); + beforeEach(() => { + vi.resetAllMocks(); + global.fetch = vi.fn(); + }); - it('renders item details', () => { - render(<FeedItem item={mockItem} />); - expect(screen.getByText('Test Item')).toBeInTheDocument(); - expect(screen.getByText(/Test Feed/)).toBeInTheDocument(); - // Check for relative time or date formatting? For now just check it renders - }); + it('renders item details', () => { + render(<FeedItem item={mockItem} />); + expect(screen.getByText('Test Item')).toBeInTheDocument(); + expect(screen.getByText(/Test Feed/)).toBeInTheDocument(); + // Check for relative time or date formatting? For now just check it renders + }); - it('toggles star status', async () => { - (global.fetch as any).mockResolvedValueOnce({ ok: true, json: async () => ({}) }); + it('toggles star status', async () => { + (global.fetch as any).mockResolvedValueOnce({ ok: true, json: async () => ({}) }); - render(<FeedItem item={mockItem} />); + render(<FeedItem item={mockItem} />); - const starBtn = screen.getByTitle('Star'); - expect(starBtn).toHaveTextContent('★'); - fireEvent.click(starBtn); + const starBtn = screen.getByTitle('Star'); + expect(starBtn).toHaveTextContent('★'); + fireEvent.click(starBtn); - // Optimistic update - expect(await screen.findByTitle('Unstar')).toHaveTextContent('★'); + // Optimistic update + expect(await screen.findByTitle('Unstar')).toHaveTextContent('★'); - expect(global.fetch).toHaveBeenCalledWith('/api/item/1', expect.objectContaining({ - method: 'PUT', - body: JSON.stringify({ - _id: 1, - read: false, - starred: true - }) - })); - }); + expect(global.fetch).toHaveBeenCalledWith( + '/api/item/1', + expect.objectContaining({ + method: 'PUT', + body: JSON.stringify({ + _id: 1, + read: false, + starred: true, + }), + }) + ); + }); - it('updates styling when read state changes', () => { - const { rerender } = render(<FeedItem item={{ ...mockItem, read: false }} />); - const link = screen.getByText('Test Item'); - // Initial state: unread (bold) - // Note: checking computed style might be flaky in jsdom, but we can check the class on the parent - const listItem = link.closest('li'); - expect(listItem).toHaveClass('unread'); - expect(listItem).not.toHaveClass('read'); + it('updates styling when read state changes', () => { + const { rerender } = render(<FeedItem item={{ ...mockItem, read: false }} />); + const link = screen.getByText('Test Item'); + // Initial state: unread (bold) + // Note: checking computed style might be flaky in jsdom, but we can check the class on the parent + const listItem = link.closest('li'); + expect(listItem).toHaveClass('unread'); + expect(listItem).not.toHaveClass('read'); - // Update prop to read - rerender(<FeedItem item={{ ...mockItem, read: true }} />); + // Update prop to read + rerender(<FeedItem item={{ ...mockItem, read: true }} />); - // Should now be read - expect(listItem).toHaveClass('read'); - expect(listItem).not.toHaveClass('unread'); - }); + // Should now be read + expect(listItem).toHaveClass('read'); + expect(listItem).not.toHaveClass('unread'); + }); }); diff --git a/frontend/src/components/FeedItem.tsx b/frontend/src/components/FeedItem.tsx index b86e60c..9b40114 100644 --- a/frontend/src/components/FeedItem.tsx +++ b/frontend/src/components/FeedItem.tsx @@ -3,86 +3,84 @@ import type { Item } from '../types'; import './FeedItem.css'; interface FeedItemProps { - item: Item; + item: Item; } export default function FeedItem({ item: initialItem }: FeedItemProps) { - const [item, setItem] = useState(initialItem); - const [loading, setLoading] = useState(false); + const [item, setItem] = useState(initialItem); + const [loading, setLoading] = useState(false); - useEffect(() => { - setItem(initialItem); - }, [initialItem]); + useEffect(() => { + setItem(initialItem); + }, [initialItem]); + const toggleStar = () => { + updateItem({ ...item, starred: !item.starred }); + }; - const toggleStar = () => { - updateItem({ ...item, starred: !item.starred }); - }; + const updateItem = (newItem: Item) => { + setLoading(true); + // Optimistic update + const previousItem = item; + setItem(newItem); - const updateItem = (newItem: Item) => { - setLoading(true); - // Optimistic update - const previousItem = item; - setItem(newItem); + fetch(`/api/item/${newItem._id}`, { + method: 'PUT', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ + _id: newItem._id, + read: newItem.read, + starred: newItem.starred, + }), + }) + .then((res) => { + if (!res.ok) { + throw new Error('Failed to update item'); + } + return res.json(); + }) + .then(() => { + // Confirm with server response if needed, but for now we trust the optimistic update + // or we could setItem(updated) if the server returns the full object + setLoading(false); + }) + .catch((err) => { + console.error('Error updating item:', err); + // Revert on error + setItem(previousItem); + setLoading(false); + }); + }; - fetch(`/api/item/${newItem._id}`, { - method: 'PUT', - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify({ - _id: newItem._id, - read: newItem.read, - starred: newItem.starred, - }), - }) - .then((res) => { - if (!res.ok) { - throw new Error('Failed to update item'); - } - return res.json(); - }) - .then(() => { - // Confirm with server response if needed, but for now we trust the optimistic update - // or we could setItem(updated) if the server returns the full object - setLoading(false); - }) - .catch((err) => { - console.error('Error updating item:', err); - // Revert on error - setItem(previousItem); - setLoading(false); - }); - }; - - return ( - <li className={`feed-item ${item.read ? 'read' : 'unread'} ${loading ? 'loading' : ''}`}> - <div className="item-header"> - <a href={item.url} target="_blank" rel="noopener noreferrer" className="item-title"> - {item.title || '(No Title)'} - </a> - <button - onClick={(e) => { - e.stopPropagation(); - toggleStar(); - }} - className={`star-btn ${item.starred ? 'is-starred' : 'is-unstarred'}`} - title={item.starred ? "Unstar" : "Star"} - > - ★ - </button> - </div> - <div className="dateline"> - <a href={item.url} target="_blank" rel="noopener noreferrer"> - {new Date(item.publish_date).toLocaleDateString()} - {item.feed_title && ` - ${item.feed_title}`} - </a> - <div className="item-actions" style={{ display: 'inline-block', float: 'right' }}> - </div> - </div> - {item.description && ( - <div className="item-description" dangerouslySetInnerHTML={{ __html: item.description }} /> - )} - </li> - ); + return ( + <li className={`feed-item ${item.read ? 'read' : 'unread'} ${loading ? 'loading' : ''}`}> + <div className="item-header"> + <a href={item.url} target="_blank" rel="noopener noreferrer" className="item-title"> + {item.title || '(No Title)'} + </a> + <button + onClick={(e) => { + e.stopPropagation(); + toggleStar(); + }} + className={`star-btn ${item.starred ? 'is-starred' : 'is-unstarred'}`} + title={item.starred ? 'Unstar' : 'Star'} + > + ★ + </button> + </div> + <div className="dateline"> + <a href={item.url} target="_blank" rel="noopener noreferrer"> + {new Date(item.publish_date).toLocaleDateString()} + {item.feed_title && ` - ${item.feed_title}`} + </a> + <div className="item-actions" style={{ display: 'inline-block', float: 'right' }}></div> + </div> + {item.description && ( + <div className="item-description" dangerouslySetInnerHTML={{ __html: item.description }} /> + )} + </li> + ); } diff --git a/frontend/src/components/FeedItems.css b/frontend/src/components/FeedItems.css index 31394a4..02323a9 100644 --- a/frontend/src/components/FeedItems.css +++ b/frontend/src/components/FeedItems.css @@ -1,22 +1,23 @@ .feed-items { - padding: 1rem; + padding: 1rem 0; + /* Removing horizontal padding to avoid double-padding with FeedItem */ } .feed-items h2 { - margin-top: 0; - border-bottom: 2px solid #eee; - padding-bottom: 0.5rem; + margin-top: 0; + border-bottom: 2px solid #eee; + padding-bottom: 0.5rem; } .item-list { - list-style: none; - padding: 0; + list-style: none; + padding: 0; } .loading-more { - padding: 2rem; - text-align: center; - color: #888; - font-size: 0.9rem; - min-height: 50px; + padding: 2rem; + text-align: center; + color: #888; + font-size: 0.9rem; + min-height: 50px; }
\ No newline at end of file diff --git a/frontend/src/components/FeedItems.test.tsx b/frontend/src/components/FeedItems.test.tsx index ea68a7c..4d96da9 100644 --- a/frontend/src/components/FeedItems.test.tsx +++ b/frontend/src/components/FeedItems.test.tsx @@ -6,220 +6,241 @@ import { describe, it, expect, vi, beforeEach } from 'vitest'; import FeedItems from './FeedItems'; describe('FeedItems Component', () => { - beforeEach(() => { - vi.resetAllMocks(); - global.fetch = vi.fn(); - window.HTMLElement.prototype.scrollIntoView = vi.fn(); - - // Mock IntersectionObserver - class MockIntersectionObserver { - observe = vi.fn(); - unobserve = vi.fn(); - disconnect = vi.fn(); - } - window.IntersectionObserver = MockIntersectionObserver as any; + beforeEach(() => { + vi.resetAllMocks(); + global.fetch = vi.fn(); + window.HTMLElement.prototype.scrollIntoView = vi.fn(); + + // Mock IntersectionObserver + class MockIntersectionObserver { + observe = vi.fn(); + unobserve = vi.fn(); + disconnect = vi.fn(); + } + window.IntersectionObserver = MockIntersectionObserver as any; + }); + + it('renders loading state', () => { + (global.fetch as any).mockImplementation(() => new Promise(() => {})); + render( + <MemoryRouter initialEntries={['/feed/1']}> + <Routes> + <Route path="/feed/:feedId" element={<FeedItems />} /> + </Routes> + </MemoryRouter> + ); + expect(screen.getByText(/loading items/i)).toBeInTheDocument(); + }); + + it('renders items for a feed', async () => { + const mockItems = [ + { + _id: 101, + title: 'Item One', + url: 'http://example.com/1', + publish_date: '2023-01-01', + read: false, + }, + { + _id: 102, + title: 'Item Two', + url: 'http://example.com/2', + publish_date: '2023-01-02', + read: true, + }, + ]; + + (global.fetch as any).mockResolvedValueOnce({ + ok: true, + json: async () => mockItems, }); - it('renders loading state', () => { - (global.fetch as any).mockImplementation(() => new Promise(() => { })); - render( - <MemoryRouter initialEntries={['/feed/1']}> - <Routes> - <Route path="/feed/:feedId" element={<FeedItems />} /> - </Routes> - </MemoryRouter> - ); - expect(screen.getByText(/loading items/i)).toBeInTheDocument(); + render( + <MemoryRouter initialEntries={['/feed/1']}> + <Routes> + <Route path="/feed/:feedId" element={<FeedItems />} /> + </Routes> + </MemoryRouter> + ); + + await waitFor(() => { + expect(screen.getByText('Item One')).toBeInTheDocument(); + }); + + const params = new URLSearchParams(); + params.append('feed_id', '1'); + params.append('read_filter', 'unread'); + expect(global.fetch).toHaveBeenCalledWith(`/api/stream?${params.toString()}`); + }); + + it('handles keyboard shortcuts', async () => { + const mockItems = [ + { _id: 101, title: 'Item 1', url: 'u1', read: false, starred: false }, + { _id: 102, title: 'Item 2', url: 'u2', read: true, starred: false }, + ]; + + (global.fetch as any).mockResolvedValue({ + ok: true, + json: async () => mockItems, + }); + + render( + <MemoryRouter> + <FeedItems /> + </MemoryRouter> + ); + + await waitFor(() => { + expect(screen.getByText('Item 1')).toBeVisible(); + }); + + // Press 'j' to select first item (index 0 -> 1 because it starts at -1... wait logic says min(prev+1)) + // init -1. j -> 0. + fireEvent.keyDown(window, { key: 'j' }); + + // Item 1 (index 0) should be selected. + // It's unread, so it should be marked read. + await waitFor(() => { + expect(global.fetch).toHaveBeenCalledWith( + '/api/item/101', + expect.objectContaining({ + method: 'PUT', + body: JSON.stringify({ read: true, starred: false }), + }) + ); + }); + + // Press 'j' again -> index 1 (Item 2) + fireEvent.keyDown(window, { key: 'j' }); + + // Item 2 is already read, so no markRead call expected for it (mocks clear? no). + // let's check selection class if possible, but testing library doesn't easily check class on div wrapper unless we query it. + + // Press 's' to star Item 2 + fireEvent.keyDown(window, { key: 's' }); + + await waitFor(() => { + expect(global.fetch).toHaveBeenCalledWith( + '/api/item/102', + expect.objectContaining({ + method: 'PUT', + body: JSON.stringify({ read: true, starred: true }), // toggled to true + }) + ); }); + }); - it('renders items for a feed', async () => { - const mockItems = [ - { _id: 101, title: 'Item One', url: 'http://example.com/1', publish_date: '2023-01-01', read: false }, - { _id: 102, title: 'Item Two', url: 'http://example.com/2', publish_date: '2023-01-02', read: true }, - ]; - - (global.fetch as any).mockResolvedValueOnce({ - ok: true, - json: async () => mockItems, - }); - - render( - <MemoryRouter initialEntries={['/feed/1']}> - <Routes> - <Route path="/feed/:feedId" element={<FeedItems />} /> - </Routes> - </MemoryRouter> - ); - - await waitFor(() => { - expect(screen.getByText('Item One')).toBeInTheDocument(); - }); - - const params = new URLSearchParams(); - params.append('feed_id', '1'); - params.append('read_filter', 'unread'); - expect(global.fetch).toHaveBeenCalledWith(`/api/stream?${params.toString()}`); + it('marks items as read when scrolled past', async () => { + const mockItems = [{ _id: 101, title: 'Item 1', url: 'u1', read: false, starred: false }]; + (global.fetch as any).mockResolvedValue({ + ok: true, + json: async () => mockItems, }); - it('handles keyboard shortcuts', async () => { - const mockItems = [ - { _id: 101, title: 'Item 1', url: 'u1', read: false, starred: false }, - { _id: 102, title: 'Item 2', url: 'u2', read: true, starred: false }, - ]; - - (global.fetch as any).mockResolvedValue({ - ok: true, - json: async () => mockItems, - }); - - render( - <MemoryRouter> - <FeedItems /> - </MemoryRouter> - ); - - await waitFor(() => { - expect(screen.getByText('Item 1')).toBeVisible(); - }); - - // Press 'j' to select first item (index 0 -> 1 because it starts at -1... wait logic says min(prev+1)) - // init -1. j -> 0. - fireEvent.keyDown(window, { key: 'j' }); - - // Item 1 (index 0) should be selected. - // It's unread, so it should be marked read. - await waitFor(() => { - expect(global.fetch).toHaveBeenCalledWith('/api/item/101', expect.objectContaining({ - method: 'PUT', - body: JSON.stringify({ read: true, starred: false }), - })); - }); - - // Press 'j' again -> index 1 (Item 2) - fireEvent.keyDown(window, { key: 'j' }); - - // Item 2 is already read, so no markRead call expected for it (mocks clear? no). - // let's check selection class if possible, but testing library doesn't easily check class on div wrapper unless we query it. - - // Press 's' to star Item 2 - fireEvent.keyDown(window, { key: 's' }); - - await waitFor(() => { - expect(global.fetch).toHaveBeenCalledWith('/api/item/102', expect.objectContaining({ - method: 'PUT', - body: JSON.stringify({ read: true, starred: true }), // toggled to true - })); - }); + // Capture the callback + let observerCallback: IntersectionObserverCallback = () => {}; + + // Override the mock to capture callback + class MockIntersectionObserver { + constructor(callback: IntersectionObserverCallback) { + observerCallback = callback; + } + observe = vi.fn(); + unobserve = vi.fn(); + disconnect = vi.fn(); + } + window.IntersectionObserver = MockIntersectionObserver as any; + + render( + <MemoryRouter> + <FeedItems /> + </MemoryRouter> + ); + + await waitFor(() => { + expect(screen.getByText('Item 1')).toBeVisible(); + }); + + // Simulate item leaving viewport at the top + // Element index is 0 + const entry = { + isIntersecting: false, + boundingClientRect: { top: -50 } as DOMRectReadOnly, + target: { getAttribute: () => '0' } as unknown as Element, + intersectionRatio: 0, + time: 0, + rootBounds: null, + intersectionRect: {} as DOMRectReadOnly, + } as IntersectionObserverEntry; + + // Use vi.waitUntil to wait for callback to be assigned if needed, + // though strictly synchronous render + effect should do it. + // Direct call: + act(() => { + observerCallback([entry], {} as IntersectionObserver); + }); + + await waitFor(() => { + expect(global.fetch).toHaveBeenCalledWith( + '/api/item/101', + expect.objectContaining({ + method: 'PUT', + body: JSON.stringify({ read: true, starred: false }), + }) + ); + }); + }); + + it('loads more items when sentinel becomes visible', async () => { + const initialItems = [{ _id: 101, title: 'Item 1', url: 'u1', read: true, starred: false }]; + const moreItems = [{ _id: 100, title: 'Item 0', url: 'u0', read: true, starred: false }]; + + (global.fetch as any) + .mockResolvedValueOnce({ ok: true, json: async () => initialItems }) + .mockResolvedValueOnce({ ok: true, json: async () => moreItems }); + + let observerCallback: IntersectionObserverCallback = () => {}; + class MockIntersectionObserver { + constructor(callback: IntersectionObserverCallback) { + observerCallback = callback; + } + observe = vi.fn(); + unobserve = vi.fn(); + disconnect = vi.fn(); + } + window.IntersectionObserver = MockIntersectionObserver as any; + + render( + <MemoryRouter> + <FeedItems /> + </MemoryRouter> + ); + + await waitFor(() => { + expect(screen.getByText('Item 1')).toBeInTheDocument(); }); - it('marks items as read when scrolled past', async () => { - const mockItems = [{ _id: 101, title: 'Item 1', url: 'u1', read: false, starred: false }]; - (global.fetch as any).mockResolvedValue({ - ok: true, - json: async () => mockItems, - }); - - // Capture the callback - let observerCallback: IntersectionObserverCallback = () => { }; - - // Override the mock to capture callback - class MockIntersectionObserver { - constructor(callback: IntersectionObserverCallback) { - observerCallback = callback; - } - observe = vi.fn(); - unobserve = vi.fn(); - disconnect = vi.fn(); - } - window.IntersectionObserver = MockIntersectionObserver as any; - - render( - <MemoryRouter> - <FeedItems /> - </MemoryRouter> - ); - - await waitFor(() => { - expect(screen.getByText('Item 1')).toBeVisible(); - }); - - // Simulate item leaving viewport at the top - // Element index is 0 - const entry = { - isIntersecting: false, - boundingClientRect: { top: -50 } as DOMRectReadOnly, - target: { getAttribute: () => '0' } as unknown as Element, - intersectionRatio: 0, - time: 0, - rootBounds: null, - intersectionRect: {} as DOMRectReadOnly, - } as IntersectionObserverEntry; - - // Use vi.waitUntil to wait for callback to be assigned if needed, - // though strictly synchronous render + effect should do it. - // Direct call: - act(() => { - observerCallback([entry], {} as IntersectionObserver); - }); - - await waitFor(() => { - expect(global.fetch).toHaveBeenCalledWith('/api/item/101', expect.objectContaining({ - method: 'PUT', - body: JSON.stringify({ read: true, starred: false }), - })); - }); + // Simulate sentinel becoming visible + const entry = { + isIntersecting: true, + target: { id: 'load-more-sentinel' } as unknown as Element, + boundingClientRect: {} as DOMRectReadOnly, + intersectionRatio: 1, + time: 0, + rootBounds: null, + intersectionRect: {} as DOMRectReadOnly, + } as IntersectionObserverEntry; + + act(() => { + observerCallback([entry], {} as IntersectionObserver); }); - it('loads more items when sentinel becomes visible', async () => { - const initialItems = [{ _id: 101, title: 'Item 1', url: 'u1', read: true, starred: false }]; - const moreItems = [{ _id: 100, title: 'Item 0', url: 'u0', read: true, starred: false }]; - - (global.fetch as any) - .mockResolvedValueOnce({ ok: true, json: async () => initialItems }) - .mockResolvedValueOnce({ ok: true, json: async () => moreItems }); - - let observerCallback: IntersectionObserverCallback = () => { }; - class MockIntersectionObserver { - constructor(callback: IntersectionObserverCallback) { - observerCallback = callback; - } - observe = vi.fn(); - unobserve = vi.fn(); - disconnect = vi.fn(); - } - window.IntersectionObserver = MockIntersectionObserver as any; - - render( - <MemoryRouter> - <FeedItems /> - </MemoryRouter> - ); - - await waitFor(() => { - expect(screen.getByText('Item 1')).toBeInTheDocument(); - }); - - // Simulate sentinel becoming visible - const entry = { - isIntersecting: true, - target: { id: 'load-more-sentinel' } as unknown as Element, - boundingClientRect: {} as DOMRectReadOnly, - intersectionRatio: 1, - time: 0, - rootBounds: null, - intersectionRect: {} as DOMRectReadOnly, - } as IntersectionObserverEntry; - - act(() => { - observerCallback([entry], {} as IntersectionObserver); - }); - - await waitFor(() => { - expect(screen.getByText('Item 0')).toBeInTheDocument(); - const params = new URLSearchParams(); - params.append('max_id', '101'); - params.append('read_filter', 'unread'); - expect(global.fetch).toHaveBeenCalledWith(`/api/stream?${params.toString()}`); - }); + await waitFor(() => { + expect(screen.getByText('Item 0')).toBeInTheDocument(); + const params = new URLSearchParams(); + params.append('max_id', '101'); + params.append('read_filter', 'unread'); + expect(global.fetch).toHaveBeenCalledWith(`/api/stream?${params.toString()}`); }); + }); }); diff --git a/frontend/src/components/FeedItems.tsx b/frontend/src/components/FeedItems.tsx index bcee3b0..81c9139 100644 --- a/frontend/src/components/FeedItems.tsx +++ b/frontend/src/components/FeedItems.tsx @@ -5,227 +5,228 @@ import FeedItem from './FeedItem'; import './FeedItems.css'; export default function FeedItems() { - const { feedId, tagName } = useParams<{ feedId: string; tagName: string }>(); - const [searchParams] = useSearchParams(); - const filterFn = searchParams.get('filter') || 'unread'; - - const [items, setItems] = useState<Item[]>([]); - const [loading, setLoading] = useState(true); - const [loadingMore, setLoadingMore] = useState(false); - const [hasMore, setHasMore] = useState(true); - const [error, setError] = useState(''); - - const fetchItems = (maxId?: string) => { - if (maxId) { - setLoadingMore(true); - } else { - setLoading(true); - setItems([]); + const { feedId, tagName } = useParams<{ feedId: string; tagName: string }>(); + const [searchParams] = useSearchParams(); + const filterFn = searchParams.get('filter') || 'unread'; + + const [items, setItems] = useState<Item[]>([]); + const [loading, setLoading] = useState(true); + const [loadingMore, setLoadingMore] = useState(false); + const [hasMore, setHasMore] = useState(true); + const [error, setError] = useState(''); + const [selectedIndex, setSelectedIndex] = useState(-1); + + const fetchItems = (maxId?: string) => { + if (maxId) { + setLoadingMore(true); + } else { + setLoading(true); + setItems([]); + } + setError(''); + + let url = '/api/stream'; + const params = new URLSearchParams(); + + if (feedId) { + params.append('feed_id', feedId); + } else if (tagName) { + params.append('tag', tagName); + } + + if (maxId) { + params.append('max_id', maxId); + } + + // Apply filters + const searchQuery = searchParams.get('q'); + if (searchQuery) { + params.append('q', searchQuery); + } + + if (filterFn === 'all') { + params.append('read_filter', 'all'); + } else if (filterFn === 'starred') { + params.append('starred', 'true'); + params.append('read_filter', 'all'); + } else { + // default to unread + if (!searchQuery) { + params.append('read_filter', 'unread'); + } + } + + const queryString = params.toString(); + if (queryString) { + url += `?${queryString}`; + } + + fetch(url) + .then((res) => { + if (!res.ok) { + throw new Error('Failed to fetch items'); } - setError(''); - - let url = '/api/stream'; - const params = new URLSearchParams(); - - if (feedId) { - params.append('feed_id', feedId); - } else if (tagName) { - params.append('tag', tagName); - } - + return res.json(); + }) + .then((data) => { if (maxId) { - params.append('max_id', maxId); - } - - // Apply filters - const searchQuery = searchParams.get('q'); - if (searchQuery) { - params.append('q', searchQuery); - } - - if (filterFn === 'all') { - params.append('read_filter', 'all'); - } else if (filterFn === 'starred') { - params.append('starred', 'true'); - params.append('read_filter', 'all'); + setItems((prev) => [...prev, ...data]); } else { - // default to unread - if (!searchQuery) { - params.append('read_filter', 'unread'); - } - } - - const queryString = params.toString(); - if (queryString) { - url += `?${queryString}`; + setItems(data); } - - fetch(url) - .then((res) => { - if (!res.ok) { - throw new Error('Failed to fetch items'); - } - return res.json(); - }) - .then((data) => { - if (maxId) { - setItems((prev) => [...prev, ...data]); - } else { - setItems(data); - } - setHasMore(data.length > 0); - setLoading(false); - setLoadingMore(false); - }) - .catch((err) => { - setError(err.message); - setLoading(false); - setLoadingMore(false); - }); - }; - - useEffect(() => { - fetchItems(); - setSelectedIndex(-1); - }, [feedId, tagName, filterFn, searchParams]); - - const [selectedIndex, setSelectedIndex] = useState(-1); - - useEffect(() => { - const handleKeyDown = (e: KeyboardEvent) => { - if (items.length === 0) return; - - if (e.key === 'j') { - setSelectedIndex((prev) => { - const nextIndex = Math.min(prev + 1, items.length - 1); - if (nextIndex !== prev) { - const item = items[nextIndex]; - if (!item.read) { - markAsRead(item); - } - scrollToItem(nextIndex); - } - return nextIndex; - }); - } else if (e.key === 'k') { - setSelectedIndex((prev) => { - const nextIndex = Math.max(prev - 1, 0); - if (nextIndex !== prev) { - scrollToItem(nextIndex); - } - return nextIndex; - }); - } else if (e.key === 's') { - setSelectedIndex((currentIndex) => { - if (currentIndex >= 0 && currentIndex < items.length) { - toggleStar(items[currentIndex]); - } - return currentIndex; - }); + setHasMore(data.length > 0); + setLoading(false); + setLoadingMore(false); + }) + .catch((err) => { + setError(err.message); + setLoading(false); + setLoadingMore(false); + }); + }; + + useEffect(() => { + fetchItems(); + setSelectedIndex(-1); + }, [feedId, tagName, filterFn, searchParams]); + + + const scrollToItem = (index: number) => { + const element = document.getElementById(`item-${index}`); + if (element) { + element.scrollIntoView({ behavior: 'auto', block: 'start' }); + } + }; + + const markAsRead = (item: Item) => { + const updatedItem = { ...item, read: true }; + // Optimistic update + setItems((prevItems) => prevItems.map((i) => (i._id === item._id ? updatedItem : i))); + + fetch(`/api/item/${item._id}`, { + method: 'PUT', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ read: true, starred: item.starred }), + }).catch((err) => console.error('Failed to mark read', err)); + }; + + const toggleStar = (item: Item) => { + const updatedItem = { ...item, starred: !item.starred }; + // Optimistic update + setItems((prevItems) => prevItems.map((i) => (i._id === item._id ? updatedItem : i))); + + fetch(`/api/item/${item._id}`, { + method: 'PUT', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ read: item.read, starred: !item.starred }), + }).catch((err) => console.error('Failed to toggle star', err)); + }; + + useEffect(() => { + const handleKeyDown = (e: KeyboardEvent) => { + if (items.length === 0) return; + + if (e.key === 'j') { + setSelectedIndex((prev) => { + const nextIndex = Math.min(prev + 1, items.length - 1); + if (nextIndex !== prev) { + const item = items[nextIndex]; + if (!item.read) { + markAsRead(item); } - }; - - window.addEventListener('keydown', handleKeyDown); - return () => window.removeEventListener('keydown', handleKeyDown); - }, [items]); - - const scrollToItem = (index: number) => { - const element = document.getElementById(`item-${index}`); - if (element) { - element.scrollIntoView({ behavior: 'auto', block: 'start' }); - } + scrollToItem(nextIndex); + } + return nextIndex; + }); + } else if (e.key === 'k') { + setSelectedIndex((prev) => { + const nextIndex = Math.max(prev - 1, 0); + if (nextIndex !== prev) { + scrollToItem(nextIndex); + } + return nextIndex; + }); + } else if (e.key === 's') { + setSelectedIndex((currentIndex) => { + if (currentIndex >= 0 && currentIndex < items.length) { + toggleStar(items[currentIndex]); + } + return currentIndex; + }); + } }; - const markAsRead = (item: Item) => { - const updatedItem = { ...item, read: true }; - // Optimistic update - setItems((prevItems) => prevItems.map((i) => (i._id === item._id ? updatedItem : i))); + window.addEventListener('keydown', handleKeyDown); + return () => window.removeEventListener('keydown', handleKeyDown); + }, [items]); - fetch(`/api/item/${item._id}`, { - method: 'PUT', - headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify({ read: true, starred: item.starred }), - }).catch((err) => console.error('Failed to mark read', err)); - }; - - const toggleStar = (item: Item) => { - const updatedItem = { ...item, starred: !item.starred }; - // Optimistic update - setItems((prevItems) => prevItems.map((i) => (i._id === item._id ? updatedItem : i))); - fetch(`/api/item/${item._id}`, { - method: 'PUT', - headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify({ read: item.read, starred: !item.starred }), - }).catch((err) => console.error('Failed to toggle star', err)); - }; - useEffect(() => { - const observer = new IntersectionObserver( - (entries) => { - entries.forEach((entry) => { - // Infinity scroll sentinel - if (entry.target.id === 'load-more-sentinel') { - if (entry.isIntersecting && !loadingMore && hasMore && items.length > 0) { - fetchItems(String(items[items.length - 1]._id)); - } - return; - } - - // If item is not intersecting and is above the viewport, it's been scrolled past - if (!entry.isIntersecting && entry.boundingClientRect.top < 0) { - const index = Number(entry.target.getAttribute('data-index')); - if (!isNaN(index) && index >= 0 && index < items.length) { - const item = items[index]; - if (!item.read) { - markAsRead(item); - } - } - } - }); - }, - { root: null, threshold: 0 } - ); - - items.forEach((_, index) => { - const el = document.getElementById(`item-${index}`); - if (el) observer.observe(el); + useEffect(() => { + const observer = new IntersectionObserver( + (entries) => { + entries.forEach((entry) => { + // Infinity scroll sentinel + if (entry.target.id === 'load-more-sentinel') { + if (entry.isIntersecting && !loadingMore && hasMore && items.length > 0) { + fetchItems(String(items[items.length - 1]._id)); + } + return; + } + + // If item is not intersecting and is above the viewport, it's been scrolled past + if (!entry.isIntersecting && entry.boundingClientRect.top < 0) { + const index = Number(entry.target.getAttribute('data-index')); + if (!isNaN(index) && index >= 0 && index < items.length) { + const item = items[index]; + if (!item.read) { + markAsRead(item); + } + } + } }); - - const sentinel = document.getElementById('load-more-sentinel'); - if (sentinel) observer.observe(sentinel); - - return () => observer.disconnect(); - }, [items, loadingMore, hasMore]); - - if (loading) return <div className="feed-items-loading">Loading items...</div>; - if (error) return <div className="feed-items-error">Error: {error}</div>; - - - return ( - <div className="feed-items"> - {items.length === 0 ? ( - <p>No items found.</p> - ) : ( - <ul className="item-list"> - {items.map((item, index) => ( - <div - id={`item-${index}`} - key={item._id} - data-index={index} - data-selected={index === selectedIndex} - onClick={() => setSelectedIndex(index)} - > - <FeedItem item={item} /> - </div> - ))} - {hasMore && ( - <div id="load-more-sentinel" className="loading-more"> - {loadingMore ? 'Loading more...' : ''} - </div> - )} - </ul> - )} - </div> + }, + { root: null, threshold: 0 } ); + + items.forEach((_, index) => { + const el = document.getElementById(`item-${index}`); + if (el) observer.observe(el); + }); + + const sentinel = document.getElementById('load-more-sentinel'); + if (sentinel) observer.observe(sentinel); + + return () => observer.disconnect(); + }, [items, loadingMore, hasMore]); + + if (loading) return <div className="feed-items-loading">Loading items...</div>; + if (error) return <div className="feed-items-error">Error: {error}</div>; + + return ( + <div className="feed-items"> + {items.length === 0 ? ( + <p>No items found.</p> + ) : ( + <ul className="item-list"> + {items.map((item, index) => ( + <div + id={`item-${index}`} + key={item._id} + data-index={index} + data-selected={index === selectedIndex} + onClick={() => setSelectedIndex(index)} + > + <FeedItem item={item} /> + </div> + ))} + {hasMore && ( + <div id="load-more-sentinel" className="loading-more"> + {loadingMore ? 'Loading more...' : ''} + </div> + )} + </ul> + )} + </div> + ); } diff --git a/frontend/src/components/FeedList.css b/frontend/src/components/FeedList.css index 0d6d26d..ff0f41b 100644 --- a/frontend/src/components/FeedList.css +++ b/frontend/src/components/FeedList.css @@ -1,170 +1,170 @@ .feed-list { - /* Removed card styling */ - padding: 0; - background: transparent; + /* Removed card styling */ + padding: 0; + background: transparent; } .search-section { - margin-bottom: 1.5rem; + margin-bottom: 1.5rem; } .search-form { - display: flex; + display: flex; } .search-input { - width: 100%; - padding: 0.5rem; - border: 1px solid #999; - background: #eee; - font-size: 1rem; - font-family: inherit; + width: 100%; + padding: 0.5rem; + border: 1px solid #999; + background: #eee; + font-size: 1rem; + font-family: inherit; } .search-input:focus { - outline: none; - background: white; - border-color: #000; + outline: none; + background: white; + border-color: #000; } .feed-list h2, .feed-section-header { - font-size: 1.2rem; - margin-bottom: 0.5rem; - border-bottom: 1px solid #999; - padding-bottom: 0.25rem; - text-transform: uppercase; - letter-spacing: 1px; - cursor: pointer; - user-select: none; - display: flex; - align-items: center; + font-size: 1.2rem; + margin-bottom: 0.5rem; + border-bottom: 1px solid #999; + padding-bottom: 0.25rem; + text-transform: uppercase; + letter-spacing: 1px; + cursor: pointer; + user-select: none; + display: flex; + align-items: center; } .toggle-indicator { - font-size: 0.8rem; - margin-right: 0.5rem; - display: inline-block; - width: 1rem; - text-align: center; + font-size: 0.8rem; + margin-right: 0.5rem; + display: inline-block; + width: 1rem; + text-align: center; } .feed-list-items, .tag-list-items, .filter-list { - list-style: none; - padding: 0; - margin: 0; + list-style: none; + padding: 0; + margin: 0; } .sidebar-feed-item { - padding: 0.25rem 0; - border-bottom: none; - /* Clean look */ - display: flex; - justify-content: space-between; - align-items: center; + padding: 0.25rem 0; + border-bottom: none; + /* Clean look */ + display: flex; + justify-content: space-between; + align-items: center; } .feed-title { - color: var(--link-color); - text-decoration: none; - font-size: 0.9rem; - font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; + color: var(--link-color); + text-decoration: none; + font-size: 0.9rem; + font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; } .feed-title:hover { - text-decoration: underline; - color: var(--link-color); + text-decoration: underline; + color: var(--link-color); } .feed-category { - display: none; - /* Hide category in sidebar list to save space */ + display: none; + /* Hide category in sidebar list to save space */ } .tag-section { - margin-top: 2rem; + margin-top: 2rem; } .tag-link { - color: var(--link-color); - text-decoration: none; - font-size: 0.9rem; - display: block; - padding: 0.1rem 0; - font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; + color: var(--link-color); + text-decoration: none; + font-size: 0.9rem; + display: block; + padding: 0.1rem 0; + font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; } .tag-link:hover { - text-decoration: underline; - background: transparent; - color: var(--link-color); + text-decoration: underline; + background: transparent; + color: var(--link-color); } .filter-section { - margin-bottom: 2rem; + margin-bottom: 2rem; } .filter-list { - display: block; - list-style: none; - padding: 0; - margin: 0; + display: block; + list-style: none; + padding: 0; + margin: 0; } .filter-list li a { - text-decoration: none; - color: #333; - font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; - font-variant: small-caps; - text-transform: lowercase; - font-size: 1.1rem; - display: block; - margin-bottom: 0.5rem; + text-decoration: none; + color: var(--text-color); + font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; + font-variant: small-caps; + text-transform: lowercase; + font-size: 1.1rem; + display: block; + margin-bottom: 0.5rem; } .filter-list li a:hover { - color: blue; - background-color: transparent; - text-decoration: underline; + color: blue; + background-color: transparent; + text-decoration: underline; } .feed-title.active, .tag-link.active, .filter-list li a.active, .theme-selector button.active { - font-weight: bold !important; + font-weight: bold !important; } .theme-section { - margin-top: 2rem; - padding-bottom: 2rem; + margin-top: 2rem; + padding-bottom: 2rem; } .theme-selector { - display: flex; - justify-content: space-between; - gap: 5px; + display: flex; + justify-content: space-between; + gap: 5px; } .theme-selector button { - font-size: 0.8rem; - padding: 0.2rem 0.5rem; - width: 30%; - background: whitesmoke; - color: blue; - border: 1px solid #ccc; - border-radius: 4px; - font-variant: small-caps; - text-transform: lowercase; + font-size: 0.8rem; + padding: 0.2rem 0.5rem; + width: 30%; + background: whitesmoke; + color: blue; + border: 1px solid #ccc; + border-radius: 4px; + font-variant: small-caps; + text-transform: lowercase; } .theme-selector button:hover { - background: #eee; + background: #eee; } .theme-selector button.active { - color: black; - border-color: #000; -}
\ No newline at end of file + color: black; + border-color: #000; +} diff --git a/frontend/src/components/FeedList.test.tsx b/frontend/src/components/FeedList.test.tsx index d5f49b7..daa4d69 100644 --- a/frontend/src/components/FeedList.test.tsx +++ b/frontend/src/components/FeedList.test.tsx @@ -7,114 +7,126 @@ import FeedList from './FeedList'; import { BrowserRouter } from 'react-router-dom'; describe('FeedList Component', () => { - beforeEach(() => { - vi.resetAllMocks(); - global.fetch = vi.fn(); - }); - - it('renders loading state initially', () => { - (global.fetch as any).mockImplementation(() => new Promise(() => { })); - render( - <BrowserRouter> - {/* @ts-ignore */} - <FeedList theme="light" setTheme={() => { }} /> - </BrowserRouter> - ); - expect(screen.getByText(/loading feeds/i)).toBeInTheDocument(); - }); - - it('renders list of feeds', async () => { - const mockFeeds = [ - { _id: 1, title: 'Feed One', url: 'http://example.com/rss', web_url: 'http://example.com', category: 'Tech' }, - { _id: 2, title: 'Feed Two', url: 'http://test.com/rss', web_url: 'http://test.com', category: 'News' }, - ]; - - (global.fetch as any).mockImplementation((url: string) => { - if (url.includes('/api/feed/')) { - return Promise.resolve({ - ok: true, - json: async () => mockFeeds, - }); - } - if (url.includes('/api/tag')) { - return Promise.resolve({ - ok: true, - json: async () => [{ title: 'Tech' }], - }); - } - return Promise.reject(new Error(`Unknown URL: ${url}`)); + beforeEach(() => { + vi.resetAllMocks(); + global.fetch = vi.fn(); + }); + + it('renders loading state initially', () => { + (global.fetch as any).mockImplementation(() => new Promise(() => {})); + render( + <BrowserRouter> + {/* @ts-ignore */} + <FeedList theme="light" setTheme={() => {}} /> + </BrowserRouter> + ); + expect(screen.getByText(/loading feeds/i)).toBeInTheDocument(); + }); + + it('renders list of feeds', async () => { + const mockFeeds = [ + { + _id: 1, + title: 'Feed One', + url: 'http://example.com/rss', + web_url: 'http://example.com', + category: 'Tech', + }, + { + _id: 2, + title: 'Feed Two', + url: 'http://test.com/rss', + web_url: 'http://test.com', + category: 'News', + }, + ]; + + (global.fetch as any).mockImplementation((url: string) => { + if (url.includes('/api/feed/')) { + return Promise.resolve({ + ok: true, + json: async () => mockFeeds, }); + } + if (url.includes('/api/tag')) { + return Promise.resolve({ + ok: true, + json: async () => [{ title: 'Tech' }], + }); + } + return Promise.reject(new Error(`Unknown URL: ${url}`)); + }); - render( - <BrowserRouter> - {/* @ts-ignore */} - <FeedList theme="light" setTheme={() => { }} /> - </BrowserRouter> - ); + render( + <BrowserRouter> + {/* @ts-ignore */} + <FeedList theme="light" setTheme={() => {}} /> + </BrowserRouter> + ); - await waitFor(() => { - expect(screen.queryByText(/loading feeds/i)).not.toBeInTheDocument(); - }); + await waitFor(() => { + expect(screen.queryByText(/loading feeds/i)).not.toBeInTheDocument(); + }); - // Expand feeds - fireEvent.click(screen.getByText(/feeds/i, { selector: 'h2' })); + // Expand feeds + fireEvent.click(screen.getByText(/feeds/i, { selector: 'h2' })); - await waitFor(() => { - expect(screen.getByText('Feed One')).toBeInTheDocument(); - expect(screen.getByText('Feed Two')).toBeInTheDocument(); - const techElements = screen.getAllByText('Tech'); - expect(techElements.length).toBeGreaterThan(0); - }); + await waitFor(() => { + expect(screen.getByText('Feed One')).toBeInTheDocument(); + expect(screen.getByText('Feed Two')).toBeInTheDocument(); + const techElements = screen.getAllByText('Tech'); + expect(techElements.length).toBeGreaterThan(0); }); + }); - it('handles fetch error', async () => { - (global.fetch as any).mockImplementation(() => Promise.reject(new Error('API Error'))); + it('handles fetch error', async () => { + (global.fetch as any).mockImplementation(() => Promise.reject(new Error('API Error'))); - render( - <BrowserRouter> - {/* @ts-ignore */} - <FeedList theme="light" setTheme={() => { }} /> - </BrowserRouter> - ); + render( + <BrowserRouter> + {/* @ts-ignore */} + <FeedList theme="light" setTheme={() => {}} /> + </BrowserRouter> + ); - await waitFor(() => { - expect(screen.getByText(/error: api error/i)).toBeInTheDocument(); - }); + await waitFor(() => { + expect(screen.getByText(/error: api error/i)).toBeInTheDocument(); }); - - it('handles empty feed list', async () => { - (global.fetch as any).mockImplementation((url: string) => { - if (url.includes('/api/feed/')) { - return Promise.resolve({ - ok: true, - json: async () => [], - }); - } - if (url.includes('/api/tag')) { - return Promise.resolve({ - ok: true, - json: async () => [], - }); - } - return Promise.reject(new Error(`Unknown URL: ${url}`)); + }); + + it('handles empty feed list', async () => { + (global.fetch as any).mockImplementation((url: string) => { + if (url.includes('/api/feed/')) { + return Promise.resolve({ + ok: true, + json: async () => [], + }); + } + if (url.includes('/api/tag')) { + return Promise.resolve({ + ok: true, + json: async () => [], }); + } + return Promise.reject(new Error(`Unknown URL: ${url}`)); + }); - render( - <BrowserRouter> - {/* @ts-ignore */} - <FeedList theme="light" setTheme={() => { }} /> - </BrowserRouter> - ); + render( + <BrowserRouter> + {/* @ts-ignore */} + <FeedList theme="light" setTheme={() => {}} /> + </BrowserRouter> + ); - await waitFor(() => { - expect(screen.queryByText(/loading feeds/i)).not.toBeInTheDocument(); - }); + await waitFor(() => { + expect(screen.queryByText(/loading feeds/i)).not.toBeInTheDocument(); + }); - // Expand feeds - fireEvent.click(screen.getByText(/feeds/i, { selector: 'h2' })); + // Expand feeds + fireEvent.click(screen.getByText(/feeds/i, { selector: 'h2' })); - await waitFor(() => { - expect(screen.getByText(/no feeds found/i)).toBeInTheDocument(); - }); + await waitFor(() => { + expect(screen.getByText(/no feeds found/i)).toBeInTheDocument(); }); + }); }); diff --git a/frontend/src/components/FeedList.tsx b/frontend/src/components/FeedList.tsx index 56c96cd..497baf8 100644 --- a/frontend/src/components/FeedList.tsx +++ b/frontend/src/components/FeedList.tsx @@ -3,121 +3,151 @@ import { Link, useNavigate, useSearchParams, useLocation, useParams } from 'reac import type { Feed, Category } from '../types'; import './FeedList.css'; -export default function FeedList({ theme, setTheme }: { theme: string, setTheme: (t: string) => void }) { - const [feeds, setFeeds] = useState<Feed[]>([]); - const [tags, setTags] = useState<Category[]>([]); - const [loading, setLoading] = useState(true); - const [error, setError] = useState(''); - const [feedsExpanded, setFeedsExpanded] = useState(false); - const [searchQuery, setSearchQuery] = useState(''); - const navigate = useNavigate(); - const [searchParams] = useSearchParams(); - const location = useLocation(); - const { feedId, tagName } = useParams(); +export default function FeedList({ + theme, + setTheme, +}: { + theme: string; + setTheme: (t: string) => void; +}) { + const [feeds, setFeeds] = useState<Feed[]>([]); + const [tags, setTags] = useState<Category[]>([]); + const [loading, setLoading] = useState(true); + const [error, setError] = useState(''); + const [feedsExpanded, setFeedsExpanded] = useState(false); + const [searchQuery, setSearchQuery] = useState(''); + const navigate = useNavigate(); + const [searchParams] = useSearchParams(); + const location = useLocation(); + const { feedId, tagName } = useParams(); - const currentFilter = searchParams.get('filter') || (location.pathname === '/' && !feedId && !tagName ? 'unread' : ''); + const currentFilter = + searchParams.get('filter') || + (location.pathname === '/' && !feedId && !tagName ? 'unread' : ''); - const handleSearch = (e: React.FormEvent) => { - e.preventDefault(); - if (searchQuery.trim()) { - navigate(`/?q=${encodeURIComponent(searchQuery.trim())}`); - } - }; + const handleSearch = (e: React.FormEvent) => { + e.preventDefault(); + if (searchQuery.trim()) { + navigate(`/?q=${encodeURIComponent(searchQuery.trim())}`); + } + }; - const toggleFeeds = () => { - setFeedsExpanded(!feedsExpanded); - }; + const toggleFeeds = () => { + setFeedsExpanded(!feedsExpanded); + }; - useEffect(() => { - Promise.all([ - fetch('/api/feed/').then(res => { - if (!res.ok) throw new Error('Failed to fetch feeds'); - return res.json(); - }), - fetch('/api/tag').then(res => { - if (!res.ok) throw new Error('Failed to fetch tags'); - return res.json(); - }) - ]) - .then(([feedsData, tagsData]) => { - setFeeds(feedsData); - setTags(tagsData); - setLoading(false); - }) - .catch((err) => { - setError(err.message); - setLoading(false); - }); - }, []); + useEffect(() => { + Promise.all([ + fetch('/api/feed/').then((res) => { + if (!res.ok) throw new Error('Failed to fetch feeds'); + return res.json(); + }), + fetch('/api/tag').then((res) => { + if (!res.ok) throw new Error('Failed to fetch tags'); + return res.json(); + }), + ]) + .then(([feedsData, tagsData]) => { + setFeeds(feedsData); + setTags(tagsData); + setLoading(false); + }) + .catch((err) => { + setError(err.message); + setLoading(false); + }); + }, []); - if (loading) return <div className="feed-list-loading">Loading feeds...</div>; - if (error) return <div className="feed-list-error">Error: {error}</div>; + if (loading) return <div className="feed-list-loading">Loading feeds...</div>; + if (error) return <div className="feed-list-error">Error: {error}</div>; - return ( - <div className="feed-list"> - <div className="search-section"> - <form onSubmit={handleSearch} className="search-form"> - <input - type="search" - placeholder="Search items..." - value={searchQuery} - onChange={(e) => setSearchQuery(e.target.value)} - className="search-input" - /> - </form> - </div> - <div className="filter-section"> - <ul className="filter-list"> - <li><Link to="/?filter=unread" className={currentFilter === 'unread' ? 'active' : ''}>Unread</Link></li> - <li><Link to="/?filter=all" className={currentFilter === 'all' ? 'active' : ''}>All</Link></li> - <li><Link to="/?filter=starred" className={currentFilter === 'starred' ? 'active' : ''}>Starred</Link></li> - </ul> - </div> - <div className="feed-section"> - <h2 onClick={toggleFeeds} className="feed-section-header"> - <span className="toggle-indicator">{feedsExpanded ? '▼' : '▶'}</span> Feeds - </h2> - {feedsExpanded && ( - feeds.length === 0 ? ( - <p>No feeds found.</p> - ) : ( - <ul className="feed-list-items"> - {feeds.map((feed) => ( - <li key={feed._id} className="sidebar-feed-item"> - <Link to={`/feed/${feed._id}`} className={`feed-title ${feedId === String(feed._id) ? 'active' : ''}`}> - {feed.title || feed.url} - </Link> - {feed.category && <span className="feed-category">{feed.category}</span>} - </li> - ))} - </ul> - ) - )} - </div> + return ( + <div className="feed-list"> + <div className="search-section"> + <form onSubmit={handleSearch} className="search-form"> + <input + type="search" + placeholder="Search items..." + value={searchQuery} + onChange={(e) => setSearchQuery(e.target.value)} + className="search-input" + /> + </form> + </div> + <div className="filter-section"> + <ul className="filter-list"> + <li> + <Link to="/?filter=unread" className={currentFilter === 'unread' ? 'active' : ''}> + Unread + </Link> + </li> + <li> + <Link to="/?filter=all" className={currentFilter === 'all' ? 'active' : ''}> + All + </Link> + </li> + <li> + <Link to="/?filter=starred" className={currentFilter === 'starred' ? 'active' : ''}> + Starred + </Link> + </li> + </ul> + </div> + <div className="feed-section"> + <h2 onClick={toggleFeeds} className="feed-section-header"> + <span className="toggle-indicator">{feedsExpanded ? '▼' : '▶'}</span> Feeds + </h2> + {feedsExpanded && + (feeds.length === 0 ? ( + <p>No feeds found.</p> + ) : ( + <ul className="feed-list-items"> + {feeds.map((feed) => ( + <li key={feed._id} className="sidebar-feed-item"> + <Link + to={`/feed/${feed._id}`} + className={`feed-title ${feedId === String(feed._id) ? 'active' : ''}`} + > + {feed.title || feed.url} + </Link> + {feed.category && <span className="feed-category">{feed.category}</span>} + </li> + ))} + </ul> + ))} + </div> - {tags && tags.length > 0 && ( - <div className="tag-section"> - <h2>Tags</h2> - <ul className="tag-list-items"> - {tags.map((tag) => ( - <li key={tag.title} className="tag-item"> - <Link to={`/tag/${encodeURIComponent(tag.title)}`} className={`tag-link ${tagName === tag.title ? 'active' : ''}`}> - {tag.title} - </Link> - </li> - ))} - </ul> - </div> - )} + {tags && tags.length > 0 && ( + <div className="tag-section"> + <h2>Tags</h2> + <ul className="tag-list-items"> + {tags.map((tag) => ( + <li key={tag.title} className="tag-item"> + <Link + to={`/tag/${encodeURIComponent(tag.title)}`} + className={`tag-link ${tagName === tag.title ? 'active' : ''}`} + > + {tag.title} + </Link> + </li> + ))} + </ul> + </div> + )} - <div className="theme-section"> - <h2>Themes</h2> - <div className="theme-selector"> - <button onClick={() => setTheme('light')} className={theme === 'light' ? 'active' : ''}>light</button> - <button onClick={() => setTheme('dark')} className={theme === 'dark' ? 'active' : ''}>dark</button> - <button onClick={() => setTheme('black')} className={theme === 'black' ? 'active' : ''}>black</button> - </div> - </div> + <div className="theme-section"> + <div className="theme-selector"> + <button onClick={() => setTheme('light')} className={theme === 'light' ? 'active' : ''}> + light + </button> + <button onClick={() => setTheme('dark')} className={theme === 'dark' ? 'active' : ''}> + dark + </button> + <button onClick={() => setTheme('black')} className={theme === 'black' ? 'active' : ''}> + black + </button> </div> - ); + </div> + </div> + ); } diff --git a/frontend/src/components/Login.css b/frontend/src/components/Login.css index f1ca976..6f40731 100644 --- a/frontend/src/components/Login.css +++ b/frontend/src/components/Login.css @@ -46,7 +46,7 @@ text-align: center; } -button[type="submit"] { +button[type='submit'] { width: 100%; padding: 0.75rem; background-color: #007bff; @@ -58,6 +58,6 @@ button[type="submit"] { transition: background-color 0.2s; } -button[type="submit"]:hover { +button[type='submit']:hover { background-color: #0056b3; } diff --git a/frontend/src/components/Login.test.tsx b/frontend/src/components/Login.test.tsx index ef946e2..aea7042 100644 --- a/frontend/src/components/Login.test.tsx +++ b/frontend/src/components/Login.test.tsx @@ -9,70 +9,73 @@ import Login from './Login'; global.fetch = vi.fn(); const renderLogin = () => { - render( - <BrowserRouter> - <Login /> - </BrowserRouter> - ); + render( + <BrowserRouter> + <Login /> + </BrowserRouter> + ); }; describe('Login Component', () => { - beforeEach(() => { - vi.resetAllMocks(); + beforeEach(() => { + vi.resetAllMocks(); + }); + + it('renders login form', () => { + renderLogin(); + expect(screen.getByLabelText(/password/i)).toBeInTheDocument(); + expect(screen.getByRole('button', { name: /login/i })).toBeInTheDocument(); + }); + + it('handles successful login', async () => { + (global.fetch as any).mockResolvedValueOnce({ + ok: true, }); - it('renders login form', () => { - renderLogin(); - expect(screen.getByLabelText(/password/i)).toBeInTheDocument(); - expect(screen.getByRole('button', { name: /login/i })).toBeInTheDocument(); - }); - - it('handles successful login', async () => { - (global.fetch as any).mockResolvedValueOnce({ - ok: true, - }); - - renderLogin(); + renderLogin(); - fireEvent.change(screen.getByLabelText(/password/i), { target: { value: 'secret' } }); - fireEvent.click(screen.getByRole('button', { name: /login/i })); + fireEvent.change(screen.getByLabelText(/password/i), { target: { value: 'secret' } }); + fireEvent.click(screen.getByRole('button', { name: /login/i })); - await waitFor(() => { - expect(global.fetch).toHaveBeenCalledWith('/api/login', expect.objectContaining({ - method: 'POST', - })); - }); - // Navigation assertion is tricky without mocking useNavigate, - // but if no error is shown, we assume success path was taken - expect(screen.queryByText(/login failed/i)).not.toBeInTheDocument(); + await waitFor(() => { + expect(global.fetch).toHaveBeenCalledWith( + '/api/login', + expect.objectContaining({ + method: 'POST', + }) + ); + }); + // Navigation assertion is tricky without mocking useNavigate, + // but if no error is shown, we assume success path was taken + expect(screen.queryByText(/login failed/i)).not.toBeInTheDocument(); + }); + + it('handles failed login', async () => { + (global.fetch as any).mockResolvedValueOnce({ + ok: false, + json: async () => ({ message: 'Bad credentials' }), }); - it('handles failed login', async () => { - (global.fetch as any).mockResolvedValueOnce({ - ok: false, - json: async () => ({ message: 'Bad credentials' }), - }); - - renderLogin(); + renderLogin(); - fireEvent.change(screen.getByLabelText(/password/i), { target: { value: 'wrong' } }); - fireEvent.click(screen.getByRole('button', { name: /login/i })); + fireEvent.change(screen.getByLabelText(/password/i), { target: { value: 'wrong' } }); + fireEvent.click(screen.getByRole('button', { name: /login/i })); - await waitFor(() => { - expect(screen.getByText(/bad credentials/i)).toBeInTheDocument(); - }); + await waitFor(() => { + expect(screen.getByText(/bad credentials/i)).toBeInTheDocument(); }); + }); - it('handles network error', async () => { - (global.fetch as any).mockRejectedValueOnce(new Error('Network error')); + it('handles network error', async () => { + (global.fetch as any).mockRejectedValueOnce(new Error('Network error')); - renderLogin(); + renderLogin(); - fireEvent.change(screen.getByLabelText(/password/i), { target: { value: 'secret' } }); - fireEvent.click(screen.getByRole('button', { name: /login/i })); + fireEvent.change(screen.getByLabelText(/password/i), { target: { value: 'secret' } }); + fireEvent.click(screen.getByRole('button', { name: /login/i })); - await waitFor(() => { - expect(screen.getByText(/network error/i)).toBeInTheDocument(); - }); + await waitFor(() => { + expect(screen.getByText(/network error/i)).toBeInTheDocument(); }); + }); }); diff --git a/frontend/src/components/Login.tsx b/frontend/src/components/Login.tsx index 2e8bbf7..5f63248 100644 --- a/frontend/src/components/Login.tsx +++ b/frontend/src/components/Login.tsx @@ -3,52 +3,52 @@ import { useNavigate } from 'react-router-dom'; import './Login.css'; export default function Login() { - const [password, setPassword] = useState(''); - const [error, setError] = useState(''); - const navigate = useNavigate(); + const [password, setPassword] = useState(''); + const [error, setError] = useState(''); + const navigate = useNavigate(); - const handleSubmit = async (e: FormEvent) => { - e.preventDefault(); - setError(''); + const handleSubmit = async (e: FormEvent) => { + e.preventDefault(); + setError(''); - try { - // Use URLSearchParams to send as form-urlencoded, matching backend expectation - const params = new URLSearchParams(); - params.append('password', password); + try { + // Use URLSearchParams to send as form-urlencoded, matching backend expectation + const params = new URLSearchParams(); + params.append('password', password); - const res = await fetch('/api/login', { - method: 'POST', - body: params, - }); + const res = await fetch('/api/login', { + method: 'POST', + body: params, + }); - if (res.ok) { - navigate('/'); - } else { - const data = await res.json(); - setError(data.message || 'Login failed'); - } - } catch (err) { - setError('Network error'); - } - }; + if (res.ok) { + navigate('/'); + } else { + const data = await res.json(); + setError(data.message || 'Login failed'); + } + } catch (err) { + setError('Network error'); + } + }; - return ( - <div className="login-container"> - <form onSubmit={handleSubmit} className="login-form"> - <h1>neko rss mode</h1> - <div className="form-group"> - <label htmlFor="password">password</label> - <input - id="password" - type="password" - value={password} - onChange={(e) => setPassword(e.target.value)} - autoFocus - /> - </div> - {error && <div className="error-message">{error}</div>} - <button type="submit">login</button> - </form> + return ( + <div className="login-container"> + <form onSubmit={handleSubmit} className="login-form"> + <h1>neko rss mode</h1> + <div className="form-group"> + <label htmlFor="password">password</label> + <input + id="password" + type="password" + value={password} + onChange={(e) => setPassword(e.target.value)} + autoFocus + /> </div> - ); + {error && <div className="error-message">{error}</div>} + <button type="submit">login</button> + </form> + </div> + ); } diff --git a/frontend/src/components/Settings.css b/frontend/src/components/Settings.css index 4065e88..6e74475 100644 --- a/frontend/src/components/Settings.css +++ b/frontend/src/components/Settings.css @@ -1,83 +1,84 @@ .settings-page { - padding: 2rem; - max-width: 800px; - margin: 0 auto; + padding: 2rem; + max-width: 800px; + margin: 0 auto; } .add-feed-section { - background: #f9f9f9; - padding: 1.5rem; - border-radius: 8px; - margin-bottom: 2rem; - border: 1px solid #eee; + background: #f9f9f9; + padding: 1.5rem; + border-radius: 8px; + margin-bottom: 2rem; + border: 1px solid #eee; } .add-feed-form { - display: flex; - gap: 1rem; + display: flex; + gap: 1rem; } .feed-input { - flex: 1; - padding: 0.5rem; - border: 1px solid #ccc; - border-radius: 4px; - font-size: 1rem; + flex: 1; + padding: 0.5rem; + border: 1px solid #ccc; + border-radius: 4px; + font-size: 1rem; } .error-message { - color: #d32f2f; - margin-top: 1rem; + color: #d32f2f; + margin-top: 1rem; } .settings-feed-list { - list-style: none; - padding: 0; - border: 1px solid #eee; - border-radius: 8px; + list-style: none; + padding: 0; + border: 1px solid #eee; + border-radius: 8px; } .settings-feed-item { - display: flex; - justify-content: space-between; - align-items: center; - padding: 1rem; - border-bottom: 1px solid #eee; + display: flex; + justify-content: space-between; + align-items: center; + padding: 1rem; + border-bottom: 1px solid #eee; } .settings-feed-item:last-child { - border-bottom: none; + border-bottom: none; } .feed-info { - display: flex; - flex-direction: column; + display: flex; + flex-direction: column; } .feed-title { - font-weight: bold; - font-size: 1.1rem; + font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; + font-weight: bold; + font-size: 1.1rem; } .feed-url { - color: #666; - font-size: 0.9rem; + color: #666; + font-size: 0.9rem; } .delete-btn { - background: #ff5252; - color: white; - border: none; - padding: 0.5rem 1rem; - border-radius: 4px; - cursor: pointer; + background: #ff5252; + color: white; + border: none; + padding: 0.5rem 1rem; + border-radius: 4px; + cursor: pointer; } .delete-btn:hover { - background: #ff1744; + background: #ff1744; } .delete-btn:disabled { - background: #ffcdd2; - cursor: not-allowed; -}
\ No newline at end of file + background: #ffcdd2; + cursor: not-allowed; +} diff --git a/frontend/src/components/Settings.test.tsx b/frontend/src/components/Settings.test.tsx index a15192d..f46ce6f 100644 --- a/frontend/src/components/Settings.test.tsx +++ b/frontend/src/components/Settings.test.tsx @@ -5,88 +5,97 @@ import { describe, it, expect, vi, beforeEach } from 'vitest'; import Settings from './Settings'; describe('Settings Component', () => { - beforeEach(() => { - vi.resetAllMocks(); - global.fetch = vi.fn(); - // Mock confirm - global.confirm = vi.fn(() => true); + beforeEach(() => { + vi.resetAllMocks(); + global.fetch = vi.fn(); + // Mock confirm + global.confirm = vi.fn(() => true); + }); + + it('renders feed list', async () => { + const mockFeeds = [ + { _id: 1, title: 'Tech News', url: 'http://tech.com/rss', category: 'tech' }, + { _id: 2, title: 'Gaming', url: 'http://gaming.com/rss', category: 'gaming' }, + ]; + + (global.fetch as any).mockResolvedValueOnce({ + ok: true, + json: async () => mockFeeds, }); - it('renders feed list', async () => { - const mockFeeds = [ - { _id: 1, title: 'Tech News', url: 'http://tech.com/rss', category: 'tech' }, - { _id: 2, title: 'Gaming', url: 'http://gaming.com/rss', category: 'gaming' }, - ]; + render(<Settings />); - (global.fetch as any).mockResolvedValueOnce({ - ok: true, - json: async () => mockFeeds, - }); - - render(<Settings />); - - await waitFor(() => { - expect(screen.getByText('Tech News')).toBeInTheDocument(); - expect(screen.getByText('http://tech.com/rss')).toBeInTheDocument(); - expect(screen.getByText('Gaming')).toBeInTheDocument(); - }); + await waitFor(() => { + expect(screen.getByText('Tech News')).toBeInTheDocument(); + expect(screen.getByText('http://tech.com/rss')).toBeInTheDocument(); + expect(screen.getByText('Gaming')).toBeInTheDocument(); + }); + }); + + it('adds a new feed', async () => { + (global.fetch as any) + .mockResolvedValueOnce({ ok: true, json: async () => [] }) // Initial load + .mockResolvedValueOnce({ ok: true, json: async () => ({}) }) // Add feed + .mockResolvedValueOnce({ + ok: true, + json: async () => [{ _id: 3, title: 'New Feed', url: 'http://new.com/rss' }], + }); // Refresh load + + render(<Settings />); + + // Wait for initial load to finish + await waitFor(() => { + expect(screen.queryByText('Loading...')).not.toBeInTheDocument(); }); - it('adds a new feed', async () => { - (global.fetch as any) - .mockResolvedValueOnce({ ok: true, json: async () => [] }) // Initial load - .mockResolvedValueOnce({ ok: true, json: async () => ({}) }) // Add feed - .mockResolvedValueOnce({ ok: true, json: async () => [{ _id: 3, title: 'New Feed', url: 'http://new.com/rss' }] }); // Refresh load - - render(<Settings />); - - // Wait for initial load to finish - await waitFor(() => { - expect(screen.queryByText('Loading...')).not.toBeInTheDocument(); - }); - - const input = screen.getByPlaceholderText('https://example.com/feed.xml'); - const button = screen.getByText('Add Feed'); + const input = screen.getByPlaceholderText('https://example.com/feed.xml'); + const button = screen.getByText('Add Feed'); - fireEvent.change(input, { target: { value: 'http://new.com/rss' } }); - fireEvent.click(button); + fireEvent.change(input, { target: { value: 'http://new.com/rss' } }); + fireEvent.click(button); - await waitFor(() => { - expect(global.fetch).toHaveBeenCalledWith('/api/feed/', expect.objectContaining({ - method: 'POST', - body: JSON.stringify({ url: 'http://new.com/rss' }), - })); - }); + await waitFor(() => { + expect(global.fetch).toHaveBeenCalledWith( + '/api/feed/', + expect.objectContaining({ + method: 'POST', + body: JSON.stringify({ url: 'http://new.com/rss' }), + }) + ); + }); - // Wait for refresh - await waitFor(() => { - expect(screen.getByText('New Feed')).toBeInTheDocument(); - }); + // Wait for refresh + await waitFor(() => { + expect(screen.getByText('New Feed')).toBeInTheDocument(); }); + }); - it('deletes a feed', async () => { - const mockFeeds = [ - { _id: 1, title: 'Tech News', url: 'http://tech.com/rss', category: 'tech' }, - ]; + it('deletes a feed', async () => { + const mockFeeds = [ + { _id: 1, title: 'Tech News', url: 'http://tech.com/rss', category: 'tech' }, + ]; - (global.fetch as any) - .mockResolvedValueOnce({ ok: true, json: async () => mockFeeds }) // Initial load - .mockResolvedValueOnce({ ok: true }); // Delete + (global.fetch as any) + .mockResolvedValueOnce({ ok: true, json: async () => mockFeeds }) // Initial load + .mockResolvedValueOnce({ ok: true }); // Delete - render(<Settings />); + render(<Settings />); - await waitFor(() => { - expect(screen.queryByText('Loading...')).not.toBeInTheDocument(); - expect(screen.getByText('Tech News')).toBeInTheDocument(); - }); + await waitFor(() => { + expect(screen.queryByText('Loading...')).not.toBeInTheDocument(); + expect(screen.getByText('Tech News')).toBeInTheDocument(); + }); - const deleteBtn = screen.getByTitle('Delete Feed'); - fireEvent.click(deleteBtn); + const deleteBtn = screen.getByTitle('Delete Feed'); + fireEvent.click(deleteBtn); - await waitFor(() => { - expect(global.confirm).toHaveBeenCalled(); - expect(global.fetch).toHaveBeenCalledWith('/api/feed/1', expect.objectContaining({ method: 'DELETE' })); - expect(screen.queryByText('Tech News')).not.toBeInTheDocument(); - }); + await waitFor(() => { + expect(global.confirm).toHaveBeenCalled(); + expect(global.fetch).toHaveBeenCalledWith( + '/api/feed/1', + expect.objectContaining({ method: 'DELETE' }) + ); + expect(screen.queryByText('Tech News')).not.toBeInTheDocument(); }); + }); }); diff --git a/frontend/src/components/Settings.tsx b/frontend/src/components/Settings.tsx index def8ffe..b4f6a3b 100644 --- a/frontend/src/components/Settings.tsx +++ b/frontend/src/components/Settings.tsx @@ -3,119 +3,121 @@ import type { Feed } from '../types'; import './Settings.css'; export default function Settings() { - const [feeds, setFeeds] = useState<Feed[]>([]); - const [newFeedUrl, setNewFeedUrl] = useState(''); - const [loading, setLoading] = useState(false); - const [error, setError] = useState<string | null>(null); + const [feeds, setFeeds] = useState<Feed[]>([]); + const [newFeedUrl, setNewFeedUrl] = useState(''); + const [loading, setLoading] = useState(false); + const [error, setError] = useState<string | null>(null); - useEffect(() => { - fetchFeeds(); - }, []); + const fetchFeeds = () => { + setLoading(true); + fetch('/api/feed/') + .then((res) => { + if (!res.ok) throw new Error('Failed to fetch feeds'); + return res.json(); + }) + .then((data) => { + setFeeds(data); + setLoading(false); + }) + .catch((err) => { + setError(err.message); + setLoading(false); + }); + }; - const fetchFeeds = () => { - setLoading(true); - fetch('/api/feed/') - .then((res) => { - if (!res.ok) throw new Error('Failed to fetch feeds'); - return res.json(); - }) - .then((data) => { - setFeeds(data); - setLoading(false); - }) - .catch((err) => { - setError(err.message); - setLoading(false); - }); - }; + useEffect(() => { + fetchFeeds(); + }, []); - const handleAddFeed = (e: React.FormEvent) => { - e.preventDefault(); - if (!newFeedUrl) return; - setLoading(true); - fetch('/api/feed/', { - method: 'POST', - headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify({ url: newFeedUrl }), - }) - .then((res) => { - if (!res.ok) throw new Error('Failed to add feed'); - return res.json(); - }) - .then(() => { - setNewFeedUrl(''); - fetchFeeds(); // Refresh list (or we could append if server returns full feed object) - }) - .catch((err) => { - setError(err.message); - setLoading(false); - }); - }; - const handleDeleteFeed = (id: number) => { - if (!globalThis.confirm('Are you sure you want to delete this feed?')) return; + const handleAddFeed = (e: React.FormEvent) => { + e.preventDefault(); + if (!newFeedUrl) return; - setLoading(true); - fetch(`/api/feed/${id}`, { - method: 'DELETE', - }) - .then((res) => { - if (!res.ok) throw new Error('Failed to delete feed'); - setFeeds(feeds.filter((f) => f._id !== id)); - setLoading(false); - }) - .catch((err) => { - setError(err.message); - setLoading(false); - }); - }; + setLoading(true); + fetch('/api/feed/', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ url: newFeedUrl }), + }) + .then((res) => { + if (!res.ok) throw new Error('Failed to add feed'); + return res.json(); + }) + .then(() => { + setNewFeedUrl(''); + fetchFeeds(); // Refresh list (or we could append if server returns full feed object) + }) + .catch((err) => { + setError(err.message); + setLoading(false); + }); + }; - return ( - <div className="settings-page"> - <h2>Settings</h2> + const handleDeleteFeed = (id: number) => { + if (!globalThis.confirm('Are you sure you want to delete this feed?')) return; - <div className="add-feed-section"> - <h3>Add New Feed</h3> - <form onSubmit={handleAddFeed} className="add-feed-form"> - <input - type="url" - value={newFeedUrl} - onChange={(e) => setNewFeedUrl(e.target.value)} - placeholder="https://example.com/feed.xml" - required - className="feed-input" - disabled={loading} - /> - <button type="submit" disabled={loading}> - Add Feed - </button> - </form> - {error && <p className="error-message">{error}</p>} - </div> + setLoading(true); + fetch(`/api/feed/${id}`, { + method: 'DELETE', + }) + .then((res) => { + if (!res.ok) throw new Error('Failed to delete feed'); + setFeeds(feeds.filter((f) => f._id !== id)); + setLoading(false); + }) + .catch((err) => { + setError(err.message); + setLoading(false); + }); + }; - <div className="feed-list-section"> - <h3>Manage Feeds</h3> - {loading && <p>Loading...</p>} - <ul className="settings-feed-list"> - {feeds.map((feed) => ( - <li key={feed._id} className="settings-feed-item"> - <div className="feed-info"> - <span className="feed-title">{feed.title || '(No Title)'}</span> - <span className="feed-url">{feed.url}</span> - </div> - <button - onClick={() => handleDeleteFeed(feed._id)} - className="delete-btn" - disabled={loading} - title="Delete Feed" - > - Delete - </button> - </li> - ))} - </ul> - </div> - </div> - ); + return ( + <div className="settings-page"> + <h2>Settings</h2> + + <div className="add-feed-section"> + <h3>Add New Feed</h3> + <form onSubmit={handleAddFeed} className="add-feed-form"> + <input + type="url" + value={newFeedUrl} + onChange={(e) => setNewFeedUrl(e.target.value)} + placeholder="https://example.com/feed.xml" + required + className="feed-input" + disabled={loading} + /> + <button type="submit" disabled={loading}> + Add Feed + </button> + </form> + {error && <p className="error-message">{error}</p>} + </div> + + <div className="feed-list-section"> + <h3>Manage Feeds</h3> + {loading && <p>Loading...</p>} + <ul className="settings-feed-list"> + {feeds.map((feed) => ( + <li key={feed._id} className="settings-feed-item"> + <div className="feed-info"> + <span className="feed-title">{feed.title || '(No Title)'}</span> + <span className="feed-url">{feed.url}</span> + </div> + <button + onClick={() => handleDeleteFeed(feed._id)} + className="delete-btn" + disabled={loading} + title="Delete Feed" + > + Delete + </button> + </li> + ))} + </ul> + </div> + </div> + ); } diff --git a/frontend/src/components/TagView.test.tsx b/frontend/src/components/TagView.test.tsx index d19d4bb..10872bc 100644 --- a/frontend/src/components/TagView.test.tsx +++ b/frontend/src/components/TagView.test.tsx @@ -6,79 +6,81 @@ import FeedList from './FeedList'; import FeedItems from './FeedItems'; describe('Tag View Integration', () => { - beforeEach(() => { - vi.resetAllMocks(); - global.fetch = vi.fn(); - }); + beforeEach(() => { + vi.resetAllMocks(); + global.fetch = vi.fn(); + }); - it('renders tags in FeedList and navigates to tag view', async () => { - const mockFeeds = [{ _id: 1, title: 'Feed 1', url: 'http://example.com/rss', category: 'Tech' }]; - const mockTags = [{ title: 'Tech' }, { title: 'News' }]; + it('renders tags in FeedList and navigates to tag view', async () => { + const mockFeeds = [ + { _id: 1, title: 'Feed 1', url: 'http://example.com/rss', category: 'Tech' }, + ]; + const mockTags = [{ title: 'Tech' }, { title: 'News' }]; - (global.fetch as any).mockImplementation((url: string) => { - if (url.includes('/api/feed/')) { - return Promise.resolve({ - ok: true, - json: async () => mockFeeds, - }); - } - if (url.includes('/api/tag')) { - return Promise.resolve({ - ok: true, - json: async () => mockTags, - }); - } - return Promise.reject(new Error(`Unknown URL: ${url}`)); + (global.fetch as any).mockImplementation((url: string) => { + if (url.includes('/api/feed/')) { + return Promise.resolve({ + ok: true, + json: async () => mockFeeds, }); - - render( - <MemoryRouter> - <FeedList /> - </MemoryRouter> - ); - - await waitFor(() => { - const techTags = screen.getAllByText('Tech'); - expect(techTags.length).toBeGreaterThan(0); - expect(screen.getByText('News')).toBeInTheDocument(); + } + if (url.includes('/api/tag')) { + return Promise.resolve({ + ok: true, + json: async () => mockTags, }); - - // Verify structure - const techTag = screen.getByText('News').closest('a'); - expect(techTag).toHaveAttribute('href', '/tag/News'); + } + return Promise.reject(new Error(`Unknown URL: ${url}`)); }); - it('fetches items by tag in FeedItems', async () => { - const mockItems = [ - { _id: 101, title: 'Tag Item 1', url: 'http://example.com/1', feed_title: 'Feed 1' } - ]; + render( + <MemoryRouter> + <FeedList /> + </MemoryRouter> + ); - (global.fetch as any).mockImplementation((url: string) => { - if (url.includes('/api/stream')) { - return Promise.resolve({ - ok: true, - json: async () => mockItems, - }); - } - return Promise.reject(new Error(`Unknown URL: ${url}`)); - }); + await waitFor(() => { + const techTags = screen.getAllByText('Tech'); + expect(techTags.length).toBeGreaterThan(0); + expect(screen.getByText('News')).toBeInTheDocument(); + }); + + // Verify structure + const techTag = screen.getByText('News').closest('a'); + expect(techTag).toHaveAttribute('href', '/tag/News'); + }); - render( - <MemoryRouter initialEntries={['/tag/Tech']}> - <Routes> - <Route path="/tag/:tagName" element={<FeedItems />} /> - </Routes> - </MemoryRouter> - ); + it('fetches items by tag in FeedItems', async () => { + const mockItems = [ + { _id: 101, title: 'Tag Item 1', url: 'http://example.com/1', feed_title: 'Feed 1' }, + ]; - await waitFor(() => { - // expect(screen.getByText('Tag: Tech')).toBeInTheDocument(); - expect(screen.getByText('Tag Item 1')).toBeInTheDocument(); + (global.fetch as any).mockImplementation((url: string) => { + if (url.includes('/api/stream')) { + return Promise.resolve({ + ok: true, + json: async () => mockItems, }); + } + return Promise.reject(new Error(`Unknown URL: ${url}`)); + }); - const params = new URLSearchParams(); - params.append('tag', 'Tech'); - params.append('read_filter', 'unread'); - expect(global.fetch).toHaveBeenCalledWith(`/api/stream?${params.toString()}`); + render( + <MemoryRouter initialEntries={['/tag/Tech']}> + <Routes> + <Route path="/tag/:tagName" element={<FeedItems />} /> + </Routes> + </MemoryRouter> + ); + + await waitFor(() => { + // expect(screen.getByText('Tag: Tech')).toBeInTheDocument(); + expect(screen.getByText('Tag Item 1')).toBeInTheDocument(); }); + + const params = new URLSearchParams(); + params.append('tag', 'Tech'); + params.append('read_filter', 'unread'); + expect(global.fetch).toHaveBeenCalledWith(`/api/stream?${params.toString()}`); + }); }); diff --git a/frontend/src/index.css b/frontend/src/index.css index aca76c6..209a30a 100644 --- a/frontend/src/index.css +++ b/frontend/src/index.css @@ -16,24 +16,18 @@ h5, :root { line-height: 1.5; - font-weight: 400; font-size: 18px; /* Light Mode Defaults */ --bg-color: #ffffff; --text-color: rgba(0, 0, 0, 0.87); --sidebar-bg: #ccc; - --link-color: #0000EE; + --link-color: #0000ee; /* Standard blue link */ color-scheme: light dark; color: var(--text-color); background-color: var(--bg-color); - - font-synthesis: none; - text-rendering: optimizeLegibility; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; } @media (prefers-color-scheme: dark) { @@ -88,7 +82,7 @@ button { border: 1px solid transparent; padding: 0.6em 1.2em; font-size: 1em; - font-weight: 500; + font-weight: bold; font-family: inherit; background-color: #1a1a1a; cursor: pointer; diff --git a/frontend/src/main.tsx b/frontend/src/main.tsx index bef5202..df655ea 100644 --- a/frontend/src/main.tsx +++ b/frontend/src/main.tsx @@ -1,10 +1,10 @@ -import { StrictMode } from 'react' -import { createRoot } from 'react-dom/client' -import './index.css' -import App from './App.tsx' +import { StrictMode } from 'react'; +import { createRoot } from 'react-dom/client'; +import './index.css'; +import App from './App.tsx'; createRoot(document.getElementById('root')!).render( <StrictMode> <App /> - </StrictMode>, -) + </StrictMode> +); diff --git a/frontend/src/setupTests.ts b/frontend/src/setupTests.ts index 052d18e..5781184 100644 --- a/frontend/src/setupTests.ts +++ b/frontend/src/setupTests.ts @@ -2,39 +2,39 @@ import '@testing-library/jest-dom'; // Mock IntersectionObserver class IntersectionObserver { - readonly root: Element | null = null; - readonly rootMargin: string = ''; - readonly thresholds: ReadonlyArray<number> = []; + readonly root: Element | null = null; + readonly rootMargin: string = ''; + readonly thresholds: ReadonlyArray<number> = []; - constructor(_callback: IntersectionObserverCallback, _options?: IntersectionObserverInit) { - // nothing - } + constructor(_callback: IntersectionObserverCallback, _options?: IntersectionObserverInit) { + // nothing + } - observe(_target: Element): void { - // nothing - } + observe(_target: Element): void { + // nothing + } - unobserve(_target: Element): void { - // nothing - } + unobserve(_target: Element): void { + // nothing + } - disconnect(): void { - // nothing - } + disconnect(): void { + // nothing + } - takeRecords(): IntersectionObserverEntry[] { - return []; - } + takeRecords(): IntersectionObserverEntry[] { + return []; + } } Object.defineProperty(window, 'IntersectionObserver', { - writable: true, - configurable: true, - value: IntersectionObserver, + writable: true, + configurable: true, + value: IntersectionObserver, }); Object.defineProperty(globalThis, 'IntersectionObserver', { - writable: true, - configurable: true, - value: IntersectionObserver, + writable: true, + configurable: true, + value: IntersectionObserver, }); diff --git a/frontend/src/types.ts b/frontend/src/types.ts index 4c1110f..1feea1f 100644 --- a/frontend/src/types.ts +++ b/frontend/src/types.ts @@ -1,24 +1,24 @@ export interface Feed { - _id: number; - url: string; - web_url: string; - title: string; - category: string; + _id: number; + url: string; + web_url: string; + title: string; + category: string; } export interface Item { - _id: number; - feed_id: number; - title: string; - url: string; - description: string; - publish_date: string; - read: boolean; - starred: boolean; - full_content?: string; - header_image?: string; - feed_title?: string; + _id: number; + feed_id: number; + title: string; + url: string; + description: string; + publish_date: string; + read: boolean; + starred: boolean; + full_content?: string; + header_image?: string; + feed_title?: string; } export interface Category { - title: string; + title: string; } diff --git a/frontend/test-results/.last-run.json b/frontend/test-results/.last-run.json index cbcc1fb..f740f7c 100644 --- a/frontend/test-results/.last-run.json +++ b/frontend/test-results/.last-run.json @@ -1,4 +1,4 @@ { "status": "passed", "failedTests": [] -}
\ No newline at end of file +} diff --git a/frontend/tests/e2e.spec.ts b/frontend/tests/e2e.spec.ts index ca4b4ad..3f4898a 100644 --- a/frontend/tests/e2e.spec.ts +++ b/frontend/tests/e2e.spec.ts @@ -1,56 +1,66 @@ import { test, expect } from '@playwright/test'; test.describe('Neko Reader E2E', () => { - test('should allow login, viewing feeds, and logout', async ({ page }) => { - // 1. Go to Login - await page.goto('/v2/login'); - await expect(page).toHaveTitle(/Neko/); - - // 2. Login - // 2. Login - // Password is empty by default in test env - await page.click('button[type="submit"]'); - - // Check for error message if login failed (optional, for debugging) - // await expect(page.locator('.error-message')).toBeVisible({ timeout: 2000 }).catch(() => {}); - - // 3. Verify Dashboard - // Keep checking for /v2/ or /v2 - await expect(page).toHaveURL(/.*\/v2\/?$/); - await expect(page.locator('h1.logo')).toContainText('🐱'); - await expect(page.getByText('Logout')).toBeVisible(); - - // 4. Verify Feed List - await page.click('text=Settings'); - await expect(page).toHaveURL(/.*\/v2\/settings/); - - // Add a feed - const feedUrl = 'http://rss.cnn.com/rss/cnn_topstories.rss'; - await page.fill('input[type="url"]', feedUrl); - await page.click('text=Add Feed'); - - // Wait for it to appear - await expect(page.getByText(feedUrl)).toBeVisible(); - - // 5. Navigate to Feed - await page.goto('/v2/'); - // Default view is now the stream. - // It should NOT show "Select a feed" anymore. - // Wait for items or "No items found" or loading state - await expect(page.locator('.feed-items').or(page.locator('.feed-items-loading')).or(page.getByText('No items found'))).toBeVisible({ timeout: 10000 }); - - // 6. Verify Tag View - // Go to a tag URL (simulated, since we can't easily add tags via UI in this test yet without setup) - // But we can check if the route loads without crashing - await page.goto('/v2/tag/Tech'); - // The TagView component might show "Category: Tech" or "Tag: Tech" or just items. - // In the current FeedItems.tsx it doesn't show a header, but it should load. - // The TagView component might show "Category: Tech" or "Tag: Tech" or just items. - // In the current FeedItems.tsx it doesn't show a header, but it should load. - await expect(page.locator('.feed-items').or(page.locator('.feed-items-loading')).or(page.getByText('No items found'))).toBeVisible({ timeout: 10000 }); - - // 7. Logout - await page.click('text=Logout'); - await expect(page).toHaveURL(/.*\/v2\/login/); - }); + test('should allow login, viewing feeds, and logout', async ({ page }) => { + // 1. Go to Login + await page.goto('/v2/login'); + await expect(page).toHaveTitle(/Neko/); + + // 2. Login + // 2. Login + // Password is empty by default in test env + await page.click('button[type="submit"]'); + + // Check for error message if login failed (optional, for debugging) + // await expect(page.locator('.error-message')).toBeVisible({ timeout: 2000 }).catch(() => {}); + + // 3. Verify Dashboard + // Keep checking for /v2/ or /v2 + await expect(page).toHaveURL(/.*\/v2\/?$/); + await expect(page.locator('h1.logo')).toContainText('🐱'); + await expect(page.getByText('Logout')).toBeVisible(); + + // 4. Verify Feed List + await page.click('text=Settings'); + await expect(page).toHaveURL(/.*\/v2\/settings/); + + // Add a feed + const feedUrl = 'http://rss.cnn.com/rss/cnn_topstories.rss'; + await page.fill('input[type="url"]', feedUrl); + await page.click('text=Add Feed'); + + // Wait for it to appear + await expect(page.getByText(feedUrl)).toBeVisible(); + + // 5. Navigate to Feed + await page.goto('/v2/'); + // Default view is now the stream. + // It should NOT show "Select a feed" anymore. + // Wait for items or "No items found" or loading state + await expect( + page + .locator('.feed-items') + .or(page.locator('.feed-items-loading')) + .or(page.getByText('No items found')) + ).toBeVisible({ timeout: 10000 }); + + // 6. Verify Tag View + // Go to a tag URL (simulated, since we can't easily add tags via UI in this test yet without setup) + // But we can check if the route loads without crashing + await page.goto('/v2/tag/Tech'); + // The TagView component might show "Category: Tech" or "Tag: Tech" or just items. + // In the current FeedItems.tsx it doesn't show a header, but it should load. + // The TagView component might show "Category: Tech" or "Tag: Tech" or just items. + // In the current FeedItems.tsx it doesn't show a header, but it should load. + await expect( + page + .locator('.feed-items') + .or(page.locator('.feed-items-loading')) + .or(page.getByText('No items found')) + ).toBeVisible({ timeout: 10000 }); + + // 7. Logout + await page.click('text=Logout'); + await expect(page).toHaveURL(/.*\/v2\/login/); + }); }); diff --git a/frontend/tsconfig.app.json b/frontend/tsconfig.app.json index f03834c..3fcc60b 100644 --- a/frontend/tsconfig.app.json +++ b/frontend/tsconfig.app.json @@ -3,15 +3,9 @@ "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", "target": "ES2022", "useDefineForClassFields": true, - "lib": [ - "ES2022", - "DOM", - "DOM.Iterable" - ], + "lib": ["ES2022", "DOM", "DOM.Iterable"], "module": "ESNext", - "types": [ - "vite/client" - ], + "types": ["vite/client"], "skipLibCheck": true, /* Bundler mode */ "moduleResolution": "bundler", @@ -28,11 +22,6 @@ "noFallthroughCasesInSwitch": true, "noUncheckedSideEffectImports": true }, - "include": [ - "src" - ], - "exclude": [ - "**/*.test.tsx", - "**/*.test.ts" - ] -}
\ No newline at end of file + "include": ["src"], + "exclude": ["**/*.test.tsx", "**/*.test.ts"] +} diff --git a/frontend/tsconfig.json b/frontend/tsconfig.json index 1ffef60..d32ff68 100644 --- a/frontend/tsconfig.json +++ b/frontend/tsconfig.json @@ -1,7 +1,4 @@ { "files": [], - "references": [ - { "path": "./tsconfig.app.json" }, - { "path": "./tsconfig.node.json" } - ] + "references": [{ "path": "./tsconfig.app.json" }, { "path": "./tsconfig.node.json" }] } diff --git a/frontend/tsconfig.node.json b/frontend/tsconfig.node.json index 61d6465..50145d1 100644 --- a/frontend/tsconfig.node.json +++ b/frontend/tsconfig.node.json @@ -2,14 +2,9 @@ "compilerOptions": { "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", "target": "ES2023", - "lib": [ - "ES2023" - ], + "lib": ["ES2023"], "module": "ESNext", - "types": [ - "node", - "vitest" - ], + "types": ["node", "vitest"], "skipLibCheck": true, /* Bundler mode */ "moduleResolution": "bundler", @@ -25,7 +20,5 @@ "noFallthroughCasesInSwitch": true, "noUncheckedSideEffectImports": true }, - "include": [ - "vite.config.ts" - ] -}
\ No newline at end of file + "include": ["vite.config.ts"] +} diff --git a/frontend/vite.config.ts b/frontend/vite.config.ts index e04aec1..025cbb3 100644 --- a/frontend/vite.config.ts +++ b/frontend/vite.config.ts @@ -1,6 +1,6 @@ /// <reference types="vitest" /> -import { defineConfig } from 'vite' -import react from '@vitejs/plugin-react' +import { defineConfig } from 'vite'; +import react from '@vitejs/plugin-react'; // https://vite.dev/config/ export default defineConfig({ @@ -10,6 +10,6 @@ export default defineConfig({ proxy: { '/api': 'http://127.0.0.1:4994', '/image': 'http://127.0.0.1:4994', - } + }, }, -}) +}); diff --git a/frontend/vitest.config.ts b/frontend/vitest.config.ts index eee2cfa..9cb79ae 100644 --- a/frontend/vitest.config.ts +++ b/frontend/vitest.config.ts @@ -1,11 +1,11 @@ /// <reference types="vitest" /> -import { defineConfig } from 'vite' +import { defineConfig } from 'vite'; export default defineConfig({ - test: { - globals: true, - environment: 'jsdom', - setupFiles: './src/setupTests.ts', - exclude: ['**/node_modules/**', '**/dist/**', '**/tests/**'], - }, -}) + test: { + globals: true, + environment: 'jsdom', + setupFiles: './src/setupTests.ts', + exclude: ['**/node_modules/**', '**/dist/**', '**/tests/**'], + }, +}); |
